3ds Max 2011 で導入されて 3ds Max 2013 でリファクタリングされた 3ds Max CAT (CAT は Character Animation Tools の略)は、高度なカスタマイズも可能なキャラクタ アニメーション用の強力なプラットフォームを提供します。この製品の特徴は、スクリプトへのアクセス性の高さです。
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 : string .CATUnits : float .ColourMode : integer .LengthAxis : string .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 : string : Read|Write .CATUnits : float : Read|Write|Validated by Validator function .ColourMode : integer : Read|Write .LengthAxis : string : 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 <string>filename <boolean>SaveRig <string>filename <node>GetBoneByAddress <string>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 <string>name <name>method method Validated by Validator function <boolean>InsertLayer <string>name <integer>layerID <name>method method Validated by Validator function <void>RemoveLayer <integer>layerID <void>MoveLayerUp <integer>layerID <void>MoveLayerDown <integer>layerID <boolean>SaveClip <string>filename <time>starttime <time>endtime <integer>startlayer <integer>endlayer <boolean>SavePose <string>filename <node>LoadClip <string>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 <string>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 <string>CreatePasteLayerTransformNode() <string>GetFileTagValue <string>filename <string>tag <boolean>LoadHTR <string>filename <string>camfile <boolean>LoadBVH <string>filename <string>camfile <boolean>LoadFBX <string>filename <string>camfile <boolean>LoadBIP <string>filename <string>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