access the target of pose morph [SOLVED]
On 08/09/2016 at 11:06, xxxxxxxx wrote:
I tried to add an object to morph "target" option
obj = doc.GetActiveObject() corr= obj.GetDownLast() #get the last child if not corr : return False pmTag = obj.GetTag(c4d.Tposemorph) mo = pmTag.AddMorph() pmTag.UpdateMorphs() count =mo.GetID() Id = 1000 + count*100 +1 print Id pmTag[c4d.ID_CA_POSE_TARGET,Id]=corr c4d.EventAdd()
I wanted to add it to the last morph (the one that was created with the script ) , so I made a little cheat get the Id , then do some math to match the style of the index (1101,1201,1301...etc )
this cheat worked with the strength (I used the Id 4000 )
but it does not seem to work with the target , it only affect the selected morph .
is there any way to make it affect specific morph ?
or "force " select a morph with its index ?
when I was searching in the older post , I found similar topic with C++ , but someone mentioned that Maxon made the tree view private so it is not possible to access it .
is there any workaround to this problem ?
On 09/09/2016 at 01:42, xxxxxxxx wrote:
if I understand your intentions correctly you want to add a new morph and set the "Target" parameter?
The pose morph tag has a dedicated API to use this tag: CAPoseMorphTag. This class includes SetActiveMorphIndex() which can be used to select a morph. With that morph select you can simply set the parameter:
# create new morph morph = morphTag.AddMorph() if morph is None: return morph.SetName("New Morph") # select latest morph count = morphTag.GetMorphCount() morphTag.SetActiveMorphIndex(count-1) # set "Target" morphTag[c4d.ID_CA_POSE_TARGET] = targetObject c4d.EventAdd()
On 09/09/2016 at 09:37, xxxxxxxx wrote:
thanks for help ,
it is working as expected :)
I didn't have this method in my python SDK , because I didn't updated it .
just to be sure , the user have to use the latest update of cinema 4d R17(.053) to use the script ?
On 12/09/2016 at 00:20, xxxxxxxx wrote:
yes, some functions were added to the CAPoseMorphTag class with R17 SP3. So these functions are only available for users of this service pack or of R18.