THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 22/02/2003 at 05:07, xxxxxxxx wrote:
Cinema 4D Version: 8.012
Platform: Windows ;
Language(s) : C++ ;
i took the morphmixer sdk example as a base to create standard position and rotation tracks, but i can't figure out how to set up the right value descriptions.
I just want to record positions and rotations of an object , that my plugin moves. By using GetDescriptionID() I found out, that e.g. position tracks have the ID 903, but when I use this, I'll get only Position Tracks without the splitting to the vector components. And since the AnimValue struct that GetKeyValue() returns accepts Real values only, I really don't know how to go on.
Thanks for any help.
On 22/02/2003 at 06:53, xxxxxxxx wrote:
Puh! OK. I've got it.
By random, I found the description of the function
Bool CheckDescID(const DescID& searchid, const AtomArray& ops, DescID* completeid)
. There war an example:
>>For example, if you pass
DescID(DescLevel(ID_BASEOBJECT_POSITION, 0, 0), DescLevel(VECTOR_X, 0, 0))
it will return
This was the missing puzzle part:
static Bool Create_Key(BaseDocument *doc, BaseObject *op, const BaseTime &time, LONG index, Vector value)
val = value.x;
val = value.y;
val = value.z;
for (i=0; i<3; i++)
// check if track exists
descID = DescID(DescLevel(index, 0, 0), DescLevel(VECTOR_X+i, 0, 0));
track = op->FindTrack(descID);
track = AllocValueTrack(op,descID); if (!track) return FALSE;
// check for sequence
seq = NULL;
for (seq = track->GetFirstSequence(); seq; seq=seq->GetNext())
if (time>=seq->GetT1() && time<=seq->GetT2())
seq = track->AutoAddSequence(doc,time);
if (!seq) return FALSE;
key = BaseKey::Alloc(seq->GetType()); if (!key) return FALSE;
av = GetKeyValue(key); if (!av) return FALSE;
av->value = val[i];
Unfortunately, I can't really record the object's movement by now, because when the first sequence is created, my expression plugin can't move the object any more, although the priority is lower than animation (EXECUTION_EXPRESSION).