menu
 
버전
2022.1.18.8567

2024.1.3.8749

2023.1.11.8682

2022.1.18.8567

2021.1.14.8108

2019.2.15.7667

2019.1.11.7296

2018.1.11.6987

2017.2.10.6745

2017.1.9.6501

2016.2.6.6153

2015.1.9.5624


menu_open
Wwise SDK 2022.1.18
오디오 파일 가져오기 및 구조체 생성하기

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

Wwise 오브젝트 생성하기

It is possible to create most Wwise Objects using ak.wwise.core.object.create and ak.wwise.core.object.set. 이 방법의 적용 범위에 대한 더 자세한 내용은 Limitations with ak.wwise.core.object.create and ak.wwise.core.object.set 를 참고하세요.

이름 충돌 모드 이해하기

When calling ak.wwise.core.object.create, or ak.wwise.core.object.set, it is possible to specify one of the four name conflict modes.

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

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

Understanding lists and list modes

Lists are generic containers for storing objects. The objects in a given list are typically of the same type. Lists provide a convenient mechanism for populating and retrieving objects through WAAPI that are "owned" by another object. For example, the RTPCs for a given object are contained in the "RTPC" list of that object.

When calling ak.wwise.core.object.set, it is possible to specify one of two list modes.

If a list already contains objects:

  • append: Add the new objects to the list if possible, keeping existing objects. Some lists might not permit duplicate equivalent objects: e.g., some properties of RTPCs in the RTPC list are exclusive so there can only be one RTPC with that property.
  • replaceAll: Remove all existing objects and add the new objects, with the duplicate restriction.

For empty lists the behavior is to append.

Limitations with ak.wwise.core.object.create and ak.wwise.core.object.set

Sound

It is possible to create Sound objects using ak.wwise.core.object.create and ak.wwise.core.object.set. However, there are significant limitations:

  • It is not possible to associate an original WAV or MIDI file with a child Audio File Source object.
  • It is not possible to associate a language with a child Audio File Source object.
  • It is, however, possible to associate a Source plug-in with a child of a Sound object using ak.wwise.core.object.set.

For this reason, we don't recommend using ak.wwise.core.object.create and ak.wwise.core.object.set to create Sound objects that use WAV or MIDI files until these limitations are resolved in a future release of Wwise. Instead refer to 오디오 파일 가져오기 and ak.wwise.core.audio.import.

Work Unit

Creating Work Units with ak.wwise.core.object.create and ak.wwise.core.object.set requires the undo/redo history and the clipboard to be cleared. Work Unit는 또한 생성과 함께 저장되기 때문에 프로젝트에 해당 WWU 파일을 효과적으로 생성하게 됩니다.

  • The onNameConflict argument must be either 'fail', 'merge' or 'rename'. The 'replace' mode is not supported.

Query

It is not possible to create Query objects with ak.wwise.core.object.create and ak.wwise.core.object.set.

Plug-ins

It is not possible to create plug-ins of the type Source, Effect, or Metadata with ak.wwise.core.object.create.

Lists

It is not possible to create objects to populate the "Metadata" and "Clips" lists with ak.wwise.core.object.set.

  • Metadata are plug-ins which cannot be created.
  • Clips require an AudioSourceRef which cannot be specified.

Due to the limitations below we do not recommend creating objects in the "Sequences" and "Stingers" lists with ak.wwise.core.object.set.

  • Without the ability to assign a Segment to a stinger through WAAPI we do not recommend creating a Stinger in the "Stingers" list.
  • Without the ability to create a MusicClip through WAAPI we do not recommend creating a MusicSequence in the "Sequences" list.

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": []
}


info참고: parent 부분은 프로젝트에서 오브젝트를 어디에 생성할 것인지를 나타냅니다. 다른 Wwise 오브젝트 영역처럼 parent 영역도 오브젝트 ID(GUID)와 오브젝트 경로를 지원합니다. 오브젝트 ID를 가져오는 방법은 ak.wwise.core.object.get 을 참고하세요. 예를 들어 해당 프로젝트 경로에서 오브젝트 ID를 가져올 수 있습니다.
info참고: 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 를 참고하세요.

Using ak.wwise.core.object.set to create a single Actor-Mixer

Refer to ak.wwise.core.object.set for more information.

{
"objects": [
{
"object": "{a9129d80-07e0-11e7-93ae-92361f002671}",
"children": [
{
"type": "ActorMixer",
"name": "My Actor-Mixer"
}
]
}
]
}


info참고: The object field indicates where to create the object in the project. The object field, like most Wwise object fields, supports object IDs (GUID) and object paths. 오브젝트 ID를 가져오는 방법은 ak.wwise.core.object.get 을 참고하세요. 예를 들어 해당 프로젝트 경로에서 오브젝트 ID를 가져올 수 있습니다.
info참고: To retrieve an object ID from a Wwise project, you can hold the Shift key while right-clicking an object, then select Copy GUID(s) to clipboard.

Using ak.wwise.core.object.set to create a hierarchy of objects with properties

Refer to ak.wwise.core.object.set for more information.

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


Using ak.wwise.core.object.set to create Events

Refer to ak.wwise.core.object.set for more information.

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

Refer to Action for the list of possible Event properties and Action types.

Using ak.wwise.core.object.set to create an RTPC with curve in the RTPC list using a Custom Control Input

Refer to ak.wwise.core.object.set for more information.

{
"objects": [
{
"object": "\\Actor-Mixer Hierarchy\\Default Work Unit\\My Sound",
"@RTPC": [
{
"type": "RTPC",
"name": "",
"@Curve": {
"type": "Curve",
"points": [
{ "x": 100.0, "y": -20.82785, "shape": "Linear" },
{ "x": 10000.0, "y": 21.8509, "shape": "Linear" }
]
},
"notes": "Property: OutputBusLowpass, ControlInput: RPM",
"@PropertyName": "OutputBusLowpass",
"@ControlInput": {
"type": "ModulatorLfo",
"name": "RAND",
"@LfoWaveform": 5
}
}
]
}
]
}

Using ak.wwise.core.object.set to create objects under multiple parents in one operation

Refer to ak.wwise.core.object.set for more information.

{
"objects": [
{
"object": "{a9129d80-07e0-11e7-93ae-92361f002671}",
"children": [
{
"type": "ActorMixer",
"name": "My Actor-Mixer"
}
]
},
{
"object": "{a9129d80-07e0-11e7-93ae-92361f002671}",
"children": [
{
"type": "ActorMixer",
"name": "Weapons",
"@Volume": "-2",
"children": [
{
"type": "RandomSequenceContainer",
"name": "BigGun",
"@RandomOrSequence": "1",
"children": [
{
"type": "Sound",
"name": "Gun1"
},
{
"type": "Sound",
"name": "Gun2"
}
],
"@RTPC": [
{
"type": "RTPC",
"name": "",
"@Curve": {
"type": "Curve",
"points": [
{ "x": 100.0, "y": -20.82785, "shape": "Linear" },
{ "x": 10000.0, "y": 21.8509, "shape": "Linear" }
]
},
"notes": "RTPC on BigGun. Property: OutputBusLowpass, ControlInput: RPM",
"@PropertyName": "OutputBusLowpass",
"@ControlInput": "{E31BAE21-CFA6-4655-81F6-E6FBDC802E9D}"
}
]
}
]
}
]
}
]
}

Using ak.wwise.core.object.set to set the Name, the Notes, a property, and a reference of an Object

Refer to ak.wwise.core.object.set for more information.

{
"objects": [
{
"object": "\\Actor-Mixer Hierarchy\\Default Work Unit\\MySound",
"name": "new name",
"notes": "This object's notes are set.",
"@Volume": 5.7,
"@OutputBus": "\\Master-Mixer Hierarchy\\Default Work Unit\\Master Audio Bus\\Environment Bus"
}
]
}

Using ak.wwise.core.object.set to set the Effect0 of a sound to a newly created Custom RoomVerb Effect plug-in

Refer to ak.wwise.core.object.set for more information.

{
"objects": [
{
"object": "\\Actor-Mixer Hierarchy\\Default Work Unit\\MySound",
"@Effect0": {
"type": "Effect",
"name": "myCustomEffect",
"classId": 7733251,
"@PreDelay": 24,
"@RoomShape": 99
}
}
]
}

오디오 파일 가져오기

오디오 파일은 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를 참고하세요.

info참고: Sound 오브젝트 생성과 오디오 파일 가져오기를 동시에 할 때는 ak.wwise.core.audio.importTabDelimitedak.wwise.core.audio.import 를 자주 사용합니다. We do not recommend using ak.wwise.core.object.create or \ ref ak_wwise_core_object_set because it is currently not possible to associate an audio file and a language to created objects.

예제:

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

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

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

Importing multiple sounds:

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


Importing multiple Audio Sources in the same Sound SFX object. Note that an underscore prefix was added to one of the Audio Source to ensure it stays first when sorted and becomes the active source:

{
importOperation: "replaceExisting"
default: {
importLanguage: "SFX"
},
imports: [
{
audioFile: "D:\\sources\\Version1.wav",
objectPath: "\\Actor-Mixer Hierarchy\\Default Work Unit\\<Sound SFX>MySound\\<AudioFileSource>_MyActiveSource"
},
{
audioFile: "D:\\sources\\Version2.wav",
objectPath: "\\Actor-Mixer Hierarchy\\Default Work Unit\\<Sound SFX>MySound\\<AudioFileSource>OtherSource"
}
]
}


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"
}
]
}


Import several Audio Sources of different languages in the same Sound Voice at the same time:

{
importOperation: "useExisting",
imports: [
{
audioFile: "D:\\sources\\hello_en.wav",
objectPath: "\\Actor-Mixer Hierarchy\\Default Work Unit\\<Sound Voice>hello\\<AudioFileSource>hello_en",
importLanguage:"EN_US"
},
{
audioFile: "D:\\sources\\hello_fr.wav",
objectPath: "\\Actor-Mixer Hierarchy\\Default Work Unit\\<Sound Voice>hello\\<AudioFileSource>hello_fr",
importLanguage:"FR_CA"
}
]
}


info참고: 자신의 프로젝트에 반드시 해당 언어가 존재하는지 확인하고 대문자/소문자가 동일한지 확인합니다.

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

지원이 필요하신가요?

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

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

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

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

Wwise를 시작해 보세요