キャラクタをセットアップする際には、体の各部位(ボディ パーツ)に対してボーンをどのように回転させるのかを考慮する必要があります。これにより、各部位に適切な回転順序を指定できるようになります。ボディ パーツによっては、デフォルトの回転順序(X→Y→Z)を使用できます。しかし、デフォルト回転順序ではジンバル ロックが発生し、他の回転順序なら問題が発生しないパーツや動きも存在します。
ジンバルロックとは、2つの回転軸が重なった時にオイラー角で発生する状態です。回転中に角度が補間されたときに、角度が急に変わる場合があります。
ボーンの回転順序を決定するには、ボーンの回転値を 0 に設定したニュートラル ポーズのスケルトンから始めます(「スケルトン用のニュートラル ポーズを作成する」を参照)。次に、スケルトンで最もよく使用する動きでスケルトンのポーズを開始し、問題を起こしそうな場所を確認します。
また、XYZ 軸を動きのタイプ(屈曲/伸長、内側/外側、外転/内転)に割り当てることにより、最も有効な回転順序が明確になります。通常、メインとなる動きは 1 種類です。メイン動作に割り当てた軸が最後に回転されれば、他の軸の影響を受けずに済みます。
たとえば、腕の上腕骨を XYZ で回転した場合と YZX で回転した場合を比較してみましょう。XYZ の回転順序では、次のような問題が発生します。
ここで、X を回転順序の最後に設定すれば、キャラクタの歩行/走行時に腕を前後に振る動作を X 軸でアニメートできます。X を最後に設定することは、振り軸が決して変わらないことも意味します。振りは肩で決定されるため、振り軸が変わることはまずありません。
ジンバル ロックを回避するために、ボーンの回転順序を変更する方法がいくつかあります。
キャラクタ リグをセットアップする場合は、Chain Root の位置を最初のボーンに合わせ、ボーンの回転順序を ZXY または YXZ(デフォルトの XYZ 以外)に設定します。2 番目に回転させる軸(ジンバル ロックを起こす X)は、最も使用頻度の少ない回転(つまり、ボーンに沿う回転)に割り当てます。
1 つの軸にを中心にオブジェクトを回転させるだけでよい場合は、その軸に合わせて軸の順序を変更します。つまり、Y 軸を中心にオブジェクトを回転させる場合は、軸の順序を YZX に変更します。
2 つの軸にを中心にオブジェクトを回転させる場合は、それの軸が最初の軸および最後の軸になるよう順序を変更します。つまり、X 軸と Y 軸を中心にオブジェクトを回転させる場合は、軸の順番を XZY に変更します。
また、軸の回転順序を変更するほか、回転角をオイラー角からクォータニオンに変換することもできます。クォータニオン回転角を使用すると、スムーズな補間が行われ、ジンバル ロックを回避できます。
詳細については、「回転をアニメートする」(「アニメーション」)を参照してください。