キューシートの非同期ロード

概要

Atom Cue Sheet アセットの非同期ロード及びそのアセット内の Raw ACB Data の非同期ロード方法を説明します。

キューシートの非同期ロード方法

ブループリント

  • (1) Async Load Asset ノードを用いて任意の Atom Cue Sheet アセットを非同期ロードする
  • (2) On Load Completed にイベントをバインドする
  • (3) Async Load Cue Sheet ノードを用いてそのアセット内の Raw ACB Data を非同期ロードする
  • (4) On Load Completed 発火時、 Is Raw Acb Data Available ノードを用いてロード処理の成功・失敗を確認する
criware_ue4_035_async_acb_load.jpg

C++

  • (1) FStreamableManager を用いて任意の Atom Cue Sheet アセットを非同期ロードする
  • (2) USoundAtomCueSheet::OnLoadCompleted デリゲートに任意の関数を登録する
  • (3) USoundAtomCueSheet::AsyncLoadCueSheet 関数を用いてそのアセット内の Raw ACB Data を非同期ロードする
  • (4) USoundAtomCueSheet::OnLoadCompleted デリゲート発火時、USoundAtomCueSheet::IsRawAcbDataAvailable 関数を用いてロード処理の成功・失敗を確認する

(1) Atom Cue Sheet アセットを非同期ロード

FStreamableManager を用いて任意の Atom Cue Sheet アセットを非同期ロードするサンプルコードを以下に示します。
void AAtom120_CueSheetManager::LoadAsync(FSoftObjectPath PathForCueSheet)
{
FStreamableManager& Streamable = UAssetManager::GetStreamableManager();
StreamHnForCueSheet = Streamable.RequestAsyncLoad(
PathForCueSheet,
FStreamableDelegate::CreateUObject(this, &AAtom120_CueSheetManager::OnCueSheetAssetLoadCompleted));
}

(2) OnLoadCompleted デリゲートに任意の関数を登録

USoundAtomCueSheet::OnLoadCompleted デリゲートに任意の関数を登録するサンプルコードを以下に示します。
/* CueSheet は USoundAtomCueSheet* 型 */
CueSheet->OnLoadCompleted.AddUObject(this, &AAtom120_CueSheetManager::OnCueSheetLoadCompleted);

(3) Raw ACB Data を非同期ロード

USoundAtomCueSheet::AsyncLoadCueSheet 関数を用いてそのアセット内の Raw ACB Data を非同期ロードするサンプルコードを以下に示します。
/* CueSheet は USoundAtomCueSheet* 型 */
CueSheet->AsyncLoadCueSheet();

(4) OnLoadCompleted デリゲート発火時

手順3実行後は USoundAtomCueSheet::OnLoadCompleted デリゲートの発火を待ちます。
非同期ロード処理完了時、成功・失敗に関わらず"手順2で登録した関数"が呼び出されます。
成功・失敗を確認するには USoundAtomCueSheet::IsRawAcbDataAvailable 関数の戻り値を確認してください。
  • false ... 失敗
  • true ... 成功

サンプルMap, サンプルコードのご案内

本SDK内にキューシートの非同期ロードサンプル(C++)が同梱されていますので、ご参考ください。
  • サンプルMap
    • cri\UnrealEngine\Sample\UE4Project\Content\ADX2Samples\Atom120_AsyncLoadCueSheet\Atom120_AsyncLoadCueSheet.umap
  • サンプルコード
    • cri\UnrealEngine\Sample\UE4Project\Source\CriUE4Sample\ADX2Samples\Atom120_AsyncLoadCueSheet\Atom120_CueSheetManager.h
    • cri\UnrealEngine\Sample\UE4Project\Source\CriUE4Sample\ADX2Samples\Atom120_AsyncLoadCueSheet\Atom120_CueSheetManager.cpp

備考

注意
もしログに「E2008121602:No more resources for binding. (Increase max_binds of CriFsConfig.)」と表示されロードが失敗する場合はプロジェクト設定を調整する必要があります。
CriWareプロジェクト設定の [Maximum Number of Binds] の値を、同時に使用する「ストリーム再生データを含むキューシート」の数よりも大きな値に設定してください。

本ページの説明は、CRIWARE UE4プラグイン Ver.1.27.11.00以降のバージョンをご利用中であることが前提となっています。
Ver.1.27.11.00よりも古いプラグインでのご利用方法については弊社テクニカルサポートにお問い合わせください。