ジンバルロックが起きないようなリグの構造についてまとめています。
ジンバルロックの対策3つ
回転軸を2つのコントローラで分担する
回転XYZのうち、Yが回転することでXがZと重なってしまう現象がジンバルロックです。
→つまり回転Yがジンバルロックの要因
回転Yと回転XZを別々のコントローラに担当させれば良い
1つのコントローラですべての軸を持った場合。
コントローラ |
移動X |
移動Y |
移動Z |
回転X |
回転Y |
回転Z |
2つのコントローラで回転軸を分担した場合。
コントローラA | コントローラ2 |
移動X | |
移動Y | |
移動Z | |
回転X | |
回転Y | |
回転Z |
コントローラAを親、コントローラBを子とすることで、ジンバルロックが起きなくなります。
回転順序を変更する
回転YによってrotXが回転するのは、回転順序がXYZ設定の場合です。
よく使う軸を右に、使わない軸を真ん中にした回転順序にすることでジンバルロックを起きにくくできます。
剣のロケータの場合
斬りつける方向は一番よく使う:X
横にひねり方向はあまり使わない:Y
この場合は回転順序をZYXに変更することで、斬りつける方向を最優先で回転できるのでジンバルロックは起きにくくなります。
クォータニオン補間に変更する
回転に使われる計算には、「オイラー回転」と「クォータニオン回転」があります。
オイラー回転はどのソフトでも通常使われる補間で、XYZの角度から回転角を求めます。
グラフで制御しやすい利点と、ジンバルロックを起こすデメリットがあります。
クォータニオン回転はオブジェクトの方向から回転角を求めます。
ジンバルロックは起こさず自然な回転ができる反面、グラフや接線での調整はできません。