Ja, das geht. Aber ich erkläre erstmal, wieso es nicht so geht wie du willst.

Und zwar ist jeder Bone mit einem Winkel von 0,0,0 initialisiert, unabhängig (!) wie er positioniert und gedreht ist im Modell. Dann, wenn du ihn z.B. mit ent_bonerotate um 5° nach rechts drehst, dann ist das eine relative Angabe. Eine relative Angabe, die sich auf dessen initiale Stellung bezieht und nicht mit dem relativen Koordinatensystem der Entity zutun hat.

Ich hab das mal vor ein paar Jahren für einen Kunden umgesetzt, und zwar einerseits, dass der Kopf sich zur Kamera dreht und wenn der Kopf sich auf natürliche Weise nicht weiter drehen kann, dann die Augen, dementsprechend.

Und zwar hab ich das so gemacht, dass ich die Vorgabe gemacht habe, dass der Bone des Kopfes entlang der Z-Achse- und die Augenbones entlang der X-Achse des Modells verlaufen muss. Auf diese Weise kannst du dir dann über die relative Drehung der Entity und dem Winkel zum Ziel ausrechnen - unter der oben getroffenen Annahme - wie du den Kopfbone und die Augenbones zu drehen hast -- da du ja über diese Vorgaben weißt, wie er relativ in der Entity gedreht ist! Die Augenbones gar nicht (da identisch mit der Richtung der Entity, X-Achse nämlich) und der Kopfbone z.B. um 90° nach oben um die relative Y-Achse herum.

Wie gesagt: alles was du weißt ist dass in der initialen Stellung der Bone die Stellung 0,0,0 hat - und das wars, ent_bonerotate sorgt eben nur für eine relative Rotation im lokalen Koordinatensystem des Bones - und nicht der Entity - und schon gar nicht global.

Last edited by HeelX; 10/02/11 16:38.