3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)
【1】了解Max Script
这是Max内置的脚本语言,可以很方便用来完成一些程序化或者快速完成一些机械性的操作,比如导入一千个模型,并且按照项目的特定规定,分类分大小分种类导入到不同文件夹下,人来完成这件事情将是非常无聊乏味和低效的。所以使用脚本来批量完成会更有价值。
【2】开始搭建一个我们的编程环境
我习惯了c++的高亮和自动补全,如果叫我用max自带的那个editor来做我会觉得十分痛苦。所以我们需要一个比较好的开发环境
首先下载最新版的max2017 然后再下载微软的VsCode,安装一下语法高亮插件,配置好这两个东西之后就可以开始啦。
首
【3】从一个小例子创建一个物体开始
首先我们需要创建一个max脚本文件然后把它保存在一个方便找的地方比如桌面。创建的话就单击max左上角的script选项栏然后点击newscript就可以啦,然后用VSCode打开,然后开始编写。
先从创建我们的第一个box开始
效果如下所示
下面来一行一行解释代码的意思
第一行:声明一个mybox的变量 然后创建一个 box对象,它的长宽高分别是20 然后把这个创建好的box对象赋值给变量mybox
第二行:修改这个box的名字为BlueBox
第三行:将box的颜色改为蓝色
第四行:将box的位置设置为 x=0 y=10 z=10
第五行:设置box的缩放为xyz 1.5倍
第六行 给box加上一个修改器,twist,设置修改器twist的angle为30
至此我们就已经学会了如何新建一个脚本 然后创建一个几何图形,然后对它进行纺射变换,给集合体加修改器。
再来做几个例子:
【4】复杂点的程序化思想创建物体,流控制
用循环创建一组box吧
for语句的书写格式和c++有点差别,do为循环体。注意作用域。
尝试一些其他的循环语句
这个是一个while do循环体,也有do while循环。两个的区别就是先执行一次再判断和先判断再执行。
再复杂一点,在循环中加一个if判断
可以看到我在y=300的位置创建了一个box,但是这与y=300的球重叠了,我们再用else语句限制一下
总体逻辑还是非常简单的稍微学过编程的很容易理解。主要还是熟悉一下maxscript的语法。
【5】函数
把逻辑封装在函数里面可以方便调用,我们把上一个例子的逻辑封装一下。一个函数的格式和函数的调用方法从下面的代码能一下子看出来了吧。函数声明除了使用function关键字外,还可以用fn
ydistance:500是函数的参数。:500是初始化这个参数给个默认值。
我们在调用函数的时候可以覆盖那个初始值,如果调用的时候不给新值覆盖则会用默认值。
下面是我覆盖了函数默认参数的效果。覆盖写法和调用如下
使用fn声明函数
【6】完成一个简单的插件
打开3dmax->Scripting->visual maxscriptEditor
这是一个可视化max脚本UI编辑器。我们在面板里创建一个button然后点击这个按钮的events
点击eventhandlers
会弹出一个脚本编辑器面板,这回对这个button进行绑定。然后关闭editeventhandler,然后保存。用vscode打开我们保存的这个ms文件你会看到如下代码
效果如下
至此我们已经上手编写max脚本了。后面两天再深入提高!
3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)相关推荐
- 【.NET Core 跨平台 GUI 开发】第一篇:编写你的第一个 Gtk# 应用
本文是[.NET Core 跨平台 GUI 开发]系列博文的第一篇.该系列博文是一个关于 Gtk# 跨平台应用开发的初级随笔集合.该随笔集合介绍了 GTK 和 Gtk# 的基本信息以及开发方法,并展示 ...
- core开发linux桌面应用,【.NET Core 跨平台 GUI 开发】第一篇:编写你的第一个 Gtk# 应用...
本文是[.NET Core 跨平台 GUI 开发]系列博文的第一篇.该系列博文是一个关于 Gtk# 跨平台应用开发的初级随笔集合.该随笔集合介绍了 GTK 和 Gtk# 的基本信息以及开发方法,并展示 ...
- Android项目驱动式开发教程 第2版,《Android项目驱动式开发教程》第一章开发入门.ppt...
<Android项目驱动式开发教程>第一章开发入门 1.4 项目框架分析 4 android:versionName="1.0" > 5 8 第9行代码andro ...
- 零知识证明实践教程,第一部分
本文和其他博客文章的区别: 现今存在很多讲解零知识证明的文章,但是它们都是只涉及到很浅层的概念理解和直观感受上面,没有深入到零知识证明的细节,导致读者只知道什么是零知识证明,而不清楚怎么构造一个零知识 ...
- Arduino可穿戴教程之第一个程序——上传运行程序(四)
Arduino可穿戴教程之第一个程序--上传运行程序(四) 2.4.5 上传程序 现在所有Arduino IDE的设置都完成了,我们就可以将示例程序上传到板子中了.这非常简单,只需要单击如图2.45 ...
- Arduino可穿戴教程之第一个程序——选择端口(三)
Arduino可穿戴教程之第一个程序--连接硬件选择板子(三) 2.4.4 选择端口 在选择了板子之后,我们就需要选择板子连接到电脑的端口了.它也在"工具"菜单中设置,如图2.4 ...
- Arduino可穿戴教程之第一个程序——连接硬件选择板子(二)
Arduino可穿戴教程之第一个程序--连接硬件选择板子(二) 2.4.2 连接硬件 在选择好示例程序后就可以将LilyPad通过LilyPad编程器连接到电脑了. 2.4.3 选择板子 如果你了 ...
- Arduino可穿戴教程之第一个程序——Blink(一)
Arduino可穿戴教程之第一个程序--Blink(一) 至此我们的硬件和软件部分都准备好了,是时候测试一下他们是否可以和谐地合作了.当然,第一个程序我们并不需要自己来写,因为我们还没有了解过Ardu ...
- python cocos2d菜鸟教程_(译)cocos2d菜单教程:第一部分
今天,我将带大家一起征服cocos2d的菜单.你不可能会做一个游戏而缺少菜单功能吧?cocos2d使得制作菜单变得非常简单.但是,在我们开始之前,需要确保构建一个系统,它非常容易扩展,以后制作任何游戏 ...
- 《ArcGIS Engine+C#实例开发教程》第一讲桌面GIS应用程序框架的建立
原文:<ArcGIS Engine+C#实例开发教程>第一讲桌面GIS应用程序框架的建立 摘要:本讲主要是使用MapControl.PageLayoutControl.ToolbarCon ...
最新文章
- 使用struts2框架来实现CRUD(create、read、update、delete)
- mxnet基础到提高(51)-Activation激活函数
- 「JupyterNotebook」Jupyter中的程序调试方法
- 虚函数(Virtual Function)与 纯虚函数(Pure Virtual Function)
- 鸿蒙概念爆发,叶子看盘:华为鸿蒙概念爆发,这两只龙头已启动!
- robotframework基础学习(8)
- ElasticSearch 文档的添加、获取、更新、删除_05
- C语言作业完成情况dazuoye,成都信息工程学院C语言作业答案.docx
- 如何检查Java中是否存在文件
- Django 创建model的一些注意事项
- android中页面跳转以及数据在Activity之间的传递
- 开源表单系统推荐:TDUCK填鸭表单
- 浅谈 Java 24个设计模式(23个GoF设计模式 + 简单工厂模式) 之 六个创建型模式...
- linux将文件前面100行导出,linux中,使用cat、head、tail命令显示文件指定行
- RxHttp 全网Http缓存最优解,完整PDF
- 基因家族分析⑤:进化树构建
- MySQL数据的备份与恢复
- 电脑横屏和竖屏双屏幕设置不一样的壁纸
- 老杨说运维 | 农信行业运维数字化和智能化转型实践分享
- 关于安卓Facebook接入时的坑