バージョン

menu_open
Wwise SDK 2022.1.18
2022.1 新機能概要

オーサリング

編集のワークフロー

Wwise 2022.1を開いて最初に気づくのは、編集のワークフローやナビゲーションを改善するための、タブを使ったユーザーインターフェースの変更点です。これらの改善点は、クリエイティブな奥深さと使いやすさを備えた総合的なインタラクティブオーディオソリューションを提供するための、継続的な進歩の一部です。最新リリースは、Wwiseプロジェクトとの関わり方に新たな感覚をもたらし、インタラクティブオーディオの実装やダイナミックオーディオのオーサリングという表現方法が、拡張されます。

Designerレイアウトのセンターフォーカスに、デフォルトでObject Tab Groupが含まれます。Project Explorerでオブジェクトを選択し、Object Tabに表示させると、プロパティや関連するエディタ画面が一か所にまとめて提供されます。そこで、例えばInteractive Music Hierarchyのオブジェクトで作業中にMusic Editorをアクセスしたければ、レイアウトを切り替える必要はなく、オブジェクトのプロパティを変更するのに必要なものが全てObject Tabにそろっています。

Object Tabは以下を提供します:

  • コンテキストの分かるオブジェクト編集を、1つのまとまった場所で。
  • Recycle(リサイクル)タブ、Keep Open(開けたまま)タブ。
  • 使い慣れた「進む」と「戻る」のボタンを使ったオブジェクト間の移動。

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のSearch(サーチ)でProject Explorerビュー内の自然なサーチやフィルタ適用が可能になり、Wwise Authoring Query Language (WAQL) にも対応します。オブジェクトが多数あり複数の関係者がいる大型プロジェクトでは特に便利な機能です。サーチにマッチする項目をハイライト表示して展開してくれるので、Project Explorerで移動しやすくなりました。

Project Explorer上部のサーチフィールドに入力するかオブジェクトをドラッグするだけで、結果が表示されます。詳細は Using the Project Explorer Search を参照してください。

Paste Properties

Paste Propertiesビューを使い、オブジェクトのプロパティをコピーして別のオブジェクト(複数オブジェクト可)にコピーできるようになりました。プロジェクト内のプロパティの一貫性を維持して予期せぬ例外を発生しにくくするので、安心感があります。Paste Propertiesビューで、ソースオブジェクトとターゲットオブジェクトのプロパティを比較することもできます。

この新しいビューを使えば、以下の2種類の情報をコピー・ペーストできます:

  • 各種プロパティ: Property EditorのOutput Bus、Loudness Normalizationなども含まれます。
  • List(リスト)要素: オブジェクトに所属する副次的な要素のリスト。Paste Propertiesビューは以下のListに対応しています:
    • RTPC
    • Stingers
    • Metadata
    • Music Cues

例えば、複数の車両や物理オブジェクトで、同じ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 を参照してください。

新しいカーブと、新しくなったAttenuation Editor

Obstruction(オブストラクション)、Occlusion(オクルージョン)、Diffraction(回折)、Transmission(透過)用のカーブの選択肢をAttenuation(減衰)に追加し、減衰ごとにカスタマイズできるようにしました。

これらのカーブには、以下の選択肢があります:

  • Obstruction/OcclusionのProject Settingカーブを継承。
  • 利用可能なプロパティごとに、Customカーブを使用。
  • Noneを使用。

これらのプロパティのカーブを、Attenuationごとに微調整する柔軟性が提供され、Spatial Audioの包括的なビジョンの達成に役立ちます。

また、Attenuation Editorのレイアウトは、Property EditorのRTPCタブのレイアウトに合わせて変更されました:

  • リストとグラフビューの位置が入れ替わりました。
  • Attenuationの追加プロパティが、リストとして表示されます。
  • Attenuationグラフで、フィルタを適用して特定のゲームオブジェクトを除外できるように、テキストフィールドが追加されました。

Auto-Defined SoundBanks

Auto Defined SoundBanks(自動定義のサウンドバンク)でEventベースのSoundBank方式がWwiseオーサリングで可能になり、ゲームエンジンのインテグレーションに新たなアセットマネジメント戦略をもたらします。この機能を選択すると、ゲームエンジンのインテグレーションと連動し、ランタイムにWwiseリソースをダイナミックにロード・アンロードできるので、ゲームがリクエストするEventやMediaだけをメモリにロードできます。WwiseではAuto Defined(自動定義)とユーザ定義のSoundbankが共存できるので、開発者はニーズに合わせてSoundBankの最適化を選択できます。

ほかにも、ゲームですぐ採用できる、自動化され細分化されたアセット管理のアプローチに対応する、以下のようなワークフローの改善を開発しました:

  • CopyStreamedFiles.exe の削除。同等の機能を、WwiseのSoundBank生成プロセスに直接、統合しました。
  • Outputフォルダのクリーンアップ。
  • ソースコントロール内のOutputフォルダ。

この機能は、Wwise Unreal Integrationの一部としてリリース済みのEvent-Based Packaging (EBP) ワークフローの経験に基づいて構築されたもので、EBPの最新版は、この新方式を活用しています。Event-based(イベントベース)のSoundBankの始点をWwiseオーサリング内にすることで、EBPワークフローの柔軟性をUnrealパイプラインから独立させ、ほかのゲームエンジンのインテグレーションにも含めて成長させていくことが可能となります。


File ManagerのGenerate Filesタブ

File ManagerにGenerated Filesタブが追加され、プロジェクトの出力フォルダのファイルの情報が表示されるようになりました。プロジェクトの各プラットフォーム用に生成されたファイルが、この新しいタブにプラットフォーム別に表示されます。生成されたファイルのステータスやオーナー、そしてどのファイルが読み取り専用なのかを確認できます。また、File Managerから移動しなくても生成されたファイルの移動や削除ができます。

ソースコントロールプラグインを使用している場合は、リストのファイルを右クリックするとSubmit ChangesやCheck outなど追加のコマンドセットにアクセスできます。

Transport Controlのユーザーインターフェースを更新

Transport Controlビューが以下のように、もっとコンパクトになりました:

  • Game Parameterや、各種オプションや、リセットは、記号で示されます。
  • 再生関連のオプションが、再生ボタン横の新メニューにネスト化されています。
  • リセットメニューが整理され、グループに分かれています。



Contextual Help、Capture Logエラーメッセージ

Property Helpビューの目的を拡張し、名前をContextual Helpビューに変えました。Capture Logのエラーメッセージを選択すると、その詳細な説明や、予想される原因や、解決手順などが、Contextual Helpビューに表示されます。

これまでと同様に、各種入力フィールド、チェックボックス、ボタン、スライダーなどを使う上で、それがダイアログやリストやビューを開くものではなく、プロパティ設定用であれば、そのヘルプ情報が表示されます。

Contextual Helpビューの内容は、Helpメニューで選択したDocumentation Language(ドキュメントの言語)に合わせて、英語、日本語、中国語、韓国語のいずれかで表示されます。

Filter Behavior: Use Highest Value

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プロパティ値のうち、最大のものを使用します。

State GroupやState値のコピー&ペースト

Property EditorのStatesタブで、State値をState Group間や異なるオブジェクトタイプ間でコピー&ペーストができるようになり、Master-MixerやActor-MixerやInteractive Music Hierarchyの間でもコピー&ペーストができます。さらに複数のオブジェクトをコピー先として選択して、クリック1つですべてのオブジェクトにステート値をコピーできます。

またState Groupとそれに関連するState、プロパティ、State値をオブジェクトタイプや階層に関わらずオブジェクト間でコピーできます。

Event Action: State、State Groupの表示

Event Action Set StateのTargetフィールドに、StateとState Groupの両方を表示するようになりました。異なるグループに所属する同名のStateがある時に、区別しやすくしました。

Performance Monitor

Performance Monitorのデフォルト設定を更新し、便利な各種グラフ設定を含めました。

Selection Channel、Meterインスタンス

Sync GroupをSelection Channelに置き換え、以下の方式のどちらでも、ビューを同期できるようになりました:

  • Project ExplorerとEvent Viewerの中: Project ExplorerまたはEvent Viewerの複数のインスタンスで、同じSelection Channelを選択すると、そのビューの1つのインスタンスで行った選択や移動が、ほかのインスタンスでも自動的に行われます。
  • ほかのビューで、タイトルバーにSelection Channelアイコンがある場合: このオプションを使うと、ビューを、Project ExplorerやEvent Viewerの特定のSelection Channelと同期できます。つまり、Project ExplorerやEvent Viewerで、そのチャンネルで選択したオブジェクトは、自動的に、同期されたビューでも選択されます。

一方、混乱を避けるためにメーターのSync Groupsは削除され、代わりにInstances(A、B、C、D)が表示されます。

マウスホイールを使ったズーム、パンニング

マウスホイールの動作を、以下の場所で更新してエクスペリエンスを改善しました:

  • AK Convolution Reverb Editor
  • Music Segment Editor
  • Attenuation Editor
  • RTPCタブ
  • Performance Monitor
  • Voice Monitor
  • Game Sync Monitor
  • Source Editor

基本的に、時間や範囲を示すビューにおいて、以下のルールを採用しました:

  • マウスホイール: 水平スクロール
  • Ctrl+マウスホイール: 水平ズーム
  • Shift+マウスホイール: 垂直スクロール
  • Ctrl+Shift+マウスホイール: 垂直ズーム

キーボードショートカットの変更

以下のキーボードショートカットを変更しました:

  • Ctrl+Fで、Project Explorer内をサーチします。
  • Ctrl+Shift+Fで、Wwise Toolbarでサーチします。
  • Ctrl+Shift+Lで、List Viewが開きます。
  • F3で、現在のビューをサーチします。
  • Shift+Qで、Query Editorが開きます。
  • Dialog Event EditorとLicense Managerのデフォルトのショートカットがなくなりました。

ショートカットメニューの更新

Contents Editor、List View、Query Editor、Reference Viewのショートカットメニューを更新し、以下のオプションを追加しました:

  • Delete objects(オブジェクトを削除)
  • Rename/Batch rename objects(オブジェクトの名前の変更、名前の一括変更)

WAQL

WAQLのパフォーマンスを全体的に改善し、さらに、以下を追加しました:

  • "duration" アクセサを追加し、指定したduration(長さ)に合致するオブジェクトを探せるようにしました。例: $ from type sound where duration.max > 2
  • mute(ミュート)、solo(ソロ)のステートを、isExplicitMute、isExplicitSolo、isImplicitSolo、 isImplicitMuteで公開しました。例: $ where isExplicitMute

WAAPI

以下の機能をWAAPIに追加しました:

各種プラグイン

Reflectワークフローの簡素化

Reflectプラグインのワークフローが簡素化され新しくなり、ダイナミックなアーリーリフレクションをクリエイティブに使いやすくなりました。音のAttenuation(減衰)カーブを活用し、リフレクションパスの減衰に応用できるようになり、新たなカスタマイゼーションの機会が生まれます。サウンドのAttenuationカーブを継承したり、カスタマイズしたり、無効にしたりと、カーブごとに変えられます。さらに、Reflectプラグインの各インスタンスのDistanceカーブやDiffractionカーブをワープできるので、個々のリフレクションを強調したり弱めたりしながら、クリエイティブに制御できます。

3D Audio Bed Mixerプラグイン

新しい3D Audio Bed MixerプラグインをAudio Objectsバスにインサートすると、バスを通過するAudio Objectの数を減らせます。Audio Objectの一部をミキシングすることで、メインミックス、パススルーミックス、そしてパイプラインの終わりでSystem Audio Objectに昇格できるミキシングされていないAudio Objectのまとまりという、3種類の出力を出せます。このプラグインの動作をカスタマイズできる設定がいくつかあります。

Time Stretchの改善

Time Stretchプラグインに新しい高品質のストレッチモードが加わったことで、トランジェントを維持しながら品質とCPUパフォーマンスのバランスを制御できるようになりました。また、Time Stretchプラグインを使えば、オーディオ信号の速さや長さを、ピッチに影響を与えずに変更できます。タイムの延長と短縮の両方が可能で、モノフォニックの音にもポリフォニックの音にも適用できます。さらに、ピッチシフトやランダムなピッチシフトを制御するためのプロパティや、ステレオイメージを扱いやすくするステレオプロセシングモードも追加され、クリエイティブツールとしてのTime Stretchの柔軟性が向上しました。

インテグレーション

Auto Defined SoundBanksにUnrealが対応

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オーディオが完全に対応できます。

Unreal Engine 5.0

ラージワールドに倍精度(64ビット)ベクトルで完全に対応しました。これまでは32ビット精度で作業するか、ユニバースの中心位置を変えるか、カスタマイズしたLocal Gridを使う必要がありました。Unreal Engine 5.0リリース向けに継続的に更新していきます。詳細は、 重要な移行の注意 2022.1 を参照してください。

SDK

サードパーソンリスナー

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を使い距離を分離することで、プレイヤーへの聞こえ方を、ゲームプレイのシナリオに応じてダイナミックに制御できるのです。

また:

  • 各Listener Game Objectは、0個または1個のGame ObjectをDistance Probeとして設定できます。
  • 1つのGame Objectを、複数のListenerのDistance Probeにできます。
  • Listenerを、自分自身のDistance Probeにアサインすることは、Distance Probeをnone(なし)に設定するのと同じです。

Spatial Audioのジオメトリのパフォーマンス改善

Spatial Audioは急速に進化する機能セットで、パフォーマンスと、信ぴょう性のある環境表現の間の、クリエイティブな相互作用を得るために、常に最適化が行われています。回折(Diffraction)を計算するには回折エッジを回るパスを見つけることが必要で、ランタイムに多量のCPUを消費することがあります。CPUパフォーマンスを最適化するために、新たに、回折エッジから次の回折エッジまでの可視性を示すマップを、隣接する主要回折エッジを集めるレイトレーシングのアプローチを使って作成します。これらを使い、回折の計算を最適化できます。さらに、スペーシャルオーディオの計算負荷を、複数のオーディオフレームに広げ(スプレッドで定義)、CPUのピークを減らせます。スペーシャルオーディオの各タスク(レイキャスト、パスのバリデーションなど)をプライオリティキューに入れ、ロードバランスのスプレッド設定に基づき優先順位を決め、各フレームで、キューにあるタスクを、指定したタスク数だけ実行します。CPU負荷のバランスを調整することは、多数のエミッターが同時に使われる場合などに特に有効です。






ラージワールドに対応

ポジショニングの値を倍精度に移行させたことで、WwiseサウンドエンジンがGame Objectのラージワールド座標に対応できるようになりました。これにより、数十億単位の大きさのワールドにおいても、サウンドのポジショニングが予測に沿った動きを取ることができます。Game Objectのポジションを扱うAPIが更新され、 AkWorldTransformAkVector64 という2つの新しいタイプが使われるようになり、これらが追加データを提供します。詳細は、 重要な移行の注意 2022.1 を参照してください。

RTPCとSwitchのパフォーマンス改善

ランタイムにダイナミックオーディオをつくり出すために使う、増加する一方の各種パラメータの管理が、今回、より速く効率的になりました。RTPC(Realtime Parameter Control)やSwitchのパフォーマンスが、メモリにロードされているWwiseオブジェクト数やそのRTPCやSwitchの使用状況に影響されなくなりました。RTPCやSwitchの値の設定や更新が最適化され、RTPCやSwitchを使用する登録済みゲームオブジェクトやアクティブサウンドの数だけに依存するようになりました。

オーディオレンダリングのタスクのカスタムスケジューラーの改善

オーディオレンダリングのパイプラインのマルチスレッド実行を書き直して最適化し、ランタイムパフォーマンスをさらに改善しました。特に、並列実行のfork/joinメソッドの代わりに、依存性をモデル化したジョブベースの内部スケジューラーに移行したことが、改善の重要な要素でした。主なポイントとして:

  • Voices Graphにおけるバスの実行は、ボイスグラフのレベルを1つずつ処理するのではなく、Voice Graphの独立した複数のブランチを同時に処理できるようにしたことで、並行性とスループットが大幅に改善されました。
  • ボイス処理の負荷バランスの調整が改善されデフォルトで行われるので、ゲームエンジンがそのような仕事配分を行う必要がありません。
  • ゲームエンジンマネージャとのインテグレーションに対応しやすく、管理しやすくなりました。多くの状況で、ゲームエンジンが以前より少ないジョブをスケジュールできるはずで、インテグレーションのオーバーヘッドを減らせます。
  • 外部ツールでWwiseのCPU使用を詳細にプロファイリングするための、新しいAPIを追加しました。

おかげで、Wwiseは、より豊かなオーディオエクスペリエンスを提供するために、効率的にCPUリソースを活用できるようになり、同時に、ゲームエンジンとの仕事配分やスケジュールの調整も改善されました。


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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう