Here you will find documentation on all the descriptions that Cinema 4D currently has. You can list them Alphabetically, by Type or Plugin . The sample Python and C++ code is automatically generated and in some cases may not be 100% correct. If something doesn't work then please refer to the official Cinema 4D SDK documentation for more information.

IDs and information for Tcaposemorph

Tcaposemorph

Attributes

  • ENGLISH NAME : PoseMorph
  • NAME : Tcaposemorph
  • INCLUDE : Texpression
  • PATH : ca/description/tcaposemorph.res
  • PLUGIN : ca
  • MAXON online help (may not exist): TCAPOSEMORPH

Elements

ID UI Name Type Parameters Cycle
ID_CA_POSE_BASE_PRI BasePriority PRIORITY ANIM
ID_CA_POSE_P Position BOOL ANIM
ID_CA_POSE_PARAM Parameters BOOL ANIM
ID_CA_POSE_S Scale BOOL ANIM
ID_CA_POSE_USERDATA UserData BOOL ANIM
ID_CA_POSE_R Rotation BOOL ANIM
ID_CA_POSE_HIERARCHY Hierarchy BOOL ANIM
ID_CA_POSE_POINTS Points BOOL ANIM
ID_CA_POSE_MAPS Maps BOOL ANIM
ID_CA_POSE_UV UV BOOL ANIM
ID_CA_POSE_OPTIONS_PSD_DRAWDRIVER DrawPSDDrivers BOOL ANIM
ID_CA_POSE_OPTIONS_PSD_DRIVERCOLOR PSDDriverColor COLOR ANIM
ID_CA_POSE_OPTIONS_PSD_POS_THRESHOLD PositionThreshold REAL
ANIM OFF
UNIT METER
MIN 0.0
MAX 100000.0
MAXSLIDER 10.0
CUSTOMGUI REALSLIDER
ID_CA_POSE_OPTIONS_PSD_ORIENT_THRESHOLD OrientThreshold REAL
ANIM OFF
UNIT DEGREE
MIN 0.0
MAX 180.0
MAXSLIDER 180.0
CUSTOMGUI REALSLIDER
ID_CA_POSE_OPTIONS_PSD_TWIST_THRESHOLD TwistThreshold REAL
ANIM OFF
UNIT DEGREE
MIN 0.0
MAX 180.0
MAXSLIDER 180.0
CUSTOMGUI REALSLIDER
ID_CA_POSE_MODE Mode LONG
CUSTOMGUI RADIOBUTTONS
COLUMNS 2
SCALE_H
ANIM OFF
ID_CA_POSE_MODE_EDIT Edit
ID_CA_POSE_MODE_ANIMATE Animate
ID_CA_POSE_MORPHS Poses ITEMTREE
DRAGDROP
COLUMNS 4
ROWS 10
PADLOCK
CHECKBOX
FOLDERS
MULTIPLE
ID_CA_POSE_ADDMORPH AddPose BUTTON SCALE_H
ID_CA_POSE_EDIT_MODE Edit LONG ANIM
ID_CA_POSE_EDIT_MODE_OFF Disabled
ID_CA_POSE_EDIT_MODE_TARGET Selected
ID_CA_POSE_EDIT_MODE_INPLACE InPlace
ID_CA_POSE_MIXING Mixing LONG
SCALE_H
ANIM OFF
ID_CA_POSE_MIXING_ABS Absolute
ID_CA_POSE_MIXING_REL Relative
ID_CA_POSE_MIXING_ROT Rotational
ID_CA_POSE_MIXING_CORRECTIONAL Tangential
ID_CA_POSE_MIXING_CORRECTIONAL_AREA Tangential(Area)
ID_CA_POSE_MIXING_CORRECTIONAL_PSD CorrectionalPSD
ID_CA_POSE_MIXING_DEFORMED PostDeformers BOOL  
ID_CA_POSE_USE_STRENGTH Use BOOL  
ID_CA_POSE_STRENGTH Strength REAL
UNIT PERCENT
CUSTOMGUI REALSLIDER
MINSLIDER 0.0
MAXSLIDER 100.0
SCALE_H
ID_CA_POSE_ROTATION_POS Pos VECTOR
UNIT METER
SCALE_H
CUSTOMGUI SUBDESCRIPTION
ID_CA_POSE_ROTATION_AXIS Axis VECTOR
UNIT METER
SCALE_H
CUSTOMGUI SUBDESCRIPTION
ID_CA_POSE_ROTATION_FROMEDGE FromEdges BUTTON SCALE_H
ID_CA_POSE_ROTATION_FROMPOINTS FromPoints BUTTON SCALE_H
ID_CA_POSE_UPDATE_PSD_POSE SetPose BUTTON SCALE_H
ID_CA_POSE_RESTORE_PSD_POSE GoToPose BUTTON SCALE_H
ID_CA_POSE_FORCE_AUTOWEIGHTDRIVER SetDrivers BUTTON SCALE_H
ID_CA_POSE_SHOW_AUTOWEIGHTDRIVER SelectDrivers BUTTON SCALE_H
ID_CA_POSE_PSD_INTERP_MODE_UI_ONLY InterpolationMode LONG
SCALE_H
ANIM OFF
ID_CA_POSE_PSD_INTERP_MODE_JOINT PerJoint
ID_CA_POSE_PSD_INTERP_MODE_AXIS PerJointAxis
ID_CA_POSE_PSD_INTERP_MODE_GLOBALAVERAGE GlobalStrength
ID_CA_POSE_WEIGHTTAG_UI_ONLY PSDWeightTag LINK ANIM
ID_CA_POSE_TARGET Target LINK  
ID_CA_POSE_EXTERNAL External FILENAME
SCALE_H
ANIM OFF
ID_CA_POSE_EXTERNAL_SAVE Save... BUTTON  
ID_CA_POSE_TOTAL_STRENGTH Strength REAL
UNIT PERCENT
MINSLIDER 0.0
MAXSLIDER 100.0
CUSTOMGUI REALSLIDER
SCALE_H
ID_CA_POSE_RECORD_SLIDER RecordSliders BUTTON SCALE_H
ID_CA_POSE_RESET_SLIDER ResetSliders BUTTON SCALE_H
ID_CA_POSE_DEST Destination LINK  
ID_CA_POSE_TARGET_INCLUDE_MODE Mode LONG SCALE_H
ID_CA_POSE_TARGET_INCLUDE_MODE_INCLUDE Include
ID_CA_POSE_TARGET_INCLUDE_MODE_EXCLUDE Exclude
ID_CA_POSE_TARGET_INCLUDE Objects IN_EXCLUDE
NUM_FLAGS 1
INIT_STATE 0
SEND_SELCHNGMSG 1
SCALE_V
IMAGE_01_ON 1009316
IMAGE_01_OFF 1009320
ID_CA_POSE_PSD_AUTOWEIGHT_INTERP_UI_ONLY AutoWeighting BOOL HIDDEN
ID_CA_POSE_PSD_ORIENT_INTERP_UI_ONLY AutoOrientBlend BOOL HIDDEN
ID_CA_POSE_PSD_TWIST_INTERP_UI_ONLY AutoTwistBlend BOOL HIDDEN
ID_CA_POSE_PSD_POS_INTERP_UI_ONLY AutoPosBlend BOOL HIDDEN
ID_CA_POSE_PSD_ORIENT_INTERP_AVERAGEWEIGHT_UI_ONLY OrientAverageOutput REAL HIDDEN
ID_CA_POSE_PSD_POS_INTERP_AVERAGEWEIGHT_UI_ONLY PosAverageOutput REAL HIDDEN
ID_CA_POSE_PSD_TWIST_INTERP_AVERAGEWEIGHT_UI_ONLY TwistAverageOutput REAL HIDDEN
ID_CA_POSE_PSD_INTERP_AVERAGEWEIGHT_UI_ONLY TotalAverageOutput REAL HIDDEN
ID_CA_POSE_PSD_INTERP_MODE BOOL HIDDEN
ID_CA_POSE_PSD_JOINT_X_WEIGHT XAxisWeight REAL
UNIT PERCENT
MINSLIDER 0.0
MAXSLIDER 100.0
CUSTOMGUI REALSLIDER
SCALE_H
HIDDEN
ID_CA_POSE_PSD_JOINT_Y_WEIGHT YAxisWeight REAL
UNIT PERCENT
MINSLIDER 0.0
MAXSLIDER 100.0
CUSTOMGUI REALSLIDER
SCALE_H
HIDDEN
ID_CA_POSE_PSD_JOINT_Z_WEIGHT ZAxisWeight REAL
UNIT PERCENT
MINSLIDER 0.0
MAXSLIDER 100.0
CUSTOMGUI REALSLIDER
SCALE_H
HIDDEN
ID_CA_POSE_PSD_JOINT_FORCE_IN_AUTOWEIGHT ConsiderInAutoWeighting BOOL HIDDEN

Example Code

The following code does not use the correct values when setting the data. You should check directly in C4D for the correct values that you should use in place of the ones that are shown. This code is just to show you how to access the values for getting and setting the parameters.

Python

import c4d
from c4d import gui
def main():
    obj = c4d.BaseObject(c4d.Osphere)
    tag = obj.MakeTag(c4d.Tcaposemorph)
    doc.InsertObject(obj)
    c4d.EventAdd(c4d.EVENT_FORCEREDRAW)
    
    #You can set parameters two different ways. 
    #First way              
    tag[c4d.ID_CA_POSE_P] = True
    tag[c4d.ID_CA_POSE_PARAM] = True
    tag[c4d.ID_CA_POSE_S] = True
    tag[c4d.ID_CA_POSE_USERDATA] = True
    tag[c4d.ID_CA_POSE_R] = True
    tag[c4d.ID_CA_POSE_HIERARCHY] = True
    tag[c4d.ID_CA_POSE_POINTS] = True
    tag[c4d.ID_CA_POSE_MAPS] = True
    tag[c4d.ID_CA_POSE_UV] = True
    tag[c4d.ID_CA_POSE_OPTIONS_PSD_DRAWDRIVER] = True
    tag[c4d.ID_CA_POSE_OPTIONS_PSD_POS_THRESHOLD] = 0.1
    tag[c4d.ID_CA_POSE_OPTIONS_PSD_ORIENT_THRESHOLD] = 0.1
    tag[c4d.ID_CA_POSE_OPTIONS_PSD_TWIST_THRESHOLD] = 0.1
    tag[c4d.ID_CA_POSE_MODE] = c4d.ID_CA_POSE_MODE_EDIT
    tag[c4d.ID_CA_POSE_EDIT_MODE] = c4d.ID_CA_POSE_EDIT_MODE_OFF
    tag[c4d.ID_CA_POSE_MIXING] = c4d.ID_CA_POSE_MIXING_ABS
    tag[c4d.ID_CA_POSE_MIXING_DEFORMED] = True
    tag[c4d.ID_CA_POSE_USE_STRENGTH] = True
    tag[c4d.ID_CA_POSE_STRENGTH] = 0.1
    tag[c4d.ID_CA_POSE_ROTATION_POS] = c4d.Vector(1.0,1.0,1.0)
    tag[c4d.ID_CA_POSE_ROTATION_AXIS] = c4d.Vector(1.0,1.0,1.0)
    tag[c4d.ID_CA_POSE_PSD_INTERP_MODE_UI_ONLY] = c4d.ID_CA_POSE_PSD_INTERP_MODE_JOINT
    tag[c4d.ID_CA_POSE_EXTERNAL] = "c:\\SomeFile.txt"
    tag[c4d.ID_CA_POSE_TOTAL_STRENGTH] = 0.1
    tag[c4d.ID_CA_POSE_TARGET_INCLUDE_MODE] = c4d.ID_CA_POSE_TARGET_INCLUDE_MODE_INCLUDE
    tag[c4d.ID_CA_POSE_PSD_AUTOWEIGHT_INTERP_UI_ONLY] = True
    tag[c4d.ID_CA_POSE_PSD_ORIENT_INTERP_UI_ONLY] = True
    tag[c4d.ID_CA_POSE_PSD_TWIST_INTERP_UI_ONLY] = True
    tag[c4d.ID_CA_POSE_PSD_POS_INTERP_UI_ONLY] = True
    tag[c4d.ID_CA_POSE_PSD_ORIENT_INTERP_AVERAGEWEIGHT_UI_ONLY] = 0.1
    tag[c4d.ID_CA_POSE_PSD_POS_INTERP_AVERAGEWEIGHT_UI_ONLY] = 0.1
    tag[c4d.ID_CA_POSE_PSD_TWIST_INTERP_AVERAGEWEIGHT_UI_ONLY] = 0.1
    tag[c4d.ID_CA_POSE_PSD_INTERP_AVERAGEWEIGHT_UI_ONLY] = 0.1
    tag[c4d.ID_CA_POSE_PSD_INTERP_MODE] = True
    tag[c4d.ID_CA_POSE_PSD_JOINT_X_WEIGHT] = 0.1
    tag[c4d.ID_CA_POSE_PSD_JOINT_Y_WEIGHT] = 0.1
    tag[c4d.ID_CA_POSE_PSD_JOINT_Z_WEIGHT] = 0.1
    tag[c4d.ID_CA_POSE_PSD_JOINT_FORCE_IN_AUTOWEIGHT] = True
    
    #Second way, using the base container.
    bc = tag.GetDataInstance()
    bc.SetBool(c4d.ID_CA_POSE_P,True)
    bc.SetBool(c4d.ID_CA_POSE_PARAM,True)
    bc.SetBool(c4d.ID_CA_POSE_S,True)
    bc.SetBool(c4d.ID_CA_POSE_USERDATA,True)
    bc.SetBool(c4d.ID_CA_POSE_R,True)
    bc.SetBool(c4d.ID_CA_POSE_HIERARCHY,True)
    bc.SetBool(c4d.ID_CA_POSE_POINTS,True)
    bc.SetBool(c4d.ID_CA_POSE_MAPS,True)
    bc.SetBool(c4d.ID_CA_POSE_UV,True)
    bc.SetBool(c4d.ID_CA_POSE_OPTIONS_PSD_DRAWDRIVER,True)
    bc.SetFloat(c4d.ID_CA_POSE_OPTIONS_PSD_POS_THRESHOLD,0.1)
    bc.SetFloat(c4d.ID_CA_POSE_OPTIONS_PSD_ORIENT_THRESHOLD,0.1)
    bc.SetFloat(c4d.ID_CA_POSE_OPTIONS_PSD_TWIST_THRESHOLD,0.1)
    bc.SetInt32(c4d.ID_CA_POSE_MODE,c4d.ID_CA_POSE_MODE_EDIT)
    bc.SetInt32(c4d.ID_CA_POSE_EDIT_MODE,c4d.ID_CA_POSE_EDIT_MODE_OFF)
    bc.SetInt32(c4d.ID_CA_POSE_MIXING,c4d.ID_CA_POSE_MIXING_ABS)
    bc.SetBool(c4d.ID_CA_POSE_MIXING_DEFORMED,True)
    bc.SetBool(c4d.ID_CA_POSE_USE_STRENGTH,True)
    bc.SetFloat(c4d.ID_CA_POSE_STRENGTH,0.1)
    bc.SetVector(c4d.ID_CA_POSE_ROTATION_POS, c4d.Vector(1.0,1.0,1.0)
    bc.SetVector(c4d.ID_CA_POSE_ROTATION_AXIS, c4d.Vector(1.0,1.0,1.0)
    bc.SetInt32(c4d.ID_CA_POSE_PSD_INTERP_MODE_UI_ONLY,c4d.ID_CA_POSE_PSD_INTERP_MODE_JOINT)
    bc.SetFileName(c4d.ID_CA_POSE_EXTERNAL,"c:\\SomeFile.txt")
    bc.SetFloat(c4d.ID_CA_POSE_TOTAL_STRENGTH,0.1)
    bc.SetInt32(c4d.ID_CA_POSE_TARGET_INCLUDE_MODE,c4d.ID_CA_POSE_TARGET_INCLUDE_MODE_INCLUDE)
    bc.SetBool(c4d.ID_CA_POSE_PSD_AUTOWEIGHT_INTERP_UI_ONLY,True)
    bc.SetBool(c4d.ID_CA_POSE_PSD_ORIENT_INTERP_UI_ONLY,True)
    bc.SetBool(c4d.ID_CA_POSE_PSD_TWIST_INTERP_UI_ONLY,True)
    bc.SetBool(c4d.ID_CA_POSE_PSD_POS_INTERP_UI_ONLY,True)
    bc.SetFloat(c4d.ID_CA_POSE_PSD_ORIENT_INTERP_AVERAGEWEIGHT_UI_ONLY,0.1)
    bc.SetFloat(c4d.ID_CA_POSE_PSD_POS_INTERP_AVERAGEWEIGHT_UI_ONLY,0.1)
    bc.SetFloat(c4d.ID_CA_POSE_PSD_TWIST_INTERP_AVERAGEWEIGHT_UI_ONLY,0.1)
    bc.SetFloat(c4d.ID_CA_POSE_PSD_INTERP_AVERAGEWEIGHT_UI_ONLY,0.1)
    bc.SetBool(c4d.ID_CA_POSE_PSD_INTERP_MODE,True)
    bc.SetFloat(c4d.ID_CA_POSE_PSD_JOINT_X_WEIGHT,0.1)
    bc.SetFloat(c4d.ID_CA_POSE_PSD_JOINT_Y_WEIGHT,0.1)
    bc.SetFloat(c4d.ID_CA_POSE_PSD_JOINT_Z_WEIGHT,0.1)
    bc.SetBool(c4d.ID_CA_POSE_PSD_JOINT_FORCE_IN_AUTOWEIGHT,True)

if __name__=='__main__':
    main()
             

C++

#include "c4d.h"
#include "../ca/description/tcaposemorph.h"
void SampleFunction()
{
    BaseDocument *pDoc = GetActiveDocument();
    BaseObject *pObject = BaseObject::Alloc(Osphere);
    pDoc->InsertObject(pObject);
    pDoc->StartUndo();
    pDoc->AddUndo(UNDOTYPE_NEW,pObject);
    pDoc->EndUndo();
    pDoc->StartUndo();
    BaseTag *pTag = pObject->MakeTag(Tcaposemorph);
    pDoc->AddUndo(UNDOTYPE_NEW,pTag);
    pDoc->EndUndo();
    pObject->Message(MSG_UPDATE);
    
    //You can set parameters two different ways. 

    //First way              
    //Some objects do not store all their data in the container. You need to use GetParameter()/SetParameter() instead. 

    DESCFLAGS_SET flags = DESCFLAGS_SET_PARAM_SET;
    pTag->SetParameter(DescID(ID_CA_POSE_P),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PARAM),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_S),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_USERDATA),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_R),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_HIERARCHY),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_POINTS),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_MAPS),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_UV),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_OPTIONS_PSD_DRAWDRIVER),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_OPTIONS_PSD_POS_THRESHOLD),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_OPTIONS_PSD_ORIENT_THRESHOLD),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_OPTIONS_PSD_TWIST_THRESHOLD),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_MODE),GeData(ID_CA_POSE_MODE_EDIT),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_EDIT_MODE),GeData(ID_CA_POSE_EDIT_MODE_OFF),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_MIXING),GeData(ID_CA_POSE_MIXING_ABS),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_MIXING_DEFORMED),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_USE_STRENGTH),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_STRENGTH),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_ROTATION_POS),GeData(Vector(1.0,1.0,1.0)),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_ROTATION_AXIS),GeData(Vector(1.0,1.0,1.0)),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_INTERP_MODE_UI_ONLY),GeData(ID_CA_POSE_PSD_INTERP_MODE_JOINT),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_EXTERNAL),GeData(Filename("c:\\SomeFile.txt"),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_TOTAL_STRENGTH),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_TARGET_INCLUDE_MODE),GeData(ID_CA_POSE_TARGET_INCLUDE_MODE_INCLUDE),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_AUTOWEIGHT_INTERP_UI_ONLY),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_ORIENT_INTERP_UI_ONLY),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_TWIST_INTERP_UI_ONLY),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_POS_INTERP_UI_ONLY),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_ORIENT_INTERP_AVERAGEWEIGHT_UI_ONLY),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_POS_INTERP_AVERAGEWEIGHT_UI_ONLY),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_TWIST_INTERP_AVERAGEWEIGHT_UI_ONLY),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_INTERP_AVERAGEWEIGHT_UI_ONLY),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_INTERP_MODE),GeData(true),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_JOINT_X_WEIGHT),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_JOINT_Y_WEIGHT),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_JOINT_Z_WEIGHT),GeData(0.1),flags);
    pTag->SetParameter(DescID(ID_CA_POSE_PSD_JOINT_FORCE_IN_AUTOWEIGHT),GeData(true),flags);
    pTag->Message(MSG_UPDATE);            

    //Second way, using the base container.
    BaseContainer *bc =     pTag->GetDataInstance();
    bc->SetBool(ID_CA_POSE_P,true);
    bc->SetBool(ID_CA_POSE_PARAM,true);
    bc->SetBool(ID_CA_POSE_S,true);
    bc->SetBool(ID_CA_POSE_USERDATA,true);
    bc->SetBool(ID_CA_POSE_R,true);
    bc->SetBool(ID_CA_POSE_HIERARCHY,true);
    bc->SetBool(ID_CA_POSE_POINTS,true);
    bc->SetBool(ID_CA_POSE_MAPS,true);
    bc->SetBool(ID_CA_POSE_UV,true);
    bc->SetBool(ID_CA_POSE_OPTIONS_PSD_DRAWDRIVER,true);
    bc->SetFloat(ID_CA_POSE_OPTIONS_PSD_POS_THRESHOLD,0.1);
    bc->SetFloat(ID_CA_POSE_OPTIONS_PSD_ORIENT_THRESHOLD,0.1);
    bc->SetFloat(ID_CA_POSE_OPTIONS_PSD_TWIST_THRESHOLD,0.1);
    bc->SetInt32(ID_CA_POSE_MODE,ID_CA_POSE_MODE_EDIT);
    bc->SetInt32(ID_CA_POSE_EDIT_MODE,ID_CA_POSE_EDIT_MODE_OFF);
    bc->SetInt32(ID_CA_POSE_MIXING,ID_CA_POSE_MIXING_ABS);
    bc->SetBool(ID_CA_POSE_MIXING_DEFORMED,true);
    bc->SetBool(ID_CA_POSE_USE_STRENGTH,true);
    bc->SetFloat(ID_CA_POSE_STRENGTH,0.1);
    bc->SetVector(ID_CA_POSE_ROTATION_POS, c4d.Vector(1.0,1.0,1.0);
    bc->SetVector(ID_CA_POSE_ROTATION_AXIS, c4d.Vector(1.0,1.0,1.0);
    bc->SetInt32(ID_CA_POSE_PSD_INTERP_MODE_UI_ONLY,ID_CA_POSE_PSD_INTERP_MODE_JOINT);
    bc->SetFileName(ID_CA_POSE_EXTERNAL,"c:\\SomeFile.txt");
    bc->SetFloat(ID_CA_POSE_TOTAL_STRENGTH,0.1);
    bc->SetInt32(ID_CA_POSE_TARGET_INCLUDE_MODE,ID_CA_POSE_TARGET_INCLUDE_MODE_INCLUDE);
    bc->SetBool(ID_CA_POSE_PSD_AUTOWEIGHT_INTERP_UI_ONLY,true);
    bc->SetBool(ID_CA_POSE_PSD_ORIENT_INTERP_UI_ONLY,true);
    bc->SetBool(ID_CA_POSE_PSD_TWIST_INTERP_UI_ONLY,true);
    bc->SetBool(ID_CA_POSE_PSD_POS_INTERP_UI_ONLY,true);
    bc->SetFloat(ID_CA_POSE_PSD_ORIENT_INTERP_AVERAGEWEIGHT_UI_ONLY,0.1);
    bc->SetFloat(ID_CA_POSE_PSD_POS_INTERP_AVERAGEWEIGHT_UI_ONLY,0.1);
    bc->SetFloat(ID_CA_POSE_PSD_TWIST_INTERP_AVERAGEWEIGHT_UI_ONLY,0.1);
    bc->SetFloat(ID_CA_POSE_PSD_INTERP_AVERAGEWEIGHT_UI_ONLY,0.1);
    bc->SetBool(ID_CA_POSE_PSD_INTERP_MODE,true);
    bc->SetFloat(ID_CA_POSE_PSD_JOINT_X_WEIGHT,0.1);
    bc->SetFloat(ID_CA_POSE_PSD_JOINT_Y_WEIGHT,0.1);
    bc->SetFloat(ID_CA_POSE_PSD_JOINT_Z_WEIGHT,0.1);
    bc->SetBool(ID_CA_POSE_PSD_JOINT_FORCE_IN_AUTOWEIGHT,true);
    pTag->Message(MSG_UPDATE);                                                      
}
             

Buttons

This node has buttons. Buttons can manually be executed by calling the following code

Python

c4d.CallButton(tag,c4d.ID_CA_POSE_ADDMORPH)
c4d.CallButton(tag,c4d.ID_CA_POSE_ROTATION_FROMEDGE)
c4d.CallButton(tag,c4d.ID_CA_POSE_ROTATION_FROMPOINTS)
c4d.CallButton(tag,c4d.ID_CA_POSE_UPDATE_PSD_POSE)
c4d.CallButton(tag,c4d.ID_CA_POSE_RESTORE_PSD_POSE)
c4d.CallButton(tag,c4d.ID_CA_POSE_FORCE_AUTOWEIGHTDRIVER)
c4d.CallButton(tag,c4d.ID_CA_POSE_SHOW_AUTOWEIGHTDRIVER)
c4d.CallButton(tag,c4d.ID_CA_POSE_EXTERNAL_SAVE)
c4d.CallButton(tag,c4d.ID_CA_POSE_RECORD_SLIDER)
c4d.CallButton(tag,c4d.ID_CA_POSE_RESET_SLIDER)

C++

DescriptionCommand dc;
dc.id = DescID(ID_CA_POSE_ADDMORPH);             
pTag->Message(MSG_DESCRIPTION_COMMAND, &dc);

DescriptionCommand dc; dc.id = DescID(ID_CA_POSE_ROTATION_FROMEDGE); pTag->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(ID_CA_POSE_ROTATION_FROMPOINTS); pTag->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(ID_CA_POSE_UPDATE_PSD_POSE); pTag->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(ID_CA_POSE_RESTORE_PSD_POSE); pTag->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(ID_CA_POSE_FORCE_AUTOWEIGHTDRIVER); pTag->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(ID_CA_POSE_SHOW_AUTOWEIGHTDRIVER); pTag->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(ID_CA_POSE_EXTERNAL_SAVE); pTag->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(ID_CA_POSE_RECORD_SLIDER); pTag->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(ID_CA_POSE_RESET_SLIDER); pTag->Message(MSG_DESCRIPTION_COMMAND, &dc);