Skip to main content

Crowds

General

  • Foot locking set-up should be done in the agent prep node. For the terrain adaptation to work. Also when you want to isolate some ragdoll to only some parts

  • Crowd agents are packed primitivs

  • Crowd source have an initial velocity. that's why they are moving even at rest state.

  • Clip on SOP level. State on DOP level.

  • Terrain adaption can be within the Crowd Solver or through the Adapt To Terrain

  • Agent Clip can contain several motion fbx files

  • Agent > Agent Clip > Agent Layer > Agent Prep > Collission Layer > Agent Cache > Configure Joints > Crowd Source

  • Agent Prep is for the foot plant set-up

  • Houdini includes several useful POP forces created to work with crowds. Nodes of this types have names starting with “POP Steer”.

  • Crowd Source Node: Randomzie Initial Velocity is better than Ranomize Initial Heading

  • Agent Clip Properties: To make in place animation.

  • Change State

  • Don't ever use initial velocity. Just use the locomation to translate the character.

  • Grouping of States doesn't seem to work.

  • Gait Speed Paramter is only useful if you are not using locomotion

  • Agent Transform Group

  • Agent Edit helps on previewing the current agent clip and agent layer.

  • Agent Clip Properties edits general parameters of the clip like loop range.

  • Agent Clip Transitions

  • Adding Metadata

  • building an automatic ball control.

    • inherent in agent terrain.
  • Need to Set the Start and End of the Clip. Otherwise it won't loop. So much for locomotion!

  • intrinsic: pointinstance transfrom set to 1 by default on agent primitives,.

Rag Doll

  • can add pop forces in the ragdoll solver. ragdoll also has motor options to have art direct rag doll

Terrain Obstacle

Workflow

  • Building Character
  • Creating Crowd
  • Set Your Blendshapes
  • Setting Transitions
  • Corrective Shapes

using crowd system to blend the agent mocap transition.

// setting i@trigger to 1 will enable
// setting i@trigger to 0 will disable
i@trigger = -1;

string handle_path = "op:/obj/geo1/dopnet1:crowdobject1/Geometry";
float clip_len = agentcliplength(handle_path, @id, "standing_up_01");
if ((f[]@cliptimes[0]/clip_len) > 0.65) i@trigger = 1;