Jump to content

RBD Fracture position when not active


meeotch

Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 by Mitch Deoudes
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...