Search - User list
Full Version: mirroring agent clip animation
Root » Technical Discussion » mirroring agent clip animation
pstuart
Hi, there, is there a straight-forward process for mirroring an agent's clip animation? I tried scaling the transform by -1 in x, and it works up to the crowd solver, which resets the transform. I also tried cracking open the solver and turning off the part that clears the transform. That works until they turn into ragdolls and then it blows up. I'd prefer not to change the actual clips, since that seems like it might be error prone and rig dependent. Any other ideas?

Thanks!

Peter.
pstuart
Actually, the ragdolls blowing up was due to a different problem, so I have something working. I would prefer not to carry an edited solver around, is there a better way to do this?

Thanks!

Peter.
carthick
i was wondering the same thing. i am a noob. but anyway of flipping the curves than the transform ? i was thinking doing it in CHOPs but i dont know enough to figure things out.

would you have a example how you flipped it (transform and insider the solver?) much appreciated.
pstuart
Sorry, I can't put together a simple HIP for you, but this is how I set it up.

This is how you create a reflected version of the agents (this should be done before the Agent Source SOP).



Basically, just scale by -1 in the x direction. This will change the “transform” intrinsic of the agent primitives. Then rename the “agentname” so that they can live with the non-reflected agent types. They are then merged in with the regular agent types. Add them to the Crowd Source as you would any additional agent types.

To change the Crowd Solver (in your DOP network), you need to “crack it open”, i.e. right click on it and select “Allow Editing of Contents”. Dive in and change the “setup_new_agents” node inside. I commented out line 37 (I'm using 18.0.499) so it looks like this:

// Wipe the existing transform, since we'll use orient instead.
matrix3 identity = ident();
//setprimintrinsic(0, "transform", @primnum, identity); // THIS IS NOW COMMENTED OUT

There was probably a good reason for that code to be there so beware.

I think the assumption was that any transform on the agent itself is probably wrong, since the Crowd Source SOP creates point attributes to control transformation of each agent instance.

Hopefully somebody has a better solution.

Peter.
carthick
thanks !
pstuart
I found one problem with this. The locomotion doesn't take the agent transform into account, so if the locomotion has some translation in x it will be wrong for the mirrored agents. If you don't have much side to side hip motion, you might not notice it. I don't have an easy solution atm.

Peter.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB