Xpresso COFFEE keyframe trouble



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 20/11/2008 at 17:43, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   11 
    Platform:      Mac OSX  ; 
    Language(s) :   C.O.F.F.E.E  ;   XPRESSO  ;

    ---------
    Hi,

    I've had success moving keyframes with both a COFFEE tag and also a COFFEE Xpresso node, in both the editor and renderer (picture viewer), with animation tracks, using this code:

    main()
    {
         var doc = Input1->GetDocument(); // when in Xpresso
         var obj = doc->FindObject("Cube");
         var track = obj->GetFirstCTrack();
         var myKey = track->GetCurve()->GetKey(0); // key 0 is first key
         var time = new(BaseTime);
         time->SetFrame(5,doc->GetFps()); // move to frame 5...
         myKey->SetTime(track->GetCurve(),time);
    }

    However, when it comes to moving a keyframe on a Tag, the code works in a COFFEE tag in both the editor and renderer, but only in the editor with a COFFEE Xpresso node:

    main()
    {
         var doc = Input1->GetDocument(); //when in Xpresso
         var obj = doc->FindObject("Cube")->GetFirstTag();
         var track = obj->GetFirstCTrack();
         var myKey = track->GetCurve()->GetKey(0); // key 0 is first key
         var time = new(BaseTime);
         time->SetFrame(5,doc->GetFps()); // move to frame 5...
         myKey->SetTime(track->GetCurve(),time);
    }

    ... when rendering and using Xpresso the line 'var myKey...' throws the error (5) Incompatible values... NIL / OBJECT

    Can anyone please shed any light on this?

    Thanks

    Jon



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 21/11/2008 at 03:24, xxxxxxxx wrote:

    OK, I eventually figured the tag wasn't being recognised at all, and with a bit of hunting learnt that when rendering in the picture viewer an invisible tag is placed as the first tag (pretty obvious huh!?!?)

    Here's a way around it:

    main()
    {
         var doc = Input1->GetDocument(); // when in Xpresso
         var obj = doc->FindObject("Cube");
         var tagb = obj->GetFirstTag();
         if(doc!=GetActiveDocument()){ // if rendering...
              tagb = tagb->GetNext();     // skip invisible tag
         };
         var track = tagb->GetFirstCTrack();
         var myKey = track->GetCurve()->GetKey(0); // key 0 is first key
         var time = new(BaseTime);
         time->SetFrame(5,doc->GetFps()); // move to frame 5...
         myKey->SetTime(track->GetCurve(),time);
    }

    Ta

    Jon


Log in to reply