Jump to content
Unity Insider Forum

Grundlagen VR


Noob

Recommended Posts

Hallo liebe Insider,

 

ich (bzw. wir) sind total neu in unity.

 

Schnell zum Hintergrund: Wir sind 3 Maschinenbaustudenten im 6. Semster, die grob gesagt, einen Datenhandschuh in Unity integrieren müssen. Das alles soll im laufenden Semester innerhalb einer Projektarbeit passieren.

Leider fehlt uns jegliches Wissen in Bezug auf Unity. Programmieren können wir etwas, aber leider auch nicht c-Sharp (wird aber immer besser). Da die Zeit leider echt begrenzt ist, wird es uns nicht möglich sein, das mächtige Unity nur ansatzweise zu lernen. Darum wärs hilfreich, wenn wir ein paar Tipps von euch bekommen könnten.

 

Wir haben uns folgende Vorgehensweise überlegt:

 

- zuerst nehmen wir ein Model aus dem assetstore und kombinieren wir ihn mit einem First-Person-Controller, damit wir auch unsere Füßen sehen können, wenn wir mit der Oculus an uns runter schauen. Das hat auch schon relativ gut geklappt. Oder gitbs da einen Königsweg?

 

- als nächstes hätten wir versucht, die einzelnen Finger/Hand via Skript zu bewegen. Doch da fangen unsere Probleme schon an. Wir haben wirklich keine Ahnung was wir dazu brauchen? Ich habe oft was vom rigidbody gelesen, ist das in dem Fall sinnvoll?

 

- anschließend würden wir eine Koordinatentransformation von der Brille zum Handschuhmarker durchführen. (Das wird dann auch noch ein ordentlicher Spaß)

 

- nachdem das alles funktioniert, müssen wir noch die Daten vom Handschuh in das Skript bringen, welches die Finger/Hand bewegt.

 

Es wäre echt super, wenn uns jemand nur die Richtiung sagen könnte, was wir dazu alles brauchen. Wir wollen auch gar keine fertigen skripte (außer jemand will sie unbedingt posten), sondern einfach nur Ideen, Vorschläge, evtl. nützliche Videos.

 

Wie gesagt, uns fehlt einfach die Zeit, uns unity komplett anzueignen. Deshalb suchen wir genau die Funktionen, die für uns von Belangen sind.

 

 

Vielen Dank Euch!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo!

 

- zuerst nehmen wir ein Model aus dem assetstore und kombinieren wir ihn mit einem First-Person-Controller, damit wir auch unsere Füßen sehen können, wenn wir mit der Oculus an uns runter schauen. Das hat auch schon relativ gut geklappt. Oder gitbs da einen Königsweg?

Nö, klingt gut.

 

- als nächstes hätten wir versucht, die einzelnen Finger/Hand via Skript zu bewegen. Doch da fangen unsere Probleme schon an. Wir haben wirklich keine Ahnung was wir dazu brauchen? Ich habe oft was vom rigidbody gelesen, ist das in dem Fall sinnvoll?

Mit welcher Hardware genau werden denn die Finger getrackt? Es gibt für eigentlich jedes Gerät ein Unity-Paket, das einfach nur reingezogen werden muss, um die Trackingdaten in Unity sichtbar zu machen. Leap Motion und Kinect sind sehr einfach... mit Datenhandschuhen kenne ich mich nicht aus, aber da Unity der Favorit so ziemlich aller VR-Hardware-Hersteller ist, würde es mich wundern, wenn ihr da nicht auch was findet.

 

- anschließend würden wir eine Koordinatentransformation von der Brille zum Handschuhmarker durchführen. (Das wird dann auch noch ein ordentlicher Spaß)

 

- nachdem das alles funktioniert, müssen wir noch die Daten vom Handschuh in das Skript bringen, welches die Finger/Hand bewegt.

Auch hier sollte es wenig Probleme geben. Ihr habt eine Szene, in der die Objekte sich im World Space bewegen. Dazu gehören die Kamera, die durch die VR-Brille gedreht und bewegt wird, und die Handschuhe. Im schlimmsten Fall lasst ihr die virtuellen Handschuhe der Kamera folgen.

 

Es wäre echt super, wenn uns jemand nur die Richtiung sagen könnte, was wir dazu alles brauchen. Wir wollen auch gar keine fertigen skripte (außer jemand will sie unbedingt posten), sondern einfach nur Ideen, Vorschläge, evtl. nützliche Videos.

 

Wie gesagt, uns fehlt einfach die Zeit, uns unity komplett anzueignen. Deshalb suchen wir genau die Funktionen, die für uns von Belangen sind.

Das variiert leider von Fall zu Fall. Ich weiß schon einmal nicht, welchen Handschuh ihr benutzt ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke euch beiden!

 

Zunächst mal zur Hardware. Wir haben eine OCULUS RIFT DK2 und einen CyberGlove II.

Leider habe ich mich bei dem Handschuh ungenau ausgedrückt. Der Handschuh hat lediglich Metallplättchen die ihren Widerstand ändern, wenn man seinen Finger zB. beugt. Mit Tracking ist da leider nicht viel. Ganz so einfach wollte man es wohl nicht machen.

 

Zur Transformation:

Da wir wohl keine Marker, Tracker oder sonst was haben, müssen wir später eine Matrixtransformation von dem Handschuh zur Brille hinbekommen. Das stört mich aber momentan noch wenig.

 

Zum Thema scripting:

ich habe mir im Assetstore diese freundliche Dame ausgesucht:

https://www.assetstore.unity3d.com/en/#!/content/44429

 

Jetzt würde ich es gerne schaffen, dass ich per Skript deren Finger bewegen. Im Programm selber ist das ja kein Problem. Funktioniert das im Script dann über eine Matrix?

Zum Hintergrund: Der Handschuh liefert ja eigentlich nur Spannungen die Masterstudenten auslesen und umrechnen. Wir bekommen dann wahrscheinlich nur eine Matrix mit den Koordinaten der einzelnen Gelenke. Diese müssen ja wie irgendwie einlesen und an unity übergeben.

Ich hoffe, ich konnte mich halbwegs verständlich für euch ausdrücken :)

 

Danke schon mal für eure weiteren Antworten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

http://docs.unity3d.com/ScriptReference/Matrix4x4.html

http://docs.unity3d.com/ScriptReference/Quaternion.html

http://docs.unity3d.com/ScriptReference/Transform.html

Diese Sachen könnten euch helfen.

Üblicherweise kann man von Quaternions auch zu Matrizen und zurück konvertieren und die entsprechenden Sachen in die Transforms eintragen. Transforms bestimmen ja die Position, Rotation, Skalierung von Objekten - also das was in anderen Engines über 4x4 Matrizen gemacht wird. Das wird intern in Unity über Quaternions etc geregelt.

Abhängig davon, was ihr bekommt aus dem System solltet ihr eine passende Fingerhierarchie in der Szene aufbauen. Entweder ein fertiges Charaktermodell oder notfalls aus primitiven selber gebaut ( besser fürs Debugging).

Mit den entsprechenden Werten aus dem System solltet ihr dann die einzelnen Fingerglieder selber setzen können.

 

Also z.B. Spannung messen bei flacher Hand und bei geschlossener Hand, die jeweiligen Posen in Unity nachstellen und die entsprechenden Rotationen merken und dann abhängig von der Spannung interpolieren.

 

Viel Erfolg!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...