Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware 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

    Timeline scrub & automatic key avoidance

    SDK Help
    0
    1
    101
    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 29/09/2007 at 11:22, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   R8.2-R10 
      Platform:   Windows  ; Mac  ;  Mac OSX  ; 
      Language(s) :     C++  ;

      ---------
      Normally, my plugin creates or updates tracks+(sequences)+keys for a slider when it is changed - via SetDParameter(). This avoids spurious creation/updates during animation render or timeline scrubbing as SetDParameter() is not called during these - note that bit of information.

      I'm adding an IK system where the goal can be any object and influences the sliders that control rotation through an Expression tag via Execute(). Animation rendering can be handled by CheckIsRunning(). But as expected, timeline scrubbing cannot be tracked and spurious key creation/updates are inevitable because Execute() is called in all of these situations (for every frame). To avoid this, I've opted for a 'Record Key' button and avoid my automatic key creation/update process.

      Tracking the goal object (with a tag, say) won't help as the goal doesn't necessarily have to be moving for IK to be working - for instance, if the hip is being translated with leg IK, the goal might not move but the legs are being udpated through the IK solver.

      It would be better if there was another way to have the IK solver process besides Execute() in an Expression tag so as to retain my automatic key creation/update process.

      Any thoughts on this?

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