HttpChunkInstallerによるダウンロード対象のChunkを、PrimaryAssetIdから確認し、
各Chunkのダウンロード管理を行いたいのですが、
PrimaryAssetIdからChunkIdを取得する方法が分かりませんので、ご教示いただけないでしょうか。
以上、ご回答よろしくお願い致します。
HttpChunkInstallerによるダウンロード対象のChunkを、PrimaryAssetIdから確認し、
各Chunkのダウンロード管理を行いたいのですが、
PrimaryAssetIdからChunkIdを取得する方法が分かりませんので、ご教示いただけないでしょうか。
以上、ご回答よろしくお願い致します。
お世話になっております。
返答が遅れてしまい申し訳ありません。
現在調査を進めておりますので、もう少々お待ちいただけますでしょうか。
よろしくお願いします。
了解致しました。
引き続き、よろしくお願い致します。
お世話になっております。
了解致しました。
引き続き、よろしくお願い致します。
お世話になっております。
以下のコードを用いることで、エディタ上でもPrimaryAssetIdからChunkIDを取得することができました。
FAssetData AssetData;
TArray FoundChunks;
if (AssetManager.GetPrimaryAssetData(PrimaryAssetId, AssetData))
{
if (AssetManager.GetPackageChunkIds(AssetData.PackageName, nullptr, AssetData.ChunkIDs, FoundChunks))
{
if (FoundChunks.Num() > 0)
{
return FoundChunks[0];
}
}
}
ただし、GetPackageChunkIds関数はエディタ限定の関数であるため、パッケージではAssetDataのChunkIDsの値を返すようにする必要があるかと思います。
こちら一度挙動をご確認頂けますと幸いです。
よろしくお願いいたします。
お世話になっております。
こちら長らくの間おまたせしており、大変申し訳ありません。
優先度を上げて調査いたしますので、後もう少々お待ちいただけますと幸いです。
よろしくお願いいたします。
お世話になっております。
UAssetManager::GetPrimaryAssetData で取得した FAssetData が持つChunkIDs を使うことで、指定のPrimaryAssetIdからChunkIDを取得できることを確認いたしました。しかし、パッケージでは正常に動作するのですが、エディタ上ではChunkIDsが空になっているためChunkIDを取得できない問題も同時に確認しています。
現在エディタ上でもPrimaryAssetIdからChunkIDを取得する方法について調査しています。
よろしくお願いいたします。
お世話になっております。
ご回答ありがとうございます。
確認させていただいたところ、PackageModeでは、AssetManager::GetPrimaryAssetData にて、
正しいChunkIdが取得できることを確認できました。
ただ、EditorModeでは、ご教示いただいた方法では、ChunkIdは取得できませんでしたが、
初期化時に、AssetManager.UpdateManagementDatabase() をコールしたところ、
ChunkIdが取得できるようになりました。
また、上記の初期化済み条件でしたら、AssetManager.GetPrimaryAssetRules(PrimaryAssetId)で
取得できるChunkIdに正しい値が設定されておりましたので、暫定的で利用しておりました。
現在、UE4.19で確認しておりますが、この挙動について確認いただけると幸いです。
以上、よろしくお願い致します。
お世話になっております。
GetPrimaryAssetRules での取得方法を再確認したところ、
常駐リソース(ChunkID=0)の場合のみ、1が返る挙動でしたので補足させていただきます。
ご教示いただいた実装方法であれば、全てのチャンクにおいて
正しいIDを取得できましたので、こちらを採用させていただいたいと思います。
以上、よろしくお願いします。
お世話になっております。
大変申し訳ありません。ご指摘の通り、ChunkIDを取得するためにはデータベースの構築・更新が必要になります。そのため、該当関数を直前に呼び出すフローで問題ありません。
よろしくお願いいたします。
お世話になっております。
本件について、パッケージモードおよびエディタモード共に、
ご教示していただいた方法で、PrimaryAssetId からChunkIDを確認することができました。
ご対応ありがとうございました。
以上、よろしくお願い致します。
お世話になっております。
ご報告いただきありがとうございます。正常に動いて何よりです。
解決までお時間をいただき、本当に申し訳ありませんでした。
引き続きよろしくお願いいたします。