Registerkarten

SimtippViewerServerKunstLL-BlogVideosVehikelAnleitungARC
Posts mit dem Label FAQ werden angezeigt. Alle Posts anzeigen
Posts mit dem Label FAQ werden angezeigt. Alle Posts anzeigen

Dienstag, 25. September 2012

Pathfinding FAQ von Lorca Linden

Quelle: SL Brand Center
Am 18. September hatte Lorca Linden im LL-Forum mit seinem ersten (und bisher einzigen) Beitrag eine längere FAQ zum Thema Pathfinding gepostet. Es steht zwar nicht wirklich viel Neues drin, aber es sind ein paar ganz spezifische Tipps enthalten, die vielleicht jemand gut gebrauchen kann. Ich poste das erst heute, weil ich mir mit der Übersetzung keinen Stress gemacht habe, sondern jeden Tag nur zwei bis drei Abschnitte angegangen bin.^^

Am 20. September wurde auch der offizielle Second Life Viewer 3.4.0 veröffentlicht, der in dieser Version die volle Pathfinding-Unterstützung erhalten hat. Vorher war dies nur im Beta- und Development-Viewer zu finden. Dadurch sind die Tipps aus der FAQ nun von allen nachvollziehbar, die mit diesem Viewer in Second Life einloggen. Bei vielen TPVs geht das auch, jedoch steht dort noch nicht das View/Test-Fenster zur Verfügung, mit dem das Navmesh grafisch angezeigt werden kann.

Hier nun die Übersetzung:


Pathfinding FAQ
von Lorca Linden am 18.09.2012 um 4:05pm
- Forenübersetzung -

Wir möchten uns bei allen bedanken, die an der Pathfinding Beta teilgenommen haben und bei denen, die damit begonnen haben, Objekte und Charaktere mit Pathfinding-Funktionen zu erstellen, nachdem der Pathfinding-Servercode gridweit eingeführt wurde. Wir haben Fragen gesammelt und werden auf viele davon hier eingehen. Rückmeldungen sind weiterhin sehr willkommen!

F: Wird Pathfinding starken Lag auf meiner Region / Parzelle verursachen?
A: Nein. Für den überwiegenden Teil der Pathfinding Beta war dies eine berechtigte Sorge bei Mainland Regionen und allen Regionen, bei denen die Second Life Nutzer die Pathfinding-Grundstücke mit ihren Linksets nicht aktualisiert hatten, um sie auf "Static" umzustellen. Dies wird manchmal auch als "Pemanent" bezeichnet, was bedeutet, dass die Linkset-Nutzung auf "Walkable", "Static Obstacle", "Exclusion Volume" oder "Material Phantom" gestellt wurde.

Das Aktualisieren eurer Linksets kann dennoch die Performance verbessern und es ist notwendig, um ein optimales Verhalten von Pathfinding-Kreaturen auf eurer Region zu erreichen. Die schlechtmöglichste Performance wird nun an einem bestimmten Punkt so gekappt, dass man in den meisten Regionen keinen Performance-Unterschied nach dem Einschalten von Pathfinding bemerken wird. Bei einer Fullprim Region werden durchschnittlich nicht mehr als 4ms/Frame für das Aktualisieren des Navmesh benötigt, um die Änderungen für "Movable Obstacles" (dem Standard für Prims) für jeden Frame zu berechnen.

Auf Homestead Regionen wird bereits ab 1ms/Frame gekappt. Verminderte Performance sollte nur in Regionen wahrgenommen werden, auf denen (a) die Performance schon vorher schlecht war (das heißt, die freie CPU-Zeit war bereits kleiner als 4ms auf einer Fullprim Region oder kleiner 1ms auf einer Homestead), und (b) keine Linksets auf Static umgestellt wurden.

F: Wird das Aktualisieren einer Umgebung für Pathfinding viel Zeit in Anspruch nehmen?
A: In den meisten Fällen sollte es relativ einfach sein, eine bestehende Umgebung umzustellen, damit sie mit Pathfinding funktioniert. Wir haben das neue "Linksets"-Fenster für Pathfinding so gestaltet, dass ihr Gruppen von Objekten auswählen und ihre Pathfinding-Eigenschaften in einem Schritt ändern könnt. Wir haben ebenfalls ein neues Simulator-Konsolenkommando bereitgestellt (die Simulator-Konsole kann mit Strg+Umschalt+ö geöffnet werden), die es Einwohnern erlaubt, alle Linksets (oder auch nur die nicht geskripteten Objekte) auf ihrer Parzelle (oder einer Parzelle im Gruppenbesitz) entweder auf Walkable oder Static Obstacle zu setzen.

Estate Manager können die Konsole benutzen, um alle Linksets auf einer Region zu ändern. Man benötigt auch keine Mod-Rechte für ein Linkset, um dessen Pathfinding-Eigenschaften zu verändern. Sie können von jedem geändert werden, der (a) Eigentümer des Objektes ist, (b) Mod-Rechte für das Objekt hat, oder (c) Eigentümer der Parzelle oder Region ist, auf der sich das Objekt befindet. (Achtet darauf, dass man bei Änderungen für Objekte die nicht in eurem Besitz sind und für die man keine Mod-Rechte hat, aber die sich auf eurer Parzelle befinden, das Konsolen-Kommando verwenden muss und das Linkset-Fenster hier nicht funktioniert). Weitere Informationen über das Pathfinding Tool für Mehrfachktualisierungen könnt ihr hier nachlesen.

F: Wann werden die Pathfinding Tools im SL Viewer veröffentlicht und woher bekomme ich eine Beta-Version der Viewer-Tools?
A: Wir erwarten, dass wir die Pathfinding Tools bis Ende September in den Hauptviewer integriert haben! Bis dahin könnt ihr Zugang zu den Tools durch den Download des neuesten Beta Viewers erhalten - das ist sehr hilfreich für alle, die Pathfinding freundliche Umgebungen bauen oder nachbearbeiten wollen. Anm.: Wie oben schon angesprochen, hat inzwischen auch der SL-Viewer die Pathfinding-Tools.

F: Kann ich meine Objekte bewegen, nachdem ich sie einmal auf Static umgestellt habe?
A: Wenn ihr ein Linkset bewegt oder verändert, das auf Static gesetzt wurde, wird das Navmesh auf "unsauber" gesetzt und euch wird ein Button angezeigt, mit dem ihr ein "Rebake" ausführen könnt, was eine Aktualisierung unter Beachtung eurer Änderungen durchführt. Dabei gibt es zwei Einschränkungen: (1) Ihr könnt ein Static Linkset nicht ändern, wenn ihr nicht in der gleichen Region seid, wie das Rootprim und (2) Skripten in statischen Objekten ist es nicht erlaubt, Objekte in einer Weise zu verändern, die das Navmesh unsauber werden lassen (z.B. Verlinkung oder Aufheben der Verlinkung von Prims, Veränderung der Form, oder transformieren aller Prims, die nicht auf die physikalische Form "Keine" gesetzt sind.) Wenn ihr euch fragt, wie ihr die Türen von eurem Haus unter Pathfinding zum Funktionieren bringt, dann seht euch die nächste Frage an.

F: Wie kann ich Pathfinding für mein Haus aktivieren, dass eine geskriptete Tür eingebaut hat?
A: Wegen der Regel, die es Skripten in einem Walkable Objekt (wie z.B. einem Haus) nicht erlaubt, das Linkset auf eine Weise zu verändern, die das Navmesh ungültig werden lässt (z.B. durch Änderung der physischen Form beim Öffnen der Tür), ist es notwendig, Häuser und ähnliche Linksets etwas anders zu gestalten.

Anstatt die Tür mit dem Skript zum Öffnen und Schließen als Teil in einem Linkset zu verwenden, sollte das Linkset stattdessen die Tür aus seinem Inventar als separates Objekt "heraus rezzen". So kann die Tür mit einem Skript versehen werden, das llSetKeyframedMotion zum Schwingen oder Verschieben nutzt. Damit wird es Pathfinding Objekten ermöglicht, sauber auf die Tür zu reagieren und gleichzeitig den aufwendigen Vorgang einer Neuberechnung des Navmesh zu vermeiden. In Kürze planen wir Beispiele für diese Bauweise zu erstellen, und sie gemeinsam mit einer Anleitung für einfaches Umgestalten eines bestehenden Hauses in Bezug auf Pathfinding zur Verfügung zu stellen.

F: Warum ist das Bearbeiten des Landbodens jetzt anders als früher?
A: Aus Gründen der Performance, erzeugen wir den Landboden für Kollisionsberechnungen auf dem Server nicht länger als Heightfield (das ist so etwas wie eine topografische Karte). Stattdessen verwenden wir ein "gebogenes Mesh". Kollisionen werden damit sehr viel effizienter auf den meisten Untergründen berechnet, aber das Aktualisieren des Mesh (bei Änderungen) dauert viel länger.

Um dem Rechnung zu tragen, gibt es nun eine Änderungsverzögerung von etwa 30 Sekunden, nachdem man mit dem Bearbeiten des Landbodens aufgehört hat und bevor damit begonnen wird, das Mesh neu aufzubauen (was dann nochmal ein bis zwei Minuten dauern kann). Bis das Mesh komplett aktualisiert wurde, werden Objekte und Avatare nicht sauber mit dem Mesh kollidieren und man wird eventuell Fehler bemerken, wie Avatare, die auf und ab hüpfen, wenn sie auf dem bearbeiteten Mesh des Landbodens laufen.

F: Was bedeuten die Prozentzahlen, die im Linkset-Fenster angezeigt werden? (Beachtet, dass die Mehrheit der Nutzer sich nie um diese erweiterten Funktionen kümmern müssen).
A: Diese Zahlen sind die Begehbarkeits-Koeffizienten des Linksets für jeden Charakter-Typ. Das ist wahrscheinlich die umfangreichste, komplexeste und am wenigsten intuitive Funktion von Pathfinding.

Angenommen, ihr habt etwas gebaut, das für Tiere und menschliche NPCs vorgesehen ist. Der Aufbau enthält ein Netzwerk von Straßen und etwas Graslandschaft. Für die meiste Zeit wollt ihr, dass die Tiere auf dem Gras und die Menschen auf den Straßen bleiben. Wenn nun aber ein menschlicher NPC versucht, von Punkt A nach Punkt B zu kommen und die Straße wäre 100x länger (weil sie sehr kurvenreich ist), als der direkte Weg über das Gras, dann wollt ihr vielleicht, dass sie dann den direkten Weg nehmen. Dies ist genau das, wofür Begehbarkeits-Koeffizienten und Charakter-Typen gedacht sind.

Um das anzuwenden, sollte man die menschlichen NPCs so skripten, dass sie CHARACTER_TYPE_A und die Tiere CHARACTER_TYPE_B verwenden. Dann kann man das Linksets-Fenster öffnen und den Begehbarkeits-Koeffizienten für das Gelände auf "A=1%, B=100%" einstellen. Das bedeutet, dass Pathfinding-Charaktere, die den CHARACTER_TYPE_A verwenden, sich 100x langsamer auf dem Gelände bewegen (und Wege bevorzugen, die dieses Gelände vermeiden, außer sie sind wesentlich länger), während Kreaturen, die den CHARACTER_TYPE_B verwenden, sich mit voller Geschwindigkeit auf dem Gelände bewegen können. Anschließend wählt man alle Straßen im Linksets-Fenster aus und stellt sie auf "A=100%, B=0%". Das bewirkt, dass Charaktere die CHARACTER_TYPE_A verwenden, sich mit voller Geschwindigkeit auf den Straßen bewegen, während Kreaturen mit CHARACTER_TYPE_B diese Straßen unter allen Umständen vermeiden werden.

Beachtet bitte, dass zur Vermeidung von Unstimmigkeiten ein Pathfinding-Charakter, der sich in einem Bereich wiederfindet, der Null Begehbarkeit für dessen CHARACTER_TYPE verwendet, sich mit voller Geschwindigkeit bewegen kann, um von dort flüchten zu können. Das kann passieren, wenn der Charakter durch Kollissionen in einen solchen Bereich gestoßen wird, oder durch seine Bewegungseinstellungen dazu gezwungen wird, sich dort hinein zu bewegen (z.B. durch einen Bewegungsradius).

F: Welchen Charakter-Typ sollte ich als Hersteller verwenden, wenn ich ein Haustier erstellen möchte (oder einen Fisch, oder ein KI-Auto)?
A: Um das Zusammenspiel zwischen Linksets und Charakteren zu unterstützen, empfehlen wir folgende Charakter, die für den allgemeinen Gebrauch vorgesehen sind.
  • Menschen / menschenähnlich: CHARACTER_TYPE_A
  • Wilde Tiere / Geländefahrzeuge: CHARACTER_TYPE_B
  • Straßenfahrzeuge: CHARACTER_TYPE_C
  • Sonstiges: CHARACTER_TYPE_D
Achtet darauf, dass das entscheidende Merkmal nicht der gewählte Charakter ist, sondern die Oberflächen, auf denen sie sich bevorzugt bewegen sollen - und wie schnell sie dabei sind. Zum Beispiel könnte man ein reitbares Pferd als Haustier ansehen, aber es ist wahrscheinlich besser, es als wildes Tier/Geländefahrzeug einzustufen, so dass es nicht versuchen wird, in die Häuser seiner Besitzer zu laufen. Ähnliches gilt, wenn ihr vorgefertigte Straßenbauelemente verkauft. Dann werdet ihr es wahrscheinlich bevorzugen, wenn diese einen hohen Begehbarkeit-Koeffizienten für die Typen A und C haben und einen niedrigen Koeffizienten für Typ B.

F: Was kann ich mit dem View/Test Fenster machen, wenn ich kein Pathfinding verwende?
A: Die Ansichten, die im View/Test Fenster zur Verfügung stehen, sind nicht nur nützlich für Pathfinding. Wenn ihr Walkables, Static Obstacles, Material Volumes und Exclusion Volumes betrachtet (aber nicht "Moveable Obstacles"), dann erhaltet ihr einen Einblick in die Physik-Engine. Dies ist derzeit die einzige verfügbare Methode in einem Second Life Viewer, mit der Second Life-Nutzer die realen physischen Darstellungen ihrer Objekte sehen können, was ein nützliches Werkzeug für die Optimierung der Physik eurer Region sein kann.

Wenn ihr euch zum Beispiel fragt, wie der Simulator ein Fahrzeug oder eine seltsame Sculpty-Wiese "sieht", die ihr gebaut habt, dann versucht dieses Linkset vorrübergehend in das Navmesh aufzunehmen, ein Re-Baking auszuführen und es anzusehen. Wir hoffen, dies in Zukunft noch mehr zu einer Funktion auszubauen.

Es gibt auch eine Einschränkung, die es zu beachten gilt: Die Visualisierung von Pathfinding berücksichtigt nicht den konvexen Radius eines Objektes, der intern als zusätzliches Toleranzelement bei Kollissionen verwendet wird. Aus diesem Grund können bestimmte Linksets etwas kleiner im Viewer erscheinen, als sie in der Engine sind.

Wir haben auch eine praktische Funktion in die Pathfinding Tools aufgenommen, mit der ihr direkt zu Objekten teleportieren könnt, für die ihr die Änderungsrechte habt.

Quelle: [LL Forum] - Pathfinding FAQ

Weitere Informationen (wenn auch schon etwas älter), hatte ich bereits zum Start von Pathfinding hier im Blog mal zusammengefasst. Das findet man unter folgendem Link:
>> Pathfinding ab heute im kompletten Main Grid von SL

Mittwoch, 8. August 2012

Pathfinding ab heute im kompletten Main Grid von SL

Eigentlich wollte ich zur Einführung von Pathfinding keinen eigenen Blogpost schreiben. Mein Land in SL ist einfach zu klein, um darauf etwas Sinnvolles mit den neuen Funktionen zu machen. Deshalb spiele ich nur ein bisschen damit rum und stelle nach und nach meine Objekte auf eine für mich logische PF-Eigenschaft um. Könnte ja sein, dass ein anderer Bewohner auf meiner Region einen automatischen Charakter erstellt und losschickt.

Der Grund, jetzt doch einen Blogpost zu schreiben, liegt an einigen übertrieben besorgten Meldungen, die im Bildzeitungsstil die Leute verunsichern. Der Ursprung ist ein Artikel aus dem Phoenix/Firestorm Blog, der durch weitere Interpretationen zu einigen Falschinformationen geführt hat. Nachdem ich nun gestern verschiedene Fragen per IM erhalten habe, schreibe ich mal meine Sicht der Dinge hier auf.

Ich bin zwar auch kein Experte was Pathfinding angeht, aber ich versuche alle Informationen in kleinen Kapiteln zusammenzutragen, die mir bisher zum Thema bekannt sind.


Pathfinding im ganzen SL Main Grid
Gestern, am 7. August, wurde Pathfinding auf die Hauptkanal-Regionen im Main Grid aufgespielt. Heute, zwischen 16 und 20 Uhr MESZ, folgen dann die restlichen Regionen in SL. Danach sollten alle Probleme, die im Zusammenhang von Regionswechseln mit getragenen Mesh-Attachments stehen, behoben sein. Denn dann laufen alle Regionen auf der neueren Havok 7.1 Physikengine.

Pathfinding und die Sim-Performance
Nachdem Pathfinding auf eine Region aufgespielt wurde, sind die neuen Skriptfunktionen, das dynamische Pathfinding (Navmesh und Region Rebaking) und die neue Physikengine aktiv. Solange dann keine geskripteten Charaktere das dynamische Pathfinding nutzen, sollte es auf der Region auch keine Änderung in der Performance geben.

Die Aussage: "Sobald Pathfinding auf der eigenen Region aktiv ist, wird es die Simleistung beeinflussen" ist Quatsch, was inzwischen genügend Leute bestätigen konnten, inklusive mir. Sollte dennoch jemand der Meinung sein, dass es einen Einfluss auf die Performance gibt, dann ist es auch möglich, das dynamische Pathfinding für die Region komplett abzuschalten. Die PF-Skriptfunktionen und die neue Physikengine bleiben dann allerdings weiter aktiv.

Dynamisches Pathfinding für eine Region abschalten
Dies kann nur vom Besitzer einer Region oder einer Person mit Estate Manager Rechten durchgeführt werden. Da im Phoenix Blog nur die hauseigenen Viewer beschrieben werden, beziehe ich mich hier auf den SL Beta Viewer 3.4.0 von LL, denn so wird es dann auch im offiziellen Viewer zu finden sein.
  1. Sollte das Entwickler-Menü noch nicht geöffnet sein, dann dies mit Strg + Umschalt + Q erledigen (engl. "Development"-Menü).
  2. Die Debug Konsole öffnen unter > Entwickler > UI > Regions-Debug-Konsole.
  3. In das Konsolen Fenster nun set dynamic_pathfinding false eingeben und Return drücken.
  4. Die Region neu starten.

Dieser Vorgang kann auch wieder umgekehrt werden, indem man oben bei Schritt Nr. 3
set dynamic_pathfinding true eingibt.

Konsole zum Abschalten des Pathfinding öffnen (Klick für großes Bild)

Pathfinding und Objekteintritt
Möchte man nur auf einer Parzelle die Pathfinding Charaktere blockieren, ohne dafür die ganze Region zu deaktivieren, dann kann man in der Land-Info unter "Optionen" den Objekteintritt für die Parzelle deaktivieren. Damit wird das Navmesh an den Rändern der Parzelle unterbrochen und es können sich keine Charaktere in die Parzelle hineinbewegen. Es gibt dazu zwar noch einen Bugreport in der Jira, aber der wird früher oder später auch behoben sein.


Das Characters-Fenster (Klick für großes Bild)
Pathfinding und die Optimierung
Jeder, der Baurechte und ein paar eigene Prims auf einer Region oder Parzelle hat, kann Pathfinding Charaktere erzeugen, Linksets ändern und das Navmesh neu berechnen. Dementsprechend kann auch jeder seine eigenen Prims optimieren. Die notwendigen Pathfinding Tools dazu, sind im Viewer-Menü unter 
> Bauen > Pathfinding zu finden.

Das View/Test-Fenster
Es gibt drei Hauptfenster mit den folgenden Funktionen:
  • Linksets: Hier können die Eigenschaften aller eigenen Objekte einer Region oder Parzelle an die Erfordernisse für Pathfinding Charaktere angepasst werden. Dieses Fenster ist das Hauptwerkzeug in Verbindung mit dem Vorhaben "Optimieren einer Region".
  • Characters: Hier werden alle Pathfinding Charaktere angezeigt, die sich auf der Region oder Parzelle befinden. Damit hat man einen Überblick zur Anzahl der Charaktere, sowie über deren Verbrauch an Skriptzeiten. Bei maximal 4ms gesamter Skriptzeit, werden Pathfinding Berechnungen übersprungen, um die Skriptzeit nicht weiter ansteigen zu lassen. Allerdings sollte man als Vergleich auch die angezeigte Skriptzeit in der Viewer-Statistik heranziehen (Strg+Umschalt+1), denn die Charakter CPU Zeiten sind Spitzenwerte, die nicht permanent verbraucht werden.
  • View / Test: Damit kann man das Terrain (Simboden) und alle Objekte darauf, entsprechend ihrer Funktion beim Pathfinding, eingefärbt anzeigen lassen. Über Checkboxen lassen sich die unterschiedlichen Eigenschaften auswählen So erhält man einen schnellen Überblick darüber, welche Flächen begehbar sind (Navmesh) und welche Objekte welche Eigenschaft für die Charaktere haben.

Das Linksets-Fenster (Klick für großes Bild)
Optimierung:
Bei meiner Parzelle wurde meinen Prims automatisch nach der Aufspielung von Pathfinding unterschiedliche Eigenschaften zugewiesen. Zum Beispiel wurden alle Prims oder Linksets, die ein Skript enthalten haben, auf "Movable Obstacle" gesetzt. Da dies aber völlig überbestimmt ist, sollte man hier mit der Optimierung beginnen.

Um nun eine Region oder Parzelle zu optimieren, kann man vielen Objekten eine neue Eigenschaft zuweisen, sofern es Sinn macht. Da die Pathfinding Tools noch nicht in die deutsche Sprache übersetzt wurden, haben diese Eigenschaften noch englische Bezeichnungen.

Mögliche Eigenschaften von Objekten:
  • Walkable - Dies weist man Objekten zu, auf denen sich Charaktere fortbewegen sollen. Der Simboden ist standardmäßig auf Walkable, bei Prims muss man das manuell vornehmen (z.B. den Boden von Häusern oder die Lauffläche auf Brücken). Die Kombination aus Simboden und Walkable Objekten ergibt dann das begehbare Navmesh.
  • Static Obstacle - Das kann man allen Objekten zuweisen, die sich nicht bewegen und die für Charaktere ein Hinderniss darstellen sollen. Das kann man z.B. Hauswänden, Möbeln, Parkbänken, Laternen, usw. zuweisen. Im Grunde allem, was sich nicht irgendwie bewegt. Mit der Umstellung von Movable Obstacle auf Static Obstacle, kann man sein Land schon ein gutes Stück optimieren.
  • Movable Obstacle - Dies weist man nur Objekten zu, die ein Hindernis für Charaktere darstellen sollen und die sich zusätzlich bewegen. Das können Türen in einem Haus sein, oder ein Vehikel, das auf dem Grundstück steht, oder ein geskriptetes Tier (z.B. ein Breedable). Hier sollte man darauf achten, dass wirklich nur Objekte, die sich auch bewegen, auf Movable Obstacle stehen.
  • Movable Phantom - Diese Eigenschaft haben alle Objekte automatisch erhalten, die schon vor Pathfinding auf Phantom gesetzt waren (z.B. Bäume oder Wasser in einem Pool). Objekte unter Movable Phantom haben keinen Effekt auf Pathfinding Charaktere und sind neben der Eigenschaft "Static Obstacle" die zweite Einstellung, die man zum Optimieren der Landperformance anwenden sollte. Das "Phantom" in der Bezeichnung bedeutet in diesem Fall nicht, dass das Objekt für Avatare Phantom ist, sondern nur für die PF-Charaktere. Das heißt, auch eine Straße kann Moveable Phantom sein und man kann trotzdem mit einem Vehikel darauf fahren.
  • Material Volume - Dies ist nur eine Hilfseigenschaft, um die Bewegung von Charakteren zu beeinflussen. Man kann damit zum Beispiel in hohem Gras ein durchsichtiges Phantomprim platzieren und einen langsamen Bewegungskoeffizient dafür vergeben. Dann werden Charaktere langsamer, sobald sie in das hohe Gras laufen und mit dem Phantomprim kollidieren. Für normale Prims auf dem Land ist diese Eigenschaft eher unwichtig.
  • Exclusion Volume - Diese Eigenschaft kann man ebenfalls einem durchsichtigen Phantomprim geben. Der Raum, der von diesem Prim eingenommen wird, ist für Pathfinding Charaktere tabu, das heißt, dorthin können sie sich nicht bewegen.

Pathfinding und geskriptete Objekte:
Beim Umstellen von Objekten mit Skripten auf "Static Obstacle" sollte man vorsichtig sein. Wenn durch das Skript das Objekt bewegt, gedreht oder in seiner Größe verändert wird, dann kommt es häufig zu Skriptfehler Meldungen. Statische Objekte schneiden bildlich gesehen ein Loch in das Navmesh, auf dem sich die Charaktere bewegen. Damit können diese dann nicht über oder durch diese Objekte laufen. Versucht nun ein Skript, die Form oder Position dieser Objekte zu ändern, wird das vom Pathfinding Code verhindert, da sonst das schon berechnete Navmesh fehlerhaft sein würde. Objekte, die in diesem Fall eine Fehlermeldung ausgeben, sollten deshalb auf "Moveable Obstacle" oder "Phantom Obstacle" umgestellt werden.

Pathfinding-Optimierungsschritte
Zum Optimieren öffnet man das Linksets-Fenster im Viewer. Steht man auf seinem eigenen Land, erhält man eine Liste mit allen Objekten, die vom Pathfinding erfasst werden. Von links nach rechts findet man die folgenden Spalten in der Anzeige:
  • Name - Name des Objekts
  • Description - Inhalt des Beschreibungsfeldes des Objekts
  • Owner - Besitzer des Objekts
  • Impact - Anzahl der verbrauchten Prims für das Land (Land Impact)
  • Distance - Entfernung des Objekts vom Avatar
  • Linkset use - Eigenschaft des Objekts für Pathfinding-Charakter
  • A% bis D% - Bewegungskoeffizient für die verschiedenen Charaktertypen

Wie ich im vorherigen Abschnitt schon beschrieben habe, sollte man sich vor allem die Objekte ansehen, die auf Moveable Obstacle stehen. Dazu am besten die Liste nach dieser Eigenschaft sortieren, indem man einmal auf die Registerkarte "Linkset use" klickt. Wo immer es Sinn macht, sollte man Moveable Obstacle auf Static Obstacle oder Moveable Phantom umstellen.

Die Schritte zum Ändern einer Eingenschaft sind:
  1. Eintrag in Liste auswählen.
  2. Ganz links unten im Fenster die gewünschte Eigenschaft unter "Choose linkset use..." auswählen.
  3. Ganz rechts unten im Fenster auf "Apply changes" klicken. Das muss nach jeder einzelnen Änderung einer Eigenschaft gemacht werden, bevor man den nächsten Eintrag aus der Liste auswählt. Allerdings kann man auch mehrere Einträge gleichzeitig ändern. Wichtig ist nur, immer mit Apply changes das Ganze auch abzuschließen.
  4. Nun sollte eine Meldung erscheinen, die darüber informiert, dass das Navmesh nach dieser Änderung nicht mehr aktuell ist.
  5. Um das Navmesh zu aktualisieren, muss man am unteren Fensterrand des Viewers auf den "Rebake Region"-Button klicken. Dieser Button ist dort zu finden, wo sonst auch der "Aufstehen"-Button erscheint, wenn der Avatar irgendwo sitzt.

Hier kann man die drei Pathfinding Funktionsfenster öffnen
Wenn man in mehreren Durchläufen umstellen will, sollte man nicht nach jedem einzelnen Vorgang ein Rebake Region durchführen, denn das zieht die Region-FPS kurzzeitig nach unten. Macht man das zu oft hintereinander, könnten sich andere Bewohner oder Besucher auf der Region genervt fühlen. Also am besten, alle Änderungen vornehmen, die man machen möchte und dann erst Rebaken.

Sobald man auf  "Rebake Region" klickt, wird der Button halb durchsichtig. Solange er noch in diesem Zustand zu sehen ist, wird das Navmesh im Hintergrund berechnet. In dieser Zeit sollte man keine weiteren Änderungen an Linksets durchführen oder neue Charaktere rezzen/erstellen.

Pathfinding Optimierungsbeispiel
Ein klassisches Beispiel zur Optimierung wäre ein Haus mit Einrichtungsgegenständen. Häuser können nur optimiert werden, wenn sie Modify, also änderbar sind. Vor der Änderung sollte man die Verlinkung des Hauses aufheben, aber alle Prims ausgewählt lassen. Dann die Strg-Taste gedrückt halten und den Fussboden, sowie die Tür-Prims abwählen und anschließend den Rest des Hauses wieder verlinken.

Nun vergibt man die folgenden Eigenschaften:
  • Fussboden: Walkable
  • Tür: Moveable Obstacle
  • Wände, Treppen und Einrichtung: Static Obstacle
  • Hat man ein Kaminfeuer: Moveable Phantom

Pathfinding und Viewer
Das Ein- und Ausschalten von Regionen, sowie das Erstellen von Pathfinding Charakteren (Skripte) kann man in jedem Viewer durchführen. Die Pathfinding Tools mit den verschiedenen Fenstern, stehen allerdings bisher in nur wenigen Viewern zur Verfügung.

Diese sind (Stand 14. August 2012):

Pathfinding und die Skripte
Die Charaktere, von denen ich immer spreche, sind 3D-Objekte, die mit den neuen Pathfinding Skriptfunktionen verschiedene Bewegungen oder Handlungen auf Regionen ausführen können. Diese Objekte können aus Prims, Sculpties oder Meshes gebaut sein. Bewegen können sie sich nur auf Simboden (SL-Land) oder auf Prims, denen die Eigenschaft "Walkable" zugewiesen wurde. Die Kombination aus Simboden und Walkable Prims nennt man "Navmesh". Auf Wasser können sich Charaktere nicht bewegen, da es dort schlicht kein Navmesh gibt.

Hier eine Liste der bisher verfügbaren Charakterfunktionen. Unter dem Link der jeweiligen Funktion findet man immer am Ende der Seite ein Beispielskript, das man zum Testen verwenden kann.
  • llEvade - Damit versucht ein Charakter, sich vor einem Avatar oder einem anderen Objekt zu verstecken.
  • llFleeFrom - Damit hält ein Charakter eine bestimmten Abstand zu einem bestimmten Punkt ein. (Achtung! Hier fehlt beim Beispielskript das llCreateCharacter nach dem state_entry(). Am besten diese Zeile von einem anderen Skript reinkopieren).
  • llNavigateTo - Gibt einem Charakter vor, sich zu einem bestimmten Punkt innerhalb der Region oder in angrenzenden Regionen zu bewegen. (Achtung! Hier ist die Charaktergeschwindigkeit im Beispielskript zu hoch. Ich empfehle generell eine Geschwindigkeit von ca. 15).
  • llPatrolPoints - Hiermit lassen sich verschiedene Koordinatenpunkte bestimmen, zwischen denen der Charakter patroulliert, also quasi Wache schiebt.
  • llPursue - Mit dieser Funktion verfolgt ein Charakter einen Avatar oder ein anderes Objekt.
  • llWanderWithin - Damit bewegt sich ein Charakter innerhalb einer Kreisfläche um einen bestimmten Mittelpunkt herum.

Es gibt auch noch weitere LSL-Befehle, die direkt mit Pathfinding zu tun haben, aber nicht direkt einen Charakter steuern. Alle LSL-Befehle sind auf der folgenden Wiki-Seite zu finden:
>> Pathfinding LSL functions

Pathfinding und Charaktertypen
Es gibt vier verschiedene Charaktertypen, die mit A, B, C und D gekennzeichnet sind. Als Beispielanwendung wurde in der Wiki diese vorläufige Zuweisung gegeben:
  • A = Mensch
  • B = Kreatur
  • C = Roboter
  • D = Andere
Jedem der Charaktere kann man einen anderen Bewegungskoeffizienten zuweisen. 100% bedeutet dabei keine Einschränkung, bei 50% wird der Charakter um die Hälfte abgebremst, usw. Damit ist es möglich, in "schwierigem" Gelände einen Charakter so zu verlangsamen, dass es realistisch wirkt. Eine sinnvolle Anwendung wird aber wohl erst ersichtlich, wenn man einige Charaktere in Aktion beobachtet hat und der Meinung ist, hier oder da sollten sie sich langsamer bewegen.

Charakter Land Impact:
Ein Pathfinding Charakter, der über eines der Charakter-Skripte erzeugt wurde, belegt mindestens 15 Prims Land Impact. Dabei ist es egal, ob der Charakter nur aus einem Prim besteht, oder tatsächlich aus einem Linkset mit 15 Prims. Sobald dann bei einem Charakter eine der ausgewerteten Land Impact Kosten (Server, Physik, Download) größer wird als 15, wird auch der Land Impact größer als 15 Prims.

Pathfinding und die offenen Probleme
Es gibt im Augenblick noch einige Probleme im Zusammenhang mit Pathfinding. Diese sind in den aktuellen Release Notes am Ende der Liste zu finden. Ich habe die Problemliste seit dem Start der Alpha Phase im Beta Grid verfolgt. Gegenüber den ursprünglichen Fehlern ist die heutige Liste bereits sehr klein geworden. Und einiges lässt sich auch nur nach der Einführung im Main Grid beheben, denn im Beta Grid werden weder Vehikel Rennen ausgetragen, noch gibt es dort 40 Avatare gleichzeitig auf einem Sim.

Hier ein paar der gröbsten Probleme, die zur Zeit noch nicht behoben wurden:
  • Schnelle Vehikel können sich mit dem Simboden verhaken und bleiben stecken.
  • Verschiedene kleine physische Objekte können durch den Simboden fallen.
  • SVC-8048 - Vehikel verhalten sich unberrechenbar auf PF-Regionen.
  • PATH-796 - Ein verlinktes Flexi Prim als Child eines Nicht-Flexi Prim, ändert das Flexi-Prim auf Nicht-Phantom.
  • PATH-651 - Pathfinding Charaktere bleiben einfach stehen, wenn sie in eine Region kommen, die dynamisches Pathfinding abgeschaltet hat.
  • PATH-536 - Man kann Objekte, die in das Navmesh integriert sind, als Attachment tragen, was das Navmesh des Objektes zu einem Reset veranlasst.
  • PATH-345 - Es wird kein path_update durchgeführt, wenn ein Charakter in Richtung Norden oder Osten in eine neue Region wechselt.

Sonstiges

Toolfenster-Buttons:
Die beiden Pathfinding Tool Fenster "Characters" und "Linksets" enthalten im unteren Bereich eine Reihe von nützlichen Buttons. Damit kann man für einen ausgewählten Listeneintrag die folgenden Dinge durchführen:
  • Take - Das Objekt wird in das Inventar aufgenommen und auf dem Land entfernt.
  • Take Copy - Eine Kopie des Objekts wird in das Inventar aufgenommen. Das Original bleibt aber auf dem Land.
  • Teleport me to it - Der eigene Avatar wird zu dem ausgewählten Objekt teleportiert.
  • Return - Das Objekt wird seinem Besitzer zurückgeschickt, auch wenn es jemand anderem gehört.
  • Delete - Das Objekt wird gelöscht, ist dann aber noch im Papierkorb vom Inventar zu finden.
  • Checkbox: Show beacon - Es wird eine farbiges Achsenkreuz im Nullpunkt des ausgewählten Objekts angezeigt.
  • Checkbox: Show physics capsule - Zeigt einen blauen Ballon, der den physikalischen Kolissionskörper des Charakter darstellt. Oft befindet sich der größte Teil dieses Ballons im Inneren des Objekts.

    Menüeinträge bei rechter Maustaste:
    Möchte man ein ganz bestimmtes Objekt oder einen PF-Charakter auf seine Eigenschaften hin überprüfen, kann man dieses auch mit der rechten Maustaste anklicken. Im Menü erscheint dann, je nachdem ob es ein Objekt oder Charakter ist, entweder der Menüeintrag "Show in Linksets" oder "Show in Characters". Geht man auf den Eintrag, öffnet das jeweilige Fenster und das ausgewählte Element wird hervorgehoben und kann direkt bearbeitet werden. Dies ist vor allem ganz nützlich bei Linksets, deren Liste im Linkset-Fenster ziemlich lang sein kann.


    Links zu Pathfinding (alle englisch):
    >> Pathfinding Quick Start Guide
    >> Pathfinding Tools in the Second Life Viewer
    >> Pathfinding NavMesh
    >> Pathfinding LSL functions
    >> Release Notes von Pathfinding aus der Woche der gridweiten Aufspielung

    Weitere Informationen gibt es in meinem Blogpost vom 10. August zur Pathfinding Einführung:
    >> Einige Infos von den Lindens zum Pathfinding

    Update 09.08.2012:
    • Neuer Abschnitt: "Pathfinding und Objekteintritt"
    • Neuer Abschnitt: "Pathfinding Optimierungsbeispiel"
    • Neuer Unterabschnitt: Sonstiges > "Menüeinträge bei rechter Maustaste"
    • Neuer letzter Absatz im Abschnitt: Pathfinding-Optimierungsschritte > "Sobald man auf  "Rebake Region" klickt..."
    • Geänderter Text im ersten Absatz des Unterabschnitts: Pathfinding und die Optimierung > Optimierung: "Zum Beispiel wurden alle Prims oder Linksets, die ein Skript enthalten haben, auf "Movable Obstacle" gesetzt. Da dies aber völlig überbestimmt ist, sollte man hier mit der Optimierung beginnen..."
    Update 14.08.2012:
    • Neuer Unterabschnitt: Pathfinding und die Optimierung > "Pathfinding und geskriptete Objekte"
    • Neuer Unterabschnitt: Pathfinding und Charaktertypen > "Charakter Land Impact"
    • Zen Viewer zum Abschnitt "Pathfinding und Viewer" hinzugefügt


    Anmerkung:
    Das ist jetzt ein erster schneller Entwurf einer deutschen Hilfe für Pathfinding. Ich habe sicher vieles nicht erwähnt, einiges vergessen und evtl. auch was falsches geschrieben. Ich werde versuchen, diesen Blogpost im Laufe der Zeit zu erweitern und zu verbessern, so dass das langsam zu etwas Brauchbarem wird. Wenn jemand gerne ein bestimmtes Thema hier noch aufgenommen haben möchte, oder einen Fehler gefunden hat, oder eine wichtige Ergänzung hätte, würde ich mich über eine Meldung in den Kommentaren freuen.

    Donnerstag, 12. Juli 2012

    Anpassen der neuen Rechtschreibprüfung im Viewer

    Im neuen Beta Viewer 3.3.4 ist jetzt die Rechtschreibprüfung vom Catznip Viewer aufgenommen worden. Andere alternative Viewer, wie Dolphin, Nirans oder Zen, haben diese Funktion auch schon integriert, da sie bereits eine Weile im Development Viewer von Linden Lab enthalten war. Da ich bisher nur Wörterbücher für Englisch, Spanisch und Portugiesisch gesehen habe, zeige ich hier mal, wie man ein deutsches Wörterbuch zur Schreibkorrektur dazubringen kann.

    Das Format für die Wörterbücher darf nur die Endungen .xcu oder .dic haben. Das .xcu-Format wird unter anderem von OpenOffice verwendet und es gibt dafür eine große Auswahl von allgemeinen oder fachspezifischen Wörterbüchern.

    Die Übersichtsseite für alle Sprachen findet sich hier:
    >> OpenOffice Dictionaries
    Alle deutschsprachigen Wörterbücher sind hier aufgelistet:
    >> OpenOffice Dictionaries - German (Germany, ...)

    Daraus habe ich für diese Anleitung (und generell für meinen Viewer) das German (de-DE frami) Wörterbuch herausgesucht. Es wird auch zusammen mit dem deutschen OpenOffice Paket ausgeliefert und ist deshalb immer sehr aktuell. Die augenblickliche Version ist vom 17. Juni 2012.

    Also wäre der erste Schritt, sich dieses Wörterbuch herunterzuladen:
    >> Webseite zum Wörterbuch "German (de-DE frami)"
    >> Direkter Download für Wörterbuch "German (de-DE frami)"

    Man erhält mit dem Download die Datei "dict-de_DE-frami_2012-06-17.oxt". Mit der Endung .oxt kann aber der SL-Viewer nichts anfangen. Und eigentlich ist das auch nicht das Wörterbuch, sondern ein gepacktes Archiv im Zip-Format. Es muss also zuerst entpackt werden. Dazu ändert man einfach die Endung von .oxt in .zip. Die komplette Datei heißt dann "dict-de_DE-frami_2012-06-17.zip". Dieses Zip-Archiv wird nun in einen leeren Ordner entpackt, den ihr zuvor irgendwo erstellt habt. Am besten gibt man dem Ordner den gleichen Namen, den das Archiv hat, lässt aber das ".zip" weg.

    Nach dem Entpacken sollte es dann so im Ordner aussehen:


    Damit wären die Vorbereitungen abgeschlossen. Nun einen Viewer starten, der die neue Rechtschreibprüfung schon eingebaut hat. In meinem Fall ist es der SL Beta Viewer 3.3.4. Dort findet man die Rechtschreibprüfung unter > Einstellungen > Chat > Spell Checking. Im Beta Viewer ist auch bei deutschsprachiger UI dieses Fenster noch in Englisch. Das unbearbeitete Fenster sieht so aus:


    Das Second Life Glossary kann ruhig unter "Active" stehen bleiben, denn es ist nur eine Erweiterung des Hauptwörterbuchs, das unter "Main dictionary" eingestellt ist. Mit dem Second Life Glossary werden spezielle SL-Wörter, wie zum Beispiel "Sim", "Rezzing", "Teleport", "AO", usw. dem normalen Wörterbuch hinzugefügt. Zum Importieren klickt man nun auf "Import". Dadurch öffnet sich dieses Fenster:


    Hier klickt man auf "Browse" und geht in den Ordner, in den man vorhin das Wörterbuch entpackt hat. Da nur Dateien angezeigt werden, die ein .xcu oder .dic als Endung haben, dürfte nur die Datei "dictionaries.xcu" angezeigt werden. Diese wählt man aus und klickt auf den "Öffnen" Button.


    Nun sind wir wieder beim kleinen Import-Fenster, bei dem die oberen beiden Zeilen automatisch einen Eintrag erhalten haben. In die untere Zeile schreibt man einen Namen für das Wörterbuch. Ich habe einfach "Deutsch" genommen. Anschließend auf den "Import" Button klicken.


    Der Name, den man dem Wörterbuch gegeben hat, taucht jetzt im linken Feld unter "Available" auf. Den wählt man jetzt aus und klickt auf den kleinen Pfeil nach rechts, damit der Eintrag in das "Active" Feld gelangt.

    Diesen Eintrag auswählen...

    ...und mit dem Pfeil nach rechts bringen
    Öffnet man jetzt das Aufklappmenü über den großen Button neben "Main dictionary", kann man sein importiertes Wörterbuch auswählen.

    Neues Wörterbuch auswählen

    Nach der Auswahl war bei mir der Eintrag aus dem "Active" Feld wieder verschwunden. Ich glaube, das ist ein kleiner Fehler, denn LL noch beheben will. Solange aber unter "Main directionary" euer neuer Eintrag zu sehen ist, bleibt das Wörterbuch aktiv. Am besten tippt man jetzt mal absichtlich im Chat, IM-Fenster, oder in einer Notecard ein paar falsche Sätze ein, damit man sieht, ob es funktioniert.

    Hier als Beispiel im lokalen Chat:


    Hier als Beispiel in einer Notecard:


    Falsche Wörter werden mit der bekannten roten Wellenlinie unterstrichen. Wenn man keine Ahnung hat, was die Rechtschreibprüfung einem sagen will, dann klickt man das markierte Wort mit der rechten Maustaste an und es öffnet sich ein kleines Menü.

    Im lokalen Chat......oder im IM-Fenster

    Ganz oben werden Vorschläge gemacht, wie das Wort richtig geschrieben sein könnte. Genau, wie auch bei anderen Programmen (z.B. Word), fabriziert die Rechtschreibprüfung öfter auch mal Blödsinn. Deshalb gibt es unterhalb der Vorschläge zwei weitere Möglichkeiten. Entweder fügt man das Wort über "Add to Dictionary" zum Wörterbuch hinzu, wenn man sich sicher ist, dass es richtig geschrieben wurde. Oder man wählt "Add to Ignore" und sagt damit der Prüfung, dass dieses Wort nicht geprüft werden soll. Sowas kann man z.B. mit ungewöhnlichen Namen von Avas machen, die es als Wort eigentlich nicht gibt.

    Zum Schluss noch eine Zusatzinfo. Das Wörterbuch ist ja standardmäßig eingeschaltet. Will man aber gar kein Wörterbuch nutzen, weil die roten Markierungen nerven, dann kann man es einfach über die Checkbox "Enable spell checker" im Wörterbuchfenster ausschalten.

    Donnerstag, 5. Juli 2012

    SL-Teleport von Webseite im bevorzugten Viewer verwenden

    Ich wurde jetzt schon mehrmals inworld gefragt, wie man einen Teleport-Link (SLURL) von einer Webseite zu einem bestimmten Viewer schicken kann. Normalerweise wird im Webbrowser eine Verknüpfung zu dem Viewer angelegt, den man als erstes auf seinem Betriebssystem installiert. Dann gibt es Viewer, die bei einer späteren Installation diese Verknüpfung überschreiben. Andere wiederum, wie etwa der Zen, erzeugen eine parallele Verknüpfung.

    Hat man nun weitere Viewer installiert und ist mit einem von diesen eingeloggt, kann es passieren, dass der Klick auf einen Teleport-Link den ursprünglich verknüpften Viewer zusätzlich startet. Einen speziellen Fall stellt der Nirans Viewer dar, der ein Rar-Archiv für die Installation verwendet, welches nur entpackt wird und somit gar keine Verknüpfung im Browser erzeugt. Da sich die aktuelle Frage an mich auf den Nirans bezog, nehme ich ihn jetzt auch als Beispiel.

    Der manuelle Workaround
    Als schnelle Lösung kann man sich einfach den Teleport-Link aus dem Browser in den Chat des Viewers kopieren. Dazu die Teleport-Adresse im Browser mit der rechten Maustaste anklicken und im Kontext-Menü "Kopieren" auswählen.

    Adresszeile des Teleports im Browser mit rechter Maustaste kopieren

    Dann klickt man im Viewer mit der rechten Maus in die Chatzeile und wählt "Einfügen". Nach Abschicken der Chatzeile erscheint der Link als unterstrichener Text in der Chatausgabe. Der kann nun einfach mit der Maus angeklickt werden und das Ortsprofil mit "Teleport"- und "Karte"-Button öffnet sich.

    Nach Chateingabe der TP-Adresse lässt sich der unterstrichene Link anklicken

    Alternativ dazu, kann man auch die kopierte SLURL aus dem Zwischenspeicher in die obere Adressleiste des Viewers kopieren. Nach einem Return (oder Enter) wird der TP direkt gestartet, ohne dass ein Ortsprofil-Fenster geöffnet wird.

    Den Browser umstellen (Firefox)
    Für mein Beispiel, wie man den Webbrowser auf einen anderen Viewer umstellt, benutze ich den Firefox. Dieser wird zumindest bei den Besuchern meines Blog am weitaus häufigsten verwendet (ca. 62%, Platz 2 ist der IE mit 18%).

    Zuerst öffnet man die Einstellungen und geht dort auf die Registerkarte "Anwendungen". Hier sucht man in der linken Spalte nach dem Eintrag "secondlife". Im Normalfall steht nun in der rechten Spalte "Second Life verwenden". Damit öffnet sich der offizielle SL-Viewer, der Beta Viewer, der Dolphin und noch ein paar weitere.

    Klickt man auf den Button mit diesen Eintrag, geht ein Menü auf, in dem unter Umständen weitere Viewer zu finden sind. Bei mir ist es der Zen Viewer. Um nun den Nirans Viewer (oder irgend einen anderen Viewer) in die Liste aufzunehmen, wählt man den Menüpunkt "Andere Anwendung...".

    Hier klicken, um neuen Viewer aufzunehmen

    Es öffnet sich ein (überflüssiges) Zwischenfenster, das so aussieht:

    Hier klicken, um nach einem Viewer zu suchen

    Mit Klick auf "Durchsuchen..." öffnet sich das Explorer Fenster. Dort bis zum Installationsordner des gewünschten Viewers durchklicken und das Hauptprogramm auswählen. In meinem Fall ist das der Nirans. Da nur ausführbare Anwendungen angezeigt werden, ist die Liste möglicher Einträge recht klein. Mit Klick auf "Öffnen" wird dann der Eintrag übernommen.

    Hauptprogramm des Viewers (der "Typ" ist immer eine "Anwendung")

    Nun sollte der Nirans Viewer in der Anwendungsliste neben "secondlife" schon zu sehen sein. Schließt man das Einstellungsfenster und klickt jetzt einen Teleport-Link auf irgendeiner Webseite an, dann wird der Nirans Viewer gestartet, oder wenn er schon läuft, der Teleport direkt auf die Benutzeroberfläche durchgereicht.

    Hier ein Probe-Teleport, falls jemand das hier ausprobiert und einen Test machen will:
    >> Teleport zu Tempura Island

    Über die Liste des Aufklappmenüs lassen sich die Viewer beliebig umstellen

    Wenn man nun allerdings wieder einen anderen Viewer, als den Nirans verwendet, sollte man daran denken, vor Klick auf einen Webseiten-Teleport, den richtigen Viewer in den Einstellungen auszuwählen. Ansonsten öffnet sich eben ein zweiter Viewer parallel.

    Alternativen
    Es gibt auch verschiedene kleine Programme, die sich zwischen Browser und Viewer hängen und nach jeder Teleport-Auswahl aus einem Browser heraus nachfragen, an welchen Viewer der geschickt werden soll. Ein Beispiel wäre etwa der SLURL Proxy aus dem Firestorm/Phoenix Blog.

    Ich halte von zusätzlichen Programmen allerdings nicht sehr viel, denn diese Funktionalität lässt sich ja auch in den oben gezeigten Browsereinstellungen erreichen, indem man "Jedes Mal nachfragen" auswählt.

    Freitag, 30. März 2012

    Gesammelte Infos zu Fehlern auf dem SL Marketplace

    Quelle: SL Brand Center
    Die Probleme rund um die Einführung der Direktlieferung von Marketplace Artikeln zum Inventar des Käufers, nehmen scheinbar kein Ende. Auch mehrere Wartungsupdates der Marketplace Webseite am Mittwoch und Donnerstag, brachten nicht den gewünschten Erfolg.

    Im LL Merchants Forum, in dem sich SL-Händler austauschen, wurde in den letzten zwei Wochen mehr geschrieben, als in den letzten zwei Jahren.

    Update 01.04.2012:
    In der vergangenen Nacht hat das Commerce Team ein erneutes Update im Merchant Forum gepostet. Dort wurden die meisten Jira-Berichte aufgezählt, die ich auch schon hier weiter unten im Beitrag gepostet hatte. Wichtigste Neuerung (Zitat Commerce Team):
    "Während wir an den aktuellen Problemen auf dem Marketplace arbeiten, werden wir von keinem Händler verlangen, vor dem 1. Juni 2012 die Anzeigen von Magic Boxen auf Direktlieferung umzustellen."
    Ursprünglich galt für die Umstellung der 18. April für Artikel bis 10 L$ und der 16. Mai für alle anderen Artikel als Endtermin.

    Ich fasse hier mal in einer kleinen Liste die gravierensten Probleme zusammen und ergänze, wenn vorhanden, eine Lösung oder einen Workaround dazu:

    • Die Artikel aus der Merchant Outbox des Viewers lassen sich nicht auf den Marketplace hochladen (Meldung: "Initialization with the Marketplace failed because of a system or network error. Try again later.")
      • Es gibt Probleme mit der deutschen Spracheinstellung des Viewers. Damit die Outbox richtig läuft, den Viewer und die Marketplace Webseite auf die Sprache Englisch umstellen.
      • Nicht jeder Viewer unterstützt bis heute die Merchant Outbox richtig. Am besten den offiziellen LL-Viewer verwenden. Der neuste Firestorm, Nirans Viewer und seit heute der Dolphin Viewer, gehen aber auch.

    • Die Artikel, die auf dem Marketplace bereits Direktlieferung nutzen, werden teilweise nicht ausgeliefert.
      • Das hängt zum größten Teil an irgendwelchen Sonderzeichen in der Produktbenennung. Deshalb bei Lieferproblemen den Namen des Artikels prüfen, ob dort ungewöhnliche Zeichen verwendet werden (Beispiele: ö, ~, >☺<, ♥, ►). Am besten den Produktnamen (vorläufig) so ändern, dass ausschließlich die Zeichen A-Z, a-z und 0-9 enthalten sind.

    • Die nicht mehr zugeordneten Artikel aus den alten Magic Boxen lassen sich nicht aus der Marketplace Liste löschen.
      • Workaround:
      • In SL alle Magic Boxen auf Parzellen löschen oder ins Inventar aufnehmen.
      • Auf der Marketplace Seite unter "Inventory" auf "Magic Box Status" gehen (alte Xstreet Seite).
      • Das Popup-Fenster mit "Cancel" schließen.
      • Nach unten scrollen und die Auflistung der eigenen Magic Boxen suchen (links unten).
      • Die Option "Force remove" für alle Magic Box Einträge auswählen.
      • Zurück auf die Marketplace Kontoseite gehen und ein "Resync" der Boxen durchführen.
      • Die Webseite neuladen (F5 drücken).
      • Nun sollten alle alten Items der Magic Boxen verschwunden sein.

    • Artikel werden mehrfach an Kunden geliefert, obwohl dieser nur einmal gekauft hat.
      •  Noch keine Lösung in Sicht.

    • Artikel werden mit dem falschen Preis angezeigt. 
      • Noch keine Lösung in Sicht.

    • Die Alterseinstufung für Artikel stimmt nicht (z.B. werden auf "General" gesetzte Artikel als "Adult" angezeigt).
      • Noch keine Lösung in Sicht. 

    •  Falsche Zuordnung von Artikelfotos, Artikelnamen oder sogar des Verkäufers in den Anzeigen auf dem Marketplace (gilt sowohl für Artikel in Magic Boxen, als auch für Direktlieferung).
      • Linden Lab schreibt im zugehörigen Jira-Report, dass dieses Problem wohl schon vor Einführung der Direktlieferung vorhanden war. An einer Lösung wird mit hoher Priorität gearbeitet. Ein vorläufiger Workaround lautet wie folgt:
        • Löschen von allen Bildern, die in der Auflistung falsch angezeigt werden.
        • Neue Bilder für die Gelöschten hochladen und wieder mit den Anzeigen verknüpfen.
        • Alle falsch zugeordneten Artikel löschen, die mit eigenen Anzeigen verknüpft sind.
        • Für falsch angezeigte Artikel/Bilder anderer Anbieter in eigenen Anzeigen scheint es noch keinen Workaround zu geben.

    • Der Marketplace ist sehr langsam seit Einführung der Direktlieferung.
      • Ist zumindest aus Sicht des Kunden (also mir) seit Donnerstag nicht mehr so. Die Ladezeiten sind bei mir gefühlt so schnell, wie sie immer waren.

    .............................................................................................................................................................

    Jira Reports mit Bezug zur Direktlieferung

    Im Merchant Forum hat Sassy Romano gestern auch in einem neuen Thread alle bisherigen Jira-Reports zur Direktlieferung aufgezählt. Wer von einem der Themen betroffen ist, kann unter dem angegebenen Link auf "Vote" und/oder "Watch" klicken.

    Incorrect items showing up on my marketplace store from other merchants but with my listing texture and vice versa. - (Das ist das Problem mit den falsch zugeordneten Anzeigen, Bildern, Händlern).
    >> https://jira.secondlife.com/browse/WEB-4587

    Direct Delivery Issue - Item named with unicode characters causes order/payment system to fail.. - (Das ist das Problem mit den Sonderzeichen in den Artikelnamen).
    >> https://jira.secondlife.com/browse/WEB-4580

    Direct Delivery is hanging in "Being Delivered" rather than forwarding funds to Merchants even when the item has been paid for and received by the Customer. This is for NON-UNICODE Listings. - (Das ist nochmal das Problem mit den Sonderzeichen in den Artikelnamen).
    >> https://jira.secondlife.com/browse/WEB-4596

    Marketplace Redeliver Item sends to Customer instead of Recipient.
    >> https://jira.secondlife.com/browse/WEB-4574

    Commerce Linden as an escrow account breaks the nature of transactions and is not required when Direct Delivery is implemented, this intermediary should be removed
    >> https://jira.secondlife.com/browse/WEB-4508

    Marketplace Outbox Upload fails silently. - (Das ist das Problem mit einem Viewer, der nicht auf Englisch eingestellt ist).
    >> https://jira.secondlife.com/browse/WEB-4412

    Some Orders show "Delivery Partially Failed" even when all items are from same storefront and all items are shown as delivered in details section
    >> https://jira.secondlife.com/browse/WEB-4592

    Bulk Delete does not work on Unassociated Inventory if listing exists. - (Das ist das Problem, dass nicht mehr verknüpfte Listeneinträge nicht gelöscht werden können).
    >> https://jira.secondlife.com/browse/WEB-4567

    Direct Delivery Outbox fails in Windows build
    >> https://jira.secondlife.com/browse/VWR-28630

    Direct Delivery Outbox fails in Linux build
    >> https://jira.secondlife.com/browse/VWR-28629

    Market Place Direct Delivery - sending items bought multiple times
    >> https://jira.secondlife.com/browse/WEB-4598

    Quelle: EXISTING MARKETPLACE JIRAS ISSUE LOG
    .............................................................................................................................................................

    So, das sieht jetzt etwas nach einem zusammengestückelten Blogpost aus. Ist es auch. :o)
    Ich wollte nur mal die ganzen Meldungen, die überall verstreut sind, etwas bündeln. Ich selbst bin nur Marketplace Kunde und kein Händler. Deshalb sind die Infos eine Zusammenstellung von dem, was ich gelesen habe. Wenn jemand eine Lösung zu einem Problem kennt, die ich hier nicht beschrieben habe, kann man sie als Kommentar posten. Ich ergänze es dann in meiner Auflistung.

    Links:
    >> Merchants Forum
    >> [LL Blog] - Direktlieferung startet heute
    >> Update: SL-Marketplace Probleme
    >> [Video] - 2 Promos zum Start der Direktlieferung
    >> Marketplace and Direct Delivery Update - (vom 31.03.2012)

    Mittwoch, 8. Februar 2012

    Ein paar Infos zur Prim-/Mesh-Eigenschaft "Konvexe Hülle"

    Primreduzierung am Anschauungsobjekt
    Ich habe in den letzten Tagen auf verschiedenen deutschsprachigen Webseiten gelesen, dass doch einige Leute die primreduzierende Eigenschaft der konvexen Hülle im Baufenster noch nicht kennen. Deshalb schreibe ich mal über das, was mir zu diesem Thema bekannt ist.

    Die "Konvexe Hülle" ist eine Eigenschaft, die man Prim-, Sculpty- und Mesh-Objekten im Baufenster zuweisen kann. Eingeführt wurde sie letztes Jahr im August, zusammen mit dem Mesh-Upload für das Second Life Main Grid. Beim Rezzen eines neu hochgeladenen Mesh ist standardmäßig immer die Konvexe Hülle aktiviert, um die Auswirkung auf das Land (Land Impact) möglichst gering zu halten.

    Da dieser Artikel etwas länger wird, mache ich hier einen Break mit Link zur Fortsetzung:

    Donnerstag, 22. Dezember 2011

    Der Partikel Editor aus dem Dolphin Viewer

    Mit der vorletzten Veröffentlichung, wurde in den Dolphin Viewer der Partikel-Editor aus der  Firestorm Entwicklungsabteilung übernommen. Der Firestorm selbst, erhält diesen Editor erst in einer der nächsten Versionen.Offenbar hat sich Lance Corrimal am Repository Sourcecode des Firestorm bedient, was einer der Vorzüge von Open Source Software ist.

    Vorab haben die Firestorm-Entwickler in ihrer Wiki bereits eine umfangreiche, englische Seite zum Partikel-Editor erstellt. Diese ist hier zu finden:
    >> Firestorm Wiki: Particle Editor

    Da aber selbst für Nutzer mit guten Englischkenntnissen das Editorfenster nicht leicht zu verstehen ist, erkläre ich den Aufruf und die Bedeutung der einzelnen Parameter hier mal in Deutsch. Die Bilder hier im Artikel stammen aus dem Dolphin Viewer. Alle Schritte sollten aber im Firestorm Viewer genauso möglich sein, sobald der Editor dort verfügbar ist.

    Zuerst beschreibe ich kurz den grundsätzlichen Umgang mit dem Partikel Editor und danach, etwas umfangreicher, die Bedeutung der einzelnen Felder. Und weil das insgesamt ein langer Artikel wird, geht es weiter nach dem Link:

    Samstag, 10. Dezember 2011

    llSetKeyframedMotion: Neue LSL-Funktion mit vielen Möglichkeiten

    Am 15. November wurde die neue LSL-Funktion llSetKeyframedMotion im gesamten Main Grid von Second Life eingeführt. Dieser Skriptaufruf ermöglicht es, in einer einzigen Skriptzeile ein Objekt so zu bewegen, dass es mehrere Richtungsänderungen durchführt. Aber auch einfache Punkt-zu-Punkt Bewegungen sind damit leicht machbar. Die Bewegungen werden dabei sehr weich berechnet, ganz im Gegensatz zum alten llSetPos und llSetRot.

    Als Option können dem llSetKeyframedMotion-Aufruf noch einige Steuerbefehle angehängt werden, wie etwa das Ausführen als Schleife (KFM_LOOP), der Vor- und Zurück-Modus (KFM_PING_PONG), oder in umgekehrter Abfolge (KFM_REVERSE). Die Wegstrecken innerhalb des gleichen Aufrufs, sind auch über Regionsgrenzen hinweg möglich. Das ist zum Beispiel wichtig für Tour-Vehikel, die mehrere Regionen in ihrer Route haben.

    Da das hier doch etwas länger wird, geht es weiter nach dem Link:

    Montag, 28. November 2011

    Second Life Viewer: Tipps zu den Einstellungen

    In dieser Anleitung beschreibe ich, welche Einstellungen ich nach einer sauberen Viewer Neuinstallation verändere, um eventuell etwas mehr aus dem Viewer herauszuholen. Die durchgeführten Änderungen beruhen auf eigenen Erfahrungen und auf Rückmeldungen anderer Second Life Nutzer in verschiedenen Foren und Blogs. Diese Einstellungen sind sicher keine Universallösung, sollten aber für viele heutige PC-Systeme ein Richtwert darstellen.

    Am Ende folgen dann noch ein paar Tipps zu weiteren Einstellungen, die beim aktuellen Viewer aus meiner Sicht sinnvoll sind.

    Vieles wird den meisten schon bekannt sein. Dennoch liste ich alle meine Änderungen der Grundkonfiguration auf, da ich genau damit in SL zufriedenstellend unterwegs bin.

    Der erste Teil dieser Anleitung, ist die saubere Viewer Neuinstallation, welche ich vor einer Woche hier beschrieben hatte: >> Second Life Viewer: Saubere Neuinstallation

    Donnerstag, 24. November 2011

    Second Life Viewer: Saubere Neuinstallation

    Da ich inworld immer wieder darauf angesprochen werde, wie man eine saubere Neuinstallation für den Second Life Viewer durchführt, habe ich mich dazu entschlossen, eine Anleitung zu erstellen, auf die ich dann immer verweisen kann. In einem zweiten Blogpost, den ich inzwischen auch erstellt habe, erweitere ich diese Anleitung noch mit Tipps zu den Viewer-Einstellungen, die aus meiner Sicht nach einer Neuinstallation angepasst werden sollten, damit der Viewer möglichst rund läuft.

    Meine Anleitung bezieht sich auf den offiziellen Second Life Viewer von Linden Lab. Wer einen alternativen Viewer benutzt und etwas Erfahrung mit diesem hat, wird meine Schritte aber nachvollziehen können. Ich verwende als Betriebssystem Windows 7, was sicher den größten Teil der Anwender abdeckt. Bei Abweichungen zu Windows XP, weise ich darauf hin.

    Montag, 25. Juli 2011

    Der SL Viewer 2.7.5 ist Schrott

    Nachdem ich viele Meldungen zu Fehlern im offiziellen Second Life Viewer 2.7.5 gelesen habe, möchte ich hier einfach mal davon abraten, diesen Viewer zu benutzen. Genauso, wie Tateru Nino, frage ich mich, warum eine solche Version überhaupt herausgegeben wurde. In den Release Notes stehen sogut, wie keine Verbesserungen. Dagegen wird ganz unten, unter "Bekannte Probleme", eine lange Liste von ungelösten JIRA-Einträgen aufgeführt.

    • VWR-25821 - Beim Bearbeiten von Gruppen-Rollen verschwinden Teile der Vieweroberfläche.
    • EXP-997 - Basic Shaders Funktion lässt Framerate dramatisch absinken.
    • SH-2038 - Verschiedene Performance Einbrüche bei MacBook Pro.
    • SH-1838 - Schwarzer Bildschirm bei Aktivieren von Beleuchtung und Schatten.
      • VWR-26325 - Gerezzte Objekte sind alle schwarz seit dem Beta 2.7 Update.
      • VWR-26347 - Texturen sind alle schwarz und laden nicht.
      • VWR-26371 - Kompletter Hintergrund und Landschaft ist schwarz nach letztem Viewer Update.
    • SH-1912 - Glanz-Einstellung für Oberflächen geht verloren, wenn Beleuchtung und Schatten aktiviert sind.

    Eigentlich gibt es noch viel mehr JIRA-Probleme zum aktuellen Viewer 2.7.5. Die obigen sind lediglich die, die Linden Lab unter die Release Notes gepackt hat. Deshalb empfehle ich allen, die den LL Viewer als Hauptviewer nutzen (so wie ich), den 2.7.5 nicht zu verwenden. Außer Ärger hat man mit dieser Version sonst nichts.

    Der aktuelle Second Life Beta Viewer 2.8.1 ist dagegen ein ziemlich guter Release. Ich verwende diesen zur Zeit ausschließlich. Zwar ist die Änderung der Windlight Einstellungen auch ein Rückschritt, aber das ist wenigstens kein Fehler, der etwas an der normalen Darstellung von SL verändert. Wer also bei einem LL-Viewer bleiben möchte, der sollte die aktuelle Beta-Version nehmen.

    Zur Behebung der Fehler aus dem 2.7.5 gibt es vier Möglichkeiten, die evtl. Abhilfe bringen und sich aus den Rückmeldungen von Nutzern herauskristallisiert haben. Möchte also jemand unbedingt beim 2.7.5 bleiben und hat eines der oben angeführten Problem, dann bitte die folgenden Dinge probieren (gilt natürlich auch, wenn eines der Probleme noch beim Beta Viewer 2.8.1 auftritt):

    1. Ausschalten von: > Ich > Einstellungen > Grafik > Einfache Shader (engl.: > Me > Preferences > Graphics > Basic Shaders). Danach einen Viewer-Neustart durchführen. Dadurch geht zwar die Windlight Funktionalität verloren (Wasser und Himmel sehen anders aus), aber die Probleme mit niedriger Framerate und/oder schwarzen Texturen sollten damit behoben sein.
    1. Ausschalten von: > Ich > Einstellungen > Grafik > Hardware > OpenGL Vertex-Buffer-Objekte aktivieren (engl.: > Me > Preferences > Graphics > Hardware > Enable OpenGL Vertex Buffer Objects). Danach einen Viewer-Neustart durchführen. Das sollte bei Computern mit ATI Grafikkarte die schwarzen Texturen beheben. Punkt 2 nur versuchen, wenn Punkt 1 nicht erfolgreich war.
    1. Einschalten des Entwickler-Menüs mit: Strg + Alt + Q. Dort Ausschalten von: > Entwickler > HTTP-Texturen. Danach unter: > Ich > Einstellungen > Erweitert > Clear Cache den Cache löschen. Dann einen Viewer-Neustart durchführen. Dies kann gegen niedrige Framerate und nicht geladene Texturen helfen. Allerdings bringt diese Einstellung nur bei sehr alten Computern, oder sehr niedriger Geschwindigkeit der Internetleitung etwas. Punkt 3 nur versuchen, wenn Punkt 1 oder 2 nicht erfolgreich war.
    1. Alle Viewer deinstallieren und das Betriebssystem von allen Viewer Dateien und Einstellungen bereinigen. Danach den Viewer neu installieren (Clean Install). Diese Maßnahme wird auf vielen TPV-Seiten empfohlen und war auch bei mir erfolgreich, jedoch muss man dafür etwas Arbeit investieren. Deshalb geht es weiter nach dem folgenden Link: