使用Macro Recorder 宏记录器,但不要依赖
在MAXScript 菜单中我们会可以找到Macro Recorder,它的功能是把我们的鼠标和键盘操作转化为脚本形式记录下来。比如我们想知道如何写出一个建立球体的脚本,可以先打开Macro Recorder,再用命令面板的建立球体按钮完成操作,之后就可以看到Macro Recorder所记录的类似这样一段脚本:
Sphere radius:6.57503 smooth:on segs:32 chop:0 slice:off sliceFrom:0 sliceTo:0 mapCoords:on recenter:off pos:[-2.50576,-0.672316,0] isSelected:on
(↑单行,很长——要想看到完整版,有必要按F11打开MAXScript Listener)
如果我们要在脚本中建立球体,那这个就是完成该任务的范例(先不必汗,宏记录下来的都是超级完整标准版,其实可以写成短小精悍型的)。要想使用这种记录后的脚本,一个简单的办法是把它们选中之后,用鼠标拖到屏幕上方的工具按钮——就出现了一个新按钮,每次按它的时候,都会给你在同样位置建立一个同样大小和参数的球……当然名称和颜色还是会有区分的。
提示:有些操作是Macro Recorder无法记录的,并且它也不总是会记录完全正确的脚本。有些操作虽然是可以写成脚本,但并不出现在Macro Recorder的记录中;还有的时候它会给你一些错误的信息,并且像上面的例子一样,它生成的代码总是包含大量不必要的默认参数。因此非必要时刻就不要依赖它。
为有价值的脚本进行通用化处理
在我们的工作中,经常有为了某种特定需要而开发专用软件的情况。假如一个动画师想使10个物体沿一个特殊物体的表面运动。对于编写脚本来说,我们可以写出只能专门控制这10个物体的运动脚本,这种方法会显得比较快因为我不必制作一个操作界面,并可以对脚本所控制的10个物体进行特定的省时省事的操作。这种做法的另一个含义就是——用完就扔,因为它只能解决这一个问题,而下次另一个任务中要使用类似的功能时,我还得重新写过……因此,我们有必要学习适时地为脚本进行通用化。
当我不能确定手头的脚本有没有必要再次使用时,我采取的办法是在其中加入许多注释说明,并将它保存到我脚本目录中一个名为“草稿”的目录。如果下次用得着,我就可以把它拿出来方便地修改和通用化,避免大规模重复性劳动的灾难。
为编写长脚本准备一个优秀的文字编辑软件
尽管我们可以用max内置的脚本编辑器(MAXScript菜单->New Script),然而这个编辑器有个先天不足:一旦你的脚本错误或者任何其他原因导致了max的崩溃……那它也就完了,写在里面的脚本会丢失,也可能带走了之前的部分工作成果。因此我更喜欢在一个独立的文字编辑软件中编写我的脚本,比如Windows系统的记事本或者我最爱的TextPad(www.textpad.com)。它有很多很酷的长处:它的排版更合理,语法高亮显示功能比max内置的更快更好,还可以同时在多个文挡之间进行搜索和替换,还有它可以同时打开多个文件同时查看与编辑……等等。
提示:然而内置的MAXScript 编辑器有一个功能是无可替代的,那就是在使用Visual MAXScript(VMXS) 工具创建界面时,VMXS只会把它生成的代码写进MAXScript 编辑器的窗口里面。在那之后我才可以把它们拷贝/粘贴到我的Textpad里面。
本书附带的DVD中包含了一个评估版的TextPad和它使用语法高亮功能所需的MaxScript.syn文件。注意它是一个商业软件,过期请注册。(虽然没有DVD,但我从电驴中直接搜索到了它的软件本身和注册文件,搜索关键词TaxtPad)
为MAXScript 工作设置TextPad
运行安装程序
将MaxScript.syn 复制到Program Files/TextPad 4/system目录下.如果DVD不在手边,可以去 www.textpad.com/add-ons/synh2m.html下载这个小文件。
打开TextPad,在菜单中选择Config/New Document Class.
在添加文档类型的向导中,输入MaxScript作为类型名,并点击Next.
输入 *.ms, *.mcr 为该类型的成员,Next.
勾选"Enable syntax highlighting"复选框,并从下拉菜单中选择MaxScript,点击Next。
在摘要信息中确认你的选择,并点击Finish完成配置。
相关推荐
[C语言] 模拟线程池
/* # 题目 【线程池】是一种多任务处理模型,由一个任务队列和若干工作线程组成 【任务队列】任务队列包含若干任务 1. 每个任务包含指向任务数据的指针和处理该任务的函数指针 2. 可以向任务队列追加新任务 【工作线程】每个工作线程运行一个任务队列处理函数 1. 核心功能是从队列中获取一个可用任务 1. 如果队列中有任务则执行 2. 如果队列为空,则调用休眠函数休眠若干时间后继续循环获取任...
MaxScript 的细微小知识点总结
MaxScript 的小知识点
3ds MAXScript脚本语言 完全学习手册
3ds MAXScript脚本语言 完全学习手册
测试Maxscript中ListBox双击清空列表,右键选择全部
测试Maxscript中创建的ListBox双击清空列表 rollout AAA "测试双击清空列表" width:162 height:300 ( listbox SSS "list" pos:[24,39] width:108 height:8 button btn12 "Button" pos:[21,201] width:113 height:42 global BB =
3D脚本 maxscript入门教程
<br />入门教程内容结构<br />本教程内容分为五个部分,用几个具体的例子讲解大多数的脚本操作和语法知识。<br />一、MAXScript简介<br />1、说明什么是MAXScript以及它有什么功能,能给用户带来什么好处。<br />2、访问脚本,认识脚本访问的界面。<br />二、基本操作: 创建和修改简单的对象,给对象赋材质,从而引出下面的概念<br />构造器:创建对象的语法称为构造器;<br />路径名;<br />数据类型:它们是数字,字符串,数组。<br />对象和类(层级树);<b
3DsMax 自动化操作(maxScript)
这是我编写的一部分maxScript 脚本,专注于3DsMax快速建模,程序化地为我们完成一些繁琐的工作。 可以极大提高公司开发的效率! 2019年04月09日 :上传 今年新开发的插件,还有很多,很多功能都汇集成一个窗口,有些设成快捷键了,没有展示, 转载于:https://ww...
Max Script|控制器-位置约束_path
记录控制器-路径约束部分的脚本写法 特性a = teapot radius:6 --创建茶壶 半径为6 h1 = helix radius1:50 radius2:0 height:0 turns:2 --创建螺旋线 半径1 半径2 高度 圈数 a.position.controller = path_constraint()
syntax highlighting
Since iOS 5 you can use a UIWebView and set contenteditable="true" on a div in it. This makes the UIWebView open a keyboard up and allow the user to directly input text into the DOM. You can then w
3天学会MaxScript教程之(第一天:开始编写我们的第一个MaxScript)
【1】了解Max Script这是Max内置的脚本语言,可以很方便用来完成一些程序化或者快速完成一些机械性的操作,比如导入一千个模型,并且按照项目的特定规定,分类分大小分种类导入到不同文件夹下,人来完成这件事情将是非常无聊乏味和低效的。所以使用脚本来批量完成会更有价值。【2】开始搭建一个我们的编程环境我习惯了c++的高亮和自动补全,如果叫我用max自带的那个editor来做我会觉得十分痛苦。所以我
线程创建时内存注意释放
情况:近来学习之前的老代码,发现 申请内存
3dsMaxMax脚本的入门讲解之怎样定义控件和工具条(2)
为什么80%的码农都做不了架构师?>>> ...
MAXScript学习笔记(4) 功能:实用工具
一.替换模型 功能:将场景中的一个或者多个模型替换为另一个模型 应用场合:Revit中无法实现的内容,用3dmax模型替换来实现。 具体场景:监狱的金属栅栏,包括水平着的头顶上的金属栅栏。当前Revit技术能力有限,无法在Revit中是实现,但是3dmax中就有很多这种的铁丝网。 核心替换代码是: group "替换" ( pickbutton pbSource "Source...
MAX2018下拉菜单右侧子菜单无法点击的解决方法
问题描述:最近用3ds Max2018发现有一个“bug”,如下图,当鼠标放在下拉菜单里面的“Import”,后面会弹出子菜单,当鼠标往右移动的时候,次级菜单就消失了,怎么也点不上,可能有时候运气好点上了,但是大部分时候都点不上,这样很苦恼。解决方案:1.下载官方修补程序。3dsMax2018.2_Update.msp下载地址链接: 3dmax2018次级菜单无法选中的修补程序2.通过键盘上的上下...
MaxScript中 Case和If语法的案例
1.对于Case语法的小案例rollout myRoll "case test"( spinner s1 "pick a number" range:[0,3,0] type:#integer button b1 "press me" on b1 pressed do ( case s1.value of ( 0:(
学习MAXScript
MaxScript - a Comprehensive Introduction基础语法select $Box* – select any objects with the name box at the beginning of them.打开MAXScript侦听器窗口,开启宏录制器。 这样,每当我们进行一个操作,比如创建一个Box,那么宏录制器中会显示当前动作所对应的MAXScript命令
MaxScript代码补全插件
MaxScript代码补全插件 作者Nik,原文发布于ScriptSpot 安装后max自带脚本编辑器会有自动补全,效果如下:
915




被折叠的 条评论
为什么被折叠?



