バージョン

menu_open
Wwise SDK 2023.1.3
クイックスタートサンプル統合 - 環境とゲーム定義 Aux センド

環境エフェクト統合例

まずユーザーは、環境を表すAuxバスをWwiseプロジェクト内に作成しなければなりません、1環境ごとにAuxバスが1つ必要です。この機能を使用するサウンドに対して、"Use game-defined auxiliary sends(ゲーム定義Auxセンドを使用)"オプションが、オブジェクトのプロパティや、プロパティの継承元であるオブジェクトで設定されていなければなりません。これらのパラメータセットをゲームで使用するには、当該のエフェクトがサウンドエンジンに登録されている必要があります。これは、以下の例で示すように、他のエフェクトプラグイン登録(詳細は、プラグイン統合例 参照)と同様の方法で行います:

#include <AK/SoundEngine/Common/AkSoundEngine.h> // Sound Engine
#include <AK/Plugin/AkRoomVerbFXFactory.h> // Effect initialization functions
(...)

リンク時に初期化関数が検出されるようにするには、C++ プロジェクトが適切なプラグインライブラリとリンクしている必要があります。ライブラリに関する詳細は、SDKに含まれるライブラリとヘッダファイルの概要 をご覧ください。

// In this example we hardcode the 3 values for Dry, Hangar, and Tunnel. In
// a game you would compute these values based on the game object's position
// in its environment.
AkReal32 nDryRatio = 0.5f;
AkReal32 nHangarRatio = 0.25f;
AkReal32 nTunnelRatio = 0.25f;
AkAuxSendValue aEnvs[2];
aEnvs[0].listenerID = AK_INVALID_GAME_OBJECT; // SetDefaultListeners APIで割り当てられたリスナーと同じセットを使用します。
aEnvs[0].fControlValue = nHangarRatio;
aEnvs[1].listenerID = AK_INVALID_GAME_OBJECT; // SetDefaultListeners APIで割り当てられたリスナーと同じセットを使用します。
aEnvs[1].fControlValue = nTunnelRatio;
AK::SoundEngine::SetGameObjectOutputBusVolume( GAME_OBJECT_ID_HUMAN, nDryRatio );
AK::SoundEngine::SetGameObjectAuxSendValues( GAME_OBJECT_ID_HUMAN, aEnvs, 2 );

これらの比率の意味については、 統合の詳細 - 環境とゲーム定義Auxセンド を参照してください。

注釈: AK::SoundEngine::GetIDFromString() に渡される名前は、Wwise で定義されている Aux バスの名前です。詳細は、IDまたは文字列の使用(UnicodeまたはANSI) を参照してください。

サンプルプログラムでは、"Environments: Footsteps" グループの最初の3つのスライダを動かし、Dry、Hangar および Tunnel それぞれの環境の比率を設定して(左の0から右の100まで)、Environments(環境)を試してみることができます。

詳細は、統合の詳細 - 環境とゲーム定義Auxセンド を、サンプルプロジェクトは、Integration Demoサンプル を参照してください。

オブストラクション/オクルージョン例

オブストラクションとオクルージョンは、環境やゲームオブジェクトとリスナーの位置に依存するため、各リスナーに対するゲームオブジェクトごとに計算します。

ここに示すように、オブストラクションとオクルージョンの設定は、AK::SoundEngine::SetObjectObstructionAndOcclusion() を呼び出すことによって実行可能です:

// In this example we use hardcoded values for obstruction and occlusion. In a game you need
// to compute these values based on the position of the game object and the listener, and
// the composition of their environments.
AkReal32 fObstruction = 0.05f;
AkReal32 fOcclusion = 0.0f;
// In this case we compute and set the values for Listener 0 only. If you have multiple listeners,
// the values must be computed and set for each listener independently.
AK::SoundEngine::SetObjectObstructionAndOcclusion( GAME_OBJECT_ID_HUMAN, 0 /*listener*/, fObstruction, fOcclusion );

サンプルプログラムでは、"Environments: Footsteps" グループの最後の2つのスライダを動かし、Obstruction と Occlusion の比率を設定して(0から100まで)、オブストラクションとオクルージョンを試してみることができます。

詳細は、 Obstruction and Occlusion with Game-defined Auxiliary Sends を、サンプルプロジェクトは、Integration Demoサンプル を参照してください。

注釈: このサンプルコードは、サンプル セクションにある Sound Engine Integration Sample Project(サウンドエンジン統合サンプルプロジェクト)に由来しています。詳細は、Integration Demoサンプル をご覧ください。
AkReal32 fControlValue
Definition: AkTypes.h:950
Auxiliary bus sends information per game object per given auxiliary bus.
Definition: AkTypes.h:947
float AkReal32
32-bit floating point
AKSOUNDENGINE_API AKRESULT SetObjectObstructionAndOcclusion(AkGameObjectID in_EmitterID, AkGameObjectID in_ListenerID, AkReal32 in_fObstructionLevel, AkReal32 in_fOcclusionLevel)
AKSOUNDENGINE_API AKRESULT SetGameObjectAuxSendValues(AkGameObjectID in_gameObjectID, AkAuxSendValue *in_aAuxSendValues, AkUInt32 in_uNumSendValues)
AKSOUNDENGINE_API AkUInt32 GetIDFromString(const char *in_pszString)
AKSOUNDENGINE_API AKRESULT SetGameObjectOutputBusVolume(AkGameObjectID in_emitterObjID, AkGameObjectID in_listenerObjID, AkReal32 in_fControlValue)
static const AkGameObjectID AK_INVALID_GAME_OBJECT
Invalid game object (may also mean all game objects)
Definition: AkTypes.h:176
AkGameObjectID listenerID
Game object ID of the listener associated with this send. Use AK_INVALID_GAME_OBJECT as a wildcard to...
Definition: AkTypes.h:948
AKSOUNDENGINE_API AK::IAkGlobalPluginContext * GetGlobalPluginContext()
AkAuxBusID auxBusID
Auxiliary bus ID.
Definition: AkTypes.h:949

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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう