Surviving CSTO intact?



  • 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



  • 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.



  • 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.



  • 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)



  • 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)



  • 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



  • 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



  • 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



  • 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.



  • 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.



  • 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



  • 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


Log in to reply