![]() |
CriWare Unreal Engine
Plug-ins for CriWare solutions.
|
これまで、リソース割り当て設定を正しく設定するには細心の注意が必要でした。Unreal 5 の CRI ADX プラグインは、サウンドがエディターにインポートまたは再生される方法、スタンドアロン モードで再生される方法、最終的にパッケージ化されてさまざまなファイル アクセス設計を持つターゲット プラットフォームで再生される方法に応じて、異なるアセット読み込み設計を使用しています。そのため、リソース設定はますます複雑になり、扱いにくくなっています。
リソース割り当てを簡素化および最適化するために、ADX リソースの自動管理がいくつか追加されました。
UE5 CriWare プラグイン v2.3.0 では、「動的 ADX ボイス プール管理」が導入され、ゲーム エンジンの状況やゲーム スクリプト アクションに応じて、より優れた動的設計が提供されます。
UE5 CriWare プラグイン v2.4.0 では、「動的 CRI ファイルシステム管理」と「一意のグローバル ボイス プール」が導入され、サウンド再生に使用される読み込みおよびストリーミング リソースの管理が大幅に簡素化されます。
ボイス プールは、サウンドの再生に使用される複数のソース ボイスのクラスターです。ADX では、再生する前に完全に定義する必要があります。
ソース ボイスには、入力エンコードされたサウンド データを読み取るデコーダー、リサンプラー、およびソース エフェクト チェーンがあります。これは、再生とバスへの出力で使用されます。
ソース ボイスは、メモリ上またはファイルに保存されたエンコードされたデータを読み取ることができます。StreamingType は、ボイス プールのすべてのボイスの読み取りアクセスを決定します。
ストリーミングには 3 つのタイプがあります:
「最悪の場合」の設定は計算が難しく、プールの固定された性質は、ほとんどの場合、プールが完全に関与していないときに、リソースの大幅な損失につながります。
Atom Craft から設計された「オン メモリ」キュー サウンドには、より多くのコピーを作成することで、ターゲット アーキテクチャのメモリ モデルと戦うチャンスがあります。
まとめると、Atom Craft 設定、Unreal Editor、スタンドアロン プレイ、さまざまなターゲット プラットフォームのパッケージ ゲーム、およびゲーム ロジック自体により、コンテキストによってリソースの読み込みプロセスが異なります。
これにより、Atom が使用するリソースのより一般的で柔軟なモデルが求められました。
動的ボイス プールは、プラグインによってオンデマンドで作成および破棄されます。
ボイス プールは、一意のサウンド ソースにリンクされています。 プールは再生時に作成され、サウンドが停止するか再生終了すると解放されます。 また、ボイス プールは、リンクされたサウンド ソースに応じて設定を使用します。
詳細には、動的に作成された音声プールを使用するサウンド ソースは次のとおりです。
動的に作成された音声プールの設定 (チャンネル、サンプリング レート x 最大ピッチ係数、メモリ タイプ...) は、再生するサウンド ソースに応じて設定されます。
キューは Atom Craft によって外部で設計され、複数の波形とさまざまな再生設計を使用するため、グローバル ボイス プールを使用するか、AtomSoundCue を独自の独立したダイナミック ボイス プールから再生するかを選択できるようにしています。
これを設定するには、各サウンド キューの Voices セクションに次の設定があります:
これにより、キューの次の再生時にサウンド ソースのボイス プールが生成されます。プールの設定は、キューの最初の波形設定に応じて調整されます。実際には、Unreal では再生ごとに 1 つのプールが作成されます。
これは、任意の SoundCue (ストリーミングまたはメモリ上) をデコードして再生でき、デフォルトで再生に使用される独自のグローバル ボイス プールです。
ダイナミック ボイス (デフォルト) を使用しない AtomSoundCue は、グローバル ボイス プールで再生されます。
グローバル ボイス プール設定は、ADX Atom のプロジェクト設定で使用できます。
または、[サウンド キューのダイナミック ボイス管理を強制する] チェックボックスをオンにすると、グローバル ボイス プールが削除されます。
AtomSoundCue は、ダイナミック ボイス プールを使用して自動的に再生されます。
デフォルトでは、ADX は、ボイス プールの作成またはデータの読み込みが要求されたときに、ファイルシステム リソースを割り当てたり解放したりします。
何も必要ありません。
エンジンの起動時に CRI ファイルシステムのリソースを手動で割り当て続ける場合は、プロジェクト設定の ADX Atom セクションで動的ファイルシステム管理を無効にすることができます。
すべてのサウンドがどのような状況でも読み込めるようにするには、CriWare Core 設定で十分な数の FS ローダーとバインダーを設定する必要があります。
ADX サウンド エンジンは、サウンドを再生するために、サウンド データをソース ボイスに読み込み、ストリーミングする必要があります。
AtomCueSheet または AtomWaveBank の詳細パネルの「読み込み動作」設定により、ADX サウンド エンジンへの読み込み/リリース時間を制御できます。
AtomCueSheet は、キューのバイナリ ロジックを含むペイロードとして ACB データを所有し、Atom Craft によって設定されている場合、エンコードされたサウンドウェーブ データも含まれる場合があります。
AtomWaveBank は、エンコードされたサウンドウェーブ データを含むペイロードとして AWB データを所有します。サウンドを再生する前に、サウンドウェーブ データの最初のチャンクのみが ADX にロードされ、その後、設定に応じてデータがストリームされるか、メモリにインラインで格納されます。
サウンド データは、コンソール変数 'atom.streamcache.AtomSoundBankDefaultLoadingBehavior' で定義されたグローバル ルールを使用して ADX にロードされます。
(0: デフォルト (オンデマンドでロード)、1: ロード時にオーディオ データを保持、2: ロード時にオーディオ データをプライミング、3: オンデマンドでロード (UAtomSoundBank が再生またはプライミングされるまでオーディオ データはロードされません)。)
サウンド データは、AtomComponent による再生タイミングで必要に応じて ADX にロードされます。
キューシート リソースは、AtomCueSheet アセットが破棄されるまで破棄されません。
サウンド データは、アセットがロードされると同時に ADX にロードされます。
そのため、ほとんど遅延なく再生できます。
サウンド データは、AtomComponent からの再生タイミング、または CueSheet の PrimeSound() 関数呼び出しによってプライムされたときに、必要に応じて ADX にロードされます。
そのため、キューシートがロードされる前にキューを再生しようとすると、再生が開始されるまでに少し時間がかかります。
サウンド データは、アセットがロードされるときにロードされ、メモリに完全にコピーされます。ADX は、読み取り/書き込みメモリ コピーを通じてサウンド データにアクセスします。