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
