3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)【1】了解MaxScript这是Max内置的脚本语言,可以很方便用来完成一些程序化或者快速完成一些机械性的操作,比如导入一千个模型,并且按照项目的特定规定,分类分大小分种类导入到不同文件夹下,人来完成这件事情将是非常无聊乏味和低效的。所以使用脚本来批量完成会更有价值。【2】开始搭建一个我们的编程环境我习惯了c++的高亮和自动补全,如果叫我用max自带的那个editor来做我会觉得十分痛苦。所以我

【1】了解Max Script

这是Max内置的脚本语言,可以很方便用来完成一些程序化或者快速完成一些机械性的操作,比如导入一千个模型,并且按照项目的特定规定,分类分大小分种类导入到不同文件夹下,人来完成这件事情将是非常无聊乏味和低效的。所以使用脚本来批量完成会更有价值。

【2】开始搭建一个我们的编程环境

我习惯了c++的高亮和自动补全,如果叫我用max自带的那个editor来做我会觉得十分痛苦。所以我们需要一个比较好的开发环境

首先下载最新版的max2017 然后再下载微软的VsCode,安装一下语法高亮插件,配置好这两个东西之后就可以开始啦。

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

【3】从一个小例子创建一个物体开始

首先我们需要创建一个max脚本文件然后把它保存在一个方便找的地方比如桌面。创建的话就单击max左上角的script选项栏然后点击newscript就可以啦,然后用VSCode打开,然后开始编写。

先从创建我们的第一个box开始

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

效果如下所示

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

下面来一行一行解释代码的意思

第一行:声明一个mybox的变量 然后创建一个 box对象,它的长宽高分别是20 然后把这个创建好的box对象赋值给变量mybox

第二行:修改这个box的名字为BlueBox

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

第三行:将box的颜色改为蓝色

第四行:将box的位置设置为 x=0 y=10 z=10

第五行:设置box的缩放为xyz 1.5倍

第六行 给box加上一个修改器,twist,设置修改器twist的angle为30

至此我们就已经学会了如何新建一个脚本 然后创建一个几何图形,然后对它进行纺射变换,给集合体加修改器。

再来做几个例子:

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

【4】复杂点的程序化思想创建物体,流控制

用循环创建一组box吧

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

for语句的书写格式和c++有点差别,do为循环体。注意作用域。

尝试一些其他的循环语句

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

这个是一个while do循环体,也有do while循环。两个的区别就是先执行一次再判断和先判断再执行。

再复杂一点,在循环中加一个if判断

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

可以看到我在y=300的位置创建了一个box,但是这与y=300的球重叠了,我们再用else语句限制一下

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

总体逻辑还是非常简单的稍微学过编程的很容易理解。主要还是熟悉一下maxscript的语法。

【5】函数

把逻辑封装在函数里面可以方便调用,我们把上一个例子的逻辑封装一下。一个函数的格式和函数的调用方法从下面的代码能一下子看出来了吧。函数声明除了使用function关键字外,还可以用fn

ydistance:500是函数的参数。:500是初始化这个参数给个默认值。

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

我们在调用函数的时候可以覆盖那个初始值,如果调用的时候不给新值覆盖则会用默认值。

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

下面是我覆盖了函数默认参数的效果。覆盖写法和调用如下

使用fn声明函数

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

【6】完成一个简单的插件

打开3dmax->Scripting->visual maxscriptEditor

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

这是一个可视化max脚本UI编辑器。我们在面板里创建一个button然后点击这个按钮的events

点击eventhandlers

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

会弹出一个脚本编辑器面板,这回对这个button进行绑定。然后关闭editeventhandler,然后保存。用vscode打开我们保存的这个ms文件你会看到如下代码

rollout unnamedRollout
“Untitled”

width:
162

height:
300
(
    
button

‘btn1’

“Button”

pos:
[
21
,
29
]
width:
103

height:
52

align:
#left
    on btn1 pressed 
do
        
box
()
)

效果如下

3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)

至此我们已经上手编写max脚本了。后面两天再深入提高!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35081.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注