목차

소스 코드에서 네이티브 Integration 플러그인 빌드하기

Wwise-Unity 통합은 네이티브 Wwise API를 호출하는 얇은 C# 레이어라고 할 수 있습니다. 그리고 모든 플랫폼용으로 미리 생성되어 제공됩니다. 대부분의 경우 이 Integration 플러그인을 다시 생성할 필요가 없습니다. 하지만 소스 코드가 있을 경우, 이 소스 코드를 변경해서 커스터마이징한 변경 사항을 네이티브 사운드 엔진에 통합하거나 사운드 엔진과 연결하는 C++ 코드를 변경하고자 할 수 있습니다. 이 작업은 C++ 지식을 어느 정도 알고 있는 프로그래머가 처리해야 합니다.

작업 단계

  1. Wwise Launcher(와이즈 런처)를 사용하여 빌드하고자 하는 플랫폼의 Wwise SDK를 설치하세요. 로그오프한 후 다시 로그인하세요.
  2. 사용 중인 운영 체제 (Windows나 Mac)의 소스 압축 파일을 찾으세요. 이 파일은 Launcher에서 Wwise 통합을 Unity에 추가할 때 함께 설치됩니다. (압축 파일의 이름이 _Src.zip로 수정되어 있습니다).
  3. 빌드하고자 하는 플랫폼의 소스 압축 코드를 찾으세요 (Windows나 Mac이 아닌 다른 플랫폼).
  4. 이 Integration을 빌드하는 데 필요한 선행 조건을 확인하세요. 자세한 내용은 선행 조건 을 참고하세요.
  5. 모든 소스 압축 파일을 동일한 폴더 안으로 압축 해제하세요. 자세한 내용은 Unity 프로젝트에서 통합 설치/업그레이드하기 을 참고하세요.
  6. 콘솔 유틸리티를 사용하여 빌드하기 혹은 통합 개발 환경 (Integrated Development Environment, IDE)를 사용하여 빌드하기 이 두 가지 방법 중 하나를 사용하여 빌드 과정을 시작하세요.
  7. 빌드가 완료될 때까지 기다리세요. 빌드 작업이 성공적으로 완료되면 Deployment 폴더 아래 있는 플러그인과 API 바인딩이 업데이트되거나 이전에 없었을 경우 새로 만들어집니다.

참고 사항

  • 빌드 작업 동안 Build Log 에 있는 로그 메시지를 확인하면 경고, 오류, 중요한 메시지를 모니터링할 수 있습니다.

Integration 을 직접 빌드하는 데 필요한 내용:

플랫폼 필요한 컴포넌트
모든 플랫폼
  • Unity 5 (Personal 혹은 Pro)
  • 대상 플랫폼과 호환하는 Wwise SDK. 릴리즈 노트 - Wwise Unity 통합 2019.1.0.6947.1394 참고.
  • 대상 플랫폼과 호환하는 플랫폼 SDK. Wwise SDK 도움말 (참고 자료 > 플랫폼 필수 조건 섹션) 참조.
  • Python(파이썬) 2.7.x이나 3.x와 시스템 실행 경로 안에 Python 실행 폴더
Android
  • Android SDK: 32비트의 경우 최소 API 14, 64비트의 경우 최소 API 21.
  • Android NDK r17c.
  • Apache(아파치) Ant 1.8.4.
  • Wwise SDK로의 경로에 띄어쓰기가 없어야 합니다.

  • Unity 프로젝트로의 경로에 띄어쓰기가 없어야 합니다.

  • 환경 변수:
    • ANDROID_HOME 은 Android SDK 루트 폴더를 가리켜야 합니다.
    • ANDROID_NDK_HOME 은 Android NDK 루트 폴더를 가리켜야 합니다.
    • NDKROOT 은 Android NDK 루트 폴더를 가리켜야 합니다.
    • ANT_HOME 은 Apache Ant 루트 폴더를 가리켜야 합니다.
iOS
  • Xcode 9 버전 이상.
  • iOS용 Wwise SDK와 이를 가리키는 WWISESDK 환경 변수
Linux
  • Build-essential(빌드 에센셜) (sudo apt-get install build-essential)
  • SDL2 (SDL2라이브러리 설치 방법은 Linux용으로 빌드하기 참고)
  • Linux용 Wwise SDK와 이를 가리키는 WWISESDK 환경 변수
Mac
  • Xcode 9 버전 이상.
  • Mac용 Wwise SDK와 이를 가리키는 WWISESDK 환경 변수
PS4 Visual Studio 2015 버전 이상.
Windows Visual Studio 2015 버전 이상.
Windows Store Visual Studio 2015 버전 이상.
Xbox One Visual Studio 2015 버전 이상.

소스 패키지 설치 방법

소스 패키지를 압축 해제하세요. 그런 다음 대상 플랫폼의 소스 패키지와 Wwise SDK 설치만으로 Integration 콘텐츠를 다시 빌드하고 생성하세요. 경우에 따라 Wwise 폴더 안에 있는 압축 해제된 콘텐츠를 Unity 프로젝트의 Asset 폴더 안에 있는 Integration 유니티 패키지와 합칠 수도 있습니다. 하지만 이 경우 Assets 폴더 안에 원치 않는 중간 파일이 생길 수 있습니다. 이 중간 파일은 직접 제거해야 합니다.

설치된 Integration 패키지의 폴더 구조

  • StreamingAssets: 자동 SoundBank 배포에 사용되는 폴더
  • Wwise: 최상위 계층 폴더.
    • Deployment: 애플리케이션에서 사용되는 주요 Integration 파일.
      • API: C++에서 C#로의 바인딩 파일. 이 파일은 네이티브 Wwise SDK의 번역본입니다.
      • Dependencies: 특정 플랫폼에서 필요로 하는 서드파티 Unity 스크립트.
      • Components: 커스텀 컴포넌트의 예시이며 직접 사용할 수 있는 Unity 컴포넌트 스크립트.
      • Plug-ins: 다양한 구성과 디버그 심볼 데이터 베이스가 담긴 Unity 플러그인 라이브러리
        • Platform
          • Architecture: 멀티 아키텍처 플랫폼의 아키텍처에 의해 공유되는 파일.
            • Debug: 플러그인 바이너리의 Debug 버전. 자세한 내용은 Wwise 플러그인 배포 을 참고하세요.
            • Profile: 플러그인 바이너리의 Profile 버전. 자세한 내용은 Wwise 플러그인 배포 을 참고하세요.
            • Release: 플러그인 바이너리의 Release 버전. 자세한 내용은 Wwise 플러그인 배포 을 참고하세요.
            • DSP: Wwise 플러그인 Effect.
    • Documentation: Integration에 대한 전체 문서.
    • Editor: WwiseUnityIntegration이 사용하는 모든 에디터 창과 인스펙터.
    • Tools: 추가 기능을 제공하는 애플리케이션 도구.

설치된 소스 패키지의 폴더 구조.

  • Wwise: 최상위 계층 폴더.
    • AkSoundEngine: Integration을 빌드하는 데 필요한 소스 코드와 IDE 프로젝트. 플랫폼 별로 구성되어 있습니다.
      • Common: 지원하는 모든 플랫폼에 의해 사용되는 소스 코드와 빌드 스크립트.
      • Platform: 대상 플랫폼의 IDE 솔루션 혹은 프로젝트, 소스 코드, 플랫폼 별 빌드 스크립트.
    • Integration/Assets/Wwise/Deployment: 애플리케이션에 의해 사용되는 주요 Integration 파일.
      • API: API 바인딩의 최상위 계층 폴더.
        • Generated: SWIG 바인딩 단계 동안 생성된 API 바인딩 파일.
        • Handwritten: 직접 제작한 API 바인딩 파일.
      • Components: 커스텀 컴포넌트의 예시이며 직접 사용할 수 있는 기본 Unity 컴포넌트 스크립트.
      • Plugins: 모든 Wwise 플러그인 (AkSoundEngine을 빌드한 후에 작성됩니다).
        • <platform>: 적용 가능한 플랫폼 폴더.
          • <architecture>: 적용 가능한 플랫폼 아키텍처.

콘솔 유틸리티를 사용하여 빌드하기

Wwise\AkSoundEngine\Common\BuildWwiseUnityIntegration.py 에 있는 빌드 스크립트를 사용하면 명령줄에서 Integration을 빌드할 수 있습니다. 이 기능은 지속적 통합에 유용합니다. 사용자의 현재 작업 중인 파일이 스크립트의 상위 폴더라는 가정 하에 사용법과 예시를 확인하려면 컴퓨터에서 명령 콘솔을 입력하세요.

python BuildWwiseUnityIntegration.py -h

통합 개발 환경 (Integrated Development Environment, IDE)를 사용하여 빌드하기

Wwise Unity 통합 소스 패키지의 다음 부분에 있습니다.

WwiseUnityIntegration_version_platform_Src.zip\Wwise\AkSoundEngine\YourPlatform

이 솔루션 (혹은 Xcode 프로젝트)는 지원되는 IDE에서 대상 플랫폼의 Integration을 빌드할 수 있게 해줍니다.

Xcode를 사용하여 Mac이나 iOS용으로 빌드하기

명령줄에서 Wwise 통합을 빌드할 경우 WWISESDK 경로가 Xcode에 자동으로 제공됩니다. 이 경로는 환경 변수인 $WWISESDK 에서 설정된 경로나 -w 옵션을 사용하여 빌드 스크립트에 제공된 경로에 따라 결정됩니다. 하지만 Xcode IDE를 사용할 경우 WWISESDK 경로를 반드시 직접 설정해합니다. 수동으로 경로를 설정하려면 Mac이나 iOS용 Xcode 프로젝트를 열고 프로젝트 탐색기에서 AkSoundEngine{platform} 프로젝트를 선택하세요. Build Settings 페이지를 선택하세요. 페이지의 하단에 User-Defined 섹션과 WWISESDK 설정 키가 있습니다. 설정 값을 WWISESDK 경로로 설정해서 Wwise 통합을 빌드하세요 (예: /Users/myUser/Wwise/SDK).

Linux 플랫폼용으로 빌드하기

premake5가 생성한 makefile이 들어 있습니다. 소스에서 Linux 플러그인을 빌드하려면 다음 명령을 터미널에 입력하세요.

  • cd <Integration source location>/AkSoundEngine/Linux
  • make config=<config>

<config> 가 debug_x32profile_x32, release_x32, debug_x64, profile_x64, release_x64일 경우. 빌드된 플러그인은 <Integration source location>/Deployment/Plugins/Linux 안에 배치됩니다.

새로운 라이브러리에 배포하기

생성되는 바이너리은 Wwise\Deployment\Plugins\[Platform]에서 찾을 수 있습니다. Assets\Wwise 폴더에서 소스를 압축 해제하지 않은 경우 그 폴더에서 프로젝트의 Assets 폴더 안의 상응하는 폴더로 새로운 바이너리를 복사해넣으세요.

내부 정보

통합 코드를 빌드하기 위해 소스를 패키징하기 전에, SWIG를 사용해서 Unity에서 Wwise SDK에 필요한 API 바인딩을 생성합니다. 대부분의 사용자는 Unity에서 Wwise를 사용할 때 SWIG가 전혀 필요하지 않습니다. 변환된 API가 담긴 통합 코드를 빌드하는 Unity 소스를 위한 Wwise에 접근할 수 있는 고급 사용자이더라도 SWIG를 설치하거나 사용할 필요가 없습니다. 유일한 예외 사항으로 사운드 엔진의 변경 사항을 통합하거나 사운드 엔진과 연결하는 C++ 코드를 변경할 경우에는 SWIG가 필요합니다. 이렇게 드문 경우에는 작업을 진행하기 전에 먼저 저희 지원팀에게 연락을 취해주세요.

빌드 과정은 다음 작업을 수행합니다.

  1. Wwise SDK 라이브러리가 Unity 플러그인으로서 하나의 라이브러리로 싸여집니다. 이 라이브러리는 Windows에서는 동적 라이브러리 (.dll)로, Mac에서는 로드 가능한 번들 (.bundle)로, iOS에서는 정적 라이브러리 (.a)로, Android에서는 공유 라이브러리 (.so)로 생성됩니다. 이 라이브러리는 Deployment 폴더 안으로 직접 생성됩니다. 폴더 구조는 Unity 프로젝트에서 통합 설치/업그레이드하기 을 참고하세요.
참고:
생성시간 : Fri Mar 29 16:14:34 2019, 프로젝트명 : Wwise Unity Integration, 생성자 :   doxygen 1.6.3