3d学院官方吧 关注:1,182贴子:3,528
  • 0回复贴,共1

【脚本插件】小应用初识脚本

只看楼主收藏回复

最近朋友们在为一道动脑数学题头疼,一直没解开,最后有位大神通过代码解出来了,敬佩之情悠然而生。然而平时的建模过程中,有很多参数化的模型,很多规律的场景处理起来非常麻烦,然而一段小小的代码,就什么都解决了。下面我们就之前水晶石在央视投标的一个案例分析一下脚本的使用。
1,首先我们准备一个场景,创建一个长方体,长宽高分别为10,10,100。

2,随后打开时间轴,创建一个300帧的动画。

3,在菜单栏-MAXScript(X)-新建脚本,输入下面一段代码,具体含义是“for a = 0 to 300 by 15 do animate on at time a,在时间a=0和300帧之间隔15帧做一个动画记录;for b in $box* do,为物体B设定一个动作;if b.pos[3]<100 then move b [0,0,random 30 100],如果物体B在Z轴方向小于100,则移动B在Z轴方向随机30至100之间的数值;else if b.pos[3]>100 then move b [0,0,random -100 -30],反之如果物体B在Z轴方向大于100,则移动B在Z轴方向随机-100至-30的值;else move b[0,0,random 20 80],反之则移动物体B在Z轴方向随机20至80的值。”大家最好自己输入,熟悉一下代码的写法。

3,全选写好的脚本,运行"ctrl+e",会发现时间轴上每隔15帧会有一个标记点。

4,打好摄像机角度(俯视),点开自动关键点,移动摄像机角度、高度,退出自动关键点。

5,调整渲染设置,渲染一下,就完成了。

为方便大家学习,将写好的脚本复制给大家“
for a = 0 to 300 by 15 do
animate on
at time a
(
for b in $box* do
(
if b.pos[3] < 100 then move b [0,0,random 30 100]
else if b.pos[3] > 100 then move b [0,0,random -100 -30]
else move b[0,0,random 20 80]
)
)
”,大家如果感兴趣,欢迎加入3D学院交流CG群:160547328交流。


1楼2016-03-29 17:45回复