How to Create a Dancing Particle Effect using 3ds Max and Thinking Particles

This entry is part 3 of 9 in the Cristian Pop Session
« PreviousNext »

Twice a month we revisit some of our reader’s favorite posts from throughout the history of Cgtuts+, and today we have an awesome 3Ds Max post by Cristian Pop. This tutorial was first published in November 2009 and provides a great look at using thinking particles! Let’s take a look…

In this intermediate level tutorial you will learn how to create an interesting “dancing” particle effect using 3ds Max and Thinking Particles. You also will be able to choreograph the animation to your audio track by creating an animated map using AfterEffects.


Final Effect Preview

Get the Flash Player to see this player.

Project Files

Download

Step 1

Open AfterEffects and create a new composition. Set the “Width” and the “Height” to ’400′. Change the “Pixel Aspect Ratio” to “Square Pixels”, the “Frame Rate” to ’30′, and set the “Duration” to 20 seconds.

Step 2

Download the project files, and import them in AE.

Step 3

Drag “Metric_Bass.wav” into the composition’s timeline. Right click on it, go to “Keyframe Assistant” > “Convert Audio to Keyframes”. This process converts the audio waveform into keyframes, and stores them in a new layer called “Audio Amplitude”.

Step 4

Change the new “Audio Amplitude” layer’s name to “Bass Amplitude”. Delete the “Metric_Bass.wav” layer, because the new layer contains all the audio data you will need. To expand or collapse a property group, click the triangle to the left of the layer name or property group name. Expand “Bass Amplitude” > “Effects” > “Both Channels”.

Step 5

Drag “Bass_map.png” in the composition’s timeline. Expand “Bass_map” > “Transform”.

Step 6

Next, you will connect the “Bass_map” layer’s “Opacity” value to the “Bass Amplitude” layer’s audio data. Press the “Alt” key and click the on the Bass_map’s “Opacity” stopwatch icon, to add an expression to this property.

Step 7

Click the “Expressions Pick Whip” icon, and drag a wire to the Both Channel’s “Slider”. This action will connect the “Opacity” value to the audio data.

Step 8

Do the same for the “Normal” and “Treble” files.

Step 9

Render the animation as a .jpeg sequence.

Step 10

Open 3ds Max and set the “Animation Length” to ’600′ frames (20 seconds) in the “Time Configuration” dialog.

Step 11

Create a plane, and change the name to “Emitter Plane”. Set the plane’s length and width to ’140′, and move it to the coordinates: x = 0, y = 0, and z = 0.

Step 12

Add a “UVW Map” modifier to the plane and disable “Real-World Map Size”.

Step 13

Go to the “Command panel > Create > Particle Systems > Thinking” menu, and place a “ThinkingParticles 3″ icon in the Viewport.

Step 14

Go to the “Modify” panel, and click “Properties” in the “Thinking” rollout (you can also use ‘Alt + Shift + P’ to open, and ‘Alt + Shift + C’ to close the “ThinkingParticles 3″ user interface). In the “DynamicSet Tree” view, select “Master Dynamic”. Disable “Edit on the fly” to see the changes in real time and enable “Show Mesh” to see the particle shape.

Step 15

In the “Particle Group Tree” view, click the “Create” button, under “Master System”. Name the group “Box Particles”, by clicking on the name “Group” twice (slowly).

Step 16

To dictate what the particles do, you need to create a “Dynamic Set”. In the “DynamicSet Tree” view, click the “Create” button, under “Master Dynamic”, and name the new Dynamic Set “Generate”.

Step 17

Highlight the “Generate” DynamicSet, and then go to the right-hand side of the dialog, where you will see a new set of “Create” rollouts.

Step 18

Click the “Operators” icon, and then choose “Generator” from the drop down list. Select the “MatterWaves” node to highlight it, then click in the schematic portion of the “Wire Setup” view, and add this node to your “DynamicSet”.

Step 19

In the “MatterWaves” rollout, on the right portion that appears, click the “Pick Object Based Emitter” button, and select the “Emitter Plane” in the viewport. Select “Box Particles” as your “Group” (from the drop down menu). Change the particles creation type to “Pistol Shot”, and set the particle amount to ’3000′. Change the “Life Span” value to ’300′, the “Speed” value to ’0′, and the “Size” value to ’2′.

Step 20

In the “Emitter” rollout, set the “U/V Emitter” to ’50′.

Step 21

In the “Write to Channel” rollout, set the second spinner of the “UVW” parameter to ’0′. This spinner defines the Data Channel number that should be written (-1 means no Data Channel is written).

Step 22

In the “Particle Group Tree” view, highlight the “Box Particles” group. In the “Box Particles” group rollout, on the right portion that appears, you need to create a “Data Channel”. In the editbox, write ‘UVW Data’, then select “Point3″ from the drop down list. Press the “Add” button. Now the “UVW Coordinate” data from “MatterWaves” is written to “Data Channel 0″.

Step 23

Create a new “DynamicSet” and change the the name to “Effect”. In the “Create” panel, click the “Groups” icon. Add the “Box Particles” group to your Dynamic Set.

Step 24

In the “Create” panel, click the “Helpers” icon and add a “TexmapColor” helper. This helper is used to get the current surface color of a map.

Step 25

Select the “Box Particles” group and move your cursor over the light green box in the upper right corner of the operator. It will display a tooltip that says “Outputs”. Click on the “Outputs” box which will reveal a complete list of output data streams for the “Box Particles” group.

Step 26

Choose “*Position” and “*CH: UVW Data”. Now these outputs are visible on the “Box Particles” group.

Step 27

Connect the “*CH: UVW Data” output of the “Box Particles” group to the “UVW” input of the “TexmapColor” helper. From “*CH: UVW Data” the “TexmapColor” helper gets the UVW coordinates information.

Step 28

In the “TexmapColor” helper rollout, add the image sequence created in AE.

Step 29

Now, you need to change the particles position on the ‘z’ axis, based on the map. In the “Create” panel, select “Standard” from the drop down list. Add a “Position” operator, and connect the “Particle” input to the “Particle” output, of the “Box Particles” group.

Step 30

Because the ‘x’, ‘y’ and ‘z’ position is set to ’0′, all the particles will be moved to the same position. You need to get the original particle position on the ‘x’ and ‘y’ axis, and to leave them unchanged. Click the “Helpers” icon and add two “Point3″ helpers.

Step 31

Connect the “Position” output of the group to the “Vector” input of the first “Point3″ helper. Now this helper gets the original particle position. Connect the “X-Value” and “Y-Value” outputs of the first “Point3″ helper to the “X-Value” and “Y-Value” inputs of the second “Point3″ helper, then connect the “Vector” output of the second “Point3″ helper to the “Position” input of the “Position” operator.

Step 32

As you can see, the particles go back thier original positions on the ‘x’ and ‘y’ axis. Next, you need to define the position on the ‘z’ axis. Add an “Add&Multiply” helper and change the operation type to “A*B”.

Step 33

Add a “Random” helper, and change “Value 1″ to ’55′ and “Value 2″ to ’60′.

Step 34

Connect the “Value A” input of the “Add&Multiply” helper to the “Value” output of the “Random” helper, and “Value B” input to the “Color” output of the “TexmapColor” helper. Now, connect the “Value” output of the “Add&Multiply” helper to the “Z-Value” input of the second “Point3″ helper.

Step 35

The “Color” output of the “TexmapColor” helper sends out a value between ’0′ and ’1′ (’0′ for black and ’1′ for white). The “Add&Multiply” helper multiplies the value from the “Color” output with a random number between ’55′ and ’60′, then sends out the result to the “Z-Value” input of the second “Point3″ helper, which in turn affects the ‘z’ position of the particles. As you can see, the particles are now moving on the ‘z’ axis based on the information from the animated map.

Step 36

Next, you will assign a cube shape to these particles. Go to the “Create” panel, and from the drop down list select “Shape”. Add a “Std Shape” operator. Select “Cube” from the drop down list, then connect the operator to the “Box Particles” group.

Step 37

To apply a modifier to a group, select “Master Dynamic”, in the TP3 user interface, and enable “Groups as Objects”. Now you can select the group, as an object in the viewport.

Step 38

Create a “Standard” material and add a “Gradient Ramp” map in the “Diffuse” slot. Open the “Gradient Ramp” map and disable “Use Real-World Scale”, then set the “Tiling” to ’1′.

Step 39

Create a gradient (as shown), then assign this material to the “Box Particles” in the viewport.

Step 40

Select the “Box Particles” and add a “UVW Map” modifier. Disable “Real-World Map Size”.

Step 41

Click on the “UVW Map” modifier, then rotate the modifier’s “Gizmo” by ’90′ degrees on the ‘y’ axis.

Step 42

Scale down the “Gizmo” on the “z” axis and move it up (as shown). Now render the animation.

Final Effect

I hope you enjoyed this tutorial. Below you can see my final results.

Don’t miss more exciting tutorials and guides published daily! – Subscribe to Cgtuts+ by RSS.

Add Comment

Discussion 50 Comments

  1. What’s the name of the song?

  2. Amazing Tutorial! I will try it soon

  3. Joseph says:

    Look’s like nipple to me ;-) Btw. nice tiiii i mean tut :-P

  4. Mark says:

    cool!! nice one bro!

  5. chenx says:

    Cool effect!!Nice tut!

  6. asdasd says:

    i am so tired of the 3d max tuts. that program is garbage and you keep putting tuts for it up!!!!!!!!!!!!!!!!!!!

    • There is a very good reason why we keep posting 3ds Max tuts (along with tuts for other major apps of course), and that is because many people use the program both professionally and in the classrooms, and there is an extremely high supply and demand for them. Besides, although you may think that 3ds Max is garbage, if you read the comments from other readers, check the apps you are required to know to apply for jobs on most CG job boards, and take a look at the final results of the 3ds Max tutorial authors…you will see that a vast majority of the industry does not agree with that statement.

    • Kareem Karawia says:

      i don’t agree you man … i am working for now on 3ds max about 4 years … the app is not garbage at all…. it’s all about how much you work on it you will be good at the end

  7. Kareem Karawia says:

    Very nice tutorial ..and thanks a lot for it…. but i am beginner in after effect and i want to know how to put the sound on the movie back in after effects ….thanks in advance

    • Cristian Pop says:
      Author

      Just put the movie and the sound files in the timeline, then when you render the anim, in the Output module settings, enable Audio output. That’s all.

  8. k3d says:

    Cool but you can make this so much faster with Cinema + Mograph 2.
    Waste of time with nodes.

    • Cristian Pop says:
      Author

      Thanks!
      That’s really good, but not everybody use c4d. This tut is not just for creating a dancing particles effect, following it , you can learn something about tp, nodes, operator, helper and how to use them to create simple or complex particle effects.

  9. Cristian Pop says:
    Author

    Thanks guys ! I am glad you like this tut. You can also watch more tests, using different animated maps on vimeo:

    http://vimeo.com/6891623 ,
    http://vimeo.com/6891636

  10. Kevin Heath says:

    I got all the way to step 13 and there is no button on my 3ds max 2009 for ‘Thinking particles’. Where does this object come from – all the others in your diagram but where Thinkning is in yours I have blank space.

  11. Kevin Heath says:

    In step 28 when you say ‘In the “TexmapColor” helper rollout, add the image sequence created in AE’ what texture map do I choose from the material list of 3ds max to be able to add the image sequence created in AE?

  12. Kevin Heath says:

    I think ive sussed it – choose bitmap and tick the box that says sequence.

  13. pankaj kushwaha says:

    sir this a full volume of speaker wonder full craete good

    i like it

  14. J Wright says:

    Can anyone recommend an application for seperating the bass, treble, and normal from other songs?

    Can’t wait to try out this tutorial!

  15. sreekant says:

    i like this tutorial, but i have a small doubt is ther any way to put a video on the particles……….?

  16. Geeb says:

    where are the project files? Do we have to divide in three the song? bass mediums and trebles?

  17. Geeb says:

    huy well i found it jajajaja

  18. Sheetal Parekh says:

    I am using 3dsmax 9 in that there is no thinking particle…… from where should i get it…. pls need your help wanna try this tuts……… Pls email me on sheetalart@gmail.com

  19. Aaron says:

    I am new to Adobe After Effects, I am stuck on step 9 “Render the animation as a .jpeg sequence.” ? how is this done in Adobe After Effects CS4?

  20. Witor says:

    Sorry but I cannot download the Project Files

  21. Mr_Meph says:

    1: I’ve done quite a few of your tuts, and they’re all good, this one’s awesome too.
    Hooooowever, there’s a few things I wish you could cover here please?
    - How do we get the Bass, Treble and Normal from any song? I know there’s a tutorial on videocopilot covering this, but I’m wondering if you did it in another way?
    - Secondly, your download project files button seem a bit buggy… :S Worked third time or something for me back when I did it…

    Other than that, AWESOME tut man!

  22. Simp says:

    A very helpful tutorial – really!

    but i don’t get one thing – where can i adjust the maximum height that the emitted particles can reach. in my scene they jump too high. Is there something becides the AE-generated jpg sequence to have more control over particles ? maybe i’ve missed something ?

    thx anyway! =)

  23. alexei says:

    what music track you use in this preview?) nice

  24. delali says:

    nice tutorial…3ds max is one of the craziest apps out there. depending on how much time you spend getting familiar with it, the possibilities are endless. personal story.

  25. sergen says:

    hi cristian great tutorial. can you pls tell why do step 41 ? just wanted to know what i am doin.

  26. Bjarni says:

    To be honest, this tutorial is quite useless without knowledge of how to extract the bass and treble from a soundtrack yourself.

    You can only use this tutorial with that little sound clip you made. I was hoping to make a video with this effect for my friends music track.

  27. thodesigner2004 says:

    Hi
    Everybody may be send this file.
    Thanks.
    Thodesigner2004

  28. Chris says:

    Kudos on the tutorial and using Metric as the demo artist!

  29. loran says:

    Wow, Thinking particles for that?? I think it could be done without plugin and even without particles, just a basic scatter and tricks for the color change. You don’t have to create the displass in After effects, everything could be done in 3ds max. Maybe I ll wrote a different version for this effect…
    Anyway your tutorial is a good first step in TP.

  30. Cristian Pop says:
    Author

    It’s true, you don’t need TP for this effect… I am just a big fan of TP and I wanted to show how to create this effect with it.

    Thanks,
    Cris

  31. CGCraftsman says:

    I for one am very thankfull for these 3DS max tutorials. Please keep them coming

  32. Jakobberry says:

    Really getting discouraged. I’ve followed your tutorial to the letter, but at step 35, when I should see love bouncy particles, they just sit there. Nothing happens. Any idea where I went wrong? And I did remember to check sequence when importing the map. The tutorial is pretty easy to follow, so I’m getting a bit annoyed. The only thing different is that I made my own map in AE with different music.

  33. Jakobberry says:

    Ahhh… Figured it out. By “to the letter” I meant missing that one little thing.

  34. Oliver says:

    I have a daught Step 39

    im wondering how did you do the gradient color.

Add a Comment

To add a code snippet to your comment, please wrap your code like so: <pre name="code" class="html">YOUR CODE</pre>. You can replace the class name with "js," "css," "sql," or "php." If there are any "<" or ">" within your code, please search and replace them with: &lt; and &gt; respectively.