Bv4.11 - Cell fractured Rigid Body explodes, need it not to

I need to have a high density model stay solid until it hits the ground, whereupon it breaks apart. Due to size limits I had to strip it down to the most problematic group of objects. As far as I can tell it still explodes.

I need this to work.

EDIT*
From what I’ve seen so far it has something to do with self collisions. The uploaded model is not whole; there are dense meshes on the edges of the uploaded structure.

Setting rigid body constraints to fixed with breakable worked on some of the objects - not all, even though “ignore collisions” was on.

I noticed that setting the collision detection to mesh caused the explosion to be more violent than with convex hull. Odd, but could be a clue.

Rigid body constraints - In the constraints properties I noticed that the fixed constraint only takes 2 objects into account:
1st object and 2nd object. My objects are surrounded by several other objects, is it possible the fixed constraint still detects collisions with these?

(ONLY FOR REFERENCE, ignore):

  1. I tried removing the rigid body world as per a post on stack overflow.
  2. Tried the split impulse button, it was effective but not enough
  3. lowered collision margins to 0, it helped across half the mesh but it still loses its shape immediately
  4. there is a grid of 20 squares under collections in rigid body settings, which look like old layer/masking buttons but I haven’t found any explanation on how they work. I think I might have keyed one in one of the files.
  5. tried start deactivated, but that has some speed parameters I don’t get and didn’ have any measurable effect either.
  1. tried fixed constraint (rigid body constraints) - only worked partially with a few of the constrained objects flying around as soon as the animation started. This makes me think collisions are the cause, so if I can satisfy conditions to make “ignore collisions” work, it could solve the problem?

Alternatively, to fake it, is there a way to transfer momentum from a solid object to a group of objects in an animation?

upload.blend (3.7 MB)

You’re going about this wrong- you need to have two models, one broken and one not. At the moment of impact, you switch to the broken model.

First of all thank you for commenting; I thought about that, but that will only work if I can transfer the momentum from the solid object to the breakable one when that happens.

to put it into context, the uploaded model will be in free fall for 3-4 seconds. This carries an amount of momentum that will transfer to the pieces as they hit the surface. If this momentum can be faked I would be more than happy to replace the method.

I also tried a few more things, check the edited 1st post in a few minutes.

I found a solution:

Use the rigid body constraint ‘fixed’ to glue the objects together in a chain, then keyframe ‘Enabled’ and ‘Disable Collisions’. I don’t know how this solution compares to what you tried, but I thought I’d post it just in case.

  1. I created three cubes and positioned them all in a column. Let’s say A B C, from bottom to top.
  2. I moved some vertices around and snapped their neighbors’ vertices so that they were all not cubes but still looked like a single piece. I also rotated them slightly just to give the simulation something dirtier than a perfect column to contend with.
  3. I set the collision shape to ‘mesh’
  4. I added a ‘Fixed’ constraint to B. For first and second objects I selected A and B.
  5. I added a ‘Fixed’ constraint to C. For first and second objects I selected B and C.
  6. In the fixed constraint settings I selected ‘Enabled’ and ‘Disable Collisions’, and keyframed these settings for the start of the simulation.
  7. At the final frame BEFORE the object hit the ground I deselected those two constraint settings and keyframed them.

I never had to mess with collision margins, friction, bounciness, etc.

I noticed that if I keyframed the settings deselection to the very next frame after collision with the ground the objects would intersect with each other and land with a little bit of unenthusiastic motion. So the constraints MUST be turned off before the impact occurs.

Also, it may be significant that the bottom-most cube that impacts the ground doesn’t have a fixed constraint. Although…since the constraints are turned off before impact, maybe it doesn’t matter.

Edit: I am using v3.6.23, so it’s possible that we may not have the same settings, or there could be a new glitch introduced in a later version.

EDIT:

I set the collision shape to ‘mesh’

Hold on, testing this again…
Using 4.11

Yeah cubes work as fine on convex hull as on mesh, even when I ravage some polygons to make cubes imperfect.

There is some initial reaction where some cubes are pushed outward at the start of the animation, but nothing as radical as inncluded in the file.

I got it!
Kind of…

First - let me thank both of you; your contributions indirectly contributed by making me start trying unnecessary things. There is definitely something wrong with the software as results were unpredictable, but basically this made the disintegration (explosion) slow enough to be imperceptible:

  1. two groups: larger objects + small objects (upper file is only small)
  2. set larger obj group to mesh with 0 margin
  3. set their collision collection to 1st top square
  4. set small obj group to convex hull with zero margin
  5. set their collision collection to “not 1st top square” so they ignore that collection…
  6. on ground set collision to both collections
  7. repeat reloading animation with symbolic changes until satisfactory

This worked for some reason.
It seemed that individual (outliner) collections still reacted to each other; worst was when only larger parts still exploded when they weren’t even touching each other, and the smaller group just explodes when set to mesh - but not convex hull.

(… hopefully it stays this way)

I got a funny feeling earlier and tried loading your later-version file to see what would happen. It seemed to load fine, so I went ahead with it.

Unfortunately…the results were pretty weird. I believe there is a scale issue. I remember reading somewhere that this was an issue with Blender’s physics - you have to scale the simulation to match whatever internal calculations it uses.

Your objects have some weird spots with overlapping faces, or no volume, or ngons, etc. I tried some quick remeshing to ensure manifold shapes, but that didn’t fix the exploding effect.

Scaling everything up helped, but I started having objects fall through my container.

My crude test with modified cubes may have worked earlier because adjacent cubes were precisely vertex-snapped to each other, giving a clean start position for interactions. Having them slightly separated might cause weird boundary interactions that the simulation will struggle to properly compute.

I tried to stick your objects (well, a subset - I don’t have enough horsepower to simulate the entire thing) together-ish, trying to eyeball the proximity, but of course the geometry couldn’t be perfectly snapped. It did give a slightly more stable result, so that could be a clue.

One thing I could never get past was the weird swirling effects as objects moved through the air. It was almost like they were sloshing around in a tank of water. I think there may have been some global force operating at a bad scale or something like that…?

It might be worth it to try another test model where mating faces are all precisely snapped together so they start from zero. And possibly…disable metric and work with pieces ranging from 1-3 units rather than .001 units. I’m pretty sure that’s a big deal to the physics system.

Sorry if I got your hopes up earlier!

Glad you found a solution! It sounds like a bit of a nightmare, but I guess if it works it works…

Yes, there are physics issues. I think a Blender guru could iron out the kinks, but I’ve only ever really dabbled with Blender’s physics systems for basic machinery stuff.

I’ll try the scaling and units next, though I’ll have to focus on other things for a while.

The wobbling and floating is minimal, at least, but turns out I don’t know how to keyframe a settings change (enable/disable rigid body constraint) for ~300 pieces at the same time. Copying like I did for physics didn’t work, so unless dope sheet does it this will be the end of the journey I guess.

Yeah, I don’t know about a batch solution. For the section I was working with, my technique was to select an object, do stuff, hide it. Select another object, do stuff, hide it. After the last one I would unhide everything.

There is a ‘compound parent’ collision option you could explore. It looks like you would want to use an invisible object as the parent, since you’d be replacing the collision shape. I just did a quick test with it and it made a few separate objects behave like a single object.

Unfortunately you can’t keyframe the collision shape (I just tried). But…it sounds promising…

Here is a thought: Your cell fracture technique looks amazing, but realistically the pendant would probably only break into a few pieces unless you ground it under a stone. If you keep working on this, it would make your life a lot easier to redo the effect with fewer pieces.

Hi,

Here’s a solution that works with your base file …

Kogomat_upload1_jav.blend (4.5 MB)

I’ll let you clean up your pieces (Blender 4.2.16 LTS).

Good :blender_logo_64_png:

Thanks…?
But what did you do?

I don’t see anything that I haven’t done already. It looks like you just slapped a generic rigid world on it, set simulation length to 50 and it just worked. What changed? Matcap?

I have other pieces i need to use the solution for.

Hi,

I extracted your part “pendant_bool2_2_zun.007” from the “Physics - Rigid Body”.

I converted all your parts to “Convex Hull” and specified a very small “Collision Margin”.

Yes, it’s a Matcap (it’s a “3D View → View → Viewport Render Animation”).

You have to be very meticulous and rigorous in this kind of situation.

For the complete animation, I agree with what @Joseph said.

Could you share your unfractured object ?

Holy turds, @JaAlVir657’s solution works perfectly. I used collision margin .0002.

It turns out you can copy a property to an entire selection of objects by right clicking on it and clicking ‘copy to selected’. I am positive that option has been around for a very long time. I feel like such an idiot for changing properties one by one all these years.

Turns out my computer can run the entire thing just fine with these settings, too. So that’s cool.

This is awesome! I struggled with this for over an hour to try to figure it out.