Tuesday, 23 June 2009 12:12

A new update to version 1.5 of Sergo Pogosyan's Batch Camera Render Script has been released. It's a very nice replacement for Max's Batch Render, offering increased functionality. It allows you to assign lights to your cameras, so it's no longer necessary to use Scene States to switch lighting setups for a camera in batch render. This frees up Scene States for more important tasks like globally switching geometry, layers, etc., independent from the Batch Render.

Download the Batch Camera Render 1.5.1 script

Installation

  • Go to MAXScript -> Run Script and execute the script from any folder on your disk
  • Customize -> Customize User Interface -> Toolbars Tab
  • Browse to the category 'Sergo Pogosyan' and drag the 'Render scene cameras...' button onto any toolbar (create a new one before if you like)

More info over at Scriptspot.

Thursday, 18 June 2009 19:06

Intro

How to fade out particles with PFlow :: Using a Blend Material with a Particle Age Map for the particles View the result

My goal was to create a simple bloody impact effect with a custom alpha texture.

Although the legacy Max particle systems would have been up for the task, I choose Particle Flow to understand it better. I wanted the effect to fade out smoothly, but Particle Flow doesn't offer any option to do just that. So I did some research...

After checking tutorials and forums at Autodesk's Area, CG Talk and many more sites I couldn't find a good enough solution for fading out particles with an occupied Opacity Slot. Finally, the sparking hint came from within 3ds Max's help: By utilizing a Blend material.

Tutorial

This tutorial is beginner friendly and starts with the basics. However, you can also jump right into the important mapping part or grab the file at the end and analyse it.

  1. Create a PF Source Object found within the Particle Systems Creation Panel. Name it something like "blood_splatter" :)
  2. Adjust your timeline to something shorter like 15 frames.
  3. Open the Particle View and adjust the Birth and Speed Operators to your liking. I tweaked them to a short burst:Adjusting Birth and Speed operators
  4. Create a Plane roughly the size of a single blood splat. Make sure "Generate Mapping Coords." is checked.
  5. Replace the Shape Operator with a Shape Instance Operator.
  6. Pick the generated Plane as Particle Geometry Object so it becomes our particle. Make sure "Acquire Mapping" is checked to get the UV mapping from the Plane.
  7. The Plane isn't visible in the viewport, yet. To fix that, click on the Display Operator and select "Geometry" from the dropdown - voilá!
    Adjusting the Shape and Display Operators to make our Plane visible in the viewport.
  8. The next important step is to apply a Delete Operator. This applies a lifespan to the particles, so the Particle Age Map we apply later works correctly. I adjusted the  Operator so it fits into my 15 frames.
    Apply a Delete Operator so the Particle Age Material works.
  9. Use other Operators like Rotation and Scale to get some more variation into the particles. Animate the Scale Factor in the Scale Operator if you like. I also used a Gravity and Drag Spacewarp and applied them via the Force Operator to get a more dynamic motion. 
  10. Get the tutorial file (3ds Max 2009+) starting at this step
  11. Open the Material Editor [F10] and create a transparent Blood Material (see Step 13 for a screenshot). Make sure "Show in Viewport" is checked. Here is my PNG texture:
    Blood particle
  12. Assign a Material Static Operator to your PFlow Event and drag the Blood Material from the Material Editor into its slot. Make sure to instance it!
    Applying a Material to our particles.
  13. We arrived at the core of the problem here: The Opacity slot of the Blood Material is occupied and cannot be used for the Particle Age Map.The Opacity slot of our material is occupied
    The consequence is that the particles just vanish or stay mid-air at frame 15. Ugly! 
  14. To work around this problem we use a Blend Material (call it pflow_blood).The first slot contains our Blood Material, the second slot contains a simple Invisible Material (just set Opacity to 0).
    Set the Opacity to 0
  15. As Mask we use the Particle Age Map. Make sure to set Color #1 to black and Color #3 to white so the particles fade out, not in. Basically, the Particle Age Map needs to gets whiter towards the end to fade in the Invisible Material.
    The Blend Material and Particle Age Map Settings
  16. Now instance the Blend Material into our Material Static Operator and you're done! 
Get the finished file here! (3ds Max 2009+)

Alternatives

The downside of the alternatives is that they are not connected to the particles. So if you change the lifetime of your particles you have to readjust the visibility animations aswell. When rendering with Mental Ray, I found that only alternative #2 works with PFlow. Animating the Plane we created in Step 4 has no effect btw!

1) Animating the Blood Material opacity

2) Animating the visibility track of the particles themselves
This is not so easy, because selecting the particles in the viewport also selects the PFlow System (and animating that Visibility Track would have no effect). The particles themselves reside in the 0 (default) layer; however, they are not displayed there! Open the Layer Manager and move all objects you see in the 0 (default) layer to a new one. If you now select all objects in the 0 (default) layer you have your particles selected. Now you can animate the visibility track [Autokey On. Right Click -> Object Properties -> Visibility].


Thursday, 07 May 2009 10:56

Following up my Blog entry about free Mocap data from CMU from January, Bruce Hahne announced the release of 3ds Max compatible BVH files of the complete CMU motion library.

Tutorial by Bruce Hahne :: Using the Carnegie-Mellon BVH files with 3dsMax 3ds Max Tutorial
"The motion data is free and available to use for any project. There is no use license, i.e. the data isn't under Creative Commons or a similar limited-use license."
– Bruce Hahne

Grab the BVHs from the links over on Bruce's page.

Sunday, 25 January 2009 21:53

In this tutorial I show you my workflow to get a Puppetshop animation into the Unity Engine. Quite some steps are necessary for a successful export and I hope the provided images will make it easier for you to follow this tutorial. Intermediate knowledge of 3ds Max is required.

We're starting with exporting the Puppetshop animations as default 3ds Max bones and saving them into single files:

  1. Make sure the meshes (the character itself, clothing, etc.) you want to export are linked to the Puppetnode and neither frozen, nor hidden.
  2. Select the Puppetnode and go to File => Mocap Advanced.
  3. Press Export => As Max Bones and click Yes in the duplicate skinned meshes dialogue.

Puppetshop exported your character as default 3ds Max bone hierarchy and baked all animation onto them. By default the exported root bone is now selected.

  1. Select the Bones and the duplicated skinned meshes and Save Selected.
  2. Name the file like this: character[at]animation.max (e.g.: char_monster[at]attack01.max)
  3. Hit delete to remove the Max Bones and duplicated skinned meshes
Repeat the above steps for all character animations. Next we're going to export the single animations as .fbx files so we can import them into Unity:
  1. Open your clean animation file (only Max Bones + Character Meshes)
  2. Make the start of the animation range 1 frame earlier. If your animation went from frame 1 to 100 it should now go from 0 to 100.
  3. Select all objects (Ctrl-A) and draw a selection around all the keys on the first keyframe - delete them. If your animation went from 1 to 100 you should delete all the keys on frame 0.
  4. Now change the range of your animation back to the initial values. Taking the example from before it should now be 1 to 100 again.
  5. Export it as FBX with these settings:
  6. Animation => Deformations => Skins on
    FBX Export Options 1
  7. Advanced Options => Units => Scale Factor => Millimeter
  8. Advanced Options => Units => Axis Conversion => Y-Up
    FBX Export Options 2
  9. Export it

If you have any additions or corrections you think should be included in this tutorial, please mail me!

Tuesday, 20 January 2009 10:55

Your muscles constantly work to keep your body in balance. We will try to emulate this by adding noise to our animations. It's an easy way to make your animations feel more natural, similar to adding noise to a clean rendering which yields a more pleasing, photography-like result. Good controllers or objects for adding noise are the puppet root, head, chest and hands.

How to add noise to an animation

  1. Create a new animation layer for your noise
  2. Select the bone you want to add noise to (e.g. the puppet root)
  3. Open the Puppetshop trackview
    Open Puppetshop Trackview
  4. Select the track you want to convert to a noise track, e.g. the X Position track (a)
  5. Got to the menu Controller => Assign... (b)
  6. Select the Noise Float (c) controller in the popup to replace the original Bezier Float controller
    Replace the original controller with a Noise controller

How to transfer the generated noise onto other animations

  1. Select the Noise Layer of your animation
  2. Select another animation you want to apply the noise to
  3. Go to Puppetshop's Layer advanced rollout
  4. Go to Duplicate Layer From and chose the animation with the noise in it from the dropdown
  5. Shift click on the Add button to copy the layer instead of instancing it
  6. Check the animation and see if it still loops seamlessly
  7. If not, create a new layer and activate Auto Key Mode
  8. Copy the starting pose to the end of your frame range

Page 1 of 3