SnelDev
(SnelDev)
1
お世話になります。
現在、PrimaryAssetLabelについて学習しています。
PrimaryAssetLabelがセカンダリーアセットをハード参照し、PrimaryAssetLabelを非同期ロードすることで非同期でのロードができることは分かったのですが、AsyncLoadPrimaryAssetでロードした返り値のLoadedからそのPrimaryAssetLabelに登録されているアセットを取得する方法はありますでしょうか?
以下のような事柄を行いたいと考えています。
- PrimaryAssetLabelをMeshフォルダに作成し、Meshフォルダ以下のアセット(StaticMeshやSkeletalMesh等)を非同期ロードできるようにする。
- AsyncLoadPrimaryAssetノードで1のPrimaryAssetLabelを非同期ロードする。
- 2でロードした中から任意のメッシュを取得し、それをキャラクターのメッシュにセットする。
ご教授頂けますと幸いです。
AsyncLoadPrimaryAssetでは、ロードした結果がObjectReferenceで返ってきますので、それを任意のPrimaryDataAssetにCastすればよいと思います
SnelDev
(SnelDev)
3
ご回答頂き、ありがとうございます。
このような解釈で合っておりますでしょうか?
こちらのノードを試してみたところ、キャストが失敗してしまうのですが、解釈が間違ってますでしょうか?
間違っています
どのように実装したのかの情報がないので、知る限りでの推論になりますが
PrimaryAssetには何を使いましたか?
StaticMeshはSecondaryAssetなので、直接引っ張るためにはエンジンコードの修正(PrimaryAssetIDの発行)が必要になります
エンジンにもとからあるPrimaryAssetは、LevelかPrimaryDataAssetのどちらかなので
今回はPrimaryDataAssetを使用した(継承した)ものと考えています
であれば、LoadedObjectは作成したPrimaryDataAssetの型にCastすべきであり
Castが通れば、その変数として設定されたStaticMeshの参照が取得できるはずです
ちょっと調べ直したので追記します
PrimaryAssetLabelがサポートするのはあくまでも 非同期ロード するところまでです
そこ(ロードされた中)から任意のAssetを取得するには、DataTableなどまた別の仕組みを使用する必要があります
明示的にアセットをロードし、利用したいのであればPrimaryDataAssetを使用するほうが良いでしょう
SnelDev
(SnelDev)
6
ご回答ありがとうございます。
PrimaryAssetには何を使いましたか?
こちらはPrimaryAssetのLabelAssetsinMyDirectoryにチェックを入れ、該当フォルダ内にあるすべてのStaticMeshを対象としていました。
StaticMeshはSecondaryAssetなので、直接引っ張るためにはエンジンコードの修正(PrimaryAssetIDの発行)が必要になります
なるほど、こちらが求めていた情報のようです。
PrimaryAssetLabelでの場合もエンジンコードに手を入れる必要があるのですね。
こちらの返信にて、解決済とさせて頂きたいと思います。
ご教授頂き、ありがとうございました。
system
(system)
Closed
7
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.