Houdini 16.5 Crowd simulations

Interaction With Other Solvers

Tips on setting up interaction between agents and other types of dynamics.

On this page

Overview

Currently, Houdini only supports one-way interaction from agents to other solvers. For example, an agent can knock over an RBD object or splash through water, but an RBD object can’t knock over an agent.

General Tips

  • On the Agent ROP or Agent SOP that was used to create the agents, ensure that the Generate Collision Layer parameter is enabled. This will create a layer that contains a low-res static shape for each bone in the rig, which can be used for efficient collision detection.

  • Use a Delete SOP to remove distant agents that will not collide with any objects in the simulation.

Bullet Solver

  1. Use the Agent Edit SOP to switch the agents' current layers to their collision layer, and use an Unpack SOP to unpack the agents.

  2. Use the RBD Fractured Object shelf tool to create RBD objects for the shapes from the agents' collision layers.

  3. On the newly-created RBD Packed Object DOP, set the Initial Object Type parameter to Create Animated Static Objects. This will cause the RBD objects' transforms to be updated each frame to match the motion of the agents.

  • Consider changing the Geometry Representation parameter to a primitive shape (such as Capsule or Box), which can improve performance.

FLIP Solver and POP Solver

  1. Use the Unpack SOP to unpack the agents.

  2. Use the Deforming Object shelf tool to bring the collision geometry into the fluid or particle simulation.

Advanced: simulation on top of agents

  • If you want to create secondary simulation (for example, simulated clothing) on top of agent geometry, currently you must unpack the agent geometry.

  • You can use VEX or Python functions to calculate the positions of agent body parts (for example, if you want to generate particles flowing from the top of agent heads) from the agent attributes. You can see an example of this in this example scene file:

    $HH/Help/files/joint_positions.hip.

Crowd simulations

Getting started

The moving parts

  • Agents

    About agents, the moving "actors" that make up a crowd simulation.

  • States

    About agent states, the virtual "mood" of each agent which controls the agent’s animation and which behaviors it runs.

  • Clips

    How to associate animation with agents in certain states.

  • Triggers

    How to specify conditions that cause agents to change from one state to another.

Next steps

  • Foot planting

    How to set up agents to adapt their animation to terrain and prevent skating.

  • Transition graphs

  • Attributes

    Useful attributes for reading in triggers, or that you can set to affect behavior.

  • Sensors

    How to make agents behave differently based on their virtual senses.

  • Diversity

    How to create a more realistic crowd by making agents look and act differently.

  • Weights

    How the Houdini crowd solver decides which behaviors to apply to an agent at each time step.

  • Terrain

    How to specify terrain geometry for agents to walk across.

  • Obstacles

    How to set up obstacles for agents to avoid.

  • Dynamics interaction

    Tips on setting up interaction between agents and other types of dynamics.

  • Ragdoll simulation

  • Adding direction

    How to assert manual control over different aspects of the crowd simulation.

  • Fuzzy Logic

  • Caches

    Tips for efficiently caching and loading crowd sims.