Mapformat

Aus PantheonWiki


Das RL-Kartenformat ist ein XML-Dateiformat. Es gibt Abschnitten für Objekte (nodes), Zonen (zones), Umgebungseinstellungen (environment), Wegpunkte (waypoints).

Inhaltsverzeichnis

<nodes>

Im nodes-Abschnitt werden die in der Karte platzierten Objekte definiert, mögliche Objekte sind Ogre-Meshes (entity), Partikelsysteme (particlesystem), Soundobjekte (sound), Gameobjekte (gameobject) und Lichter (light).

<entity>

Attribute:

  • name="nat_grasplane_01" - Name des Objekts
  • meshfile ="nat_grasplane_01.mesh" - Dateiname des Ogre-Meshes
  • receivesShadow="true" - Können andere Objekte Schatten auf das Objekt werfen

Kindknoten:

  • <position x="5.7285" y="-7.94034" z="18.4169"/> - die Position des Meshes
  • <rotation qx="0.0" qy="0.0" qz="0.0" qw="1.0"/> - die Ausrichtung des Meshes als Quaternion
  • <scale x="0.0237419" y="0.0237419" z="0.0237419"/> - Skalierung des Meshes
  • <staticgeometrygroup id="0"/> - Einordnung in eine Staticgeometry-Gruppe (alle Elemente einer Gruppe werden zu einem Objekt zusammengefasst)
  • <physicsproxy type="none"/> - Art des Kollisionskörpers, möglich sind:
    • keiner - none
    • Quader - box
    • Kugel - sphere
    • Ellipsoid - ellipsoid
    • Pyramide - pyramid
    • wie das Mesh - mesh
    • konvexe Hülle des Meshes - convexhull
    • custom - Zusammengesetze und selbst definierte Kollisionskörper
  • <renderingdistance data="20000"/> - Maximale Entfernung, bei der das Mesh noch angezeigt wird
  • <animation> - Animationen und Pfade

Zusammengesetze und selbst definierte Kollisionskörper

Die Einzelteile werden als Kinder in den <physicsproxy>-Knoten geschrieben. Sie werden in <collision>-Knoten definiert. Attribute eines solchen <collision>-Knotens sind:

  • type - Typ des (Teil-)Kollisionskörpers, möglich sind
    • box - Quader
    • sphere - Kugel

Kindknoten eines solchen <collision>-Knotens sind:

  • (box) <size x="-97.544470" y="127.113457" z="748.685760" /> - Ausdehnung des Quaders
  • (box) <rotation qx="0.000000" qy="-0.975135" qz="0.000000" qw="0.221611" /> - Ausrichtung des Quaders
  • (box) <offset x="-0.544470" y="0.113457" z="2.685760" /> - Verschiebung des Quaders
  • (sphere) <radius r="10" /> - Radius der Kugel
  • (sphere) <center x="141.95" y="7.20" z="32.55" /> - Position des Kugelmittelpunkts (relativ zum Mesh-Ursprung)

Animationen

<light>

Attribute:

  • name="Omni02" - Name der Lichtquelle
  • type="point" - Typ der Lichtquelle, möglich sind
    • point - Punktförmige Lichtquelle, strahlt in alle Richtungen
    • spot - Spot: Lichtquelle, die mit einem bestimmten Öffnungswinkel in eine Richtung strahlt
    • directional - Lichtquelle, die parallele Strahlen über die komplette Szene strahlt (z.B. für Sonnenlicht)
  • visible="true" - Ist das Licht aktiv
  • castShadows="false" - Erzeugt dieses Licht Schatten

Kindknoten:

  • (Nur für point oder spot) <position x="-196.095" y="-90.1458" z="563.122" /> - die Position der Lichtqulle
  • <colourDiffuse r="0.3" g="0.3" b="0.3" /> - Farbe des diffus reflekierten Lichts
  • <colourSpecular r="0.3" g="0.3" b="0.3" /> - Farbe des spekular reflektierten Lichts
  • <lightAttenuation range="200.0" constant="1.0" linear="0.0" quadratic="0.0" /> - Helligkeitsverteilung des Lichts mit der Entfernung
  • (Nur für spot) <spotlightrange inner="10" outer="20" falloff="1" />
  • (Nur für spot oder directional) <direction x="0" y="-1" z="0.5" /> - Richtung der Lichtstrahlen


<sound>

Attribute:

  • name="Bachplaetschern"
  • file="plaetschern.ogg"
  • volume = "1.0"

Kindknoten:

  • <position x="5.7285" y="-7.94034" z="18.4169" /> - Position des Geräuschs
  • <direction qx="0.0" qy="0.0" qz="0.0" qw="1.0" /> - Richtung des Geräuschs als Quaternion
  • <speed /> -
  • <falloff /> - Veränderung der Lautstärke mit der Entfernung

<gameobject>

Attribute:

  • class="ArnolfGrossschaedel" - GameObject-Klasse (siehe GOF)
  • state="IN_SCENE" - Status, möglich sind
    • IN_SCENE - in der Szene sichtbar
    • LOADED - unsichtbar, nicht in der Szene
    • HELD - gehalten, an einem anderen GameObject befestigt
    • IN_POSSESSION - beinhaltet, in einem andern GameObject verstaut (Kiste, Inventar)
    • READIED - benutzt, an einem anderen GameObject befestigt und benutzbar gemacht
  • id="4" - ID des GameObjects, zum Zugriff in Skripten, optional (ohne id-Attribut wird eine ID generiert)

Kindknoten:

  • <position x="29.9182" y="-0.6554" z="9.590" /> - Position des GameObjects
  • <rotation qx="0.0" qy="0.0" qz="0.0" qw="1.0" /> - Ausrichtung
  • <property name="description" type="STRING" data="Eine Tür, allerdings ist keine Klinke vorhanden" /> - Parameter für das GameObjekt (siehe GOF)

<particlesystem>

Attribute:

  • name="Steinstaubwolke" - Name des Partikelsystems
  • material="Techdemo/Steinstaubwolke" - Ogre-Material
  • active="true" - Ist das Partikelsystem aktiviert


<waypoints>

Im Waypoints-Abschnitt werden feste Punkte und Pfade in der Szene definiert, auf die später in Skripten zurückgegriffen werden kann

<landmark>

Attribute:

  • name="temple entrance" - Name des Punktes

Kindknoten:

  • <position x="5.7285" y="-7.94034" z="18.4169" /> - Position des Punktes

<landmarkpath>

Attribute:

  • name="bauerrogalfsbetrunkenerheimweg" - Name des Pfades

Kindknoten:

  • <landmark name="temple entrance" /> - Punkt im Pfad, muss als <landmark> definiert sein

<zones>

Im <zones>-Abschnitt werden Zonen in der Szene definiert. Betritt der Spieler eine solche Zone, werden ihre Lichter und Geräusche aktiv, verlässt er sie, werden die Lichter und Geräusche deaktiviert.

<zone>

Attribute:

  • name="default|anyname" - der Name der Zone, die Einstellungen der "default"-Zone sind aktiv, wenn keine Zone aktiv ist

Kindknoten:

  • <light name="sunlight" /> - Eins der Lichter aus dem <nodes>-Abschnitt
  • <sound name="defaultsoundtrack"/> name is processed by the soundmanager or a ruby script
  • <eaxpreset name="Large Hall" /> Aktiviert ein EAX-Preset bei Betreten der Zone, bei FMOD4 gibt es
    • "Alley"
    • "Arena"
    • "Auditorium"
    • "Bathroom"
    • "Carpetted Hallway"
    • "Cave"
    • "City"
    • "Concert Hall"
    • "Dizzy"
    • "Drugged"
    • "Forest"
    • "Generic"
    • "Hallway"
    • "Hangar"
    • "Living Room"
    • "Mountains"
    • "Off"
    • "Padded Cell"
    • "Parkinglot"
    • "Plain"
    • "Psychotic"
    • "Quarry"
    • "Room"
    • "Sewerpipe"
    • "Stone Corridor"
    • "Stone Room"
    • "Underwater"
  • <eax room="0" rolloff="0" reverb="0" environment="0" environmentsize="0" /> - Eigene EAX-Settings (zusammen mit <eaxpreset> nicht sinnvoll)
  • <trigger> - Trigger, die bei Betreten der Zone ausgelöst werden
  • <area> - Ausdehnung der Zone (mehrere möglich)

Trigger

Attribute:

  • classname="DoomsDayDevice" - Triggerklasse, von dieser wird ein Objekt erzeugt
  • name="uniquename" - Name des Triggers

Kindknoten:

  • <property name="message" type="STRING" data="You triggered the dooms day device!" /> - Einstellung für den Trigger, siehe GOF

Areale

Attribute:

  • type="box" Typ, möglich sind
    • box
    • sphere
    • ellipsoid
    • capsule
    • pyramid
    • mesh
  • subtract="true" - wird der Bereich von der Zone abgezogen, optional (ohne subtract wird der Bereich zur Zone hinzugefügt)
  • (bei mesh) meshfile="filename.mesh" - Meshfile für die Ausdehnungen der Zone

Kindknoten:

  • (nicht bei mesh) <size x="1" y="1" z="1"/> - Größe des Bereichs
  • <position x="0" y="0" z="0"/> - Position des Bereichs
  • <rotation qx="0" qy="0" qz="0" qw="1"/> - Ausrichtung als Quaternion
  • <offset x="0" y="0" z="0"/> - Offset
  • (nur bei mesh) <scale x="1" y="1" z="1"/> - Skalierungsfaktor des Meshes


<environment>

Im <environment> können Einstellungen für Himmel (<sky>) und Nebel (<fog>) vorgenommen werden.

<sky>

Attribute:

  • type="box" - Typ des Himmels, möglich sind
    • box
    • dome
  • material="ruchinsky" - Material der Himmelstextur
  • drawfirst="true" - Wird der Himmel gerendert, bevor der Rest Szene gerendert wird
  • distance="600" - Maximale Entfernung, aus der der Himmel sichtbar ist

Kindknoten:

  • (nur für dome) <skydomesettings curvature="10" tiling = "8"/>

<fog>

Attribute:

  • type="exp" - Typ der Nebelfunktion, möglich sind
    • exp - Nebeldichte steigt exponentiell mit der Entfernung (fog = 1/e^(Entfernung * Dichte))
    • exp2 - Nebeldichte steigt mit exp^2 (fog = 1/e^(Entfernung * Dichte)^2)
    • linear - Nebeldichte steigt linear von Start- bis Endentfernung
  • (nur für exp und exp2) expdensity="0.001" - Dichte
  • (nur für linear) start="0.0" - Startentfernung für den linearen Nebel
  • (nur für linear) end="1.0" - Entfernung des maximalen Nebels

Kindknoten:

  • <colour r="1.0" g="1.0" b="1.0"/> - Farbe des Nebels
Persönliche Werkzeuge
Link zur berliOS-Projektseite