meeotch Posted November 19, 2008 Share Posted November 19, 2008 Background: what I'm trying to do is to set the "active" status of RBDFracture pieces based on their world space positions. I.e., so that I can keyframe an overall animation, then have the pieces turn dynamic when they get near the ground. The test setup: I have a box that's copied to the points of a sphere. The whole thing is keyframed, and also made into an RBDFracture. The RBDFracture has its Active parameter keyframed to turn on at frame 10. The problem: the Position "p" and "t" data on each fracture piece don't contain the actual position of the RBD piece when the piece is not active. Load up the attached sample file, and watch the position of "circle_object1". After frame 10, it tracks properly, but before frame 10 it just follows the parent object. The solution? I'm guessing it involves getting the world space position of each fracture group from *outside* the DOPnet, but I'm not quite sure how to do it. (Bit of a houdini n00b.) Note that eventually, I want to acess this info in an expression on the RBDKeyActive node (I.e. from *inside* the DOPnet), rather than from the circle object. Also note that I'll eventually be doing this with many, many pieces - which is why I don't want to create an RBDKeyActive node for each piece, or enter the keyframes by hand. dopPosition.hip Quote Link to comment Share on other sites More sharing options...
andrewlowell Posted November 19, 2008 Share Posted November 19, 2008 This would be something that is probably easiest addressed before DOPs. Here would be my workflow: a. assign groups for RBD fracture b. anim of pieces c. an attribute (point or prim) on each piece which represents the height/tolerance/percentage that you wish to test for d. delete everything not meeting that criteria e. calculate the frame which the pieces first met that criteria f. delete everything after that frame, so .. each piece would be not deleted ONLY on the frame which meets that criteria and not after that frame. g. feed into RBD fracture with the creation frame set to $FF Quote Link to comment Share on other sites More sharing options...
meeotch Posted November 19, 2008 Author Share Posted November 19, 2008 (edited) Thanks for the suggestion. I'll look into it more tomorrow, when I'm back at my workstation. In the meantime, I do have one question: It seems as if this step: g. feed into RBD fracture with the creation frame set to $FF has a similarity in technique to my current setup. That is, you'd need to grab a piece of fracture-group-based data (the "activation" frame) from within the DOP network - in this case, from the Creation Frame parameter on the RBDFracture node. This is precisely the piece of the puzzle that I'm missing. I was digging around in the details view from within the DOP net, but couldn't seem to find much of the data that was originally in the SOP output. (For instance, I thought of coloring the pieces within the SOP net, then activating them based on color within the DOP net - but I couldn't spot the color info.) I imagine there's a way of grabbing that data from the SOP net & hooking it back up, but I'm unclear on the process. Could you expand? EDIT: oops - I see now that you said $FF, not the "activation frame". Wasn't paying attention. I'm still curious about the question above, but I'll try your suggestion of never passing the non-active pieces into the DOP net at all. Edited November 19, 2008 by Mitch Deoudes Quote Link to comment Share on other sites More sharing options...
anakin78z Posted November 19, 2008 Share Posted November 19, 2008 One thing I've gotten into the habit of doing is to move all the fractured objects to 0 and creating points in their original position. Then, in dops, move them back in the rbd fracture dop by setting their position based on the point position of the reference points. I set it up using the foreach sop which moves each group based on it's centroid and adds a point based on the original center. 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.