One of the following macro recorder type tags followed by the argument(s) indicated. Depending upon the case there may be one, two or three arguments as noted:
mr_int - An integer. Follow the tag with the
int. Example code: 91462
mr_float - A floating point value. Follow the tag
with a double. Example code: 123.45
mr_string - A string. Follow the tab with the
string (TCHAR*). Example code:
"Benson"
mr_bool - A boolean. Follow the tag with a
int. Example code: true
mr_point3 - A Point3. Follow the tag with a
Point3*. Example code: [10,0,0]
mr_color - A Color. Follow the tag with a
Color*. Example code: color 12 128 0
mr_angaxis - An AngAxis. Follow the tag with an
AngAxis*. Example code: angleAxis
45[1,0,0]
mr_quat - A Quaternion. Follow the tag with a
Quat*. Example code: quat 1 0 0 0
mr_time - A TimeValue, follow the tag with a
TimeValue. Example code: 22f
mr_reftarg - A Reference Target pointer. Follow the
tag with a ReferenceTarget*. Example code:
$foo or $baz.modifiers[2] or
$foo.material, etc.
mr_bitarray - A bit array. Follow the tag with a
pointer to a BitArray*. Example code: #{1..20,
30,34..100}
mr_pbbitmap - A parameter block2 bitmap object.
Follow the tag with a PBBitmap*. Example code:
bitMap 640 480 fileName:"fuz.bmp"
mr_matrix3 - A Matrix3. Follow the tag with a
Matrix3*. Example code: matrix3 [1,0,0] [0,1,0]
[0,0,1] [10,0,0]
mr_dimfloat - A floating point value with the
specified ParamDimension. Follow the
tag with: ParamDimension*, double.
Example code: 123.45 (scaled by the dimension).
mr_dimpoint3 - A Point3 value with the specified
ParamDimension. Follow the
tag with: ParamDimension*,Point3*.
Example code: [10,0,0] (scaled by the dimension)
mr_classid - A Class ID, follow the tag with a
Class_ID and a
SClass_ID. Example code: box (the class
variable name)
mr_create - A constructor call for the class.
Follow the tag with: Class_ID, SClass_ID, int,
<args>. The int parameter is the number
of keyword args following, these are specified in pairs as
TCHAR*, <arg>. Example code:
sphere radius:20 pos:[10,0,0]
mr_angle - A floating point value with a
ParamDimension of a
stdAngleDim. Follow the tag with a
double. Example code: 90
mr_percent - A floating point value with a
ParamDimension of
stdPercentDim. Follow the tag with a
double. Example code: 10
mr_sel - A selection set. This tag works alone with
no additional data. This tag denotes the current scene node
selection and will emit as either a '$' or an array of explicit
objects, depending on the state of the
EmitAbsoluteSceneNames() flag. Example code:
$ or $sphere01
mr_funcall - A function call. Follow the tag with
an int, int, <args>. The first int parameter is
the number of positional arguments, given first in the <args>
items, as <arg>, the second int parameter is the number of
keyword args following the positional args in <args>, given
as TCHAR*, <arg> pairs. Example code: foo x y z
output:f
mr_varname - A variable name. Follow the tag with a
string (TCHAR*). Example code: baz
mr_index - An index. Follow the tag with:
<op_arg>, <index_arg>.
<op_arg> is an <arg>
specifying the operand to be indexed and
<index_arg> is an <arg>
specifying the index value. Example code:
meditMaterials[3]
mr_prop - A property name. Follow the tag with
TCHAR*, <arg>. The TCHAR* is the
property name, the <arg> specifies the item
being accessed. Example code: $foo.pos
mr_nurbssel - A NURBS selection level. Follow the
tag with: int, ReferenceTarget*. The int
parameter is the selection level desired of the specified NURBS
base object. Example code: #{1..20, 50..100}. This is
an example of a BitArray literal in MAXScript, so it
says sub-objects 1 through 20 and 50 through 100 are currently
selected at the given level (the int) in the NURBS ReferenceTarget*
base object.
mr_name - A name. Follow the tag with a string
(TCHAR *). Example code: #relational.
Note: A name in MAXScript is a simple symbolic value, often used
instead of numbers to denote options in some function call. For
example, when setting the motion blur of a scene node, one can
say:
$foo.motionBlur = #image (or #none, or #object)
generated, perhaps by:
macroRecorder->SetSelProperty(_T("motionBlur"),
mr_name, blurname);
or when choosing g-buffer channels in the render() function, one would say:
bm = render camera:$c1 channels:#(#zdepth, #coverage,
#objectID)