Wwise SDK 2022.1.18
|
Wwise 2022.1を開いて最初に気づくのは、編集のワークフローやナビゲーションを改善するための、タブを使ったユーザーインターフェースの変更点です。これらの改善点は、クリエイティブな奥深さと使いやすさを備えた総合的なインタラクティブオーディオソリューションを提供するための、継続的な進歩の一部です。最新リリースは、Wwiseプロジェクトとの関わり方に新たな感覚をもたらし、インタラクティブオーディオの実装やダイナミックオーディオのオーサリングという表現方法が、拡張されます。
Designerレイアウトのセンターフォーカスに、デフォルトでObject Tab Groupが含まれます。Project Explorerでオブジェクトを選択し、Object Tabに表示させると、プロパティや関連するエディタ画面が一か所にまとめて提供されます。そこで、例えばInteractive Music Hierarchyのオブジェクトで作業中にMusic Editorをアクセスしたければ、レイアウトを切り替える必要はなく、オブジェクトのプロパティを変更するのに必要なものが全てObject Tabにそろっています。
Object Tabは以下を提供します:
Objectタブには、RecycleとKeep Openの2種類があります。Recycleタブには、Project Explorerで新しいオブジェクトを選択するたびに、直前に選択したオブジェクトが同じオブジェクトタブで置き換わります。また、Recycleタブとは別にタブを開いておくこともでき、並べ替えたり、タブグループにドッキングしたりドッキング解除したりできるので、ワークフローを発展させてプロジェクトのニーズに合わせる柔軟性が高まりました。この機能を使えば、異なる操作に対応するタブをグループにまとめ、タブグループ間で比較したり、あなたの開発の独特のオーサリングプロセスに対応したりできます。
1つのObject Tab Group。 | |
Object Tab 3例。 |
Object Tabは、上部ペインのPrimary Editor(主要エディタ)と、多くのオブジェクトタイプでは、下部ペインのSecondary Editor(2次エディタ)で構成されます。Primary Editorには、選択したオブジェクトのタイプに応じて、Property Editor、Event Editor、Audio Device Editorなど、関連するエディタが1つ表示されます。Secondary Editorには、選択中のオブジェクトに最も関係するその他のエディタが、別々のタブに表示されます。あるオブジェクトに関係する主要エディタと2次エディタを合わせて、タブベースのワークフローに取り込むことで、編集作業を全体的に見渡せます。
この新しいワークフローの詳細は Working with Object Tabs and Object Tab Groups を参照してください。
編集ワークフローの変更に合わせて、レイアウトや、レイアウトの管理も、更新されました。ミュージック関連のエディタが、DesignerレイアウトのObject Tabから全て簡単にアクセスできるようになったので、Interactive Musicレイアウトは削除されました。Object Tab GroupやObject Tabも、ほかのビューと同じように、レイアウトから切り離してフローティングウィンドウにしたり、レイアウトやObject Tab Group内でドッキングしたりできます。ドッキングの対象やプレビューが改善され、レイアウトを変える前にドッキングの結果が理解しやすいようになりました。さらにオーサリングウィンドウのサイズを変更する時の、ビューの拡大縮小も改善されました。
Project ExplorerのSearch(サーチ)でProject Explorerビュー内の自然なサーチやフィルタ適用が可能になり、Wwise Authoring Query Language (WAQL) にも対応します。オブジェクトが多数あり複数の関係者がいる大型プロジェクトでは特に便利な機能です。サーチにマッチする項目をハイライト表示して展開してくれるので、Project Explorerで移動しやすくなりました。
Project Explorer上部のサーチフィールドに入力するかオブジェクトをドラッグするだけで、結果が表示されます。詳細は Using the Project Explorer Search を参照してください。
Paste Propertiesビューを使い、オブジェクトのプロパティをコピーして別のオブジェクト(複数オブジェクト可)にコピーできるようになりました。プロジェクト内のプロパティの一貫性を維持して予期せぬ例外を発生しにくくするので、安心感があります。Paste Propertiesビューで、ソースオブジェクトとターゲットオブジェクトのプロパティを比較することもできます。
この新しいビューを使えば、以下の2種類の情報をコピー・ペーストできます:
例えば、複数の車両や物理オブジェクトで、同じRTPCリストを使いたいと考えるかもしれません。
Wwise Authoring API (WAAPI) の拡張で、ソースと1つのターゲットで異なるプロパティやリストを返す機能 (ak.wwise.core.object.diff) や、ソースのプロパティやリストを、ターゲット(複数可)にペーストする機能 (ak.wwise.core.object.pasteProperties) が加わりました。これで、カスタムWAAPIワークフローとしてPaste Property操作(RTPCを含む)を実行することで、開発パイプラインを加速化できる可能性が生まれます。
このビューの使い方の詳細は Copying and Pasting Object Properties を参照してください。
Obstruction(オブストラクション)、Occlusion(オクルージョン)、Diffraction(回折)、Transmission(透過)用のカーブの選択肢をAttenuation(減衰)に追加し、減衰ごとにカスタマイズできるようにしました。
これらのカーブには、以下の選択肢があります:
これらのプロパティのカーブを、Attenuationごとに微調整する柔軟性が提供され、Spatial Audioの包括的なビジョンの達成に役立ちます。
また、Attenuation Editorのレイアウトは、Property EditorのRTPCタブのレイアウトに合わせて変更されました:
Auto Defined SoundBanks(自動定義のサウンドバンク)でEventベースのSoundBank方式がWwiseオーサリングで可能になり、ゲームエンジンのインテグレーションに新たなアセットマネジメント戦略をもたらします。この機能を選択すると、ゲームエンジンのインテグレーションと連動し、ランタイムにWwiseリソースをダイナミックにロード・アンロードできるので、ゲームがリクエストするEventやMediaだけをメモリにロードできます。WwiseではAuto Defined(自動定義)とユーザ定義のSoundbankが共存できるので、開発者はニーズに合わせてSoundBankの最適化を選択できます。
ほかにも、ゲームですぐ採用できる、自動化され細分化されたアセット管理のアプローチに対応する、以下のようなワークフローの改善を開発しました:
この機能は、Wwise Unreal Integrationの一部としてリリース済みのEvent-Based Packaging (EBP) ワークフローの経験に基づいて構築されたもので、EBPの最新版は、この新方式を活用しています。Event-based(イベントベース)のSoundBankの始点をWwiseオーサリング内にすることで、EBPワークフローの柔軟性をUnrealパイプラインから独立させ、ほかのゲームエンジンのインテグレーションにも含めて成長させていくことが可能となります。
File ManagerにGenerated Filesタブが追加され、プロジェクトの出力フォルダのファイルの情報が表示されるようになりました。プロジェクトの各プラットフォーム用に生成されたファイルが、この新しいタブにプラットフォーム別に表示されます。生成されたファイルのステータスやオーナー、そしてどのファイルが読み取り専用なのかを確認できます。また、File Managerから移動しなくても生成されたファイルの移動や削除ができます。
ソースコントロールプラグインを使用している場合は、リストのファイルを右クリックするとSubmit ChangesやCheck outなど追加のコマンドセットにアクセスできます。
Transport Controlビューが以下のように、もっとコンパクトになりました:
Property Helpビューの目的を拡張し、名前をContextual Helpビューに変えました。Capture Logのエラーメッセージを選択すると、その詳細な説明や、予想される原因や、解決手順などが、Contextual Helpビューに表示されます。
これまでと同様に、各種入力フィールド、チェックボックス、ボタン、スライダーなどを使う上で、それがダイアログやリストやビューを開くものではなく、プロパティ設定用であれば、そのヘルプ情報が表示されます。
Contextual Helpビューの内容は、Helpメニューで選択したDocumentation Language(ドキュメントの言語)に合わせて、英語、日本語、中国語、韓国語のいずれかで表示されます。
Voice LPFとVoice HPFに採用する蓄積方法を、Project Settingsで定義できるようになりました。最終的な値を、全ての値の合計とするのか(これまでの唯一の方法)、または全オブジェクトのうちの最高値を使うのかを、選択できます。
この例では、各オブジェクトのLow-pass filter(LPF、ローパスフィルタ)プロパティの値が指定されています。サウンドに適用するLow-pass filter値は、どの蓄積方式を選択するのかによって変わります。
Sum All Values: 各オブジェクトのLow-pass filterプロパティ値を合算します。 | |
Use Highest Value: 全てのLow-pass filterプロパティ値のうち、最大のものを使用します。 |
Property EditorのStatesタブで、State値をState Group間や異なるオブジェクトタイプ間でコピー&ペーストができるようになり、Master-MixerやActor-MixerやInteractive Music Hierarchyの間でもコピー&ペーストができます。さらに複数のオブジェクトをコピー先として選択して、クリック1つですべてのオブジェクトにステート値をコピーできます。
またState Groupとそれに関連するState、プロパティ、State値をオブジェクトタイプや階層に関わらずオブジェクト間でコピーできます。
Event Action Set StateのTargetフィールドに、StateとState Groupの両方を表示するようになりました。異なるグループに所属する同名のStateがある時に、区別しやすくしました。
Performance Monitorのデフォルト設定を更新し、便利な各種グラフ設定を含めました。
Sync GroupをSelection Channelに置き換え、以下の方式のどちらでも、ビューを同期できるようになりました:
一方、混乱を避けるためにメーターのSync Groupsは削除され、代わりにInstances(A、B、C、D)が表示されます。
マウスホイールの動作を、以下の場所で更新してエクスペリエンスを改善しました:
基本的に、時間や範囲を示すビューにおいて、以下のルールを採用しました:
以下のキーボードショートカットを変更しました:
Contents Editor、List View、Query Editor、Reference Viewのショートカットメニューを更新し、以下のオプションを追加しました:
WAQLのパフォーマンスを全体的に改善し、さらに、以下を追加しました:
以下の機能をWAAPIに追加しました:
Reflectプラグインのワークフローが簡素化され新しくなり、ダイナミックなアーリーリフレクションをクリエイティブに使いやすくなりました。音のAttenuation(減衰)カーブを活用し、リフレクションパスの減衰に応用できるようになり、新たなカスタマイゼーションの機会が生まれます。サウンドのAttenuationカーブを継承したり、カスタマイズしたり、無効にしたりと、カーブごとに変えられます。さらに、Reflectプラグインの各インスタンスのDistanceカーブやDiffractionカーブをワープできるので、個々のリフレクションを強調したり弱めたりしながら、クリエイティブに制御できます。
新しい3D Audio Bed MixerプラグインをAudio Objectsバスにインサートすると、バスを通過するAudio Objectの数を減らせます。Audio Objectの一部をミキシングすることで、メインミックス、パススルーミックス、そしてパイプラインの終わりでSystem Audio Objectに昇格できるミキシングされていないAudio Objectのまとまりという、3種類の出力を出せます。このプラグインの動作をカスタマイズできる設定がいくつかあります。
Time Stretchプラグインに新しい高品質のストレッチモードが加わったことで、トランジェントを維持しながら品質とCPUパフォーマンスのバランスを制御できるようになりました。また、Time Stretchプラグインを使えば、オーディオ信号の速さや長さを、ピッチに影響を与えずに変更できます。タイムの延長と短縮の両方が可能で、モノフォニックの音にもポリフォニックの音にも適用できます。さらに、ピッチシフトやランダムなピッチシフトを制御するためのプロパティや、ステレオイメージを扱いやすくするステレオプロセシングモードも追加され、クリエイティブツールとしてのTime Stretchの柔軟性が向上しました。
Wwise UnrealインテグレーションのEvent-Based PackagingがWwise 2022.1の新機能Auto Defined SoundBanksを活用するようになりました。SoundBankメタデータファイルの内容が改善され、デザイナーの意図する通りにサウンドをプレイバックするために、ランタイムエンジンが必要とする情報が、全てそろいます。これでUnrealインテグレーションはWwiseの生成するメタデータが有効であるととらえるので、Unrealインテグレーションからすべてのアセット同期コードを省くことができます。つまり、Wwiseプロジェクト内に存在する全てのものをUnreal Contentフォルダに自動的に入れるのではなく、Unrealアセットを必要に応じて作成するようになりました。あなたのUnrealプロジェクトで、特定のEventを使うと決めない限り、ディスクにアセットを作成しません。このようなアセットは、あなたがプロジェクトをパッケージ化するまで、そのアセットが使用するリソースへのリファレンスを含むだけです。パッケージ化する時に初めて、SoundBankをUnrealのステージングフォルダ階層にコピーします。こうすることで、オーディオ以外の作業をするプロジェクトメンバーがこれまでに遭遇していたような、プロジェクトでオーディオを聞くためにWwiseをインストールしなくてはいけない、という問題も解消されます。新インテグレーションでは、GeneratedSoundbanksフォルダさえ存在すれば、プロジェクトにWwiseオーディオが完全に対応できます。
ラージワールドに倍精度(64ビット)ベクトルで完全に対応しました。これまでは32ビット精度で作業するか、ユニバースの中心位置を変えるか、カスタマイズしたLocal Gridを使う必要がありました。Unreal Engine 5.0リリース向けに継続的に更新していきます。詳細は、 重要な移行の注意 2022.1 を参照してください。
TPP(サードパーソンパースペクティブ)を使うゲームやシミュレーションにオーディオを実装する際に、Listener Game Object(リスナーゲームオブジェクト)の配置に迷うことがあり、カメラの位置を提案する人もいれば、プレイヤーがコントロールするキャラクターの位置を好む人もいます。新Distance Probeが、Listener Game Objectのカウンターパートとして、両者の長所を兼ね備えた選択肢を提供します。
ListenerにDistance Probeをアサインすると、Listenerに送られる全ての音に適用する減衰距離が、Distance ProbeからEmitter Game Objectまでの距離に基づきます。パンニング、スペーシャリゼーション、スプレッド、そしてフォーカスは、Distance Probeがアサインされたかどうかに関わらず、必ずListener Game Objectのポジションとオリエンテーションに基づきます。Distance Probeを使い距離を分離することで、プレイヤーへの聞こえ方を、ゲームプレイのシナリオに応じてダイナミックに制御できるのです。
また:
Spatial Audioは急速に進化する機能セットで、パフォーマンスと、信ぴょう性のある環境表現の間の、クリエイティブな相互作用を得るために、常に最適化が行われています。回折(Diffraction)を計算するには回折エッジを回るパスを見つけることが必要で、ランタイムに多量のCPUを消費することがあります。CPUパフォーマンスを最適化するために、新たに、回折エッジから次の回折エッジまでの可視性を示すマップを、隣接する主要回折エッジを集めるレイトレーシングのアプローチを使って作成します。これらを使い、回折の計算を最適化できます。さらに、スペーシャルオーディオの計算負荷を、複数のオーディオフレームに広げ(スプレッドで定義)、CPUのピークを減らせます。スペーシャルオーディオの各タスク(レイキャスト、パスのバリデーションなど)をプライオリティキューに入れ、ロードバランスのスプレッド設定に基づき優先順位を決め、各フレームで、キューにあるタスクを、指定したタスク数だけ実行します。CPU負荷のバランスを調整することは、多数のエミッターが同時に使われる場合などに特に有効です。
ポジショニングの値を倍精度に移行させたことで、WwiseサウンドエンジンがGame Objectのラージワールド座標に対応できるようになりました。これにより、数十億単位の大きさのワールドにおいても、サウンドのポジショニングが予測に沿った動きを取ることができます。Game Objectのポジションを扱うAPIが更新され、 AkWorldTransform と AkVector64 という2つの新しいタイプが使われるようになり、これらが追加データを提供します。詳細は、 重要な移行の注意 2022.1 を参照してください。
ランタイムにダイナミックオーディオをつくり出すために使う、増加する一方の各種パラメータの管理が、今回、より速く効率的になりました。RTPC(Realtime Parameter Control)やSwitchのパフォーマンスが、メモリにロードされているWwiseオブジェクト数やそのRTPCやSwitchの使用状況に影響されなくなりました。RTPCやSwitchの値の設定や更新が最適化され、RTPCやSwitchを使用する登録済みゲームオブジェクトやアクティブサウンドの数だけに依存するようになりました。
オーディオレンダリングのパイプラインのマルチスレッド実行を書き直して最適化し、ランタイムパフォーマンスをさらに改善しました。特に、並列実行のfork/joinメソッドの代わりに、依存性をモデル化したジョブベースの内部スケジューラーに移行したことが、改善の重要な要素でした。主なポイントとして:
おかげで、Wwiseは、より豊かなオーディオエクスペリエンスを提供するために、効率的にCPUリソースを活用できるようになり、同時に、ゲームエンジンとの仕事配分やスケジュールの調整も改善されました。