gotta love the yello and rubber duckys!!!
charley posted his reel over there at animations:
http://forums.cgsociety.org/showpost.php?p=5767006&postcount=1
maybe drop by and drop a line 
kind regards,
anselm
gotta love the yello and rubber duckys!!!
charley posted his reel over there at animations:
http://forums.cgsociety.org/showpost.php?p=5767006&postcount=1
maybe drop by and drop a line 
kind regards,
anselm
The bug hunt is still on. But i´d rather prefer a bug free (or at least light on bugs) release than an early one.
so long some tearing:
www.3delicious.de/spielwiese/BETA/public/PhysXGlue_ClothDamage.mov
This one’s for Allan or anyone else who can pitch a hand.
I’m trying to expand on the FumeGenUI script to allow the script to spawn the fume grids with proper orientation to the particles emitted.
The real-world example is that I have ships blasting each other apart and I need the explosions (Grids) to stick out of the side of the ships, rather than all pointing up.
I was toying with this for awhile with Solitude, trying things like a guide particle with rotation that could be used to replicated particleTM for stuff, but couldn’t really get anything specific to work.
So if any of you have any ideas how I can spawn the fume grids with some good orientation, i’d be your debt!
Hey cryptite, is it the grids or the sources that you want to align?
A note on the grids if they are anything but “normal” the velocities get messed up. I was playing around with rotating the grid a couple of weeks ago, I was exporting velocity for Pflow, needless to say the upon importing the velocities via fume follow op, I noticed they were jacked and completely incorrect.
It’s just the cached versions of the grids. The script that Allan provides merges in multiple sets of the same grids and aligns them with auto-generated dummies. So i’ve already simmed out the grids, i’m just merging in the grids themselves. AFAIK, you can rotate the grids all you want if they’re already simmed and nothing will change. Simming a grid sideways is a different matter.
The bug hunt is still on. But i´d rather prefer a bug free (or at least light on bugs) release than an early one.
Yep, still hunting. We have to make sure that Box#2 plays nicely with the rest of PFlow, including caching, events, integrated/non-integrated Box#1, Box#3, and on both 32- and 64-bit platform. And to support 4 releases of 3ds Max - from R9 to R2010. Phewww…
Thanks,
Oleg B.
Oh, I gotcha, I’ll have to let that cook, is the script in his script pack?
Hey Oleg, back to work no time for small talk
downloading the UK version of max2010…kidding…maybe…
haha If I didn’t like running linux so much at home now, I’d have it finished for you already! 
This one’s for Allan or anyone else who can pitch a hand.
I’m trying to expand on the FumeGenUI script to allow the script to spawn the fume grids with proper orientation to the particles emitted.
The real-world example is that I have ships blasting each other apart and I need the explosions (Grids) to stick out of the side of the ships, rather than all pointing up.
I was toying with this for awhile with Solitude, trying things like a guide particle with rotation that could be used to replicated particleTM for stuff, but couldn’t really get anything specific to work.
So if any of you have any ideas how I can spawn the fume grids with some good orientation, i’d be your debt!
Hi
I think i might have a solution for you! And i hope i haven’t missed the point of what you were saying…so i hope this is what your after 
Though i am very new to maxscript and even more so with pflow scripts, I hope this works on your end.
Okay basically what i have done is used the tut in the help file that attaches lights to particles, i think this was originally made by Bobo, so i wont take all the credit!
Also this will work but you need to have the scene set-up in initially for it to work, so here we go:
Create a FumeFX grid and a particle source, attach the source to the grid.
Name the Fume Grid “FFX_Smoke_01” ( you can chaneg this but you need to edit the script)
Create a default pflow system.
Replace the Shape operator with a Script operator (we’ll put the script into the oporator last)
Add a Spawn test to event one.
Create a new event and add a Display, Speed and an Age operator.
Okay now lets give the flow some properties.
Event one, spawn the particle at frame 0, and only spawn 1 particle.
Event one, Change the speed to the lowest value you can ie 0.001
Event one , Chane the Rotation operator to “speed space follow” and change the Y axis to 90 degree’s
Event one, in the Spawn Test tick delete parent and spawn 25 particle.
Event two, change the Speed to inherit previous, and set the speed values with some divergence.
Event two, set the age to 5

on ChannelsUsed pCont do
(
pCont.useTM = true
pCont.useAge = true
)
on Init pCont do
(
global _myFFXGrid = $FFX_Smoke_*
)
on Proceed pCont do
(
partcount = pCont.NumParticles()
count = amin #(partcount,_myFFXGrid.count)
for i in 1 to count do
(
pCont.particleIndex = i
_myFFXGrid[i].transform = pCont.ParticleTM
)
)
on Release pCont do
(
)
.
Okay this should all work once you close the script window.
Click simulate and you should get a result!
Tip: if you want more fluid containers. Create more containers (and add the source to the new ones) equal to the number of particles you want at frame 0.
Okay i have attached a max 8 file that does exactly this check it out!
Hope this is what you were after.
Kieran.
Nice Kogden, I took it a step further 
Tom all I can say is this is messy 
It seems half the time the transforms don’t want to take so hold your scene before you evaluate the script operator.
So this one works with find target. So when the missle in this case a teapot finds its target (the sphere) it puts a copied grid at the point of impact and sets the fumefx playFrom frame to go off at impact.
In the scene FFX_PopPoints_start.max, simulate the grid FumeFX01 it is at position [0,0,-300], then shift+drag copy this grid set it to 9 copies. Use copies so the output file stays the same, and the pre simulated files are used.
Hold your scene NOW! 
Run this code: You need to clean the arrays becuase when you opend the scene pflow populated them, you need to start fresh.
theFumeFXGrid = #()
grid_arr = #()
gc()
select $FumeFX*
$.playfrom = 0
$.pos = [0,0,-300]
Next open the script operator to edit and close again to evaluate and repopulate the arrays.
Playback only once through the timeline or the impact times will recalculate and mess up the timing. If all goes well your containers have now aligned themselves to the impact points. Move the script operator to the off empty event next to the flow to keep it from evaluating again.
Render. Close max and think of a better approach! This in theory could be applied to different scenes as longs as your particles are facing the right way.
I really think the proper approach would be to gather the data from pflow and script a utility to do this outside of pflow to avoid the update issues. Think about it later…
Anyways…
Cheers guys.
@Johnny, can’t open your scene, though. I presume it’s because i’m still using 2008. Think you could post a screencap of the pflow setup and the script operator script? Cheers!
If allan permits, and we get a nice stable version of this script, i’ll merge what you guys have given me with my updated version of the script he provides in the DVD so we can get auto-merged and auto-oriented fume grids with a click of the script (I added a few extra nice things: button to delete your grids so you can re-generate them as well as a progress bar for scenes like mine where you’re merging in like 20 grids).
Thanks!
A crap, its max2009 :banghead:, didn’t occur to me, I was testing some other stuff.
Flow:

Script Operator:
on ChannelsUsed pCont do
(
pCont.useTM = true
)
on Init pCont do
(
global theFumeFXGrid = #()
for o in objects do if classOf o == FumeFX do append theFumeFXGrid o.name
global grid_arr = for o in theFumeFXGrid where isValidNode (obj = getNodeByName o) collect obj
)
on Proceed pCont do
(
p = pCont.particleID
count = pCont.NumParticles()
for i = 1 to count do
(
print p
Print grid_arr[p]
grid_arr[p].transform = pCont.particleTM
print grid_arr[p].transform
rlTime = slidertime as integer
curTime = rlTime/ticksperframe
grid_arr[p].playFrom = curTime - (curtime*2) -- Impact time start playback
)
)
on Release pCont do
(
)
Forget that other junk I posted… Bobo is da man, going back through my shady memory banks I realized I have learnt this before, on his pflow scripting dvd’s. It just smacked my in the face! A way more reliable solution, and it works like a charm.
This version runs the final update script and another script operator for impact timing.
Final Update script: Clone your grids with a more unique name easy trackability...
global theGrids
pf_node_current = particleFlow.scriptRunner()
if (pf_node_current != undefined) then
(
count = pf_node_current.NumParticles()
theGrids = $CL_FumeFX* as array--the name of your copied fume containers
theGrids.pos = [0,0,-10000] --set the positions so they are off screen when not in use
minCount = amin #(count, theGrids.count)
for i in 1 to minCount do
(
pf_node_current.particleID = i
theGrids[i].transform = pf_node_current.particleTM
)
)
Then the script operator for impact timing: this should go in the event that the collision occurs. ie the next event wired to say a collision op. or find target.
on ChannelsUsed pCont do()
on Init pCont do
(
global rlTime
global curTime
)
on Proceed pCont do
(
p = pCont.particleID
count = pCont.NumParticles()
for i = 1 to count do
(
--print p
theGrids[p].playFrom = 0
rlTime = slidertime as integer
curTime = rlTime/ticksperframe
theGrids[p].playFrom = curTime - (curtime*2) -- Impact time start playback
--print theGrids[p].playFrom
)
)
on Release pCont do()
Be sure to use a cache op. set to View/Render Intgration step, this will ensure that the grid impact times are correct. I noticed if I didn’t use a cache the impact times were off, which makes sense since the playFrom time isn’t initialized correctly until playback has run through the timeline at least once.

Not sure if you can write to the Final step update script through maxscript, you can turn it on/off but that’s about it AFAIK. You can create the script op through maxscript. Another note you cannot use a scale operator in the flow this will jack the grid transforms and the grids will not render properly.
Thanks guys!
Naturally after all your hard work, I found that all I needed to change was about 2 lines of code in Allan’s two scripts. I’ve emailed allan asking if I had permission to post these scripts up here, since they’re only found in the FFXAdvanced training DvD.
If he’s cool with it, i’ll post them here, otherwise, you guys have both come up with solutions that work great.
Yet another Box#2 treaser in form of a trailer:

Niko&The Way to the Stars - Trailer2009
The avalanche shots used box#2 and AfterBurn for debris, ice and snow. The movie is coming out this X/Mas in Europe.
As usual in movies this was not a one man gig. I don’t take full credits for the work done, i’m just the delivery guy of good news
I will talk a bit about this production at a given time.
Thanks Oleg for letting me use the (back then) very young tool in production. I would like to call it an “Olegorism”. (“Olegorism” is when Oleg helps you out as dedicated as he always does).
Cool with all these Box#2 previews! I haven’t seen them until today after checking the news at maxunderground.
What really bugs me with these simulations (and 3D physics in generel), as well as being something I’m fighting against all the time - is that it is all so darn slow motion, almost like underwater! I hope that’s only done for demonstration purposes in these previews, and that it is something that is easy to adjust. Anybody got any previews of faster simulations, simulated all the way to the end when everything has settled down?
Gravity and mass are all easily adjustable. Simulations settle nicely as well, jitter is generally not an issue and if it does jitter you have the ability to easily raise the simulation sub steps to get a more accurate simulation. I’ll drum up scene to demonstrate.