vikola Posted yesterday at 06:29 AM Share Posted yesterday at 06:29 AM (edited) Hi houdini expert! I'm in Houdini 20.5. I’ve got a pre-fractured sphere made with rbdmaterialfracture → rbdpack. Using copytopoints, I duplicate it on some points that i had previously cached. The spheres are emitted over time with emitRBD, so they don’t all exist from frame 1. What I want is for each sphere to explode the moment it’s emitted, with the force starting from that sphere’s center and affecting the individual fragments, not the sphere as a single packed piece. After copytopoints I’ve got an rbdunpack connected to an rbdbulletsolver. With only the gravity each sphere, when enter in the simulation, start falling on the ground and the breaks. How can I make each emitted RBD sphere explode outward from its own center, with the force applied to its fractured pieces instead of the packed object as a whole? The explosion should start in the first frame each ball enter in the simulation. Thank you!! SphereExplosion_V04.hiplc geo.zip Edited yesterday at 09:40 AM by vikola Quote Link to comment Share on other sites More sharing options...
hannes603 Posted 8 hours ago Share Posted 8 hours ago untitled.mp4 something like that ? just create veloctiy from the center and control the intensity by age ramp 1 Quote Link to comment Share on other sites More sharing options...
vicvvsh Posted 4 hours ago Share Posted 4 hours ago Hi, insert an attribute wrangle into connection wire of the rbd bullet solver sop first input, copy and past this code: vector centroid = getbbox_center(0); vector vel = normalize(@P - centroid) * ch("scale"); v@v = vel; It should work in your scene without other changes. 2 Quote Link to comment Share on other sites More sharing options...
vikola Posted 1 hour ago Author Share Posted 1 hour ago 2 hours ago, vicvvsh said: Hi, insert an attribute wrangle into connection wire of the rbd bullet solver sop first input, copy and past this code: vector centroid = getbbox_center(0); vector vel = normalize(@P - centroid) * ch("scale"); v@v = vel; It should work in your scene without other changes. Thank you! The only problem I've notice is that the centroid is the same for every new sphere emitted, so it gives a direction more than an impulse from it's center. I've achieved I think in some way, but I'm not sure is the best way to do it, as I'm farily new in houdini. What I did was with a sopSolver inside rbdBulletSolver connected to the presolve output dopImport->attRandomize @v min(-1,-1,-1) max(1,1,1) ->attWrangle: int was_active = point(1, "active", @ptnum); int now_active = i@active; if (now_active == 1 && was_active == 0) { v@v *= chf("impulse_strength"); } Now my problem is to create smoke from the debris, as DebrisSource is not reading the incoming geometry as they are not in the scene from the beginning, so the rest frame is not working. Any suggestion is welcome 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.