Pouring Tea Animation - Part 1

Maya Tutorial

Pouring Tea Animation Using Curve Path


I think I've seen this kind of tutorial somewhere, but I forget where. I think it was a very old one, because as far as I remember, I was searching for this kind of tutorial when Maya was on 4 or 5. So, if u guys hv similar better tutors, please drop me a msg. And oh, this tutor is a poor man pouring tea animation, which should be easier to do this with realflow or glue3d or similar software. But none of those software I have use hehe...

Ok. first create the profile of the tea cup from curves. You may create it outside curve first the use the offset curve to get the inner curve, then combine those curves, or u can create the whole profile in one zip. It's up to u. Here's what I got for the profile curve, and the revolve surface in template mode.




And oh, you may model your tea cup anyway u want. Now, after finished modeling, dont forget to delete history of yout model, especially the revolve node. We're going to re-model the profile curve. Of course, u can duplicate it first, then hide the original profile curve. What I did was delete the histories of the nurbs cup, then edit the profile curve.

Start by deleting come CV's but just the outer area of the profile, and some CV's on top. I named this curve radiusCurve, so if u see the pic below, u'll see what I mean.





And also create two locators, I rename them as pathUp_LOC and radius_LOC. Position them on the same level of height. Now select radius_LOC then shift select radiusCurve, goto animation menu, animate -- motion path -- attach to motion path option box. The attach to motion path options window pop up. Here's my setting for attach to motion path:

time range: start/end
Start time: 1
End time: 100
Parametrix length: on
Follow: off
the rest are defaults.

By now, your radius_LOC should attach to radiusCurve, and just st the end of radiusCurve, u may see number 100. Go and play to check the motion path. Dont forget to set your animation to 150 or so. If your radius_LOC start from top to bottom, then select radiusCurve, go find edit curves menu, and reverse curve direction. Check again if the radius_LOC now start from bottom to top. If yes, let's sleep for a while, because we have been reading this hard and tedious unimportant short so-called tutorial. Jeez...

Ok, now, after taking 2 hours sleep, u 2 didnt u?... let's go on now... what we're goin to do next is connect radius_LOC.translateY to pathUp_LOC.translateY. How are we gonna do this? well.. easy, u can use connection editor, go to window -- general editor -- connection editor. select radius_LOC then in connection editor left side (that is if your connection editor is set to from->to, whic means left side output will be the driver of the right side. If it set to to <- -="" assume="" from="" its="" let="" opposite="" s="" set="" the=""> to, select radius_LOC, click on reload left in connection editor. Then select (not shift select) pathUp_LOC and click on reload right in connection editor. both sides now should hv listed attributes. search for translate on left side first, when u find it, expand it by clicking on plus sign next to translate, it will expand into x,y and z translate. click on y translate on left side. Now on the right side, find the same attribute and click. Now if u check in your chanelbox of pathUp_LOC, you'll see translateY field hv different color than the rest field. Maya default color for this is some sort of light yellow. Go on hit play now. As you can see, all these two locators are should moving up at the same time.

Now open hypershade. Create distanceBetween node under create render node -- utilities.
<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">
 

<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">This distanceBetween1 node will automatically appear in hypershade. select both locators and in hypershade goto graph -- add selected to graph. It will "put" the locators in the hypershade along with distanceBetween node.

 

<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">Now, the first way we connect the attribute is by using connection editor, now let's try other method, which is by typing the mel in command line. Aaawwwkkk... nooooo... lets use connection editor...!

In fact, u can type it directly in command line, or u can type it in script editor. Let's do it in command line. type this:
connectAttr -f radiusCurve_LOC.translate distanceBetween1.point1 and hit enter.As u can see in hypershade, there is new connection made from radiusCurve to distanceBetween1. There is a mistake in the image, it say distanceBetween where it should ne distanceBetween1, or any number behind it if there are more than one.

Next, type this:
connectAttr -f parhCurve_LOC.translate distanceBetween1.point2
and hit enter. There also should be another new conection made. If there are errors, check the spelling first, it's all case sensitive.

now create miliplyDivide node, from create render node -- utilities. If this is the first multiplyDivide node, it will be named automatically multiplyDivide1 by Maya.

type this in command line:
connectAttr -f distanceBetween.distance multiplyDivide1.input1X

It will create connection from distanceBetween.distance into input1X of the multiplyDivide.

Fuuh... let's take another slacking off shall we?

Ok, create nurbsCircle from create menu. Press snap to point (hotkey "V") and middle mouse button on pathUp_LOC so that this nurbsCircle1 (lets call it that) is at the same position as pathUp_LOC position.

Back to hypershade, add that nurbsCircle1 to hypergraph, so it group together with the two sisters of locators, one multiplyDivide and one distanceBetween node. For nurbsCircle1, do not delete its history, in fact from now on, do not delete any history of the two sisters, the multiplyDivide and the distanceBetween, and the nurbsCircle1. It will screw up all the hard work of creating this fantastic bombastic superduper pouring tea animation.

Type this in command line:
connectAttr -f mutliplyDivide1.outputX makeNurbCircle1.radius.

This will create connection from output of multipyDivide into the radius of the nurbsCircle1.

Now what we've done here is acquiring the radius (remember the two sisters, radius_LOC and pathUp_LOC. They were there for querying the r, if u remember math formula, 2 * phi * r.
<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">
<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">
<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">
<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">
 

<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">Anyway, parent the nurbsCircle1 to pathUp_LOC, so the nurbsCircle1 will move with pathUp_LOC. See it and play. Now if u should see the circle is gradually getting bigger while moving up, following the "r" value from two locators. However, if u think that the circle is too big, u can scale it down, but dont key the scale.

 

<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">
Ok, it's almost done for the first part... Select the nurbsCircle1, go to surfaces menu, and hit on planar. Now as u can see... there is some kind of flat rounded surface emerging from the bottom of the tea cup. If there is, wow.. u did it man. Yeehaw... we made this super duper cool and bombasic futuristic kicking ass flat rounded surface animation. Yeah well.. lets take a break. It's already midnight, and I'm sleepy. later on part II dude, The tea cup returns.
<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">
<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">

 

<- -="" assume="" from="" its="" let="" opposite="" s="" set="" the="">Enjoy.

Komentar