HOME

[移行記事]Delete で削除した場合の階層破綻と Delete Joint ノード

ジョイントを削除する場合は階層情報を維持して削除してくれる専用の削除ノードがある。 階層情報が破綻した場合自動スキニングが正常に動作しない(しかもエラーが出ないで破綻する)

元記事のデータ

記載日:2024 9/16
移行する際にわかりづらいなと感じる部分があったので一部加筆、修正しています。
https://www.notion.so/Delete-Joint-103bb0f94291801b9322ddc8af87ffca?pvs=4


環境

Houdini Indie 20.5.332
モデル、モーションはmixamoのY-Botを利用させてもらった

Deleteノードでジョイントを削除した際の問題点

スケルトンをHoudini上で削除して再バインドを行いアニメーションの出力をするという流れを行ったところ、1~2フレームの位置情報が正常にFBXに書き込まれない状態になってしまった。

以下のようにspineとneckを減らしてアニメーションを動かすと2枚目のgif画像のようにモーションが部分的に破綻してしまう。

1枚目の画像でジョイント削除後の階層が途切れてしまっているのが判るがそれが原因のような気がする。

Delete Joint Node

調べたらジョイント削除用のノードがあった。
DeleteJointNodeを使えば階層の接続がつながった状態でジョイントを削除することができた。
Delete Joint Node

DeleteJointで削除すると階層を維持して削除できる。

この状態で一度保存してから読み込みなおした場合は変な破綻は発生しない

UnrealEngine上でも正常に表示できた。
スケルトンも指などが削減できているのが確認できる。

余談:破綻した構造をUEで読み込む

Deleteでジョイントを削除して階層構造が途切れている状態のモーションを読み込もうとするとそもそも読み込めなかった。

ジョイントを削除する場合はDelete Jointを使うということを覚えた。

fish_ball

プロシージャル魚類