It's a pain really:

# Begin Python
from win32com.client import Dispatch

si = Application
log = si.LogMessage
sel = si.Selection

def findParamClipFCurve(param):
   """Returns a collection of fcurves that drive this param."""

   drivingFCurves = Dispatch("XSI.Collection")
   drivingFCurves.unique = True

   source = param.Source
   if source.Type == "Mixer":
       clips = source.Clips

       for eachClip in clips:

           model = param.Parent3DObject.Model
           paramRelativeName = param.FullName[len(model.Name) + 1:]

           for eachItem in eachClip.Source.SourceItems:
               if eachItem.Target == paramRelativeName:
                   drivingFCurves.AddItems(eachItem.Source)

   return drivingFCurves

fcurves = findParamClipFCurve(sel(0).PosY)
log(fcurves.Count)

# End Python



On Wednesday, July 16, 2014 1:16:23 PM, François Painchaud wrote:
Calling all scripting experts...

From a parameter object (a shape weight for example), how can I
retrieve the fcurve animating this parameter, knowing that this fcurve
is stored in a mixer clip? Where do I go from Parameter.Source?

It must be fairly simple, but the answer eludes me. I am using Python.

Thanks,
François


Reply via email to