what to do about bouncing balls

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

Thread Tools Display Modes
  09 September 2012
what to do about bouncing balls

greetings all!

I'm about to embark on a mo-graph project that calls for what should be a simple trick:

-a single ball (sphere) bounces out of the sky onto a white scrim

-and it's suddenly followed by a barrage of same-sized, but different color balls (maybe 50-100 in count), falling out of the sky which are to hit the scrim floor, bouncing around in a cloud of chaos

-after a few seconds the balls will start to get sucked up into a vortex and fly away from camera toward an invisible target, which eventually is revealed to be a company logo that looks something like a spinning beachball, with the different colored balls flying into place on their corresponding color patch on the beachball/logo.

I've attempted a couple of setups

1 - is a reactor simulation. the sim looks ok, 1 ball, followed by 50 or so balls which are "released from an invisible net" hanging well above the camera. trouble here is I have no idea how to blend the sim into the part where the balls have decided to start flying toward their respective targets. Ideally, each ball will end up on a single vertex on the beachball/logo's mesh.

2 - i've also attempted a more old-fashioned method.
a superspray/mesh particle emitter above camera,
a gravity space warp pointing downward
a deflector
a vortex space warp
and peter watje's "chase" space warp driven by a mesh of the beachball/logo
this also works somewhat well, though the faked floor-bounce "sim" leaves a bit to be desired, and the superspray-based collisions are not particularly accurate, no pun intended. I'm also thinking this way will require a separate emitter for each ball-color (think, there are 15 reds, 15 greens, 15 blues, etc.), and I don't have any idea how to set things up to make each color-set collide with the other color-sets

3 - I'd have to guess that with some intermediate knowledge of PFlow and Maxscript, I'd be able to hammer something like this out in a jiff, but alas I have no such knowledge and won't likely have the time to get up to speed before deadline.

If anyone out there could offer a suggestion I'd be enormously grateful.

thanks and cheers
  09 September 2012
Maybe make a reactor-sim of your balls bouncing and then use PFlow to spawn new instanced balls in the old ones pivots. Keep 'em locked on the (now hidden) reactor-balls, or just spawn them and inherit motion and material when the vortex is ready. Then find the new target.

Disclaimer: I'm just guessing Bet there is an easier and cleaner solution out there.
  09 September 2012
If you want to use PFlow you would want Box#2. It would do exactly as described quite easily. If you are already familiar with PFlow already the addition of Box#2 you could have this setup and tweaked in a couple of hours tops.

The main concern appears to interpenetration, so you need physics, and rest pose so find target.

You could use TP too, you learing curve would be quite a bit longer but you get 3 physics systems to choose from.
poof ~>Vimeo<~

Last edited by JohnnyRandom : 09 September 2012 at 04:31 PM.
  11 November 2012
hi Messiah & Johnny

I appreciate your replies - you've definitely given me some ideas.
I'm trying to handle this whole thing with 2 scripts I came across - one birth-by-vert script by Bobo (thank you Bobo!) and another one that let's particles find their target at the vertices of a mesh object by way of the 'Find Target' operator. Not sure who to credit it to but if you're out there say your name - very grateful to you.

In any event, I'm still very much a noob in the MaxScript dept. I'm trying to find the right way to change the frame at which the birth begins. The 'Birth Script' parameters panel has a spinner with an 'Emit Start' function. (see jpg)

but it seems when I change the parameter to anything but '0', the emitter stops emitting altogether. So I'm wondering if there's something in the Script itself that I need to alter. It looks like this:

on ChannelsUsed pCont do
pCont.useAge = true
pCont.useTM = true
pCont.useShape = true

on Init pCont do
global ChunksArray = $SphereRED* as array

on Proceed pCont do
t = pCont.getTimeStart() as float
if t < 0 do
NumChunks = ChunksArray.count
for i = 1 to NumChunks do
pCont.particleIndex = pCont.NumParticles()
pCont.particleAge = 0
pCont.particleTM = ChunksArray[i].transform
pCont.particleShape = ChunksArray[i].mesh

on Release pCont do


I buggered around with it to no avail. Wondering what component or line might allow me to alter the time of birth. Any help would be awesome.
  11 November 2012
Thread automatically closed

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.
CGTalk Policy/Legalities
Note that as CGTalk Members, you agree to the terms and conditions of using this website.
Thread Closed share thread

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Society of Digital Artists

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump

All times are GMT. The time now is 07:08 AM.

Powered by vBulletin
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.