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.

Wednesday, August 6, 2008

Stylized Fur Creation

Let me start of as a true party-pooper and point out that none of those characters where designed, modeled, covered in fur and rendered by a single person during a coffee brake (although while the final scene is rendering, you’ll probably have enough time for a good cup of java). Having given you that advice, please disregard it – because we’re going to try to do so anyway.

Given that carton or stylized animals generally are quite clear-cut and unfussy in there design, the time spent on adding fine details such as wrinkles and creases can usually be kept to a minimum. Basically, all you have to is to get a cube and start moving the points around till you’re happy with shape. Sounds simple enough, right? Well, even if the technical side of the modeling isn’t necessarily more complicated than so, it is the very same simplicity that makes it challenging. As you chuck out most of the details you stand a great risk of ending up with a rather meaningless and uninteresting character, which is pretty much the opposite of what you’ve original planed.

When you design the character it’s essential that the audience should be able to distinguish the species without having to think about it. However, this does not mean you should stay true to its real life counterpart for the entire body. On the contrary, just keeping (and preferable exaggerate) one or two of the main characteristics and then do something completely unexpected with the rest of the body is usually a very good way to start. While you’ll hopefully end up with a unique design for your character, gathering references before you start is still a vital part of the process. Not only for making sure that you, at least in some sense, stay true to reality but perhaps more importantly to serve as inspiration. So, this is important, do not limit your references to only include the specific animal you have in mind.

With somewhere in the line of 10 to 14 milliard different existing species on earth alone, there’s a slight chance you’ll be able to find a couple of interesting animals for you to mix and match to your liking. Seeing this is a quite hefty amount to go through, for your convenience, we went ahead and did so and didn’t stop until we hade found the perfect animal. Dear reader, over the next three pages we give you… the Anteater.

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/how_do_i_create_ice_age-like_hairy_characters_in_xsi

STAGE ONE Getting in to character
Step 01
The first thing you’ll obviously need in order to complete the following steps is an undressed creature willing to experience a total hair makeover. We recognize these can be shy creatures and therefore somewhat rare to come by so if you don’t already have one of your own, start by loading the scene anteater.scn from this issues CD.
Step 02
While using several hair generator operators enables you to use specific settings and hair count for each part, you’ll run it to problems with discontinuity between the different clusters, which basically means that you’ll get nasty seems in the fur. So unless you’re planning on having substantial different characteristic on the fur for the different parts of the body, you’ll be better of using a single hair operator for the entire anteater.
Step 03
While the anteater will end up completely covered by fur, there are a couple of areas where you don’t want/need any hair such as inside the eye sockets, inside the nose and the matrices. Select the anteater and press [Y] to activate the polygon selection tool. Select all the polygons and zoom in on the above mentioned areas and deselect just those polygons.

STAGE TWO Growing hair
Step 04
With the polygons still selected, press [Ctrl] + [2] to switch to the Hair toolbar and from the Hair > Create > Hair menu choose From Selection. It would be unfeasible to modify and style each single hair strand by hand so a guide hair is created at each vertex on character. As you style the hairs XSI will automatically interpolate between the guides, creating a perfect fur.
Step 05
Apart from being way to long, all the strands currently have the exact same length as well, which isn’t very realistic. So the first thing you need to do is to give him a rough haircut. Make sure the hair is still selected, and from the Modify > Length menu choose Attenuate. This will cut the hair in relation to the size of the polygon it’s being emitted from. Smaller polygons will get shorter strands and vice versa. Apply a second Attenuate operator.



Step 06
While you can use the standard scale tool on your hair, it will not affect the actual length of the strands but rather change their position and orientation. To change their length you’ll need to use either the Scale or Cut operator from the Hair toolbar. An alternative is to activate the Stretchy mode, although we won’t be using this in the walkthrough feel free to experiment with it on your own.





Step 07
The hair along the back of his neck, the eye sockets and most of the snout where cut a bit to short whereas the one on the chin (or beard) is way to long. Set the selection filter in the Select panel to Strand. Select each part (or sections of them) and Scale (using the scale button in the Hair toolbar) them to roughly match the above screenshot.
Step 08
The hair on the waist, thigh and at the end of the tail is a bit to short as well, so make them slightly longer using the same procedure as in the previous step. You can always change the length later on as well, so don’t worry if it doesn’t look exactly like the screenshots. Conclude the cutting session by selecting the strands under his feet and scale them so they won’t protrude the ground.
Step 09
Unless your hairdresser is truly gifted (and your hairstyle can be described as mysterious at best) you really don’t expect her to cut and style your hair in a wink of an eye. Nor that she’ll do the entire tuft in a single go. Nevertheless, that’s precisely what a lot of people expect as they enter their virtual barber. Unfortunately, there’s no magic button for creating nice looking fur - you’ll just have to be patient throughout the following steps.

STAGE THREE Combing the fur

Step 10
Instead of combing the fur manually with, the for example, the Brush tool you can make use of the camera viewport. Click the Strand button in the Selection panel and select all the strands on the snout. Now, in the Camera viewport track and orbit so you’re looking down the snout from just behind the eye sockets. From the Modify > Comb menu choose Comb Away From Camera View B
Step 11
Next select all the strands on the body, except the mane (the strands running along the back), and rear legs. Position the camera (viewport) on top of the anteater. Orbit the camera a bit vertical so you’re looking downward but at a slight angle. From the Modify > Comb menu choose Comb Away From Camera View B
Step 12
Select the strands on the rear legs, position the camera above and slightly behind the character and choose Comb Away From Camera View B. Please refer to the screenshot at step 15 to get the general idea of how to comb the fur for the different parts of the anteater (a high resolution version of the screenshots can be found on this issues CD).
Step 13
Finally, select the strands on the tail, position the camera so you’re looking along the tail choose Comb Away From Camera View B. Please note that you can get even more control of the combing procedure by selecting smaller section of strands within each of the different parts of the body. Alter the camera slightly differently for each selection to create a smother blend between the parts.
Step 14
As you begin styling your character the hair operator’s history stack will build up very quickly. Each modification to the hair gets added to the stack as a styling operator and will sooner or later have a negative affect on the scene performance. Therefore, remember to freeze the hair operator from time to time or simply switch to the immediate mode by pressing the Immed button in the Edit panel.

STAGE FOUR Ruffle the fur
Step 15
Now you’ve got the strands running more or less along the right directions on the body but they’re still far to perfect to come of as convincing fur. Seeing that the carton anteater is a rather joyful species we can safely assume that his fur will be all tousled during most part of the day. While you can add this effect (to a certain extent) in the hair operator PPG it will just add to overall appearance by having the actual strands ruffled as well.
Step 16
While there’s a number of tools dedicated solitary for hair styling, you’re by now mean limited to these alone. On the contrary, utilizing alternative styling methods such as the standard deformers can produce not only quicker but also, more importantly, better results. Select all the hair strands and press [1] to switch to the Model Toolbar. From the Modify > Deform menu chose Randomize.
Step 17
While you’ve got the strands selected it’s in fact the same as selecting all the points and this is precisely what you want to randomize. Since you’ve just gone trough the lengthy process of combing the fur you really don’t want to mess that up. You just want to randomize it enough to make look as if it has been worn. A value of about 0.15 for the X, Y and Z Displacement should do the trick nicely.
Step 18
While the fur now has a far more natural look, some of the strands are going trough body. To fix this, switch back to the Hair Toolbar. Select the protruding strands (preferable not all at once) and chose the Modify > Puff > Puff Roots and/or the Modify > Puff > Strand On End and click and drag in the viewport. Or you can use the standard translation tool. Remember, you’re trying to create natural irregularities so it doesn’t have to be perfect.

STAGE FIVE The Hair PPG
Step 19
Select the hair and press [Enter] to open the hair PPG. Depending on how close you get, you’ll need to increase the number of Total hairs to 150.000 - 300.000 to completely cover the anteater in fur. To make the fur denser, you can also make use of the Hair Multiplicity. This multiplies each hair strands but requires less memory and will be faster to render as they’re copies of the original strands rather than “completely unique”.




















Step 20
However, to keep the rendering time as low as possible during the development of the fur it’s wise to leave the number of rendered hairs quite low till you render the final image. Switch to the Effects tab. Set the Frizz at root to about 25, the Frizz at tip to 75 and increase the Frequency to 75. Next, set the Root Thickness to 0.4 and the Tip to 0.1. And finally, set the Random scale to about 0.5.




















Step 21
The character isn’t particularly smooth at the moment, so select the anteater and press [+] to increase subdivision one level. While the geometry is subdivided, the hair is still emitted from the low resolution version. Press [8] to open an Explorer and expand the tree, including the Hair operator. Click on the Hair Generator Operator to open the PPG and change the Emitter Subd Level to 1.

STAGE SIX Dyeing the fur




















Step 22
Select the anteater and press [1] to switch to the Model Toolbar. From the Get > Property > Texture Map menu chose Texture Map. Chose the projection from the Projection List in the UV Property. Open an Explorer expand the hierarchy. Switch back to the Hair Toolbar and select both the hair operator and the anteater. In the Hair Toolbar, click the Transfer Map button and pick the Texture_Map in the Explorer




















Step 23
The previous step transferred the texture projection from the anteater to the hair, enabling you to use textures to color the fur. Select the hair and press [7] to open a Render Tree. Get an image node (Node > Texture) and two Color Correction nodes (Node > Image Processing) and connect them according to the above screenshot. Double click on the Hair Render node to open the PPG and copy the values shown in the screenshot.
Step 24
Double click on the Image node and load the image anteater_color.pic. Open the CC connected to the Root input set the Saturation to 0.1 and the level to -0.2. This will make the Root color slightly darker, creating an illusion of depth. Next, open the CC connected to the TipB and set the saturation to -0.1 and the level to 0.1. This will make the Tip color B a bit more pale, creating a nice variation on the fur. Texturing the anteater with the same image (or a darker version) will hide any minor bald spots. Finally, add a couple of lights, and enable the shadows for the main light as this will add greatly to appearance of the fur. Please note that no animals were harmed during the making of this Q&A.

Quick tip
Don’t get stuck with minor details (or strands) to early on in the process as there’s a great chance you’ll be gong back and forth making changes to the fur as you progress.


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

Getting Started in Animation Part 2 and 3

One of many files lost when my old backup decided to crash, was all the images for the 2nd and 3rd part of the Getting Started in Animation. I should have a second backup somewhere tucked in the closet, so if anyone asks me to I'll have another go at finding them.

In the meantime, both articles can still be found at 3D World’s website http://www.computerarts.co.uk/tutorials/premium_content/3d__and__animation/get_started_in_animation_part_2
and Getting Started in Animation part 3 at http://www.computerarts.co.uk/tutorials/premium_content/3d__and__animation/get_started_in_animation_3


Read the full post>>