MaxScript

阅读量: 鲁文奎 2021-04-22 12:04:31
Categories: Tags:

MaxScript

在Listener窗口或其它脚本文件中用下面函数运行脚本
filein <filename_string>[quiet:]

MAXScript 按下面路径查找名为startup.ms的文件 并把它 装入系统:
Scripts路径 -> Startup Scripts 路径 -> 3ds max 主路径 -> 32 位Windows NT 系统路径(system32) -> 16位 Windows NT 系统路径(system) ->
Windows 路径 -> 在Windows系统PATH环境变量列出的路径

MAXScript 窗口:
黑色代表输入文本
蓝色代表输出文本
红色代表错误输出

Listener 日志文件
可以使用日志文件记录所有输入、输出文本.
openLog <filename_string> [mode: "w" |"a"] [outputOnly:boolean>]
例如:
openLog "my_log.txt" mode: "a" outputOnly: True

outputOnly : 默认值为False, 记录输入和输出
日志文件数据并不连续写入日志文件, 而是先被写入内存缓冲, 当内存缓冲被写满时, 系统再把缓冲中的数据写入日志文件, 可以调用函数flushLog()来保证所有数据都被写入文件
函数closeLog()可以做下面的三件事: 停止记录、刷新日志缓冲、关闭日志文件

查找某一个脚本函数在哪一个脚本文件中被定义,可以使用下面的方法:
showSource

showClass <pattern_string>[:]

其中, pattern_string为一个可以包含通配符的字符串, 可以为3ds max的类名、超类名和属性名, 其格式为:
"<class_name>[:<superclass_name>][.<property_name>]"

一段缩放动画脚本:

animate On
(
at time 0(b.pos=[-100,0,0]; b.scale=[1,1,0.25])
at time 100(b.pos=[100,0,0];b.scale=[1,1,3])
)

使用"?"
MAXScript 每次对一个命令或命令集的求值, 求值结果都被输出到Listener窗口的输出区域, 并被存储在一个名为"?"的内部变量中

MAXScript 也可以像字符和数字一样直接将标志符作为值使用, 当使用标志符作为值时, 应在前面加一个"#", 如$<var_name>

format <format_string> {} [to:]
功能: 将指定的一个或多个打印到Listener窗口或指定的中, 并使用指定的格式<format_string>作为输出模板

classOf
返回所属的数据类型,每一种数据都有它自己的类型

superClassOf
返回的超级类, 也即所属类的父类
isKindOf
如果继承自类, 则返回True, 否则返回False

MAXScript 基本数据类型:
Number (数字类)
String (字符串类)
Name (名称类)
BooleanClass (布尔类)
Color (颜色类)
Point3 (三维点类)
Point2 (二维点类)
Ray (射线类)
Quat (四元数类)
AngleAxis (轴向角类)
EulerAngles (欧拉角类)
Matrix3 (三维矩阵类)
BigMatrix ( 大矩阵类)
Box2 (二维举证区域类)
BitArray (位数组类)
ArrayParameter (数组参数类)
Time (时间类)
Interval(间歇类)
Bitmap(位图类)
Stream(数据流类)

#(#type, #fov, #targetDistance, #nearrange, #farrange, #nearclip, #near_clip, #farclip, #far_clip, #mpassEnabled, #mpassRenderPerPass, #curFOV, #fovType, #orthoProjection, #showCone, #showHorizon, #showRanges, #clipManually, #mpassEffect, #MultiPass_Effect)