エージェントのレイアウト - Houdini

前のセクションで、既にいくつかのエージェントを作成しました。 Atomsには、シーン内でエージェントをレイアウトするために、使用できるLayoutモジュールがいくつかあります。


Grid layout

Grid Layoutはエージェントのグリッドを作成します。

エージェントグループを作成します。GridLayoutモジュールを追加してください。

Grid Layoutモジュールの「Parameters」タブで、以前に「AgentType」フィールドに入力したエージェントタイプの名前を入力します(つまりtestRobot)。

そして「Size」フィールドを(3,1,3)に設定します。次に、StateMachineモジュールを追加します。「Draw Attribute」タブで、DrawモードをSkeletonからSkinに変更します。

タイムスライダのRewindボタンまたはUpdateSimシェルフボタンをクリックすると、9つのエージェントがビューポートに表示されます。

Playボタンを押してシミュレーションを実行します。


Points layout

Points Layoutでは、エージェントを作成する必要がある正確な場所を選択することも、入力ポイントをgeoノードとして使用することもできます。



Agents Layout tool

エージェントグループを作成します。

PointsLayoutモジュールを追加してください。そして、StateMachineモジュールを追加します。「Draw Attribute」タブで、DrawモードをSkeletonからSkinに変更します。

巻き戻します。


プロパティエディタの「Modules Attribute」タブと「PointsLayout」タブをクリックし、「Agent Layout Tool」ボタンをクリックするか、またはAgent Groupノードを選択した状態でReturnキーを押します(AtomsメニューからLayout Toolを開くこともできます:Atoms > Tool > Agents Layout Tool)。


Pを押して、Agent Layout Toolウィジェットを開きます。 Sを押すか、アイコンをクリックして、マウスをビューポート上に移動します。

緑色の矢印は、エージェントを作成する場所とその方向を示しています。

エージェントを作成するには、LMBを押します。方向を変更する場合は、Ctrl + LMBを押しながらカーソルを左右にドラッグします。 アイコンを押すと、一度に複数のエージェントを作成できます。


いくつかのエージェントを作成した後も、それらの位置、方向、およびエージェントタイプを変更することができます。 Qボタンを押すか、アイコンを使用して、エージェントを選択します。次に、Aボタンまたはアイコンを押して、moveマニピュレータを使用してシーン内のエージェントを移動します。回転させるには、Zボタンまたはアイコンを使用します。


ツールのUIから、ユーザーはそれぞれの異なるモード毎に、より多くのアクションにアクセスすることができます。例えば、Selectモードに戻り、UIから「Delete Agents」を押して、それらを削除します。エージェントタイプを変更するためのオプションもあります。

    





入力ポイントの使用

geoノードをAgent Groupノードに接続すると、Points Layoutモジュールは入力メッシュの入力ポイントを使用して、エージェントを生成します。

atoms_pointsLayout_directionおよびatoms_pointsLayout_agentType pointアトリビュートを追加して、エージェントの方向とエージェントの種類を制御できます。 atoms_pointsLayout_ids pointアトリビュートを使用してエージェントグループIDを渡すこともできます。


エージェントグループを作成します。Points LayoutモジュールとState Machineモジュールを追加します。 agentGroup1ノードの入力としてグリッドを追加し、Grid Sizeを1000に設定します。次に、グリッドとagentGroup1ノードの間に「Attribute Create」ノードを追加します。Attribute Createノード内で、名前をatoms_pointsLayout_directionsに設定し、タイプをVectorに設定します。

直ちに、Valueを1,0,1に設定します。エージェントをグリッドメッシュにランダムに配置するために、grid1オブジェクトの後にScatterノードを作成して、試行します。



Mesh scatter layout

Mesh Scatter Layoutは、入力メッシュ上にランダムにエージェントを作成します。
グリッドを作成し、150、1、150にスケールします
エージェントグループを作成し、MeshScatterLayoutモジュールとStateMachineモジュールを追加します。
「Radius」フィールドを50に設定し、Iterationsを500に設定します。メッシュをgridに設定します。そして左の画像のように行列を設定します。 objグリッドではなくsopグリッドをスケールした場合は、matrixを1のままにします。


タイムスライダのRewindボタンをクリックすると、エージェントがビューポートに表示されます。
Playボタンを押してシミュレーションを実行します。


Curve layout

Curve layoutは、入力カーブに沿ってエージェントを作成します。
カーブを作成し、それを150、1、150にスケールします。
エージェントグループを作成し、CurveLayoutモジュールとStateMachineモジュールを追加します。
作成したカーブをCurveLayoutモジュールの「Curve」アトリビュート内に設定します。


タイムスライダのRewindボタンをクリックすると、エージェントがビューポートに表示されます。
Playボタンを押してシミュレーションを実行します。


Stadium layout

Stadium Layoutは、エージェントの舞台を作ります。
エージェントグループを作成します。アトリビュートエディタが表示され、Agent Groupノードが選択されていることを確認してください。
「Add」ボタンをクリックして、StadiumLayoutモジュールを追加してください。


以前に、「AgentType」フィールドに入力したエージェントタイプ名を入力します(つまりtestRobot)。
「Size」フィールドを(500,500,100)に、ShapeTypeを1に、Stepsを5に設定します。

「Add」ボタンを再度クリックして、StateMachineモジュールを追加します。




Offset behaviourモジュール

Offset Behaviourモジュールは、既存のbehaviourを変更するために使用することができるため、grid layoutモジュールまたは他のlayoutモジュールと共に使用できます。 「Agent Layout Tool」でもサポートされています。

  • エージェントグループを作成します。
  • Grid Layoutモジュールを添付し、Sizeアトリビュートを(5,0,5)に設定します。
  • State Machineモジュールを追加します。
  • Offset  Behaviourモジュールを追加します。
  • エージェントグループを選択し、AtomsメニューのAtoms > Tools > Agents Layout Toolから「Agent Layout Tool」を有効にします。
  • Qボタンを押すか、アイコンを使用して、エージェントを選択してください。
  • Aボタンまたはアイコンを押し、moveマニピュレータを使用して、シーン内のエージェントを移動します。回転させる場合は、Zボタンかアイコンを使用します。
  • Agent Filter Behaviourモジュールを追加します。
  • 「Agent Layout Tool」を再度展開します。
  • いくつかのエージェントを選択します。
  • Agent Layout ToolのUIから「Delete Agent」ボタンをクリックします。
  • シーンを巻き戻して、Playを押します。

   


Copyright © 2017, Toolchefs LTD.