Excellent! Thanks Éric. Your code snippet got me going. It is a pain
indeed; even more when dealing with global to source timeline mapping.



2014-07-16 13:47 GMT-04:00 Eric Thivierge <[email protected]>:

> 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