Autokeyframe wont work with my plugin



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

    On 07/04/2004 at 03:07, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   8.206 
    Platform:      
    Language(s) :     C++  ;

    ---------
    Ive made a plugin that moves and rotates objects that are in the scene. I can move and rotate them by using handles that I have created.
    The problem is that autokeyframing doesn't work. To move and rotate them I am modifying the objects matrix.
    I thought a simple

        
        
        
        
        op->Message(MSG_CHANGE);
        
        
        
    

    would be enough for cinema to recognize that the objects matrix has changed but it doesn't.



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

    On 23/04/2004 at 01:00, xxxxxxxx wrote:

    Sorry, I just got confirmation from the programmers that it's not possible to trigger auto keyframing from a plugin.



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

    On 03/02/2008 at 10:04, xxxxxxxx wrote:

    Howdy,

    Reviving this old thread to ask:
    Is this possible now with the R9 SDK and up, using the BaseDocument::AutoKey() function?

    And if so, can you show an example of how to use it? ;o)

    Adios,
    Cactus Dan



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

    On 06/08/2008 at 01:46, xxxxxxxx wrote:

    Hi,

    Reviving this thread again; can the autokey function be used now with R10/10.5?

    We cannot get it going here, although its in the SDK.

    We cannot find an answer to this, did you find out anything Dan?

    Regards Jan



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

    On 06/08/2008 at 06:05, xxxxxxxx wrote:

    Howdy,

    Yes, the AutoKey() function works, but you also need two functions: IsCommandEnabled()
    IsCommandChecked()

    ... from c4d_general.h to make it work. The IsCommandChecked() function is only available from R9.6 and up, so I couldn't get it to work in anything below R9.6. :o(

    You also need the ID's of the auto key commands which are:

    > `

      
    \>  enum  
    \>  {  
    \>       IDM_A_POS               = 12417,  
    \>       IDM_A_SIZE               = 12418,  
    \>       IDM_A_DIR               = 12419,  
    \>         
    \>       IDM_A_PLA               = 12421,  
    \>       IDM_A_PARAMETER          = 12422,  
    \>         
    \>       IDM_AUTOKEYS          = 12425,  
    \>  };  
    \>  
    

    `

    Then use the functions like this:
    > `

      
    \>  if(IsCommandEnabled(IDM_AUTOKEYS) && IsCommandChecked(IDM_AUTOKEYS))  
    \>  {  
    \>       undoOp = (BaseObject* )op->GetClone(COPY_NO_HIERARCHY,NULL);  
    \>  }  
    \>    
    \>  // ... insert code that changes the object here.  
    \>    
    \>  if(IsCommandEnabled(IDM_AUTOKEYS) && IsCommandChecked(IDM_AUTOKEYS))  
    \>  {  
    \>       doc->AutoKey(undoOp,op,FALSE,  
    \>                      IsCommandChecked(IDM_A_POS),  
    \>                      IsCommandChecked(IDM_A_SIZE),  
    \>                      IsCommandChecked(IDM_A_DIR),  
    \>                      IsCommandChecked(IDM_A_PARAMETER),  
    \>                      IsCommandChecked(IDM_A_PLA));  
    \>  }  
    \>  
    

    `

    That should do it. ;o)

    Adios,
    Cactus Dan



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

    On 06/08/2008 at 15:46, xxxxxxxx wrote:

    Thanks Dan. I'm doing exactly that, except:

    the bools, wich are all set to true by me, because i want to record everything.

    I don't change anything, myself because I need to record a XPresso driven object.

    I record every frame, so the clone is taken and stored and used in the next frame to be compared with the current frame. That should be possible?

    My clone seems to be OK;

    Regards,
    Jan



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

    On 06/08/2008 at 15:58, xxxxxxxx wrote:

    Howdy,

    OK, I see.

    Yeah, I would think it should be possible to keep a pointer to the cloned object and update it after the Xpresso's execution for each frame so it will always be the previous state of the object for each next frame. ;o)

    Adios,
    Cactus Dan


Log in to reply