可動制限の設定

 
 
 

多数のチェインを含むスケルトンを作成した後にIKを起動すると、それぞれのチェインが必ずしも思い通りには移動しないということがわかります。また、実際の人間の手足とは異なり、チェインの動きにはあまり制約がないという点も問題になります。このため、非常に不自然に脚が曲がってしまうといった問題が起こる可能性があります。このような問題を解決するには、各ジョイントが回転する量を決定する「規則」を設定します。

ジョイントやエフェクタを拘束してその動きを制限する方法を、以下に列挙します。

回転制限と硬さの表示

  1. ビューポートの目のアイコンをクリックし、メニューバーから[可視性オプション](Visibility Options)を選択します。

  2. プロパティエディタで、[属性](Attributes)タブをクリックし、[チェインジョイント ローテーションリミット] (Chain Joint Rotation Limits)をSelected ObjectsまたはUnselected Objectsエリアから選択します。

    A

    剛性が設定されている場合、そのジョイントは塗りつぶされます。ジョイントが塗りつぶされている角度が剛性の角度を表します。この例では、硬さは0.75です。

    B

    ジョイントの回転制限は、2本の線がついた円で表されます。ラインの間の空白は、ジョイントの動く範囲を表します。

    ジョイントが 2D の場合、円は赤で表示されます。ジョイントが3Dの場合、赤、緑、青の3つの円が表示されます。それぞれX軸、Y軸、Z軸を表します。

    この線は、[Kinematic Joint]プロパティエディタによる回転制限の変更に応じて、インタラクティブに移動します。

回転制限の設定

[Skeleton][Rotation Limits]コマンドは、チェインエレメントの回転範囲を制限します。たとえば、回転制限を設定して、頭部が180度回転しないように制限できます。

エレメントが階層化されている場合はグローバル座標で制限され、それ以外の場合は常にローカル座標で制限されます。

A

回転制限: ボーンはZ軸を中心に回転し、ブロックのサーフェイスを越えることはありません。

B

設定: Z軸を中心とする回転について、最小値(時計回り)と最大値(反時計回り)を設定します。X 方向と Y 方向の回転を制限します。この図では、最小値が –138 度で、最大値が 42 度です。

注:IKでは、回転制限の設定に関係なく、プリファードアングルと反対の方向に曲がらないようになっています。ただし、回転制限が両方ともジョイントのプリファードアングルとは反対側にある場合、プリファードアングル(およびジョイント)は逆転します。

回転制限をインタラクティブに適用するには

  1. 制限するジョイントを選択します。通常、チェインの最初のジョイントから始めます。チェインのボーンは、それぞれ次にあるボーンの親になるため、3方向の軸すべてを考慮し、変更が後続ジョイントに与える影響を確認する必要があります。

  2. [Transform]パネルの[回転ツール]ボタンをクリックします。

    2D チェインを使用している場合は、2D ジョイントの回転軸が Z であることに注意してください。Z 軸だけで回転すると、レゾリューション プレーン内でジョイントが正確に保持されます。

  3. ジョイントを最小の位置に回転させます。これは、Z軸が手前を指しているとして、時計回りの最も遠い、ジョイントを停止させる位置です。

  4. [Animate]ツールバーから[作成](Create) [スケルトン](Skeleton) [最小回転制限の設定](Set Minimum Rotation Limit)を選択します。

  5. ジョイントを最大の位置に回転させます。これは、反時計回りの最も遠い、ジョイントを停止させる位置です。

  6. [Animate]ツールバーから[作成](Create) [スケルトン](Skeleton) [最大回転制限の設定](Set Maximum Rotation Limit)を選択します。

    必要に応じて、次のジョイントに対してこの手順を繰り返します。

    注:FKチェインを使用する場合は、[Local Transform]プロパティエディタの[回転制限]プロパティページから回転制限も設定できます。回転制限とスケルトンコマンドを設定すると、最大の制限値が使用されます。[Local Transform]プロパティエディタの回転制限の設定は、IKチェインに影響しません。

[Kinematic Joint]プロパティエディタから回転制限を適用するには

チェインに回転制限を追加しても、ジョイント角度は自動的に再計算されません。チェインを更新するには、エフェクタを移動させる必要があります。

  1. 制限するジョイントを選択します。通常、チェインの最初のジョイントから始めます。チェインのボーンは、それぞれ次にあるボーンの親になるため、3方向の軸すべてを考慮し、変更が後続ジョイントに与える影響を確認する必要があります。

  2. 選択したボーンの[Kinematic Joint]プロパティエディタを開き、[回転制限]タブをクリックします。

  3. [Transform]パネルの[回転ツール]ボタンをクリックします。

    2D チェインを使用している場合は、2D ジョイントの回転軸が Z であることに注意してください。Z 軸だけで回転すると、レゾリューション プレーン内でジョイントが正確に保持されます。

  4. ジョイントを最小の位置に回転させます。これは、Z軸が手前を指しているとして、時計回りの最も遠い、ジョイントを停止させる位置です。

  5. [回転制限]プロパティページで、適切な軸に対する[最小角度](Minimum Angles)を設定します。

  6. ジョイントを最大の位置に回転させます。これは、反時計回りの最も遠い、ジョイントを停止させる位置です。

  7. [回転制限]プロパティページで、適切な軸に対する[最大角度]を設定します。

  8. [アクティブ](Active)をオンにして、ジョイントの回転制限をアクティブにします。

    制限されたオブジェクトは、[Kinematic Joint]プロパティエディタで設定した最小値および最大値を超えて回転することはありません。

    ヒント:値を設定してから、回転制限をアクティブにするようにします。これは、設定値が制限を超過している場合、この設定によってプリファードアングルが変更される可能性があるためです。

硬さの設定

ジョイントの動く範囲を制限する別の方法として、硬さの設定があります。ジョイントの硬さは、IKを使用している間の折り曲げに対する抵抗の大きさを表します。キャラクタに関節を付けたくないかもしれませんが、ジョイントに少しの硬さがあると効果的なものになる場合があります。

 

最上部のチェインは元のチェインです。図を参考に、ジョイントの動作に対する硬さの影響を説明します。ここでは、4 番目の硬さは 3 つの異なるレベルに設定されており、エフェクタは同じ位置に移動します。

A

チェイン A の硬さは 0 で、ジョイントはアコーディオンのように均等に曲がります。

B, C

チェイン B と C の硬さはそれぞれ 0.25 と 0.5 で、4 つ目のジョイント以外は 4 つ目のジョイントよりも大きく曲がります。

D

チェイン D の硬さは 1 で、4 つ目のジョイントの角度は元のチェインの角度と同じです。

ジョイントに硬さを適用するには

  1. ジョイントを制限するボーンを選択し、その[Kinematic Joint]プロパティエディタを開きます。

  2. [ジョイントビヘイビア]領域で、[剛性使用](Use Stiffness)をオンにして、[硬さ]をアクティブにします。

  3. [硬さ](Stiffness)値を設定します。硬さの値は、0から1の範囲である必要があります。値が高いほど、ジョイントは硬くなります。

    ヒント:チェインに硬さを追加しても、チェインのジョイント角度は自動的には再計算されません。チェインを更新するには、エフェクタを移動します。