比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

Atoms can place agents on different type of terrains using built-in height fields and gravity fields.

Basic terrain
  • Create an agent group.
  • Add a grid layout module and set the size attribute to (5, 0, 5 ).
  • Add a state machine module and set the state attribute to 1.
  • Create a bumpy ground.
  • Open the height field manager from he Atoms menu Atoms → Height field manager.
  • Select the terrain mesh.
  • Press the Add button,  in the dialog name field type a name (i.e. "ground").
  • Press the select button to automatically fill the mesh field with the ground path.
  • Press Ok, close the height field manager and rewind your scene.
  • Select the agent group.
  • In the state machine module options, set "ground" as height field.
  • Rewind your scene and press play. Atoms will place the agents on the mesh.
注意Your height fields need to be reloaded whenever they are modified. Open the Height field manager, select your height field item and press the reload.

Atomsは、組み込まれたHeightフィールドとGravityフィールドを使用して、様々な種類の地形にエージェントを配置できます。


基本の地形
  • エージェントグループを作成します。
  • Grid Layoutモジュールを追加し、Sizeアトリビュートを(5、0、5)に設定します。
  • State Machineモジュールを追加して、Stateアトリビュートを1に設定します。
  • 凹凸のある地形を作成しましょう。
  • AtomsメニューのAtoms Height Field ManagerからHeight Field Managerを開きます。
  • Terrain Meshを選択します。
  • 「Add」ボタンを押して、ダイアログのnameフィールドに名前(すなわち "ground")を入力してください。
  • Selectボタンを押すと、Meshフィールドが自動的にグラウンドパスで埋められます。
  • 「OK」を押して、Height Field Managerを閉じ、シーンを巻き戻します。
  • エージェントグループを選択します。
  • State Machineモジュールのオプションで、Heightフィールドとして "ground"を設定します。
  • シーンを巻き戻して、Playを押します。Atomsは、エージェントをメッシュに配置します。
注意

Heightフィールドは、変更されるたびにリロードする必要があります。Height Field Managerを開き、ユーザーのHeightフィールドの項目を選択してリロードを押します。


Deformed terrain
  • Create an agent group.
  • Add a grid layout module and set the size attribute to (5, 0, 5 ).
  • Add a state machine module and set the state attribute to 1.
  • Create a plane and increase the subdivision to 50 50 and scale to 3000,3000,3000.
  • Add a mountain deformer, set the amplitude to 500 and put some keyframes on the time parameter to animate the deformation.
  • Open the height field manager from he Atoms menu Atoms → Heigh field manager.
  • Select the terrain mesh.
  • Press the Add button,  in the name field of the dialog set a name (i.e. "ground").
  • Press the select button to automatically fill the mesh field with the ground path.
  • Check the animated checkbox.
  • Press Ok, close the height field manager and rewind your scene.
  • Select the agent group.
  • In the state machine module options, set "ground" as height field.
  • Rewind your scene and press play. Atoms will place the agents on the deformed mesh.
注意

Atoms rebuilds the animated height field internal structure at every frame. For dense meshes this could lead to performance slow downs. If your ground is a static mesh moving in space, please have a look at the following section.

Image Removed

Animated undeformed terrain

If your ground transform is animated (but the mesh itself is static), you can use the parent constraint module to speed up the ground computation without using an animated height field.

  • Create an agent group.
  • Add a grid layout module and set the size attribute to (5, 0, 5 ).
  • Add a state machine module and set the state attribute to 1.
  • Create a plane and increase the subdivision to 50 50 and scale to 3000,3000,3000.
  • Set the plane as a child of a null and animate the transform of the null adding some keyframes.
  • Open the height field manager form he Atoms menu Atoms → Height field manager.
  • Select the terrain mesh.
  • Press the Add button,  in the name field of the dialog set a name (i.e. "ground").
  • Press the select button to automatically fill the mesh field with the ground path.
  • Check the animated checkbox.
  • Press Ok, close the height field manager and rewind your scene.
  • Select the agent group.
  • In the state machine module options, set "ground" as height field.
  • Add a parent constraint behaviour module and rewind the scene.
  • Connect the plane worldMatrix to the parentConstraint parentMatrix.
  • Rewind the scene and press play.

Image Removed

Gravity fields and 3d terrains


Gravity fields are standard height fields but they are used to modify the gravity and agents up vector metadata. You can create a number of effects using gravity fields. Here are two examples:

  • Create an agent group.
  • Add a grid layout module and set the size attribute to (5, 0, 5).
  • Add a state machine module and set the state attribute to 1.
  • Create a sphere, scale it to (1000,1000,1000) and move to (0, -1000, 0).
  • Create an height field using this sphere and set its name to "gravityMesh".
  • Duplicate the sphere and model some bumps on the new sphere.
  • Create a new height field using this sphere and set the name to "groundMesh".
  • Select the agent group.
  • In the state machine module options, set "groundMesh" as height field and "gravityMesh" as gravity field.
  • Now create a curve around the sphere and add a follow curve module using that curve, if you don't use the curve you will see the agents get stuck on the right point of the sphere because by default every agents as 1,0,0 as direction metadata
  • Rewind your scene and press play.

Image Removed

  • Create an agent group.
  • Add a grid layout module and set the size attribute to (5, 0, 5).
  • Add a state machine module and set the state attribute to 1.
  • Create a simple plane and scale it to (1000,1000,1000).
  • Create an height field using this plane and set the name to "groundMesh".
  • Duplicate the plane and rotate it to (30, 0, 0).
  • Create a new height field using this plane and set the name to "gravityMesh".
  • Select the agent group.
  • In the state machine module options, set "groundMesh" as height field and "gravityMesh" as gravity field.
  • Rewind your scene and press play.
    変形した地形
    • エージェントグループを作成します。
    • Grid Layoutモジュールを追加し、Sizeアトリビュートを(5、0、5)に設定します。
    • State Machineモジュールを追加して、Stateアトリビュートを1に設定します。
    • 平面を作成し、Subdivisionを50、50に増やし、3000,3000,3000にスケールを調整します。
    • Mountain Deformerを追加し、Amplitudeを500に設定し、変形をアニメートするために、いくつかのキーフレームをTimeパラメータに配置します。
    • AtomsメニューのAtoms Heigh Field ManagerからHeight Field Managerを開きます。
    • Terrain Meshを選択します。
    • 「Add」ボタンを押して、ダイアログのnameフィールドに名前を設定します。
      "ground")。
    • 「Select」ボタンを押すと、Meshフィールドが自動的にグラウンドパスで埋められます。
    • アニメ化されたチェックボックスをチェックしてください。
    • 「OK」を押して、Height Field Managerを閉じ、シーンを巻き戻します。
    • エージェントグループを選択します。
    • State Machineモジュールのオプションで、Heightフィールドとして "ground"を設定します。
    • シーンを巻き戻して、Playを押します。Atomsは、変形したメッシュ上にエージェントを配置します。


    注意

    Atomsは、アニメーション化されたHeightフィールドの内部構造をフレームごとに再構築します。綿密なメッシュの場合、これによりパフォーマンスが低下する可能性があります。ユーザーのグラウンドがスペースを動作するスタティックメッシュの場合は、次のセクションをご覧ください。


    Image Added



    アニメーション時に変形しない地形

    グラウンドの変換がアニメートされている場合(ただし、メッシュ自体はスタティックです)、アニメートされたHeightフィールドを使用せずに、Parent Constraintモジュールを使用してグラウンドの計算を高速化できます。

    • エージェントグループを作成します。
    • Grid Layoutモジュールを追加し、Sizeアトリビュートを(5、0、5)に設定します。
    • State Machineモジュールを追加して、Stateアトリビュートを1に設定します。
    • 平面を作成し、Subdivisionを50、50に増やし、Scaleを3000,3000,3000に調整します。
    • プレーンをNullの子として設定し、いくつかのキーフレームを追加して、Nullの変換をアニメートします。
    • Height Field ManagerのAtomsメニューを開きます。Atoms > Height Field Manager
    • Terrain Meshを選択します。
    • 「Add」ボタンを押して、ダイアログのNameフィールドに名前(例: "ground")を設定します。
    • 「Select」ボタンを押すと、Meshフィールドが自動的にグラウンドパスで埋められます。
    • アニメ化されたチェックボックスをチェックしてください。
    • 「OK」を押して、Height Field Managerを閉じ、シーンを巻き戻します。
    • エージェントグループを選択します。
    • State Machineモジュールのオプションから、Heightフィールドとして "ground"を設定します。
    • Parent Constraint Behaviourモジュールを追加してシーンを巻き戻します。
    • planeworldMatrixをparentConstraint parentMatrixに接続します。
    • シーンを巻き戻して、Playを押します。



    Image Added



    Gravityフィールドと3次元の地形

    Gravityフィールドは、標準のHeightフィールドですが、エージェントの重力とアップベクトルメタデータを変更するために使用されます。Gravityフィールドを使用して多数の効果を作成できます。以下が2つの例です。

    • エージェントグループを作成します。
    • Grid Layoutモジュールを追加し、Sizeアトリビュートを(5、0、5)に設定します。
    • State Machineモジュールを追加して、Stateアトリビュートを1に設定します。
    • スフィアを作成し、それを(1000,1000,1000)にScaleを調整して(0、-1000、0)に移動します。
    • このスフィアを使用して、Heightフィールドを作成し、その名前を "gravityMesh"に設定します。
    • スフィアを複製し、新しいスフィアに対していくつかのバンプをモデル化します。
    • このスフィアを使用して、新しいHeightフィールドを作成し、名前を "groundMesh"に設定します。
    • エージェントグループを選択します。
    • State Machineモジュールのオプションで、 "groundMesh"をHeightフィールドとして、 "gravityMesh"をGravityフィールドとして設定します。
    • スフィアの周りにカーブを作成し、そのカーブを使用して、Follow Curveモジュールを追加します。カーブを使用しない場合、デフォルトではすべてのエージェントがDirectionメタデータとして、1,0,0になるため、エージェントはスフィアの適切な位置に固定されます。
    • シーンを巻き戻して、Playを押します。


    Image Added

    • エージェントグループを作成します。
    • Grid Layoutモジュールを追加し、Sizeアトリビュートを(5、0、5)に設定します
    • State Machineモジュールを追加して、Stateアトリビュートを1に設定します。
    • シンプルな平面を作成し、それを(1000,1000,1000)にスケールを調整します。
    • この平面を使用してHeightフィールドを作成し、名前を "groundMesh"に設定します。
    • 平面を複製して(30、0、0)に回転させます。
    • この平面を使用して、新しいHeightフィールドを作成し、名前を "gravityMesh"に設定します。
    • エージェントグループを選択します。
    • State Machineモジュールのオプションで、 "groundMesh"をHeightフィールドとして、 "gravityMesh"をGravityフィールドとして設定します。
    • シーンを巻き戻して、Playを押します。