AddActionSource (Model)
Description
Creates and adds an ActionSource to the model's collection of sources.
Scripting Syntax
Model.AddActionSource( [Name], [TargetArray], [SourceArray], [ActiveArray] )
C# Syntax
ActionSource Model.AddActionSource( String in_vName, Object in_vTargetArray, Object in_vSourceArray, Object in_vActiveArray );Parameters
|
Parameter |
Type |
Description |
|
Name |
Name of the new action source |
|
|
TargetArray |
Array of source item target paths. |
|
|
SourceArray |
Array of source item sources. For now only FCurve, StaticSource or Double values representing static values are valid sources. |
|
|
ActiveArray |
Array of source item active flags. |
Return Value
Examples
VBScript Example
' ' This example illustrates how to create an ActionSource ' from FCurve information. ' set oRoot = Application.ActiveProject.ActiveScene.Root if Application.Selection.Count <> 0 then set oObject = Application.Selection(0) else ' Create sample scene set oNull = oRoot.AddNull set oObject = oNull.AddNull() oObject.posx.AddFCurve2( Array(1, -10, 50, 0, 100, 10) ) oObject.posy.AddFCurve2( Array(1, 10, 50, 0, 100, 10) ) end if CreateActionSourceFromLocalFCurves oObject sub CreateActionSourceFromLocalFCurves( in_object ) strTitle = "Create ActionSource from Local FCurves" if IsObject(in_object) <> True then MsgBox "Please select an object", vbExclamation, strTitle exit sub end if if InStr(in_object.Families, "3D Object") = 0 then MsgBox "Please select a 3D object", vbExclamation, strTitle exit sub end if set k = in_object.Kinematics ' ... assuming all animation is on local transform set oAnimatedParams = k.AnimatedParameters(siFCurveSource) if oAnimatedParams.Count = 0 then MsgBox "Please select an object with animation", vbExclamation, strTitle exit sub end if ' Find local parameters set oLocalParams = CreateObject("XSI.Collection") for each oAnimatedParam in oAnimatedParams ' Poor man's test for local parameters if InStr( oAnimatedParam.FullName, ".local." ) <> 0 then ' Only support fcurves for now. if TypeName(oAnimatedParam.Source) = "FCurve" then oLocalParams.Add oAnimatedParam end if end if next if oLocalParams.Count = 0 then exit sub end if Dim aTarget, aSource, aActive ReDim aTarget(oLocalParams.Count-1) ReDim aSource(oLocalParams.Count-1) ReDim aActive(oLocalParams.Count-1) i=0 for each oLocalParam in oLocalParams aTarget(i) = oLocalParam.FullName set aSource(i) = oLocalParam.Source aActive(i) = True i = i + 1 next set oActionSource = oRoot.AddActionSource( in_object.Name & "-localfcurves", _ aTarget, aSource, aActive ) LogMessage "Created new ActionSource " & oActionSource.FullName end sub
Autodesk Softimage v7.5