佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

搜索
查看: 2994|回复: 4

[教学] 创建maxscript个性化Rename工具

[复制链接]
发表于 16-2-2009 10:24 PM | 显示全部楼层 |阅读模式
不知道大家会不会觉得rename object是一个很烦琐的过程呢?今天在这里就和大家分享一下如何利用maxscript制作一个简单的rename工具,让renaming变得得心应手。

(一)创建界面
  • 首先我们必须为rename工具创建一个界面。进入Menu > MAXScript > Visual MAXScript Editor。
  • 根据下图的资讯完成相同的界面,并赋予每个button和edittext一个独一无二的名字。(注意:各个element的名字必须是独一无二的,这样我们才能够确保各个element能使用特有的操作,而不会产生冲突。)
  • 完成后我们将之Save为Interface.vms,以便日后修改。
  • 过后再save as QuickRename.ms(注意.ext为“.ms”)。


  • 我们的editBox将会使用on enteredevent(即输入完后按Enter就会执行rename),它的特性是当mouse移开editBox的范围后进行click的话会执行指令。所以如果一开始不将这个button设置为enabled:false的话,那么按下去将会直接执行两次rename。
  • editBox预设为留空,如果想要一打开dialog变有字句的话可自行设定。
  • editBox的height必须小过18pixel,on entered event才有效。所以将之设定为16pixel。

(二)maxscript
1)通过Menu > MAXScript > Maxscript Editor打开之前save好的QuickRename.ms,你便会看到如下图的maxscript。在这里我们会加入自己编写的maxscript来完成这个工具。


2) 接下来我们完成这个script。
  1. rollout quickRename "Quick Rename" width:250 height:120
  2. (
  3.     editText txt_name "" pos:[24,56] width:200 height:16
  4.     button btn_rename "RENAME!" pos:[48,80] width:75 height:25 enabled:false
  5.     button btn_cancel "CANCEL" pos:[136,80] width:75 height:25
  6.     button btn_head "Head" pos:[8,16] width:75 height:25
  7.     button btn_body "Body" pos:[88,16] width:75 height:25
  8.     button btn_leg "Leg" pos:[168,16] width:75 height:25

  9.    
  10.     -- DEFINE 'RENAME' FUNCTION
  11.     ---------------------------------------------------
  12.     fn renameIt objName = ( -- function "rename"
  13.         global objName
  14.         for i in selection do i.name = uniquename objName
  15.     )-- end   
  16.    
  17.    
  18.     -- ACTION
  19.     ---------------------------------------------------
  20.     on btn_head pressed do renameIt "Head_"
  21.     on btn_body pressed do renameIt "Body_"
  22.     on btn_leg pressed do renameIt "Leg_"
  23.     on txt_name entered txt do (renameIt (txt + "_"; btn_rename.enabled=true)
  24.     on btn_cancel pressed do destroyDialog quickRename

  25. )

  26. createDialog quickRename
  27. setFocus quickRename.txt_name
复制代码
=============================== 注解 ===============================
  1. fn renameIt objName = ( -- function "rename"
  2.         for i in selection do i.name = uniquename objName
  3.     )-- end
复制代码
将rename的指令定义为renameIt(),赋予一个variable "objName"。for...i是对所有选取的object都进行rename,然后通过uniquename赋予每个object独一无二的suffix(01,02,03...etc)
  1. on btn_head pressed do renameIt
  2. "Head_"
复制代码
当btn_head被按下去的时候,就会执行renameIt(),并将"Head_"这个stringassigned到objName这个variable中。
  1. on txt_name entered txt do (renameIt
  2. (txt + "_";
  3. btn_rename.enabled=true)
复制代码
当在editBox输入了名字过后,按enter就执行renameIt(),并将btn_rename设置为可用。
  1. on btn_cancel pressed do destroyDialog
  2. quickRename
复制代码
当按下btn_cancel的时候就会摧毁开启中的renamedialogBox,退出这个rename工具。
  1. createDialog
  2. quickRename
复制代码
这个是用来创建rename工具所在的dialogBox。名字必须和rollout相同。
  1. setFocus
  2. quickRename.txt_name
复制代码
当dialog开启时,设定editBox为focus(即直接可输入名字)。

(三)macroscript
1)这个步骤将我们的script转换成macroscript(如下图所示),以载入到Customize User Interface内,方便设置shortcut key或将其变成toolbar item。
  1. macroScript QuickRename category:"Tutorial" tooltip:"Quick Rename" Icon:#("AtmosApp",1)
  2. (
  3. -- "rollout" is to be put in here
  4. )
复制代码
  • QuickRename = macroscript的名称
  • category = 在Customize User Interface下属于的category
  • tooltip = mouse停留在该tool时会显示的名字,以及在Customize User Interface内的名字
  • Icon = 个性化Icon,见下部分解说

(四)创建Icon
  • 我们可以为自己编写的工具制作个性化的Icon。具体步骤是在macroscript同一行加入:
    1. Icon:#("AtmosApp",1)
    复制代码
    AtmosApp =icon档案名,使用.bmp为标准格式,档案必须放在3dsmax root\ui\Icons。
  • 在这里我们使用ui\Icons\AtmosApp*.bmp作为示范。
  • 其它详情請参阅maxscript reference。

(五)运行
  • 到这里我们已经接近大功告成了,现在到MAXScript > Run Script... 运行你的QuickRename.ms后,到Customize User Interface > Toolbar > Category > Tutorial下就会看到了。将其拖到自己创建的toolbar上就可以了(或者是到Keyboard下设定成shortcut key也可以)。运行过后它会自动生成一个.mcr档案到3dsmax的usermacro folder(DRIVE:\Documents and Settings\Username\Local Settings\Application Data\Autodesk\3dsmax\2009 - 32bit\enu\UI\usermacros)
  • 如果不要使用运行载入的方式,我们也可以直接save as .mcr,然后自行放到该目录下。取何方式就看大家的喜好了。

(六)后记
  • 除了制作这个简单的rename工具之外,同样的方法也能够用来创建可以记录rendererpreset、material等等的button,种种的可能性有待大家共同去探究。因此呢我希望透过这个简单的教程帮到有兴趣学maxscript的网友,同时也欢迎大家多多交流指教。
  • 最后也和大家分享一下我为自己创建的rename tool:


[ 本帖最后由 tecsun 于 17-2-2009 09:34 AM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 17-2-2009 09:14 AM | 显示全部楼层
太多字~ 要慢慢看~ 謝謝TECSUN的教程
回复

使用道具 举报

发表于 17-2-2009 01:12 PM | 显示全部楼层
好教程!不过我看到头晕了。。。。
回复

使用道具 举报

发表于 20-2-2009 12:04 AM | 显示全部楼层
加油!!!
回复

使用道具 举报

发表于 23-2-2009 05:42 PM | 显示全部楼层
maxscript,听说这就是max的精华所在。。
果然很厉害。
很感谢分享,版主为自己加分鼓励吧!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT


本周最热论坛帖子本周最热论坛帖子

ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2026 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 15-4-2026 01:45 PM , Processed in 0.089782 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表