Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Autokeyframe wont work with my plugin

    SDK Help
    0
    7
    440
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Helper
      last edited by

      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.

      1 Reply Last reply Reply Quote 0
      • H
        Helper
        last edited by

        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.

        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

          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

          1 Reply Last reply Reply Quote 0
          • H
            Helper
            last edited by

            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

            1 Reply Last reply Reply Quote 0
            • H
              Helper
              last edited by

              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

              1 Reply Last reply Reply Quote 0
              • H
                Helper
                last edited by

                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

                1 Reply Last reply Reply Quote 0
                • H
                  Helper
                  last edited by

                  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

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post