Behavior Simulation#
Overview#
The Behavior simulation extensions offer an Omniverse runtime framework for simulating human agents that perform locomotion and motion-based behavior tasks. It consists of:
omni.anim.behavior.core — Behavior Simulation Core: Runtime functionality for simulating humans agents.
omni.anim.behavior.ui — Behavior Simulation UI: User Interface tools for creating agents, prototyping and visualizing their simulations.
omni.anim.behavior.tree — Behavior Simulation Node Library: Node library for scheduling agent tasks from a Behavior Tree.
Agents simulation is driven by task requests. The result of tasks use Navigation NavMesh to constraints locomotion. The also may use built-in and custom defined animations. When you want to create a human agent, there is a BehaviorAgentAPI applied to the SkelRoot prim. This will allow you to issue tasks such as idle, move_to, move_along, follow, ride, pickup object, etc. Tasks run when the timeline is in Play mode. The tasks execute and progress until the have completed or failed. Issuing a new task will finalize the current task back to an idle task and immediately continue into the new task requested.
Key Features#
Agents: Human assets (SkelRoots) with the Behavior Agent API applied; they are simulated only while the timeline is playing.
Tasks: Motion-based actions (e.g. locomotion tasks and human interactive actions) that return a task ID; you can query status and cancel tasks.
Navigation: Agents use the Navigation (NavMesh) for pathfinding; a valid NavMesh is required for agents to be created and for move tasks to run. Users can author the navigation definitions to know the navigation areas.
Python API: Acquire the behavior interface, get an agent by prim path and call task methods (e.g.
idle,move_to,pickup_object). You can also get the agent state.Kit commands: Create and manage behavior agents, props, and task effectors from the stage (e.g. Create Behavior Agent Human, Apply/Remove Behavior Agent Human API, Apply/Remove Behavior Prop API, Import/Delete Custom Action).
Behavior Tree support: You can create a Behavior Tree to schedule actions for Behavior Agent tasks and use modifiers/conditions to constrain task execution for humans.