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.
Intro
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.
- Create a PF Source Object found within the Particle Systems Creation Panel. Name it something like "blood_splatter" :)
- Adjust your timeline to something shorter like 15 frames.
- Open the Particle View and adjust the Birth and Speed Operators to your liking. I tweaked them to a short burst:

- Create a Plane roughly the size of a single blood splat. Make sure "Generate Mapping Coords." is checked.
- Replace the Shape Operator with a Shape Instance Operator.
- 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.
- The Plane isn't visible in the viewport, yet. To fix that, click on the Display Operator and select "Geometry" from the dropdown - voilá!

- 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.

- 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.
- Get the tutorial file (3ds Max 2009+) starting at this step
- 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:

- 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!

- 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 consequence is that the particles just vanish or stay mid-air at frame 15. Ugly! - 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).

- 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.

- Now instance the Blend Material into our Material Static Operator and you're done!
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].
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.
"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.
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:
- Make sure the meshes (the character itself, clothing, etc.) you want to export are linked to the Puppetnode and neither frozen, nor hidden.
- Select the Puppetnode and go to File => Mocap Advanced.
- 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.
- Select the Bones and the duplicated skinned meshes and Save Selected.
- Name the file like this: character[at]animation.max (e.g.: char_monster[at]attack01.max)
- Hit delete to remove the Max Bones and duplicated skinned meshes
- Open your clean animation file (only Max Bones + Character Meshes)
- 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.
- 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.
- 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.
- Export it as FBX with these settings:
- Animation => Deformations => Skins on

- Advanced Options => Units => Scale Factor => Millimeter
- Advanced Options => Units => Axis Conversion => Y-Up

- Export it
If you have any additions or corrections you think should be included in this tutorial, please mail me!
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
- Create a new animation layer for your noise
- Select the bone you want to add noise to (e.g. the puppet root)
- Open the Puppetshop trackview

- Select the track you want to convert to a noise track, e.g. the X Position track (a)
- Got to the menu Controller => Assign... (b)
- Select the Noise Float (c) controller in the popup to replace the original Bezier Float controller

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