2016-07-29 3 views
0

Ich habe eine Gesichtserkennungs-App und ich möchte, dass sich der Kopf eines Charakters entsprechend der Pose des erkannten Gesichts dreht.Lass den Kopf eines manipulierten Charakters synchron mit einer Quaternion in Unity rotieren.

Ich habe es geschafft, die Drehung des erkannten Gesichts in Form einer Quaternion zu bekommen, aber ich bin unsicher, wie ich die Daten aus der Quaternion in 3D - Punkte für die Referenzpunkte der manipulierter Charakter, von dem ich glaube, dass er die Rotation bestimmen wird.

Lasst sie sagen, ich habe diesen Charakter: http://i.imgur.com/3pcRoYx.png

Eine Lösung den Kopf könnte nur abgeschnitten und ihm ein eigenes Objekt zu machen und dann die Drehung des Objekts nach der quaternion, aber ich weiß nicht will das. Ich möchte einen intakten Charakter.

Ist es möglich, die Bezugspunkte im Kopf mit den Daten einer Quaternion zu verschieben? Oder habe ich falsch verstanden, wie manipulierte Charaktere ihre Köpfe drehen? Ich habe vorher nicht animiert.

Antwort

1

Sie können die Rotation auf einen einzelnen Knochen anwenden. Holen Sie sich diesen Bone in Ihrem Skript. Behalte eine Var in deiner Klasse, um das letzte Quaternion in jedem Update zu speichern, vergleiche es mit diesem und rotiere nach dem anderen. Ich habe hier nicht den eigentlichen Editor, aber versuche diesen Pseudocode.

Ich habe so etwas schon mal gemacht, um einen Hals eines NPCs zu rotieren, um einen Spieler anzuschauen. Es sollte auch für Ihr Geschäft funktionieren.

+0

Warte, was soll ein und b sein? – Johan

+0

Mein schlechtes. Es ist DetectedFace und LastFace. Obwohl das Gegenteil sein könnte. Außerdem sollte LastFace beim letzten Update das Quaternion des Halses sein. Ich glaube, du kriegst so etwas, oder? – Ozitiho

+0

Ich musste die Inverse nicht berechnen. Ich konnte einfach die Rotation des Knochens mit der Quaternion einstellen, die ich hatte. Vielen Dank. – Johan

Verwandte Themen