现在的位置: 首页 > 综合 > 正文

MAXScript101_3.1 Scripting Animation

2013年04月09日 ⁄ 综合 ⁄ 共 1469字 ⁄ 字号 评论关闭

MAXScript101_3.1 Scripting Animation

 

 

1. animate on : 使用AUTO KEY设置关键帧
-- 设置两个关键帧
animate on -- means turn on AUTO KEY button
(
at time 0 $Sphere01.pos = [-100, 0, 0]
at time 100 $Sphere01.pos = [100, 0, 0]
)

-- 设置多个关键帧
b2 = sphere radius: 3 wireColor: red
--在0 到100 帧间,每隔 5 帧设置一个关键帧
animate on for t in 0 to 100 by 5 do
at time t
(
-- 对新建的球体进行位置动画
b2.pos = $Sphere01.pos + random [-16, -16, -15] [16, 16, 16]
-- 对原有的球体进行大小动画
$Sphere01.radius = 8 + 4 * sin(720 * t / 100)
)
--获取某一关键帧时,物体的位置
p1 = at time 10 $Sphere01.pos
p2 = at time 50 $Sphere01.pos
distance p2 p1

 

2. 时间值(time value)可以有下面几种表示方法

 

 

eg.

for t in 0s to 10s by 0.01s do
at time t print $Sphere01.pos

 

3. 实例- rail box

-- 运行该代码,需准备:
-- 1. 两条line作为运行轨道, shapes > line
-- 2. 一个box作为运动物体
fn railFollow obj line1 line2 u =
(
-- compute pos, direction & distance between rails at u
local p1 = lengthInterp line1 u,
-- 比较效果,p2 求法一
p2 = lengthInterp line2 u,
-- 比较效果,p2 求法二
--u2 = nearestPathParam line2 p1,
--p2 = lengthInterp line2 u2,
dv = p2 - p1
d = distance p1 p2
-- place & size object between rails
obj.pos = p1
-- <node>.dir : Point3 means local z-axis direction vector
-- 高度方向为物体的 z 方向
obj.dir = dv
obj.height = d
)
start = animationRange.start
end = animationRange.end
animate on
for t in start to end by 2 do
(
-- compute fraction along time range, for the parameter between [0,1]
local u = (t - start) as float / (end - start) as float
-- animate box01 along rails at the offset
at time t railFollow $Box01 $line01 $line02 u
)

 

4. 补充知识
1) B样条曲线

 

 

 

2) Shape Common Properties, Operators and Methods

一般方法(General Methods):
numKnots -- 求shape的控制顶点个数
插值方法(Interpolation Methods):

 

 

3) 显示物体局部坐标系
step1: views > show transform gizmo (快捷键是 X)
step2: 在Reference Coordinates System 下拉窗口中,选为Local

 

 

视频教程:http://vimeo.com/19513037

 

 

 

抱歉!评论已关闭.