Mittwoch, 22. Februar 2012

Pathfinding im Beta Grid

Am letzten Donnerstag hat Linden Lab in seinem Blog den Beta Start für die neuen Wegfindungsfunktionen (englisch "Pathfinding") bekannt gegeben. Dazu gab es ein Video und einen Link zur neuen Wiki-Seite, auf der die bis jetzt zur Verfügung stehenden Funktionen zusammengefasst sind.

So richtig habe ich mich damit noch nicht beschäftigt, aber ich war am Montag mal kurz auf den vier Test-Regionen im Beta Grid, die diese neuen Funktionen bereits unterstützen. Dort wuseln einige Prims durch die Gegend und vor allem die Schachbrett-Sandbox ist ganz witzig und hat den Charakter eines echten Testgeländes.

Beta Sandbox "PathTest4"

Gestern habe ich dann mal 2 von den 11 verschiedenen Skriptfunktionen ausprobiert. Einmal llPursue, was ein Objekt dazu bringt, einem anderen Objekt oder Avatar zu folgen. Und zum anderen llEvade, was genau das Gegenteil bewirkt, nämlich vor einem Objekt oder Avatar davonlaufen.

Vor allem die "Flucht"-Funktion verleiht einem stinknormalen Prim den Anschein echter Intelligenz. Da das Ganze auf Fotos nicht richtig rüberkommt, habe ich ein kleines Video erstellt. Darin sieht man ganz gut, wie kinderleicht es ist, die Grundfunktionen des Pathfinding einfach in ein Skriptfenster zu kopieren und es selbst mal zu testen. Unter dem Video habe ich die beiden kleinen Skripte eingefügt, die ich verwendet habe. Wie man sieht, wird für diese Funktion wirklich wenig Code benötigt. Und bitte keine Kommentare zur Kameraführung. Das war eine 10-Minuten Spontanaktion (mit einer Stunde Nacharbeit im Movie Maker). :o)

Maddy und die Pfadfinder:


>> Hier klicken für HD-Auflösung im neuem Fenster

Für alle, denen es im Video zu schnell geht, hier die Schritte als Kurzliste:
  • Voraussetzung ist ein Login im Beta Grid (in Gridliste unter "Aditi" geführt)
  • Würfel (oder anderes Prim) rezzen
  • Unter "Eigenschaften" die "Art der physischen Form" auf "Konvexe Hülle" umstellen
  • Unter "Inhalt" ein neues Skript erstellen
  • Skript öffnen, vorgegebenen Code löschen und Beispielskript einfügen (siehe unten)
  • Skript speichern
  • Optional: Eindeutigen Namen für das Prim vergeben
  • Optional: Textur und Farbe des Prims ändern, weil Plywood ist langweilig ;-)
  • Baufenster schließen
  • Einmal das bearbeitete Prim anklicken

Mit diesem Skript lässt sich ein Objekt dazu bringen, dem Avatar zu folgen, der es anklickt.

default
{
    state_entry()
    {
        llCreateCharacter([CHARACTER_DESIRED_SPEED, 20.0]);
    }
 
    touch_start(integer total_number)
    {
        llPursue(llDetectedKey(0), [PURSUIT_OFFSET, 
                 <-2.0, 0.0, 0.0>, PURSUIT_FUZZ_FACTOR, 0.2]);
    }
}

Quelle: LL Wiki - llPursue

Mit diesem Skript lässt sich ein Objekt dazu bringen, sich vor dem Avatar zu verstecken, der es anklickt.

default
{
    state_entry()
    {
        llCreateCharacter([CHARACTER_DESIRED_SPEED, 20.0]);
    }
 
    touch_start(integer total_number)
    {
        llEvade(llDetectedKey(0), []);
    }
}

Quelle: LL Wiki - llEvade

Das sind die vier Testregionen im Beta Grid (Link erst anklicken, wenn man mit dem Viewer bereits eingeloggt ist):

>> Teleport zur Sandbox PathTest1
>> Teleport zur Sandbox PathTest2
>> Teleport zur Sandbox PathTest3
>> Teleport zur Sandbox PathTest4

Die Sandbox mit dem Schachbrettmuster ist die PathTest4. Ich werde mir, wenn ich Zeit habe, auch noch ein paar der anderen Pathfinding Funktionen ansehen. Interessant wird es, wenn man dann mit etwas Code die verschiedenen Möglichkeiten kombiniert. Dann könnte man, je nach Koordinate innerhalb einer Region, das selbe Objekt entweder angreifen oder davonlaufen lassen. Oder ein patrouillierendes Objekt ergreift bei Annäherung zuerst die Flucht, um dann überraschend zurückzukehren.

Es bleibt auf jeden Fall interessant, was intelligente Ersteller damit alles machen werden.

Weitere Links:
>> LL-Wiki: Pathfinding in Second Life - (englisch)
>> LL-Wiki: Pathfinding Alpha - (generelle Information / englisch)
>> Blogpost von LL zur Einführung von Pathfinding

1 Kommentar:

  1. Hast recht Maddy,besonders der "Wegläufer" ist irgendwie knuffig^^
    Danke für die ausführliche Doku :-)

    Lieben Gruß
    Dorena

    AntwortenLöschen