Jump to content
Unity Insider Forum

Objekt vor Knie


Steve69

Recommended Posts

Hallo Leute,

bin noch blutiger Anfänger und versuche abhängig von einer Knieposition (lowerLeg) eines Charakters eine kleine Kugel zu platzieren.
Diese soll immer in einem bestimmtem Abstand vor dem Knie platziert werden. Egal in welches Richtung letztendlich das Knie zeigt.

Könnt ihr mir da bitte helfen?

Also eigentlich : Kugel.position = lowerLeg.position + new Vectro3(?,?,?);
Wie bekomme ich die ? berechnet?

Addiere ich z.B Vector3.forward, dann liegt meine Kugel immer eine Einheit in X-Richtung. Das funktioniert, wenn das Knie in X-Richtung zeigt.

Wenn das Knie jedoch z.B. um 90° gedreht wird, liegt die Kugel nicht mehr vor dem Knie sondern daneben.

Gruß

Stephan

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Sascha,

zuerst mal vielen Dank für die schnelle Antwort.
Hab das mal probiert.  Leider funktioniert das in meinem Fall jetzt nicht.

Muß etwas ausholen, damit mein Problem klarer wird.

Ich habe wie gesagt einen Charakter. Dieser wird über eine MotionCapture-Software mit Bewegungen versorgt.
Da diese MotionCapture-SW sensorenbasiert ist und deswegen die Positionen nicht wie gewünscht liefert, habe ich über Wochen versucht sog. HTC VIVE Tracker zur Korrektur der Hüftposition zu nutzen. Das habe ich soweit auch hinbekommen.
Da ich mit Hilfe der Tracker die Hüftposition verändere, wird damit die Animation beinflußt. In meinem Fall führt es dazu, dass die Füße anfangen zu schwimmen.
Als ob sie sich auf Eis bewegen würden. D.h. ändert sich die Hüftposition, dann wird von dort aus die Bewegung neu berechnet, was dazu führt, dass die Füße auch mit verschoben werden.

Nun kam mir der Gedanke, die Füße, wenn sie sich am Boden befinden, dort festzuhalten, sodass das Schwimmen aufhört.
Da ich wie gesagt, nicht der Profi bin, habe ich im Asset Store das Asset "Inverse Kinematik" gefunden. Nach längeren Versuchen habe ich das dann auf die Füße adaptieren können.

Habe dort eine Kugel für den Fuß (Target) und eine weitere Kugel für das Knie .
Mit diesen beiden Kugeln kann ich die IK beeinflußen.

Jedoch abhängig, wo die Kugel für das Knie positioniert ist, reagiert die IK auf die Veränderung der Kugel (Target).

Die Kugelposition für das Knie definiert, wie die IK das Bein/Knie anwinkelt, wenn der Fuß z.B. gehoben wird.

Somit dachte ich, dass wenn ich die Kugel für das Knie immer etwas vor dem Knie meines Charakter platziere, am besten abhängig auch von der Rotation des Knies, dann würde die IK beim Bewegen des Fußes (Target) mein Bein immer richtig anwinkeln.

Aus diesem Grund würde ich gerne die Kugel des Knies etwas vor dem eigentlichen Knie positionieren.

Wenn ich nun die Kugel, dem Schienbeinknochen unterordne, dann reagiert die IK ganz komisch. Somit geht das jetzt nicht.

Somit bräuchte ich immer noch ne Lösung, wie ich die Knie-Kugel kurz vor das Knie positionieren kann.

Hoffe meine Erklärung hilft.

Gruß

Stephan

 

 

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also wenn ich die Kugel vor dem Knie halte, dann eigentlich nicht.
Wenn ich die Kugel unterordne dann passiert genau das. Dann springt das permanent hin und her.

Ohne Unterordnung sieht es m.E. gut aus. Hab das mal mit Vector3.forward probiert. Geht halt dann nur in der einen Richtung.

Gibt es eigentlich keine einfach Art und Weise ein anderes Objekt vor einem anderen anhängig dessen Ausrichtung zu platzieren.
Das sollte doch gehen.

Stephan

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab's gefunden.

Für meine Zwecke dürfte dies ausreichend sein.

knee.position = LowerLeg.position + LowerLeg.forward/4; (/4 damit der Abstand nicht ganz so groß wird.)

Alternativ wäre evtl. gegangen, ein leeres Objekt unterzuordnen und dessen Position wiederum auf die Kugel zu übertragen.

Trotzdem recht schönen Dank. Hat mich auf die richtige Fährte gebracht.

Stephan

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...