Hey guys, was just playing earlier with something which is still very early days, but writing an operator to have sheets of glass or other things and have an object crash through them, and it samples that area and tells it to go to the new event with an initial velocity assigned that decays from the impact position out.
right now it’s early days, although I’m writing most of the elements seperately which will then be put togeather.
The idea is that I could get a flat plane, and run the script, it will shatter the object and assign each piece to a particle which then will be sampled through the operator.
The part I’m showing is kind of simple, but figured it might be cool to show as you can do a lot with it. Rather than using deflectors and operators this just samples the objects in an array and if they are within a radius it sets the impact area. I’m about to transfer it over to a particle system which is being a lot harder than it should be to have two systems communicate.
A lot of this can be done through operators but it’sfun to try and do it all by hand.
http://www.allanmckay.com/tmp/part_assignment.avi
anyway this isn’t very fancy at all, there’s a lot I have to clean up too and it’s just the basics. but thought it’d be worth throwing up, stuck between blade and exorcist stuff so dealing with stinking particles ugly ui and needed some pflow lovin in my spare time 
on Proceed pCont do
(
count = pCont.NumParticles()
bullet = $bullet* as array
for foo in 1 to bullet.count do
(
for i in 1 to count do
(
pCont.particleIndex = i
ppos = (pcont.particleposition)
impact_pos = ((distance ppos bullet[foo].pos) * (random (random .6 1.1) .7))
if impact_pos <= 15 then
(
local bullet_vel = (.1 / (impact_pos / random .5 1.9))
pcont.particlespeed = [bullet_vel,bullet_vel,bullet_vel]
/ (pCont.particleSpeed /30)
pCont.particleTestStatus = true
)
)
)
)