How to transform a gameobject into sand?

I have scene that i made a particle system to show a model with particles as you can see in below. I want to make a transition like; The particles will transform into sand and fall down but the new sands will build up like a mountain. I don’t have any idea about how to make this. Can you please give me an idea about how to make this?

t697d4

This could probably be done with VFX graph. It has a node “Conform to SDF”. So if you convert your mountain into SDF then you can make the particles attracted to that SDF.

https://docs.unity3d.com/Packages/com.unity.visualeffectgraph@17.0/manual/Block-ConformToSignedDistanceField.html

You can do it like unchartred 4 , ie you cheat.
0. you apply a dissolve effect on the source

  1. you emit random particles down up to a certain distance,
  2. meanwhile at that distance you scale up a cone shape mesh
4 Likes

After spending a day to make that effect with particle system, this comment was unbelievable for me. I did the same thing but much cooler with VFX graph. Thank you for giving the idea. But i don’t want a static mountain model. I want the particles to overlap after falling and form a dynamic mountain because of i will use also another models.

Also thank you too but as i said i want a dynamic mountain created by overlaped particles.

You could have a slider for controlling how attracted the particles are to the mountain. As for the mountain changing - you can rebake the SDF at runtime. So the mountain can have blend shapes and change over time.

There’s a github library for baking skinned meshes:
https://github.com/robcupisz/mesh-to-sdf-examples

https://www.youtube.com/watch?v=xQfqtR7bbT8

2 Likes

This is the single most important tool in creating vfx.

2 Likes