Scripts
Couple More Fume Tests
First one planetary impacts. This use pflow to set the fume containers at the particle impact points on the planet. Messy, messy, messy maxscript way to get it to work will have to find a better approach. EDIT: And I found one
…
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.

An attemtp to get fumeFX to look like white water. Waiting to see what the krakatoa renders look like

Script – Face To Elements
A quick simple script to convert the faces of a Editable Poly object to separate sub-object elements.
More info HERE

Added a couple of TP related buttons
To the Fume & Flow Floater. The layout is a little cheap, I didn’t really want to try an add another rollout right now, I may do it later, but anyways…
More info HERE

The Thinking Particles additions are:
TP – Create mode for a TP node
TP Prop – Opens the selected TP Properties View
Bind to TP – Select a TP node hit the button, a “Select By Name” dialog opens with all scene spacewarps, select all of the spacewarps you want to bind, and click bind.
TP Help Reference - (assuming it is in your local settings – all users folder) You can change the location by changing line 493 in the file “FumeFlowFloater_MiniTP_17.ms” to the location of your help file.
Script – FumeFX Sim and Render
Well i forgot to write a post for this. So here it is.
Starts your FumeFX simulation and renders upon completion of the sim.
More info HERE

Script – TimeLine Timer
Time your animation range playback! Another handy tool that absolutely no max user can live without.
More info HERE

Script – Particle Flow Display Utility
A small script to eleviate jumping from display operator to display
operator in particle view to change thedisplay color and type.
It allows you to set the color and display type of all or selected Pflow display nodes that are listed in the listboxes.
Max2009 “Lights Back 2 Standard”
With the release of max 2009, someone decided to change the default light setup in the create panel to “photometric”, since I generally don’t use photometric lights I wrote a Rube Goldberg script to fix the issue. Just save the script below in your startup folder and it will change your Create light panel back to the default Standard lights.
It is important that this is the last script to run in your startup directory, so name it appropriately, something like “zLightsBack2Standard.ms”. It seems other scripts may steal scope, for instance I use Martin Breidt’s “Project Switcher” and if this script loads before his it doesn’t work.
--Lights Back 2 Standard
--Changes your create lights panel back to standard lights instead of photometric
--Save to your scripts>startup folder
with redraw Off(
startObjectCreation OmniLight
startObjectCreation Plane
Max modify mode
Max create mode
)
Birth Script Interval
A quick simple way to set the rate and interval of Particle Flow birth script.
on ChannelsUsed pCont do
(
pCont.useTime = true
)
on Init pCont do
(
)
on Proceed pCont do
(
t2 = pCont.getTimeEnd()
rate = 100 -- rate of emission
if (t2 < 20) do -- emit from 0 to 20
(
for i = 1 to rate do
(
pCont.AddParticle()
)
)
if (t2 > 40) and (t2 < 50) do -- emit from 40 to 50
(
for i = 1 to rate do
(
pCont.AddParticle()
)
)
if (t2 > 60) and (t2 < 70) do -- emit from 60 to 70
(
for i = 1 to rate do
(
pCont.AddParticle()
)
)
if (t2 > 90) and (t2 < 100) do -- emit from 90 to 100
(
for i = 1 to rate do
(
pCont.AddParticle()
)
)
)
on Release pCont do
(
)
Script – PFlow Viewport Multiplier Switcher
Well got real tired of clicking on every particle source and changing the multiplier to get the amount I wanted in the viewport, so I wrote this just for that.

Carpet Bomber v1.0
Felt like writing a script and this is what I came up with. Carpet Bomber Multi-Fume Grid Creator and updater. Got a bunch of Fume Containers you want to update? Well have I got a tool for you.
The basic idea is you can create a bunch of sources through out you scene adn Carpet Bomber will populate those sources with Fume Containers, and in those Fume containers you can add lights, spacewarps, geometry, ects. You can then update your grids with the basic settings or the preset loader.
It should work in Max8x+ with FumeFX1.0
Tested in Max 2008 & 2009 with FumeFX1.1
CarpetBomber version 1.0

