ウィンドウに表示
お気に入りに追加
ホーム: Autodesk Maya オンライン ヘルプ
IK システムをコンストレインする
レッスン 5 インバース キネマティクス
階層の表示を簡略化する
IK システムの移動範囲を制限する
ArmControl を移動すると、メカニカル アームが完全にまっすぐになるまで伸びたり、必ずしも適切でない方向を向いたりする可能性があります。
アームの移動範囲を制限して、IK システムが予想外のポーズをとらないようにすることができます。次のセクションでは、以下のように IK システムの移動範囲を制限します。
- コントロール オブジェクト(ArmControl)の移動を Y 方向と Z 方向だけにロックします。X チャンネルを選択や変更ができないようにロックして、アームが左右に移動できないようにします。
- アームの回転ベース上での回転について、Y 軸の周囲だけを回転して、X 軸と Z 軸の周囲を回転しないようにロックします。
- ArmControl の移動について、メカニカル アームが完全にまっすぐになるまで伸びないように制限します。
ArmControl の移動 X(Translate X)チャンネルをロックするには
- ハイパーグラフ(Hypergraph)で、ArmControl ノードを選択します。
- チャンネル ボックス(Channel Box)を開いて、ArmControl のトランスフォーム チャンネルを表示します。
- すべての移動チャンネルまたは回転チャンネルを 0 に設定します(0 になっていなかった場合)。
- チャンネル ボックスで、移動 X(Translate X)チャンネル名をクリックして選択します。
- 移動 X の文字を右クリックします。
プルダウン メニューが表示されます。
- プルダウン メニューから選択項目のロック(Lock Selected)を選択します。
移動 X の数値フィールドがグレー表示になり、そのチャンネルがロックされたことを示します。ArmControl を X 方向に移動しようとしても、移動 X チャンネルをロック解除しないかぎり移動することはできません。
SwivelBase の回転 X(Rotate X)チャンネルと回転 Z(Rotate Z)チャンネルをロックするには
- ハイパーグラフで、SwivelBase ノードだけを選択します。
- チャンネル ボックスを開いて、SwivelBase の回転チャンネルを表示します。
- すべての移動チャンネルまたは回転チャンネルを 0 に設定します(0 になっていなかった場合)。
- チャンネル ボックスで、Ctrl キーを押しながら回転 X チャンネル名と回転 Z チャンネル名をクリックして選択します。
- 選択した名前のいずれかを右クリックします。
プルダウン メニューが表示されます。
- プルダウン メニューから選択項目のロック(Lock Selected)を選択します。
回転 X チャンネルと回転 Z チャンネルがロックされていることを確認するには
- ハイパーグラフで、SwivelBase ノードだけが選択されていることを確認します。
- ビューで、パネル > 正射投影 > top(Panels > Orthographic > top)を選択します。
- ビューで、シェーディング > すべてをスムース シェード(Shading > Smooth Shade All)を選択します。
- 下の図のように、メカニカル アームの全体が表示されるように上面ビューをドリーします。
- チャンネル ボックスを使用して、回転 Y チャンネルに 45 を入力して Enter を押し、SwivelBase を回転させます。
ビューで SwivelBase が回転しますが、メカニカル アームは回転しません。SwivelBase およびアームのスケルトンとサーフェスのすべてが同じ階層にペアレント化されていたことに、何か問題があると思われます。
注:IK システムのセットアップ中に、期待したとおりに動作していないことに気づく場合があります。このような場合には作業を中止して、そのように動作している理由(または、期待どおりに動作していない理由)を検証することは有益です。このように作業を見直すことで、問題の所在を突き止めることができます。
ArmControl と IK ハンドルは、SwivelBase 階層内にペアレント化されていません。ArmControl と IK ハンドルがメカニカル アームの動作を制御するため、これらを SwivelBase 階層内にペアレント化して、SwivelBase を回転すればアームも回転するようにする必要があります。
IK ハンドルをスケルトン階層内にペアレント化するには
- ハイパーグラフ(Hypergraph)で、SwivelBase ノードを選択します。
- チャンネル ボックス(Channel Box)で、SwivelBase の回転 Y(Rotate Y)チャンネルを 0 にリセットします。
これまでのトランスフォームをすべて 0 に設定してから、階層内の SwivelBase の下に IK ハンドルをペアレント化する必要があります。
- 以下の手順を実行する前に、SwivelBase ノードの選択を解除します。
- ハイパーグラフ メニューで、ビュー > すべてをフレームに収める(View > Frame All)を選択します。
ハイパーグラフにシーンのすべてのノードが表示されます。
- ハイパーグラフで、Shift キーを押しながら ikHandle1、ArmControl、SwivelBase という名前のノードを選択します。
選択順序は重要です。最初に Shift キーを押しながら子ノードになる項目を選択してから、最後に Shift キーを押しながら親ノードになる項目を選択する必要があります。
- メイン メニューで、
編集 > ペアレント化(Edit > Parent)(ホットキー p)を選択します。
ハイパーグラフのスケルトン階層で、IKHandle と ArmControl が SwivelBase ノードの子ノードになりました。
- ハイパーグラフで、SwivelBase だけを選択します。
- チャンネル ボックスを使用して、SwivelBase の回転 Y(Rotate Y)を 45 に設定します。
SwivelBase を回転すると、階層内のリレーションシップに基づいてメカニカル アームが回転します。
- SwivelBase の回転 Y の値を 0 にリセットします。
最終的には、アームが完全にまっすぐになるまで伸びないように、ArmControl がモデルのベースから離れられる範囲を制限する必要があります。
移動範囲設定を指定するには、チャンネル ボックスに移動値を表示しながら、メカニカル アームを動かして検証する必要があります。
ArmControl の移動範囲を指定するには
- ハイパーグラフ(Hypergraph)で ArmControl を選択します。
- チャンネル ボックス(Channel Box)が開いたら、ArmControl の移動チャンネルが表示されていることを確認します。
- ビューで、パネル > 正射投影 > side(Panels > Orthographic > side)を選択します。
- メカニカル アームの全体が表示されるように側面ビューをドリーします。
- 移動ツール(Move Tool)を選択します。
- 側面ビューで、中マウス ボタンを押しながら、下の図のようにメカニカル アームが完全に伸びるまで斜めにドラッグします。
- チャンネル ボックスで、移動 Y(Translate Y)チャンネルと移動 Z(Translate Z)チャンネルに表示されている数字を確認します。
アームの連接部が斜めに伸びてカーゴ ボックスの上方に来ると、ほぼ完全に伸びた状態になります。このときの移動値はおおよそ以下のようになります。
- 側面ビューで、中マウス ボタンを押しながら、下の図のようにメカニカル アームがほぼ完全に縮むまで斜めにドラッグします。
- チャンネル ボックスで、移動 Y チャンネルと移動 Z チャンネルに表示されている数字を確認します。
アームの連接部が縮んだポーズになったときの移動値は、以下のようになります。
この最小値と最大値は、ArmControl の最小移動範囲と最大移動範囲として以下の手順の中で使用されます。
ArmControl の移動範囲を設定するには
- ハイパーグラフ(Hypergraph)で、ArmControl ノードを選択します。
- アトリビュート エディタを開きます(
ウィンドウ > アトリビュート エディタ(Window > Attribute Editor)を選択するか、または、ステータス ライン上でアトリビュート エディタの表示/非表示アイコンをクリックします)。
アトリビュート エディタに ArmControl に関連付けられたノードが表示されます。
- アトリビュート エディタで、ArmControl タブをクリックします。
ArmControl タブが見えない場合は、左右のスクロール矢印を使ってビューを横にスクロールしてタブを見えるようにします。
- アトリビュート エディタで、制限情報(Limit Information)アトリビュートを展開してから、移動(Translate)アトリビュートを展開します。
- 移動</F>アトリビュートで、移動制限 Y(Trans Limit Y)と移動制限 Z(Trans Limit Z)のチェック ボックスをクリックして、数値ボックスを通常表示に戻してから以下の値を設定します。
- 移動制限 Y(最小)(Trans Limit Y (Min)): -13
- 移動制限 Y(最大)(Trans Limit Y (Max)): 7.5
- 移動制限 Z(最小)(Trans Limit Z (Min)): -13
- 移動制限 Z(最大)(Trans Limit Z (Max)): 1
- アトリビュート エディタを非表示にします。
- ArmControl を選択します。
- 側面ビューで、ArmControl を移動して IK システムの移動範囲をテストします。
メカニカル アームがモーションの制限範囲内で移動します。