リミット コントローラ

リミット コントローラでは、コントローラ値の上限と下限を指定して、制御対象のトラックの値の範囲を制限することができます。たとえば、キャラクタの指関節での回転を制限することにより、キャラクタの指が関節と逆方向に捻じ曲がらないようにすることができます。基本的に、トラックの値の範囲を制限すると、その範囲外の値は設定できなくなります。

リミット コントローラは、他のほとんどの種類のコントローラに適用できます。制限付きのコントローラ(元のコントローラ)は、トラック ビュー階層で、リミット コントローラの子として表示されます。

リミット コントローラでは、コントローラ値の上限と下限を指定して、制御対象のトラックの値の範囲を制限することができます。たとえば機械の場合、その標準的な可動範囲を越えて回転しないように、機械の回転を制限できます。基本的に、トラックの値の範囲を制限すると、その範囲外の値は設定できなくなります。リミット コントローラをその他のタイプのコントローラにを適用することもできます。コントローラ(元のコントローラ)は、トラック ビュー階層で、リミット コントローラの子として表示されます。

リミット コントローラは、元のコントローラを変更するわけではありません。リミットの切り替えにより、元のアニメーションと制限されたアニメーションを簡単に切り替えることができます。しかし、リミット コントローラを集約してしまった場合、アニメーションは制限され、制限のない元のアニメーションに戻すことはできなくなります。

リミット コントローラを使用すると、アニメーションのセットアップと作成を短時間で行えるようになります。アニメーションのセットアップまたは作成用の式やスクリプトが不要になるため、階層内やツール内の自動化のセットアップ、衝突や FK 関節制限などの各種効果の作成がより簡単になります。

たとえば、制作ディレクターは、アニメータがポーズ付けの作業を簡単にしたり、強制的に標準値を適用したり、不整合やさまざまなミスを防ぐために調整する浮動小数点を制限することができます。以下の項目に対して、リミットを適用できます。

キャラクタ デザイナは、リミット機能を使って、キャラクタの道具同士の複雑な関係やショートカットを作成できます。以下に例を示します。

使用例

以下に、リミット コントローラの使用例を簡単に一覧します。

リミット コントローラの制限

リミット コントローラには、以下の制限があります。

手順

例: リミット コントローラを使用するには:

  1. アニメートされたオブジェクトを選択して、カーブ エディタを開きます。

    この例では、X 軸上の -45 ~ 40、Y 軸上の -80 ~ 54 の範囲でティーポットの位置がアニメートされています。

  2. トラックに実数リミット コントローラを割り当てた状態。この例では、[X 位置](X Position)トラックに実数リミット コントローラを割り当てています。

    [実数リミット コントローラ](Float Limit Controller)ダイアログ ボックスが表示されます。このダイアログ ボックスでは、制限値をはじめとするさまざまな値を設定できます。ただし、この作業はインタラクティブに行う方が効率がよいので、とりあえず現段階では既定値をそのまま受け入れましょう。ダイアログ ボックスを閉じてください。

    トラックの名前は変わりませんが(この例の場合、[X 位置](X Position)トラック)、アイコンは展開可能なリミット コントローラのアイコンに変わります(次の手順の図を参照)。

  3. トラックを展開します。

    階層には「リミット付きコントローラ」という名前の子トラックが 1 つと、「リミット」という名前の展開可能な子分岐が 1 つ表示されます。

  4. [X 位置](X Position)トラックをクリックします。続いて、[リミット付きコントローラ](Limited Controller)トラックをクリックし、この 2 つのトラックを比較します。

    元の X 軸の動きは既定の制限範囲内なので、2 つのトラックは同一です。

  5. X 軸の位置が制限を設定したい位置と重なるまで、アニメーションを動かします。この例では、-20 あたりの位置になります。ここに下限値を設定します。
  6. [X 位置](X Position)トラックをハイライトし、右クリックして、メニューから[リミット コントローラ](Limit Controller) [下限を設定](Set Lower Limit)を選択します。

    グラフのカーブから、下限値を下回る部分がクリッピングされます。アニメーションを動かしたとき、オブジェクトはこの下限値を下回る位置へは移動しません。

  7. 再度アニメーションを動かし、上限値を設定したい位置で止めます。ここで、[X 位置](X Position)トラックを右クリックし、メニューから[リミット コントローラ](Limit Controller) [上限を設定](Set Upper Limit)を選択します。

    この例では、上限値を 13 ぐらいに設定しています。グラフ カーブは、上限の上と下限の下にクリップしています。モーションの結果は、同様に制限されています。

  8. アニメーションを動かします。

    X 軸上のモーションが上限値と下限値で制限され、オブジェクトはその位置で壁にぶつかるような動作をします。

  9. 再度 2 つのトラックを比較します。

    [リミット コントローラ](Limit Controller)トラック([X 位置](X Position)トラック)では、上限値と下限値の位置でクリッピングが行われます。これに対し、[リミット付きコントローラ](Limited Controller)トラックでは、元のモーションが保持されています。

    元のモーションは[リミット付きコントローラ](Limited Controller)トラックとして保持されているので、リミット コントローラを切り替えることで、一時的に元のモーションを復元することも可能です。

  10. [X 位置](X Position)トラックをハイライトし、右クリックして、メニューから[リミット コントローラ](Limit Controller) [リミット切り替え](Toggle Limit)を選択します。

    これで、アニメーションを動かしたとき、オブジェクトは以前と同じように動作するようになります。

  11. [リミット コントローラ](Limit Controller) [リミット切り替え](Toggle Limit)を再度選択すると、制限が再度適用されます。

    リミット コントローラは次の 2 つの方法でコピーすることができます。制限のみをコピーする方法と、制限とモーションの組み合わせをコピーする方法です。まず、制限だけをコピーする方法を試してみましょう。

  12. [Y 位置](Y Position)トラックをハイライトし、このトラックのカーブと[X 位置](X Position)トラックのカーブの違いを確認します。
  13. [X 位置](X Position)トラックをハイライトし、右クリックして、メニューから[リミット コントローラ](Limit Controller) [リミットのみコピー](Copy Limit Only)を選択します。
  14. [Y 位置](Y Position)トラックをハイライトし、右クリックして、メニューから[リミット コントローラ](Limit Controller) [リミットのみ貼り付け](Paste Limit Only)を選択します。[貼り付け](Paste)ダイアログ ボックスが表示されます。[OK]をクリックすると、コピー内容の貼り付けが行われます。

    [Y 位置](Y Position)トラックにも[X 位置](X Position)トラックと同じ範囲の制限が適用されます。ただし、元のモーションは保持されます。確認するには、[Y 位置](Y Position)トラックとその子の[リミット付きコントローラ](Limited Controller)トラックを比較します。

    次に、モーションと制限を含めて、[X 位置](X Position)トラック全体を[Z 位置](Z Position)トラックにコピーします。[Z 位置](Z Position)トラックは、現段階ではアニメートされていません。

  15. [X 位置](X Position)トラックをハイライトし、右クリックして、メニューから[コピー](Copy)を選択します。
  16. [Z 位置](Z Position)トラックをハイライトし、右クリックして、メニューから[貼り付け](Paste)を選択します。

    [X 位置](X Position)トラックと[Z 位置](Z Position)トラック、さらにそれぞれの子である[リミット付きコントローラ](Limited Controller)トラックを比較します。それぞれの対応するカーブは同一です。オブジェクトは、箱の四方にぶつかるような動作をします。

    最後に、スムージング バッファの設定を行います。既定の設定では、カーブは制限が適用された箇所で鋭角になり、モーションが突然変化します。このような鋭角部分をスムージング バッファ パラメータでスムージングして、オブジェクトの動作をより自然にすることができます。

  17. [X 位置](X Position)トラックをハイライトし、右クリックして、メニューから[プロパティ](Properties)を選択します。

    [実数リミット コントローラ](Float Limit Controller)ダイアログ ボックスが開きます。

  18. [上限](Upper Limit)領域 [スムージング バッファ](Smoothing Buffer)編集ボックスを使って、スムージング バッファ値をできる限り大きくします。

    値を大きくするにつれて、グラフの上限部分の角がスムーズになっていきます。

    スムージング バッファ値には上限があり、この場合は 34.973 が上限値になります。この制限は、[実数リミット コントローラ](Float Limit Controller)ダイアログ ボックス内の他の 3 つの設定値によって異なります。

  19. [下限](Lower Limit)領域 [スムージング バッファ](Smoothing Buffer)編集ボックスを使って、スムージング バッファ値をできる限り大きくします。スムージングの上限値を最大値にすることはできません。
  20. スムージングの上限値を小さくしてから、スムージングの下限値を大きくします。

    これで、上限値と下限値のそれぞれの位置でスムージングが行われます。

インタフェース

リミット コントローラ インタフェースは、[実数リミット コントローラ](Float Limit Controller)ダイアログ ボックスといくつかの右クリック メニュー項目で構成されています。

[実数リミット コントローラ](Float Limit Controller)ダイアログ ボックス

[実数リミット コントローラ](Float Limit Controller)ダイアログ ボックスは、初めてリミット コントローラを割り当てるとき、またはハイライトした[リミット コントローラ](Limit Controller)トラックを右クリックして[プロパティ](Properties)を選択したときに表示されます。

使用可能

リミット コントローラに切り替えます。このチェック ボックスにチェックマークが付いていない場合は、制限されたトラックの元の値が使用されます。このチェック ボックスにチェックマークが付いている場合、元の値は[上限](Upper Limit)と[下限](Lower Limit)の値で制限されます。

注: 3ds Max の[アニメーション](Animation)メニューの[切り替え制限](Toggle Limits)コマンドを使用すれば、シーン内のすべてのリミット コントローラを一度に有効または無効にすることができます。 オンになっているリミット コントローラとオフになっているリミット コントローラがある場合に[リミット切り替え](Toggle Limit)を選択すると、すべてのリミット コントローラがオンになります。
[上限](Upper Limit)領域
使用可能
コントローラで設定された上限に切り替えます。このチェック ボックスにチェックマークを付けないと、上限値は設定されません。既定値ではチェックマークが付いています。
[上限](Upper Limit)の値
リミット コントローラで許可された上限の値。元のコントローラ内のこの値を超える値は、クリッピングされます。つまり、上限値を超える値は、スムージングが適用されていない限り、上限値に設定されます。既定値は 1000.0 です。

この値は、キーフレーミングなどの標準的な方法を使ってアニメートできます。その結果作成されたアニメーションは、トラック ビュー内で、コントローラの[リミット](Limit)分岐の下位の[上限](Upper Limit)トラックを使って操作することができます。

スムージング バッファ
スムージング値を指定します。こうすることにより、クリッピングの開始位置と終了位置で、値が突然平板になるのではなく、緩やかに増減するようになります。

スムージング値の合計の最大値は、上限値と下限値によって決定されます。(上限値 スムージング バッファ値) + (下限値 スムージング バッファ値) が、スムージング値の合計の最大値を超えないようにします。クリッピングの開始位置と終了位置のスムージングの効果を最大限にするには、上限、下限のどちらかの[スムージング バッファ](Smoothing Buffer)の最大値を確認後、その半分の値を設定し、もう一方の[スムージング バッファ](Smoothing Buffer)にも同じ値を設定します。

[スムージング バッファ](Smoothing Buffer)の値は、キーフレーミングなどの標準的な方法を使ってアニメートできます。その結果作成されたアニメーションは、トラック ビュー内で、コントローラの[リミット](Limits)分岐の下位の[上方スムージング](Upper Smoothing)トラックを使って操作することができます。

[下限](Lower Limit)領域
使用可能
コントローラで設定された下限に切り替えます。このチェック ボックスにチェックマークを付けないと、下限値は設定されません。既定値ではチェックマークが付いています。
[下限](Lower Limit)の値
リミット コントローラで許可された下限の値。元のコントローラ内のこの値に満たない値は、クリッピングされます。つまり、下限値に満たない値は、スムージングが適用されていない限り、下限値に設定されます。既定値は -1000.0 です。

この値は、キーフレーミングなどの標準的な方法を使ってアニメートできます。その結果作成されたアニメーションは、トラック ビュー内で、コントローラの[リミット](Limit)分岐の下位の[下限](Lower Limit)トラックを使って操作することができます。

スムージング バッファ
スムージング値を指定します。こうすることにより、クリッピングの開始位置と終了位置で、値が突然平板になるのではなく、緩やかに増減するようになります。

スムージング値の合計の最大値は、上限値と下限値によって決定されます。(上限値 スムージング バッファ値) + (下限値 スムージング バッファ値) が、スムージング値の合計の最大値を超えないようにします。クリッピングの開始位置と終了位置のスムージングの効果を最大限にするには、上限、下限のどちらかの[スムージング バッファ](Smoothing Buffer)の最大値を確認後、その半分の値を設定し、もう一方の[スムージング バッファ](Smoothing Buffer)にも同じ値を設定します。

[スムージング バッファ](Smoothing Buffer)の値は、キーフレーミングなどの標準的な方法を使ってアニメートできます。その結果作成されたアニメーションは、トラック ビュー内で、コントローラの[リミット](Limits)分岐の下位の[下方スムージング](Lower Smoothing)トラックを使って操作することができます。

リミット コントローラの右クリック メニュー

リミット コントローラの右クリック メニューを表示するには、トラック ビュー階層で[リミット コントローラ](Limit Controller)トラックをハイライトし、このトラックを右クリックします。さらに、[コントローラ](Controller)クアッド メニュー [リミット コントローラ](Limit Controller)メニュー項目へカーソルを移動します。

注: [リミット コントローラ](Limit controller)トラックの[リミットのみコピー](Copy Limit Only)を選択した場合は、[リミットのみ貼り付け](Paste Limit Only)を使って、任意のトラックに、同じ制限が適用された新しいリミット コントローラを適用できます。
リミット切り替え
リミット コントローラのオンまたはオフを切り替えます。[実数リミット コントローラ](Float Limit Controller)ダイアログ ボックスの[使用可能](Enable)チェック ボックスと同じ働きです。
上限を設定
現在のフレームの[上限](Upper Limit)トラック内の値とキーが、制限されたトラックの現在のフレームの値と等しくなるように設定します。キーが 1 つしかない場合、時間が経っても制限値は変化しません。
下限を設定
現在のフレームの[下限](Lower Limit)トラック内の値とキーが、制限されたトラックの現在のフレームの値と等しくなるように設定します。キーが 1 つしかない場合、時間が経っても制限値は変化しません。
リミットを削除
リミット コントローラを削除し、制限が適用されていない元のコントローラを復元します。
リミットのみコピー
ハイライトされたトラックの制限が適用されたコントローラは無視して、制限値だけをコピーします。
リミットのみ貼り付け
コピーされた制限値にのみ適用可能です。リミット コントローラがない場合は、元の制限されたトラックの値を保持した状態で、コピーされた値を持つリミット コントローラを追加します。

コピーされたコントローラ トラックを貼り付ける場合と同じく、貼り付け先のすべてのインスタンスを置換するオプションを指定して、制限値を、コピーされたリミット コントローラのインスタンス(コピー)として貼り付けることができます。