UNSOLVED GetAndCheckHierarchyClone + dynamics

Hi,

I'm developing generator plugin over child polygon objects.

It works good with GetAndCheckHierarchyClone + CurrentStateToObjectCommand which might have regular deformers underneath.
But it doesn't work with children with applied dynamics to them.

If it GetDeformCache() + GetCache() - maybe there's an example exist?

I found it's because of OBJECT_INPUT flag. Single OBJECT_GENERATOR flag is allowing children to have dynamics...

However original objects are observable in the viewport for a fraction of the second every frame update.
Also Make Editable and Current State to Object applied to the generator contains generated + original objects in the null.

How to get same experience as built-in generators, where no source objects are visible, and children dynamics is supported?

Hi @baca, you are right you should remove the OBJECT_INPUT but this imply you need to handle them correctly.

I'm not able to reproduce the delay you mention here my code

    def GetVirtualObjects(self, op, hierarchyhelp):
        orig = op.GetDown()
        if orig is None:
            return None

        dirty = False

        trans = c4d.AliasTrans()
        if not trans or not trans.Init(op.GetDocument()):
            return False
        dic = op.GetAndCheckHierarchyClone(hierarchyhelp, orig, c4d.HIERARCHYCLONEFLAGS_ASPOLY, True, trans)
        trans.Translate(True)
        if not dic["dirty"]:
            return dic["clone"]
        if not dic["clone"]:
            return None

        main = None
        clone = dic["clone"]
        if clone.CheckType(c4d.Onull):
            main = clone
        else:
            main = c4d.BaseObject(c4d.Onull)
            clone.InsertUnder(main)

        orig.Touch()

        return main

Cheers,
Maxime.

Hi @m_adam ,

Adding Touch() is removing visibility of original object, but dynamics stop to work on children after that

BTW, your code throw error:

in GetVirtualObjects
    hierarchy_clone = op.GetAndCheckHierarchyClone(hierarchyhelp, orig, c4d.HIERARCHYCLONEFLAGS_ASPOLY, True, trans)
TypeError: an integer is required

Scene file test_generator.c4d
Generator plugin test_generator.zip