许多人在接触3DS MAX进行模型的搭建、渲染以及动画的制作之后,都会接触到MAXScript. MAXScript是3ds MAX内置的脚本语言,几乎能够实现3ds MAX界面内的所有操作。而且语言也很简单易懂,能够让非专业编程的人也能够看懂代码,实现一些方便快捷的功能,为3ds MAX的使用增添便利。
下面我将主要讲叙如何在3ds MAX中利用宏脚本即MacroScript在3ds MAX用户界面内实现添加主菜单栏上的内容,然后运行自己的宏脚本,使我们的脚本能够更加方便快捷的应用到我们以后的操作中去。
首先,先讲一下如何利用Visual MAXScript Editor来进行卷展栏Rollout用户界面的图形化的设计。打开3DS MAX,在主菜单栏的MAXScript下有一项Visual MAXScript 编辑器,点击该项会弹出一个自定义卷展栏用户界面的窗口,用户可以根据自己的脚本内容的需要,进行卷展栏的自定义设计,同时用户还可以审计caption标题、属性、range、name等各项内容来方便MAXScript脚本语言的编写。之后,用户可以把设计好的卷展栏的内容保存为".ms"文件,然后再用MAXScript Editor打开,就能够看到刚才自己设计的卷展栏界面的MAXScript脚本代码。Visual MAXScript Editor正是为了方便用户进行脚本界面卷展栏的设计而专门设定的功能,我们可以进行3ds max提供的这个功能,进行脚本内容界面的编写。
那么如何在3DS MAX中利用宏脚本MacroScript实现对菜单栏上的内容进行自定义呢?
MacroScript Random_Rotate category:"Shemmy Tools" buttonText:"Random Rotate" tooltip:"Random Rotate" ( rollout RandomRotateRollout "Random Rotate" width:238 height:320 ( groupBox grp4 "Random Rotation Range" pos:[24,29] width:189 height:221 spinner spn7 "Mininum Value" pos:[38,71] width:164 height:16 range:[-360,360,0] spinner spn8 "Maxinum Value" pos:[38,110] width:164 height:16 range:[-360,360,0] button btn6 "Randomly Rotate" pos:[45,156] width:144 height:32 on btn6 pressed do ( for obj in $ do ( if(selection.count > 0) then ( randXrot = random spn7.value spn8.value randYrot = random spn7.value spn8.value randZrot = random spn7.value spn8.value rot_obj = eulerangles randXrot randYrot randZrot rotate obj rot_obj ) else ( messagebox "You must have at least one object selected!" ) ) ) ) createDialog RandomRotateRollout 300 400 )
首先,在写完MacroScript脚本之后,然后点击计算所有,在Listener窗口的输出区域中会返回一个数字,这个数字是宏脚本的指针。之后,我们点击3DS MAX主菜单栏中的自定义下的自定义用户界面,就会弹出如下窗口
然后点击菜单,根据自己设定的宏脚本的category,在类别中找到自己设置的类别(为了方便用户对自定义宏脚本的归类),我们设定shemmy tools,如下图所示:
新建一个自己的宏脚本所实现功能的菜单,起一个名字,将所要的功能拖动进去。然后再弹出界面左下角菜单处的下方滚动栏里面就能够找到自己刚新建的菜单,然后拖动到自己想要放得地方,比如主菜单栏下面,然后就能够在3ds MAX的*的主菜单栏上找到自己刚刚新建的菜单,然后就能够非常便捷的实现自己想要实现的功能啦!!!!