버전

menu_open
Wwise SDK 2019.1.11
Python (로우레벨) - WAMP 구독자/발행자

프로젝트 초기화하기

참고: Python 2.7을 사용할 경우, Python 2.7을 위한 Microsoft Visual C++ Compiler를 설치해야 합니다.

어느 디렉터리에서든 상관 없이 다음 명령을 실행해 종속성을 설치하세요.

pip install autobahn

Python 2.7을 사용할 경우, 다음 명령을 실행해 추가 패키지를 설치하세요.

pip install trollius futures

프로젝트 코드

참고: from waapi_uri import WAAPI_URI 라인은 API 경로의 선언을 가져옵니다.

이는 <Wwise installation path>/SDK/include/AK/WwiseAuthoringAPI/py에 있습니다. 이 예제에서는 이 파일의 위치를 sys.path 를 확장해 Python 경로에 동적으로 추가했지만 예제 파일들과 같은 위치에 waapi.py 파일을 복사해넣어도 됩니다.

추가 파일 ak_authobahn.py는, WAAPI로 전송되는 사용자 지정 옵션을 지원하도록 요소의 특별한 타입을 제공합니다. 이 파일은 예제 디렉터리에 있습니다.

Python 2.7

예제 파일은 <Wwise installation path>/SDK/samples/WwiseAuthoringAPI/python/low-level/wwise-pubsub-wamp/get_ancestors_py2.py에 있습니다.

이 파일에는 다음 코드가 포함돼있어 Wwise Authoring API에 연결할 수 있게 해줍니다.

import sys
import os
import trollius as asyncio
from trollius import From
from autobahn.asyncio.wamp import ApplicationRunner
from ak_autobahn import AkComponent
# You may also copy-paste the waapi.py file alongside this sample
sys.path.append(os.path.join(os.path.dirname(__file__), '../../../../../include/AK/WwiseAuthoringAPI/py'))
from waapi_uri import WAAPI_URI
done = False
class MyComponent(AkComponent):
def onJoin(self, details):
subscription = None
def on_object_created(**kwargs):
yield From(subscription.unsubscribe())
result = kwargs[u"object"]
print("The object was created in the category: {}".format(result.get(u"category", "unknown")))
arguments = {
u"from": {u"id": [result.get(u"id")]},
u"transform": [{u"select": [u"ancestors"]}],
u"options": {
u"return": [u"name"]
}
}
res = yield From(self.call(WAAPI_URI.ak_wwise_core_object_get, **arguments))
ancestors = res.kwresults[u"return"]
print(u"Ancestor of {}:".format(result[u"id"]))
for ancestor in ancestors:
print("\t{}".format(ancestor[u"name"]))
global done
if not done:
self.leave() # Disconnect
done = True
subscribe_args = {
u"options": {
u"return": [u"id", u"name", u"category"]
}
}
# Subscribe to ak.wwise.core.object.created
# Calls on_object_created whenever the event is received
subscription = yield From(self.subscribe(on_object_created,
WAAPI_URI.ak_wwise_core_object_created,
**subscribe_args))
print("Create an object in the Project Explorer")
def onDisconnect(self):
print("The client was disconnected.")
asyncio.get_event_loop().stop()
if __name__ == '__main__':
runner = ApplicationRunner(url=u"ws://127.0.0.1:8080/waapi", realm=u"get_ancestors_demo")
try:
runner.run(MyComponent)
except Exception as e:
print(type(e).__name__ + ": Is Wwise running and Wwise Authoring API enabled?")

Python 3.6

예제 파일은 <Wwise installation path>/SDK/samples/WwiseAuthoringAPI/python/low-level/wwise-pubsub-wamp/get_ancestors_py3.py에 있습니다.

이 파일에는 다음 코드가 포함돼있어 Wwise Authoring API에 연결할 수 있게 해줍니다.

import asyncio
import sys
import os
from autobahn.asyncio.wamp import ApplicationRunner
from ak_autobahn import AkComponent
# You may also copy-paste the waapi.py file alongside this sample
sys.path.append(os.path.join(os.path.dirname(__file__), '../../../../../include/AK/WwiseAuthoringAPI/py'))
from waapi_uri import WAAPI_URI
done = False
class MyComponent(AkComponent):
def onJoin(self, details):
subscription = None
def on_object_created(**kwargs):
yield from subscription.unsubscribe()
result = kwargs[u"object"]
print("The object was created in the category: {}".format(result.get(u"category", "unknown")))
arguments = {
"from": {"id": [result.get(u"id")]},
"transform": [{"select": ["ancestors"]}],
"options": {
"return": ["name"]
}
}
res = yield from self.call(WAAPI_URI.ak_wwise_core_object_get, **arguments)
ancestors = res.kwresults[u"return"]
print(u"Ancestor of {}:".format(result[u"id"]))
for ancestor in ancestors:
print("\t{}".format(ancestor[u"name"]))
global done
if not done:
self.leave() # Disconnect
done = True
subscribe_args = {
"options": {
"return": ["id", "name", "category"]
}
}
# Subscribe to ak.wwise.core.object.created
# Calls on_object_created whenever the event is received
subscription = yield from self.subscribe(on_object_created,
WAAPI_URI.ak_wwise_core_object_created,
**subscribe_args)
print("Create an object in the Project Explorer")
def onDisconnect(self):
print("The client was disconnected.")
asyncio.get_event_loop().stop()
if __name__ == '__main__':
runner = ApplicationRunner(url=u"ws://127.0.0.1:8080/waapi", realm=u"get_ancestors_demo")
try:
runner.run(MyComponent)
except Exception as e:
print(type(e).__name__ + ": Is Wwise running and Wwise Authoring API enabled?")

프로젝트 실행하기

다음 명령을 실행해 예제 파일을 해당 디렉터리에서 실행하세요.

Python 2.7:

python get_ancestors_py2.py

Python 3.6:

python get_ancestors_py3.py

Projet Explorer에서 오브젝트를 생성하면 상위 오브젝트 목록이 표시됩니다. 상위 오브젝트를 가져오면 예제 실행이 종료됩니다.


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

지원이 필요하신가요?

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

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

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

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

Wwise를 시작해 보세요