例子1:对所有所选的物体做一些事
-- selection 是内建的表示当前所选的集合 -- 遍历当前所选,打印它们的名字 fn LoopSelection= ( for s in selection do ( print s.name ) /* -- 也可以写成: for s = 1 to selection.count do ( print (selection[s].name) ) */ )
例子2:对场景内所有几何体做一些事
-- geometry 是3dsMax内建的表示场景中所有几何体的集合 fn PrintGeomNames = ( -- 遍历场景里所有的几何体 for g in geometry do ( -- 打印几何体的名称 print g.name ) )
例子3:多维遍历的应用:
-- 例子: 创建一个彩色盒子矩阵 fn CreateAColorCube= ( -- 每行的数量 local num = 10.00 -- 每个box的大小 local size = 10.0 -- 遍历 -- 三层遍历最终会创建 10 x 10 x 10 个box for r = 1 to num do ( for g = 1 to num do ( for b =1 to num do ( -- 创建box并设置属性 theBox = box() theBox.name = "box_" + ((r as string) +"_") + ((g as string) +"_") +(b as string) -- 每个box的名称 theBox.width = size -- 宽 theBox.height = size -- 高 theBox.length = size -- 长 theBox.pos = [r,g,b] * size -- 位置 theBox.wirecolor = [(r/num * 255),(g/num *255.00),(b/num *255.00)] -- 颜色 ) ) ) )
While_Do的例子
-- 注意1 条件判断,如果永远达不到停止条件,会成死循环,3dsMax会成假死状态 -- 注意2 while . . . do 和 do . . . while 的区别 maxnul = 10 i = 1 while( i < maxnum )do ( print i i+=1 ) /* do ( print i i+=1)while( i <= maxnum ) */ ```
例子:撸 Bip骨骼,搜集一个Bip所有的骨骼到一个集合内:
-- 声明一个集合,用于搜集Bipglobal RecurseCollector = #() -- 递归函数 fn RecurseChildren currNode= ( -- 当前物体是否为Biped实体骨骼 if(classof currNode == Biped_Object)then ( --收集操作 append RecurseCollector currNode ) local childNodes = currNode.children if(childNodes.count >0)then for c in childNodes do ( RecurseChildren c ) ) -- 递归开始 fn RecurseStart currNode= ( -- 清空集合 RecurseCollector = #() -- 开始递归 RecurseChildren currNode -- 返回 return RecurseCollector ) -- 选择 BIP的根骨骼 -- 搜集所有的Bip001上所有的骨骼 bipList = RecurseStart $Bip001_Pelvis
作者:TAZORN
著作权归作者所有
【相关阅读】:
Maxscript_基础_回调函数:http://tk.v5cg.com/help/246.html
Maxscript_基础_材质处理:http://tk.v5cg.com/help/247.html
Maxscript_基础_修改器操作:http://tk.v5cg.com/help/248.html
Maxscript_基础_创建窗口:http://tk.v5cg.com/help/249.html
Maxscript_基础_遍历与递归:http://tk.v5cg.com/help/250.html
Maxscript_与DotNet交互:http://tk.v5cg.com/help/251.html
【上传发布插件】:
编写3DMAX插件到发布上线全流程:http://tk.v5cg.com/help/147.html
代码上传与工具发布:http://tk.v5cg.com/help/99.html
代码发布,部署实例参考:http://tk.v5cg.com/help/140.html
PS【动作库】代码部署指南:http://tk.v5cg.com/help/141.html
CG云盘 - 开发者使用说明:http://tk.v5cg.com/help/34.html