この記事はHoudini Apprentice Advent Calendar 25日目の記事です。
これまで、Part1、2とKineFXの基本とmotionClipについて取り上げてきました。
Houdiniの新しいリギングとアニメーション:KineFX機能まとめ
KineFX Part2:MotionClipアニメーション入門
今回は、19移行での変更点やポイント。KineFXでのセカンダリーモーションについてまとめます。
後日、フェイシャルキャプチャ、ラグドールとの連携について追記します。
18.5実装時からの変化
KineFXはHoudini18.5で初めて実装された機能であり、今後も大きな変更が予想されます。
ヘルプにKineFX v18.5からv19への移行というページがある通り設計の変更には注視する必要があります。
名前の変更
Re-とついていた名前のノードからReが外されました。確かに再処理(re)ではなく、単にジョイントの向きや親子関係を作るので、名前として適切ではないと判断されたのでしょう。Configure Jointsはトランスフォームの回転角度制限という滅茶苦茶重要な機能を保有しているのに名前がわかりにくかったのが原因かFull Body IKの名称が除外されました。
変更前 | 変更後 | 機能 |
---|---|---|
Re-Orient Joints | Orient Joints | ターゲットスケルトンのジョイントの向きを変更する |
Reparent Joints | Parent Joints | ターゲットスケルトンのジョイントを親子化します |
Full Body IK Configure Joints SOP | Configure Joints | ローカルの重心やトランスフォーム制限といったジョイントプロパティを構成する |
機能の移行
ノード名とともに新しい種類のノードが作成されたり、完全に機能が置換されたりしました。
Bone Deformについては、Joint Deformの中に入ってもらう分かる通り何も変わってはいません。おそらくBone Deformは本来OBJのスケルトンパラメータが露出していたり、インプットのヘルプが十分ではないと判断されて必要な情報のみ見えるようにラップされたのだと思われます。
変更前 | 変更後 | 機能 | 備考 |
---|---|---|---|
Capture Layer Paint | Joint Capture Paint | キャプチャウェイトをジオメトリに直接ペイントする、新しいノードでは boneCapture アトリビュートのみを変更します | 新しいノード |
Attach Control Geometry | Attach Joint Geometry | KineFXリグ用のコントロールジオメトリを作成 | 廃止され新しいノードに置換 |
Bone Deform | Joint Deform | スキン変形を実行 | 廃止され新しいノードに置換 |
Bone Capture Proximity SOP | Joint Capture Proximity SOP | ポイントからジョイントまでの距離に基づいてそのポイントにキャプチャウェイトを割り当てる | 廃止され新しいノードに置換 |
セカンダリーモーション
すでにヘルプやチュートリアルはありますが、19.0で実装されたKineFXには無くてはならない機能です。18.5の時代では、例えばしっぽをゆらゆらさせたい場合、別途Vellumなどでシミュレーションを行ってそれをRigVOPで追従させるという非常に面倒くさい方法を取るしかありませんでした。しかし、セカンダリーモーションSOPによってシミュレーションを作成する必要なく、KineFXのジョイントやスケルトンにOvershoot/Lag、Jiggle、Springといった3種類のセカンダリモーションエフェクトを作成することができるようになりました。
ラグドール
ラグドールはこれまでクラウドなど群衆でしか利用できませんでしたが、ragdollcollisionshapesでKineFXのスケルトン自身に領域を持たせることができるようになり、mixamoで走るモーション→BOXで足がひっかかってコケる というようなモーションが比較的簡単に作れるようになりました。
細かい説明をしようとしていましたが、configurejointsの設定をしたにもかかわらず、体が雑巾みたいにひしゃげてしまう事象が解決できず、解決次第追記します。
フェイシャルのウェイト
KineFXでの口の動き。眉毛の動きについて記載予定です。
年内までに追記予定です。