バージョン
menu_open
警告:このページでは、一部の保護された情報が表示されません。
あなたが特定プラットフォームのライセンスを所有しているユーザであれば、最初にログインしてください。
Wwise SDK 2023.1.2
Integration Demoサンプル

Integration Demo(インテグレーションデモ)アプリケーションには、サウンドエンジンの様々な機能をゲームに統合する方法を示す一連のデモが含まれています。

注釈: このセクションで紹介するコードはすべて samples\IntegrationDemo\ ディレクトリにあるサンプルプロジェクトで、提供されています。

Wwise プロジェクト

このプログラムのWwiseプロジェクトは、 samples\IntegrationDemo\WwiseProject にもあります。

注釈: このプログラム用の Wwise プロジェクトは、オーディオファイルの様々な変換形式を使用していますが、ご利用の Wwise インストールにサポートされるプラットフォームに応じて、中には利用できないものもある可能性があります。Wwise でプロジェクトを開くと、次のような警告が表示される場合があります:

\Actor-Mixer Hierarchy\Dialogues\Captain_A\UNA-BM-AL_01\UNA-BM-AL_01 はコンバージョンプラグイン'XMA'を使いますが、これはインストールされていません。

利用できない全てのプラットフォームの、変換形式をPCMに変更することで、これらのメッセージを削除できます。詳しくは、Wwise ユーザーガイドの次のトピックを参照してください: オーディオファイルをコンバージョンする

このプロジェクトのSoundBankは、 samples\IntegrationDemo\WwiseProject\GeneratedSoundBanks フォルダのSDKでも、インストールされます。

サウンドバンクを生成するには、SoundBank Manager で次の操作を実行してください:

  • SoundBanks リスト内の全バンクにチェックマークを付ける。
  • テストする全プラットフォームにチェックマークを付ける。
  • Languages リスト内の全言語にチェックマークを付ける。

これらが正しく設定されたら、SoundBank Manager の Generate をクリックしてバンクを生成することができます。

デモのビルドと実行

Integration Demoのバイナリは、 \[Debug|Profile|Release]\bin ディレクトリにあります。アプリケーションをリビルドする場合は、次の手順に従ってください:

Windows

  • マシンにインストールされている DirectX SDK のバージョンが、 プラットフォーム要件 に記載されているバージョンと一致していることを確認してください。
  • Windows 用 Integration Demo SoundBanks をデフォルトパスに生成します。
  • samples\IntegrationDemo\Windows にあるソリューションを開き、希望するコンフィギュレーションを使ってビルドしてください。

Integration Demo を実行するには、上記のディレクトにある実行可能ファイルを起動します。

Mac

  • マシンにインストールされているXCodeのバージョンが、 プラットフォーム要件 に記載されているバージョンと一致していることを確認してください。
  • samples/IntegrationDemo/Mac にあるXcodeプロジェクトを開き、希望するコンフィギュレーションを使ってビルドしてください。
  • Integration Demoを実行するには、 Mac/[Debug|Profile|Release]/bin ディレクトリにある実行可能ファイルを起動するだけです。

iOS/tvOS/visionOS

  • Confirm that the version of the iOS/tvOS/visionOS SDK installed on your machine matches the one mentioned in プラットフォーム要件 .
  • Open the Xcode project found in samples/IntegrationDemo/iOS, samples/IntegrationDemo/tvOS or samples/IntegrationDemo/visionOS and build using the desired configuration.

Android

  • マシンにインストールされている Android 用 SDK とツールのバージョンが、 プラットフォーム要件 に記載されているバージョンと一致していることを確認してください。
  • samples\IntegrationDemo\WwiseProject にあるWwiseプロジェクトを開き、Android用SoundBankをデフォルトパスに生成します。
  • Integration Demoをリビルドするには(注:SDKでプリビルドされています):
    • あなたの ANDROID_NDK_HOME の環境変数が、有効なAndroid NDK r17cを指していることを確認します。
    • コマンドプロンプトを開きます。
    • ディレクトリを、 samples\IntegrationDemo\Android に変更します。
    • Build.cmd [armeabi-v7a|x86|arm64-v8a|x86_64] [Debug|Profile|Release] を入力します。
  • 接続されたデバイスにインストールするには:
    • コマンドプロンプトを開きます。
    • ディレクトリを 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 で戻ります。

Linux

  • あなたのLinuxマシンにあるLinuxのSDKとツールのバージョンが、 プラットフォーム要件 に記載されているバージョンと一致していることを確認してください。
  • 以下のパッケージが必要です:
    • make
    • clang
    • libsdl2-dev
  • コマンドラインを使い、 次のIntegrationDemo Linuxディレクトリまで移動します: cd SDK/samples/IntegrationDemo/Linux
  • IntegrationDemo_Linux.make という名前のMakefileや、 Linuxに固有の情報 で説明された変数を使い、ビルドします。
    • 例えば、Debugコンフィギュレーションで64-bitバイナリをビルドするには: make -f ./IntegrationDemo_Linux.make AK_LINUX_ARCH=x64 config=debug
  • Integration Demo を実行するには、ディレクトリ SDK/Linux_x[32|64]/[Debug|Profile|Release]/bin にある実行ファイルを起動するだけです。

使用上の注意

キーボードや、接続されたコントローラや、DirectInput 対応デバイスを使用して、Windows上の Integration Demo をナビゲートすることができます。

  • ページ上のコントロール間をナビゲートするには、ゲームパッドの方向パッド上にある上向きおよび下向き矢印キー、または上向きボタンおよび下向きボタンを使用します。
  • 選択したコントロールをアクティブにするには、ゲームパッドの Enter キーまたは A/X ボタンを押します。
  • メニュー内のページを戻るには、ゲームパッドの Escape キーまたは B/O ボタンを押します。

特定のコントロール(例:トグルコントロール/Toggle Controlsや数値スライダ/Numeric Sliders)では、ユーザーによる値の変更が可能です。値を変更するには、ゲームパッドの方向パッド上で左矢印キーおよび右矢印キー、または、左ボタンおよび右ボタンを押してください。

Tip: アプリケーションには、オンラインヘルプ機能があります。Helpページにアクセスするには、キーボードのF1キーまたはゲームパッドの START ボタンを押します。

デモ

各デモの背後にあるコードは、 samples\IntegrationDemo\DemoPages ディレクトリにあります。 例えば、Localizationデモのコードは、このディレクトリの DemoLocalization.h ファイルと DemoLocalization.cpp ファイルの中にあります。

Tip: 各デモの関連情報も Integration Demo アプリケーションのオンラインヘルプに掲載されています。

Dialogue

Localization Demo

このデモは、ローカライズされたオーディオの実装方法を示すものです。ローカライズされたサウンドオブジェクトは、SoundBank 生成ディレクトリのサブディレクトリ内にある言語固有 SoundBanks 内にあります。現在の SoundBank をアンロードし、目的の言語固有 SoundBank をリロードすることで、ローカリゼーションエフェクトを実現することができます。

現在の言語を切り替えるには、Language トグルコントロールを使用します。言語を切り替えたら、 Say Hello ボタンを押して、選択した言語での挨拶を聞いてみましょう。

言語およびローカリゼーションの詳細については、 統合の詳細 - 言語とボイス を参照してください。

Dynamic Dialogue Demo

Dynamic Dialogue デモは、Wwise の Dynamic Dialogue 機能を使用する一連のテストを通じて実行されます。これらのテストはそれぞれ異なる制御フローを示し、各テストが作り出す効果をユーザーが聞けるようになっています:

  • Test 1: Wwise IDを使用して簡単なダイナミックシーケンスを再生する方法を示します。
  • Test 2: Test 1と同様、ただし、IDの代わりに文字列を使用します。
  • Test 3: 再生中にダイナミックプレイリストへ項目を追加する方法を示します。
  • Test 4: 再生中にダイナミックプレイリストへ項目を挿入する方法を示します。
  • Test 5: 空のプレイリストに項目が追加された場合の発生事項を示します。
  • Test 6: ダイナミックシーケンスで Stop コールを使用する方法を示します。
  • Test 7: ダイナミックシーケンスで Break コールを使用する方法を示します。
  • Test 8: ダイナミックシーケンスで Pause コールと Resume コールを使用する方法を示します。
  • Test 9: ダイナミックシーケンスでアイテムをキューに入れるときに Delay コールを使用する方法を示します。
  • Test 10: 再生中にプレイリストを消去する方法を示します。
  • Test 11: プレイリストが停止・消去された場合の発生事項を示します。
  • Test 12: プレイリストで Break をコールし、それがクリアになるときに、何が起きるのかを示します。
  • Test 13: プレイリストが一時停止され消去された場合の発生事項を示します。
  • Test 14: ダイナミックダイアログでの作業中に、カスタムパラメータでコールバック関数を使用する方法を示します。
  • Test 14: ダイナミックダイアログでの作業中に、カスタムパラメータでコールバック関数を使用する方法を示します。
  • Test 16: タスクの実行(このケースでは、最初のシーケンス終了後に2番目のシーケンスを再生)のためのコールバック使用方法を示します。
  • Test 17: Wwise EventをDynamic Dalogueと連動させて使用する方法を示します。

ダイナミックダイアログに関する詳細は、統合の詳細 - Dynamic Dialogue(ダイナミックダイアログ) を参照してください。

RTPC (自動車エンジン)

このデモは、RTPCの使用法を示すものです。RPM数値スライダが、エンジンに関連付けられた RTPC値と連動しています。自動車エンジンのオーディオを開始・停止するには、Start Engine ボタンを押します。RTPC値を変更し、そのエフェクトを聞くにはRPMスライダを使用します。

RTPCに関する詳細は、 統合の詳細 - RTPC を参照してください。

Footsteps(足音)

このデモは、ゲーム内に足音を実装するための様々な方法を示すものです。また、地面が使用されない際にメディアおよびメタデータのメモリを最小限に抑える地面主導型のバンク管理方法も示されています。加えて、環境エフェクトの非常に単純なケースも示されています。

In this example, the footstep sounds are modified by two variables: walking speed, and walker weight.

  • 歩行速度 (Footstep_Speed RTPC) このプロジェクトは、ほとんどすべてのケースにおいて、歩行から走行へのスムーズな移行をサポートします。変数は、次のように仮定されます:速く歩けば歩くほど、足音がより短くなり、より激しく地面を踏む。これは、それぞれピッチ(Pitch) とボリューム(Volume)の変化に対応します。プロジェクト内でこれらのパラメータに対するRTPCを探してください。このデモでは、Speed RTPC がジョイスティックの変位により直接駆動されます。
  • 歩行者重量 (Footstep_Weight RTPC) 足音構造は、様々な歩行者重量をサポートします。現実の世界においてと同様、体重の重い歩行者ほど、足音がより長く重々しくなると仮定できます。これは、それぞれピッチと LPF の変化に対応します。プロジェクト内でこれらのパラメータに対するRTPCを探してください。

サーフェスごとに、サウンドサンプルと変数に対する異なった対処方法を示しています。これらは、独自の構造で使用可能な提案やアイデアです。

  • Gravel Our gravel samples are very similar, so it won't give us anything more to have a lot of samples of this surface. 更なるバリエーションは、ボリューム、LPF とピッチのランダム化によって獲得できます。重量(Weight)による影響は、EQエフェクトのゲインパラメータを Weight RTPC によって駆動することにより実行可能です。軽い足音に対しては、より高い周波数がブーストされ、重い足音に対してはその逆です。ピッチやボリュームにRTPCが与える影響に留意してください。
  • ウッド(Wood) ウッドサーフェスでは、歩行と走行のサンプルが非常に異なっていたほか、重い足音と軽い足音も、異なりました。従って、これはより基本的なSwitch階層に編成されました。両Switch Containerは、RTPC 駆動のスイッチにより駆動されます(GameSync タブで、Footstep_Gait と Footstep_Weight を探してください)。
  • 土(Dirt) このサーフェスでの歩行および走行サンプルは、いくぶん類似していたため、ブレンドコンテナでトランジションを実行することにしました。重量を考慮できるよう、ピッチとボリュームに対してRTPCを使用しました。

バンクの管理 Footstepsデモでは、バンクを4つのメディアバンク(サーフェスごとに別のバンク)に分けてあります。画面を4つに分け、それぞれのサーフェス間に、両サーフェス用のバンクがロードされるバッファゾーンを1つずつ設けました。これは、バンクのロードにより引き起こされる足音間のギャップを回避するためです。SoundBank ManagerのGameSyncタブを確認してください。それぞれのサーフェス用バンクには、対応するサーフェスSwitchのみが含まれています。バンク内のサーフェスSwitchに関連する階層以外は何も入っていません。大規模なゲームにおいては、この設定により、特定のシナリオにおいて未使用サンプルの量を制限し、使用メモリ量を制限することができます。レベルまたはセクションベースのゲームでは、使用されるサーフェスが設計段階から分かっているため、これらの識別が簡単です。オープンゲームでは、少し状況が違いサーフェスの識別がゲーム構成に多くを依存しますが、可能ではあります。例えば、現在キャラクターが温暖な街にいて、寒い場所へしばらく移動しない場合は、"snow and ice" サーフェスサウンドをメモリに保っておくと無駄になります。

字幕/マーカー

このデモは、サウンドファイル内部のマーカーがヒットしたときに通知を受信するためのコールバック関数を設定する方法を示すものです。このデモにおいては、字幕をオーディオトラックと同期させるためにマーカーを使用しています。

マーカーに関する詳細は、 マーカーの統合 を参照してください。

Music/MIDI

Music sync callback demo

ミュージックコールバックの一般的な使い方を示すデモです。ビートならびにバー通知は、音楽のテンポならびに拍子記号情報から生成されます。

Music playlist callback demo

ランダムプレイリストで、次のアイテムを強制的に順番通りに選択させる方法を示すデモです。プレイリストアイテムは、コールバックを介しても停止することができます。

MIDI callback demo

コールバックを使用してゲームが受け取ることのできる MIDI メッセージを表示します。MIDI メッセージにはMIDIノート、CC値、ピッチベンド、アフタータッチ、およびプログラムチェンジが含まれます。

ミュージックコールバックに関する詳細は、 統合の詳細 - ミュージックコールバック を参照してください。

Interactive Music Demo

この例では、ミュージックSwitch Containerが使用されています。デモページにリストされているEventをトリガーして、Stateを切り替えてみてください。Stateの切り替え(スイッチ)により、即時またはミュージックコンテナのルールで指定された時点で結果が生成されます。

MIDI API Demo

この例は、MIDI APIの使い方のデモです。アクティブなメトロノームをシミュレーションするには、 Start Metronome ボタンを押します。次に、 BPM スライダを選択してLEFTやRIGHTを押し、値を変えます。このデモでは、登録されたコールバック関数を使い、MIDI Eventを PostMIDIOnEvent function 関数経由でサウンドエンジンに送信します。

Background Music Demo

この例で、Xbox OneやPS4のDVRの法的要件の対応を示します。多くのゲームに著作権で保護された音楽が含まれるので、内蔵DVRに録音できないことが多いです。このデモが、DVRで録音された音とそれ以外の音の違いを示します。Wwiseプロジェクトを参照し、 BGMDemo フォルダにある音の設定を確認して、特にルーティングや使用するオーディオデバイスに注意してください。録音不可能な音は、DVR_Bypass出力に出力するバスにルーティングされます。

参照

ポジショニング

これらのデモは、Wwiseが提供する3Dポジショニングの様々な方式を示すものです。

あなたがこのページに入った途端、ヘリコプター音の再生が始まります。画面の平面であるXやZで、以下のキーを使い、'o' を動かします:

  • 右スティック
  • 矢印キー、Dパッド 動かすと、音も移動するのが分かります。座標が画面の左下に表示されます。

Position Demo

ポジションを1つだけ設定するデモです。

Multi-Position Demo

ポジションを2つ設定するデモです。

3D Bus: Clustering/3D Submix

ポジショニングをバス階層だけで適用したデモです。Position + Orientation 3D Spatializationと、Attenuationが、バスだけに適用されているので、サウンドエンジンは、3つの子サウンドがミックスされてから、スペーシャリゼーションを適用します。

3D Bus: 3D Portal and Standard Room

移動可能なエミッタとリスナーが互いに影響し合う様子を示すデモです。特に、PortalのあるRoomで示されているのは:

  • Aux busが、リスナーが現在入っているRoomをシミュレーションする様子
  • 3Dバスの 'Room1' -> 'Wet_Path_3D' という流れで、リスナーが入っていないRoomをシミュレーションする様子

3Dバスがリバーブエフェクトを適用してから、そのアウトプットにポジションとスペーシャリゼーションを適用し、Master Audio Busにミキシングします。

3D Bus: 2X 3D Portal

移動可能なエミッタとリスナーが互いに影響し合う様子を、Portalのある2つの異なるRoomを使いながら示すデモです。ここでは、ゲームオブジェクトのポジションによって、Room同士が、エミッタのアウトプットに影響されるほど近い状況になる場合があります。

3Dバスがリバーブエフェクトを適用してから、そのアウトプットにポジションとスペーシャリゼーションを適用し、Master Audio Busにミキシングします。

Spatial Audio

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.

参照

Portal Demo

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.

参照

Portal and Geometry Demo

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.

Geometry Demo

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.

参照

Reflect Demo

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.

参照

Portal and Reflect Demo

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.

Reverb Zone Demo

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.

参照

Bank & Event Loading

Prepare Event/Bank Demo

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.

External Sources Demo

このデモは、外部ソースの使用方法を示すものです。どちらのボタンも同じサウンド構造を再生しますが、ランタイム時には、ソース "1"、"2" および "3"、または、ソース"4"、 "5" および "6"のいずれかと設定されています。

参照

また、外部ソースは、ファイルパッケージャ(File Packager)にパッケージ化されており、デモページを開くときにロードされます。ファイルパッケージャに関する詳細は Wwise Help を、ファイルパッケージのランタイム時アスペクトの詳細については、 ストリーミング/ストリームマネージャ の章を参照してください。

Autobanks Demo

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.

Microphone/AudioInput Demo

このデモは、マイクからオーディオを録音し、これを 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.
参照

Motion Demo

Wwiseモーションエンジンをゲームに統合する方法を示すマルチプレイヤーデモです。

このデモにおいては、各プレイヤーには、ドアを閉めるか、手に持っている銃を撃つかのオプションがあります。ドアゲームオブジェクトとプレイヤーの銃に対してアクティブなリスナーが各プレイヤー用に設定されています。従って、いずれかのプレイヤーがドアを閉めると、すべてのプレイヤーがフォースフィードバック反応を受け取ります。一方、銃の場合は、発砲したプレイヤーのみが射撃Eventのフォースフィードバックを受け取ります。さらに、PS4やPS5では、銃の射撃音が各プレイヤーのゲームパッドスピーカーだけから再生されます。

注釈: Windowsでこのデモに参加するには、キーボードを使っているプレイヤーはゲームパッドをプラグインしてください。

このコードは、セカンダリアウトプット、Wwise Motion、そしてリスナー・エミッタ管理の使い方を示します。

参照

Options Page

Sound Engineの初期化設定の一部を確認できるページです。また、アプリケーション全体のオーディオアウトプットを選択できます。サンプルコードを見れば、Sound Engineの初期化と終了の仕方や、各種の物理的オーディオアウトプットを選択する方法が分かります。Sound Engine初期化の詳細については、以下の具体的なセクションを参照してください。

参照

追加のサンプルコード

Integration Demoとこのデモ用の Wwise プロジェクトは、サウンドエンジン統合の基本を実証するために、非常にシンプルなものに保たれています。より実際的な統合プロジェクトに関しては、AkCube サウンドエンジン統合サンプルプロジェクト を参照してください。


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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう