山里ぽん太

Bone

01 December 2019

山里ぽん太は骨を拾いました。


Chapter 1 Bone
というわけで、ぽん太さんは骨を拾いました。
火葬場じゃなくて、Houdini の中で。
というわけで、Bone です。
ponticle ではキャラクター関係は、初めてかもしれません。
ぽん太さんは理系頭なので、数値でコントロールできないと落ち着きません(笑)。
なので、キャラクターは避けてきました(笑)。
大昔に手描きで描いていたんですけど(笑)。
でも、やはり、やっぱり、どうしても、避けて通れないですよね〜(笑)。
ってんで、チャレンジしてみました〜(笑)。
Chapter 2 Bone 1
というわけで、とにかく作ってみましょう。
シェルフの Rigging から、Bones です。
ちなみに、Bones は、アニメ製作会社ではありません(笑)。
というわけで、Tube をキャプチャして、動かしてみました。
動きます!(笑)。

Chapter 3 Bone 2
しかし、Bone を Tube の形状にぴったりと合わせる技は、シーンビューにマウスオペレーションでは無理です。
Bone を、Y軸にぴったりと配置する方法はないものでしょうか?。
というわけで、シェルフの Bones from CURVE を使ってみました。
ここで使ったのは、Curve じゃなくて、Line です(笑)。
「おれは直角」を思い出しました(笑)。
「とりゃ〜! 直角斬り!!」(笑)。
でもって、Line に沿わせて Bones を作りました。
できました!(笑)。

Chapter 4 Bone Parameter
しかし、こんなことするんじゃなくて、パラメータをいじって、動かせないものでしょうか?。
ということで、いろいろ試してみましたが、わかりませんでした(涙)。
Chapter 5 Blend Shape
次は Blend Shape です。
トポロジーが同じだけど形状が違う2つのジオメトリの間で変形したジオメトリを作ってくれます。
いわゆる morphing です。
これは、ネットワークエディタで、ちょちょいのちょい、と(笑)。
できました!。

Chapter 6 Wire Deform
次は Wire Deform です。
Curve に沿ってジオメトリを変形してくれます。
ちょうど、細かい筋肉みたいなことになります。
Houdini のリファレンスのフェイシャルリグのところを見ながら、ネットワークエディタでネットワークを組みました。
いやー、かなり、ちょっと、ものすごく苦戦しました(笑)。
でも、できました〜!!(嬉)。

Chapter 7 Deformation Wrangle
次は Deformation Wrangle です。
ぽん太さんお得意の VEX です(笑)。
Deformation Wrangle ノードをネットワークビューに召喚、もとい、配置すると、VEXpression のところに、こんなことが書いてあります。

pos = pos;
xForm = xForm;

pos は変位(translate)の量を表す vector 量で、xForm は 変位マトリクス(3×3)です。
というわけで、pos をいじってみました。
でけました!!(笑)。
いやー、これができれば、鬼に金棒、ぽん太さんにVEX です(笑)。
pos ってどこにあるのだろう、と思って、spread sheet を調べましたが、見つかりませんでした(謎)。

Chapter 8 Bone Adjustment
というわけで、なんとかして Bone をちゃんとした(笑)位置に配置できないものでしょうか?。
というわけで、snap を試してみました。
これまでは、VEX で値を指定していたので、シーンビューの snap は使ったことがありませんでした。
とりあえず、「Grid Snapping」をポチして、シーンビューを4分割して、試してみました。
なんとなくできました(笑)。
いやー、MODO で画面4分割でモデリングしていたことを思い出しました(笑)。

でも、Bone の捻り方向の回転は、スナップしてくれませんでした(哀)。

Chapter 9 メモ
① Character を作る基礎的なオペレーションを勉強しました。

② Bone や deform 関係のパラメータがどこにあるのか、見つけることができませんでした。パラメータがわかれば、VEX でいろんな動きがつけられるだろうと思います。

③ 「②」の関係もあるのですが、キャラクタリグのリターゲティングをどうすればよいのか、ちょっとわかりません。Houdini のリファレンスには、簡単な説明は書かれていますが、既知の問題である、ソースとターゲットの間の形状の違いをどう吸収するのか、あるいは処理するのか、というような問題は解決できません。Maya では IK を使ってリターゲティングするようですが、それだといろいろとややこしい問題が発生しそうです。今後の課題です。