Tool Dev: Crowd Composer


The Crowd Composer is a tool I built for myself to deal with various Crowd Tasks, which require Alembic Instances instead of Crowd Agents + Simulation. It is mainly working with a custom Python Viewer State and accompanying Radial Menu (albeit very hacky).

Most often it is not beneficial to go the full Crowd Simulation route, if you have no direct interaction with each other or the environment, and depending on the Render Engine used, there might not even be a Crowd Procedural to efficiently load Crowd Data (looking at you Arnold).

Almost half of my time went into improving the UX, making it easy and plug and play.
Therefore the Crowd Composer handles these topics:

Adding new Character:
Adding a character is as easy as piping in a bunch of named packed alembics into the first input and going into the viewer state. There is collision detection with ground plane fallback.

Changing Placed Character:
In order to easily change what you placed or what has been input in the Second Input there is a Change State. Being able to select any Character and change all settings, even which Character and Action.

Removing Character:
A removing state that takes care of deleting Character (Tagging input points for deletion or removing an entry from the multiparm)

Chaining together Point Clouds:
As the Tool outputs point clouds with correct IDs, chaining together Crowd Composer easily or just merging the outputted point clouds together.

Dynamic Radial Menus:
Quite a wacky solution, but the asset features dynamic radial menus based on what you input into the first input.