MODOのトランスフォームのZeroはリセットでオリジナルに戻しやすくなるため、ある程度ボーン構成が固まったら使う事が多いが、手戻りした場合に割と致命傷になる機能であることが発覚した。

そもそも、このZeroとは何をしているのかという話。あと、ロールも作業中によく狂いやすいので後半に記載。

Zeroトラップ

これ、オリジナルの値を正規化(?)みたいにいい感じに修正してくれているわけではなく、チャンネルにオフセット値として、内部隠蔽するだけである(プロパティではなくチャンネルタブからみると、変更するオペレーション値が見える)。 FBXにエキスポートすると、補正した値が反映されたTransformで表示されるため、Unityに持っていって、ぎょっとするのはこのため。

なので、プロパティだけ見ると、普通の値だが、実はオリジナルがとんでもない値で、それを強引に補正している、、みたいなデータが割とよく出来上がってしまう。Scale変更したボーンとかでこれをやると顕著で、Physboneとかのセットアップで、なんか変だな?と気づいた時には後の祭り。ちなみに、変な補正のかかったボーンだと、VRMにした時に大体事故る。VRC向けは、編集しずらい問題はあるが、そこそこなんとかなったりもする。

結論としては、あんましZeroを使わないほうが良さそうという話。

あと、ボーン調整の時になるべくスケールは使うな。移動で位置調整しろ。

追記:ボーンのスケールを直す方法

既存のリグでそんなボーンが生まれていた場合、治せるのか?という話。

前述の通り、プロパティで値をいじっても修正できない。ではどうするかというと、セットアップタブのIKモードの各種操作ツールで、ボーンを操作する。 そして、この時、子ボーンの位置を保持するオプションを有効にしておく。

これで、ボーンの配置を維持しながら変なスケールだけを修正することができる。 ちなみに、ボーンを可視化するGizmo(?)がおかしなスケールになるので気になるレベルなら適当に直しましょう。

ロールの修正方法

普通にトランスフォームで触ってもダメ。

ロールの確認

結論:VisibilityでShowCenterを有効にする(Pivotではない!)

その昔、Pivot表示で確認してて、なんか反映されないし、変更してもリセットされる!?とおもったら、そもそもPivotではなかったオチでした。

ロール調整

結論:ボーンのロールは、セットアップタブのInverse Kinematicsメニュー内のRotateで行う

その昔、プロパティからいじって、なんかちがう。。ってなってた(90度回転とかしたくても、変な回転になってできない)が、IKツールの回転や移動ツールを使わないとダメ。 同じ理屈で、Transform全般の調整も、IKツール上から行った方が良さそう。

Previous Post Next Post

MODOのスケルトンでZeroを使うとハマる罠 + ロール調整方法