Model falling down issue
#1
Hi

I'm trying to fake a roof explosion from the inside using a sphere. https://i.imgur.com/lNOkqpa.mp4
(I can't seem to set a direction using PBomb...)

The problem is the roof falls down before the sphere touches the roof. I've tried changing surface test distance, but once I set it low enough to freeze the roof in place, it only fractures 3-4 pieces.

It's probably a very small thing I'm missing, but i would be greateful to hear what could be the problem here!

Edit: I have Tyflow icon gravity set to default (-1). Toggling this off makes the roof sit in place, but the explosion looks odd... hmm, maybe I can create gravity JUST for the fractured mesh?
  Reply
#2
I've fixed this problem by ticking 'ignore start penetrations' in PhysX shape & sending out a property test for each fracture to see if velocity magnitude is greater than 0.001 and then apply a gravity force if so. https://i.imgur.com/fyllaHr.mp4

I'm now having another problem - some pieces of the roof remain in place without moving at all. Can I somehow tell Tyflow to cause chunks of little volume to fall down? E.g. https://i.imgur.com/KwijQq1.png

Light purple chunks are static

(btw is there a way to prevent particles from self colliding? I'm not asking for this sim, though)
  Reply
#3
I'm not sure what you mean by particles self-colliding. Self-collsions would only happen in something like cloth, not a static mesh.

As for having the floating chunks fall...typically you'd need to setup a bind network to determine chunk connectivity and then use a Property Test to see when a chunk has no connectivity anymore and then send it out to the gravity event in that case. There's an example file showing how to do....if I remember correctly, it's tyFlow_bindSearch_001.max in the official example files.
  Reply
#4
(06-02-2022, 04:54 PM)tyFlow Wrote: I'm not sure what you mean by particles self-colliding. Self-collsions would only happen in something like cloth, not a static mesh.

As for having the floating chunks fall...typically you'd need to setup a bind network to determine chunk connectivity and then use a Property Test to see when a chunk has no connectivity anymore and then send it out to the gravity event in that case. There's an example file showing how to do....if I remember correctly, it's tyFlow_bindSearch_001.max in the official example files.

Thanks a lot. I'll take a look at binds and see how it goes!
  Reply
#5
The tyFlow_bindSearch_001.max file is very nice!

I'm having problems implementing the idea in my scene. It's already a bit complex (within my experience) - https://i.imgur.com/C7qmFXS.png

I'd be happy if I could get help implementing it, but in the meantime I'll be testing the example scene.
UPD: I've tried referencing the example scene a few times, but it becomes a haywire each time  Sad
  Reply
#6
Been stuck on this camera shot for 4 days and cannot figure out how to add scenery collisions. Heres the nodes setup
https://i.imgur.com/8OtRfIx.png

oh it was a simple object scale issue. Reset xform resolved it.

I'm still looking for a way to clear out those stray/floating particles. The bind_search example scene is a bit much complex and I cannot figure out how to integrate it into my own scene.
  Reply
#7
If the bind search is too complex to understand, you could always try a Property Test with a neighbor search instead. Since your chunks aren't all the same size it might take some jiggling of the settings to get the desired result, but the basic idea would be...you check a radius around each particle and if the number of other particles found is less than some threshold, you send the particle out to be dropped.
  Reply
#8
Thanks the selected nodes are the ones i just created to test for floating geometry https://i.imgur.com/1SQ6KJC.png , I've been fiddling with the numbers and sometimes it selects the floating geometry as well as geometry that is supposed to be stuck together, oddly.

I'm testing if velocity magnitude is less than 0.001 and then send it out to a neighbour test. The result is shown red
https://i.imgur.com/mw8jonD.png

Node networks arent really easy to comprehend with my pea sized brain Confused

Edit: Think I'll just be using the bind search example as a base node setup for these types of simulations... RedefineFX's flow is different in some ways that I can't understand.
Your example scene works well, but at certain amounts of voronoi points it starts acting up and breaks the entire wall rather than just the part hit by the sphere. Try changing points from 770 to 780 and it should fix it. Attached scene file below. It's a minor issue really as I don't need a fixed set of fracture points, but it just got me confused.

It works! I'm so happy.


Attached Files
.max   tyFlow_bindSearch_001_medKollision.max (Size: 1.09 MB / Downloads: 11)
  Reply
#9
Quick question - would I have to export the roof fractures to an animated mesh so that i can use them as collisions for the house's ceiling (right below the roof)? I'm using the same bind-search setup as the roof.

As you can see only the outskirts of the ceiling is highlighted blue by the surface test which tests for distance between ceiling and roof models. I'd need it to test for distance between the moving roof fractures only and the ceiling :
   

Edit: the ceiling/floor doesnt seem to work with bind search the same way as the roof does, as you can see there are still blue fractures floating in the air
https://i.imgur.com/rnNox0K.png

Also - can I disable collision after it stops moving, or at a certain frame? After the sphere causes the explosion it dies off mid-air but still collides with fractures that are falling down.

p.s. are you able to recommend any training for Tyflow, as spending 5 days on a roof destruction is taking a bit too long... it should be no more than a day at most. I've been thinking of giving Demolition Master a go but I'd like to explore training programmes for Tyflow first.
  Reply
#10
Well the effect you're going for is "simple", but it takes some understanding of key concepts to get it working. For example, having a floating roof behave in a physically plausible way requires understanding of the difference between kinematic/dynamic bodies, bindings (constraints), collision events and triggers, etc. Complexity can easily spiral out of control as you add more and more conditions to the simulation, especially if you're still learning what all of these concepts mean and entail.

As for disabling collisions after a certain frame, you could send the particles to an event that doesn't contain that PhysX Collision operator (or trigger the explosion with a force, rather than a collider). Unlike the regular Collision operator, PhysX Collision works a bit different so it doesn't have the usual timing/filter rollouts.

As for alternative systems, you could certainly try Thinking Particles...but you'll have to wrangle all the same concepts, just using a different workflow.
  Reply
#11
Thank you, that really helps - I also want to let you know all the issues was due to my scene scale. It's in meters, have tried exporting the roof and ceiling into a centimeters scene where it works wonders and the binds does what they're supposed to. This has been a very frustrating week but I'm happy to know why it kept calculating things entirely wrong.

Here's a result I was getting in Meters scene: https://i.imgur.com/752HGBh.mp4
Here's a result I was getting in Centimeters scene (slightly different setup, but close enough): https://i.imgur.com/H3tySMZ.mp4
  Reply
#12
Heres what I think I'll call final result https://i.imgur.com/SBAWJeP.mp4

The pink roof binds are set up using the bind_search file method but instead with a sphere collider. The binds seemed static (probably my own error) so I added a secondary bind (yellow) and surface test using a second sphere, this really worked wonders

Had trouble getting the ceiling to work properly and still get affected by gravity forces. The part of the ceiling that wasn't hit by fragments isn't affected by gravity, but still moves, but I'm OK with this as it won't be seen by camera. I'll add fire and smoke FX at some point in time
  Reply


Forum Jump: