Voice Inspector
Wwiseの柔軟性がここまで高まると、プロジェクトがさほど大きくなくても、いずれ なんでこのサウンドのボリュームがこんなに小さいの? という疑問が出てきます。それに答えてくれるのがVoice Inspectorで、あるボイスの寿命がつきるまでの、そのボイスのボリューム、LPF、HPFの変化をすべて、確認できます。Voice InspectorのVoice Graphパネルに、1つのボイスだけが表示され、そのボイスの各接続、各パス(ドライ、ウェット)、各レイ(ray)(複数のリスナーと、ゲームオブジェクト同士の関係性をつなげる役)の詳細が示されるので、ボイスプロパティをくまなく調査したいときに、不明点を排除してくれます。
具体的には、Voice InspectorにVolume、LPF、HPFなどの変化が表示される対象は、以下の通りです:
- ボイス階層にある全オブジェクト、つまりオーディオデバイスごとの、ソースから、Master Audio Busに至るまでの、全オブジェクト。
- RTPC、States、HDR、Aux Sends、Event Actions、Mute、Solo。
- Distance減衰、Cone減衰、Obstruction、Occlusion。
- オートダッキング、メイクアップゲイン、Randomizer設定、一部のAPIコール。
さらに、Wwiseに新しいレイアウトとして、Voice Profiler (F11) が追加されました。Voice Profilerというレイアウトは、Voice Inspectorが中心ですが、それ以外にVoice Monitorも表示され、全ボイスボリュームの概要を確認できるほか、キャプチャーしたセッションのタイムラインを簡単にスクロールできます。
インタラクティブミュージック
Interactive Music Hierarchyで、デザイナーの作業効率や柔軟性の改善点が、2つ施されました。
- WwiseのEventを、Music Segmentでトリガーできるようになりました。新たなシナリオの可能性が生まれ、音楽とゲームプレイの結び付きをさらに強めたり、ゲームの楽曲のソニックバリエーションを増やしたりできます。
- Music Playlist Containerで設定する、音楽のトランジションの際のDestination(行き先)のJump先として、新たにLast Played SegmentとNext Segmentの2つが追加されました。プレイリストに戻る際に、最初から再生しなおすのではなく、最後に再生したところから続けることが可能になりました。例えば、MusicのSegment A、B、Cを、1つのMusic Playlist Containerで再生したあとに、別のMusic Playlist Containerにトランジションした場合、元に戻るときは、最初のMusic Playlist ContainerのCまたはDの冒頭から再生することができるようになり、Aから再生する必要はなくなりました。
組み込みオーディオ
Spatial Audioの動作やパフォーマンスは最適化され、さらに進化しています。
ポータルを通して伝搬するリフレクション(反射)
エミッターがリスナーと同じルームにいなくても、その音がポータルを通して聞こえる場合は、Wwise Reflectのアーリーリフレクションは、反射パスに、ポータルの回折(diffraction)を適用して、計算されます。
ルームやポータルを通るサウンドパス(sound path)を、ジオメトリに基づく回折パスによって調和
エミッターがリスナーと同じルームにいないケースでは、ジオメトリーによる回折(エッジ回折)から生成されるパスと、ポータルにおける回折から生成されるパスを組み合わせて、サウンドパスを計算します。
ポータルは、ジオメトリと交差する箇所に開口部を切り出す
リフレクションはポータルを通過することができ、ポータルの開口部で最大2つの平面が交差していても通過できます。ポータル自体が音響的な開口部なので、音を通過させるためにジオメトリに「穴をあける」必要はなく、音の伝搬のための三角形の総数を、大幅に減らせます。
Spatial Audioの最適化
- 更新の頻度の削減: 動作のスレッショルド(閾値)を、スペーシャルオーディオの新しい初期化パラメータでコントロールできます。エミッターとリスナーが、スレッショルド値で定義された半径外に移動しない限り、スペーシャルオーディオで再計算を行いません。その結果、精度を犠牲にするものの、CPU負荷を削減できます。実際には、パスの計算をフレーム毎に更新する必要はなく、精度とCPU負荷の妥当なバランスを見出すことができます。
- マルチスレッド対応: プラットフォームのinit設定経由でWwiseのサウンドエンジンのマルチスレッド処理を可能にすることで、Spatial Audioで、マルチスレッドを活用しながら複数のサウンドエミッターのパス計算を実行できるようになりました。
- ジオメトリの範囲を1つのルームに限定: 最適化の一貫として、個別のルームに音の伝搬のジオメトリセットをアサインすることで、反射面やレイの交差計算の検索範囲を、限定できるようになりました。
Wwiseオーサリングツール
Wwiseオーサリングツールは最新の機能や変更のおかげで、今までになく洗練されました。
ユーザーエクスペリエンスとワークフローの改善
- RTPCタブ
- RTPCタブを開くと、カーブの一覧の右側のパネルで、ゲームパラメータ、MIDI、LFO、Envelope、Timeなどのプロパティ値を直接変更できるようになりました。
- 新しくFind All Referencesボタンが追加され、ある変更要因を共有するオブジェクトがいくつあるのかを表示し、クリックするとReference Viewが開きます。
- スライダ、フェーダー、ドロップダウンメニュー、チェックボックスなどで、コンテキストメニュー(右クリック)から、RTPCを直接追加できるようになりました。
- 水平方向の分割線が追加されたので、多数のカーブを使うオブジェクトを表示するときなどに、大変便利になりました。
- 新しくEnable AttenuationというRTPC対応のプロパティが追加され、Attenuation ShareSetを適用するかどうかをコントロールできるようになりました。
- Source Editor
- 波形の編集能力を最大限にするために、Source Editorビューを整理しました。ソースの全プロパティを波形の右側のペインにまとめ、ペインの大きさを変えたり最小化したりできるようになりました。
- マーカーがSource Editorに表示されるようになり、その位置や名前を変更できるようになりました。
- Project Explorer
- オブジェクトをコピーし、そのオブジェクトの上からペーストすると、親オブジェクトを選択せずにオブジェクトのコピーを作成できます。
- レイアウト
- 最後に使用したレイアウトが保存され、次にプロジェクトをロードすると自動的に復元されます。
- Work Units
- 様々なプロジェクトからWork Unit(WWU ファイル)をインポートするときに、リンクされていなプロパティもサポートするようになりました。
- Logsビュー
- 新Logsビューに、起動、プロジェクトロード、SoundBank生成、オーディオファイルのコンバージョン、WAAPIなどに関するメッセージが表示されます。Project Load LogビューやSoundBank Generation Logビューの代わりとして導入された、新しいビューです。
- ログのサマリー情報が、Wwise画面の右上に追加され、ダブルクリックすると、Logsビューが開きます。
- Wwiseのスキン
- 実験的に導入された新スキンLightは、従来のスキンよりもUIのコントラストが高くなっています。
- スキンの色相が、ニュートラルグレー系の色に変わりました。
キーボードショートカット
- Mute、Soloのキーボードショートカットは、それぞれデフォルトでAlt+M、Alt+Sになりました。
- TabキーをProject Explorerで押すと、階層内を移動できます。
- ボタンのヒント(tooltip)に、割り当てられたキーボードショートカットが表示されます。
- 前のフレーム、次のフレームにProfilerレイアウトで移動する機能として、それぞれAlt+, 、Alt+. が、割り当てられました。
SoundSeed Grain
SoundSeed Grainというソースプラグインでは、複数のバグフィックスやUXの微調整のほか、以下が追加されました:
- Vorbisに対応しました。
- 全Envelopeタイプに関して、パフォーマンスを最適化しました。
- モジュレータアイコンを右クリックすると、簡単にモジュレーションを追加できます。
- モジュレータアイコンをダブルクリックすると、モジュレーションリストで、そのモジュレータが選択されます。
パフォーマンスの最適化
Wwiseの複数の領域で、最適化が行われました。
- Wwiseを使ったプロファイリング中の、ゲーム中のオーバーヘッドが、大幅に改善されました。特に過去に、プロファイリング中の動きが遅くなった経験のあるユーザーは、劇的な改善を期待できます。
- Performance Monitorに、カーブ毎に設定できるサンプリングインターバルの平均値が表示されるようになりました。Audio Thread CPUと、Total Plug-in CPUの、タイマーの設定で、オーディオフレーム毎の解像度を高周波に設定し、ほかのカーブのサンプリングインターバルは200 msのまま残しました。
- Spatial Audioがゲームエンジンのジョブスケジュラーに個別のリフレクション処理や回折処理のタスクを発行し、タスクを複数のCPUコアでパラレル実行できるようになり、利用可能なCPUリソースの活用が改善され、システム全体の効率が高まりました。
- RTPC、Virtual Voice Managementのパフォーマンス改善
- Crankcase REVというソースプラグインの実行速度が、今までの4倍から10倍も速くなりました。
- ADPCMコーデック、Opusコーデック:
- Androidのレイテンシ:
- Android 8.1以上で稼働するデバイス用に、AAudio低レイテンシAPIにWwiseで対応するようになりました。
- ハードウェアによって、ボイススターベーションが発生した場合に、Wwiseがバッファサイズを自動的に増やします。
Command Line Interface (WwiseCLI) WwiseCLI (Wwise Command Line Interface)
- WwiseCLIが
-LoadProject
というオプションを対応するようになり、プロジェクトのロードや終了を素早くできるようになりました。 -Save
と共に使用すると、プロジェクトの移行が自動的に行われます。
WAAPIの改善点
- WAAPIの専用タブが、新Logsビューで提供されます。また、移行ノート WAAPI ログの項目のフォーマット も合わせて参照してください。
- デフォルトでWAAPIが有効になったので、最初からlocalhost接続が可能になりました。
- WAAPIのリターンの選択肢が、カスケードエクスプレッション(cascading expressions)に対応します。
- プロファイラ機能やランダマイザ設定など、その他のWAAPI改善点。
Unreal Integration の改善
- プラットフォーム専用の初期化設定と、生成されたSoundBankフォルダが、公開され、UE4プロジェクト設定から設定できるようになりました。
GetRTPCValue
と、 SetMultipleSpeakerEmitterPositions
が、Blueprintに公開されました。