モーションFBXのフレーム数を取得
解析目的で全モーションを動かすような事例を考え、インポートしたアニメーションからフレーム数を参照したい

環境
Houdini Indie 20.5.410
テストに使ったデータ
mixamo
https://www.mixamo.com/
ClipInfoから算出する
Fbx Animation Importノードから入力された情報を確認するとdetailにclip_infoというアトリビュートが追加されている。

公式ドキュメントに記載されているように、FBXで保存されたアニメーションの範囲を保存している値。
「range」, 「rate」, 「source_range」, 「source_rate」の4つの値があり、このうちsourceが付く2種類はFBXに保存されているフレームレートでの値。
range、rateが現在シーンのフレームレートに換算されている際の値になる。試しにシーンのFPSを変更するとrateの値も変わる。

これをフレームに直して入力されたアニメーションのフレーム数を参照する。
※注意書き:明確な計算方法として記載されたページが見つからなかったのでもしかすると間違ってる可能性もあります…。
dict clip_info = detail(0, "clipinfo", 0);
u@range = clip_info["range"];
f@rate = clip_info["rate"];
f@animation_length = (@range[1] - @range[0])*@rate + 1;

MotionClipから取得する
入力した Motion を Motion Clip に変換し、Motion Clip Extractを接続しても参照できた。
ただし MotionClip を作成するのは少し時間がかかる。

ジョイント1つをフレーム数分で抽出したポイント数をアトリビュートとして持たせると前述のclip_infoから算出したものと同じ値になる
f@animation_length = npoints(1);


fish_ball
プロシージャル魚類