SetMappingRule

Introduced

1.0

Description

Modifies a rule in a connection or value mapping template, or in a clip's local value map.

Note that you cannot change the left-hand side (the Items part) of a rule in a clip's value map.

Scripting Syntax

SetMappingRule( MappingTemplate, From, [To], [Index], [Active], [PoseOffset] )

Parameters

Parameter

Type

Description

MappingTemplate

String

Mapping template or a clip value map. The value map of a clip is named "<clipname>.actionclip".

From

String

The Map From part of a connection mapping rule, the Parameter part of a value mapping rule, or the Item part of a clip value mapping rule.

To

String

The Map To part of a connection mapping rule, the Expression part of a value mapping rule, or the Expr part of a clip value mapping rule.

Index

Integer

Specifies the rule to modify. Rules are numbered starting at 1, but an index of 0 or 1 refers to the first rule.

Default Value: 0 (the first rule)

Active

Integer

Sets the activeness of the rule.

Default Value: -1

Possible Values:

-1: Don't change the current activeness setting.

0: Deactivate the rule

1: Activate the rule.

PoseOffset

Integer

Sets the pose offset activeness for the object.

Default Value: -1

Possible Values:

-1: Don't change the current pose offset setting.

0: Deactivate the pose offset.

1: Activate the pose offset.

Examples

VBScript Example

' 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

See Also

AddMappingRule

CreateConnectionMap

CreateValueMap

DeleteMappingRule

GetMappingRule

GetNumMappingRules

 

 



Autodesk Softimage v7.5