riotoqll's diary

基本的に外部記憶として使います。自分用。 人に見せる用のブログはこちら→http://d.hatena.ne.jp/riotoqll8107/

MeshDeformでBindすると落ちる理由

MeshDeform=好きな立体でLattice変形できるみたいなモディファイヤ
【参考】Blenderモディファイア(MeshDeform)
f:id:riotoqll8107:20130314015654p:plain

MeshDeformのために用意するローポリなObjectをcage(檻)と呼ぶ人が多いっぽいのでそう書きます。
なんでBind押すと即落ちるのかなあと思ってたら、どっかで見かけた(勘違いした?)「cageのFaceを全部削除してEdgeだけにする」というのを実行していたせいだった。
そのくらいで落ちるのか!と思ってFaceを張り直したら、こんどはBindしても落ちない代わりに変形が適用されない。もしや、と法線をチェックしたら全部内側に向いていた。Flip NormalしてBindしなおしたらちゃんと動きました。変形対象が「外側」にあると判断されてたんですね。
そういえばcageの外側には一切変形が適用されないという仕様だったが、Bindする時にFaceの法線から内側・外側を判定していたのだなあ…だからFaceがないと内・外を判定できなくて混乱して(?)落ちたのか。
そこは「Faceがないと分かんないよう」とエラーを吐くべきなのでは。いや、そもそもFaceを削除してBindする人なんか居ないからかもしれない…
(Bindした後に、Face消すのはOKな模様。Vertexさえあればいいのかな?)

解決しちゃえば下らないw とりあえず謎が解けてよかったです><