上一篇 | 下一篇

用Maya制作随机变化下落的字母效果

发布: 2007-1-25 08:06 | 作者: partical | 来源: aougu | 查看: 356次

Maya的动力学系统和表达式是非常强大的,现在我们就来利用Maya的粒子系统和表达式来制作随机变化下落的字母效果。 奥古多媒体4RKI,Tv-ENf)}c;Z

E:W+k,_7zAKi? 首先,打开Text Curves选项,将Text的类型设置为Poly,输入全部26个英文字母,从“a”到“z”,单击“Create”。奥古多媒体 LVZ y'f

}m_n'R'H~O,ssGm
I F#K?:F5QUNx 奥古多媒体d{*J1oFnnN
图1
+fUi+@7g Q B \ 打开Outline窗口,在这里能够找到Maya自动创建的两个组:一个包含所有字母的曲线,另一个包含26个网格物体。删除包含有所有字母曲线的组,因为我们只需要包含全部多边形字母的组。 奥古多媒体~#nNyvm
奥古多媒体 G*s1A1p$O o(`kM|
现在我们需要编写一个Script来重命名所有的多边形字母,这是为了其后能够更容易的重命名这些字母,当然也可以手动为它们重命名。
0Eq ?|BA)h
*\J9z7U$VU e:S"q int $i; 奥古多媒体5~ `7N)W:H
string $t="abcdefghijklmnopqrstuvwxyz"; 奥古多媒体X-Ko6rG;H
string $cmd="rename Trim_Char_";
q w gX];N~] for($i=1;$i<=26;$i++)
@-h?xD#U%f {string $temp; 奥古多媒体Oc9j"En%S2k
$temp=eval("substring "+$t+" "+$i+" "+$i); 奥古多媒体!v Na;_ dI"n
print($temp); 奥古多媒体"Xn []o%W({2C1NB }
eval($cmd+$temp+"_1_1 "+"text"+$i); 奥古多媒体:B)k2p _#oN
};
e G/S n5j-uJ
vl |5j]0o(} m(r 在Script Editor中输入上面的Script并运行,此时Outline窗口应该如下图所示。
0p@^bV 奥古多媒体5e~9Y;`!M

1~&H:G4Lw'y? 图2奥古多媒体5A_I:i zWE~9u
奥古多媒体'q&z:l1S"` b,c/o
选择所有的多边形字母和中心枢轴点,移动到abs(0,0,0),然后自由变换,之后将其全部隐藏。
a AE\ ] MC}v
o${] w6|,I } 创建一个10*20 Nurbs平面;选择这个平面并加载一个粒子发射器(Particle Emitter),将发射器的类型设置为Surface;将这个平面围绕Z轴旋转180度;将发射器的的速度设置到15左右,发射率设为0.2。 奥古多媒体-^K+SZq5tr%^9s

)N(_O?_.tXT#].V 现在我们将为粒子形态(particleShape)节点添加一个属性(Attribute)。 奥古多媒体 Z C/eWrk-];F&}6s
奥古多媒体&iLJEY#U Z"OJ w;E
选择particleShape1节点,打开属性编辑器(Ettribute Editor),单击“General”下的“Add Dynamic Attributes”部分,添加一个名为“index”的属性并设置其类型为 “Array”。 奥古多媒体iRsW ?@]
奥古多媒体Dz+Y.HGT

D.aoZd7I O0p 图3奥古多媒体!QG2] W;` p

-p1[8o }M&QW#M|M 接下来在Outline窗口中选择所有的多边形字母(不要选择这个组),创建粒子替代物(Particle Instancer)。在Option窗口中钩选“Allow All Data Types”,在“Particle Object To Instance”选项中选择particleShape1。奥古多媒体5D/^ k)q6|uN
奥古多媒体7o}8o~3U,{Z

Ji2A^6L 图4奥古多媒体 p1X#?8i'`+XI6_

0q1M,L6V0PDkl 现在将会看到场景中每个粒子都变成了字母“a”。我们将加载一个表达式来实现用随机变化的字母来替代每个粒子。 奥古多媒体0z)DLY3Gn*h

IzeT;j-q 选择particleShape1并且打开表达式编辑器(Expression Editor)。添加一个执行时间表达式(Runtime Expression)。
n^h5nB:o;@8W 奥古多媒体rYl_vw
index=rand(1,26);
joS3L(E G"Z(]W 奥古多媒体&D[}3bNP^3C'ek
播放动画,将会发现每个粒子在每一帧都被随机变化的字母所替代。现在已经非常接近我们想要的效果了,但还需要编写一些表达式来控制每个粒子的运动。
wVmO'W$D 奥古多媒体j2Zi eq%}0Z
选择particleshape1并且添加另一个数组属性(Array Attribute)为“Gate”。无需其他设置,加载执行时间表达式(Runtime Expression)到particleshape1节点下。
(}VT?k,e9IqQ 奥古多媒体q*eS*h|
particleShape1.index=rand(1,26); 奥古多媒体x^t zQ*J
vector $temp=particleShape1.worldVelocity; 奥古多媒体:J"fX%c)Es
if ($temp.y<=rand(-10,-5)) 奥古多媒体2\2OfYRtiB2}-_
{ particleShape1.gate=1;};
0w p%Y j-Iy+u7D,v_ if ($temp.y>=(-1))
|*A@H v-wcW {particleShape1.gate=0;}; 奥古多媒体&j!?:LaU?:O

y Ig\y%o2xWf4x_ if (particleShape1.gate==1){ particleShape1.acceleration=<<0,rand(20,25),0>>; 奥古多媒体?8sr(@5S Rxc
//print("aaaa");
1FffqTCw#i4o o };
3d:|6D uL if (particleShape1.gate==0) {
:q^3~/L+@*x particleShape1.acceleration=<<0,rand(-25,-20),0>>;
Rt Z2b!\$^ Q*hDc //print("bbbb"); 奥古多媒体xY7L}5\k
}; 奥古多媒体az,vA1M2n l
奥古多媒体 S6U*?+g?~~!K5n
最后,调整摄象机并进行渲染。渲染完成后可以用Maya Fusion或其它软件来加载一些运动模糊/拖尾效果。下面是最终的效果。
)bGF.a2fF1h1Ix 奥古多媒体6G1L]&Gh*E$`
奥古多媒体-O&s\4iK^N4Ql'\?
图5

字号: | 推荐给好友

 

评分:0

我来说两句

seccode


音乐
落叶 画心 放生 天亮了 牡丹江 那滋味 擦肩而过 怀念过去 北京欢迎你 突然好想你 吻的太逼真 说好的幸福呢 坐上火车去拉萨 如果爱能早些说出来
愚爱 心碎 稻香 带我走 醉赤壁 魔杰座 我还想她 为你而活 一定要爱你 等爱的玫瑰 原谅我一次 越单纯越幸福 最后一次的温柔 给我一首歌的时间
白狐 光荣 火花 下雨天 小酒窝 樱花草 为你写诗 无可取代 无情的温柔 寂寞才说爱 忘不掉的伤 爱上你是个错 陪你一起看草原 地球人都知道我爱你
城府 假如 花海 兰亭序 爱太痛 舍不得 你若成风 女人如烟 外滩十八号 我们的纪念 摇滚怎么了 和寂寞说分手 爱上你是我的错 爱情里没有谁对谁错