ボーンの「自動で軸合わせ」をオフにする理由は ?

ボーンを配置する際に「自動で軸合わせ」をオフにすることで、ボーンの作成時やノードの平行移動時に
ボーンノードが持つ変換行列に回転が加わらないようになります。
この「自動で軸合わせ」をオフにする操作は、
主に他のツールにfbxでモーションデータをエクスポートする場合に必要になってきます。
この操作は「ボーンの変換行列に回転要素を入れない」ようにする目的があります。

「自動で軸合わせ」を指定できるところ

「自動で軸合わせ」チェックボックスは、ツールボックスの「パート」-「ジョイント」-「ボーン」を選択したときの、
ツールパラメータに存在します。

これはボーンをシーンに新しく配置する際の初期値になります。

シーンにすでに存在するボーンについては、ブラウザでボーンを選択したときの統合パレットの「形状情報」ウィンドウ内、
「軸の整列」に存在します。

「形状情報」ウィンドウでは、個々の選択ボーンの「自動で軸合わせ」をオン/オフします。

「自動で軸合わせ」オン時の役割

「自動で軸合わせ」がオンの場合は、オブジェクトモードでボーン内の子ボーンを平行移動させたときに
ボーンの向きによる回転が自動計算されます。
これにより、ボーンの変換行列に回転要素が入ります。

「自動で軸合わせ」がオフの場合は、ボーンノードを平行移動させても変換行列に回転は入りません。
ただし、マニピュレータでボーンを回転させた場合は変換行列に回転が入ります。

「自動で軸合わせ」による動きの違い

「自動で軸合わせ」をオンにした場合は、ローカル座標軸が常に指定の軸方向となるため、マニピュレータでの操作がしやすくなります。
オフにした場合でも、マニピュレータ座標系を「ローカル」にすると軸方向の操作ができます。

他ツールに渡す場合は、ボーンの持つ変換行列の違い(回転や拡大縮小を持つか)で大きく差が出てきます。
Shade3Dではカレントのボーンの計算は自身の変換行列が累積され、
そこに相対的にモーションの「オフセット」「回転」が与えられます。
他のツールでは、カレントのボーンの計算時は自身の変換行列が加えられません。
モーションとして指定する「オフセット」「回転」が先に与えられ、次の子ボーンがある場合は
その場合にカレントボーンの変換行列が累積されます。

fbxエクスポート時はこのときの差異を吸収する変換が行われますが、
回転で360度を超える場合や0度以下になる場合に変換が正しくないことがあります。
また、XYZ軸のいずれでも回転要素がある場合にねじれた状態となり、変換できない状態が出てきます。
この問題を回避するために、「ボーンの変換行列に回転を与えない」のが一番の解決策となります。

Translate »