SoundFrame を使用するには、次のファイルが必要になります:
以下のサンプルも利用可能です:
以下の例は、SoundFrame クライアントの基本的なコード構造です:
#include <AK/SoundFrame/SF.h> class SoundFrameClient : public AK::SoundFrame::IClient { AK::SoundFrame::ISoundFrame * m_pSoundFrame; public: SoundFrameClient() : m_pSoundFrame( NULL ) { AK::SoundFrame::Create( this, &m_pSoundFrame ); if ( m_pSoundFrame ) m_pSoundFrame->Connect(); } ~SoundFrameClient() { if ( m_pSoundFrame ) m_pSoundFrame->Release(); } // SoundFrame::IClient methods virtual void OnConnect( bool in_bConnect ) {} virtual void OnEventNotif( Notif in_eNotif, AkUniqueID in_eventID ) {} virtual void OnDialogueEventNotif( Notif in_eNotif, AkUniqueID in_dialogueEventID ) {} virtual void OnSoundObjectNotif( Notif in_eNotif, AkUniqueID in_soundObjectID ) {} virtual void OnStatesNotif( Notif in_eNotif, AkUniqueID in_stateGroupID ) {} virtual void OnSwitchesNotif( Notif in_eNotif, AkUniqueID in_switchGroupID ) {} virtual void OnGameParametersNotif( Notif in_eNotif, AkUniqueID in_gameParameterID ) {} virtual void OnTriggersNotif( Notif in_eNotif, AkUniqueID in_triggerID ) {} virtual void OnArgumentsNotif( Notif in_eNotif, AkUniqueID in_argumentID ) {} virtual void OnEnvironmentsNotif( Notif in_eNotif, AkUniqueID in_environmentID ) {} virtual void OnGameObjectsNotif( Notif in_eNotif, AkGameObjectID in_gameObjectID ) {} }
|
Caution: SoundFrame が Wwise オーサリングツールからのメッセージを受信するためには、AK::SoundFrame::ISoundFrame::Connect が Window を作成する必要があります。関数はアプリケーションのメッセージポンプと同じスレッドから呼び出される必要があります。 |
クライアントは、SoundFrameを保有している間、これを以下の方法で Wwise と相互作用するために使用することができます:
SoundFrame は、Wwise オブジェクトのアプリケーションへの統合を可能にします。SoundFrame 使用により、イベント再生、スイッチ割り当て、環境設定などのタスクを実行することができます。以下の Wwise オブジェクトは、SoundFrame での使用が可能です:
Wwise オブジェクトをアプリケーションで使用する場合には、これらのオブジェクトを参照する方法を知っておくことが重要です。Wwise オブジェクトを参照する方法には2通りあります:
Wwise オブジェクトをアプリケーションへ統合する場合には、次のいずれかの方法を利用してこの機能を有効にできます:
IClient::OnEventNotif
で Notif_Push 通知をリッスン。プロジェクトに減衰(アッテネーション)が含まれている場合、アプリケーションに表示される Wwise が定義する最大減衰値を見ると便利です。SoundFrame を使用して、減衰値を表示し、これらの値が Wwiseで変更された場合に通知を受けられるよう登録することができます。
SoundFrame から見ると、減衰はサウンドオブジェクトのプロパティです(詳細は ISoundObject を参照)。 アプリケーション内に減衰値を表示するには以下を行ってください:
アプリケーションを、適切に減衰値を表示するよう適応させた後は、減衰変更通知の登録を行うことをお勧めします。
減衰変更通知を登録するには:
これにより、Wwise で減衰値が変更された際に AK::SoundFrame::IClient::OnSoundObjectNotif
の Notif_Changed 型通知を受信できるようになります。
減衰変更通知の登録を解除するには:
SoundFrame によって、大部分の Sound Engine API にアクセスすることが可能です。これにより、イベント再生の有効化およびアプリケーション内のステート、スイッチ、RTPC、トリガーと環境の変更を行うことができるようになります。この API を使用すると、作動ゲームエンジンやサウンドバンク生成をも必要とせずに実際のゲームシナリオを Wwise で直接シミュレートすることができます。
ユーザーがアプリケーション内からイベントを再生できるようにしたい場合は、次のようにイベント再生を有効にする必要があります:
|
Note: アプリケーションが Play モードになると、多数のイベントが長いシーケンスで 。従って、再生中は ISoundFrame::SetPlayBackMode を使用して再生モードを True に設定することをお勧めします。再生が終了したら、再生モードの設定を False に戻すことができます。再生モードを False に設定すると、Wwise 内のすべての再生が停止されます。 |
SoundFrame の使用により、アプリケーション内のアクティブなステートおよびスイッチを変更して、実際のゲームシナリオをシミュレートすることができます。これは、次のメソッドにより可能です:
SoundFrame により、ゲームオブジェクトを作成または削除し、これらのオブジェクトの位置を3次元で(立体的に)変更できるメソッドへのアクセスができます。また、リスナーを定義し、これらをアプリケーション内の任意の場所に配置することができます。これを行うには、次のメソッドを使用します:
SoundFrameにより、よりリアルなゲームシミュレーション作成のために、RTPCおよび環境の変更を行い、また、インタラクティブミュージックトリガーを起動することができます。更に、ゲームオブジェクトのオブストラクションおよびオクルージョンレベルを定義することも可能です。これを行うには、次のメソッドを使用します:
Wwise ユーザーは、SoundBank Manager を使用してサウンドバンクの作成およびイベントの投入を行うことができます。
ただし、イベントをゲームに統合するために3Dアプリケーションやレベルエディタのようなほかのアプリケーションを使用する場合、その使用アプリケーションから SoundBank 定義ファイルを生成し、これを Wwise にインポートして自動的にサウンドバンクを作成およびイベントの投入を行うことができます。
定義ファイルは、ゲーム内の全てのイベントをサウンドバンク別に分類しリストしたテキストファイルです。定義ファイルには、タブ区切りされたサウンドバンクの名前と対応するイベント名が含まれている必要があります。次の図は、Wwiseで読み込み可能になるように定義ファイルを記述する方法を示しています。
定義ファイルは、サウンドバンクにパッケージされるプロジェクト要素のタイプを定義する特別なキーワードも含むことができます。次のようなキーワードの使用が可能です:
定義ファイルでは、これらのキーワードのうちの1つまたは複数を、タブ区切りでイベント名の後に追加することができます。定義ファイルにキーワードが含まれていない場合は、すべてのプロジェクト要素とメディアがサウンドバンクにパッケージされます。次の図は、定義ファイル内でこれらのキーワードを使用する方法を示しています。
ゲームがイベント名に文字列を使用しない場合は、定義ファイル内のイベント定義に次のシステムのいずれかを使用することができます:
次の図は、異なるシステムによる定義ファイル内のイベントの定義方法を示しています。
Event ID は、SoundFrame を介して色々な関数で入手可能です:
詳細は、AKSoundFrame::IEvent, AK::SoundFrame::IClient and AK::SoundFrame::ISoundFrame をご覧ください。
SoundBank 定義ファイルは、手動または SoundFrame を介してインポート可能です。
アプリケーションが SoundBank 定義ファイルを生成したら、新しい定義ファイルをインポートする必要があることを Wwise に通知するための呼び出しを行います。
Wwise に新しい SoundBank 定義ファイルをインポートする必要があることを通知するには:
|
Note: 定義ファイルで作成されたサウンドバンクは、デフォルト SoundBank Work Unit に配置されていることに注意してください。別のワークユニットにサウンドバンクを作成するには、Wwise で定義ファイルを手動でインポートする必要があります。 |
アプリケーションが SoundBank 定義ファイルを生成しない場合は、サウンドバンクの再生成が必要であることを Wwise に知らせるための呼び出しを行うことができます。
Wwise にサウンドバンクを再生成する必要があることを通知するには:
定義ファイルをインポートしてサウンドバンクを作成または更新するには以下を行います:
|
Note: Wwise は、イベントが手動でユーザーにより追加されたか、SoundBank 定義ファイルのインポートにより自動的に追加されたかを記憶しています。後の定義ファイルインポート時には、定義ファイルのインポートにより追加されたイベントのみが削除されます。手動で追加されたイベントは、定義ファイルにリストされていない場合でもサウンドバンクから削除されません。 |