v1.0
animmixer
接続マッピング テンプレート、バリュー マッピング テンプレート、またはクリップのローカル バリュー マップのルールを変更します。
クリップのバリュー マップのルールの左側(Items 部分)は変更できない点に注意してください。
SetMappingRule( MappingTemplate, From, [To], [Index], [Active], [PoseOffset] ); |
パラメータ | タイプ | 詳細 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
MappingTemplate | 文字列 |
マッピング テンプレートまたはクリップの値マップ。 クリップの値マップは、「 |
||||||||
From | 文字列 | 接続マッピング ルールの[マップ元:]、バリュー マッピング ルールのパラメータ、またはクリップのバリュー マッピング ルールの[項目] 部分。 | ||||||||
To | 文字列 | 接続マッピング ルールの[マップ先:]、バリュー マッピング ルールのエクスプレッション、またはクリップのバリュー マッピング ルールの[Expr] 部分。 | ||||||||
Index | Integer |
変更するルールを指定します。 ルールは 1 から順に番号が割り当てられますが、0 または 1 のインデックスは最初のルールを参照します。 デフォルト値: 0(最初のルール) |
||||||||
Active | Integer |
ルールの有効/無効を設定します。 デフォルト値: -1
|
||||||||
PoseOffset | Integer |
オブジェクトにポーズ オフセットの有効/無効を設定します。 デフォルト値: -1
|
' This example illustrates several mapping template commands. ' It creates an Action on a sphere, then uses a value mapping ' template to create an offset effect when this Action is instanced. ' Then it creates a connection mapping template so the sphere ' animation can be applied to a number of different objects (using a ' wildcard to do this). Finally, the second clip (driving the cones) ' is accessed as a value map itself, and clip effects on it are ' created using SetMappingRule. NewScene , False ' Create some objects for our example. set oSphere = CreatePrim( "Sphere", "MeshSurface" ) set oCone = CreatePrim( "Cone", "MeshSurface" ) Duplicate oCone, 4 posParams = "/kine.local.posx,kine.local.posy,kine.local.posz" ' Make an Action with the sphere moving diagonally. SetPositionKey oSphere, 1, -5, -3, 0 SetPositionKey oSphere, 50, 5, 3, 0 set oSource = StoreAction( , oSphere & posParams, 2, "Diagonal", True, 1, 50 ) ' Create a value map and add some rules to it to map the ' sphere animation to be negated in X position and offset ' in Y. We use a big index to indicate the rule should ' be added at the end. CreateEmptyValueMap "Scene_Root", oValMap AddMappingRule oValMap, oSphere & ".kine.local.posx", "(this)*-1", 10000 AddMappingRule oValMap, oSphere & ".kine.local.posy", "(this)-5", 10000 ' Instantiate a clip which uses this value map to modify ' the sphere animation. set oClip = AddClip( "Scene_Root", oSource, , , 1, "Sphere", , oValMap ) ' Create a connection map, and add a single rule to it ' that will map the sphere animation to all cones, using ' a wildcard. CreateEmptyConnectionMap "Scene_Root", oCnxMap AddMappingRule oCnxMap, oSphere, "cone*" ' Instantiate a clip which uses this connection map to ' connect the sphere source to all the cones. set oClip = AddClip( "Scene_Root", oSource, , , 1, "Cones", oCnxMap ) ' Bonus part... For fun we'll modify the value mapping of each ' item in the cone clip, treating it like it's a fixed-size value ' map (can't add new items to it). clip = oClip & ".actionclip" offsetAmt = 0 n = GetNumMappingRules( clip ) for i = 1 to n GetMappingRule clip, i, param, expr, active if right( param, 4 ) = "posy" then SetMappingRule clip, param, "(this)+time*" & offsetAmt, i, active offsetAmt = offsetAmt + 1 end if next '================================================== ' Helper method to key an object somewhere at a given frame. '================================================== sub SetPositionKey( in_oObj, in_frame, in_posX, in_posY, in_posZ ) Translate in_oObj, in_posX, in_posY, in_posZ, siAbsolute, siParent, siObj, siXYZ SaveKey in_oObj & posParams, in_frame end sub |