私たちの例では、エイリアンキャラクターのアンテナや触覚が頭部の動きに応じて動的かつ弾力的に移動するようになります。もちろん、この例は髪の毛、恐竜のしっぽなどにも適用できます。
作業ファイル"PSD_C4D_R12_IK_Dyn_Start.c4d"には、モデリングされたエイリアンの頭部とテクスチャが含まれています。
ジョイントフレームの構築
私たちのエイリアンの頭部は、ポリゴンヘッドジオメトリと、両目用の2つの球体オブジェクトで構成されています。後で、全てのオブジェクトをジョイントに階層的に結合したり、ジョイントに重点を置いてバインドすることで、全体の頭部と触覚がスムーズにアニメーション化できるようになります。
ジョイントフレームの構築を始めるときは、最初に頭部のためのJointオブジェクトを使用します。これはCharacterメニュー内にあります。
エイリアンの頭部が座標系の原点にちょうど置かれているため、ヘッドジョイントは原点のままになります。
新しく作成したJointオブジェクトを選択し、Characterメニュー内のJoint Toolを有効にします。このJoint Toolの設定ダイアログで、上位のRoot Null Objectの作成を無効にします。後で自分で生成するため、Jointフレーム内でのその作用をよりよく理解できるようになります。
対称的に作業できるように、Symmetryセクションを展開し、Draw OptionをWorld YZ Planeに使用します。このプレーン内またはこのビュー内でジョイントを描画します。
Joint Toolがアクティブで、Ctrlキーを押しながらビューをクリックすると、頭部ジョイントの下位に自動的かつ対称にジョイントが作成されます。
二本のアンテナのうち一方を選び、最初のサブジョイントをアンテナの根本に直接配置します。もう一方のアンテナ用のジョイントは、対称性が有効なため、CINEMA 4Dが自動的に設定します。
図に示されている位置に、Ctrlキーを押しながらクリックして、ジョイントチェーンをペアで作成します。詳細な部分では、ジョイントを近づけるよう努めるべきです。ジョイントをたくさん配置しなければなりません。なぜなら、ジョイントのみがジオメトリの変形や曲げを可能にする場所だからです。
Jointsをすべて作成した後、Object Managerで図示されているジョイント階層構造を見つけることができます。ヘッドジョイントオブジェクトには2本のアンテナごとに1本のジョイントチェーンがサブオブジェクトとして含まれています。
ジョイントをサイドビューでペアごとに調整するためには、Object Managerで各ジョイントペアを選択し、ジオメトリ内でZ軸に沿ってジョイントを移動させます。
アンテナのアニメーションのためのジョイントフレームはすでに完成しています。ただし、これにはまだエイリアンの頭部との関連付けがありません。この関連付けがないと、頭部をアニメートすることができません。
ジョイント階層とジオメトリを結合するには、まずObject Managerを使用してすべてのJoint ObjectsとエイリアンジオメトリのPolygon Objectを選択します。
BindenコマンドをCharacter>Commandsメニューから実行することで、ジョイント階層と
Bindenコマンドによって、Polygon Meshのエイリアンジオメトリには、Joint Objectsの影響を受ける可能性があるすべてのJoint Objectsが収集されたWeight Tagが追加されました。この自動的なWichtungは、ジョイントの位置に応じてジオメトリに影響を与えるものであり、良い出発点となります。
ジョイントの間隔
このWichtungはほとんどの場合完璧ではありません。少しの調整が必要です。状態のわかるために、まずObject Managerを使用してすべてのJoint Objectsと共にジオメトリを選択します。
ウェイトツール は Character メニュー内にあります。有効にした後、エイリアンの頭部のジオメトリが色づき始めます。各 ジョイント は、ジオメトリへの影響を示すためにそれぞれ独自の色を持ちます。
ジオメトリを評価するために、各 ジョイント の影響を個別に確認する必要があります。その ジョイント を単に オブジェクトマネージャー で選択するだけで、その ジョイント によってキャプチャされていないジオメトリの部分は黒のままです。
頭部のジョイントで、鼻の先端がジョイントの色と完全に一致していないことがわかります。 ウェイトツール を使用して、 ウェイトブラシ を使ってジョイントの ウェイト を特定のジョイントに対して重ね塗りして、変形の誤動作を防止できます。
アンテナや触角の接続部には、頭部ジオメトリへの影響がやや強すぎるものがあります。 接続されている ウェイト を減らすために、Ctrl キーを押しながら ウェイトツール を使用します。
ウェイト作業の最後に、全ての ジョイント を オブジェクトマネージャー で再度選択し、 ウェイトカラー を ソリッド に設定し、ジオメトリにウェイトが割り当てられているかを確認することをお勧めします。図で示されているように、完全なエイリアンの頭は白く塗られており、ジオメトリのすべての部分にウェイトが割り当てられていることを示しています。
目の球体オブジェクトはウェイトから除外されています。これらのオブジェクトが頭を回転または移動する際に一緒に移動するようにするには、単純にそれらを頭部ジョイントにオブジェクトマネージャーで配置します。たとえば、頭部ジョイントを回転させると、目のオブジェクトも頭部の向きに従います。
しかし、ジョイント構造とそれに含まれるウェイトを実際に確認するためには、早急に取り組む必要があります。頭部ジョイントを選択し、回転 ツールを使用して y軸 沿いに頭部を回転させます。エイリアンの頭全体が問題なく頭部ジョイントの動きについていけるはずです。
ダイナミックな逆運動学のインテグレーション
頭部ジョイントがエイリアンの各部位に望むように作用するようになったら、アンテナや触角のアニメーションを逆運動学(IK) を使って設定することができます。これには触角またはアンテナ用の二つのジョイントストランドを IKチェーン として定義する必要があります。
この二つのジョイントストランドを オブジェクトマネージャー で選択 - この間、頭部ジョイントは除外してください。
CINEMA 4D では、選択されたジョイントストランドを自動的に IKチェーン に変換する IKチェーンを作成 という特別なコマンドが再び提供されています。これは Character>Commands メニューで見つけることができます。
IKチェーンを作成 コマンドを適用し、ジョイントチェーンに何が起こったかを確認します。頭部付近の二つの ジョイント にそれぞれ IKタグ が割り当てられていました。このタグ内には IKチェーン の開始と終了が自動的に記録されています。
また オブジェクト マネージャーで二つの新しい null オブジェクト が ターゲットオブジェクト として追加されていました。この二つのターゲットはジョイントチェーンの各端に対応し、これらのシンプルな制御ターゲットを使用して IKチェーン 全体をアニメーション化することができます。
実際には、触角やアンテナの動きは通常、動的な特性を通じて自動的に制御されます。ただし、これら二つのターゲットオブジェクトを保持することで、動きや変形の後、触角やアンテナが常にターゲットに従い、自動的に整列してくれるので便利です。
IKタグ の設定ダイアログを見ると、IKチェーンの端やターゲットがどのように定義されているかがわかります。これらの Tag 領域のパラメータはそのままにしておきます。ここでは、ダイナミクスの設定に注目します。
Dynamics タブに移動し、まず Dynamicsオプション を有効にします。これにより触角やアンテナは既に 重力 や 運動 に反応できます。
触角がただぶら下がるのではなく、弾力的で頑丈に見えるように、 Dynamics Strength を約40〜45% に減少させ、 Damping を急激に約70% に増加させます。触角が初期状態に戻るよう努めるため、 Keep Angle パラメータを約40〜45% に増やしてください。
ここでは、パラメータを実験し続けるようお勧めします。これにより、各設定が逆運動学チェーン全体にどのように影響するかを素早く学び、楽しむことができます。
両方の外部化された目標オブジェクトは触覚やアンテナの動的なアニメーションには何も察知しないので、IKにこれらのターゲットを一緒に動かすよう指示する必要があります。そうしないと、高速な回転時に触覚が非常にすぐに絡まってしまいます。
今や触覚やアンテナの逆運動学機能も完璧です。そしてIK-タグ内での少しの整理を行い、目標オブジェクトとジョイント チェーンを適切に改名します。
現在エイリアンの頭部アニメーションを操作するのは頭部ジョイントです。残念ながらこのジョイントは取り回しが悪いです、なぜなら従属ジョイント チェーン内の回転のために回転しているからです。
実際には、回転や移動が意図しない先行回転なしに行われるための"クリーン"な初期状態が必要です。
この段階でRoot-Null-オブジェクトが登場します、以前に少し触れたものです。
これは私たちに完全に新しい、未破壊的な 座標基盤を提供してくれます。そしてIK-チェーン全体が考慮されるようにするため、それをRoot-Null-オブジェクトにただ属させる必要があります。
最初に、新しいNull-オブジェクトをオブジェクトメニューから作成します。頭部ジョイントが既にヌルポジションにあるため、新しいヌルオブジェクトを再配置する必要はないです。
この新しいNull-オブジェクトを適切にRootに改名し、オブジェクト マネージャー経由で全体のジョイント階層をそれに属させます。
ここで漸く再生ボタンを押して、Root-Null-大きな姿を回転させることでエイリアンをどの方向にでも回転させ、アニメーションさせることができます。触覚やアンテナは万有引力と私たちの動きによってダイナミックに制御されます。
Root-Null-オブジェクトはジョイント階層をアニメーションする際の便利な助手です。ジョイントフレームワークを構築する場合、少なくとも主要なジョイント(ほとんどが腰)にはこのような上位のNull-オブジェクトが割り当てられます。これを自動的に行うには、ジョイント・ツールの設定ダイアログでRoot-Null-オブジェクトオプションを有効にする必要があります。