3ds Max CAT および MAXScript

 

   

3ds Max CAT - クイック ナビゲーション

3ds Max 2011 で導入されて 3ds Max 2013 でリファクタリングされた 3ds Max CAT (CAT は Character Animation Tools の略)は、高度なカスタマイズも可能なキャラクタ アニメーション用の強力なプラットフォームを提供します。この製品の特徴は、スクリプトへのアクセス性の高さです。

3ds Max CAT への MAXScript アクセス

3ds Max CAT では、キャラクタのリグがコントローラおよびオブジェクトの階層として実装されます。

階層の操作、サブアニメーションへのアクセス、コントローラ プロパティの取得、設定および検査における標準 MAXScript の呼び出し規則はすべて 3ds Max CAT で機能します。

3ds Max CAT 関数公開インタフェースでは、C++ で記述されたオブジェクトへのアクセスで MAXScript の使用を可能にするプロパティ、メソッド、アクションが公開されます。 多様なタイプのオブジェクトで同様のインタフェースの公開が可能であるため、オブジェクトで同様の MAXScript 公開を共有することができます。その例として、CATRig のすべてのコントローラがインタフェース ICATControlFPInterface を提供することが挙げられます。

HubTrans など、より特化したコントローラは、そのタイプのコントローラに関連する関数のみを公開するインタフェースを追加で提供することができます。

コントローラおよびオブジェクトで利用可能な関数を確認するために、2 つの異なる MAXScript 呼び出しを使用することができます。

構文

ShowProperties <MaxObject>
Show <MaxObject>--alternative

Show() または ShowProperties() を使用して、オブジェクトまたはコントローラで利用可能なプロパティを確認します。

ShowInterfaces <MaxObject>

ShowInterfaces() を使用して、オブジェクトまたはコントローラで利用可能な関数、メソッドおよびプロパティを確認します。

例:

ShowProperties $Character001
.CATMode : integer
.CATName : TSTR by value
.CATUnits : float
.ColourMode : integer
.LengthAxis : TSTR
.Node : node
.RootHub : control
.CATVersion : integer
.CATRigSpace : matrix3
.CATRigNodes : node by value array
.CATRigLayerCtrls : control by value array
.RootTransformNode : node
.NumLayers : integer
.SelectedLayer : integer
.SoloLayer : integer
.TrackDisplayMethod : integer
.Layers : float
false
 
ShowInterfaces $Character001
Interface: CATParentFPInterface
Properties:
.CATMode : integer : Read|Write|Validated by Validator function
.CATName : TSTR by value : Read|Write
.CATUnits : float : Read|Write|Validated by Validator function
.ColourMode : integer : Read|Write
.LengthAxis : TSTR : Read|Write|Validated by Validator function
.Node : node : Read
.RootHub : control : Read
.CATVersion : integer : Read
.CATRigSpace : matrix3 : Read
.CATRigNodes : node by value array : Read
.CATRigLayerCtrls : control by value array : Read
.RootTransformNode : node : Read
Methods:
 <void>AddHub()
 <boolean>LoadRig <TSTR>filename
 <boolean>SaveRig <TSTR>filename
 <node>GetBoneByAddress <TSTR by value>Address
 <void>UpdateUserProps()
 <void>AddRootNode()
Actions:
Interface: LayerRootFPInterface
Properties:
.NumLayers : integer : Read
.SelectedLayer : integer : Read|Write
.SoloLayer : integer : Read|Write
.TrackDisplayMethod : integer : Read|Write
Methods:
 <integer>AppendLayer <TSTR>name <name>method
method Validated by Validator function
 <boolean>InsertLayer <TSTR>name <integer>layerID <name>method
method Validated by Validator function
 <void>RemoveLayer <integer>layerID
 <void>MoveLayerUp <integer>layerID
 <void>MoveLayerDown <integer>layerID
 <boolean>SaveClip <TSTR>filename <time>starttime <time>endtime <integer>startlayer <integer>endlayer
 <boolean>SavePose <TSTR>filename
 <node>LoadClip <TSTR>filename <time>starttime scaledata: <boolean> transformdata: <boolean> mirrordata: <boolean> mirrorworldX: <boolean> mirrorworldY: <boolean>
scaledata default value: true
transformdata default value: true
mirrordata default value: false
mirrorworldX default value: false
mirrorworldY default value: false
 <node>LoadPose <TSTR>filename <time>starttime scaledata: <boolean> transformdata: <boolean> mirrordata: <boolean> mirrorworldX: <boolean> mirrorworldY: <boolean>
scaledata default value: true
transformdata default value: true
mirrordata default value: false
mirrorworldX default value: false
mirrorworldY default value: false
 <TSTR>CreatePasteLayerTransformNode()
 <TSTR>GetFileTagValue <TSTR>filename <TSTR>tag
 <boolean>LoadHTR <TSTR>filename <TSTR>camfile
 <boolean>LoadBVH <TSTR>filename <TSTR>camfile
 <boolean>LoadFBX <TSTR>filename <TSTR>camfile
 <boolean>LoadBIP <TSTR>filename <TSTR>camfile
 <void>CollapsePoseToCurLayer()
 <boolean>CollapseTimeRangeToLayer <time>StartTime <time>Endtime <time>Frequency regularplot: <boolean> NumPasses: <integer> PosDeltaThreshold: <float> RotDeltaThreshold: <float>
regularplot default value: false
NumPasses default value: 2
PosDeltaThreshold default value: 1.0
RotDeltaThreshold default value: 5.0
 <void>CopyLayer <index>LayerID
 <void>PasteLayer Instance: <boolean> CopyLayerInfo: <boolean>
Instance default value: false
CopyLayerInfo default value: true
Actions:
OK

インタフェースによって公開されたプロパティが ShowProperties() 呼び出しの結果として表示されていることに注目してください。

次を呼び出すこともできます。

ClassOf <MaxObject>

これによって、特定のオブジェクトのクラス名が返されます。

CATRig のコントローラ ツリー階層内にあるボーンを表す 3ds Max CAT ボーン オブジェクトの変換コントローラにアクセスするには、次の構文を使用します。

$<NodeName>.transform.controller

同様の内容を次の簡易的な方法で呼び出すことができます。

$<NodeName>[3].controller

または、変換コントローラにアクセスする専用変数がCAT ボーン オブジェクトによって提供されるため、次の呼び出しも可能です。

$<NodeName>.TMcontroller

関連事項