[Custom Build] Blender Fracture Modifier

Ahh okay, so I guess I misunderstood what multipass was.
My attempt was to pass a small ghost trigger through a bunch of generated ‘smaller shards’ on the side of a tall column so they look like they fall out on their own, and that weakens the structure. The top clump of shards leans, breaking, then collapsing on itself.
Unfortunately, ghost triggers can’t break constraints, and shards of an object can’t trigger other shards in that object (unless I’m doing something wrong).
For reference, I’d like to get something similar to this video from the last LOTR movie starting at 1:46 (spoilers for those who haven’t seen it yet for some reason).
I tried using the advanced trigger settings to achieve what I want, but nothing seemed to help. I’d appreciate any advice on this subject. I do enjoy using this awesome tool. Thanks!

Thanks for your reply, never thought about making the ground a stop trigger, but it is already an extruded mesh and it is set to convex hull, will do some more testing, thanks again!

do you have something like this in mind ? :slight_smile: pillar1.blend (5.7 MB)
it is a ghost trigger, and the trigger target has Dissolve constraints enabled. But, i needed to tweak a while with the angles for example to get the desired effect.

Yes, that’s the sort of thing I’m going for. However, I broke down your file and tried to recreate it in my own scene, and still couldn’t get it to work. I see you’re doing something with a cluster group of empties positioned at various points, and I’m guessing they’re supposed to define clusters? Well, in my scene they seem to have no effect, and after copying all your setup (as far as I can see), my ghost trigger still simply passes through with zero effect. Steve_Pillar.blend (6.4 MB)
I appreciate your help, I’ve been trying to get this effect to work for quite some time now!

Try to reduce the search radius so that constraints are not spanning the entire structure, since those located outside of the trigger won’t be dissolved but they keep the structure together nonetheless.

I also recommend to use special breaking settings only when really needed. It’s best practice to use classic breaking thresholds at first as they are force based and special breaking only as a fallback when breaking thresholds can’t provide the desired results.

Adjusting the search radius down from 1.0 to 0.1 or so just gets me back to the way it worked before there were any constraints applied, i.e., only the shards touched by the ghost fall, leaving hanging clusters above. Does the scale of the empties have anything to do with it? I tried messing with that and it didn’t seem to have any effect, but I thought I’d ask.

As I understand it, normal constraint-breaking doesn’t work if you’re using a ghost trigger, so it would seem some type of special breaking is necessary in this case.

Edit Weirdly, everything in scorpion81’s project file works as it should when I open it, but if I copy/paste the fractured object and its children into my own file, it no longer works, the whole thing just explodes when the trigger touches it. Which makes me think it could be a trigger setting, but there aren’t that many to screw up.
Also, if I change the position of the smaller shards and execute fracture again, that seems to break it as well.

You are right, Steve, the main problem wasn’t the search radius but the fact that something didn’t work right with that Cluster Group thingy. I assume cluster constraints ignore dissolve triggers for some reason, maybe Scorpion can double-check if this is a bug or a limitation. I have removed all the unnecessary stuff and then it works.
Steve_Pillar.blend (5.8 MB)

Note that if you use Dissolve Constraints together with “Animated” then the upper part of the pillar probably won’t react as one would expect. You need to leave the entire structure active in order to make it collapse in a natural way without parts floating in the air.

Alternatively to making the whole thing active, as Kai proposed, you could make a search radius of 10 in this case. This way everything should be connected, but if clusters are being used, those should be taken into account there as well. The high radius ensures that everything is bound to clusters (because shards outside the radius might kept “unbound”)

The cluster group empties define the “cluster cores” around which other shards nearby will be aggregated. So if Core 1 is closer to shard X than Core 2 for example, Core 1 will get it. Besides to using the high search radius i moved the cores closer together, so to hopefully define the border between them where the small shards are.

Additionally to that i set cluster percentage to 100 (seems to be above 0 in this case only, so together with Active Broken and Dissolve an activation happens) and I also set a small angle of 0.15 to force slightly moving / rotating shards to break off and increase the movement, so more breaks off etc.

That is because the ghost trigger with dissolve takes clusters into account and will dissolve the constraints in a way the clusters are being kept together, only intercluster connections will break. Because this is not enough to start the upper half moving (it seems to “rest” perfectly on its bottom counterpart) the small angle ensures shards start breaking away.

Edit: Hmm, just noticed that “Dissolve Constraints” is even counter-productive in this case. The collapse works even without it (only via the angles and the activation which happens by the ghost trigger). I changed the position of the fracture a couple of times, but with dissolve enabled it didnt work out. Also, not exactly sure why after copying the object something exploded… maybe forgot one refracture after copy ? since refracture is an expensive operation, it will only happen when the operator is invoked. (button click)

Steve_Pillar1.blend (3.1 MB)

Hi @JTA
I cannot get the latest appleseed plugin registered in Blender FM under Windows. Under Linux there was no such issue. When I try to add the blenderseed addon in the user prefs Blender 2.79b FM build 2018-04-17 uses up one processor core fully and gets stuck (see screenshot). The same scene renders perfectly (without fractures) in a standard 2.79b build with the same blenderseed addon.

The scene file I used can be found in the appleseed forum:
https://forum.appleseedhq.net/t/fracture-modifier-branch-of-blender/489/4

Hmm, i tried just now in a Windows 10 guest in Virtual Box, blenderseed 0.8.1 (the latest) seems to register fine here in the latest (self-compiled) 2.79b FM build as well as in the graphicall FM build.

First tried with a build compiled on my own, then with the graphicall FM build. The “Sympy module found” line indicates that it could be the graphicall build or the one from the download site. Was first assuming something might interfere there, but it worked fine here.

Strange… otoh, i only tested in VBox (rendering works there fine too, only slow lol), but… cuda / cubin issues should not happen yet at registering time, only at rendering time (if there are any issues in that direction at all).

So, if you have used the graphicall build with FM, you might have a “config” folder below the 2.79 folder. This means addons, recently used files, userprefs etc are local for the FM build only and stored in its directory. If there was no config folder present, addons would install to AppData/Roaming etc. Could this be the culprit maybe ?

Atleast in my tests first i used the compiled build which should have installed this globally, then i tried the graphicall build which installed it locally. But oddly, both attempts worked fine, and after specifying the appleseed bin directory even started rendering.

Thanks for the quick reply.

I used the FM build from the download site, not graphicsall. But I made a local config folder in it not to mess with my standard Blender installation.
Also, I used the latest Blenderseed from github, which works fine with my standard Blender 2.79b and has no registration issues, also none under Linux.
I will try with the last official Blenderseed, maybe the the code changes introduced since then into the git-master cause this issue.

So the issue is the blenderseed addon is not registering when ticking the activate box in user prefs using the FM build? I get this error in both FM and official release with the latest blenderseed code in development but not the official 0.8.1 addon code. You’ve probably seed my mention of this on appleseed’s discord blender channel.

Did you also have any rendering problem at any time or were you just showing everything works in official including rendering? Thanks for trying out the FM and testing the workflow with Appleseed/blenderseed. I am doing extensive testing of this workflow since this is a render engine I want to stay with.
Fracture ON!

Yes, exactly. I only get it with the FM build under Windows, Blender 2.79b official build works fine with blenderseed.

No other issues otherwise. In Linux also everything works fine.

Hmmm, 0.8.1 installs fine for me on windoze 10 and FM…with the config folder in 2.79 folder also…

Ahhh, now I’m able to replicate it. You’re right, even without ‘dissolve constraints’ it does work. Thanks for digging into this with me!

Made a small presentation of the Blender Fracture modifier at work, everyone was impressed, especially on how easy it is to setup compared to Houdini, only thing that I need to figure out is how to stop the whole thing more smoothly, but its getting there!

hmm link broken ?

Edit: looks cool :slight_smile:

Hmm, says here that the video was not processed here, my bad, I should have checked first!

EDIT: Its working now!

Here is the file as well brick_wall_test3.zip 11mb

I am also trying to have the mortar pieces stick a little more to the bricks.

Houdini is more flexible in all honesty, but this is very powerful and a lot simpler to setup, I loose pretty much everyone when I try to show that kind of workflow in Houdini!

I made another test file myself where the bricks and the mortar are glued together (and are being fractured). There are a couple of notes inside the blend. But note, the ground if being a stop trigger, only stops shards which actually touch it and which are below the linear / angular deactivation speed then. I might add a feature which propagates the stopping effect to shards which were stopped, so they can stop other shards and so on.

brickwall1.blend (7.4 MB)

Thanks for the file and taking the time to look at it!

Interesting setup, some good tips too, and yes, a way of stopping shards that are not on the ground would be useful, example, when a brick wall explodes, the blast might push some of the bricks far enough that they end-up on the ground, but the blast would also weaken the mortar of the bricks around the main explosion area, releasing more bricks that would then start to fall and pile-up, I watched tons of building explosions over the years, there is a lot going on in the aftermath of an initial explosion.

On my setup, I fractured the bricks with only 10 shards, because I did not want them to break-up too much, I fractured the mortar with a thousand shards, I applied both fractures, combined them, then fractured again, then applied constraints, and yes, I figured that only the shards that touches the ground will stop if the ground is set-up with untrigger, only way i found to stop everything else was to key-frame the physics on and off, which is far from being a good solution.

Again, thanks for your time Martin, much appreciated! :+1: