Jump to content
jakexyzabc

Stop geometry from deforming further after Active?

Recommended Posts

jakexyzabc    0

I need to keep my geometry from deforming further after it has become active in a rbd simulation

The setup is as follows:

I have a piece of geometry being shattered by booleans.  The geometry has thickness.

That geo goes into a wave deformer that is animated.  

Separate geo is used to make certain pieces of the fractured geo active in the rbd solver.

When any shattered pieces are active and released they appear to still be affected by deformer. ... They stretch because of the deformer.

I would like them to retain shape, size and volume as they are on the frame they are made active.

Thanks, Jake

Share this post


Link to post
Share on other sites
Dam    5

Hi, try something like this, in a wrangle after packing the pieces and defining the @active attribute by your roules, set (i@deforming = 1-i@active) and in the rbdpackedobject node turn on the toggle (override attributes from sop) make sure you have in the string field at least (active and deforming), that should work. Cheers - Dam

 

Edited by Dam
  • Like 1

Share this post


Link to post
Share on other sites
jakexyzabc    0

Thanks!

Yes, this works.

Another question I have is this, my simulation is being done on proxy resolution pieces. I am transferring position and rotation data to the hi-res pieces after the sim.  Is there a way to make the Hi-res pieces that were made active in the sim stop deforming?  Basically transfer that attribute from proxy to hi-res?

 

Share this post


Link to post
Share on other sites
Dam    5

For transfer the @active or the @deforming attribute a good way is by name: pipe in the first input of a wrangle the highRes and in the second the lowRes, the code below shoud make a correct transfer of those attributes from the low to high as long the @name it's same for both pieces sets, but for deform the highRes like your lowRes, you probably would need a skinning process, this can be done using a foreach sop a point deform and @name attribute for isolate the pieces by the for loop iterations, unless you're planning a different approach :) - cheers Dam

int pt = findattribval(1, "point", "name", s@name); // matching by name 

i@active = point(1, "active", pt);
i@deforming =  point(1, "deforming", pt);

 

Edited by Dam

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

×