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

在 MAYA 中运用表达式制作交叉伸缩器

[复制链接]
.    

3797

主题

11

听众

5万

积分

首席设计师

Rank: 8Rank: 8

纳金币
32328
精华
41

活跃会员 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2012-10-12 20:42:19 |只看该作者 |倒序浏览
1 .首先创建一个多边形立方体,取名 B1 ,作为第一条杆,长、宽、高分别为 0.4 、 10.1 、 0.2 。把它从 Z 轴旋转一点角度。


2 .再建一多边形圆柱体取名 pin ,就放在原点,并旋转、缩放调整成如图:


3 .然后复制 B1 立方体,取名 B2 。现在开始表达式了,选择 B2 ,打开 window->Animation Editors->Expression Editor 表达式编辑器,在表达式区键入 B2.rotateZ = B1.rotateZ * -1 点击 Create 按钮。这条语句表示 B2 的 Z 轴角度是 B1 的角度乘以 负 1 ,两个立方体成为一个剪刀的原理。现在试试沿 B1 的 Z 轴旋转,会发现 B2 也会向着 B1 的相反方向旋转。


4 .选择 B1 、 B2 和 pin ,按 CTRL+D 一起复制这三个物体,并向右移动一些距离。多与少不要紧,等会输入的表达式会帮助修正的。 (maya 会自动取名的)

5 .选择 pin1, 在表达式编辑器中键入 pin1.translateX = cosd (90-B1.rotateZ)*5 2 -0.2 这条语句用来控制 pin1 随着 B1 的 Z 轴旋转而沿着 X 轴平移。 “*5” 是立方体高度的一半 , 最后的 “-0.2” 是因为 cosd 函数是按立方体的顶点来算的,如不减 0.2 ,在运动时两条杆的末尾会因分开距离太大而不接触,这是不真实的,所以要 -0.2 使距离小一些。


5-2

5-3


6 .接下来控制 B3 、 B4 的移动,选择 B3 ,在表达式编辑器中键入 B3.translateX = pin1.translateX 此句将 B3 的 X 轴位置设为 pin1 的 X 轴位置。 B4 同样 : B4.translateX = pin1.translateX 。

控制旋转: B3 立方体: B3.rotateZ = B1.rotateZ

B4 立方体: B4.rotateZ = B1.rotateZ * -1

如果同一个物体的表达式要连续输入两条以上,要在两条之间加分号 “ ; ”

如: B3.translateX = pin1.translateX ;

B3.rotateZ = B1.rotateZ

现在可以旋转 B1 的 Z 轴来看一看效果了。


7 .再来复制多一组,分别取名 B5 、 B6 、 pin2 。选择 pin2, 在表达式编辑器中键入 pin2.translateX = cosd (90-B1.rotateZ)*5 4 -0.2 这条语句用来控制 pin2 随着 B1 的 Z 轴旋转而沿着 X 轴平移。这次是乘以 4 ,每复制多一组,就要在前一组数值的基础上加 “2”, 在第三组时就是 “6” 。道理不用说了吧。

控制 B5 的移动和旋转: B5.translateX= pin2.translateX ;B5.rotateZ = B1.rotateZ

B6 的移动和旋转: B6.translateX = pin2.translateX;

B6.rotateZ = B1.rotateZ * -1


  先看看效果。


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

使用道具 举报

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

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

GMT+8, 2024-9-20 08:55 , Processed in 0.119197 second(s), 32 queries .

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

© 2008-2019 Narkii Inc.

回顶部