Wwise SDK 2023.1.8
|
Integration Demo(インテグレーションデモ)アプリケーションには、サウンドエンジンの様々な機能をゲームに統合する方法を示す一連のデモが含まれています。
注釈: このセクションで紹介するコードはすべて samples\IntegrationDemo\ ディレクトリにあるサンプルプロジェクトで、提供されています。 |
このプログラムのWwiseプロジェクトは、 samples\IntegrationDemo\WwiseProject
にもあります。
注釈: このプログラム用の Wwise プロジェクトは、オーディオファイルの様々な変換形式を使用していますが、ご利用の Wwise インストールにサポートされるプラットフォームに応じて、中には利用できないものもある可能性があります。Wwise でプロジェクトを開くと、次のような警告が表示される場合があります:
利用できない全てのプラットフォームの、変換形式をPCMに変更することで、これらのメッセージを削除できます。詳しくは、Wwise ユーザーガイドの次のトピックを参照してください: オーディオファイルをコンバージョンする。 |
このプロジェクトのSoundBankは、 samples\IntegrationDemo\WwiseProject\GeneratedSoundBanks
フォルダのSDKでも、インストールされます。
サウンドバンクを生成するには、SoundBank Manager で次の操作を実行してください:
これらが正しく設定されたら、SoundBank Manager の Generate をクリックしてバンクを生成することができます。
Integration Demoのバイナリは、 \[Debug|Profile|Release]\bin
ディレクトリにあります。アプリケーションをリビルドする場合は、次の手順に従ってください:
samples\IntegrationDemo\Windows
にあるソリューションを開き、希望するコンフィギュレーションを使ってビルドしてください。Integration Demo を実行するには、上記のディレクトにある実行可能ファイルを起動します。
samples/IntegrationDemo/Mac
にあるXcodeプロジェクトを開き、希望するコンフィギュレーションを使ってビルドしてください。Mac/[Debug|Profile|Release]/bin
ディレクトリにある実行可能ファイルを起動するだけです。 samples/IntegrationDemo/iOS
, samples/IntegrationDemo/tvOS
or samples/IntegrationDemo/visionOS
and build using the desired configuration. samples\IntegrationDemo\WwiseProject
にあるWwiseプロジェクトを開き、Android用SoundBankをデフォルトパスに生成します。samples\IntegrationDemo\Android
に変更します。samples\IntegrationDemo\Android\Android_[armeabi-v7a|arm64-v8a|x86|x86_x64]\[Debug|Profile|Release]\bin
に変更します。例: samples\IntegrationDemo\Android\Android_armeabi-v7a\Debug\bin
。adb install IntegrationDemo.apk
を入力します。Android Studioを使った 代替 ビルド方式 あなたがAndroid Studioをインストール済みであれば、Integration Demoをコンパイルしデプロイするgradleプロジェクトを提供しています。Android Studioで samples\IntegrationDemo\Android
ディレクトリを開くだけで、アプリをビルドしローンチできるはずです。
注釈: Integration Demoを操作するにはソフトウェアキーボードやハードウェアキーボードを使用する必要があります。移動するには、W、A、S、Dのキーを使います。 Enter で選択し、 Space で戻ります。 |
samples\IntegrationDemo\WwiseProject
and generate the SoundBanks for OpenHarmony in their default paths.SDK\samples\IntegrationDemo\OpenHarmony
.SDK\samples\IntegrationDemo\OpenHarmony
in DevEco Studio IDE.SDK\samples\IntegrationDemo\OpenHarmony\build-profile.json5
arm64-v8a_Debug
. Choosing "default" here will not work.cd SDK/samples/IntegrationDemo/Linux
IntegrationDemo_Linux.make
という名前のMakefileや、 Linuxに固有の情報 で説明された変数を使い、ビルドします。make -f ./IntegrationDemo_Linux.make AK_LINUX_ARCH=x64 config=debug
SDK/Linux_x[32|64]/[Debug|Profile|Release]/bin
にある実行ファイルを起動するだけです。 キーボードや、接続されたコントローラや、DirectInput 対応デバイスを使用して、Windows上の Integration Demo をナビゲートすることができます。
特定のコントロール(例:トグルコントロール/Toggle Controlsや数値スライダ/Numeric Sliders)では、ユーザーによる値の変更が可能です。値を変更するには、ゲームパッドの方向パッド上で左矢印キーおよび右矢印キー、または、左ボタンおよび右ボタンを押してください。
Tip: アプリケーションには、オンラインヘルプ機能があります。Helpページにアクセスするには、キーボードのF1キーまたはゲームパッドの START ボタンを押します。 |
各デモの背後にあるコードは、 samples\IntegrationDemo\DemoPages
ディレクトリにあります。 例えば、Localizationデモのコードは、このディレクトリの DemoLocalization.h
ファイルと DemoLocalization.cpp
ファイルの中にあります。
Tip: 各デモの関連情報も Integration Demo アプリケーションのオンラインヘルプに掲載されています。 |
このデモは、ローカライズされたオーディオの実装方法を示すものです。ローカライズされたサウンドオブジェクトは、SoundBank 生成ディレクトリのサブディレクトリ内にある言語固有 SoundBanks 内にあります。現在の SoundBank をアンロードし、目的の言語固有 SoundBank をリロードすることで、ローカリゼーションエフェクトを実現することができます。
現在の言語を切り替えるには、Language トグルコントロールを使用します。言語を切り替えたら、 Say Hello ボタンを押して、選択した言語での挨拶を聞いてみましょう。
言語およびローカリゼーションの詳細については、 統合の詳細 - 言語とボイス を参照してください。
Dynamic Dialogue デモは、Wwise の Dynamic Dialogue 機能を使用する一連のテストを通じて実行されます。これらのテストはそれぞれ異なる制御フローを示し、各テストが作り出す効果をユーザーが聞けるようになっています:
ダイナミックダイアログに関する詳細は、統合の詳細 - Dynamic Dialogue(ダイナミックダイアログ) を参照してください。
このデモは、RTPCの使用法を示すものです。RPM数値スライダが、エンジンに関連付けられた RTPC値と連動しています。自動車エンジンのオーディオを開始・停止するには、Start Engine ボタンを押します。RTPC値を変更し、そのエフェクトを聞くにはRPMスライダを使用します。
RTPCに関する詳細は、 統合の詳細 - RTPC を参照してください。
このデモは、ゲーム内に足音を実装するための様々な方法を示すものです。また、地面が使用されない際にメディアおよびメタデータのメモリを最小限に抑える地面主導型のバンク管理方法も示されています。加えて、環境エフェクトの非常に単純なケースも示されています。
In this example, the footstep sounds are modified by two variables: walking speed, and walker weight.
サーフェスごとに、サウンドサンプルと変数に対する異なった対処方法を示しています。これらは、独自の構造で使用可能な提案やアイデアです。
バンクの管理 Footstepsデモでは、バンクを4つのメディアバンク(サーフェスごとに別のバンク)に分けてあります。画面を4つに分け、それぞれのサーフェス間に、両サーフェス用のバンクがロードされるバッファゾーンを1つずつ設けました。これは、バンクのロードにより引き起こされる足音間のギャップを回避するためです。SoundBank ManagerのGameSyncタブを確認してください。それぞれのサーフェス用バンクには、対応するサーフェスSwitchのみが含まれています。バンク内のサーフェスSwitchに関連する階層以外は何も入っていません。大規模なゲームにおいては、この設定により、特定のシナリオにおいて未使用サンプルの量を制限し、使用メモリ量を制限することができます。レベルまたはセクションベースのゲームでは、使用されるサーフェスが設計段階から分かっているため、これらの識別が簡単です。オープンゲームでは、少し状況が違いサーフェスの識別がゲーム構成に多くを依存しますが、可能ではあります。例えば、現在キャラクターが温暖な街にいて、寒い場所へしばらく移動しない場合は、"snow and ice" サーフェスサウンドをメモリに保っておくと無駄になります。
このデモは、サウンドファイル内部のマーカーがヒットしたときに通知を受信するためのコールバック関数を設定する方法を示すものです。このデモにおいては、字幕をオーディオトラックと同期させるためにマーカーを使用しています。
マーカーに関する詳細は、 マーカーの統合 を参照してください。
ミュージックコールバックの一般的な使い方を示すデモです。ビートならびにバー通知は、音楽のテンポならびに拍子記号情報から生成されます。
ランダムプレイリストで、次のアイテムを強制的に順番通りに選択させる方法を示すデモです。プレイリストアイテムは、コールバックを介しても停止することができます。
コールバックを使用してゲームが受け取ることのできる MIDI メッセージを表示します。MIDI メッセージにはMIDIノート、CC値、ピッチベンド、アフタータッチ、およびプログラムチェンジが含まれます。
ミュージックコールバックに関する詳細は、 統合の詳細 - ミュージックコールバック を参照してください。
この例では、ミュージックSwitch Containerが使用されています。デモページにリストされているEventをトリガーして、Stateを切り替えてみてください。Stateの切り替え(スイッチ)により、即時またはミュージックコンテナのルールで指定された時点で結果が生成されます。
この例は、MIDI APIの使い方のデモです。アクティブなメトロノームをシミュレーションするには、 Start Metronome ボタンを押します。次に、 BPM スライダを選択してLEFTやRIGHTを押し、値を変えます。このデモでは、登録されたコールバック関数を使い、MIDI Eventを PostMIDIOnEvent
function 関数経由でサウンドエンジンに送信します。
この例で、Xbox OneやPS4のDVRの法的要件の対応を示します。多くのゲームに著作権で保護された音楽が含まれるので、内蔵DVRに録音できないことが多いです。このデモが、DVRで録音された音とそれ以外の音の違いを示します。Wwiseプロジェクトを参照し、 BGMDemo フォルダにある音の設定を確認して、特にルーティングや使用するオーディオデバイスに注意してください。録音不可能な音は、DVR_Bypass出力に出力するバスにルーティングされます。
これらのデモは、Wwiseが提供する3Dポジショニングの様々な方式を示すものです。
あなたがこのページに入った途端、ヘリコプター音の再生が始まります。画面の平面であるXやZで、以下のキーを使い、'o' を動かします:
ポジションを1つだけ設定するデモです。
ポジションを2つ設定するデモです。
ポジショニングをバス階層だけで適用したデモです。Position + Orientation 3D Spatializationと、Attenuationが、バスだけに適用されているので、サウンドエンジンは、3つの子サウンドがミックスされてから、スペーシャリゼーションを適用します。
移動可能なエミッタとリスナーが互いに影響し合う様子を示すデモです。特に、PortalのあるRoomで示されているのは:
3Dバスがリバーブエフェクトを適用してから、そのアウトプットにポジションとスペーシャリゼーションを適用し、Master Audio Busにミキシングします。
移動可能なエミッタとリスナーが互いに影響し合う様子を、Portalのある2つの異なるRoomを使いながら示すデモです。ここでは、ゲームオブジェクトのポジションによって、Room同士が、エミッタのアウトプットに影響されるほど近い状況になる場合があります。
3Dバスがリバーブエフェクトを適用してから、そのアウトプットにポジションとスペーシャリゼーションを適用し、Master Audio Busにミキシングします。
These demos show various ways to use Spatial Audio to model sound propagation across Rooms, Portals, and Geometry.
Each demo page includes a movable emitter and a movable listener. You can offset the listener from a Distance Probe to simulate a third-person listening experience.
This demo shows the effect of Portals in Spatial Audio positioning. There are two Rooms with Portals and visible sound propagation paths. The resulting diffraction and transmission amounts are displayed in the lower-left corner. Same-room obstruction (emitter-listener and portal-listener) is calculated through a combination of Portal-driven propagation and a native game-side obstruction algorithm. Game object spread is calculated for the emitter with its set radial value. Finally, this demo shows how to use a Room to play multi-channel ambient sounds / room tones that contract and become point sources at portals.
This demo shows the effect of Portals in conjunction with the Spatial Audio Geometry API. There are two Rooms with Portals, Geometry for the wall inside and outside of the Room, an obstacle and visible sound propagation paths. The resulting diffraction and transmission amounts are displayed in the lower-left corner. Spatial Audio is set up so that diffraction/transmission controls both project-wide obstruction and the built-in diffraction/transmission parameter, although only the former is used in the Wwise project. Spatial Audio handles diffraction and transmission using Portals and Geometry respectively. The demo does not compute additional obstruction and occlusion.
This demo showcases the Wwise Spatial Audio Geometry API, usable for direct (dry) path diffraction and transmission. There are two walls and visible diffraction paths. The resulting diffraction and transmission amounts are displayed in the lower-left corner. Spatial Audio is set up so that diffraction/transmission controls both project-wide obstruction and the built-in diffraction/transmission parameter, although only the former is used in the project.
This demo showcases the Wwise Reflect plug-in using the Geometry API to simulate early reflection. There is a room and a separate wall, defined by Spatial Audio Geometry, and visible reflection paths. Spatial Audio is set up with a reflection order displayed in the lower-left corner. Additionally, Spatial Audio allows reflection paths to diffract. The room Geometry in this demo can change texture and be scaled in size demonstrating the adaptability of the Geometry API.
This demo showcases the Reflect plug-in within the context of Rooms and Portals. There are five Rooms, connected by Portals that can be toggled open or closed, some additional walls defined by Spatial Audio Geometry, and visible reflection paths.
This demo demonstrates the use of a Reverb Zone to create a space that has its own reverb effect and transitions into the outside Room without the use of Portals. There is a Room with a Portal that connects to a Reverb Zone, forming something like a covered balcony. The Reverb Zone's parent is the outdoor Room. There is also Geometry outside to show how paths can diffract around geometry, pass through the transparent surfaces of the Reverb Zone, and then continue through portals.
This page shows how to use the PrepareBank and PrepareEvent API functions.
When the page is loaded, a PrepareBank operation loads the lightweight structure and event data referenced by this demo, without loading any actual media into memory. When the user moves the cursor to an area button, a PrepareEvent operation loads the corresponding media file (a .wem file on disk) into memory in anticipation of a future PostEvent. When the user finally enters the area, the event is posted and the media is ready to play.
このデモは、外部ソースの使用方法を示すものです。どちらのボタンも同じサウンド構造を再生しますが、ランタイム時には、ソース "1"、"2" および "3"、または、ソース"4"、 "5" および "6"のいずれかと設定されています。
また、外部ソースは、ファイルパッケージャ(File Packager)にパッケージ化されており、デモページを開くときにロードされます。ファイルパッケージャに関する詳細は Wwise Help を、ファイルパッケージのランタイム時アスペクトの詳細については、 ストリーミング/ストリームマネージャ の章を参照してください。
This demo demonstrates the pros and cons of automatic event bank generation. When this option is selected in the Project Settings, Wwise generates individual banks for any events that are not contained in manually created banks. However, these auto-banks do not contain any media, only structure and event data. To load media associated with these events, the game must call either AK::SoundEngine::PrepareEvent or AK::SoundEngine::SetMedia.
このデモは、マイクからオーディオを録音し、これを Wwise サウンドエンジンに入力する方法を示すものです。Integration Demoで Microphone Demo を選択し、マイクに向かって話しかけ、自分の音声がWwiseサウンドエンジンで再生されるのを聞いてみてください。 Enable Delay をトグルし、Audio Inputプラグインに入力したオーディオデータが、Wwiseで作成したほかの音と同様に処理される例を聞いてください。
各プラットフォームが持つマイクにアクセスするためのコア API は、それぞれに異なります。Integration Demo コードで、 SoundInput
および SoundInputMgr
クラスをチェックし、これらがいかに AudioInput プラグインと相互作用しているかを確認してください。
注釈: This demo is available on the following platforms: Windows, macOS, iOS, and tvOS. |
Wwiseモーションエンジンをゲームに統合する方法を示すマルチプレイヤーデモです。
このデモにおいては、各プレイヤーには、ドアを閉めるか、手に持っている銃を撃つかのオプションがあります。ドアゲームオブジェクトとプレイヤーの銃に対してアクティブなリスナーが各プレイヤー用に設定されています。従って、いずれかのプレイヤーがドアを閉めると、すべてのプレイヤーがフォースフィードバック反応を受け取ります。一方、銃の場合は、発砲したプレイヤーのみが射撃Eventのフォースフィードバックを受け取ります。さらに、PS4やPS5では、銃の射撃音が各プレイヤーのゲームパッドスピーカーだけから再生されます。
注釈: Windowsでこのデモに参加するには、キーボードを使っているプレイヤーはゲームパッドをプラグインしてください。 |
このコードは、セカンダリアウトプット、Wwise Motion、そしてリスナー・エミッタ管理の使い方を示します。
Sound Engineの初期化設定の一部を確認できるページです。また、アプリケーション全体のオーディオアウトプットを選択できます。サンプルコードを見れば、Sound Engineの初期化と終了の仕方や、各種の物理的オーディオアウトプットを選択する方法が分かります。Sound Engine初期化の詳細については、以下の具体的なセクションを参照してください。
Integration Demoとこのデモ用の Wwise プロジェクトは、サウンドエンジン統合の基本を実証するために、非常にシンプルなものに保たれています。より実際的な統合プロジェクトに関しては、AkCube サウンドエンジン統合サンプルプロジェクト を参照してください。