Wwise SDK 2019.1.11
|
Integration Demo(インテグレーションデモ)アプリケーションには、サウンドエンジンの様々な機能をゲームに統合する方法を示す一連のデモが含まれています。
注釈: このセクションに掲載されているコードは、すべて "samples\\IntegrationDemo\\$(Platform)" ディレクトリ内のサンプルプロジェクトにあります。 |
このプログラム用の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 で次の操作を実行してください:
これらが正しく設定されたら、SoundBank Manager の Generate をクリックしてバンクを生成することができます。
Integration Demoバイナリは、"$(Platform)\\[Debug|Profile|Release]\\bin" ディレクトリより利用可能です。アプリケーションをリビルドする場合は、次の手順に従ってください:
Integration Demo を実行するには、上記のディレクトにある実行可能ファイルを起動します。
adb install IntegrationDemo.apk
を入力します。Android Studioを使った 代替 ビルド方式 あなたがAndroid Studioをインストール済みであれば、Integration Demoをコンパイルしデプロイするgradleプロジェクトを提供しています。Android Studioの "samples\IntegrationDemo\Android" ディレクトリを開くだけで、アプリをビルドしローンチできるはずです。
注釈: Integration Demoを操作するにはソフトウェアキーボードやハードウェアキーボードを使用する必要があります。移動するには、"a,w,s,d"のキーを使います。"Enter"で選択し、"space"で戻ります。 |
キーボードや、接続されたコントローラや、DirectInput 対応デバイスを使用して、Windows上の Integration Demo をナビゲートすることができます。
特定のコントロール(例:トグルコントロール/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 機能を使用する一連のテストを通じて実行されます。これらのテストはそれぞれ異なる制御フローを示し、各テストが作り出す効果をユーザーが聞けるようになっています:
ダイナミックダイアログに関する詳細は、統合の詳細 - Dynamic Dialogue(ダイナミックダイアログ) を参照してください。
このデモは、RTPCの使用法を示すものです。RPM数値スライダが、エンジンに関連付けられた RTPC値と連動しています。自動車エンジンのオーディオをスタート/ストップするには "Start Engine" ボタンを押してください。RTPC値を変更し、そのエフェクトを聞くにはRPMスライダを使用します。
RTPCに関する詳細は、 統合の詳細 - RTPC を参照してください。
このデモは、ゲーム内に足音を実装するための様々な方法を示すものです。また、地面が使用されない際にメディアおよびメタデータのメモリを最小限に抑える地面主導型のバンク管理方法も示されています。加えて、環境エフェクトの非常に単純なケースも示されています。
この例では、足音サウンドが次の3つの変数によって変更されます:サーフェス(地面)、歩行速度、歩行者重量。
サーフェスごとに、サウンドサンプルと変数に対する異なった対処方法を示しています。これらは、独自の構造で使用可能な提案やアイデアです。
バンクの管理 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 関数経由でサウンドエンジンに送信します。
Wwiseモーションエンジンをゲームに統合する方法を示すマルチプレイヤーデモです。
このデモにおいては、各プレイヤーには、ドアを閉めるか、手に持っている銃を撃つかのオプションがあります。ドアゲームオブジェクトとプレイヤーの銃に対してアクティブなリスナーが各プレイヤー用に設定されています。従って、いずれかのプレイヤーがドアを閉めると、すべてのプレイヤーがフォースフィードバック反応を受け取ります。一方、銃の場合は、発砲したプレイヤーのみが射撃Eventのフォースフィードバックを受け取ります。さらにPS4では、銃の射撃音が、各プレイヤーのゲームコントローラのスピーカーだけから再生されます。
注釈: キーボードを使用するプレイヤーは、このデモに参加するためにゲームパッドを差し込む必要があります。 |
このコードは、セカンダリアウトプット、Wwise Motion、そしてリスナー・エミッタ管理の使い方を示します。
このデモは、マイクからオーディオを録音し、これを 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' を動かします:
ポジションを1つだけ設定するデモです。
ポジションを2つ設定するデモです。
スペーシャルオーディオのポジショニングにおいて、Portalsのエフェクトを示すデモです。2つのRoomに、Portalや移動可能なエミッターとリスナーがあり、音の伝播パスが表示され、その結果である回折の量が左下に表示されます。Portal主導の伝播に加え、同室内のオブストラクション(エミッター・リスナー間と、ポータル・リスナー間)に、ゲーム側のネイティブのオブストラクションアルゴリズムが使われています。デモの最後に、Roomを使い複数チャンネルのアンビエントサウンドやルームトーンを再生し、それがPortalで集約され点音源となる様子を示しています。
Wwise Spatial Audio Geometry APIをダイレクト(ドライ)パスの回折に使う方法を示すデモで、これはWwise Reflectプラグインにも使えます(デモではReflectは未使用)。2つの壁と、移動可能なエミッターとリスナーがあり、回折パスが表示され、その結果である回折の量が左下に表示されます。Spatial Audioは、プロジェクト全体のオブストラクションと、組み込みパラメータのDiffractionの両方を回折でコントロールできるように設定されていますが、このプロジェクトで使われるのは前者だけです。
ポジショニングをバス階層だけで適用したデモです。Position + Orientation 3D Spatializationと、Attenuationが、バスだけに適用されているので、サウンドエンジンは、3つの子サウンドがミックスされてから、スペーシャリゼーションを適用します。
移動可能なエミッターとリスナーが互いに影響し合う様子を示すデモです。特に、PortalのあるRoomで示されているのは:
3Dバスがリバーブエフェクトを適用してから、そのアウトプットにポジションとスペーシャリゼーションを適用し、Master Audio Busにミキシングします。
移動可能なエミッターとリスナーが互いに影響し合う様子を、Portalのある2つの異なるRoomを使いながら示すデモです。ここでは、ゲームオブジェクトのポジションによって、Room同士が、エミッターのアウトプットに影響されるほど近い状況になる場合があります。
3Dバスがリバーブエフェクトを適用してから、そのアウトプットにポジションとスペーシャリゼーションを適用し、Master Audio Busにミキシングします。
このデモは、外部ソースの使用方法を示すものです。どちらのボタンも同じサウンド構造を再生しますが、ランタイム時には、ソース "1"、"2" および "3"、または、ソース"4"、 "5" および "6"のいずれかと設定されています。
また、外部ソースは、ファイルパッケージャ(File Packager)にパッケージ化されており、デモページを開くときにロードされます。ファイルパッケージャに関する詳細は Wwise Help を、ファイルパッケージのランタイム時アスペクトの詳細については、 ストリーミング/ストリームマネージャ の章を参照してください。
この例で、Xbox OneやPS4のDVRの法的要件の対応を示します。多くのゲームに著作権で保護された音楽が含まれるので、内蔵DVRに録音できないことが多いです。このデモが、DVRで録音された音とそれ以外の音の違いを示します。Wwiseプロジェクトを参照し、 BGMDemo フォルダにある音の設定を確認して、特にルーティングや使用するオーディオデバイスに注意してください。録音不可能な音は、DVR_Bypass出力に出力するバスにルーティングされます。
Integration Demoとこのデモ用の Wwise プロジェクトは、サウンドエンジン統合の基本を実証するために、非常にシンプルなものに保たれています。より実際的な統合プロジェクトに関しては、AkCube サウンドエンジン統合サンプルプロジェクト を参照してください。