バージョン
menu_open

サウンドエンジン統合の詳細

サウンドエンジンの初期化

Note.gif
Note: サウンドエンジン自体を初期化する前に、メモリマネージャとストリーミングマネージャを初期化する必要があります。 グローバルな初期化の詳細については、 サウンドエンジン各種モジュールの初期化 をご覧ください。

サウンドエンジン自体の初期化は、 AK::SoundEngine::Init 関数の呼び出しにより実行されます。ご参考までに、サウンドエンジンの初期化 に示されているデフォルトの初期化を以下にコピーします。

#include <AK/SoundEngine/Common/AkSoundEngine.h>                // Sound Engine

(...)

bool InitSoundEngine()
{
    (...)

    //
    // Initialize the sound engine
    // Using default initialization parameters
    //
    
    if ( AK::SoundEngine::Init( NULL, NULL ) != AK_Success )
    {
        assert( !"Could not initialize the Sound Engine." );
        return false;
    }

    return true;
}

AK::SoundEngine::Init 関数は、2つのパラメータを取ります。

1つ目のパラメータ : AkInitSettings * in_pSettings

  • この構造体は、プラットフォーム非依存のサウンドエンジン初期化情報を含んでいます。

2つ目のパラメータ : AkPlatformInitSettings * in_pPlatformSettings

  • この構造体は、各プラットフォーム固有のサウンドエンジン初期化情報を含んでいます。
Caution.gif
Caution: いずれのパラメータも任意指定ですが、デフォルト値はしばしば高いメモリ使用量を要求するため、ゲームのニーズに合わせてこれらの値をカスタマイズすることを強くお勧めします。ゲームの種類によって、メモリ設定を慎重に調整する必要があります。 詳細は、メモリプールサイズの選択 をご覧ください。

作成パラメータのカスタマイズ

AkInitSettingsAkPlatformInitSettings 構造体は、AKSoundEngine::GetDefaultInitSettings と AK::SoundEngine::GetDefaultPlatformInitSettings 関数を使用して初期化する必要があります。

これらの2つの関数を用いて構造体を初期化すると、デフォルトパラメータによって構造体が埋められます。これは次のような理由で有用です:

  • いったん初期化されると、修正の必要なパラメータをゲームのニーズに合わせて簡単に変更可能です。
  • SDKの今後のバージョンは、構造体に初期化パラメータを更に追加する可能性がありますが、デフォルトパラメータの使用によりコードの下位互換性が保証されます。

以下のサンプルコードは、サウンドエンジンの2つのメインプールを初期化する方法を示しています。

#include <AK/SoundEngine/Common/AkSoundEngine.h>                // Sound Engine

(...)

bool InitSoundEngine()
{
    (...)

    //
    // Create the Sound Engine
    // Using modified initialization parameters
    //
    
    AkInitSettings          initSettings;
    AkPlatformInitSettings  platformInitSettings;
    
    AK::SoundEngine::GetDefaultInitSettings( initSettings );
    AK::SoundEngine::GetDefaultPlatformInitSettings( platformInitSettings );
    
    initSettings.uDefaultPoolSize           = 4 * 1024 * 1024;  // 4 MB
    initSettings.uMaxNumPaths               = 16;
    initSettings.uMaxNumTransitions         = 128;
    
    platformInitSettings.uLEngineDefaultPoolSize    = 4 * 1024 * 1024;  // 4 MB
    
    if ( AK::SoundEngine::Init( &initSettings, &platformInitSettings ) != AK_Success )
    {
        return false;
    }

    return true;
}

メモリプールサイズ選択についての詳細は、メモリプールの最適化 をご覧ください。


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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう