プラグインをビルドする
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" へ。
info |
注釈: 一部のプラットフォームでは 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
コマンドで生成する最初のスケルトンには含まれていません。例えば、ビルド後のフックファイルは以下のような内容になります:
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")
こちらの例では、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")
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 Launcherからすぐにインストールできるフォーマットにパッケージすることです。 詳細は、プラグインをAudiokinetic Launcher用にパッケージングする をご覧ください。
次のセクション: プラグインをAudiokinetic Launcher用にパッケージングする