Houdini 16.5 Crowd simulations

Crowd force weights

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

On this page

Overview

Crowd steering force nodes, and the default forces on the solver, each have weights. At any given moment, an agent can potentially be affected by multiple forces (for example, both "follow this path" and "avoid obstacles"). The crowd solver deals with multiple forces by normalizing the weights (scaling them so they add up to 1) before multiplying the individual forces by them.

Example

Imagine an agent has the following potential forces that might apply to it at a given moment, with these weights:

Force type

Force amount

Weight

Avoid

10

1.0

Follow path

1

0.5

Align

2

0.2

  1. The solver normalizes the weights so they add up to 1, making the avoid weight 0.59, the follow weight 0.29, and the align weight 0.12.

  2. The solver then multiplies the force amounts by the normalized weights, so the avoid force is 10 * 0.59 = 5.9, the follow force is 1 * 0.29 = 0.29, and the align force is 2 * 0.2 = 0.4.

  3. Finally, the solver adds the forces to get the overall force on the agent.

Using weights

All forces in the agent’s current state (and any forces that apply to all agents regardless of state) are applied to the agent. It’s not possible to have a behavior that completely overrides any other behavior. However, you can use a very high weight (for example, 10), so that when other forces are normalized, they are made unnoticeably small.

Particle forces

You can use regular particle force nodes and other DOPs inside a state to define behavior, not just crowd-specific "steering" nodes. However, non-crowd-specific nodes don’t have Weight parameters, so they will not be subject to the normalization described above. Instead they will simply be added on to any other forces on the agents.

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.