Jump to content

varying instances of a rigged character


goshone

Recommended Posts

In my case, I am working on a flock of birds. I want to vary their flapping in terms of speed and ideally adding some randomness. My plan is to rig the bird in Houdini, then using CHOPs to procedurally animate the wings flapping. Ultimately this rig would be instanced to particles which have the info to change cycle speed, and add slight noise to the channels for variety.

I am able to get a simple rig to vary based on the point attributes, but the deformed geo that is bound to the bones does not change per instance (at render time). I can verify the bones are being driven properly by parenting geo the the bones (instead of binding). It does work as expected with copy stamping, but I am worried that may be too heavy if I get up to a large count of copies.

So a couple of questions...

1. Is instancing the right way to go, or should I use copy/stamping? If instancing should work, what are the steps to get the deformed geo to update properly per instance?

2. Any advice as to how to integrate CHOPs into the mix. I can stamp the bone rotations into CHOPs (i.e. the period of a wave CHOP), would this work with instances? I have not had any luck there. The overall idea is based on a basic cycle, with offsets, lags, noise, etc. to vary up each copy.

thanks

Link to comment
Share on other sites

If you only want a little bit of variation then it might be better to cache out 10 or so animation cycles. On your particles store which cycle and which frame of the cycle to get, then you can instance an empty object onto the particles with a delayed load geometry shader and use the instancepoint() expression on the shader to load a certain bgeo on each instance...

Does this make sense?

Link to comment
Share on other sites

thanks for the reply.

Your suggestion does make sense. My initial approach was similar to this, but was one long cycle with variations within it. The issue I was encountering was related to the motion blur, and what happens to the blur when you try to speed up (or slow down) a geo sequence.

I could store the point velocities in the geo when i write it to disk. Problem is if I speed up the cycle, I still have a relatively small blur for the action.

If I use a trail sop to recalculate the blur, I end up getting this long exaggerated blur only in the direction of the points at that frame (see pic). I was unable to get rid of this, but a rigged wing will blur correctly, even when sped up considerably. Any thoughts on how to correct the blur problem, because that would be a lot simpler??

thanks

post-4407-13082458588_thumb.jpg

Link to comment
Share on other sites

Would be much better with deformation blur, the delayed load shader takes a second bgeo which is the blur frame.

Although, I don't think you could do more than 2 time samples with the delayed load thing, so the wings can't be moving super fast.

Maybe for ones close to the camera you have a live rig and far away you have the delayed load thing..

Link to comment
Share on other sites

  • 5 months later...

Hatrick and I sorted this out, you may want to take a look, [Copy Stamp Channel Animation], pretty cool idea actually. And I think sam.h is right, the best way to go is only keep hero models live and delay read the rest, but with this copy stamp you can create your 10 versions of animation with 1 base animation...

Edited by 3dbeing
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...