Banking in Particle Flow

Well I know this really isn’t the place for it, but I thought ask since there are so many talented folks here, and for the sake of the swift replies in the forum.
Has anyone got a clue as how to get particles to bank when they turn with Particle flow (or regular max particles for that sake). I cant seem to get them to do that no matter what. In addition, I want them to bob up and down as they travel, but I cant seem to get this type of behaviour either. I’m going to be sending a bunch of pre animated bats (point cached) out and want them to bank and bob as they fly, since the animation in the bat file is only a loop of the wing flapping.

Does anyone have a clue?

Hi. The banking is problematic. I’m not totally sure, but I’m guessing scripting would be necessary… and scripting pflow is not my cup of tea.

However, as for the ‘bobbing’… you could use Bubble motion in the regular max particles or you can use my experimental technique for pflow in the file:

http://home.comcast.net/~mncdavis/vray/bats\_test.max

Basically, I just used a wind modifier pointed up under the bats. I added a waveform and noise controller to the strength of the wind to create an irregular bobbing force.

If you want more divergence in the bats you can make the Find Target icons larger (I used them to control the path of the bats). You could also toy with animating the position of the target icons to generate interesting motion. Furthermore, you could set up separate emitters (or split percentages of the existing particle streams) to apply unique effects to different groups of bats.

good luck with it…

By the way, you probably have too many bats to make this worthwhile -- but Crowd within Character Studio supports banking.

Thanks for the file…It’s actually what I was going to do next after I got some sleep (the wind bit). I still need the banking feature though, so I guess ill have to dive into the whole CS4 crowd thing (kinda dreading that. Thought my life was free from CS after max got its rigging and skinning tools up to snuff).

If your using speed by icon you can use a script operator with

on ChannelsUsed pCont do
(
	pcont.useTM = true
)

on Init pCont do 
(

)

on Proceed pCont do 
(
	count = pCont.NumParticles()

	for i in 1 to count do
	(
		pCont.particleIndex = i

		dumrot=$'Speed By Icon 01'.transform 
		pCont.particleTM = dumrot

	)
)

on Release pCont do 
(

)

Hmm…do I put this in a script operator before or after the speed by icon event? (pardon my complete noobness when it comes to scripts).

Thank you very much. Now I see the particles banking here, but they are all bunched up together on top of the “speed by icon” object. Nothing I do seems to have any effect on them. Could you include a screen shot of what your flow looked like?

just stumbled on to this, myt as well make a reply :smile:

I think in pFlow, you could just add a rotation operator, and set it to speed space follow…

hope this helps

Eh…nope. I might just have tried that. Anyway…they are already using a speed space follow to keep their orientation. Banking is kind of a secondary rotataion, and is different depending on if you’re airborne or grounded.

im not sure if this would work as i cant try this right now… but i think it might just work. :smile:


on ChannelsUsed pCont do 
( 
   pcont.useTM = true
   pcont.usePosition = true -- I added this...
   pcont.useOrientation = true -- ...and this to have access to the latter channels
) 

on Init pCont do ()

on Proceed pCont do 
( 
   count = pCont.NumParticles() 

   for i in 1 to count do 
   ( 
      pCont.particleIndex = i 

      dumObj = $'Speed By Icon 01' -- the object to get banking info
      dumPos = pCont.particlePosition -- store the position
      dumScale = pCont.particleScale -- store the scale
      dumTM = dumObj.transform -- store the transform
      pCont.particleTM = dumrot -- apply the transform to the particle
      pCont.particlePosition = dumPos -- apply the stored position
      pCont.particleScale = dumScale -- apply the stored scale       
   ) 
) 

on Release pCont do ()

hmm.. seeing this code now, i think particles wont bunch up on the icon, but i presume that the particles would all bank at the same time… :frowning: