Roblox GuidebookWissensbibliothek
Deutsch ⌄

Studio / ROBLOX

Warum eine Figur ihr Ziel nicht erreicht: Pathfinding in Studio prüfen

Ein kleiner Übungshof trennt Probleme der Wegberechnung von Problemen der Bewegung. Bereite eine verständliche Prüfung vor, bevor du Verfolgungen oder Helfer in dein Spiel einbaust.

Aktualisiert:

Eine Frage für die Übung wählen #

Stell dir einen eigenen Testhof vor: links beginnt eine Figur, rechts liegt eine markierte Zielfläche, dazwischen befinden sich zwei Durchgänge. Das ist ein erfundenes Beispiel für dein Projekt und keine Beschreibung eines bereits funktionierenden Helfers in den Spielen des Seitenautors. Die erste Frage lautet: Erreicht diese Figur das Ziel durch den offenen breiten Durchgang?

Notiere vor dem Start Ausgangspunkt, Zielobjekt und Abschlusskriterium. Belohnungen, Spielerverfolgung und Reisen zwischen Welten gehören noch nicht in diesen ersten Versuch. Zusätzliche Systeme erschweren die Diagnose einer ungeklärten Grundstrecke. Speichere die Übungsszene getrennt vom eigentlichen Spiellevel.

Den verfügbaren Raum ansehen #

Öffne in Studio oben rechts im 3D-Fenster Visualization Options und aktiviere Navigation mesh. Die Darstellung hilft dabei, den für die Navigation betrachteten Raum zu untersuchen. Vergleiche sie mit deinem Hof: Gibt es eine erkennbare Verbindung zwischen Start und Ziel, und wo verläuft die Grenze neben der Wand?

Erstelle zwei Varianten deiner eigenen Szene. Die erste enthält einen breiten Durchgang ohne Dekoration; die zweite erhält einen niedrigen Bogen. Halte fest, welche Variante du tatsächlich geprüft hast. Die Darstellung ist ein Hinweis zur Diagnose. Das Ergebnis der Übung soll jedoch eine beobachtete Ankunft sein, nicht nur ein ansprechendes Editorbild.

Figur und Durchgang aufeinander abstimmen #

Die Agentparameter beeinflussen, ob im vorhandenen Raum ein Weg berechnet werden kann. Die Dokumentation nennt Radius, Höhe und erlaubte Aktionen. Wähle für die Übung eine Figur und feste Parameter. Verändere danach nur die Geometrie: verbreitere den Durchgang oder entferne den Bogen und vergleiche die Ergebnisse.

Erkläre die Wegsuche nicht nach einem erfolglosen Versuch für defekt. Eine konkrete Beobachtung hilft mehr: Mit Bogen wurde der Weg nicht bestätigt, ohne Bogen schon. Wenn du Modell, Durchgangsbreite und Einstellungen gleichzeitig ersetzt, geht der Zusammenhang zwischen Änderung und Ergebnis verloren. Eine Variantentabelle erleichtert die Übergabe an andere Entwickler.

Berechnung und Bewegung trennen #

CreatePath erzeugt das Wegobjekt. ComputeAsync berechnet zwischen Anfang und Ende; das Ergebnis wird über die separate Eigenschaft Status beurteilt. ComputeAsync liefert keine Bestätigung, dass die Figur angekommen ist. Eine erfolgreiche Berechnung erlaubt die weitere Untersuchung des Wegs, beendet aber noch nicht den gesamten Spielablauf.

Führe im Protokoll drei getrennte Zeilen: Berechnung, Fortschritt entlang der Wegpunkte und Ankunft. Angenommen, die Berechnung ist bestätigt, doch die Figur bleibt am Start. Das ist eine andere Frage als ein fehlender Weg. Die Trennung spart Zeit, weil du die beobachtete Stufe untersuchst, statt alle Systeme gleichzeitig zu ändern.

Die Wegpunkte verfolgen #

GetWaypoints liefert die Punkte des berechneten Wegs. Betrachte sie als Bewegungsplan. Markiere in der Übung Start und Ziel mit unterschiedlichen Farben und notiere die aktuelle Bewegungsstufe. Ein berechneter letzter Punkt ist noch kein besuchter Punkt; überprüfe zuerst die entsprechende Aktion der Figur.

Stell dir vor, das Protokoll zeigt den erhaltenen Weg und den ersten erreichten Punkt, während der nächste unerreicht bleibt. Speichere die Position des Stillstands und ein Bild der Szene. Das hilft mehr als die Aussage, die Figur laufe nicht. Kläre außerdem, wer ihre Bewegung steuert. Das offizielle Beispiel steuert eine Spielerfigur und ist nicht automatisch ein vollständiges Server-NPC-System.

Ein Hindernis vor der Figur ergänzen #

Stelle die erfolgreiche Grundvariante wieder her und ergänze eine verschiebbare Kiste. Protokolliere zuerst den offenen Durchgang. Blockiere anschließend einen noch bevorstehenden Abschnitt. Path.Blocked liefert den Index des blockierten Wegpunkts; die Dokumentation unterscheidet Hindernisse vor und hinter dem aktuellen Wegfortschritt.

Plane zwei einzelne Versuche. Im ersten verhindert die Kiste die weitere Bewegung. Im zweiten schließt sie einen bereits durchlaufenen Abschnitt. Erwarte nicht pauschal dieselbe Reaktion. Die Übung untersucht, ob deine Entscheidung den noch relevanten Weg berücksichtigt, statt unterschiedslos auf jede Veränderung im Hof zu reagieren.

ÜbungshofBild in voller Größe öffnen ↗
Eigene Skizze der Übungshofvarianten, kein Bild eines echten Spiels.

Das Verhalten bei Misserfolg festlegen #

Lege für dein Projekt verständlich fest, was ohne gefundenen Weg geschieht: anhalten, eine Entwicklermeldung ausgeben oder nach veränderten Bedingungen begrenzt erneut versuchen. Das ist eine Entwurfsentscheidung und entsteht nicht automatisch durch einen einzelnen API-Aufruf. Vermeide eine endlose Folge neuer Berechnungen bei unveränderten Hindernissen.

Unterscheide im Protokoll bestätigter Weg, unbestätigte Berechnung und Prüfung mit Fehler. Notiere für jeden Zustand den nächsten Schritt. Bleibt der Bogen zu niedrig, bringt ein unveränderter Versuch wenig. Wenn das Ziel ersetzt wurde, prüfe, ob alte Bewegungen und Ereignishandler noch Entscheidungen für den neuen Weg treffen können.

Das Ziel im richtigen Umfeld prüfen #

Bei aktiviertem Streaming können Teile der Welt auf dem Client fehlen. Der Zugriff auf das Zielobjekt verdient daher eine eigene Prüfung. Die Dokumentation erklärt die Sicht des Servers auf die Welt und die Sichtbarkeit von Objekten beim Client. Daraus folgt nicht, jede Aktion pauschal an einen Ort zu verschieben: Kläre zuerst, wo dein System läuft.

Notiere in der Übungskarte, wer die Bewegungslogik ausführt und woher die Zielkoordinaten stammen. Prüfe einen verfügbaren Zielpunkt und einen Fall, in dem seine Daten noch nicht bereitstehen. Ersetze ihn nicht durch einen zufälligen Endpunkt, nur um einen Fehler zu vermeiden. Beschreibe den Wartezustand, ohne eine Ankunft am fehlenden Ziel zu behaupten.

Wegplanung und Türöffnung unterscheiden #

Ein PathfindingModifier mit PassThrough kann die Planung durch ein bestimmtes Hindernis ermöglichen. Dadurch öffnet sich jedoch keine Tür, und die Figur erhält nicht automatisch die physische Möglichkeit, hindurchzugehen. Die Dokumentation nutzt solche Verfahren in komplexeren Abläufen; die benötigte Spielaktion muss weiterhin umgesetzt und geprüft werden.

Lass die Tür im Grundversuch weg. Ergänzt du später eine, notiere zwei Prüfungen: Der Weg wählt die gewünschte Seite, und der Türmechanismus ermöglicht tatsächlich den Durchgang. Eine Weglinie hinter einem geschlossenen Objekt belegt kein Durchqueren. Dieser Grundsatz hilft auch bei Treppen, Booten und anderen besonderen Übergängen.

VarianteFesthalten
Offener HofBerechnung, Fortschritt, Ankunft
Niedriger BogenUnterschied zur Grundszene
Kiste vorneReaktion auf kommenden Abschnitt
Kiste hintenReaktion auf passierten Abschnitt

Ein reproduzierbares Ergebnis übergeben #

Speichere eine kurze Karte mit Szenenname, Figur, Agentparametern, Start- und Zielkoordinaten sowie der einzigen Änderung im letzten Versuch. Ergänze getrennte Beobachtungen zur Berechnung, Bewegung und Ankunft. Füge eigene Bilder des offenen Durchgangs und der problematischen Variante hinzu. Fremde Bilder beweisen deinen Test nicht.

Dieser Text bietet einen Prüfplan und keinen fertigen NPC-Controller. Wir haben deine Szene nicht in Studio ausgeführt oder ihr Verhalten bestätigt. Wiederhole nach der Umsetzung alle kleinen Versuche, einschließlich Kisten vor und hinter der Figur. Übertrage die geprüfte Lösung erst danach auf einen größeren Level mit mehr Figuren, Hindernissen und Zielen.

Ergebnisse des WegsBild in voller Größe öffnen ↗
Eigene Skizze dreier getrennter Ergebnisse. Kein Nachweis eines ausgeführten Tests.
BeobachtungNächste Prüfung
Berechnung unbestätigtGeometrie und Parameter
Weg vorhanden, keine BewegungBewegungssteuerung und Stufen
Auf dem Weg angehaltenPunkt und Szenenänderung
Ziel ersetztAlter Weg und Ereignishandler

Originalquellen

Roblox Creator Hub — Pathfinding
Roblox Creator Hub — Path API