|
|
|
| |
 |
|
|
|
Introduction: This is an unexpected second tutorial on how to use Timothy
Albee's Facial Animation Studio (TAFA)
by Timothy Albee and Mac Reiter. I have been working on a special project and needed to do some pretty funky things which normally I could not do with
the control I needed. My immediate wish was man to bad TAFA can't do this. Then those teeny tiny gears in head started turning and I
started wondering why it couldn't work for me. I jumped in, gave it a try and voila TAFA to the rescue.
So what is this new found magic I'm mumbling about? Well TAFA is designed to allow you
to take an object
with a bunch of morph groups and create nicely
blended and smooth morphed animations. But what if I wanted to work with more then one object and I
wanted the normal morph smoothing but not between the
different objects? Well guess what TAFA can do this. In fact I found another surprise, it can do it with objects with different point counts!
There are two issues to this though. Well two in this case because I'm going to be working with particles and
HV's. So the first problem is
TAFA does not render single points or single point polys. I covered a way to solve this
problem in my first TAFA pFX tutorial. Since then I have written
a plugin that eliminates a ton of the work we had to do in that first tutorial.
The plugin is TAFA-Point Proxy and I'll be using it for this tutorial so if you
have not downloaded it yet go grab it and pop her in.
The second issue is that TAFA creates a mini-screen shot of object(s) with the morphs for the morph images you use in 'Morph File' panel and the
Puppeteer panel as well. Meaning make sure you know what morphs does what because its going to be a little hard to see inside
TAFA. Why? Because we will have multiple objects each with there own morphs.
To TAFA though we have just one object on multiple layers. Please don't
go screaming to Mac saying this is a bug. Its not really. TAFA is doing exactly
what its is supposed to be doing. We are just using it to do something was not
part of TAFA's initial design.
As with the first tutorial, its not the final scene that is a masterpiece but what TAFA can do to help you make a masterpiece that I hope to
convey to you. Everything I do in this tutorial is just to demonstrate a workflow and not to create a useable project. I just wanted to say that
so there's no false illusions. Having said that I'll shut up and we can get down and dirty!
|
|
|
1 - Start off by making a Ball (Create->Primitives->Ball, hit -O). Just leave it at the defaults except make the
radius settings 2 meters.
|
|
|
2 - Select all of the bottom half polygons and delete them, then move
the top half down on the Y-axis till the top point is pretty much at 0,0,0.
|
|
|
3 - Select all of the points and cut (ctrl-x) and paste (ctrl-v) them back in. We'll use this as our base for this object.
|
|
|
4 - Copy (ctrl-c) and paste (ctrl-v) the points into a new layer.
|
|
|
5 - Give them a little Jitter (Modify->Transform->Jitter, hit-J) set to
Type: Radial
Range: 250mm
Center X: 0
Y: 0
Z: 0
|
|
|
6 - Stretch (Modify->Transform->Stretch, hit-h) it along the Z-axis about 120% with the mouse positioned at the origin.
|
|
|
7 - Repeat the copy, paste, jitter and stretch on a new layer for this object. This will give us a base and two
morphs, which will be enough for this demonstration.
|
|
|
8 - You have two choices for this next part. First you can go back and read my first tutorial and
proceed to create your proxied morphs using that method or download my new 'TAFA-Point
Proxy' plugin to do it all automatically. I'll be showing you how
to use this plugin since its a massive time saver.
Once you have added the plugin to modeler (there's instructions included in the zip package on how to add it in and set it up if you don't already know the
procedures.)
|
|
|
9 - Select a new layer as the foreground layer and your base layer (layer 1 in this case) as your background layer. Fire up
TAFA-Point Proxy. Select 'Set as Base Object' and give it a new name, I named mine
Lobe_Btm. This just sets up a base layer with the proxies and gives the layer a name that is easier to work with then just Layer 1. Set the Shape to whatever you desire, I choose Diamond for this one for no particular reason other then
that's what I started up with. Set the 'Size' to .1 (this is always set to
meters, I probably should set it to the default units of the project but I have personal reasons why I have not done that yet.)
We'll let this go ahead and replace the points already created with the proxy Diamonds. If you wanted to keep them
separate you can always choose the 'Create in new layer' option.
|
|
|
10 - Hit OK. Pop into layer 1 and notice all your points now have the proxy objects added automatically.
|
|
|
11 - Reselect your empty layer as the foreground layer, and the
two morph layers (layers 2 and 3) as background layers.
|
|
|
12 - Deselect 'Set as Base object' and select 'Create Morph'. Two new options appear, 'Delete proxied
layer(s)' and 'Auto-Increment Morph Name'. Select both of them.
The Delete proxied layer(s) will do just that. After the layer is proxied and added to the base as a morph it will then delete that layer. Nice house keeping if you want to use it. Just remember once its deleted
there's Undo (ctrl-z) for immediate use else just pray you saved a copy if you need to make modifications later!
The 'Auto-Increment Morph name' lets you choose the base name of the morph series and then adds a '-X'
(where X is a incrementing number) suffix to that base for each new morph created. You
don't have to use this feature. If you opt not to you will be prompted for the new morph name as each morph is being created.
|
|
|
13 - Hit OK. In just a split second a new panel opens 'New Morph Name'. 'Base Layer' set the base layer you want to add the new morphs to. Make sure you have it set to your base layer, in this case 'Layer 1
Lobe_Btm'. 'Morph Name', is just that the name of the morph series, I gave mine the name of
'Lobebtm.LobeB'. Note normal morph naming conventions apply here!
|
|
|
14 - Hit OK and the plugin takes care of everything else for you. When its done go ahead and select you base layer open the 'Vertex Maps' panel (hit F8) expand the 'Morph' group and there are your new morphs! Man that sure beats doing all that work by hand especially if you have objects with several hundred points and a dozens
of morphs per morph group.
|
|
|
15 - For this next part we just want to mirror this object on the y axis. Normally you would want to create a new set of morphs just
to get some decent randomness but this is just a demo tutorial of a technique and not of something your doing for a client. So we'll go ahead and just copy and mirror.
But there's a catch, we want a separate set of morphs. So copy your object and
paste into a new layer. Make sure you are in Polygon mode and select all of the polygons. Mirror on the Y-axis (Multiply->Duplicate->Mirror, hit-V).
|
|
|
16 - Close the mirror tool then delete your selected polygons leaving just the mirrored
object(s)
|
|
|
17 - Create a new model (File->New Object hit-N) and paste your
object into the model. Open the 'Vertex Maps' panel (F8). Open the Morph group. Click on the first morph to
select it then right click and choose rename. Name it something like "Lobe_top.LobeT_1". Then rename your second morph as well.
|
|
|
18 - Copy your new object and paste it back into your original object in the next free layer. Make sure you are in a
separate layer. If you now look in the Vertex Panel you should see all four of your morphs.
Name your new layer 'Lobe_Top'.
|
|
|
19 - Lets create one last object to play with and lets make it different, really different as in less points, mind you can also do one with more points then your other objects as well.
|
|
|
20 - In a new layer create a Disc (Create->Primitives->Disc) set it on the Y axis, give it 20 sides and 1
segment, centered on the origin and a radius of .5 m's
|
|
|
21 - Now lets create the morphs for our new disk. Using the stretch tool (hit-h) stretch it to about 750% on both the X and Z axis. Make sure you keep it round. Use the numeric panel if you need to.
|
|
|
22 - Copy and paste this object into the next free layer and in the right view rotate it 45 degrees centered on the origin.
|
|
|
23 - Copy and paste into the next layer and rotate it another 45 degrees. It should now be sitting face on in the front/back views.
|
|
|
24 - Copy and paste into your next layer. Now for the fun,
spelled artistic part! Select your points and with the new layer in the foreground and the old layer in the background as a reference start moving your points around till you create a nice star shape. NOTE - it takes 10 points to create this star and you have 20 in your
disc. Meaning you want to move some of them together. Make them come close and or over lap,
that's find just do not weld or merge those points.
|
|
|
25 - One last morph. Go back to the layer with the disk sitting at a 45 degree angle and copy and paste it into a new layer. Switch back to Point mode and just do some jittering to it. Set the original disk in the background and move the points around till they pretty much fall inside the
realm of the disk in the top and back views.
|
|
|
26 - You need to go through each of the disc layers and select the all points
and cut and paste them so you have just the points for our proxy point and morph creation.
|
|
|
27 - Select a free layer as your foreground and the first disk layer as the background. Run the
TAFA-Point Proxy plugin. Set it to 'Set as Base object' and give it a name of
'Disc_Base' leave the proxy object the same as what you used for the previous object (Note:
TAFA-Point Proxy automatically remembers your last settings for you). Hit OK
|
|
|
28 - Select your free layer for the foreground then select the first three morph object layers as the background layers, these are the ones where we
stretched the disc, rotated 45 degrees and then rotated 45 degrees again to bring it to a full 90 degrees. Run
TAFA-Point Proxy. Unselect 'Set as Base Object', select 'Create Morph', 'Delete proxied
layer(s)', and 'Auto-Increment Morph name'. Press OK. When the New Morph Name panel opens set the 'Base Layer' to
Disc_Base. Give the morph series a name like 'DiscRot.Rot'. Hit OK
|
|
|
29 - Select your free layer as the foreground layer and select your star layer as the background layer. Run
TAFA-Point Proxy. De-activate the 'Auto-Increment Morph name'. Hit OK. When the New Morph Name panel pops up make sure you still have
'Disc_Base' select and give the morph a name like 'DiscStar.Star'.
|
|
|
30 - Select your free layer as the foreground layer, select your jittered 45 degree disk as the back ground
layer. Run TAFA-Point Proxy leaving everything as is. Hit OK. Give the new morph a name of
DiscJitter.Jitter. Hit OK.
|
|
|
31 - There's a couple things left to do before going into
TAFA. First cut and paste your Layers so they are in adjacent layers if they
are not already. You don't really need to do this. I just personally like to keep things all neat and tidy. You should now have three layers with your three different objects the
fountain-ish bottom, the fountain-ish top and the disk. Plus you should have a total of
nine morphs for the three objects.
|
|
|
32 - When you are done save your model out as something like
'MultiObjectMorph.lwo'.
|
|
|
33 - Before shutting Modeler down lets go ahead and convert our
objects back to single point objects again so you can attach the HV's or particle emitters to them in Layout latter at your leisure.
|
|
|
34 - Remember any changes you make to the base layer gets
reflected in the morph layers. So all we need to do is convert the base layer and the morphs will be converted for use.
|
|
|
35 - With the first layer selected and in Point mode, select all of the points and cut and paste them back into their layer. Next select the 'Merge' tool' (Details->Points->Merge, hit-m) Set Range to Fixed and set Distance to 150mm (remember we set the proxy object size to 100 mm, go
a little larger and make life easier on yourself.) Hit OK. That took care of most of them but for some reason not all of them so go ahead run Merge again and just hit OK. That should have converted all of the diamond points back into single points for you. If you want to make sure run Merge one last time and it should say 'No Points
Eliminated.'
|
|
|
36 - Repeat this process of merging for the next two layers. When you have finished
save the resulting file as 'MultiObjFinal.lwo'.
|
|
|
37 - Your now done with modeler so you can go ahead and shut her down if you like.
|
|
|
38 - Launch TAFA. Load your 'MultiObjMorph.lwo' model (File->Select Model).
|
|
|
39 - Again we are not going to be dealing with a sound clip for this project so we won't load one but we still need to specify the project length (File-Specify Project Length). This is going to be a very short project so set the project 'Seconds' to 4 seconds. Go ahead and leave it at the default 24 Frames/Second. The total frame count gets calculated out to 120 frames (counting starts at frame 0 so the final frame is 119.) Hit OK. Your X-Sheet and Curve Editor pops up.
|
|
|
40 - In your main editor window you should now see the base image of all three of your objects laid out for you. I'm going to darken up my background color so you can see
what is happening in my images better. You can do the same if you want as well by pressing the 'Background Color' (color pie wheel) button in the top tool bar.
|
|
|
41 - The first thing we will do is animate the bottom
fountain-ish lobe. In your Morph File panel find and select the Lobebtm morph group you created. We need to create a new track to place our morphs into so press the 'New Dialogue Track' button (far right button in the Morph File panels tool bar)
|
|
|
42 - With the new track created click on the ~Blank~ morph and with the mouse button still depressed drag and drop it into the frame 0 cell under the new Lobebtm track.
|
|
|
43 - Remember the heavy dark horizontal lines represent second time markers. We basically want to place a new morph in for each second in such a way that we cycle from the base object to the morphs full
stretch and back to the base. To do this drag and drop the your morphs just before the heavy dark line in this order
Morph Frame
~Blank~ 0
LobeB_1 23
LobeB_2 47
LobeB_2 71
LobeB_1 95
~Blank~ 118
|
|
|
44 - Go ahead and hit the play button on the 'Audio Control Panel' and you should see your bottom
fountain-ish lobe expand out and rebound back in. Notice nothing has happened to the other to objects! That's a good thing,
that's what we want right now.
|
|
|
45 - Lets animate our top lobe. In the Morph File panel change to the Lobetop morph group. Create a new dialogue track and add the morphs into the new Lobetop track in this order
Morph Frame
~Blank~ 0
LobeT_1 23
LobeT_2 47
LobeT_2 71
LobeT_1 95
~Blank~ 118
|
|
|
46 - If you don't already have the animation playing (you can keep it playing while you are working and get real time updates!) go ahead and hit play. You should now see both the top and bottom lobes expanding out and rebounding in.
|
|
|
47 - One last object to set up here. In the Morph File panel select the
'DiscRot' Morph Group. Create a new dialogue track and place the morphs in new track in this order
Morph Frame
~Blank~ 0
Rot_1 23
Rot_2 47
Rot_3 95
|
|
|
48 - Notice we did not place one at frame 71 yet. Go ahead and play your animation if its not already
going. Notice how all three objects are animating independently without any blending. This is cool. Why? Well TAFA is designed to cause morph blending.
That's what gives you the nice facial animations and smooth lip-synching that TAFA was designed for. But what we have done is created different objects with
their own morph groups so they act independently of each other. This means you can easily choreograph different pFX type effects in concert with each other making sure you get things
exactly the way you want them.
|
|
|
49 - Does that mean we have lost the blending ability of
TAFA? Lets find out. Switch to the DiscJitter morph group in the Morph File panel. Create a new dialogue track and add the morphs into the new track as follows
Morph Frame
~Blank~ 23
Jitter 71
~Blank~ 95
|
|
|
50 - Go ahead and play your animation. Yeah! We still have
our blending and its restricted to the disc object. Its a separate object, the morphs are made from the points of that object so any blending happens only to that object. There is no physical relation of the morphs of one object to the morphs of another object meaning there is no blending interaction.
Its great thing to see we have that kind of ability and option open to us with
TAFA. This opens yet even more realms of extreme coolness for our imaginations
to wander into to and explore.
|
|
|
51 - One last thing to do to complete our animation. Switch to the DiscStar morph group. No need to create a new dialogue track for this one just drag and drop the Star morph into frame 118 of the DiscRot track. Its kinda hard to see our star but we'll fix that in Layout. I still have something I want to show you there that might help a few of you relative newbies to HV's and/or
envelopes.
|
|
|
52 - Save your TAFA scene. Then choose File->Create LW8 Morph Mixer File. When the file name dialog pops up give it a name like
'MultiObjMMixer.txt'. Give it a second while it creates the new morph mixer file. When its down go ahead and shut TAFA down.
|
|
|
53 - Launch Layout and load your MulitObjFinal.lwo file.
|
|
|
54 - Lets add those morphs we just created. With your Lobe_Btm layer selected, open its properties panel and
switch to the Deform tab. Under 'Add Displacement' select Morph Mixer. Double click on it to bring up its properties panel. Click on the 'Options' button and select 'Load Endomorph Mix' when the file dialog pops up find and select the
'MultiObjMMixer.txt' file you created in TAFA.
|
|
|
55 - Switch to your Lobe_Top layer, add Morph Mixer and load your
'MultiObjMMixer.txt' file up. Do the same thing for your Disc layer as well.
|
|
|
56 - Extend your timeline out to 130 frames. Make sure you are set to 24 frame/sec just to keep in synch with TAFA's settings. You don't have to do this but it makes things easier on you if you want to follow what I'm going to do. Go ahead and hit the play button and you can now see your animation working for you (well you can see them if you set your geometry to view Vertices.)
|
|
|
57 - We now want to add HV's to our points so open up your HyperVoxels panel. I'm just
going to make this intensely simple since there is only one thing I really want to show you. That is the ability to see things when you want and to hide them when you don't want to see them. Why is this important to
know? Well, when using TAFA in the manner we just did you have a base shape which holds all the proxied objects and they will always be there. What if there are points in the animation where we don't what to see that object then? What if say we wanted to have the bottom lobe do its thing and not see the top lobe till the bottom lobe rebounded all the way back to the ~Blank~ morph and then the top lobe becomes visible and does its thing while the bottom one becomes invisible? Well to set that up in TAFA you would first extend your project length out to 8 seconds set up you bottom lobe morphs as we did. Then set up the top morphs in the order we did only starting at frame 118
instead of at frame 0. Then here Layout with the HV's we can control when we see things. We are not going to use that particular example but what we will do is let both the top and bottom lobes to do there thing but we will have them fade out as the
disc is forming the star so in the end all we see is the star. This same principle can be used to control all
visibilities. Its so simple and in reality there are a couple of different ways you can do this
HV's but I'm just going to show you one of those ways today.
|
|
|
58 - So with the HyperVoxel's panel open double click on your Lobe_Btm layer to turn on HV's for that layer. Set 'Object Type' to 'Surface' give it a particle size of 150mm and make sure 'Align To Path' is checked.
|
|
|
59 - Switch to the Shading tab and give it a nice bright obnoxious
color. I used a magenta-ish color (RGB 255, 000, 200). Turn the Luminosity up to 50%. Give it a Specularity of 90% and a Glossiness of 40%.
That's about all I'll give it. This just provides us with something so we can see
what's happening and that's pretty much it. My advise when working with HV's is you have lots of controls to provide
variability, learn them and use them as much as possible. Well without getting out of control that is.
|
|
|
60 - 'Copy' these settings. Double click on the Lobe_Top layer and 'Paste' your settings in. (NOTE: in this case the ctrl-C for copy and ctrl-V do not work. You need to use the 'Copy' and 'Paste' buttons at the top left of the HV panel.
|
|
|
61 - Double click on the Disc layer and 'Paste' your settings in. This time though change your color to yellow
(RGB 255, 255, 000). If you have your Viper window open you can now see your objects and
HV's. In fact if you change Preview to 'Make Preview' let it do its thing for a couple of seconds
you can see your entire animation in action.
|
|
|
62 - Now for what we wanted to do fade out the lobes while the star is forming and in the end only see the star. As I said earlier there are a couple of ways of ding this and for a real project I would probably combine them to get it to really look nice. The channel we will use will be the Dissolve channel. Will start the dissolve at frame 90 and by frame 115 have the lobes completely dissolved. To do this click on the 'E' next to Dissolve to open the graph editor for the Dissolve channel.
|
|
|
63 - Click on the little Key with a '+' sign so you can add new keys. Then with your mouse click on the curve (well OK its a
straight line right now but a straight line is still a curve technically speaking.) at about the 90 mark. You can then clean it up by
changing the Frame to 90 and set its Value to 0.0%.
|
|
|
64 - Now add another keyframe in at 115 in the same manner and set its value to 100%.
|
|
|
65 - Now with the right mouse button pressed draw a bounding box around your
two new points to select both of them. Make sure the 'Incoming Curve' is set to
'TCB Spline' and set the 'Tension' to 1. This smoothes the curve into and out of the
transitions nice and smooth and notice how it straightened out the curve from frame 0 to frame 90.
|
|
|
66 - You want to want to do the same thing for the top lobe as well. Normally you would do
a lot more to your HV's to really make this look nice but for today that's all I'm going to cover. So 'Copy' the settings and 'Paste' them into the Lobe_Top layer. Make a preview in Viper and enjoy the show.
|
|
|
67 - Again this tutorial has not presented anything fancy. All I wanted to do was demonstrate
yet another facet and power you have
available to you for finely choreographing pFX scenes using TAFA.. There's still so much more that can be done and I'll be showing you more shortly.
|
|
|
Please feel free to contact me with any question or comments: aurora@auroragrafx.com
|
|
|
If you have comments or questions about this tutorial or about TAFA in general come over to the
Official TAFA forums.
http://www.macreitercreations.com/community/
|
|