VRTemplate umbauen

  • Prinzipiell funktioniert zwar das Mapping meiner Oculus Touch Controller wie es das Template vorgibt,

    aber es ist leider nicht so wie ich es gewohnt bin.


    Beispielsweise gefällt mir die Navigation in Stormland VR. Diese kommt ohne Teleportation aus,

    und ist trotzdem sehr angenehm.


    Einfach wäre es natürlich, wenn man die Stormland Navigation irgendwie importieren könnte,

    oder dass diese jemand schon mal nachgebaut hat.


    Ich kann mir zwar das Mapping unter Input anschauen, aber wie komme ich vom Mapping

    zu den verwendeten Blueprints oder Functions?

  • Ich weiß nicht wie Stormland funktioniert, aber im Allgemeinen:


    An sich funktioniert das ganze genauso wie in nicht-VR Spielen. Die Inputs in den Settings werden gemappt auf Actions oder Axis.

    In Blueprint werden dir hierfür Events bereit gestellt.


    Mappst du also in den Settings die Action "Fire", so kannst du auch in deinen Blueprints über Rechtsklick ein entsprechendes Input Event erstellen, am besten den Character Blueprint oder dem PlayerController Blueprint (falls du z.B. eine Ebene vorher Inputs an den Character abfangen willst). Als Anfänger sollte es im Character Blueprint am besten aufgehoben sein.


    Ein nicht Teleport Movement musst du selber programmieren. Dabei musst du beachten dass in VR etwas mehr Berechnungen nötig sein können als in traditionellen games. z.B. gibt es ja selbst beim einfachen Analog Stick Movement eine Unterscheidung ob man Controller Based Movement (Controller gibt die Drehung des Koordinatensystems vor, etwas natürlicher da man sich in die Richtung des Sticks im Raum bewegt) oder Head Based Movement (Kopf gibt die Drehung des Koordinatensystems vor, unproblematischer, für Spiele bei denen man viel mit den Händen machen muss während man sich bewegt, wie z.B. eine Waffe halten/schwingen) umsetzt.


    Es gibt auch noch ein Plugin https://vreue4.com/ was ziemlich gut für VR ist, aber es ist nicht selbsterklärend und ein ziemlicher Brocken, falls du wenig Erfahrung hast.

  • Ich kenen mich ja noch nicht so gut mit dem Aufbau von UE aus...

    Gibt es irgendwo eine Auflistung der von einem Template verwendeten Blueprints bzw. des Codes?


    Also, wie komme ich von einem Input-Mapping dort in die Blueprints, dort wo der Input dann tatsächlich

    verwendet wird?


    Ich habe zwar Niagara-Sachen gefunden, nehme aber an, dass es da nur um die Darstellung

    des Teleporterstrahls geht.

  • Es sollte dort irgendwo einen Blueprint Ordner geben, dort gibt es einen Character oder Pawn Blueprint. Darin müsstest du auch die Events finden können.


    Edit: Hier ist ein Bild. In dem Blueprint findest du die Events und die programmierte Logik dahinter.


  • Aber eine Art Link direkt zum Blueprint gibt es dann wohl nicht?


    Wenn ich z.B. in VisualStudio einen Button auf ein Form gesetzt habe, dann kann ich

    durch Doppelklick im "Editmodus" direkt zum Defaultcode des Buttons gelangen.


    So etwas gibt es dann also nicht

  • Nein soetwas gibt es nicht, ist auch nicht sehr praktisch, da Input zu Logik eine 1 zu N Verbindung (ein Input kann in mehren Charakter/Pawn Klassen implementiert sein) hat, während ein Form-Event (z.B. ein Button) eine 1 zu 1 Verbindung hat (Das dem Form-Button zugewiesene Event gehört nur der einen Instanz des Buttons).

  • Wenn ich z.B. in VisualStudio einen Button auf ein Form gesetzt habe, dann kann ich

    durch Doppelklick im "Editmodus" direkt zum Defaultcode des Buttons gelangen.

    Visual Studio verfolgt einen komplett anderen Ansatz und ist mit Unreal Engine oder ähnlichen nicht unbedingt vergleichbar. Das merkst du auch daran, wenn du auf andere Sprachen in Visual Studio zugreifst, die nichts mit .NET zu tun haben, wie z.B. C++, Phyton oder was auch immer, funktioniert das auch dort nicht mehr so.


    Aber viel schwieriger ist die Lösung in Unreal auch nicht, wenn du halt weißt, wo es steht.


    Du hast links von der Auflistung deiner BPs einen kleinen Button.

    Ich habe nun zwar kein VR-Template parat, aber wie Tumora schon geschrieben hat gibt es irgendwo einen Actor der den Spieler darstellt.


    Dann gehst du auf Edit->Project Settings


    In diesen findest du links irgendwo den Eintrag Input.


    Und in Input findest du alles, was er an Action/Axis Mapings aufweist. Und im BP findest du dann dieselben Bezeichnungen als Event. Also zum Beispiel findest du im Input irgendwo wahrscheinlich "Move Forward" oder so, und im BP findest du dann ein rotes Node, also ein Event-Node, wo dann auch Move Forward als Überschrift steht, und danach alles, was er macht, wenn du Move Forward ausführst.