エージェントのレイアウト - 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ボタンを押してシミュレーションを実行します。
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.