magneto Posted November 15, 2015 Share Posted November 15, 2015 Hi, Is using the Debris shelf tool the proper workflow to emit debris? I tried it on a fractured packed prim model and the debris flew everywhere, very fast and then clustered. Also I find the edge pattern is very noticeable in the result. What's the best debris workflow in Houdini for RBD packed object sims? Thanks Quote Link to comment Share on other sites More sharing options...
Tyfx567 Posted November 25, 2015 Share Posted November 25, 2015 (edited) The way I have been doing it is deleting geometry by velocity threshold, unpack that geo (I think there is option to retrieve the velocity in the pack geo in the unpack node), then source from geometry in your pop source. I add turbulence to the birth group when they are born. That's just the way I have been doing it. You can make your particle system with above and have pieces instanced on them with the popinstance node. When you are ready for your instance geometry to collide properly in the sim you can delete the particles by age < .01 and do rbdpointobject because the rbdpointobject only likes geometry with one frame. So far the only way I have gotten somewhat random geometry on the rbdpointobject node is by setting $F in your creation frame and having your debris geometry centered at the origin and have it deleting non-selected by ($F-1)%(number of piece groups). http://www.digitaltutors.com/tutorial/2003-Advanced-Rigid-Body-Dynamics-using-Proxy-Objects#play-47991 I struggle a lot trying to get random geometry instanced on particles do you or anyone else know of a good way to get rbdpointobject working with random geometry on particles? Edited November 25, 2015 by Tyfx567 1 Quote Link to comment Share on other sites More sharing options...
Atom Posted November 25, 2015 Share Posted November 25, 2015 (edited) @magneto:Try disabling Constant Activation on the birth tab and use an expression on Impulse Activation. A simple IF expression on Impulse Activation can help control debris. (remember to increase impulse count or you won't see anything). if(($FF > 8 && $FF <48),0,1) This should produce a small burst of debris particles over a short frame range. Initially I though this would only emit particles on frames 8-48, however, I discovered that it actually causes particles to emit for the first 8-48 frames of when they are born. If you are using this with a fracture it means each time a fracture occurs you get a burst of 40 frames of debris. @Tyfx567: I have been playing around with generating a random index attribute on a point using VEX, then stamping that index into a delete non-selected from a merged source which leaves only a single random piece or element. piece`stamp("../copy1","debris_index",0)` Edited November 25, 2015 by Atom 2 Quote Link to comment Share on other sites More sharing options...
Tyfx567 Posted November 26, 2015 Share Posted November 26, 2015 Thank you Atom that is a good way. What does your object merge consist of? Is it, say, box1, box2, box3? Or sphere1, torus1, with mixed names? This way I know how you are deleting. @magneto Also I think I figured out how to use multiple random objects for rbdpointobject. so you make a birth group originally in particles then delete nonselected that group to get your first frame emission. I was telling to delete by age which is a weird way of thinking. To get random objects on rbdpointobject without doing the $F in creation frame is by making a string point attribute called instance and saying something like: @change = int(fit01(rand(@id), 0, 4)); string mainpath = "op:/obj/box_object1/instance"; s@instance = mainpath + sprintf("%s", @change); Given that your objects are named the same way. I'm not sure how I could do this with groups though. That would be very nice to learn how to do. Using the name attribute like piece1, piece2. That way we can create debris in houdini and there is no need to export into maya the debris pieces, seperate them then reimport, then make string attribute for instance using this method. It would possibly save a step. 1 Quote Link to comment Share on other sites More sharing options...
Atom Posted November 27, 2015 Share Posted November 27, 2015 (edited) @Ty: The index is just an example if your objects share a common name, such as fracture pieces, however, you don't have to create an integer index. You could have the wrangle create the full string randomly from a list of named objects and stamp that directly. Edited November 27, 2015 by Atom Quote Link to comment Share on other sites More sharing options...
Tyfx567 Posted November 27, 2015 Share Posted November 27, 2015 @Atom I just meant in your current situation how you were deleting it. 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.