버전

menu_open
Wwise SDK 2022.1.16
다른 Wwise 플랫폼에 프로젝트 빌드하기

플러그인 빌드하기

build 명령은 이전에 생성된 솔루션을 사용하여 플러그인을 컴파일하고 바이너리 파일을 Wwise 설치에 복사해넣습니다 (프로젝트 폴더에 아무 솔루션도 없는 경우 Premake로 프로젝트 환경 설정하기 를 참고하세요). 이 명령은 프로젝트 폴더 안에서 호출돼야 하며, 제대로 작동하기 위해 몇 가지 전달인자가 필요합니다. 다음은 많이 사용되는 빌드 명령입니다.

python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build -c Release -x x64 -t vc160 Authoring

이 명령은 현재 운영 체제의 플랫폼 Authoring에 대해 아키텍처 x64 (-x flag) 및 MSVC 툴셋 vc160 (-t flag)을 대상으로 하는 release 모드 (-c flag)에서 프로젝트를 빌드합니다. 전달인자로 어떤 값을 사용할 수 있는지에 대한 내용은 build 명령의 설명을 참고하세요.

python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build -h

바이너리가 사용자의 Wwise 설치 경로에 직접 출력되며 테스트할 준비가 완료됩니다.

  • SoundEngine 플러그인 부분에 대해서는 "%WWISEROOT%/SDK/<Platform>/<Config>/{bin,lib}"를 확인하세요.
  • Windows의 Authoring 플러그인 부분에 대해서는 "%WWISEROOT%/Authoring/x64/<Config>/bin/Plugins"를 확인하세요.
  • macOS의 Authoring 플러그인 부분에 대해서는 "%WWISEROOT%/Authoring/macosx_gmake/<Config>/bin/Plugins"를 확인하세요.
  • Linux의 Authoring 플러그인 부분에 대해서는 "%WWISEROOT%/Authoring/linux_gmake/<Config>/bin/Plugins"를 확인하세요.
  • Documentation 플러그인 부분에 대해서는 "%WWISEROOT%/Authoring/Data/Plugins/<PluginName>/Html"을 확인하세요.

참고: 일부 플랫폼은 각 프로젝트 빌드 호출에 대해 고유한 환경 변수 설정을 포함, build 명령 실행 도중 여러 툴체인 버전에 대해 플러그인을 빌드합니다. 각 지원 플랫폼, 즉 "%WWISEROOT%\Scripts\ToolchainSetup\<Platform>" 디렉터리에는 두 파일이 들어있습니다.

  • ToolchainVers.txt: 해당 플랫폼에 대해 지원되는 툴체인 버전 목록.
  • GetToolchainEnv.py: ToolchainVers.txt의 값 중 하나를 전달인자로 사용하여 빌드 처리 중 적용될 환경 변수를 결정.

필요한 경우 wp.py에서 빌드 명령을 실행할 때 명령줄에서 "--toolchain-vers {file}" 또는 "--toolchain-env-script {file}"을 지정해 위의 두 파일 중 하나를 오버라이드할 수 있습니다. 자신의 빌드 구조를 유지하고 싶은 경우, 또는 Wwise SDK와는 별개로 툴체인에 대한 플러그인을 배포하고자 할 경우 이 방법을 사용할 수 있습니다.

또한 wp.py가 생성한 프로젝트는 정의된 환경에 따라 해당 프로젝트가 컴파일된 툴체인 버전에 대해 빌드 출력 폴더를 자동으로 조정합니다. 이 같은 내용이 각 플랫폼에 대해 어떻게 결정되는지에 대한 더 자세한 내용은 해당 플랫폼 전용 정보 페이지를 참고하세요.

대상 플랫폼 추가하기

대상 플랫폼은 플러그인 개발 도중 어느 단계에서든 추가할 수 있습니다. 추가는 플랫폼의 사전 제작 및 빌드를 통해 이뤄집니다. 그러기 위해서는 최소 하나 이상의 플랫폼을 빌드해야 하며, Authoring 을 위해 빌드할 경우 Documentation 또한 함께 빌드해야 합니다. 이렇게 하면 특정 속성이 선택됐을 때 Property Help 패널에 표시되는 플러그인 속성에 대한 문서를 설치하게 됩니다.

예시로, 명령줄에 다음과 같은 내용을 실행해 Windows_vc160과 Authoring 플랫폼을 사전 제작하고 빌드해볼 수 있습니다.

python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" premake Windows_vc160
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" premake Authoring
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Windows_vc160 -c Release -x x64
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Authoring -c Release -x x64 -t vc160
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Documentation

후크를 이용해 빌드 후 동작 실행하기

특정 대상을 빌드한 다음 커스텀 동작을 실행시키는 경우가 있습니다. 이를 위해서는 –build-hooks-file flag를 build 명령에 추가하고 Python 파일을 지정합니다. 이 파일은 반드시 User에 의해 생성돼야하며, new 명령에 의해 생성되는 초기 스켈레톤의 일부분이 아닙니다. 다음은 빌드 후 후크 파일에 들어갈 수 있는 내용의 예시입니다.

# build_hooks.py
# 빌드 후 후크를 정의. 대상이 성공적으로 빌드될 때마다
# 플러그인 개발 툴에 의해 호출되는 함수.
def postbuild(**kwargs):
WWISE_ROOT = kwargs.get("wwise_root") # Wwise 설치 루트의 절대 경로
PROJECT_ROOT = kwargs.get("project_root") # 플러그인 디렉터리 루트의 절대 경로
platform = kwargs.get("platform") # 빌드된 플랫폼의 이름 (Authoring, Windows_vc140, 등)
arch = kwargs.get("arch") # 빌드된 아키텍처 (Win32_vc140, x64_vc140, 등)
config = kwargs.get("config") # 빌드된 환경 설정 (Debug, Profile, Release)
# 사용자의 코드를 여기에 입력
# ...

이 예제에서는 Windows_vc160과 Authoring 플랫폼에 대해 빌드 후 후크를 호출합니다.

python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Windows_vc160 -c Release -x x64 --build-hooks-file=build_hooks.py
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Authoring -c Release -x x64 -t vc160 --build-hooks-file=build_hooks.py
python "%WWISEROOT%/Scripts/Build/Plugins/wp.py" build Documentation

build_hooks.py 파일은 반드시 플러그인 디렉터리의 루트에 위치해야 합니다.

또 다른 예제에서는 "library.dll" DLL 파일을 플러그인 디렉터리로부터 Wwise 설치로 복사해 넣습니다.

import os
import shutil
import sys
def postbuild(**kwargs):
WWISE_ROOT = kwargs.get("wwise_root")
PROJECT_ROOT = kwargs.get("project_root")
platform = kwargs.get("platform")
arch = kwargs.get("arch")
config = kwargs.get("config")
# 대상 폴더의 multimap 빌드 => 복사할 파일
platform_files = {}
if platform == "Authoring_Windows":
platform_files["Authoring/x64/{}/bin/plugins".format(config)] = [
"Prebuilt/x64/{}/library.dll".format(config)
]
elif platform == "Windows_vc160":
platform_files["SDK/{}/{}/bin".format(arch, config)] = [
"Prebuilt/{}/{}/library.dll".format(arch, config)
]
# 대상에 모든 파일 복사
for dest, files in platform_files.items():
dest = os.path.join(WWISE_ROOT, dest)
for file in files:
file = os.path.join(PROJECT_ROOT, file)
try:
shutil.copy(file, dest)
print("POSTBUILD HOOK: Copied {} to {}".format(file, dest))
except IOError:
sys.stderr.write("POSTBUILD HOOK: Failed to copy {} to {}\n".format(file, dest))

플러그인 개발의 가장 마지막 단계는 Audiokinetic 런처가 곧바로 설치할 수 있는 형태로 플러그인을 패키징하는 것입니다. 자세한 내용은 Audiokinetic 런처를 위해 자신의 플러그인 패키지하기 를 참고하세요.

다음 섹션: Audiokinetic 런처를 위해 자신의 플러그인 패키지하기


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

지원이 필요하신가요?

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

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

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

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

Wwise를 시작해 보세요