動作を割り当てる

リアル ワールドでは、異なる群集は多様な動作を示し、同じ群集の中でも、さまざまな行為が見られます。character studio の群集システムには各種の動作が一式含まれており、群集の活動範囲をシミュレートできます。

動作を使用して、代理オブジェクトに動作タイプを割り当てることができます。この動作タイプは、代理オブジェクトにリンクされたオブジェクトにも適用されます。各群集オブジェクトに、任意の数の動作を関係付けて、代理オブジェクトや代理オブジェクトのチームを各動作にリンクすることができます。ある群集オブジェクトに割り当てられた特定の動作は、その群集だけに属し、他の群集に割り当てることはできません。

使用可能な動作は以下のとおりです。

ヒント: 独自の動作が必要な場合は、スクリプトを記述して作成できます。

動作を初めてシーンに追加するときは、その動作の新しいロールアウトが[設定](Setup)ロールアウトの下に表示されます。その新しいロールアウトで動作の設定を変更することができます。探査や回避など特定の動作では、ターゲット オブジェクトを指定できます。

ヒント: 既定値では、動作には属名が割り当てられます。動作名は、「Seek Ball」や「Avoid Fire」などの判別しやすい名前に変更することをお勧めします。

シーンの別の動作のロールアウトを表示するには、必要な動作を[動作](Behaviors)領域のドロップダウン リストから選択します。動作タイプのロールアウトで利用可能なコントロールを表示するには、上記のリストのエントリからリンクに従います。

動作ロールアウトで利用可能なコントロールの他に、[動作の割り当てとチーム](Behavior Assignments and Teams)ダイアログ ボックスを利用して、[アクティブ化](Active)チェック ボックスで動作をオンかオフに切り替えることができます。回避、方向、サーフェス追跡以外のすべての動作には、重みを設定してアニメートできます。 アクティブなステータスは、すべての動作に対しアニメート可能です。

動作を使用する

動作を使用するには、[動作の割り当てとチーム](Behavior Assignments and Teams)ダイアログ ボックスを使用して、動作を代理オブジェクトか代理オブジェクトのチームに適用します。このダイアログ ボックスでは、代理オブジェクトに割り当てられた各動作には重みが与えられています。これらの重みを変更したりアニメートして、シミュレーションに影響させることができます。

動作の割り当て重みはシミュレーションに大きく影響します。1 つの代理オブジェクトに 2 つ以上の動作を割り当てる場合、重みでは動作間の関係が定義され、一方を他方に比べより強い力または弱い力にします。動作の割り当て重みを視覚化する 1 つの方法は、群集のシミュレーションの間にある動作のフォースのベクトルを調べることです。ベクトルの長さは、代理オブジェクトにかかる動作の重みを表しています。

各動作は[動作](Behavior)ロールアウトで表示される固有のパラメータを持っており、群集オブジェクトの[修正](Modify)パネルから使用できます。これらのパラメータは動作がどう機能するかを表現し、また動作の強度に関係することもあります。たとえば、探査動作、反発動作、壁探査動作、壁反発動作には、すべて影響値の特定のボリュームがあります。これらのボリュームの外側では、影響はまったくなく本質的に重みはゼロです。このロールアウトでは、群集シミュレーションの間に、動作のフォースのベクトルをダイナミックに表示するかどうかを指定でき、またベクトルの色を指定できます。

群集システムを操作するときは、動作割り当て重みと、各動作のパラメータを再生することが重要です。通常は、シミュレーションを繰り返し実行して、希望する結果が得られるまで重みとパラメータを変更します。

重みが付けられない動作がいくつかあります。それらは、「回避」、「サーフェス追跡」、「方向」です。回避とサーフェス追跡は、他のすべての動作が代理オブジェクトに適用された後に始まります。それらは代理オブジェクトに影響を与えるために、他の動作を圧倒して自らのコンストレイントを満たすというような激しい手段を取ることがあります。方向は単に代理オブジェクトが向いている方向を設定します。重みは付けられず、フォースを適用しません。

動作のヒント

character studio の動作について、便利な機能を以下に示します。

手順

例: 動作を代理オブジェクトに割り当てるには:

    この例では、代理オブジェクトと動作を使用して基本的な群集シミュレーションを作成する方法を示します。

  1. 3ds Max を起動するか、または 3ds Max をリセットします。
  2. 1 つの群集オブジェクトと 1 つ以上の代理オブジェクトを、シーンに追加します。通常は、代理オブジェクトが前方を向くように、代理オブジェクトをトップ ビューポートに追加します。群集オブジェクトの位置は重要ではありません。
  3. 群集オブジェクトを 選択し、 [修正](Modify)パネルに移動します。
  4. [セットアップ](Setup)ロールアウト [動作](Behaviors)領域で、[新規作成](New)ボタンをクリックします。
  5. [動作タイプを選択](Select Behavior Type)ダイアログ ボックスで、動作を選択して[OK]をクリックし、ダイアログ ボックスを閉じます。

    選択した動作に対するロールアウトが表示されます。

  6. 探査などのように動作にターゲット オブジェクトが必要な場合は、[なし](None)ボタンをクリックしてオブジェクトを選択するか、[複数選択](Multiple Selection)をクリックして複数のオブジェクトを選択します。
  7. 必要に応じて、他の動作設定を変更します。
  8. 必要に応じて、追加の動作を作成および変更します。
  9. [セットアップ](Setup)ロールアウトの[動作の割り当て](Behavior Assignment)をクリックします。
  10. [割り当てのデザイン](Assignment Design)領域の上の 2 つのリストには、左側のリストに代理オブジェクトが 1 つ、右側のリストに動作が 1 つ含まれているはずです。両方の項目を選択します。
  11. [割り当てのデザイン](Assignment Design)領域の右側にある[新規の割り当て](New Assignment)ボタンをクリックします。これは、右向きの矢印が 5 つある縦型のボタンです。

    これにより、[動作の割り当て](Behavior Assignments)領域のリストに新しい割り当てが追加されます。

  12. 適用した変更に問題がない場合には、[OK]ボタンをクリックして、[動作の割り当てとチーム](Behavior Assignments and Teams)ダイアログ ボックスを閉じます。
  13. [修正](Modify)パネルで、[計算](Solve)ロールアウトまでスクロールし、[計算](Solve)ボタンをクリックします。

    代理オブジェクトが球を向くように回転し、回転しながら傾き、その後球に向かってまっすぐに移動するように、キーが作成されます。代理オブジェクトがターゲットに到着すると、球を少し越えるまで移動し、回転して移動するモーションをシミュレーションの終わりまで繰り返します。これを防ぐには、開始時の 2 つのオブジェクトの距離を大きくするか、球の位置をアニメートします。