목차

오디오 파일 가져오기 및 구조체 생성하기

Wwise Authoring API로 Wwise 오브젝트를 생성하는 방식에는 다양한 방법이 있습니다.

Wwise 오브젝트 생성하기

대부분의 Wwise 오브젝트는 ak.wwise.core.object.create 를 이용해 생성할 수 있습니다. 이 방법의 적용 범위에 대한 더 자세한 내용은 ak.wwise.core.object.create 사용의 한계점 를 참고하세요.

이름 충돌 모드 이해하기

ak.wwise.core.object.create 를 호출할 때 다음 네 개의 이름 충돌 모드 중에서 하나를 골라 지정할 수 있습니다.

동일한 이름의 오브젝트가 이미 존재할 경우,

  • fail: create 함수가 오류를 반환합니다.
  • replace: 도착지의 기존 오브젝트가 삭제되고 (하위 항목 포함), 새로운 오브젝트가 생성됩니다.
  • rename: 새로운 오브젝트에 번호를 붙인 새로운 이름을 자동으로 할당합니다.
  • merge: 도착지의 오브젝트가 재사용되어 지정된 속성과 참조, 하위 항목이 도착지에 병합됩니다. 해당 오브젝트의 다른 부분들은 그대로 둡니다.

ak.wwise.core.object.create 사용의 한계점

Sound

ak.wwise.core.object.create 를 이용해 Sound 오브젝트를 생성할 수 있습니다. 그러나 이에 대한 적용 범위에는 다음과 같은 제한이 있습니다.

  • 원본 WAV 파일과 하위 Audio Source 오브젝트를 연결할 수 없습니다.
  • 언어와 하위 Audio Source 오브젝트를 연결할 수 없습니다.

이러한 이유로 모든 기능이 제대로 지원될 때까지 ak.wwise.core.object.create 를 사용해 Sound를 생성하는 방식을 추천하지 않고 있습니다. 대신 오디오 파일 가져오기ak.wwise.core.audio.import 를 참고해주세요.

Work Unit

ak.wwise.core.object.create 로 Work Unit을 생성하는 방식은 실행 취소/재실행 이력이 필요하며 클립보드가 깨끗이 비워져있어야합니다. Work Unit는 또한 생성과 함께 저장되기 때문에 프로젝트에 해당 WWU 파일을 효과적으로 생성하게 됩니다.

Query

ak.wwise.core.object.create 를 이용해 Query 오브젝트를 생성할 수 없습니다.

ak.wwise.core.object.create 를 이용해 단일 Actor-Mixer 만들기

더 자세한 정보는 ak.wwise.core.object.create for more information 를 참고하세요.

{
    "parent": "{a9129d80-07e0-11e7-93ae-92361f002671}",
    "type": "ActorMixer",
    "name": "My Actor-Mixer",
    "children": []
}
Note.gif
참고: parent 부분은 프로젝트에서 오브젝트를 어디에 생성할 것인지를 나타냅니다. 다른 Wwise 오브젝트 영역처럼 parent 영역도 오브젝트 ID(GUID)와 오브젝트 경로를 지원합니다. 오브젝트 ID를 가져오는 방법은 ak.wwise.core.object.get 를 참고하세요. 예를 들어 해당 프로젝트 경로에서 오브젝트 ID를 가져올 수 있습니다.
Note.gif
참고: Wwise 프로젝트로부터 오브젝트 ID를 가져오려면 Shift 키를 누른 상태에서 오브젝트를 우클릭해 Copy GUID(s) to clipboard를 선택하세요.

ak.wwise.core.object.create 를 이용해 원하는 속성으로 오브젝트 계층 구조 만들기

더 자세한 정보는 ak.wwise.core.object.create for more information 를 참고하세요.

{
    "parent": "{a9129d80-07e0-11e7-93ae-92361f002671}",
    "type": "ActorMixer",
    "name": "Weapons",
    "@Volume": "-2",
    "children": [
        {
            "type": "RandomSequenceContainer",
            "name": "BigGun",
            "@RandomOrSequence": "1",
            "children": [
                {
                    "type": "Sound",
                    "name": "Gun1",
                },              
                {
                    "type": "Sound",
                    "name": "Gun2",
                }
            ]
        }
    ]
}

ak.wwise.core.object.create 를 이용해 Event 만들기

더 자세한 정보는 ak.wwise.core.object.create for more information 를 참고하세요.

{
    "parent": "\\Events\\Default Work Unit", 
    "type": "Folder", 
    "name": "WAAPI", 
    "onNameConflict": "merge", 
    "children": [
        {
            "type": "Event", 
            "name": "Play_SFX", 
            "children": [
                {
                    "name": "", 
                    "type": "Action", 
                    "@ActionType": 1, 
                    "@Target": "\\Actor-Mixer Hierarchy\\Default Work Unit\\SFX"
                }
            ]
        }
    ]
}

사용 가능한 이벤트 속성과 동작 타입 목록을 보시려면 Action 를 참고하세요.

오디오 파일 가져오기

오디오 파일은 Audio File Importer의 Tab Delimited import와 동일한 가져오기 처리자를 이용하는 Wwise Authoring API로 불러올 수 있습니다.

Wwise Authoring API를 이용하면 오디오 파일을 가져오는 과정이 완전히 자동화돼있으며 자신이 선택한 프로그래밍 언어에서 직접 제어할 수 있습니다.

가져올 때 사용할 수 있는 포맷은 매우 다양합니다. 다음의 포맷을 가져올 수 있습니다.

오디오 파일 가져오기와 관련해 가능한 작업을 요약하자면 아래와 같습니다.

  • 오디오 파일 가져오기 및 현지화
  • Actor-Mixer 계층 구조 생성 자동화
  • Event 생성
  • Volume과 같은 Property Value 할당
  • Output Bus와 같은 참조 할당

더 많은 정보는 https://www.audiokinetic.com/library/edge/?source=Help&id=importing_media_files_from_tab_delimited_text_file를 참고하세요.

Note.gif
참고: Sound 오브젝트 생성과 오디오 파일 가져오기를 동시에 할 때는 ak.wwise.core.audio.importTabDelimitedak.wwise.core.audio.import 를 자주 사용합니다. ak.wwise.core.object.create 는 현재로서는 오디오 파일과 언어를 생성한 오브젝트에 연결하는 게 불가능하기 때문에 추천하지 않습니다.

예제:

WAV 파일 가져오기 및 연관 Sound 오브젝트 만들기.

ak.wwise.core.audio.import to import를 이용해 오디오 파일 가져오기

더 많은 정보는 ak.wwise.core.audio.import for more information 를 참고하세요.

{
    importOperation: "createNew",
    default: {
        importLanguage: "SFX"
    },
    imports: [
        {
            objectPath: "\\Actor-Mixer Hierarchy\\Default Work Unit\\<Sound>MyNewSound1",
            audioFile: "C:\\Wave\\cues\\1.wav",
            "@Volume": 0.42
        },
        {
            objectPath: "\\Actor-Mixer Hierarchy\\Default Work Unit\\<Sound>MyNewSound2",
            audioFile: "C:\\Wave\\cues\\2.wav",
            "@Volume": 0.1
        }
    ]
}

ak.wwise.core.audio.import를 이용해 오디오 파일 현지화하기

더 많은 정보는 ak.wwise.core.audio.import for more information 를 참고하세요.

영어로 Sound Voice 가져오기:

{
    importOperation: "useExisting",
    default: {
        importLanguage: "English(US)"
    },
    imports: [
        {
            objectPath: "\\Actor-Mixer Hierarchy\\Default Work Unit\\<Sound>MyVoice",
            audioFile: "C:\\sources\\en\\Hello.wav"
        }
    ]
}

프랑스어로 Sound Voice 현지화하기:

{
    importOperation: "useExisting",
    default: {
        importLanguage: "French"
    },
    imports: [
        {
            objectPath: "\\Actor-Mixer Hierarchy\\Default Work Unit\\<Sound>MyVoice",
            audioFile: "C:\\sources\\fr\\Hello.wav"
        }
    ]
}
Note.gif
참고: 자신의 프로젝트에 반드시 해당 언어가 존재하는지 확인하고 대문자/소문자가 동일한지 확인합니다.