バージョン

menu_open
Wwise SDK 2021.1.14
プロジェクトを複数のWwise対応プラットフォーム向けにビルドする

プラグインをビルドする

build コマンドが、既に生成されたソリューション(プロジェクトフォルダにソリューションがなければ、 プリメイクでプロジェクトを設定する を参照)を使い、プラグインをコンパイルし、バイナリファイルをWwiseの実装にコピーします。 このコマンドは、プロジェクトフォルダ内からコールする必要があり、適切に機能するためには、いくつかの引数が必要です。これは典型的なビルドコマンドです:

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

これでプロジェクトがreleaseモード( -c フラグ)でビルドされますが、ターゲットのアーキテクチャは x64( -x フラグ)、MSVCツールセットはvc160( -t フラグ)、プラットフォームは現在のオペレーティングシステムのAuthoringプラットフォームとなります。引数に可能な値については、 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>" ディレクトリが存在する場合は、以下の2つのファイルが含まれます。

  • ToolchainVers.txt はそのプラットフォーム用にサポートされるツールチェーンバージョンのリストを指定します
  • GetToolchainEnv.pyはToolchainVers.txtの値の1つを引数として受け、ビルド処理中に適用する環境変数を決定します

必要に応じてwp.pyのビルドコマンドの実行時にどちらかをオーバーライドすることが可能で、その場合はコマンドラインにおいて"--toolchain-vers {file}"または"--toolchain-env-script {file}"を指定します。独自ビルド構造を維持したい場合や、Wwise SDKとは別のツールチェーン用にプラグインを公開したい場合などに、これを行うことができます。

さらにwp.pyで生成されるプロジェクトは、定義された環境に基づき、プロジェクトのコンパイル対象であるツールチェーンバージョンに合わせてビルド出力フォルダを自動的に調整します。各プラットフォームでどのようにこれを判断しているかについては、該当するプラットフォーム専用の情報ページにおいて詳細をご確認ください。

ターゲットプラットフォームの追加

あなたのプラグインの開発中に、いつでもターゲットプラグインを追加できます。追加するには、プラットフォームをプリメイクしてビルドします。おそらくあなたは、少なくとも1つのプラットフォームをビルドしたいと考え、もし 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 フラグを 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") # Name of the platform that was built (Authoring, Windows_vc140, etc.)
arch = kwargs.get("arch") # The architecture that was built (Win32_vc140, x64_vc140, etc.)
config = kwargs.get("config") # The configuration that was built (Debug, Profile, Release)
# Put your code here
# ...

こちらの例では、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 ファイルは、プラグインディレクトリのルート(root)に保存します。

こちらの例では、DLLファイル "library.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")
# Build a multimap of destination folders => files to copy
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)
]
# Copy all of the file to their destination
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 Launcherからすぐにインストールできるフォーマットにパッケージすることです。 詳細は、プラグインをAudiokinetic Launcher用にパッケージングする をご覧ください。

次のセクション: プラグインをAudiokinetic Launcher用にパッケージングする


このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう