1、fn就是function函数
2、获取Transform值,例bvalue = $.rotation.controller[1].value,数组由1开始,代表XYZ
3、#()代表是一空的数组创建
4、geometry as array 是用来获取场景所有几何体,geometry 是一个对象,可以换成objects 等其它对象
5、获取选中的几何体可以使用getcurrentselection()
6、获取所有组的方法
groupArr = #()
for i in helpers do
(
if (isGroupHead i) == true then
(
append groupArr i
)
)
select groupArr
7、showProperties obj方法可以查看其下面的属性
8、a = #(1,2,3)
b = a --这样操作会出现a改变b会跟随改变,共用了同一个内存
使用deepCopy 这样可以复制一份新的出来
deleteItem 删除项
9、需要把变量转化为选中的使用:select 变量
10、a = box()
a.isHidden = true(隐藏)/false(显示)
11、函数返回两个值,可以使用#()
12、将对象添加到组里面,
attachNodesToGroup <需要添加的对象> <主对象>
13、if判断为空,对象 == undefined ,也可以把变量 = undefined
14、打开组,才能删除物体
15、发布MZP插件,把文件.ms添加为压缩文件,然后把后缀改成.mzp
16、
@arr是选中的物体的数组
for i = 1 to arr.count do
(
if i == 3 do
(
delete arr[i]
)
--这样是更新,把数组里的空物体清掉
arr = for node in arr where isvalidnode node collect node
)
17、通过弹出按钮,确定返回事件
fn WaitForApprovalAndThen action =
(
rollout approveRol "Press Ok to Continue"
(
local action
button btnOk "Ok"
on btnOk pressed do
(
destroyDialog approveRol
action()
)
)
createDialog approveRol
approveRol.action = action
)
fn f2 = (print "f2")
fn f1 =
(
print "f1"
WaitForApprovalAndThen f2
)
f1()
18、选择选中的含有几何物体的
local selObjects = (for o in selection where (isKindOf o GeometryClass) collect o)
19、线程休眠 sleep(<value>),<value>用秒来填入,1= 1秒
20、计算复杂处理过程使用了多少时间
start = timeStamp()
for i= 1 to 100 do --进行一些复杂的处理
print i
end = timeStamp()
--打印处理需要的时间
format "Processing took % seconds\n" ((end - start)/ 1000.0)
21、swap(<value1>,<value2>) ,可以把两个value交换
22、使用callbacks.addScript #selectedNodesPreDelete "BatchConvert()" id:#MXSHelp时,BatchConvert()函数要放到最外层
*使用callbacks.addScript,需要配合callbacks.removeScripts id:#MXSHelp 使用,这个是让侦听结束
23、获取物体下的修改器里的数组,进行类的判断(meshsmooth,unwrap_UVW类...)
例1:
if (ClassOf $.modifiers[1]) == meshsmooth then
判断修改器列表下是否UV修改器,返回true/false
例2:
local checkUV = (for m in obj.modifiers where classof m == unwrap_UVW collect m).count > 0
24、在3Dmax导出collisionbox必须使用"UCX_" 或“UBX_”做前缀,导出fbx或者Udatasmith,UE4才会默认为collisionBox
25、获取脚本当前保存的位置getThisScriptFilename()
26、local arr = (for o in selection where (isKindOf o GeometryClass) collect o) 获取选中物体里的几何物体
27、弹出提示框,点击“确定或取消”,返回事件
fn MessageWindowChecked action=
(
rollout MessageCheckBox "友情提示" width:300 height:100
(
local actionEvent
button SureButton "确定" pos:[50,65] width:75 height:20
button CancelButton "取消" pos:[180,65] width:75 height:20
on SureButton pressed do
(
destroyDialog MessageCheckBox
actionEvent true
)
on CancelButton pressed do
(
destroyDialog MessageCheckBox
actionEvent false
)
)
createDialog MessageCheckBox
MessageCheckBox.actionEvent = action
)
fn MessageEventBack Ischecked =
(
if Ischecked then
(
print "sure"
)
else
(
print "cancel"
)
)
MessageWindowChecked MessageEventBack
28、使用路径时,“\”是不认的,要使用“/”
29、git上传
把文件放到ImportModel文件夹下,这个是拉取下了的文件夹
命令行:git add * //这个是把所有文件上传
git add GUJU_V1.03.ms //把单个文件上传
git commit -m "第一版" //写备注
git push //上传服务器
git log //查看上传日志
30、
sceneName = maxFilePath + maxFileName
maxFilePath:文件的路径的宏,
maxFileName:文件名的宏。
31、Maxscript 生成加密文档mse格式,在maxscript界面下输入(会生成多一个mse文件):
encryptScript "D:\work\Maxscript\.vscode\guju_2020-05-12_v1.04\GUJU_V1.04.ms" version:0