ent_bonerotate(
ENTITY*,STRING* name,VECTOR* angle)
ent_bonerotate_parent(ENTITY*,STRING* name,VECTOR* angle)
Dreht einen Entity-Bone, dessen Child-Bones
und alle verknüpften Vertices. Ent_bonerotate dreht um seinen
Ankerpunkt. Ent_bonerotate_parent dreht um seine Parent-Verbindung
(dies entspricht dem rotate3-Modus in MED).
Parameter:
ENTITY - Entity Pointer
name - Name oder Handle des Bones, STRING* oder char*
angle - pan-, tilt-, roll- Euler-Winkel.
Rückgabewert:
0 wenn Bone nicht gefunden wurde,
sonst ungleich Null.
Geschwindigkeit:
Langsam
Bemerkungen:
- Diese Anweisung setzt den Bone nicht auf einen bestimmten Winkel, der
Winkel wird vielmehr zu aktuellen Ausrichtung des Bones hinzuaddiert.
Um Bones auf absolute Winkel zu setzen, oder die Bone-Animation
mehrerer Bones-Rotationen miteinander zu verknüpfen, setzen Sie die
Bones vorher per ent_bonereset oder ent_animate zurück.
- Bone-Drehungen sind relativ zur Drehung der Entity.
- Beim Drehen von Bones mit mehreren Vertexgewichten (s. max_bones) achten Sie bitte darauf, dass sämtliche Vertices der gedrehten Teile ausschließlich mit dem gedrehten Bone oder seinen Child-Bones verbunden sind. Sind sie außerdem mit einem nicht gedrehten Bone verbunden, werden sie bei der Rotation verzerrt.
Beispiele:
action endless_animation()
{
while(1) {
ent_bonerotate(my,"bone",vector(time_step, 0, 0));
wait(1);
}
}
action combined_animation()
{
while(1) {
if (key_q) { my.skill1 -= time_step; }
if (key_w) { my.skill1 += time_step; }
if (key_a) { my.skill2 -= time_step; }
if (key_s) { my.skill2 += time_step; }
ent_animate(my,NULL,0,0); // reset all bones
ent_bonerotate(my,"bone1",vector(0,my.skill2,0)); // tilt first bone
ent_bonerotate(my,"bone2",vector(my.skill1,0,0)); // pan second bone
wait(1);
}
}
Siehe auch:
ent_bonereset, ent_bonescale, ent_animate, ent_bonemove
► Aktuelle Version Online