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

    Check if GetVirtualObjects is called for Motion Blur

    Cinema 4D SDK
    c++
    3
    12
    2.0k
    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.
    • V
      victor
      last edited by

      Hi Adam I think that probably I've posted with my personal account right now but I've been on the forums for a while, I'm the developer of the Anima for c4d plugin (and I know Riccardo for a long time since I was on the development team of Thea)

      My question is tricky and related to Anima (the crowd system) plugin.

      We have a new kind of models that could change its topology with the time, also we have a fallback that allows me to retrieve the non-changing-topology mesh for motion blur. Your suggestion works nice if the mb call only less than one frame but fails for bigger ranges since it could give us an integer frame and I'll return a different topology.

      I'm still wondering if there is any other way...

      Regards, Víctor

      1 Reply Last reply Reply Quote 0
      • ferdinandF
        ferdinand
        last edited by

        Hi,

        have you considered listening for an up-coming rendering via MSG_MULTI_RENDERNOTIFICATION, check the RenderNotificationData (does the render type support motion blur) and the render settings of the document (is there a motion blur effect or not) and determine by that if your object geometry has to be rebuild?

        Cheers,
        zipit

        MAXON SDK Specialist
        developers.maxon.net

        V 1 Reply Last reply Reply Quote 0
        • V
          victor @ferdinand
          last edited by

          @zipit MSG_MULTI_RENDERNOTIFICATION was a nice tip but in our case, it only works for still since that MSG is triggered only once in an animation, the same MSG if it could be called once per frame in an animation could be just perfect.

          1 Reply Last reply Reply Quote 0
          • ferdinandF
            ferdinand
            last edited by ferdinand

            Hi,

            I am aware of that, but since the document is cloned for a rendering, I do not see a problem with that, i.e. flagging your object instance in the render document as ALWAYS_YIELD_MOTIONBLUR_SAFE_GEOMETRY should not impact anything but the rendering. Or are there render settings now which allow you to enable motion-blur on a by frame basis? I am not really up to date when its comes to Cinema's core features ...

            Cheers,
            zipit

            MAXON SDK Specialist
            developers.maxon.net

            V 1 Reply Last reply Reply Quote 0
            • V
              victor @ferdinand
              last edited by victor

              @zipit sorry I didn't find anything related to ALWAYS_YIELD_MOTIONBLUR_SAFE_GEOMETRY 😕

              ferdinandF 1 Reply Last reply Reply Quote 0
              • ferdinandF
                ferdinand @victor
                last edited by ferdinand

                @victor said in Check if GetVirtualObjects is called for Motion Blur:

                @zipit sorry I didn't find anything related to ALWAYS_YIELD_MOTIONBLUR_SAFE_GEOMETRY 😕

                Sorry, I was probably a bit unclear on that. What I meant was: Listen to the message and once you retrieved it (and determined that this is an animation rendering that contains a motion blur), you can set a flag in the instance of your plugin object that tells GVO that this instance should be constructed as motion blur safe. And since you are then in a rendering document, that should have no impact on the editor behavior of your object. The made up symbol was just an attempt on trying to convey that without writing a wall of text 😉

                Cheers,
                zipit

                MAXON SDK Specialist
                developers.maxon.net

                V 1 Reply Last reply Reply Quote 0
                • V
                  victor @ferdinand
                  last edited by

                  @zipit said in Check if GetVirtualObjects is called for Motion Blur:

                  n that. What I meant was: Listen to the message and once you retrieved it (and determined that this is an animation rendering that contains a motion blur), you can set a flag in the instance of your plugin object that tells GVO that this instance should be constructed as motion blur safe. And since you are then in a rendering document, that will have no impact on the editor behavior of your object. The made up symbol was just an attempt on trying to convey that without writing a wall of text 😉

                  I disabled it by using a motion blur tag, btw I was speaking about these characters, unfortunately since I cannot get that preframe signal c4d won't support motion blur

                  1 Reply Last reply Reply Quote 0
                  • M
                    m_adam
                    last edited by

                    Hi @victor just to be sure, you want to retrieve the initial frame render within the Object Generator.

                    So if you have motion blur enabled and with a time of 1 frame with 1 step.

                    You press the render button while being on frame 4, it will evaluate frames 3, 4 and 5. And in all of these, you want to know the original frame rendered (aka the frame 4). And of course, have something that works with animation and not only still.

                    If that's correct I will forward it to the development team(since I wasn't able to find a way until now) but I prefer to ask first since we are not 100% that is what you really want to know.
                    If it's not your real question, could you send us an email at [email protected] with as many information as possible.

                    Thanks in advance,
                    Cheers,
                    Maxime.

                    MAXON SDK Specialist

                    Development Blog, MAXON Registered Developer

                    1 Reply Last reply Reply Quote 0
                    • V
                      victor
                      last edited by

                      Yes, the situation you described is exactly what we need.

                      We released v4.0 without mb support in C4D for the new 4D characters (in regular rigged and ambient characters it works ok) but we could introduce it in a 4.1 or something like that.

                      1 Reply Last reply Reply Quote 0
                      • M
                        m_adam
                        last edited by

                        Hi @victor unfortunately, the development team told us there is no way to achieve that without hooking directly into the render which is not possible for Cinema 4D built-in rendered.

                        Cheers,
                        Maxime.

                        MAXON SDK Specialist

                        Development Blog, MAXON Registered Developer

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