PrimaryAssetLabelの中身を取得したい

お世話になります。

現在、PrimaryAssetLabelについて学習しています。
PrimaryAssetLabelがセカンダリーアセットをハード参照し、PrimaryAssetLabelを非同期ロードすることで非同期でのロードができることは分かったのですが、AsyncLoadPrimaryAssetでロードした返り値のLoadedからそのPrimaryAssetLabelに登録されているアセットを取得する方法はありますでしょうか?
以下のような事柄を行いたいと考えています。

  1. PrimaryAssetLabelをMeshフォルダに作成し、Meshフォルダ以下のアセット(StaticMeshやSkeletalMesh等)を非同期ロードできるようにする。
  2. AsyncLoadPrimaryAssetノードで1のPrimaryAssetLabelを非同期ロードする。
  3. 2でロードした中から任意のメッシュを取得し、それをキャラクターのメッシュにセットする。

ご教授頂けますと幸いです。

AsyncLoadPrimaryAssetでは、ロードした結果がObjectReferenceで返ってきますので、それを任意のPrimaryDataAssetにCastすればよいと思います

ご回答頂き、ありがとうございます。
このような解釈で合っておりますでしょうか?
こちらのノードを試してみたところ、キャストが失敗してしまうのですが、解釈が間違ってますでしょうか?

間違っています
どのように実装したのかの情報がないので、知る限りでの推論になりますが

PrimaryAssetには何を使いましたか?
StaticMeshはSecondaryAssetなので、直接引っ張るためにはエンジンコードの修正(PrimaryAssetIDの発行)が必要になります

エンジンにもとからあるPrimaryAssetは、LevelかPrimaryDataAssetのどちらかなので
今回はPrimaryDataAssetを使用した(継承した)ものと考えています

であれば、LoadedObjectは作成したPrimaryDataAssetの型にCastすべきであり
Castが通れば、その変数として設定されたStaticMeshの参照が取得できるはずです

ちょっと調べ直したので追記します

PrimaryAssetLabelがサポートするのはあくまでも 非同期ロード するところまでです
そこ(ロードされた中)から任意のAssetを取得するには、DataTableなどまた別の仕組みを使用する必要があります

明示的にアセットをロードし、利用したいのであればPrimaryDataAssetを使用するほうが良いでしょう

ご回答ありがとうございます。

PrimaryAssetには何を使いましたか?

こちらはPrimaryAssetのLabelAssetsinMyDirectoryにチェックを入れ、該当フォルダ内にあるすべてのStaticMeshを対象としていました。

StaticMeshはSecondaryAssetなので、直接引っ張るためにはエンジンコードの修正(PrimaryAssetIDの発行)が必要になります

なるほど、こちらが求めていた情報のようです。
PrimaryAssetLabelでの場合もエンジンコードに手を入れる必要があるのですね。
こちらの返信にて、解決済とさせて頂きたいと思います。
ご教授頂き、ありがとうございました。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.