jakexyzabc Posted September 7, 2017 Share Posted September 7, 2017 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 Quote Link to comment Share on other sites More sharing options...
Dam Posted September 12, 2017 Share Posted September 12, 2017 (edited) 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 September 12, 2017 by Dam 1 Quote Link to comment Share on other sites More sharing options...
jakexyzabc Posted September 12, 2017 Author Share Posted September 12, 2017 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? Quote Link to comment Share on other sites More sharing options...
Dam Posted September 13, 2017 Share Posted September 13, 2017 (edited) 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 September 18, 2017 by Dam Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.