VR-NavMesh

  • Hi,

    ich mache VR-Visualisierungen für Architekten, jetzt habe ich gerade ein Problem mit dem Navmesh. Ich habe zzt einen Auftrag, in dem ein altes Bauernhaus zum Wohnhaus umgebaut wird und habe demnach beide Meshes erstellt. Nach der Transition von alt zu neu funktioniert eigentlich alles normal, allerdings habe ich in einem Raum der nun höher liegt, also eine aktuelle Navigation benötigt keine Navigation da ist. Ich kann den Raum also nicht betreten. Ich bin alle Kollisionen durchgegangen und habe alles angepasst, Navsys ist auf Dynamic, ich habe es schon so gemacht dass das alte Gebäude gelöscht wird und das neue in einem neuen BP gespawnt wird, ich habe es auch als ein BP mit Kollisionen probiert aber kam noch zu keinem Ergebnis.

    Habe ich vielleicht was vergessen ?

  • Hast du dir mal das Navmesh, bzw. den Navbereich und die Kollisionen in der Engine anzeigen lassen?

    Ja, wenn ich alles als Simulation laufen lasse wird es auch nicht aktualisiert. Bin langsam echt Ratlos. Habe die Beiden Gebäude BP´s schon einzelnt rein gestellt mit einem Navmesh umgeben und da funktioniert der Raum. Nur eben nicht wenn ich die Gebäude runtime austausche.

    • Offizieller Beitrag

    Eigentlich ist doch die Kollision dein Problem, oder?

    Ich kenne dein Mesh und kenne deine Kollisionen nicht, aber mal ein Gedanke:


    Wenn du einen Würfel erstellst und mit einer Booleischen Operation ein Loch hineinmachst und dann eine Kollisionsbox darauf legst, dann kann es sein, dass dieses Loch in der Kollision nicht erkannt wird und die Kollision um den ganzen Würfel herum geht. Somit wäre das Loch nicht begehbar.


    Wenn auf deinem Raum ein Collider ist, dann könnte auch er um den ganzen Raum herumgehen, ohne dass der innere Bereich begehbar ist.


    Mesh Collider sollten das eigentlich hinbekommen, probier mal aus, die Wände deines Raums aus mehreren Box Collidern statt einem oder mehrere Mesh Collider zu nehmen (Jede Wand ein Box Collider) und auf Mesh Collider komplett zu verzichten. Box Collider sind sowieso performanter und gleichzeitig sollte sich dein Problem erledigen. Deine gesamte Bodenplatte und deine gesamte Decke bekommen ebenfalls einen einzigen Mesh Collider.

    Bei sehr komplexen Meshes werden nicht selten mehrere Box Collider kombiniert.

    Ich würde die Räume auch separieren. (Jeder Raum ist ein separates Mesh) Dadurch kann das Culling ganze Räume ein- und ausblenden. Auf gar keinen Fall den ganzen Stock oder sogar das Haus zu einem riesigen Mesh machen. Die Transition von alt auf neu ist sonst für die Grafikkarte eine ziemliche Herausforderung.

    Auch Interior, falls du das hast, würde ich separieren und je Raum ein Mesh machen. Somit kann das Culling jeden Raum und jedes Interior für jeden Raum ein- und ausblenden.

    Dies versus ein riesiges Haus mit einem sehr komplexen Mesh Collider, welcher Fehler aufgrund der Geometrie verursacht.



  • Danke erstmal für die Antwort. Um Problemen mit kollisionen an Wänden zu entgehen hatte ich das Haus ohne kollision gemacht und die Böden einzelne Meshes mit simpelen Kollisionen gemacht. Ich konnte das Problem zwar nun soweit in den Griff bekommen in dem im Navmesh die Tile Size UU von 1000 auf 550 gesetzt habe, komme nun aber nicht mehr in das OG was natürlich noch schlimmer ist :D Interior ist natürlich Seperat und laufen als Instanzen haben auch keinerlei Auswirkungen auf Kollisionen.