버전
menu_open
Wwise Unreal Integration Documentation
오디오 에셋 현지화
참고: 이 기능은 Event-Based Packaging을 사용할 경우에만 사용할 수 있습니다.

현지화된 에셋 작업 시 특별 고려 사항

현재 사운드뱅크 생성 프로세스가 특정 변경 사항을 감지할 수 없기 때문에 현지화된 사운드를 변경할 때에는 특별한 주의를 더 기울여야 합니다. 다음은 현지화된 에셋의 알려진 문제들과 이를 방지하는 방법입니다.

다음과 같이 변경한 후에는 현지화된 에셋의 데이터를 지워야 합니다:

  • 현지화된 미디어를 참조하는 Event의 Required Bank 설정.
    • Event의 데이터만 삭제하면 됩니다.
  • 음원을 Voice에서 SFX로 또는 그 반대로 변경한 후.
    • 이 소스 미디어를 참조하는 모든 이벤트는 데이터를 지워야 합니다.

특정 에셋의 사운드 데이터를 지우는 방법에 대한 자세한 내용은 using_features_clear를 참고해 주세요.

WwiseConsole을 사용하여 사운드뱅크를 생성하는 경우(WAAPI를 통한 것과 반대), GeneratedSoundBanks 폴더에 남아 있는 사용하지 않는 생성 뱅크 메타데이터에 주의해야 합니다. 이 메타데이터는 뱅크 생성 프로세스 중에 계속 구문 분석되며 예측할 수 없는 동작으로 이어질 수 있습니다. 가장 좋은 방법은 이 폴더를 정기적으로 지우는 것입니다.

사운드뱅크를 생성하는 동안 현지화된 뱅크와 미디어가 비대칭적으로 로드 및 언로드되어 잘못된 참조 카운팅이 발생할 수 있습니다. 사운드 데이터를 생성한 후 편집기에서 언어 전환이 제대로 작동하지 않는 것 같으면 편집기를 다시 실행해 보세요(변경 사항을 저장한 후).

Profile and Edit 모드에서 Wwise Authoring 프로파일러를 연결하면 Authoring에서 현재 로케일의 사운드뱅크를 로드할 수 있으며 이는 현지화된 뱅크 로드 상태에 예측할 수 없는 영향을 미칩니다. 현지화된 뱅크을 프로파일링하고 상호작용할 때 Profile Only 모드를 사용하는 것이 좋습니다.

현지화된 에셋과 작업하는 방법

현지화된 사운드뱅크 및 이벤트는 일반 대응과 동일한 방식으로 사용되지만 언어별 데이터는 별도의 에셋에 저장됩니다. 모든 현지화된 에셋 데이터는 Wwise Sound Data Folder의 Localized 폴더 아래에 생성됩니다. 현지화된 이벤트, 뱅크, 미디어는 언어 전용 폴더 안에 배치되어 패키지에서 특정 언어를 쉽게 제외할 수 있습니다.

패키지 게임에서 특정 언어를 제외하려면 [Wwise Sound Data Folder]/Localized/[Language Name] 폴더를 프로젝트 패키지 설정의 Directories to never cook에 추가하세요.

오디오 언어/컬처를 업데이트하려면 Set Current Audio Culture 블루프린트 노드를 사용하거나:

Set Current Audio Culture Async 블루프린트 노드를 사용하거나:

C++ API FAkAudioDevice::Get()->SetCurrentAudioCulture()를 사용하세요.

Wwise Language나 Unreal 컬처는 C++ 함수나 블루프린트 노드로 전달할 수 있습니다.function or blueprint node.

경고: Wwise Sound Engine의 제한 사항으로 인해 현지화된 사운드가 재생되는 경우 해당 뱅크를 언로드할 수 없으며 해당 사운드에 대한 언어 전환이 실패합니다. 가장 좋은 방법은 SetCurrentAudioCulture를 호출하기 전에 현지화된 사운드가 재생되지 않는지 확인하는 것입니다. 언어 A에서 언어 B로 전환할 때 언어 B로 전환하기 위한 후속 호출은 더 이상 재생되지 않는 경우에도 전환에 실패한 사운드에 영향을 미치지 않습니다. 해당 사운드의 현지화 상태를 수정하는 유일한 방법은 A 언어로 다시 전환하는 것입니다.

Unreal Culture에서 Wwise Language로의 매핑은 Wwise Integration Settings에서 확인할 수 있습니다.

Unreal 컬처에는 ISO 639-1 언어 코드의 모든 변수와 선택적으로 ISO 3166 컨트리 코드 (ex: fr-CA, en-GB)를 사용할 수 있습니다.

SetCurrentAudioCulture()가 호출되면 다음이 실행됩니다:

  1. 통합은 모든 UAkAudioEvents 및 UAkAudioBanks를 반복하고 이전의 현지화된 뱅크 데이터 및 미디어 에셋을 언로드한 다음 새로운 현지화된 뱅크 데이터 및 미디어 에셋을 로드합니다.
    • 뱅크 데이터 및 미디어 에셋은 에셋에 의해 하드 참조(hard-referenced)되지만 미디어 에셋은 현재 언어와 일치하는 경우에만 데이터를 로드합니다.
    • 언어를 전환할 때 SetCurrentAudioCulture가 호출되고 미디어 에셋이 디스크에서 데이터 로드를 완료하는 사이에 특정 딜레이가 있습니다.
    • UAkAudioEvent::IsLocalizationReady 함수는 이벤트에 필요한 모든 현지화 미디어가 로드되었는지 확인하는 데 사용됩니다.
      • Blueprint SetCurrentAudioCulture 함수는 이것을 사용하여 계속하기 전에 언어 변경이 완료되었는지 확인합니다.
  2. 통합이 AK::StreamMgr의 CurrentLanguage를 설정합니다.
  3. Garbage Collection이 강제 실행되어 메모리에 있는 오래된 현지화 에셋을 제거합니다.
참고: Unreal Asset Registry의 한계로 인해 새로운 현지화 Sound Data를 생성할 때 새로운 에셋이 저장되었는지 확인해 주세요. 그렇지 않으면 Editor에서 재생할 때 미디어가 누락될 수 있습니다.

이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요