座標

P[XYZ m]

この値は、特定の階層構造内にあるオブジェクトの位置を表し、ワールド座標系または親座標系に関連しています (座標マネージャを参照) 。

また、複数選択の同時編集機能の拡張もご覧ください(数値フィールドであればどこでも関数が使用できます。例: 複数のオブジェクトを関数に合わせて配置)。

S[XYZ ]

この値は、特定の階層構造内にあるオブジェクトのスケールを表し、ワールド座標系または親座標系に関連しています(座標マネージャを参照)。

この値またはオブジェクト軸モードを通じて、上記のオブジェクトを拡大/縮小(つまりその軸系を変更)できます(「オブジェクトモードとモデルモードとの違い」を参照)。

R[HBP °]

この値は、特定の階層構造内にあるオブジェクトの角度を表し、ワールド座標系または親座標系に関連しています(座標マネージャを参照)。

順序

この選択メニューはアニメータだけに役立つ機能です。このメニュー内のオプションで、心配されるジンバル固定を最小限に抑えることができます。

次の問題例をご覧ください。

複雑な階層をもったアニメーションのキャラクターがあります。正面からのビューにおいて、単純な下向きの回転で右腕の肩関節をアニメートしたいとします。そこで、上下のそれぞれの位置で指先にキーフレームを作成します。この時点でアニメーションを上の位置から再生すると、腕は、期待される下向きの動きだけをするのはなく、少し曲がってしまうのがわかります(上の画像の一番上右)。これがジンバルロック効果の例です。この例ではそれほど強くはありませんが、極端な例になるとまったく異常ならせん状の動きになってしまうこともあります。

適切な角度の計算順序がこの効果をどのように軽減するのでしょうか。答えは簡単です。アニメートする前にジョイント軸を見て、予定するアニメーションの間に一番少なく回転するのがどの軸なのかを判断するだけで良いのです。この例では、回転の一番少ない軸は左側に印の付いているX軸です。次に、順序オプションからX軸が2番目にあるものを選びます。これによって、最小限でほとんどわからない程度の曲りは残りますが、このオプションを使用する前と比べるとかなり良い結果が得られます。

ジンバル回転オプションは、角度の計算順序を決定するのに役立つもう1つのオプションです。このオプションを有効にして角度ツールを起動します。

左側のHPBと右側のXYZに設定されたシーケンス

回転バンドを使って、予定するアニメーションが指定された方向に動作するかどうかを(アニメートする前に)直接確認することができます。上の画像の左側に、赤、緑、青の回転バンドが配置されていますが、この配置では、回転(赤い矢印)を表すのは不可能なようです(どのバンドも回転平面上にありません)。このアニメーションにはジンバルロックによる問題が生じます。

バンドの1つが回転平面上に乗るかまたはそれに近づく(上の画像では青)まで、様々な順序オプションを試してみてください。この状態でアニメーションを作ると、ジンバルロックによる問題が生じることはほとんどありません。

ジンバルロックについての追加コメント:

2番目の値(下のマークされた領域における中央値)を約90度(または270度)に設定すると、角度の計算順序に相関してリスクが常に高まります。

対応する値をかそれに近い値に常に設定しておくと良いでしょう。

これまでもこの問題は、親ヌルオブジェクトをアニメートすることでも防ぐことができました。

ダイアログウインドウの一番下にある固定の選択が役立つこともあります。

クォータニオン

クォータニオン回転

ヒント:クォータニオンタグの機能(より古いシーンが読み込まれている時(R18以前)にのみ現れ、新しいタグとしてはもう生成されない)はオブジェクトプロパティとして組み込まれていません。

一般

恐ろしいジンバルロック(例えばキャラクターアニメーションに関連したもの)について間違いなく聞いたことがあるでしょう。もしくは個人的にすでに経験済みでしょう!

ジンバルロックは、回転値がヘディングHおよびバンクBが同じ効果のあるP +/- 90°をもつ時に起こります。結果としては、これらの寸法のひとつが完全に失われ、一番小さい回転の際においても大きな回転ジャンプが起こります。

回転アニメーションのみに働くクォータニオン機能が助けとなります。

Cinema 4Dはデフォルトで、オブジェクトの回転を補間するのにオイラー回転を使用します(オイラー: デカップル回転(HPB)のジャイロシステム、ユークリッド(直角)3D空間での補間)。

オイラー回転の個々のコンポーネントは、個別に補間され、それはHPB(0, 0, 0)とHPB(60, 60, 60)からの平均値が例えばHPB(30, 30, 30)となることを意味します。0, 0, 0から30, 30, 30を超え60, 60, 60までの振れが必ずしも最短パスでないということは、ビューポートでテストすることができます。

AからBまでの最短パスを通る補間が必要であり、手動でパスがアニメートされなければならなかった場合、ユーザーが行うことでもあります。

これはまさにクォータニオンが行うことです。クォータニオンは35.104 °、22.83 °、35.104 °を通り0, 0, 0 から60, 60, 60までのパスを通ります。

クォータニオンは、不必要なモーションを作らないことで、ジンバルロックを避けるのです。

クォータニオンアニメーションが何故、原則として全てのオブジェクトに適用されないか不思議に思うかもしれません。その理由は、クォータニオン補間がまたデメリットももつからです。クォータニオンは回転変化が180°より少ないければ問題ありません。これ以上となると、クォータニオンが可能な最短パスを常に探すため、問題が起こりえます。

ヒント:クォータニオンエクスプレッションの最短パスは常に3D球体上にあります。これは、固定軸まわりのクォータニオン補間による回転としてイメージすることができます。これは、軸のまわりを可能である最小回転で回転することです。規則として、これはオブジェクト軸と何の関わりもなく、各回転によって異なります。

以下の例を見てましょう。

••オブジェクトは与えられた軸のまわりを180°より大きく回転する必要があります。

••キーフレームは初期状態となっており、タイムスライダは回転が終わるフレームまで移動します。オブジェクトは回転し、モーションはキーフレームで設定されます。今のところ、順調です。

クォータニオン機能が使用されるかどうかに関わらず、初期および最終状態において何も変わることはありません。クォータニオン補間は、同じゴールを達成するための異なる方法のみ使用します。

••最初に、Cinema 4Dにおける典型的なオイラー回転方法を見てみましょう。

キーフレームを使用してオブジェクトが回転されました(例: B(バンク)が220°回転し、オブジェクトを時計回りに220°回転)。

••今度はクォータニオン方式です。すでに示したとおり、この補間方式は、最終状態までの可能である最短パスを常に探します。しかし、この例における最短パスは、(見ている人からの画角での)時計回りに220°ではなく、全く反対の向きへの140°回転になります。

クォータニオン回転オプションを有効にすることで、そのオブジェクトに対するクォータニオンアニメーションを有効にします(キーフレームの値はオイラー値と同一になり、それに応じて値間の補間のみが変化)。このオプションが無効の場合、オイラーアニメーション方法が使用されます。

ここで留意すべきは、クォータニオン補間は、ローカル回転トラックにのみ適用でき、固定座標ではできないことです(全て固定を参照)。

他に、一時的な補間への影響に使用されるキーフレームの属性のクォータニオン補間オプションが利用可能です。

オイラーアニメーションへの以下に示す相違点が生じます。

•タイムラインでは、回転トラックの名称は(Q)で補足される。つまり、角度.P (Q)

•タイムラインでは、3つの回転トラック(角度.H/P/B)は、単一ユニットとして見られる。つまり、ひとつのキーフレームがアニメーションで異なる場所に移動した(もしくは作成または削除された)場合、他のものもそれに従う

•キーフレーム接線はクォータニオンによってサポートされていない

•Fカーブとしてのクォータニオンの表示は、技術的観点からしばしば実現可能ではなく(特に2つのキーフレーム間が180°より大きいアニメーションの場合)、そのためほとんど重要視されない

いつクォータニオンアニメーションが使用されるべきで、いつ使用されるべきではないのですか。

クォータニオンアニメーションが使用されるべきであるのは以下の場合です。

•ジンバルロックやジャンピング軸の問題がある場合

クォータニオンアニメーションが使用されるべきでないのは以下の場合です。

•2つのキーフレーム間の回転の違いが180°を超える場合(回転は最短パスに沿って作成)

•Fカーブ(例: タイミングの変更)を微調整したい場合

トランスフォームを固定

全て固定

この機能は、主にアニメーションだけに使用します。

3Dの世界では、「軸のゼロ化(もしくはデュアルトランスフォーム)」と呼ばれており、オブジェクトの位置などを替えずに、ローカル座標の位置と角度を0、スケールを1に変換します。(次の説明は位置と角度についてのみ当てはまります)これは、該当するオブジェクトをヌルオブジェクトの子として作成して、位置と方向を一致させることと同じです。この方法はR12から使うことができます。

次の図のようにオブジェクトを固定できます:内部的には、選択したオブジェクトの座標にヌルオブジェクトが作成されます。これらは、固定された座標は、表変換を固定タブにコピーされ、ヌル座標にオフセットされたように働きます。一時座標への変更は固定された座標が考慮されます。

これはどんなことに使用するのでしょうか?説明するためには、基本的な概念を説明しなければなりません。

このシーンは、2つのオブジェクトが含まれています:Arm 2は、上の画像に示すように、ローカル座標系があり、Arm 1の子オブジェクトです。属性マネージャの座標は、常にローカル座標です。(これらは、階層の親オブジェクトの座標システムに影響します)ここまではよろしいですね。

ここで、私たちはArm 2をX軸を中心に45 °回転するアニメーションを作成したいとします。通常、私たちは回転バンドを使って、オブジェクトを作成して、2つのキーフレームを設定します:

上の画像の中心を見ると結果がわかります。回転は、一つに軸に対して行われたのに、全ての軸に対して変更が適用されています。これは、親オブジェクトの座標システム(Arm 1)が、ローカル座標と異なった方向になっていることが原因です。多くの場合、この現象は回避できません。タイムラインでは、3つのF-カーブが変更されるため、管理が表示に大変になります。加えて、この例ではArmの角度を続けて行うと、アニメーションジンバルロックも悩まされます。(クォータニオン回転を参照)

これらの副作用の全ては、アニメーション設定の前に座標変換を固定することで回避できます。こうすることで、元の位置、スケール、角度の値は、下欄にコピーされ、初期値はそれぞれ01に設定されます。

これには、次のようなメリットがあります:

全て固定のコマンドは、すべての座標(位置、スケール、角度)を固定します。つまり全ての一次座標は、0(スケールは1)に設定されます。

ヒント:座標変換を固定のコマンド(モード / 座標メニュー)は、すべてのオブジェクトに対して同じことを行います。

全て解除

メインの座標は固定した座標で相殺されます。その後、固定した座標は全て0にリセットされます。

ヒント:これは全てのオブジェクトについて、別のコマンド(メインメニュー:モード / 座標変換を解除)を使用して行うことができます。

P[XYZ m]

S[XYZ ]

R[HBP °]

これらは、親の階層構造から引き継がれた固定座標です。

ヒント:これらの固定座標の値は、XPressoエディタ内の入力ポートおよび出力ポートの各メニューで確認できます(座標/座標変換を固定)。これらの座標は、固定した後にここで変更できます。これにより、プライマリ座標は0 のままとなります。

位置を固定

スケールを固定

角度を固定

これらの各ボタンにより、下記の3つのプライマリ座標を個別に固定できます。

ヒント:角度値を固定すると、固定した位置座標が結果として変わりますが、これは正常な影響です。たとえば、子オブジェクトを回転させる(固定に相当)と、(同じ相対位置にとどまる限り)それに応じてその子オブジェクトの位置は必然的に変わります。