Wwise バージョン
  • Sample Project
  • Wwise SDK
  • Wwise Unityインテグレーション
  • Wwise Unreal インテグレーション
  • Wwiseの基本的なアプローチ
  • Wwiseヘルプ

その他のドキュメント

  • Strata
  • ReaWwise
  • Audiokinetic Launcher
  • Wwise Audio Lab​
  • Wwise Adventure Game
  • GME In-Game Voice Chat
  • Meta XR Audio

技能検定コース

  • Wwise Fundamentals (2024.1)
  • Wwise Interactive Music (2021.1)
  • Wwise Performance Optimization (2023.1)
  • Wwise Unity Integration (2023.1)

その他のソース

  • ウェブサイト
  • 動画
  • プラグイン
  • クリエイターズディレクトリ
  • Q&A
  • ブログ
イントロ 私は2022年のはじめにジェネレーティブ(生成)アンビエントミュージックのアルバム「Púrpura」をリリースしました。この記事ではActor-Mixer階層を使ったジェネレーティブミュージックシステムの作成から、Unityを使った音楽演奏まで、Wwiseを使用してどのようにアルバムを作成したのかをご紹介したいと思います。 ジェネレーティブミュージックのコンセプトを簡単に説明しますと、要はリアルタイムで作曲されていく音楽のことで、作曲家が事前に定義したルールに基づきシステムが即興で作曲しますが、ある程度のランダム性が伴います。最も単純なジェネレーティブミュージックの場合、再生する音符(またはサンプル)と次の音符を再生するまでの時間をシステムのルールで決めます。興味のある方はブライアン・イーノのこちらの講演の記録をお読みいただくことをおすすめします。 「Púrpura」のジェネレーティブシステム ...
WwiseにはWwise RoomVerbのプリセット(ShareSets Hierarchy内)とAuxiliary Bus(Master-Mixer Hierarchy内)があり、Unreal EditorにはAudiokinetic Auxiliary Bus(.uasset)、AkSpatialAudioVolume、AkAcousticPortals(レベルのアクタクラスインスタンス)があります。 Wwiseのアセット: Wwiseリバーブ(RoomVerb、Convolution Reverb)のプリセット Auxiliary Bus Unreal Editorのアセット: Auxiliary Bus AkSpatialAudioVolume AkAcousticPortal 注:冒頭で述べた通り、残響のシミュレーション例として今回はWwise RoomVerbプラグインのみを使用していますが ...
{ "objects": [ { "object": "\\Actor-Mixer Hierarchy\\Default Work Unit\\Sound1", "notes": "Hello!", "@Volume": 15.7, "@LowPass": 25 } ], "onNameConflict": "merge" } 上記を生、つまりリテラルな文字列としてWAAPI 呼び出しに直接使用するか、これまでと同様にJSONオブジェクトを構築するかの2つの選択肢があります。私が思うには、前者は読みやすいけれども、複雑な構造を作成することになったとたん使いづらくなります。問題は私たちが通常はプログラムで構造を構築することです。そのためJSON関数を使うのが最適かもしれません。では上記のJSONオブジェクトをどうやって構築するか見てみましょう。
HDRシステムを有効にした場所のMaster-Mixer Hierarchyにおいて、これらを設定します。 HDRを有効にして、これらのパラメータをできるだけ少ない場所で設定することをおすすめします。私がこれまでにかかわってきたすべてのプロジェクトで、Master-Mixer Hierarchyで有効なHDRインスタンスは1か所だけでした。こうすることによりHDR動作の管理と把握が大変簡単になります。HDRバスまたはこのHDRバスを親とする子バスにルーティングされているサウンドは、すべてこの単一のHDRルールに従い再生され、複雑な例外などが一切発生しません。プロジェクトによって当然ニーズが異なりますが、私の経験上、HDRの動作を可能な限り予測可能でシンプルなものにすることがベストであり、近年ではゲームの規模が拡大し続け(それに伴いオーディオが複雑化し)、非常に重要な注意点であると思います。
ゲーム制作において、ボイスのミキシング対象となる台詞の行数が何千、何十万におよぶこともあり、これにローカライズ言語の数を掛けると、その取りまとめが非常に難しくなることがあります。 ボイスオーバー(VO)構成をほかのサウンドと同様にActor-Mixer Hierarchyで1対1のイベントとして実装してゆく場合、ダイアログがWwiseプロジェクト内の最大規模の機能に発展することもあり、その他のサウンドを急激に圧迫してしまいます。VO管理が非常に困難となり、途中で方向性が変わったり、ミキシングの新しい決断があった場合は、膨大な手作業が発生しかねません。私たちオーディオ部門の者にとって、時間の余裕など滅多にない贅沢です。 約6,000個のVOアセットを含む、あるUbisoft Wwiseプロジェクトの典型的な1対1のイベント構成 幸い、この問題を軽減する方法がWwiseにあります。強力な機能であるExternal ...
Wwise SDK 2024.1.7 重要な移行の注意 2018.1 多くの 新機能 では、Wwise 2018.1に移行する際にいくつかの点に注意する必要があります。 次の重要な移行ノートをよくお読みください: Event ActionプロパティのFade Curveを分けて、Fade-in CurveとFade-out Curveとする Contents Editor Positioningタブ Enable Positioning 2D with Enable Panner off 2D with Enable Panner on 3D Game-Defined 3D User-Defined SpatializationをNoneに設定 新しい機能 MixerプラグインAPI Migration Details WAAPI ak.wwise.core.audio.
m
Wwise SDK
Wwise::Plugin::AutoUndoGroup m_version : ak_wwise_plugin_interface_ptr m_wwiseSdkVersion : ak_wwise_plugin_container mainMixConfig : AkOutputDeviceMeteringCallbackInfo Major : AK.Wwise.Version MajorSdkVersion() : ak_wwise_plugin_container Malign() : AK.Wwise::Mallocator , AK::IAkPluginMemAlloc Malloc() : AK.Wwise::Mallocator , AK::IAkPluginMemAlloc Max() : T3DVector< TDataType > MAX_VALUE : ...
このオブジェクトの位置が重要ですが、マイクが集音する音は、一定の範囲内にある、音を発信するゲームオブジェクトに限られ、これはActor-Mixer Hierarchyの減衰カーブで決まります。 Loundspeaker: マイクが集音した音のミックスをスペーシャリゼーションしたものを発信する、サウンドエミッタ―のゲームオブジェクト。スピーカーの位置が、音の再送信の位置を表します。この例ではスピーカーが音源からかなり離れた張り込み車両の中にあります。もしスピーカーが音源に充分近ければ、Player Listenerに、スピーカーの音と元の音源の両方がミックスされて同時に聞こえるはずです。 リスナーとエミッタ―の関係 ListenerとEmitterの関係は、コードでSetListener APIとSetGameObjectAuxSendValues APIを使って定義します。これらのAPIでゲームオブジェクト間の関係が ...
最も広く使われているWwiseプラグインの種類 エフェクトプラグイン エフェクトプラグインは、Actor-Mixer HierarchyやMaster-Mixer Hierarchyのエレメントに対して処理を適用させますが、エレメントのシグナルチェーンに挿入して実現させます。専用のEffect(フィルター、ダイナミック機能、飽和、タイムベースのエンベロープやエコーやリバーブなど)を独立させて、またはエレメントのグループの一部として、使う場合は、このように実装すべきです。   ホワイトボード:エフェクトプラグインを、Actor-Mixer Hierarchyのエレメントにインサートする方法 ソースプラグイン エフェクトプラグインと同じく、ソースプラグイン も全てのエレメントのエフェクトページにインサートできます。ただ、システムの中へサウンドを投入するのに使うので、大体Actor-Mixer ...
原始的な歩行リズム       ラプティドンの走行リズム       マンティサウルスのアタックのリズム   実装と微調整のながれ クリーチャーのActor-Mixerをクリーチャーのサウンドタイプ別に分けたおかげで、PriorityやVoice Limitingといった重要なパラメータ設定を非常に細かく制御できました。また、ミキサーごとにPositioning設定を微妙に変えました。例えば、フォーリーサウンドであれば減衰半径を比較的小さくした一方、クリーチャーのコンバット音声やウェポン音はもっと遠くからも聞こえるようにして、コンバット中のプレイヤーに適したフィードバックが聞こえるようにしています。 クリーチャーのウェポンのAttenuation Shareset クリーチャー音をトリガーするために、様々なサウンドオブジェクトコンテナを使っています。Sequence Containerや ...
Channel、Meterインスタンス マウスホイールを使ったズーム、パンニング キーボードショートカットの変更 ショートカットメニューの更新 WAQL WAAPI 各種プラグイン Reflectワークフローの簡素化 3D Audio Bed Mixerプラグイン Time Stretchの改善 インテグレーション Auto-Defined SoundBanksにUnrealが対応 Unreal Engine 5.0 SDK サードパーソンリスナー Spatial Audioのジオメトリのパフォーマンス改善 ラージワールドに対応 RTPCとSwitchのパフォーマンス改善 オーディオレンダリングのタスクのカスタムスケジューラーの改善 {{cta('6956b7d4-7daf-458d-8079-960adedd74ce')}} オーサリング 編集のワークフロー Wwise 2022.
Level Streaming 使用していないアセットを除く SpatialAudio 微調整(ほかのソリューションを使い果たした時) Stopイベントの代わりにExecute Action on Event/IDを使用する 可能な場合はActor-Mixerをフォルダに置き換える Random Container内のバリエーションを減らす まとめ 役に立つリンク集 最適化の原則 最適化はゲーム開発における重要なプロセスであり、制作過程の後半に行われることが多いです。しかしオーディオバジェットを明確にしてゲームそのものの限界を理解しておくことは賢明であり、最適化を初期の段階で計画することをおすすめします。あらかじめ決められた範囲内に収めることにより、どのプラットフォームや構成においてもゲームが意図したとおりに動作します。オーディオが正常に機能している時はサウンドの問題が起きません。
)Left-Right mixSample rate (以下 「サンプルレートについて」 参照。)Audio format (以下 「About audio formats」 参照。)Audio format quality(オーディオフォーマット品質)Sample rate conversion quality(サンプルレートのコンバージョン品質)また、以下の設定を選択できます。吹き替え用や字幕用に、ファイルネームマーカー挿入(Insert filename marker)Remove DC offset;注意We recommend retaining the DC offset for looping sounds. The remove mechanism is a high-pass filter, so it might modify the first and last samples ...
用語集
Wwiseヘルプ
この用語集の目的はHelpドキュメンテーションで使われるテクニカル用語を定義することです。デザイン用語やプログラミング用語を定義するGeneral terminologyと、Wwise独自のオブジェクトやコンセプト(Audiokineticが特許を有するものも含む)を定義するWwise-specific terminologyに分かれています。General terminology3D AudioThe delivery of audio in an intermediate format that includes information above and below the listener plane, which is then converted by the endpoint into either a binaural mix for headphones or a channel-based ...
orientation. [詳解]   AkReal32 fListenerAngle  Angle between position vector and listener orientation. [詳解]   AkReal32 fDryMixGain  Emitter-listener-pair-specific gain (due to distance and cone attenuation) for direct connections. [詳解]   AkReal32 fGameDefAuxMixGain  Emitter-listener-pair-specific gain (due to distance and cone attenuation) for game-defined send connections. [詳解]   AkReal32 fUserDefAuxMixGain ...
m
Wwise SDK
MessageBox() : AK.Wwise::ISourceControlUtilities Min() : T3DVector< TDataType > MinorSdkVersion() : ak_wwise_plugin_container Mix1inNChannels() : AK::IAkPluginServiceMixer MixChannel() : AK::IAkPluginServiceMixer MixNinNChannels() : AK::IAkPluginServiceMixer Monitor() : AK.Wwise::Plugin::V1::Notifications::Monitor MonitorErrorInfo() : AK::Monitor::MonitorErrorInfo Move() : AkAssignmentMovePolicy< ...
"Start From"ボックスの隣にある"..."をクリックすると、ウィンドウが開き、Actor Mixer HierarchyやInteractive Music Hierarchyの中の場所を選択したり、プロジェクト全体を選択したりできます。どの場所を選択しても、クエリはその位置から再帰検索を実行します。例えば、Actor Mixer Hierarchy を選択すると、全Work Unitの中にある全構成を対象に検索しますが、1つのWork Unit だけを選択すると、そのWork Unit の中身だけが対象となります。 また、マルチプラットフォームのプロジェクトであれば、PlatformボックスでAll を選択して全プラットフォームを検索したり、必要に応じて特定のプラットフォームに限定したりできます。 Browser ウィンドウ Browser ウィンドウ Query Editor ...
Actor-Mixer HierarchyやInteractive Music Hierarchyにインサートしたプラグインは、1つの再生中のサウンドに対して、1つのインスタンスを作成します。このようなサウンドを同時に多数再生すると、CPU負荷が一気に増えるので、メディアのWEMファイルにEffectを"bake"するrenderのチェックボックスにチェックを入れることを検討してください。一方、バスに適用したプラグインは、バス1つに対してインスタンスを1つ作成するだけです。つまり、CPU消費に影響するのは、実際に再生中のサウンド数ではなく、プラグインのあるアクティブバスの数となります。 プラグイン関連でCPUに影響する別の変数として、処理するチャンネル数があります。例えば、モノサウンドに対してアクティブなEffectのインスタンスが合計3つ(つまり3チャンネル)がActor-Mixer Hierarchyにあれば ...
リミットを設定する3つの場所(レベル)が、Actor-mixer、バス、そしてグローバルです。 グローバル(全体)レベルに設定するリミットは漏れを防ぐ最終手段で、ゲームが対応できる数を全体で超えていないか、または1つのゲームプロセスが暴走してCPU全てを支配することはないか、などを確認します。Project SettingsのMax Voices Instancesで設定できます。ピーク時の予想ボイスカウント数よりも、やや高く設定してください。 特定のオブジェクトに対してリミットを設定するには、Actor-Mixer階層やInteractive Music階層のオブジェクトの、Advanced Settingsタブを開きます。なお、このリミットの対象は個別のサウンドで、親構造ではありません。例えば、3つのバリエーションのあるランダムコンテナに、グローバル(つまりゲームオブジェクト対象でない)リミットとして「2」を設定 ...
私は、特別処理が不要な一部のカットシーン音楽やアンビエント音楽は、Interactive Music HierarchyではなくActor-Mixer Hierarchyに入れて、SFXのように扱うことに決めました。場合によって、Actor-Mixer HierarchyのSource Editorを使った方が、目的を達成しやすいこともあるのです。分かりやすい例を紹介すると、Menu_Musicという音楽があり、再生するときは毎回、Point Aからスタートし、次に無限にPoint BとPoint Cの間をループさせる必要があったとします。以下のスクリーンショットで示すように、Actor-Mixer Hierarchyにループポイントを設定すればいいのです。これだと音楽のテンポに合わせて操作することはできませんが、考え方が非常にシンプルなので、適切な長さのクロスフェードを設定すれば、あとは完璧になるまで調整すればいいだ ...