みなさん、こんにちは。フランス出身でテクニカル・サウンドデザイナーをやっているThomasです。私が作成したスクリプトの1つであるWwhisperの詳細の一部をAudiokineticのブログで紹介できることを光栄に思います。
Wwhisperとは?
Wwhisperはテイクマーカーやオートメーションレーンを使用して、REAPERからWwiseにコマンドを送ることができるReaScriptです。
スクリプトの実行中、REAPERはカスタム再生ステートに切り替わり、マーカーやオートメーションポイントを検出すると、それらの名前に応じてさまざまなアクションを実行します。ゲームオブジェクトの作成と配置、イベントのポスト、スイッチ、ステート、RTPCの設定を行うことができます。
功績のある者にはその功績を認めよう
師匠と仰ぐVincent Sergentと、パーティーゲーム技術の融合について話し合いました。パーティーゲームのオーディオランドスケープはペースが速く、分割表示のマルチプレイヤー設定であるため、カオス状態になることも珍しくありません。このようなケースには、Wwise HDRなどの動的ミキシング技術が最適ではないかという考えが浮かびました。これを具体的に示すために、この機能を使用したWwiseプロジェクトを試作することにしました。
彼との会話中に、非常にすばらしいYouTubeコンテンツをいくつか思い出しました。Marc Hasselbalchの動画「creating a re-sound of a Hitman sequence using Max」は特に印象深いものでした。また「Bernard Rodrigue and Andrew Costa’s talk at ADC 22」も非常に参考になりました。
当時このようなツールは公開されておらず、私はUnrealを使用してフレームワークの開発に何か月も没頭しました。Andrewが私のくだらない質問にも答えてくれたおかげで、ついに独自の解決策にたどり着きました。
Wwhisperの使用方法
Wwhisperは3つのパートで構成されています。2つのスクリプトと1つのJSFXプラグインです。
Wwhisper:メインの再生スクリプトです。
Wwhisper Assistant:これは必須スクリプトではありませんが、プロセスを効率化してくれるため、問題を減らすことができます。
kusa_Wwhisper Params:RTPCを調整して3D空間にゲームオブジェクトを配置するためのJSFXプラグインです。
インストール:
REAPER向けSWS Extensionを除くすべてのコンポーネントは、ReaPackから入手できます。
- REAPERでExtensions/ReaPack/Import repositories…に移動します
- Audiokineticのリポジトリへのリンクをhttps://github.com/Audiokinetic/Reaper-Tools/raw/main/index.xmlにペーストします
- 私のリポジトリも同様に、https://github.com/TFKusa/kusa_reascripts/raw/master/index.xml にペーストします
- これでExtensions/ReaPack/Browseパッケージを選択して以下のエレメントをインストールできるようになります
ReaWwise、kusa_Wwhisper、kusa_Wwhisper Params、kusa_Wwhisper Assistant
設定:
ゲームエンジン環境をシミュレートするには、まずリスナーが必要です。メインスクリプトを実行すると、Wwhisperはワールドの原点(0,0,0)にリスナーのゲームオブジェクトを作成します。
次に必要になるのは、ゲームオブジェクトを作成する機能です。私はDAW世界のゲームオブジェクトに適したパラレルは、トラックだと考えました。
Wwhisperはセッション内のすべてのトラックをスキャンして、それぞれに対応するゲームオブジェクトを生成し、そのトラック名を継承します。複数のトラックが同じ名前を共有している場合、ゲームオブジェクトは1つだけ作成されます。特に大量のマーカーを扱う場合、この機能はセッションを効率的に編成するために役立ちます。
Assistantの使用
トラックを介したゲームオブジェクトの作成:
新規トラックとアイテムの作成:空のアイテムとJSFXプラグインを挿入した新しいトラックを生成します。REAPERにインポートされた動画がある場合、その動画を選択すると、新しいアイテムの長さは動画のデュレーションと同じになります。または、時間選択を設定できます。
Wwiseとの同期:
「Sync with Wwise」ボタンをクリックすると、すべてのイベント、RTPC、スイッチ、ステートのリファレンスが現在のWwiseプロジェクトからインポートされます。これらはそれぞれのフィールドに表示されるため、簡単にアクセスできます。
テイクマーカーを使用したイベント、ステート、スイッチの操作:
ターゲットアイテムを選択し、マーカーが必要な位置に再生カーソルを置きます。マーカーのカラーを選択し、トリガータイプを指定します。次に対応するWwiseオブジェクトを選択して、「Create take marker」をクリックします。
RTPCの管理:
オートメーションレーン:AssistantウィンドウでRTPCのタイプを設定し、RTPC名を入力します(または同期リストから選択)。次に最小範囲と最大範囲を設定し(同期機能により自動入力)、ターゲットトラックやゲームオブジェクトを選択してから、「Create RTPC automation lane」をクリックします。
JSFX RTPCパラメータ:これらの範囲は0から100で、実際のRTPC範囲のパーセンテージを示します。そのため、スクリプトでパーセンテージを実際の値に変換できるよう、最小値と最大値の入力が必要です。
リスナーと世界の動き:
一般的なゲームシナリオでは、3D空間を動き回るのはリスナーです。しかし、Wwhisperがデザインされた最大の目的は、通常プレイヤーが中央から動かないゲームプレイ動画との連携であるため、私たちのケースではゲームの世界がリスナーの周りを動きます。
RTPCの場合と同様に、ポジショニングはオートメーションレーンとJSFXプラグインを介して管理されます。
Front/BackおよびUp/Down:これらの軸は絶対値であるため、ポジショニングは明快です。
Left/Right:この軸はFront/Backに対して相対的になります。Left/Rightを-100に設定すると、常にオブジェクトが左にハードパンニングされ、100に設定すると右にハードパンニングされます。
2Dレイアウトの場合はこの設定が適していますが、3D空間への正確なオブジェクトのポジショニングは推測に頼らざるをえません。私は当時ほかにもプロジェクトをいくつか担当していましたが、2DパンナーVSTを組み込むことを計画しました。これはゲームオブジェクトを適切に空間化するために役立ちました。
再生:
メインのWwhisperスクリプトを実行するだけで、設定したシーケンスを再生できます。再生カーソルがマーカーやオートメーションカーブを通過すると、特殊な再生ステートがトリガーされ、Wwiseに命令が送られます。
その他のコマンド:
Wwhisperでは通常ほとんどのタスクが自動的に管理されますが、使用できるコマンドがほかにもいくつかあります。
Register Game Object
Unregister Game Object
Unregister All Game Objects
これらは高度な管理を行う場合に便利なコマンドですが、必要になることは稀です。
Wwhisper Assistantのユーティリティ
Wwhisper Assistantには各種ユーティリティが用意されています。これらのユーティリティは使いやすく、Assistantウィンドウの右上隅にあるUtilitiesチェックボックスを選択すると利用できます。
際立った機能の1つは、REAPERフォーラムスレッドでユーザundertheradar84によってリクエストされたGenerate Project from Profiler TXTです。このツールを使用すると、Wwise Capture Logをテキスト形式でインポートして、ファイルに記録されたイベントのシーケンスを複製するReaper/Wwhisperのセットアップファイルを自動的に生成できます。使い方は以下の通りです。
Wwise Capture Logの準備:
Wwise > Project > Profiler Settingsの順に選択します。
API CallsとGame Syncsの両方が有効になっていることを確認します。これにより必要な情報がCapture Logに追加されます。
Capture Log列の設定:
Capture Log列を右クリックして、Configure Columnsを選択します。
インポートの対象にする関連エレメントをすべて選択します。
該当するエンジンにWwiseを接続してログを保存:
保存アイコンをクリックして、ログをテキストファイルで保存します。
Capture Logの準備が整ったら、UtilitiesセクションのGenerate Project from Profiler TXT機能を使用します。
このスクリプトはログを処理して、対応するReaper/Wwhisperのセットアップファイルを作成します。
設定のファイナライズ:
プロジェクトを生成したら、リスナーのゲームオブジェクト(通常はメインカメラ)の名前を「Listener」に変更します。
Wwhisperを使用して制作した2つの反響サウンドは、私のYouTubeチャンネルでご覧いただけます。
Super Smash BrosUltimate - Lies of P
最後までお読みいただきありがとうございます。私でお役に立てることがありましたら、こちらのREAPERフォーラムスレッドを使用してメッセージをお送りください。このブログ記事がお役に立てれば幸いです。Audiokineticに感謝申し上げます。
コメント