same here.
var nullobj = ActiveSceneRoot.AddNull("nullToCopyFrom");
var aValues = [0.00, 0.00, 25.00, 5.00]
nullobj.posx.AddFCurve2(aValues);
var nullobj1 = ActiveSceneRoot.AddNull("CopiedKeys");
var fc = nullobj1.posy.AddFCurve();
var iLen = aValues.length;
fc.beginEdit();
for(var i =0; i < iLen; i+=2)
{
var fTime = aValues[i];
var fVal = aValues[1+i];
fc.addKey(fTime, fVal, 0, true);
}
fc.endEdit();
kim aldis wrote:
> The code below works as I'd expect, Bernard. One key added at frame one,
> value 1.0 the next at frame 25, value 10.
>
> oFcurve = selection(0).posx.source;
>
> var oFcurveKeys = new Array( 1,0,25,10 )
> oFcurve.beginedit();
> iLength = oFcurveKeys.length;
>
>
> for( i = 0; i < iLength; i=i+2 ) {
> fTime = oFcurveKeys[i];
> fValue = oFcurveKeys[i+1];
> oFcurve.addkey( fTime, fValue, 0, true );
>
> }
> oFcurve.endedit();
>
>
>> -----Original Message-----
>> From: owner-xsi(at)Softimage.COM [mailto:owner-xsi(at)Softimage.COM] On
>> Behalf Of Bernard Lebel
>> Sent: 30 April 2007 14:58
>> To: XSI(at)Softimage.COM
>> Subject: Re: [script] Creating relative values fcurve
>>
>> Okay I tried it with the other possible tolerance value, -1. Same
>> result: the second key is at frame 1/value 1 instead of frame 25/value
>> 1.
>>
>>
>>
>> "The tolerance argument can be used to merge all keys within a certain
>> range. The range is defined as Frame - Tolerance and Frame +
>> Tolerance. The merged key inherits the constraints of the nearest key
>> within this range. "
>>
>> I don't see how this description explains the result I'm getting.... :-
>> (
>>
>>
>> Cheers
>> Bernard
>>
>>
>>
>>
>> On 4/27/07, Bradley Gabe <withanar(at)stanwinston.com> wrote:
>>
>>> Bernard, not a showstopper. Check the documentation on the addkey()
>>>
>> method
>>
>>> and you'll see what's happening. The third parameter is for
>>>
>> tolerance, which
>>
>>> you have set to 0, and that forces the key to be set on exact frames.
>>>
>>> -Brad
>>>
>>>
>>>
>>>
>>> Hello,
>>>
>>> I'm running into this show-stopper.
>>>
>>> I'm trying to re-create the fcurve of a relative value expression.
>>> I create the expression, no problem at all.
>>> Then I get its relative fcurve parameter, no problem.
>>> Then I loop over a one dimensional array of time/value numbers, and
>>> create the keyframes:
>>>
>>>
>>> oFcurve.beginedit();
>>> iLength = oFcurveKeys.length;
>>>
>>> for( i = 0; i < iLength; i=i+2 ) {
>>> fTime = oFcurveKeys[i];
>>> fValue = oFcurveKeys[i+1];
>>> oFcurve.addkey( fTime, fValue, 0, true );
>>> }
>>>
>>> oFcurve.endedit();
>>>
>>> (in this example I use a loop, but the SetKeys method gives the same
>>> result I'm about to describe)
>>>
>>>
>>> Now, I get all the keyframes. In this particular, I have two
>>> keyframes. The first one is all right. BUT the second one, for the
>>> life of me, refuses to be placed anywhere else than at frame 1.0.
>>>
>>> If I then print its frame, it's the frame I specified (25, for
>>> example). But in the animation editor, it's located at 1/1. Also,
>>>
>> when
>>
>>> viewing its effect in viewport, I can *see* it's 1/1. Yet printing
>>>
>> its
>>
>>> frame says 25.
>>>
>>> ARGGGGHHHH
>>>
>>>
>>> Any idea?
>>>
>>>
>>> Thanks
>>> Bernard
>>> ---
>>> Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in
>>>
>> body:
>>
>>> unsubscribe xsi
>>>
>>>
>>>
>> ---
>> Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in
>> body:
>> unsubscribe xsi
>>
>
> ---
> Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
> unsubscribe xsi
>
>
>
---
Unsubscribe? Mail Majordomo(at)Softimage.COM with the following text in body:
unsubscribe xsi