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)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199141.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午1:45
下一篇 2026年3月26日 下午1:46


相关推荐

  • 【python】Windows中编译安装libsamplerate和scikits.samplerate

    【python】Windows中编译安装libsamplerate和scikits.sampleratelibrosa缘由librosa是一个音频和音乐处理的Python包,我用它来做音频的特征提取。但是在使用时,发现librosa.load将音乐文件转化为时间序列的过程中,速度实在难以忍受,cpu跑的非常高,程序好像假死的状态。查阅官方文档发现,默认情况下,librosa会使用scipy.signal进行音频信号的重采样,这在实际使用时是很慢的。如果要获得很高的性能,官方建议安装libsampl

    2022年10月17日
    4
  • 编程技巧│浏览器 Notification 桌面推送通知

    编程技巧│浏览器 Notification 桌面推送通知可视化桌面通知,跟遗忘说再见

    2022年8月16日
    7
  • FRP 内网穿透下载配置[通俗易懂]

    FRP 内网穿透下载配置[通俗易懂]FRP内网穿透下载配置Frp服务的建造下载:修改配置文件frps.ini(服务端)配置文件解释说明:frpc.ini(客户端)配置文件解释说明:启动服务配置启动:创建server端服务脚本:(centos6)创建客户端服务脚本:公网服务器端:CentOS6防火墙配置文件位置CentOS7防火墙配置文件位置联系我Frp服务的建造搭建FRP很简单,关键的步骤只有三步:1,获取FRP文件;2,设置FRP配置文件;3,启动FRP服务。下载:下载地址:https://github.com/

    2025年11月8日
    7
  • python廖雪峰学习笔记[通俗易懂]

    python廖雪峰学习笔记[通俗易懂]Python基础知识自用

    2025年8月3日
    6
  • 修改 css变量,通过CSS变量修改样式的方法示例

    修改 css变量,通过CSS变量修改样式的方法示例问题 js 怎么去修改 css 伪类样式呢 但是 js 并没有伪类选择器 那么该怎么办呢 网上有不少方法 比如通过切换元素的类 在 style 中动态插入新的样式等 那么这里再来一种方法 设置 css 变量 var 通过 js 去改变这个变量来实现 示例 改变 div 的 hover 背景色 root divHoverColo red div width 100px height 100px backgrou

    2025年9月23日
    4
  • HDMI接口定义图

    HDMI接口定义图nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp TheHDMIPlugA nbsp below anHDMIconnec whichinclude TMDSdatachan 6pins thesecarryth

    2026年3月19日
    1

发表回复

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

关注全栈程序员社区公众号