Blur´s Impact System Tool


This has got to be the coolest plugin (or script?) I´ve seen for Max in a long time!!
I guess it´s an inhouse tool only and not a downloadable commercial plugin.

Just curious how many of these jawdropping tools a studio like Blur have… I know we have a few gurus in this forum that work or worked at Blur that perhaps can share some information?!

Take care all!

Ohh… link to the demomovie.

written by Daniel P. Ferreira @ Wonderslime


From looking at the video it appears to be a script. Does some hit testing, generates subdivided faces for the hits, at hit time it displaces the subdivision and generates pflow effects, various other features and controls, and then the gui to control it all. With proper knowledge of Maxscript you could do the same as well.



That’s really impressive. No wonder they can crank out the movies like they do. :slight_smile:


He states on his website that it is a maxscript tool. Parts of it may be custom plugins, but the UI and execution is probably all Maxscript.



I’m guessing it’s all scripted. The toughest part would be the displacement, but off the top of my head I can think of one way to do it. Make sure the mesh objects were editable polies, select faces around the impact point, use the built in tessellate function to subdevide the mesh, then move the verts away from the impact. You can do all this through MaxScript, plus adding the lights, the particles, and the smoke.

Well, I know what my next scripting project is going to be. :slight_smile:


[QUOTE= Well, I know what my next scripting project is going to be. :)[/QUOTE]

I guess you need a alfa/beta tester for that! :scream:
I´m in!!! hehe


I get first dibs on alpha / beta testing. :slight_smile: …So the guns don’t actually shoot a projectile into the scene, right? It uses a simple raytrace into the scene for collision?
I guess this is better than using pflow for the extra scripting stuff like the deformation/tesselation? …Would it be possible to send out collision data from pflow to tesselate a mesh? It would be nice to have the added contol that you get with pflow, ie easily being able change up the shapes of the particles and such, unless there is a way to control the shapes in the script? I guess it depends on the way it spawns it’s particles (if it’s creating a pflow or if it’s generating a parray or what?) …and how would the deflector’s be set up for the particles? Hrmmm I dunno what i’m talking about I guess i just want to know more about how he set it up. :slight_smile:

Edit… so I was messing around for a bit, and I can get a mesh to tesselate and displace based on particle geometry – vol select / mesher – but creating a smooth displacement within that geometry is where I get stuck. =) Using a bitmap or map for displacement would be impossible because it doesn’t isolate each collision as it’s own set for the mapping… I can use a push modifier after the tesselate (to make it go inward), but it really doesn’t look good unless the mesh already has a lot of geometry, as the tesselate or a mesh smooth doesn’t work on soft selection, and I don’t know if there is a way to just expand the selection based on a previous selection. I know there are ways to get geometry to conform to other geometry… so i gotta play with that next for making like bullet holes or something… :slight_smile: This will probably end up going nowhere, but it’d be cool to make a temp workaround to get something similar.



I’m glad you guys like the tool. :slight_smile: I didn’t use pflow, since we only needed very simple particle behaviours taht could be solved easily with a parray, and the subdivision was done after grouping by a sphere if I recall properly. The only thing it didn’t do automatically and I wish I could have done it is to generate deflectors based on geometry. Unfortunatelly max (at lest at version 6 or 7) wouldn’t let maxscript access the deflector geometry parameters.

Let me know if you have any questions;I will be happy to answer them, if I can remember.


Ehehe. Very nice, slime.



Thanks for stopping by, slime.

…so how were the collisions done then if not automatically? Set up beforehand?

Can you go into a little more detail on the tesselation/displacement… if you remember? :slight_smile:


Hey, Miguel :slight_smile:

The collisions are calculated by a ray.

The ray detects if there exist collisions with any of the objects in the target list and will pick the intersecting point on them. Using the distances from the collision points to the gun, we select the closest one, and that will give us the first object to be hitted by the gun.
For the subdivision, I select the polygons of the hitted object that are around a certain radius of the impact position, and subdivide those. Thet radius depends on the displacement size that is going to be applied.

Hope it makes sense! :scream:

  • Daniel


It makes enough sense. :slight_smile: I was referring to the particle/geometry collisions though. :slight_smile:

Guess i’d also be interested in how the displacement and texturing of the displaced area is taken care of also if it’s not too much to ask. :slight_smile:


The particle/geometry collisions are manual, since Max won’t let you automatize it through maxscript. The displacement is done through instanced displacement gizmos (I think that’s the name for it- it’s been a long time -) with a procedural texture. There is no texture change if I recall properly, although lights can be created / activated automatically on impacts if specified in the setup.


cooool. Thanks for the info, I’ve got a good place to start now. I won’t be doing it through maxscript, but hey… I’ve got a good place to start in getting the similar effect. I don’t know enough about maxscript, but I’m sure all the info helps anybody else trying to do something similar. :slight_smile:


Really impressive tool wich can speed up impact creation dramaticly!

i wish it would be commercial :frowning: pulls out mastercard & visa

i REALLY have to speak to our TD :smiley:


wow! 25 seconds to calculate the colisions! Impact sds is very impresive too:thumbsup:


Hehe me too, CATZCHING

Thanx for your input Slime!


You can script the particle/geometry collisions using pFlow, but I understand the use of PArray since the rocks and dust are just a really simple effect and maybe you don’t want to overhead of pFlow.

That’s the missing piece of the puzzle for me, thanks! I didn’t even know about the displace spacewarp. This is going to come in very handy for me.

I think that would be worth looking into. One way I can think of off-hand to do this would be to detach the faces selected for subdividing (plus maybe some extras around the edge) as a cloned object, move them out a little and apply a new texture so that it works as a decal for the texture change. That’s probably the easiest way I can think. Plus, you’d want to turn of shadow casting for the new object so it’s not a rendering burden.

I’m doing some tests now and should have something to post soon. Thanks for the great ideas. I hope you don’t mind me making my own version of this. But if you’re not going to sell or release it, I gotta do what I gotta do. This is too good to pass up. :slight_smile:


That’s a good idea, if the topology of the new subdivided geometry matches the old one. It might be better to subdivide first and then detach to be sure it’s a perfect match, since points will probably move when subdividing.

You are welcome. :slight_smile: Good luck, and I hope we can see something soon! :thumbsup:


This is better than Christmas :thumbsup: