阿赵的MaxScript学习笔记分享七《Macro Recorder》

MaxScript学习笔记目录
大家好,我是阿赵,这是MaxScript学习笔记分享的第七篇。
前面介绍了很多基础的东西,里面涉及到了很多max对象的操作。这里会存在一个疑惑,3DsMax里面的操作对象类型很多,修改器也很多,我们应该怎样去查询呢?还是要逐个的去记住呢?
其实不需要的,这里介绍一个很好用的工具,叫做MacroRecorder。这是一个命令记录器,可以把我们在3DsMax里面的所有操作的命令都显示出来。结合着之前学习的内容,我们应该很容易就能看懂,有新的操作命令需要查询时,通过MacroRecorder操作一次,就能知道用什么命令了。

1、MacroRecorder窗口

在3DsMax主工具栏上的Scripting/Macro Recorder,可以打开MacroRecorder功能,他的窗口其实是在MaxScript Listener窗口上面的。
在这里插入图片描述
在这里插入图片描述

我们也可以在ScriptListener的菜单里面找到MacroRecorder。需要注意的是,它是有开关的,需要把Enabled选项勾上,它才会真正记录命令

2、操作的例子

在这里插入图片描述
在这里插入图片描述

这个例子里面,我进行了以下操作
1.创建了一个box
2.点空白处取消选择
3.点box选择了box
4.修改box的高度99.1766和高度分段数量20
5.给box添加了Twist扭曲修改器
6.给Twist修改器输入了一个190的角度
7.把这个box塌陷为可编辑多面体

3、命令说明

1.创建命令

之前已经学习过,通过Box()命令可以创建一个盒子。从这个例子可以看出,我们在创建box的时候,随便可以指定各种参数。

2.选择命令

可以通过select命令来选择对象,然后通过clearSelection()命令来取消选择。
也可以通过名字来查找和选择场景中的物体,比如场景中有一个盒子叫做box001,在名字前面加 ,就可以获得这个物体,比如我们打印 ,就可以获得这个物体,比如我们打印 ,就可以获得这个物体,比如我们打印box001,发现获得了这个叫做box001的物体。需要注意的是,3DsMax里面并不要求物体的名字是唯一的,所以很有可能,场景里面会同时存在2个box001,如果使用 b o x 001 ,返回的并不是 2 个 b o x ,而是第一个起名字位 b o x 001 的盒子。需要注意的是,这个选择命令是模拟我们用鼠标选择物体 ( 1 ) 如果当前只有一个物体被选中,我们可以通过 s e l e c t 命令来选择这个物体,选择完了之后,可以通过 g e t c u r r e n t S e l e c t i o n ( ) 命令来获取当前已经选中的物体,也可以用 box001,返回的并不是2个box,而是第一个起名字位box001的盒子。 需要注意的是,这个选择命令是模拟我们用鼠标选择物体 (1)如果当前只有一个物体被选中,我们可以通过select命令来选择这个物体,选择完了之后,可以通过getcurrentSelection()命令来获取当前已经选中的物体,也可以用 box001,返回的并不是2box,而是第一个起名字位box001的盒子。需要注意的是,这个选择命令是模拟我们用鼠标选择物体(1)如果当前只有一个物体被选中,我们可以通过select命令来选择这个物体,选择完了之后,可以通过getcurrentSelection()命令来获取当前已经选中的物体,也可以用来获取当前选择的物体。
比如创建了一个boxt1 = box(),然后select boxt1。
打印$,就会发现打印的是boxt1的内容,然后我们可以delete ,就把 b o x t 1 删掉了 ( 2 ) 如果当前选择的物体不止一个,那么我们用 g e t c u r r e n t S e l e c t i o n ( ) 或者 ,就把boxt1删掉了 (2)如果当前选择的物体不止一个,那么我们用getcurrentSelection()或者 ,就把boxt1删掉了(2)如果当前选择的物体不止一个,那么我们用getcurrentSelection()或者来获得的当前选择,就会变成是一个数组。如果要用脚本同时选中多个物体,就要用数组的形式,比如:select #( B o x 001 , Box001, Box001,Box002)。
(3)这里就存在一个问题,需要判断获得当前选择的东西,是单个物体,还是数组。我们可以用classOf方法来判断。比如curSelect = getcurrentSelection(),然后classOf curSelect,如果得到的结果是Array,那就是数组了。
如果想对场景里面所有对象进行操作,也可以用默认的objects
在这里插入图片描述

objects是一个数组,可以遍历,如果使用select objects,就会选择场景里面所有的对象

3.修改属性

这个之前也学习过了,可以直接通过对象.属性名称来改变对应的属性

4.添加修改器

上面的例子里面,通过命令添加了一个Twist修改器,具体的命令是这样的:
modPanel.addModToSelection (Twist ()) ui:on
需要注意的是,后面还跟着一个 ui:on,这是一个什么东西呢?如果我们手动操作添加修改器,一般是会先跳转到修改面板,然后再添加修改器的。但如果我们使用脚本来添加修改器,那么当前我们可能并不是处于修改面板。
如果当前是在修改面板,那么不需要加ui:on就可以成功添加修改器。如果当前并不在修改面板,那么如果不加ui:on,虽然返回ok,但实际上修改器并没有添加成功。加上了ui:on后, 那边不管当前是否在修改面板,也会打开修改面板,并成功添加修改器。

5.修改器的获取、修改和删除

在这里插入图片描述

再做一个简单的例子,在boxt1上面添加了2个修改器,一个是Twist,一个是Unwrap_UVW,
这时候,我们可以通过boxt1.modifiers来获取boxt1身上的所有修改器列表,这是一个Array,所以可以通过count来获取长度,可以通过下标来获取对应的修改器
在获取到单独的修改器之后,就可以直接通过属性来改变修改器了。
最后,通过deleteModifier boxt1 序号来删除boxt1身上指定序号的修改器

6.塌陷对象

把对象身上的所有修改器塌陷,变成可编辑的网格、可编辑多面体、可编辑面片
macros.run “Modifier Stack” “Convert_to_Mesh”
macros.run “Modifier Stack” “Convert_to_Poly”
macros.run “Modifier Stack” “Convert_to_Patch”

MacroRecorder可以说为我们打开了一扇查询的大门,我们在写脚本遇到不知道怎么写的时候,可以通过正常操作,并在MacroRecorder里面看看具体的命令,就可以猜到一些大概的写法了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Macro Recorder可轻松实现日常任务的自动化(类似按键精灵) 这款键盘和鼠标记录器可以: 记录日常任务的宏 或使用宏编辑器和内置命令(如“打开文件”,“关闭”,“启动网站”,甚至是 “大型”编程语言中的for-loops和if语句)从头开始创建宏。 制作自己的程序和宏 - 无需编程技能。 为什么选择Jitbit Macro Recorder? 好处: 容易尝试。如果试用期太短,请告诉我们,我们会为您解决。 非常简单。Macro Recorder具有简单直观的用户界面。忘记阅读手册浪费的时间。在几秒钟内开始使用Macro Recorder。只需用鼠标单击“录制”即可执行一些活动。 灵活。使用内置的全功能Visual Macro Maker编辑宏,享受Macro Recorder的完整windows-shell集成和调度 自动化软件。将自定义命令和语句插入到宏中,例如:“启动网站”,“打开文件”,“等待窗口”,“转到”,“关闭”等等。使用“IF-THEN”语句,“REPEAT X TIMES”语句向宏添加逻辑。 C#脚本语言 - 您可以在C#中插入代码片段 EXE编译器。将您的宏转换为在任何Windows兼容计算机上运行的EXE文件。为了节省空间并提高性能,使用高级优化技术对生成的EXE文件进行打包和压缩。 无障碍。将鼠标和键盘宏分配给热键并从任何应用程序运行它 可调节。可变播放速度,宏录制滤波器,循环宏播放,“隐形模式”宏录制等。 调试宏:插入断点,部分播放或循环播放。 人类可读的宏文件格式,便于在外部编辑器中编辑的纯文本脚本 SMART-Rec鼠标记录器技术,可选择将鼠标记录在相对坐标中

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值