ArmControl を移動すると、メカニカル アームが完全にまっすぐになるまで伸びたり、必ずしも適切でない方向を向いたりする可能性があります。
アームの移動範囲を制限して、IK システムが予想外のポーズをとらないようにすることができます。次のセクションでは、以下のように IK システムの移動範囲を制限します。
- コントロール オブジェクト(ArmControl)の移動を Y 方向と Z 方向だけにロックします。X チャネルを選択や変更ができないようにロックして、アームが左右に移動できないようにします。
- アームの回転ベース上での回転について、Y 軸の周囲だけを回転して、X 軸と Z 軸の周囲を回転しないようにロックします。
- ArmControl の移動について、メカニカル アームが完全にまっすぐになるまで伸びないように制限します。
ArmControl のチャネルをロックするには
- で、ArmControl ノードを選択します。
- を開いて、ArmControl のトランスフォーム チャネルを表示します。
- すべてのチャネルまたはチャネルを 0 に設定します(0 になっていなかった場合)。
- で、チャネル名をクリックして選択します。
- の文字を右クリックします。
プルダウン メニューが表示されます。
- プルダウン メニューからを選択します。
の数値フィールドがグレー表示になり、そのチャネルがロックされたことを示します。ArmControl を X 方向に移動しようとしても、チャネルをロック解除しないかぎり移動することはできません。
SwivelBase のチャネルと回転 Z (Rotate Z)チャネルをロックするには
- で、SwivelBase ノードだけを選択します。
- を開いて、SwivelBase の回転チャネルを表示します。
- すべてのチャネルまたはチャネルを 0 に設定します(0 になっていなかった場合)。
- で、Ctrl キーを押しながらチャネル名とチャネル名をクリックして選択します。
- 選択した名前のいずれかを右クリックしてを表示されるプルダウン メニューから選択します。
チャネルと回転 Z チャネルがロックされていることを確認するには
- で、SwivelBase ノードだけが選択されていることを確認します。
- 側面ビューのパネル メニューで、を選択します。
- パネル メニューでを選択します。
- 下の図のように、メカニカル アームの全体が表示されるように上面ビューをドリーします。
- を使用して、チャネルに 45 を入力して[Enter]を押し、SwivelBase を回転させます。
ビューで SwivelBase が回転しますが、メカニカル アームは回転しません。
SwivelBase およびアームのスケルトンとサーフェスのすべてが同じ階層にペアレント化されていたことに、何か問題があると思われます。
IK システムのセットアップ中に、期待したとおりに動作していないことに気づいた場合、作業を中止して、そのように動作している原因(または期待どおりに動作していない原因)を検証すると有益です。このように作業を見直すことで、問題の所在を突き止めることができます。
この例では、ArmControl と は、SwivelBase 階層内にペアレント化されていません。
ArmControl と がメカニカル アームの動作を制御するため、これらを SwivelBase 階層内にペアレント化して、SwivelBase を回転すればアームも回転するようにする必要があります。
をスケルトン階層内にペアレント化するには
- で、SwivelBase ノードを選択します。
- で、SwivelBase のチャネルを 0 にリセットします。
これまでのトランスフォームをすべて 0 に設定してから、階層内の SwivelBase の下に をペアレント化する必要があります。
- 以下の手順を実行する前に、SwivelBase ノードの選択を解除します。
- メニューで、を選択します。
にシーンのすべてのノードが表示されます。
- で、Shift キーを押しながら ikHandle1、ArmControl、SwivelBase という名前のノードを選択します。
選択順序は重要です。最初に Shift キーを押しながら子ノードになる項目を選択してから、最後に Shift キーを押しながら親ノードになる項目を選択する必要があります。
- メイン メニューで、 (ホットキー p)を選択します。
のスケルトン階層で、と ArmControl が SwivelBase ノードの子ノードになりました。
- で、SwivelBase だけを選択します。
- を使用して、SwivelBase のを 45 に設定します。
SwivelBase を回転すると、階層内のリレーションシップに基づいてメカニカル アームが回転します。
- SwivelBase のの値を 0 にリセットします。
最終的には、アームが完全にまっすぐになるまで伸びないように、ArmControl がモデルのベースから離れられる範囲を制限する必要があります。
移動範囲設定を指定するには、に移動値を表示しながら、メカニカル アームを動かして検証する必要があります。
ArmControl の移動範囲を指定するには
- で ArmControl を選択します。
- が開いたら、ArmControl の移動チャネルが表示されていることを確認します。
- ビューで、を選択します。
- [4]を押して、ワイヤフレーム モードに戻ります。
- メカニカル アームの全体が表示されるように側面ビューをドリーします。
- を選択します。
- 側面ビューで、中マウス ボタンをクリックしながら、下の図のようにメカニカル アームが完全に伸びるまで斜めにドラッグします。
- で、チャネルと移動 Z (Translate Z)チャネルに表示されている数字を確認します。
アームの連接部が斜めに伸びてカーゴ ボックスの上方に来ると、ほぼ完全に伸びた状態になります。このときの移動値はおおよそ以下のようになります。
- 側面ビューで、中マウス ボタンを押しながら、下の図のようにメカニカル アームがほぼ完全に縮むまで斜めにドラッグします。
- で、 チャネルと移動 Z チャネルに表示されている数字を確認します。
アームの連接部が縮んだポーズになったときの移動値は、以下のようになります。
この最小値と最大値は、ArmControl の最小移動範囲と最大移動範囲として以下の手順の中で使用されます。
ArmControl の移動範囲を設定するには
- で、ArmControl ノードを選択します。
- を開く(を選択するか、または、上でアイコンをクリックします)。
に ArmControl に関連付けられたノードが表示されます。
- で、ArmControl タブをクリックします。
ArmControl タブが見えない場合は、左右のスクロール矢印を使ってビューを横にスクロールしてタブを見えるようにします。
- で、アトリビュートを展開してから、アトリビュートを展開します。
- アトリビュートで、とのとの両方のチェック ボックスをオンにして、次の値を設定します:
- を非表示にします。
- ArmControl を選択します。
- 側面ビューで、ArmControl を移動して IK システムの移動範囲をテストします。
メカニカル アームがモーションの制限範囲内で移動します。