Part1前言
3ds max是目前国内动画行业使用最普遍的、功能强大的三维动画设计软件,它除了具有交互操作方式外,还提供了编程开发工具——MAXScript脚本语言。MAXScript是3ds max众多插件中最有特色的一个。可以这样说,MAXScript把Max几乎所有的功能重写一遍(少数功能除外),而且能实现无法用鼠标键盘实现的操作。
Part2MaxScript侦听器
初次学习MaxScript,建议先从监听器开始学习。打开界面如下:
然后启用宏录制器
之后我们通过界面的操作,就会自动被捕捉并显示,我们可以这样学习语法。例如我们创建一个球体,会在界面输出如下命令
Sphere radius:24.7171 pos:[-8.16896,15.7796,0] isSelected:on
我们在下面的脚本区域输入同样的命令,就会自动创建一个球体。
Part3新建脚本
当我们遇到复杂脚本的时候,侦听器单行执行往往无法满足需求,这个时候,我们可以新建一个脚本,点击计算所有,即可执行脚本此时,监听器还是需要打开,他可以监听脚本执行的异常情况,并给出提示。示例如下:
Part4基本语法
1获取对象
通过$可以获取当前被选中的对象
$
通过$+对象名称 可以获取指定的对象
$sphere002
2添加注释
有两种添加注释的方式,如下,分别为单行和多行的注释。
#多行注释
/*
*/
#单行注释
--
3定义函数
通过function关键字可以定义函数,参数直接跟在后面即可。调用方法的话,就是函数名然后后面跟着参数
#定义函数
function createSpheres count growth =
(
for i in 1 to count do
Sphere radius:(i*growth) position:[i^2*growth,0,0]
)
#调用函数
createSpheres 25 10
4定义数组
#定义数组并输出
a = #(1,3,5,7,9)
for i in a do
print(i)
#输出
1
3
5
7
9
#数组访问,从下标1开始
a[1]
#输出
1
#通过collect关键字可以动态生成一个数组
a = for i in 1 to 5 collect i
#输出
#(1, 2, 3, 4, 5)
5循环
# 步长为5的循环
for t in 0 to 10 by 5 do
print(t)
# 输出
0
5
10
6case转换
case 有两种判断方法,分别如下
# 在后面判断
exper =1
case of
(
(exper == 1):
Sphere radius:20
(exper == 2):
Sphere radius:40
)
# 在前面判断
exper =2
case exper of
(
1:
Sphere radius:20
2:
Sphere radius:40
)
7动画
可以设置不同位置的关键帧,从而实现动画。下面示例为0-100帧的小球沿着x轴移动的动画。
Sphere radius:20 segs:30 pos:[0,0,0] name:"ball"
animate on
(
at time 0 $ball.pos = [-100,0,0]
at time 100 $ball.pos = [100,0,0]
)
Part5总结
本文主要简单总结了MaxScript脚本入门使用。
关注公众号加技术交流群: