Scatter and Attribute Interpolate on Animated Geo, Group Issues

   3818   5   1
User Avatar
Member
4 posts
Joined: June 2017
Offline
Starting to feel like this problem can be fixed in the nodes upstream but here goes:

I am trying to fracture a geometry that is animated, group specific parts of the geometry, and keep these pieces in their respective groups from frame to frame.

When scattering points on an animated geometry, which is then fractured, we can get the pieces to “stay in place” by using Attribute Interpolate node and Timeshift. This is great but when I want to create groups of the geometry such as “arms” things get difficult. The points and primitives in the arm group end up jumping to different locations, such as “legs”, each frame.

It seems to me that the primitives are following the positions given by point scatter, and transforming into the shape of the primitive that was in that location the previous frame.

ie, frame1: piece0 is at location a. frame2: piece0 is now at location b, was piece123's location at frame1.

I'm trying to avoid creating bounding boxes on the geometry that update which group each piece is in!

Thanks
User Avatar
Member
146 posts
Joined: Sept. 2011
Offline
I'm a little confused. Is the problem that you're scattering before you fracture, so after the fracture all your sourceprim / sourceprimuv attributes no longer refer to the right prims? Any reason you can't scatter after the fracture?

Or perhaps you could use another attribute (@Cd perhaps) to store group information during the fracture and then restore it later?

I'm not entirely clear on what you're trying to do. Can you upload a (simplified if necessary) project file?
User Avatar
Member
4 posts
Joined: June 2017
Offline
I think what you are saying is correct. I tried scattering points again after the fracture but it's the same problem. The points move and the primitives follow.

It generally works with simple examples, but once the fracture count increases and the relative pieces get smaller it begins to fail.

I'm not sure how to upload a simplified project file that doesn't include an imported animation so I've included a picture of the general idea. At frame 4, the point and primitive numbered 45 ends up at the knee.

Attachments:
GroupExample.png (1.1 MB)

User Avatar
Member
7850 posts
Joined: Sept. 2011
Offline
If you're points are moving going into the fracture, there won't be any coherence of pieces. The number of parts will vary from frame to frame, as the number of points does not have to equal the number of created parts. You can't expect indices to have any sort of consistency over time.

If you want a dynamic fracture, but still have ‘groups’ by section, you'll need to create them upstream of the fracture on geometry with consistent topology and then transfer it to the resulting fracture geometry. An easy way is to use the option on voronoi fracture for transferring attributes from the fracture points to the pieces.

The preferred way is to not dynamically fracture, mostly because it's slow. Fracture the T-Pose, and point deform all the way.

Attachments:
man_fracture_groups.hip.gz (59.2 KB)
anim.gif (2.1 MB)

User Avatar
Member
4 posts
Joined: June 2017
Offline
Hey jsmack, that's pretty much exactly what I was trying to achieve, thanks!

Going through your example and looking at your gif, did you get the second half of the animation by using a point deform to morph from the first fractured geometry to a second? Because it seems that once a bodypart is ‘grouped’ it remains whole and I'm not sure how to further fracture it other than creating more parts upstream - which might fall under the preferred way to do it.

Anyway, thanks to both of you and have a good weekend.
User Avatar
Member
7850 posts
Joined: Sept. 2011
Offline
Nope, I'm animating the amplitude of two different explode pieces, one grouped by ‘body part’ the other by fracture piece.
  • Quick Links