Unreal EngineにてPrimitiveに追加したAttributeを取得する方法について

   1628   1   0
User Avatar
Member
4 posts
Joined: May 2022
Offline
お世話になっております。

Houdini側でPrimitiveに設定したAttributeをUnreal Engine(以下UE)側で取得する方法を探しています。
例として添付図のように追加した@unreal_uproperty_PrimNumをUE側で扱うことは可能でしょうか?

https://blog.csdn.net/u013412391/article/details/123699184 [blog.csdn.net]
参考として上記のサイトはPoint毎にinstanceを作成した上でinstance毎のIntensityを変更する例となるのですが、
今回実現したいものとしてはinstanceは1つだけ作成した上でAttributeを配列として扱えればと考えています。

※instanceとして作成するActorには以下のプロパティが定義されているものとします。
-----------------
UPROPERTY()
TArray<int> PrimNums;
-----------------

添付図の例ですと、sphereのPrimitivesが80となっていますので、
PrimNumsの要素数は80、各要素に@primnumの値が格納されている結果を想定しております。

上記の仕様でAttributeを扱う方法もしくは代替案等ありましたらご教示いただければ幸いです。

よろしくお願い致します。

Attachments:
primitive_attribute_example.png (484.3 KB)

User Avatar
Member
4 posts
Joined: May 2022
Offline
こちらですがAttribute情報を取ることが出来たので、
手順について共有させていただければと思います。

Public API - Houdini Engine for Unreal
https://www.sidefx.com/docs/unreal/_public_a_p_i.html [www.sidefx.com]

トピック投稿後にこちらのAPIに気が付きまして、
一部拡張を行いながらAPIを使用することで目的を達成することが出来ました。

一部拡張に関して、
FHoudiniOutputTranslator::UpdateOutputsで使用される
FHoudiniEngineUtils::GetGenericAttributeListを参考に、

UHoudiniPublicAPIAssetWrapperでも
FHoudiniEngineUtils::GetGenericAttributeListを実行することでAttribute情報を取得しています。

GetGenericAttributeListの引数で使用される情報の元であるUHoudiniOutputについては
UHoudiniPublicAPIAssetWrapper::GetValidOutputAtWithErrorから取得したものを使用しています。

一連の取得処理を以下の通知タイミングで実行することでAttribute情報の取得が確認出来ました。

・OnPreProcessStateExitedDelegate
・OnPostProcessingDelegate

以上となります。

認識の誤りや別の実現手段等ありましたらご指摘いただければ幸いです。

また、今回APIを触ってみる上で下記の記事も参考になりました。
https://qiita.com/YuriSerizawa/items/726395ad0968f22a99ef [qiita.com]
  • Quick Links