View Full Version : animated particle offset help

05 May 2005, 09:46 PM
hi all

im trying to animate a bitmap on a particle, this bit i can do, but i cant seem to get the animated bitmap to be offset, so the particles all look the same anyon know how i can get thye particles to display and start at a random frame from the animation.

hope this makes sense


05 May 2005, 05:49 AM
are you using pflow? if so, you could try using a multi-material, with submaterials using your animated bitmaps, thus have those bitmaps start at frames of your liking.. then just add that multi-material to a material dynamic operator.

if not, here's a technique, which might come in a bit complicated for some...

say you're using superspray, and you have an object with an animated bitmap...
- set the spray to instanced geometry (selecet your object)
- set the spray's animation offset keying to random (thus set your preffered frame offset)
- getmaterial from Insatanced geometry
- then apply a Material Modifier to your object (not the superspray)
- lastly, animate the material to the number of frames your animated bitmap has... (e.g your bitmap has 0-64 frames of animation, thus animated the Material Modifier from 1 to 65)

now use this script:

rollout tera_FolderMaps_to_MultiSubObject "FolderMaps to MultiSubMap" width:200 height:100
button map_bot "Choose Folder" pos:[5,5] width:135 height:25
label tera_label "" pos:[10,60] width:180 height:30
progressBar tera_pb "" pos:[5,35] width:190 height:10
GroupBox grp1 "Info" pos:[5,45] width:190 height:50
editText edt_ext "" pos:[145,15] width:50 height:15 text:"bmp"

on map_bot pressed do
clips_path = getsavepath caption:"Directory of Clips"
if clips_path != undefined do
the_clips = getfiles (clips_path+"\*."+edt_ext.text)
clip_count = the_clips.count
the_slot = medit.GetActiveMtlSlot()
meditmaterials[the_slot] = multimaterial()
the_multisubmat = meditmaterials[the_slot]
for i in 1 to clip_count do
the_prog = 100.0*i/clip_count
the_mapfile = filenamefrompath the_clips[i]
pre_label = ("Processing Slot [" + i as string + "]\n" + the_mapfile + "...")
tera_label.caption = pre_label
tera_pb.value = the_prog
the_multisubmat.materialList.count = i
the_multisubmat.materialIDList[i] = i
the_multisubmat.names[i] = ""
the_map = (the_clips[i]) as string
the_multisubmat[i].diffusemap = bitmaptexture filename:the_map
tera_pb.value = 0
tera_label.caption = ("Created " + clip_count as string + " Materials at Slot [" + the_slot as string + "]")
)createdialog tera_FolderMaps_to_MultiSubObject

this script will let you create a multisubobject on the current active slot, with subobjects containing a standard material with diffusemaps using your bitmap sequence.. although i didnt include options to globally control all submaterials..

the idea behind this is to use a multimaterial as the holder or list of your frames, thus you could animate it using the Material modifier.. and lastly, control random offset keying from the super spray..

if this seems a little complicated, i could post a sample setup for you.. im using max6

hope this helps!:)

12 December 2005, 02:17 AM
one hell of a late response to this
but THANKS !!! i figured out what i wanted, its a simple check box on the material, the problem was it didnt update in the viewport, so i presumed it wasnt working, turns out its fine during render...

but again thankyou for taking the time to write the script, its very much apreciated !


CGTalk Moderation
12 December 2005, 02:17 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.