AssetFileManagerのLoadSetting LoadTypeについて

22 views
Skip to first unread message

taku_hsy

unread,
Apr 10, 2026, 9:26:20 AMApr 10
to 宴ユーザーグループ
宴のバージョン: 宴4.2.6
UnityのバージョンとOS: Unity6000.3.8f1 Windows

お世話になっております。

現在、動画ファイルを特殊な演出に組み込んだゲームを作成中なのですが、
CustumPrefavを使用しているため、動画ファイルをアセットバンドル化すると
読込先のエラーで表示されない状況です。
なので、今までは全てResourceにおいて開発をしていたのですが、
(※この辺りの話はDiscordにて以前、質問させていただきました。
https://discord.com/channels/1324497575163854978/1408107798985703494/1408107798985703494
開発最終版に販売の事情により販売エリアによって動画自体をパッチによって
差し替えることが可能な仕様にする必要が出てきました。

そこで、可能であれば、差し替えるファイルのサイズを小さくするため
再度アセットバンドル化を調査することになったのですが、
AssetFileManagerにLoadTypeという項目があり、これの
「Advanced, //ファイルの種類ごとに設定を細かく決める」
という項目を見つけ、コードを追うと、
これでファイルカテゴリごとのIsStreamingAssetsをロード時に参照してるように見えていたため、
こちらで、AssetFileType.UnityObject関係のみをResourceから読み込み
それ以外をassetStreamingから読み込めるのでは?とテストしていたのですが、

どうもAdvEngineStarter::LoadEngineAsyncSubで上書きされてしまっている様子に見えます。
こちらは何かしらの事情から仕様としてAdvancedが使えないようになっているのでしょうか。
もし使用可能な方法等がございましたら、ご教授いただけましたら幸いです。
何卒、よろしくお願いいたします。

マッドネスラボ

unread,
Apr 10, 2026, 11:54:23 AMApr 10
to 宴ユーザーグループ
AssetFileManagerのほうが色々複雑化してしまったので、
AdvEngineStarterのほうで、ロード設定をなるべく簡単にできるように、一括で初期化(上書き)し、アセットバンドルを使う場合の初期化も同時にしてるという流れです。
ただ、Advancedはかなり以前に使っていた互換性のために残ってる残骸のようなもので、正直なところちゃんと動く気がしないです。
(少なくともアセットバンドルを読む準備をしてくれるわけではないです)


一応、AdvEngineStarterを使わないということも一応可能です。
たとえば「Addressable Assets System」対応をするときは、
 AdvEngineStarterを使わずに独自のコンポーネントを使ってロード設定をする流れになっています。

AdvEngineStarterのデフォルト設定がLocal(Resources)のまま、一部だけアセットバンドルをロードするというのは想定されてないので、
設定等を変えるだけでは正常に動作できません。

アセットバンドルをロードするには、事前にアセットバンドルマニフェストを使った初期化が必要になります。
(AdvEngineStarterでいうところの、LoadEngineAsyncSubからLoadAssetBundleManifestAsyncの流れ)
これは、AdvEngineStarterでアセットバンドルをロードするような設定になっているなら自動的に通るのですが、Localだと内部の処理が通らなくなってしまいます。
なので、実験であればAdvEngineStarterを書き変えてLocalでも上記の流れが通るようにする必要があるかと思います。
(オプションで強制ロードフラグを追加するなどしてもいいかもしれません)

種類別にビデオのみロードの仕方をカスタマイズするのであれば、
Assets/Utage/Scripts/ADV/Extra/AdvVideoLoadPathChanger.cs をもとにロード方法を改変すれば大丈夫だと思います。

//ビデオのみ強制的にStreamingAssetsからロードする処理
internal class AdvLocalVideoFile : AssetFileUtage
{
public AdvLocalVideoFile(AdvVideoLoadPathChanger pathChanger, AssetFileManager assetFileManager, AssetFileInfo fileInfo, IAssetFileSettingData settingData)
: base(assetFileManager, fileInfo, settingData)
{
fileInfo.StrageType = AssetFileStrageType.StreamingAssets;
this.LoadPath = ParseLoadPath();
}
}

ただ、肝心のビデオがアセットバンドルからロードできるかどうかはUnityの仕様によるところが大きいかもしれません。



2026年4月10日金曜日 22:26:20 UTC+9 taku_hsy:

taku_hsy

unread,
Apr 14, 2026, 5:12:30 AM (12 days ago) Apr 14
to 宴ユーザーグループ
マッドネスラボ様
ご返信ありがとうごさいます。


>AdvEngineStarterのデフォルト設定がLocal(Resources)のまま、一部だけアセットバンドルをロードするというのは想定されてないので、
>設定等を変えるだけでは正常に動作できません。
>
>アセットバンドルをロードするには、事前にアセットバンドルマニフェストを使った初期化が必要になります。
>(AdvEngineStarterでいうところの、LoadEngineAsyncSubからLoadAssetBundleManifestAsyncの流れ)
>これは、AdvEngineStarterでアセットバンドルをロードするような設定になっているなら自動的に通るのですが、Localだと内部の処理が通らなくなってしまいます。
>なので、実験であればAdvEngineStarterを書き変えてLocalでも上記の流れが通るようにする必要があるかと思います。
>(オプションで強制ロードフラグを追加するなどしてもいいかもしれません)
>
>種類別にビデオのみロードの仕方をカスタマイズするのであれば、
>Assets/Utage/Scripts/ADV/Extra/AdvVideoLoadPathChanger.cs をもとにロード方法を改変すれば大丈夫だと思います。

なるほど、現在は想定していない部分な事を了解しました。
今回はリリースまであまり時間が無い都合もあり、別途の差分パッチツールで何とか容量削減を図り、
ロード周りの最適化は次回以降の課題として参考にさせていただこうと思います。
方向性の想定としては、仰られているのとは逆で、ムービー「以外」をアセットバンドルにしたいと思っております。

ご回答いただきましてありがとうございました。


2026年4月11日土曜日 0:54:23 UTC+9 マッドネスラボ:

マッドネスラボ

unread,
Apr 14, 2026, 5:48:52 AM (12 days ago) Apr 14
to 宴ユーザーグループ


であれば、AdvEngineStarterのほうをSteamingAssetsなどにして、
ビデオだけResorucesからロードするにはAdvVideoLoadPathChanger.csをもとにするのが良いかもしれません。

ビデオがプレハブなようであれば、
IsVideoTypeメソッドの部分を下記のようにして、ファイル名などの命名規則で判定して、そのファイルのみカスタムロードの対象とするといった具合です。

protected virtual bool IsVideoType(AssetFileInfo fileInfo, IAssetFileSettingData settingData)
{
if (fileInfo.FileType == AssetFileType.UnityObject)
{
var path = fileInfo.FileName;
//命名規則などで判定
// Debug.Log(path);
return IsTargetFileName(path);
}
if (settingData is AdvCommandSetting setting)
{
//Videoコマンドか?
return setting.Command is AdvCommandVideo;
}
else
{
//Videoオブジェクトか?
AdvGraphicInfo info = settingData as AdvGraphicInfo;
return (info != null && info.FileType == AdvGraphicInfo.FileTypeVideo);
}
}


2026年4月14日火曜日 18:12:30 UTC+9 taku_hsy:

マッドネスラボ

unread,
Apr 14, 2026, 5:50:02 AM (12 days ago) Apr 14
to 宴ユーザーグループ
> 今回はリリースまであまり時間が無い都合もあり、別途の差分パッチツールで何とか容量削減を図り、
とのことですので、そちらの方が安定するかもしれません。
上記の方法は参考までにということで、お任せいたします。

2026年4月14日火曜日 18:48:52 UTC+9 マッドネスラボ:

taku_hsy

unread,
Apr 15, 2026, 11:19:49 PM (10 days ago) Apr 15
to 宴ユーザーグループ
いろいろとご助言いただきましてありがとうございます。
今後もこのソースを使う予定もあるため、次回以降での改善の際にはぜひ参考にしたいと思います。
ありがとうございました。


2026年4月14日火曜日 18:50:02 UTC+9 マッドネスラボ:
Reply all
Reply to author
Forward
0 new messages