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
    • Recent
    • Tags
    • Users
    • Login

    Surviving CSTO intact?

    Scheduled Pinned Locked Moved SDK Help
    12 Posts 0 Posters 1.1k Views
    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 Offline
      Helper
      last edited by

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

      On 23/12/2008 at 12:54, xxxxxxxx wrote:

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

      ---------
      I noticed that Joint Objects (not sure what 'type' of object they are... I don't think they are deformers or generators, etc) seem to 'survive' calls to CSTO without being morphed into Null Objects.
      Is there something a Plugin Object can do or bit to set somewhere to pull off the same feat?
      Thanks,
      Keith

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

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

        On 23/12/2008 at 15:29, xxxxxxxx wrote:

        Joint objects are definitely deformers but it is interesting that they 'survive' a CSTO whereas bones are removed. Is the resulting geometry properly deformed or so only by the joint influence? If the result geometry is already in the deformed state, it would just be a matter of removing and deleting the joints under the result.

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

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

          On 23/12/2008 at 15:53, xxxxxxxx wrote:

          Actually, I don't think Joint objects are deformers... the "Skin" object acts as a deformer - the Joints are just referenced by the Skin deformer, through the Weight Tag.
          What happens is... the Joints still have all thier keyframes, but since the Skin deformer got collapsed (the mesh turns into a Null, the Skin turns into the skin-deformed mesh), the mesh is no longer bound to the joints by any deformer.
          If you just add a new Skin deformer to the mesh, then the Joints are still operational (the Weight Tag is still pointing at them).
          I don't really need the mesh to still be hooked up to the joints (I just need the joint animation info, which is still there), but I have anoter plugin 'Object' that I'd like to have survive the CSTO operation, like Joints do.

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

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

            On 23/12/2008 at 16:04, xxxxxxxx wrote:

            erm... a slight correction/clarification to the above...
            The mesh ends up deformed by the (original) Skin deformer, so if the joints were not in thier 'rest' pose (ie. lined up with the original un-deformed mesh), then the new mesh will be deformed and out of place.
            If you add a new Skin deformer and get the joints lined up with the newly deformed mesh (ie. back to the keyframe where the doc->Polygonize() took place), you can click on "Set Pose" on the Weight Tag and you're back in bussiness.
            (again, I don't really need to do all of this... just confirming that the Joints survived the process)

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

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

              On 24/12/2008 at 02:11, xxxxxxxx wrote:

              Oddly enough, Joint objects respond true to:
              op->IsInstanceOf(Opolygon)

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

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

                On 24/12/2008 at 06:42, xxxxxxxx wrote:

                Quote: Originally posted by Giblet on 24 December 2008
                >
                > * * *
                >
                > Oddly enough, Joint objects respond true op- >IsInstanceOf(Opolygon)
                >
                >
                > * * *

                Not odd because joints can assume polygon shapes.

                I will look into this after my vacation.

                cheers,
                Matthias

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

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

                  On 24/12/2008 at 07:50, xxxxxxxx wrote:

                  True enough.  The real question is how it manages to get through CSTO unscathed.  I assume it's either:

                  • how it responds to GetVirtualObjects() or...
                  • CTSO is hard-coded / special-cased in some way or...
                  • due to some set bit / flag

                  ...it would be great if that ability was available for plugin objects.
                  Enjoy your vaction - Happy Holidays!
                  Keith

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

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

                    On 25/12/2008 at 01:55, xxxxxxxx wrote:

                    I think, in the function that outputs the "result" of a joint object, it just returns itself.

                    Same with a generator object, if I remember correctly. If I return a clone of the generator object in GetVirtualObjects(), pressing "c" on the object doesn't do anything.

                    Anyway, it seems that CSTO is one of the SDK's dark secrets. Everytime I want to use it, I learn something new about it.

                    Greetings,
                    Jack

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

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

                      On 26/12/2008 at 12:26, xxxxxxxx wrote:

                      Hi Hack,
                      Yeah, I thought of that (returning an allocated instance of the plugin from GetVirtualObjects()), but that didn't work.  I'm guessing that it has to do with what 'type' of Object my plugin is.  I don't think I had it set as a Generator when I tried that... I'll try again when I get a chance.

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

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

                        On 26/12/2008 at 13:00, xxxxxxxx wrote:

                        ...nope.  Setting it up as a Generator and returning itself from GetVirtualObjects() just causes a crash.  C4D is expecting a polygonal mesh object (or at least an InstanceOf() one) at that point.

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

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

                          On 24/01/2009 at 13:14, xxxxxxxx wrote:

                          Quote: Originally posted by Matthias Bober on 24  December 2008
                          >
                          > * * *
                          >
                          >> Quote: Originally posted by Giblet on 24  December 2008
                          >>
                          >> * * *
                          >>
                          >> Oddly enough, Joint objects respond true op->IsInstanceOf(Opolygon)
                          >
                          >>
                          >> * * *
                          >
                          >
                          >
                          >
                          > Not odd because joints can assume polygon shapes.
                          >
                          > I will look into this after my vacation.
                          >
                          > cheers,
                          > Matthias
                          >
                          >
                          > * * *

                          Any movement on this Matthias?
                          Thanks,
                          Keith

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

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

                            On 11/02/2009 at 00:06, xxxxxxxx wrote:

                            Here is an update on this. It is not possible for plugin generators to 'survive' a CSTO.

                            cheers,
                            Matthias

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