バージョン

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

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

注釈: このセクションに掲載されているコードは、すべて "samples\\IntegrationDemo\\$(Platform)" ディレクトリ内のサンプルプロジェクトにあります。

Wwise プロジェクト

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

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

'\Actor-Mixer Hierarchy\Dialogues\Captain_A\UNA-BM-AL_01\UNA-BM-AL_01' uses the conversion plugin 'XMA', which is not installed.

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

このプロジェクト用のサウンドバンクも、SDK と共に "samples\\IntegrationDemo\\WwiseProject\\GeneratedSoundBanks" フォルダにインストールされています。

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

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

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

デモのビルドと実行

Integration Demoバイナリは、"$(Platform)\\[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

  • マシンにインストールされているiOS/tvOS SDKのバージョンが、 プラットフォーム要件 に記載されているバージョンと一致していることを確認してください。
  • "samples/IntegrationDemo/iOS"または"samples/IntegrationDemo/tvOS"にあるXcodeプロジェクトを開き、希望するコンフィギュレーションを使用してビルドします。

Android

  • マシンにインストールされている Android 用 SDK とツールのバージョンが、 プラットフォーム要件 に記載されているバージョンと一致していることを確認してください。
  • "samples\\IntegrationDemo\\WwiseProject" にある Wwise プロジェクトを開き、Android 用 SoundBanks をデフォルトパスに生成します。
  • 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を操作するにはソフトウェアキーボードやハードウェアキーボードを使用する必要があります。移動するには、"a,w,s,d"のキーを使います。"Enter"で選択し、"space"で戻ります。

Linux

  • LinuxマシンにインストールされているLinux用 SDKとツールのバージョンが、 プラットフォーム要件 に記載されているバージョンと一致していることを確認してください。
  • 以下の追加パッケージが必要です:
    • libncurses5-dev
    • g++
    • libsdl2-dev
  • Linux に固有の情報 に記載の環境変数を設定します。
  • "SDK/samples/IntegrationDemo/Linux" にあるmakefileを使い、Integration Demoをビルドします
  • 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" ディレクトリにあります。 例えば、ローカリゼーションデモ用のコードは、このディレクトリの DemoLocalization.h または DemoLocalization.cpp ファイルの中にあります。

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

ローカリゼーション

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

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

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

ダイナミックダイアログ

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(足音)

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

この例では、足音サウンドが次の3つの変数によって変更されます:サーフェス(地面)、歩行速度、歩行者重量。

  • サーフェス (Surface スイッチ) サーフェスはサウンドの実際のプロパティを変更するため、シミュレートできません。しかし、足音は衝撃音(impact sounds)なので、ほとんどのサーフェスタイプに対して SoundSeed Impact を使用することにしました。各サーフェスは、それぞれに固有な共振特性を持っており、SoundSeed Impact はこれらを調整することができます。SoundSeed Impact は、実際の音の小規模なサブセットから広範囲にわたるサウンドを生み出すことができるので、スペースを節約することができます。
  • 歩行速度 (Footstep_Speed RTPC) このプロジェクトは、ほとんどすべてのケースにおいて、歩行から走行へのスムーズな移行をサポートします。変数は、次のように仮定されます:速く歩けば歩くほど、足音がより短くなり、より激しく地面を踏む。これは、それぞれピッチ(Pitch) とボリューム(Volume)の変化に対応します。プロジェクト内でこれらのパラメータに対するRTPCを探してください。このデモでは、Speed RTPC がジョイスティックの変位により直接駆動されます。
  • 歩行者重量 (Footstep_Weight RTPC) 足音構造は、様々な歩行者重量をサポートします。現実の世界においてと同様、体重の重い歩行者ほど、足音がより長く重々しくなると仮定できます。これは、それぞれピッチと LPF の変化に対応します。プロジェクト内でこれらのパラメータに対するRTPCを探してください。

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

  • 砂利(Gravel) Gravel サンプルは非常に騒々しいため SoundSeed Impact とは合いません。また、両者は非常に類似しているので、このサーフェスのサンプルを多数持つこと以外には何も得ることがありません。更なるバリエーションは、ボリューム、LPF とピッチのランダム化によって獲得できます。重量(Weight)による影響は、EQエフェクトのゲインパラメータを Weight RTPC によって駆動することにより実行可能です。軽い足音に対しては、より高い周波数がブーストされ、重い足音に対してはその逆です。ピッチやボリュームにRTPCが与える影響に留意してください。
  • メタル(Metal) たくさんのレゾナンス(共鳴)を持つメタルサーフェスは、SoundSeed Impact 使用の模範例です。サンプルでは、かかとによるインパクト(衝撃)に続いてつま先のインパクトを簡単に聞き取ることができます。さらなるバリエーションを持たせるため、各サンプルを2つに分割します。これにより、各セクションのピッチを個別にランダム化することができます。サンプル精度のトランジションシーケンスを使用して、分割したサンプルを再結合します。この方法で、5つのオリジナルサンプルにより25の基本的な組み合わせが提供されます。ピッチのランダム化と SoundSeed Impact の自然なランダム化を追加すれば、かなりバラエティに富んだサウンドを得ることができます。Weight RTPC と Speed RTPC は、SoundSeed Impact パラメータおよびピッチと LPF を駆動します。
  • ウッド(Wood) ウッドサーフェスでは、歩行と走行のサンプルが非常に異なっていたほか、重い足音と軽い足音も、異なりました。従って、これはより基本的なSwitch階層に編成されました。両Switch Containerは、RTPC 駆動のスイッチにより駆動されます(GameSync タブで、Footstep_Gait と Footstep_Weight を探してください)。ウッドサーフェスは、SoundSeed Impact でも、好調でした。
  • 土(Dirt) このサーフェスでの歩行および走行サンプルは、いくぶん類似していたため、ブレンドコンテナでトランジションを実行することにしました。重量を考慮できるよう、ピッチとボリュームに対してRTPCを使用しました。

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

字幕/マーカー

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

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

ミュージックコールバック

Music sync callback demo

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

Music playlist callback demo

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

MIDI callback demo

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

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

インタラクティブミュージック

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

MIDI API

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

Motion(モーション)

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

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

注釈: キーボードを使用するプレイヤーは、このデモに参加するためにゲームパッドを差し込む必要があります。

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

参照

マイク/AudioInput

このデモは、マイクからオーディオを録音し、これを Wwise サウンドエンジンに入力する方法を示すものです。Integration Demo で "Microphone Demo" を選び、マイクに向かって話しかけ、Wwise サウンドエンジンがあなたの声を再生するのを聞いてみてください。"Enable Delay" をトグルし、Audio Input プラグインに入力されたオーディオデータが、Wwiseで作成された他のサウンドと同様に処理可能であることを示すサンプルを聞いてみてください。

各プラットフォームが持つマイクにアクセスするためのコア API は、それぞれに異なります。Integration Demo コードで、 SoundInput および SoundInputMgr クラスをチェックし、これらがいかに AudioInput プラグインと相互作用しているかを確認してください。

注釈: このデモは、次のプラットフォームに対応しています: Windows、UWP、macOS、iOS、tvOS。
参照

ポジショニング

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

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

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

Position Demo

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

Multi-Position Demo

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

Spatial Audio - Portals

スペーシャルオーディオのポジショニングにおいて、Portalsのエフェクトを示すデモです。2つのRoomに、Portalや移動可能なエミッターとリスナーがあり、音の伝播パスが表示され、その結果である回折の量が左下に表示されます。Portal主導の伝播に加え、同室内のオブストラクション(エミッター・リスナー間と、ポータル・リスナー間)に、ゲーム側のネイティブのオブストラクションアルゴリズムが使われています。デモの最後に、Roomを使い複数チャンネルのアンビエントサウンドやルームトーンを再生し、それがPortalで集約され点音源となる様子を示しています。

参照

Spatial Audio - Geometry

Wwise Spatial Audio Geometry APIをダイレクト(ドライ)パスの回折に使う方法を示すデモで、これはWwise Reflectプラグインにも使えます(デモではReflectは未使用)。2つの壁と、移動可能なエミッターとリスナーがあり、回折パスが表示され、その結果である回折の量が左下に表示されます。Spatial Audioは、プロジェクト全体のオブストラクションと、組み込みパラメータのDiffractionの両方を回折でコントロールできるように設定されていますが、このプロジェクトで使われるのは前者だけです。

参照

Clustering/3D Submix

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

3D Portal and Standard Room

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

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

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

2X 3D Portal

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

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

外部ソース

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

参照

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

BGMのデモ

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

参照

追加のサンプルコード

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


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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう