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 の移動チャンネルが表示されていることを確認します。
- ビューで、を選択します。
- メカニカル アームの全体が表示されるように側面ビューをドリーします。
- を選択します。
- 側面ビューで、中マウス ボタンをクリックしながら、下の図のようにメカニカル アームが完全に伸びるまで斜めにドラッグします。
- で、チャンネルと移動 Z(Translate Z)チャンネルに表示されている数字を確認します。
アームの連接部が斜めに伸びてカーゴ ボックスの上方に来ると、ほぼ完全に伸びた状態になります。このときの移動値はおおよそ以下のようになります。
- 側面ビューで、中マウス ボタンを押しながら、下の図のようにメカニカル アームがほぼ完全に縮むまで斜めにドラッグします。
- で、 チャンネルと移動 Z チャンネルに表示されている数字を確認します。
アームの連接部が縮んだポーズになったときの移動値は、以下のようになります。
この最小値と最大値は、ArmControl の最小移動範囲と最大移動範囲として以下の手順の中で使用されます。
ArmControl の移動範囲を設定するには
- で、ArmControl ノードを選択します。
- を開く(を選択するか、または、上でアイコンをクリックします)。
に ArmControl に関連付けられたノードが表示されます。
- で、ArmControl タブをクリックします。
ArmControl タブが見えない場合は、左右のスクロール矢印を使ってビューを横にスクロールしてタブを見えるようにします。
- で、アトリビュートを展開してから、アトリビュートを展開します。
- アトリビュートで、のとの両方のチェック ボックスをクリックして、次の値を設定します:
- を非表示にします。
- ArmControl を選択します。
- 側面ビューで、ArmControl を移動して IK システムの移動範囲をテストします。
メカニカル アームがモーションの制限範囲内で移動します。