Jump to content

Recommended Posts

Hello i'm trying to learn how to use crowd and I think i've got the basics down but I have a few questions that I can't seem to find solutions to online. 

 

  1. How would I go about orienting a certain crowd state to be looking(whole agent) in a certain direction? I was under the impression it was the @orient attribute but no matter what value I feed into that just causes my agents to turn in some weird directions.
  2. Sometimes I have agents that are supposed to be standing still and some running. In some cases they get stuck going forward because they're blocked by a few standing still agents. What methods can I go about to fix this issue and have my agents realise they need to turn around or go around?
  3. Similar to question 2 I have certain objects I don't want my agents to go through no matter what. Steer Force is not absolute so sometimes my agents will force their way through said objects if they can't turn around sooner due to particle steer separate.
  4. Just to confirm this because it seems to be the case with any tests I do. Crowd Triggers through Custom VEX are static and to have them trigger dynamically, I have to use a Particle Lookup instead? 

I have a feeling questions 2-3 are solved through fuzzy logic but I can't find any sort of tutorial on learning it and the examples given in Houdini are'nt enough for me to get my head around. Any links to good tutorials for it would be appreciated.

Share this post


Link to post
Share on other sites

Here are a few tips.

I almost always create a companion goal position for every agent. You can animate this goal. It also helps with orientation because agents will face the goal.

One way to handle collision is by animating the goal along a path that already avoids collision objects. Once again agents following goal.

Crowd Triggers through custom VEX are always one frame off. They are evaluated on the next frame. So you can add attributes to agents and set the attributes on one agent from another. A classic example is a kill state in a combat system. One agent sets an attribute on another to indicate that it should transition to a dying animation.

I put together a tutorial that shows how to setup what I mention above. It also shows how to treat the frame change as a render loop (i.e. classic game engine) and calculate new values for agents every frame, for instance, distance to goal. The video also shows how to setup the custom vex attribute system fro transitioning between states.

 

Edited by Atom

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×