查看: 1070|回复: 0
打印 上一主题 下一主题

maya mel打造扑克动画

[复制链接]

347

主题

1

听众

3111

积分

中级设计师

Rank: 5Rank: 5

纳金币
1147
精华
41

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2013-10-15 16:26:42 |只看该作者 |倒序浏览
这篇教程教纳金网的朋友们用maya mel打造扑克动画,教程难度中等。主要向朋友们介绍maya mel的使用方法。希望大家喜欢这篇教程。先看看效果截图: 20100429045821487.jpg

具体制作步骤如下:
1、创建一个多边形的cube,进行三个轴的挤压操作后,得到下图效果。(图01)

20100429045821374.jpg

图01
2、对多边形进行加线,这样便于制作“倒角”效果。(图02)

20100429045822134.jpg

图02
3、对模型进行uv平面投射处理。(图03)

20100429045822993.jpg

图03
4、给扑克模型赐予新材质lambert。(图04)

20100429045823421.jpg

图04

5、对lambert的color贴图,这里是贴图文件(来源于zcool网)。(图05)

20100429045823433.jpg

图05
6、对2d坐标进行调整后。(图06)

20100429045824120.jpg

图06
7、进行平滑处理,对模型执行2次smooth命令。(图07)

20100429045824855.jpg

图07
8、这一步很重要,把模型的轴吸附在模型“脚底”,并且在世界中心冻结属性,这样便于做动画处理。(图08)

20100429045825901.jpg

图08

进行场景搭建
1、选择扑克模型,ctrl+d复制,向x方向平移1个单位。(图09)

20100429045825680.jpg

图09
2、立即使用shift+d进行智能变换复制,复制50个。(图10)

20100429045826807.jpg

图10
进行动画设置
1、选择所有扑克模型,在第1帧定义动画rotatez为-89.333。(图11)

20100429045826665.jpg

图11
2、选择所有扑克模型,在第24帧定义动画rotatez为89.333。
mel提取
在这里我们的思路是做措关键帧处理。因为关键帧可以在dopesheet列表中调整,但是50个或者100甚至1000个物体措关键帧的话,一个一个来做并不是明智之举,所以在这里我们选择使用mel来处理这个问题。
1、首先打开dopesheet菜单,我们会看到如下图所示关键帧列表。(图12)

20100429045827326.jpg

图12

2、我们需要提取2行mel:一个是选择关键帧的mel,一个是移动关键帧的mel。如果能得到这两行mel,操作一个模型,那么我们就可以操作n个模型。所以我们需要打开script editor观察操作与执行结果脚本。(图13)

20100429045827975.jpg

图13
3、首先我们在dopesheet中选择2个关键帧,并观察script editor中反馈信息。(图14)

20100429045828368.jpg

图14
4、我们得到了三行脚本:
selectkey -add -k -t 1 -t 24 pcube2_rotatex ;
selectkey -add -k -t 1 -t 24 pcube2_rotatey ;
selectkey -add -k -t 1 -t 24 pcube2_rotatez ;
5、我们在dopesheet中移动关键帧,向右用鼠标中键移动关键帧1格,并观察scripteditor反馈。(图15)

20100429045829959.jpg

图15
6、我们又得到3行脚本:
keyframe -e -iub true -r -o over -tc 1 pcube2_rotatex ;
keyframe -e -iub true -r -o over -tc 1 pcube2_rotatey ;
keyframe -e -iub true -r -o over -tc 1 pcube2_rotatez ;
进行mel筛选与编辑
虽然我们通过提取脚本行可以得到一些和移动关键帧相关的指令,但是有一些并不实用,所以我们要进行提取和精炼。
1、一下句子中x轴和y轴虽然有动画,但是并没有用。有用的是我们的z轴动画:
selectkey -add -k -t 1 -t 24 pcube2_rotatex ;
selectkey -add -k -t 1 -t 24 pcube2_rotatey ;
selectkey -add -k -t 1 -t 24 pcube2_rotatez ;
keyframe -e -iub true -r -o over -tc 1 pcube2_rotatex ;
keyframe -e -iub true -r -o over -tc 1 pcube2_rotatey ;
keyframe -e -iub true -r -o over -tc 1 pcube2_rotatez ;
所以我们要对其进行精简。可以精简为:
selectkey -add -k -t 1 -t 24 pcube2_rotatez ;
keyframe -e -iub true -r -o over -tc 1 pcube2_rotatez ;只保留这两句即可。
2、selectkey -add -k -t 1 -t 24 pcube2_rotatez ;
keyframe -e -iub true -r -o over -tc 1 pcube2_rotatez ;
通过脚本分析,我们可以看到,以上脚本只是对pcube2这个物体的旋转z轴进行操作,并没有通用性,所以我们需要借助循环语法for来进行操作。
//for循环基本语法
int $i;
for($i=起始;$i<结束;$i++)
{做什么事;}
3、因为我们要对选择物体操作,所以需要进行字符串数组控制语法
string $selections[]=`ls -sl`;
之后我们直接提取$selections[$i]变量就可以了。
4、进行整合就是
string $selections[]=`ls -sl`;
int $i;
for($i=1;$i<50;$i++)
{
selectkey -add -k -t 1 -t 24 pcube2_rotatez ;
keyframe -e -iub true -r -o over -tc 1 pcube2_rotatez ;
}
这样虽然嵌套成功,但是并没有让pcube2这个物体变成变量操作,所以我们要对脚本进行修改.将pcube2_rotatez变成通配属性($selections[$i]+”_rotatez”),这样$i在循环1~50的同时对50个模型也就进行了操作。由于keyframe -e -iub true -r -o over -tc 1 pcube2_rotatez ;中的1代表做1帧偏移,但是每往后推1个模型,帧数就需要累加1.所以这里就形成了一个n=n+1的状态,但是这并不难解决,我们把1套为$i就可以了,因为$i是变量,从1~50自动变化。经过以上考虑,我们把脚本修改为:
string $selections[]=`ls -sl`;
int $i;
for($i=1;$i<50;$i++)
{
selectkey -add -k -t 1 -t 24 ($selections[$i]+”_rotatez”) ;
keyframe -e -iub true -r -o over -tc ($i) ($selections[$i]+”_rotatez”) ;
}
最终执行
1、在大纲中顺序选择pcuble1到pcube50。
2、在script editor中输入脚本,并且按ctrl+enter执行。(图16)

20100429045829240.jpg

图16
3、观察时间条,50个扑克的关键帧就在一瞬间全部错开。(图17)

20100429045829727.jpg

图17
4、此时我们的动画效果就完成了。(图18)
好消息:纳金网开设网站专题,整合提供各种maya玻璃材质maya模型maya建模教程等,有需要的朋友可自行免费下载!



分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-15 09:28 , Processed in 0.447068 second(s), 34 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部