Your online Softimage Educational Resource

The blog has been online for more than 4 years and there’s still not a single post even remotely related to the delicious brew called coffee… Perhaps it will someday, but in the meantime you can read the articles about Softimage. Most of the material are tutorials and Q&As I’ve written for 3D World Magazine sometime between today and 2003. If you have any questions please don’t hesitate sending me an email.


Thanks to Letterbox Animation Studios for hosting all the scene files.

Make sure you visit their Redi-Vivus.com for 100s of hours of free XSI video tutorials.

Showing posts with label Animation. Show all posts
Showing posts with label Animation. Show all posts

Thursday, April 22, 2010

Single axis direction constraint



Image 01
While you can’t restrict the direction constraint to a single axis per se, using an extra object as a buffer will create the desired result.




As you’ve noticed there isn’t a one click solution to limit the direction constraint to a single axis. However there’s no need to despair as we’ve supplied you with two different methods to tackle the problem.

Open the scene Surveillance_Camera.scn from this issues DVD. The first method requires two null objects, one which can be moved in any direction and one that will be used for the actual direction constraint. Create a null object, name it Direction_Cns and move it somewhat in front of the surveillance camera. Create another null object, name it LookAt and move it in front of the camera as well. Press [Ctrl] + [K] to pen its Local Transforms PPG and click the Lock icon to pin it to the screen. Select the Direction_Cns object and press [Ctrl] + [K] to open its transform PPG as well. Click and drag the animation icon (the green divot) from the X Position in the LookAt PPG and drop it on the X Position animation icon in the Direction_Cns PPG. By dragging and dropping an animation icon from one parameter to another creates an equal expression, meaning the second parameter will match the exact same value as the first. Drag and drop the Z Position of the LookAt to the Z position of the Direction_Cns and close the PPG’s. Select the Camera_Orientation and from the Constrain menu choose Direction. Pick the Direction_Cns when prompted. Select and move the LookAt object to change the direction of the Surveillance_Camera. Save your scene under a new name.

The second method uses a somewhat different approach but has the same outcome. Open the Surveillance_Camera.scn again. Create a null object, name it Direction_Cns and position it straight above the camera. Create a second null, name it LookAt and position it in front of the camera. Select the Camera_Orientation object and from the Constrain menu choose Direction. When prompted, pick the Direction_Cns. Click the Y button in the Align Axis section of the Direction Cns PPG to correct the cameras orientation. Switch to the Up Vector tab. In the Optional Up Vector Control Object section, click the Pick New button and pick the LookAt object. Select Z as the Affected axis and close the PPG. While the direction is constrained to the Direction_Cns object, the added up vector gives you the final control of the cameras orientation. Select and move the LookAt object to change the direction of the Surveillance_Camera.

The project files used in this tutorial can be found at:
http://www.redi-vivus.com/Caffeineabuse/Direction_Constraint.zip

Image 02
The other way around it is to have the constraint pointing to a dummy object and then the up vector as the actual target for the direction.


Quick tip
In addition to naming convention it’s a good practice to use different colors and/or icons on your null objects. This way you can easily tell what objects does what by just looking at your scene.


Read the full post>>

Thursday, December 3, 2009

Animating a cable using Softimage cloth


The project files used in this tutorial can be found at:
http://www.redi-vivus.com/Caffeineabuse/Cable_Using_SoftimageCloth.zip


Softimage Cloth
Start by open the scene cabel.scn from this issues CD. Select the Cable_Cloth object and press [T] to set the selection filter to points and select the two vertices at the right end of the object. From the Edit menu choose Create Cluster with Center. Press [4] to switch to the Simulate Toolbar. Select the Cable_Cloth object and from the Create > Cloth menu choose From Selection. Different types of cables obviously has different characteristics. Use the values in the above screenshot as a starting point and experiment on your own.

Local Cloth Cluster
Now, select the two vertices again and from the Create > Cloth menu choose Local Cloth Cluster. Make sure you check the Nail checkbox in the Cloth PPG. Select the object again and from the Get > Force menu choose Gravity. Select the Cable_Cloth again and from the Modify > Environment menu choose Set Obstacle. When prompted, pick the Floor object. Right click to end the picking session. In the Floor_obstacle PPG increase the friction to 0.8 or so to stop the cable from sliding all over the place. Set the Push length to 0.1 to compensate for the cable’s thickness.

Extract from edge
Select all the edge along one side of the cloth object. Press [1] to switch back to the Model toolbar and from the Create > Curve menu choose Extract from Edges. This creates a separate curve object from the selected edges and because it’s a live operator the cloth simulation will automatically be propagated as well. Name the curve Cable_Path. From the Primitive > Curve get a Circle and set the Radius to 0.05. From the Create > Poly.Mesh menu choose Extrusion Along Curve and pick the Cable_Path curve when prompted. Animate the Null object and your cable will follow perfectly.


Read the full post>>

Friday, May 15, 2009

Animating frost growing across the surface



Animating a gradient sweeping across the surface is a very quick and efficient way to create a transition from one material to another.

This is a very common question. Okay perhaps not the frosted effect, but the part about changing the textures or materials for an object over time. You obviously need a surface for the material so start a new scene and create a simple object. Or just open the scene frost.scn from this issues DVD. Select the frost object and from the Get > Material menu choose Phong and Press [7] to open a Render Tree. Get a Gradient node from the Nodes > Texture menu and a Mix 2 Colors node from the Nodes > Mixers menu. Connect the gradient node to the Weight input of the Mix_2colors node and the Mix_2colors node to the surface input of the Material node. Double click on the gradient node to open the PPG and switch to the Texture tab. Click the New button and from the menu choose Planar XY. Switch back to the RGBA Gradient tab and click the White/Black button in the Preset section to set the gradient to white and black. While this will create a nice gradual transition, it’s to uniform and unexciting. To break up the gradient you’ll need to add a new marker. Click somewhere in the middle of the gradient slider to add a third marker. With the new marker selected, click on the connection icon for the color and from the menu choose Cloud. Switch to the Texture tab, click the New button and choose Spatial. Switch back to the Cloud tab. Set the Clouds color to a light gray, such as R: 0.8, G: 0.8, B0.8 and the Sky to a slightly darker gray, R: 0.58, G: 0.58, B0.58. Switch to the Advanced tab and change the X,Y and Z maximum to 10.

From the Nodes > Illumination menu, add two Pong shaders and connect one to the base_color input of the Mix_2colors node and the other to the color1 input. Modify the Phong shaders to your liking and close the Render Tree. In a viewport, select the planar Texture_Support and scale it to about 0.4 on the Y-axis. Position it just below the frost object and press [K] to set a keyframe. Go to frame 50 and move the Texture_Support so it’s just above the object and set a new keyframe. Render the animation and you’re done.
Once the gradient is in place, you can replace the solid colors with textures to create complicated pattern.

The project files used in this tutorial can be found at: http://www.redi-vivus.com/Caffeineabuse/Frost.zip

Quick tip
You can create a completely different look for the transition just by replacing the cloud texture with any of the other textures nodes.


Read the full post>>

Thursday, May 14, 2009

Animating a mechanic billboard in Softimage XSI

While the mechanical billboard is outdated at best, your virtual version is just about to start its glory days.

Start by opening the Billboard.scn scene from this issues CD. The scene contains a bunch of trilons or triangular prisms, 300 to be precise. Using a couple of thousands would obviously be more striking but for the sake of demonstration the number is keep low. While any of the prisms could be used to animate their rotation, it’s a good idea to separate the animation parameters from the actual billboard. Start by selecting the null object named Prisms_Rotation. Press [C] to activate the rotation tool and press [K] to set a keyframe at frame 1. Go to frame 16, rotate the Prisms_Rotation 120 degrees on the Y-axis and set a new keyframe. With the rotation still at 120, set another keyframe at frame 80. Press [0] (zero) to open the Animation Editor and select the function curve for the Y rotation (roty). From the Curves menu choose relative Cycle. To change the pace of your mechanic billboard, just move one of the 3 keyframes.

Press [2] to switch to the Animate toolbar. From the Create > Parameter menu choose New Custom Parameter Set. Enter Billboard as the name and click OK. Press [8] to open an Explorer, select the Billboard parameter set and press [Shift] + [P] to add a new custom parameter. Name the new Parameter Rotation_Delay. The parameter will be used to control the offset of the prisms. Changing the slider will automatically change the delay. The offset is evaluated in seconds; consequently you’re going to use very small values. Change the Maximum Value Range to 0.01 and click OK to close the PPG.

Open an Explorer and select the Prism_No1. Scroll down to Prism_No300 and shift select it to select all the objects in order from 1 to 300. Press [Alt] + [4] to open the Script Editor. Set your script language to Jscript (File > Preferences) and enter the text beneath.
Press the Run button in Script Editor to execute the script. Open the Bilboard PPG and playback the animation while changing the Time_Delay slider.

Using a simple loop in Jscript adds the expression with the delayed rotation in seconds rather than the frustrating hour required if done manually.

The project files used in this tutorial can be found at: http://www.redi-vivus.com/Caffeineabuse/Billboard.zip

Quick tip
The order in which the objects are selected also controls the extent of the offset, which in turn is set by Rotation_Delay slider. So, select the object in the order you want them to turn.




Read the full post>>

Saturday, October 25, 2008

Animating Growing Vine


Wile the animation can easily come of as rather complicated it isn’t all that difficult to setup in XSI.

Start by creating a cone from the Get > Primitive > Polygon Mesh menu. Set the Length to 30 and the Base to 0.2. Increase the U Subdivisions to 12 or so and the V to 50. Name it Liana. Click the Center button in the Select menu and in the front viewport, move the object’s center all the way down to the bottom of the liana. This will create the effect of the liana growing from its base rather the center of the object. Since lianas usually don’t grow in perfectly straight lines, you’ll need to give it a bit more organic shape. From the Create > Curve menu choose Draw Cubic by CVs and draw a curve in the top viewport. Make sure you scatter the points a bit on all axes to give the liana a nice three dimensional flow. Now, select the liana object and from the Modify > Deform menu choose by Curve. Pick the curve when prompted. In the Curve Deform PPG start by switching to the Constraint tab and check the Constrain to Deformer checkbox. Switch back to the Curve Deform tab and change the Translation Along Curve so the liana lines up with the curve. Set the Scaling Along Curve to 0 and set a keyframe. Set a keyframe for the Roll parameter as well. Go to frame 100, set the Scaling Along Curve back to 1, the Roll to -145 set another keyframe on both parameters. From the Get > Primitive > Curve menu choose spiral. Set the Height to 20, the End Angle to 3600, the Start Radius to 0.25, the End Radius to 0.15 and finally the Subdivisions to 100. With the spiral selected, from the Modify > Deform menu choose by Curve and pick the same curve that is used to deform the liana. Change the Axis to Z, check the Constrain to Deformer checkbox and change the Translation Along Curve till they line up. Create another cone and make it longer but thinner than the first liana. Apply a Deform by Curve operator and pick the spiral curve. Animate in the same manner as the first liana.
The project files used in this tutorial can be found at:
http://www.Redi-Vivus.com/Caffeineabuse/Animating_Growing_Vine.zip
Adding a twist deformer, or any other deformer for that matter, to the liana before deforming it along the curve will add to the overall appearance of the animation.
Quick tip
To make the liana really stick to the surface of another object you can add a Shrink Wrap deformer to the curve. Change the projection to Closest Surface and lower the Amplitude to keep the objects from intersecting.


Read the full post>>

Thursday, October 9, 2008

Offset in Time


















To change the offset of the stones, simply change the 0.08 value in the script editor and run the script again.
If you don’t have a deck of dominoes of your own, start by opening the dominoes.scn scene from this issues CD. Select the stone object, from the Main Command Panel > Constrain menu chose Curve (Path) and chose the dominoes_path curve when prompted. In the Path Constraint PPG, switch to the Tangency tab. Check the Active checkbox and click the –Z button to align the stone. Leave the PPG open, because you’ll return to it in just a few seconds. With the stone still selected, press [Shift]+[Ctrl]+[D] to open the Duplicate Multiple PPG. Enter 30 as the number of Copies and press OK. Press [8] to open an Explorer. Select the stone object, hold down [Shift] and select the stone30. This is important as the order in which the objects get selected will determine in what order they’ll get distributed. Return to the Path Constraint PPG and enter L(100) in the Path %age. This will distribute all the selected stones evenly along the curve. Once that is done you no longer need the path constraint, so with all the stones still selected chose Constrain > Remove All Constraints.

While you’re more than welcome to animate each stone falling onto the next and so on by hand, once you reach your second or third stone you’ll probably realize it just isn’t a viable solution. A more convenient approach is to animate a single stone and then pass on its animation to the others, each with the time slightly offset. Select the stone and set a keyframe for the rotation. Go to frame 4, rotate the stone -37 degrees on the X-axis (so the stone just touches the next stone) and set a new keyframe. Go to frame 15, rotate the stone to -82 degrees and set another keyframe. Next, press [0] (zero) to open an Animation Editor and change the slope handles on the fcurve to match the screenshot. Open an Explorer and select stone1 to stone30 and open the Script Editor. Enter the following lines and press the Run button. This will loop trough your selection and creates an expression which referencing the animation on the x-axis and applies an additional offset of 0.08 seconds for each stone.
The project files used in this tutorial can be found at:
http://www.Redi-Vivus.com/Caffeineabuse/Offset_in_Time.zip



















Any changes made to the first stone’s animation will automatically change the animation of all the others, as their controlled trough an expression.

Quick tip
This approach is by no means limited to dominoes stones. The same expression can be used in numerous situations where you want to use the same animation on many objects, but offset them in time.



Read the full post>>

Wednesday, August 6, 2008

Cartoon Explosion

Even though it’s just about impossible to find a Hollywood blockbuster these days that doesn’t include its fair share of special effects and explosions, people just don’t seem to ever grow tired of them. On the contrary; take a poorly written excuse for a story, add a couple of nice, rich explosions and some other FX while you’re at it, and people will still see it. Let’s not single out a specific film because there’s just too many to choose from. Nevertheless, in all fairness sake, the sheer fun of blowing things up just might vindicate an otherwise totally uncalled-for explosion, or possibly even a bunch of them.

Without getting to scientific, let’s have a quick look at what we are about to create. Everything explodes differently, so depending on what’s causing it the result can range from a massive eruption of fireballs to a modest puff. Even so, they do share the same elemental course of events. The abrupt and violent release of energy sets of the explosion from a small or limited area and will aggressively grow larger. As the explosion or cloud travels away from the point of origin it loses its energy and will settle down and gradually fade away.

Due to the complexity and chaotic nature of explosions the majority seen in movies are in fact live footage rather than entirely computer generated images. Fortunately enough, creating a cartoonish style is very much about keeping things as simple as possible. Unless you have got way more spare time that is healthy for you, there’s a very limited chance that you’ll be adding that amount of details to 24 individual pictures per second when you are drawing them all by hand. After all, this is the style you are trying to mimic. Instead, the idea is to create a few basic shapes and distribute them over time with the help of XSI’s particle systems. Even so, you will still need to get a great deal of additions variation in there. To break-up the uniformity of the cloud even further, you’ll add animated textures to deform the geometry and shifting the colours.

However, before you can start blowing things up you will need to download and install the BA shader collection from www.binaryalchemy.de/. This set of free shaders is truly a ‘must have’ in any arsenal, whether your in the demolition business or not. So get to it, and let the fun begin…

The project files used in this tutorial can be found at:
http://www.Redi-Vivus.com/Caffeineabuse/Cartoon_Explosion.zip

STAGE ONE Creating the elements
Step 01
The two key elements to successfully create an explosion are the timing and the shading. By using a combination of geometry, animated textures, particles and these 24 steps you will get a good deal of control of both of them. From the Get > Primitive > Polygon Mesh menu chose Sphere. In the PPG, change the Radius to 10 and name it Flame.
Step 02
With the sphere still selected, click the Selection button in the Select panel and chose Geometry Approximation from the explorer. In the PPG, switch to the Displacement tab and change the displacement method to Fine and increase the maximum displacement (Max Displ.) to 6and Length to 1. Press [Ctrl]+[D] to duplicate the sphere. Change the name of the duplicate to Smoke.
Step 03
Press [Ctrl]+[D] again to create another duplicate and name it Blaze. Press [T] to change the selection filter to point, select all the points on the Blaze sphere and scale them to about 20 percent of their original size. Next, select each row of points and move them so the shape of the sphere roughly matches the above screenshot.

STAGE TWO Creating the material
Step 04
Select the Flame sphere and from the Get > Material menu chose Simple Toon Paint. In the PPG, check the Enable checkbox under the Ambience. Lower the Amount to about 0.3 and check the Shadows Only checkbox as well. Switch to the Highlights tab and lower the Diffuse Color to about R: 0.5, G: 0.5, B: 0.5. Uncheck the Iluminance checkbox and increase the Coverage to about 0.62. Switch to the Rimlights tab.

Step 05
While the rimlight commonly is used to brighten the silhouette of an object, you’ll the very opposite. Darkening the silhouette will help giving the effect of the flame burning with different temperatures as well as adding depth to it. In the Layer 1 section, check the Enable checkbox. Set the Color to R: 0.16, G: 0.16, B: 0.16 and change the Compositing method to Multiply. Lower the Coverage to 0.6 and set Softness to 0. Close the PPG.
Step 06
Press [Ctrl]+[7] to open a Render Tree. As the explosion detonates the flames will burn with a vivid yellow colour. Once they die out they should gradually turn into a gray cloud of smoke before eventually fading away. From the Nodes > Mixers menu, get a Mix 2 Colors node and connect it to the Surface input of the Toon_Paint node. Open the Mix_2colors PPG and set the colours as shown in the above screenshot.
Step 07
Instead of just fading the two colours, you will use of a texture to reveal the new colour and hide the old one. The difference may be subtle, but as usual - it is the small details that can make the big difference. From the Nodes > Textures menu chose More… In the browser, click the Paths button and chose Binary Alchemy Shader Collection - Essential. Pick the BA_fractal4d preset.
Step 08
Connect the BA_fractal4d node to the weight input of the Mix_2colors node and double click on the node to open the PPG. Start by setting all the colours except the color1 to pure white. To make the pattern actually grow through the sphere, you’ll animate the contrast of the colours rather than the colours them self. This will give the effect of gray smoke spreading across or covering the yellow flame surface.
Step 09
Go to frame 5 and click on the animation icon (the green dot) next to the Min in the Contrast section of the PPG. Go to frame 30, set the Min contrast to pure black and set a new keyframe. While the effect is good, the pattern is a bit too small or muddled. This can be fixed by changing the scale of the noise. Switch to the Texture Support tab and set the scale on all three sliders to 0.5. Return to frame 1.

STAGE THREE Adding puffiness

Step 10
It might be a bit difficult to fully see the effect of the material you’ve just created, but this is all about to change. By using a noise pattern to displace the geometry you’ll turn the smooth surface of the sphere into a puffy cloud in no time. From the Nodes > Textures menu chose More… etcetera, get a new BA_fractal4d node and from the Nodes > Math menu get a Change Range node.
Step 11
Connect the BA_fractal4d node to the Input input of the Change_range node and the Change_range node to the Displacement input of the Material node. Double click on the Change_range node to open the PPG. By remapping the default values, you’ll be able to push the geometry both inward and outward and as well as increase the amount of deformation. Set the New Range: Start to -5 and the New Range: End to 5.

STAGE FOUR Adding variations
Step 12
Open the BA_fractal4d PPG and check the Smooth edge checkbox.. Switch to the Noise tab. Click the animation icon next to the Time Red. Go to frame 50, set the time to 5 and set a new keyframe. Switch to the Texture Support tab. Change the Pre-Scale coordinate to Big Noise and all three scale sliders to 10. Go to frame 20 and click on the Scale animation icon to set a keyframe. At frame 50, set the scale to 1 and set a new keyframe.
Step 13
So you’ve completed the material for the flame sphere, but the Smoke and Blaze spheres could use some attention as well. Select the Blaze and the Smoke spheres and from the Get > Material menu chose Assign Material. When prompted, pick the Flame object to assign the same material these objects as well. Now, select only the smoke sphere and from the Get > Material menu chose MakeLocal Material.



Step 14
Update the Render Tree to make sure you have the material for Smoke sphere. Open the Mix2colors PPG and change the Base Color to R: 0.5, G: 0.5, B: 0.5. Open the PPG of the BA_fractal4d node controlling the Wight. Right click on the Min contrast animation icon and choose Remove Animation. Now, set the Min to RGB to 0 at frame 1 and set a keyframe. Change the RGB to 1 at frame 10 and back to RGB 0 at frame 40.






















Step 15
In order for you to be able to use the geometry with the soon to be created particle systems, you’ll need to put them into different groups. So, select the Flame and the Smoke sphere and press [Ctrl]+[G] to create a group. Name it Blast. Next, select the Blaze sphere. Press [Ctrl]+[G] again to create another group and name it Detonation. Please feel free to use a more intuitive naming convention if you can think of one.

STAGE FOUR Creating the cloud


Step 16
Press [4] to switch to the Simulate toolbar. From the Create > Particles > From Primitive menu chose From Sphere. Select the PEmitter, rename it to PEmitter_Blast and from the Inspect > Emissions menu chose PEmitter_emission. Set the Spread and Var to 180. This will add a nice arbitrary variation to the emission. The next step is to create a sense of an underlying force, so change the Speed to 60 and the Var to 30.




Step 17
Set the Rate to 0 and click on the animation icon to set a keyframe. Go to frame 3, set the Rate to 80 and set new keyframe. Go to frame 10, set the Rate to 0 and set another keyframe. With the right mouse button, click on the animation icon and chose Animation Editor… from the menu. Select the keyframe at frame 10 and change the slope angle to -90, so that it’s pointing upward. Close the AE and return to the emission PPG.




















Step 18
Switch to the Emission tab, change the name to Blast_emission and click the Edit button next to the ParType. Go to frame 1, set the Size to 0 and click the animation icon to set a keyframe. Go to frame 30, set the Size to 15 and set a new keyframe. Go to frame 100, set the Size back to 0 and set another keyframe. Switch to the General tab. Change the Size type to Age %. Please see the above screenshot for the rest off the settings.




















Step 19
Switch to the Instancing tab. Check the Enable checkbox and click on the Pick… button. Pick the Blast group in the explorer. Change the Scaling to Non-uniform to particle. Switch to the Events tab and click the New Event button. Right click on the PType.PEvent and chose Inspect Item… from the menu. Change the Trigger condition to Particle Age % and set the Value to 20 and the Var to 2. Change the Action to Emit.





















Step 20
In the Source section, click the Create button next to the Emission and then the Edit button. Now, in the PEvent_Emission PPG, press the New button next to the ParType. Copy the values shown in the screenshot above, both the one found in the PEvent_Emission > Emission section and those in the PType > General section. Don’t forget to change the Size type to Age %.

Step 21
At frame 1, set the Size to 0 and set a keyframe. Go to frame 30, set the size to 25 and set a new keyframe. Go to frame 100, set the Size to 0 and set another keyframe. Switch to the Instancing tab. Check the Enable checkbox and click on the Pick… button. Pick the Blast group again. Change the Scaling to Non-uniform to particle.

STAGE SIX Enhancing the detonation
Step 22
From the Create > Particles > From Primitive menu chose From Sphere. Select the PEmitter, rename it to PEmitter_Detonation and from the Inspect > Emissions menu chose PEmitter_emission. Go to frame 1, set the Rate to 0 and click the animation icon to set a keyframe. Go to frame 3, set the Rate to 200 and set a new keyframe. Next, go to frame 15, set the Rate back to 0 again and set another keyframe.

Step 23
Set the Speed to 170 and the Var to 30 and click the Edit button next to the ParType. Go to frame 1 and, set the Size to 0 and set a keyframe. Go to frame 5, set the size to 20 and set a new keyframe. Go to frame 100, set the Size back to 0 and set another keyframe. Switch to the General tab and copy the settings from the screenshot above. Don’t forget to check the Align on Velocity checkbox at the bottom of the PPG.
Step 24
Now, switch to the Instancing tab. Check the Enable checkbox and click on the Pick… button. Pick the Detonation group in the explorer. Change the Scaling to Uniform to particle to ensure that the Blaze sphere will keep the right proportions when scaled. The final step is to squeeze all the particles into a compact cloud. From the Get > Force menu chose Drag. Preferable in an explorer, select the both Clouds and from the Modify > Environment menu chose Apply Force and pick the drag object. Right click to end the picking session. To finish, select the three sphere objects and move them off-screen so that they don’t cover the explosion.


Read the full post>>

Getting Started in Animation Part 1

While having the largest box of crayons in class may have been thrilling when you were a kid, ithad little or nothing to do with the quality of the images you drew. Although we doubt thatanyone would seriously argue with this, it’s something people often forget when it comes to 3D. With the manuals of modern 3D applications weighing more than the contents of a schoolsatchel, it’s as easy to be dazzled by the number of features available as it was by the number of crayons. But the basics of 3D are exactly that – basic enough for anyone to follow.

During this four-part tutorial series, we’ll introduce you to the fundamental concepts of 3D animation. While primarily aimed at newcomers, we also encourage more experienced users to drop by our 3D kindergarten; no matter how well you know your software, there’s no substitute to an understanding of the principles of weight and timing. At the end of the day, animation is all aboutbringing things to life, not marvelling at the tools employed to do so.

There are few exercises that can be used to explain the basic principles of animation as effi ciently as recreating the motion of a bouncing ball. The staple of many college courses, this simplelooking task actually involves all the elements that will make or break a much more complex animation. To add a new twist to the proceedings, we’ve replaced the ball with the ‘70s-style toy above. In the first of these tutorials, we’ll simply concentrate on making it bounce in a realistic manner. In future issues, we’ll tackle the slightly more complex challenge of injecting emotion into its movements.

For this tutorial, we’ll be using SoftimageXSI – we’ve included a copy of the educational version (the SoftimageXSI Mod Tool) on the CD. Although it has certain limitations, it will be more than adequate for the purpose. We’ve also provided a model of the toy itself on the disc, pre-built and ready to animate. Just load it in, and follow the walkthrough to the right. If you get stuck with any of the technical terms, you can download a glossary from http://www.3dworldmag.com/

All the project files and the original tutorial as it appeared in 3D World can be found at http://www.computerarts.co.uk/tutorials/3d__and__animation/get_started_in_animation_part_1

STAGE ONE The basics of bounce

Step 1
Let’s start off by having a closer look at what’s happening to the hopper in reality, and what we’re expecting to recreate in our animation. The image
above shows the three extremes position of a ball going down and back up. While this theoretically would be enough information to produce an animation, it doesn’t tell us anything about what’s happening between those positions.


Step 2
On this image we’ve added the path of which the ball would travel along. Note that nearly every natural movement found in real life can be traced in ark-like paths rather than straight lines between point a and point b. So regardless of the subject this is important to remember, as animating motions, rotations, etc in straight lines will come of jerky and appear unnatural. Now, let’s add the timing.
Step 3
As the ball falls towards the ground, it accelerates due to the force of gravity. Since the ball is traveling faster at each frame it will obviously travel a grater distance, creating larger spacing between each keyframe till it makes contact with the ground. Directly after contact, we get the opposite action. The ball’s momentum pushes it of the ground rapidly, but slows down as gravity catches on.

Stage two Setting keyframes

Step 4
With the basic concept clear enough, we should be able to put it into practice. Locate the file hopper.scn from the cover CD and open it. The scene it’s pretty much a 3D representation of the image from the previous step, containing two objects; the hopper, which is our stand-in for the ball and a grid, which will act as the ground.
Step 5
The first thing we’ll do is creating a sort of rough breakdown of the animation, just establish the key positions or the extremes and build upon these. While you usually work on several parameters simultaneous, for clarity we’ll focus on one at the time. Click on the large arrow in the top right corner (hotkey spacebar) to ensure you have the selection tool enabled, and select the Hopper object.
Step 6
Next, maximize the front viewport by position the mouse within its boundary and press F12. Activate the Translate tool (hotkey v) and move the Hopper about 35 units upwards and 30 units to the left. This will be the starting position for the bounce, so click the Key Button (hotkey k) in the lower right corner of the interface to set a keyframe for the object’s position. (refer to the image in step 3as a general guide)
Step 7
The next position to set is where the hopper meets the ground for the first bounce. Go to frame 15, either by scrubbing the timeline of by entering it directly in the Time Box, move the hopper roughly back to its original position and set a new keyframe. Note that the Key Button will set a keyframe only for the currently selected parameter, so make sure you have the right tool activated and are at the correct frame.
Step 8
The momentum of the Hopper will make it bounce to the right and again, but not as high as its first position, since it has lost some of its energy. Go to frame 26 and move the Hopper 15 units to the right (the X-axis) and 20 units upwards (the Y-axis) before setting another keyframe. Please note that the X and Y values aren’t that precise, so use them more as a guide


Step 9
The hopper should touch the ground for the second time at frame 37, and should have traveled another 12 units to the right from the last position and naturally be positioned on the ground plane again. We still need about four bounces before he has lost all of the energy and thereby sticking to the ground, so let’s get to it.
Step 10
At frame 45, position the hopper at the absolute position of X:45 and Y:14 and set a keyframe. The next contact position occurs at frame 54, with the X roughly at 55 and the Y naturally back at 3 again. To keep up the pace, we’ll just quickly list the remaining frames, for which you’ll need to set another keyframe, and the corresponding values.



Step 11
If you get lost somewhere along the way, please refer to the high resolution version of the above screenshot on the CD. At frame 60, X:63 and Y:9, at frame 67, X:70 and Y:3, at frame 72, X:75 and Y:6, at frame 76, X:80 and Y:3, at frame 79, X:85 and Y:4 and finally at frame 82, where the hoppers comes to rest at the values, X:86 and Y:3.

Expert Tip
A keyframe can be described as a placeholder, enabling you to store any type of information for an object/parameter at a given time. Whenever you have two keyframes with the same type of information but with different values, (such as the hopper’s position) XSI will automatically calculate the new values between them. The more keyframes you add to your animation, the harder it can be to control and maintain a smooth fluid motion. While you as a general rule always should strive to build your animations using as few keyframes as possible, don’t overdo it. Some poses might not be possible, or worth the hassle, without adding a couple of extra keyframes.

Stage three Adjusting the function curves
Step 12
To get a sense of what we’ve created so far, click the play button in the Playback Panel at the bottom of the screen (hotkey up arrow). While we do have an animation where the Hopper is passing each of the keyframes we’ve just created, it’s quite far from giving the appearance of a ball bouncing along the ground. Don’t worry about it; we’ll fix it in the next steps.




Step 13
Press the 0 (zero) key on you keyboard to open the Animation Editor (AE). Navigate your viewport so the AE as well as the entire animation is visible. Press the S key to activate the Multi-purpose navigation tool and use the left and middle mouse buttons to Track and Zoom (when in a perspective view, use the right button to orbit).
Step 14
A function curve (commonly referred to as fcurve) is a graphical representation of a parameter’s change of value over time. As the curve changes direction, ease in or out, etc, so will the animation corresponding to that curve. When working on more complex animations, the AE can swiftly become over cluttered. To maintain the necessary control, it is wise to use one of the filtering options offered. From the AE menu, click View>Position>Y.



Step 15
With the fcurve for the Y-axis isolated, press A on your keyboard to frame the entire curve. We’ll start by fixing the problems with the contact positions. Select second keyframes on the left (representing the first contact position) and make sure Unified Slope Orientation (se screenshot) is turned of, as this enables us to modify the slope handles on each side of the keyframe independently.


Step 16
To modify the slope on the curve and thereby the hoppers speed and motion, we can either move the handles directly or enter a value in the Slope Control fields. Moving the handles to point straight upwards (left and right angle value set to -90 and 90) would give us the desired acceleration as the hopper falls towards the ground, but the contact would be a bit to snappy.






Step 17
By using a lower value, say -60 and 60, we’ll still only have contact with the ground for a single frame, but the motion will appear slightly smoother. If they are to get the right influence on the curve, we also need to change their length. Set length for booth of them to just about one. Repeat step 16 and 17 for the other five keyframes marking the contact.





Step 18
Moving on the high points/position, we want to create impression of the Hopper almost hanging in the air. In fact, for a short period of time the hopper is weightless just as his momentum versus gravity are completely balanced. Giving the high point keyframes a flat slope with a relatively substantial ease in and out will form just these conditions.

Step 19
Select the first keyframe on the left and set the left and right handles’ slope angle to 0. Set the length of the slope handle to about 10. Repeat for the other five high point keyframes, but gradually decrease their length for each keyframe. The fcurve for the Y position is coming along rather nicely, but we still have a bit of a jerky motion going on.
Step 20
From the AE menu, click View>Position>X. Looking at the X axis’s fcurve we can see that this isn’t as fluidly shaped. While we could alter each keyframe to get the result we’re after, it’s easier to delete all the keyframes except the first and last. Move their respective slope handles to create an ever so subtle upward arc. If you haven’t done so already, play the animation to see the changes.
Stage Five Adding squash and stretch

Step 21
Developed by the masters at Walt Disney in the 1930, the utilization of this technique has been argued as being the most important discovery in animation. Most organic objects found in nature have some sort of flexibility. Because of this they tend to shift whiting its shape when exposed force, even if it might be almost too vague to notice on more rigid objects.




Step 22
Since the hopper is made of flexible rubber, it will stretch as it accelerates towards the ground, whereas the energy will force it to squash when hitting the ground. On the up it will stretch once again, before restoring to its original shape at its high point. It’s vital to note that even if there’s a change within the shape, the actual volume always remains unchanged.
Step 23
Press X on your keyboard to activate the Scale Tool. In the Transform panel click on the Vol button to maintain the volume by compensating in the other axis as you scale the object. Go to each frame with a high point keyframe (1, 26, 45, 60, 72, 79 and 82) and set a keyframe with the scaling set to 1 on all three axis. Go to frame 14, volume scale the hopper along the Y-axis (to about 1,1) and set a keyframe. At frame 15 scale it down along the Y-axis (to about 0,85) and set another keyframe. Reposition it to make contact and set a keyframe for the postion as well. At frame 16, scale up to about 1,1 again and set a new keyframe. Repeat the procedure for all contact position.


Read the full post>>