User Tools

Site Tools


z:objekteditor

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
z:objekteditor [2008/09/07 19:15]
jjp angelegt
z:objekteditor [2015/08/23 13:59] (current)
Line 5: Line 5:
   * Eine vollständige Abstraktion zwischen Spiellogik und der grafischen Darstellung.    * Eine vollständige Abstraktion zwischen Spiellogik und der grafischen Darstellung. 
   * Objekte können erstellt bzw. verändert werden ohne eine 3D-Software zu bedienen.   * Objekte können erstellt bzw. verändert werden ohne eine 3D-Software zu bedienen.
 +
 +Daraus ergeben sich einige weitere Bequemlichkeiten. Zum Beispiel ist es möglich meshes zu verwenden für die keine Quelldateien vorliegen. Lästiges Exportiervorgänge die man bei einer Festlegung von spielrelevanten Parametern in 3D-Software hätte entfallen. Genaues Einhalten von Namenskonventionen wird überflüssig.
  
 ===== Monolithisches Spielobjekt ===== ===== Monolithisches Spielobjekt =====
  
 Diese abstrakte Darstellung beschreibt einen Objekttyp, der alle für das Spiel nötigen Objekte abbilden könnte - aus der Sicht des Objekteditors. D.h. Parameter die für die Konfigurierbarkeit uninteressant sind werden nicht aufgeführt. Diese abstrakte Darstellung beschreibt einen Objekttyp, der alle für das Spiel nötigen Objekte abbilden könnte - aus der Sicht des Objekteditors. D.h. Parameter die für die Konfigurierbarkeit uninteressant sind werden nicht aufgeführt.
 +
  
 ==== Konfiguration und Node-Tree ==== ==== Konfiguration und Node-Tree ====
Line 14: Line 17:
 Eine Definition besteht aus zwei Teilen. Die Konfiguration enthält alle für das Objekt globalen Parameter. Im Node-Tree wird die Hierarchie und räumliche Anordnung der einzelnen Teile des Objekts beschrieben. Beim Erstellen eines Objekts im Editor würde man dann zunächst die Konfiguration anfertigen. Daraus leitet sich ab welche Nodes man im Node-Tree platzieren darf bzw. muss.  Eine Definition besteht aus zwei Teilen. Die Konfiguration enthält alle für das Objekt globalen Parameter. Im Node-Tree wird die Hierarchie und räumliche Anordnung der einzelnen Teile des Objekts beschrieben. Beim Erstellen eines Objekts im Editor würde man dann zunächst die Konfiguration anfertigen. Daraus leitet sich ab welche Nodes man im Node-Tree platzieren darf bzw. muss. 
  
-=== Konfiguration === +http://devel.oddbeat.de/wiki/z:entityparameter
- +
- +
-== Datentyp GameObject == +
- +
-  * Type **type**  +
-  * Role **role** - Konkrete Rolle im Spiel für das Objekt. +
-  * typ? **boundingShape** +
-  * list<AnimState> **animStates** +
-  * flag **vulnerable**  +
-  * flag **destructible** +
-  * list<GameObject*> **wreckages** - Sofern das Objekt zerstörbar ist kann eine Liste möglicher Wracks angegeben werden +
-  * int **numTurrets** - Anzahl installierbarer Geschütze, nicht die der Kanonen bei Fahrzeugen. Ein Wert >0 hier würde beispielsweise Nodes für die Geschützpositionen "freischalten"+
-  * list <(Turret, int slotID)> **turretMapping** - Liste legaler Paare von Geschütztyp und Sot. +
-  * flag **hasEntrance** +
-  * flag **hasDriver** +
-  * list<Robot> **allowedDrivers** +
-  * mapping<Robot, Driver> **driverMapping** - Welches Fahrerobjekt bei welchem Roboter wählen? +
-  * flag **driverLooksOut** +
-  * mapping<Driver, int lookOut> **lookOutProbability** - Für jeden Fahrer ein Wert der bestimmt wie häufig er aus dem Fahrzeug schaut. +
-  * int **numPassengers** +
-  * list<Robot> **allowedPassengers** +
-  * mapping<Robot, Passenger> **passengerMapping** +
-  * int **numGuns**  +
-  * list <(Gun, int slotID, Robot)> **gunMapping** +
-  * flag **movable** +
-  * real **moveSpeed** +
-  * real **turnSpeed** +
-  * real **acceleration** +
-  * int **numWheels** +
-  * int **numTankTracks** +
-  * int **hitPoints** +
-  * mapping<damageType, real multiplier> **armorMapping** +
-  * flag **repairable** +
-  * real **repairMultiplier** +
-  * real **repairDistance** +
- +
-== Datentyp Gun == +
- +
-  * angle **maxTurnHorizontal** +
-  * angle **maxTurnVertical** +
-  * flag **exitPoint** - Ist der Austrittspunkt der Kanone mit ihrer Position identisch? +
-  * real **shootDelay** +
-  * real **shotDuration**  +
-  * enum **projectileType** +
-  * GameObject* **hitEffect** +
-  * enum **damageType** +
-  * real **damage** +
-  * real **range** +
-  * enum **controlledBy** - Ist der Fahrer, ein bestimmter Passagier oder niemand notwendig um die Kanone zu bedienen? +
-  * flag **visibleIfEmpty** - Ist die Kanone sichtbar, wenn der zugehörige Roboter nicht da ist? +
-  * flag **repairDevice** +
-  * real **repairSpeed** +
- +
-== Enumeration Type == +
- +
-Der Typ könnte schon viele Parameter ausschließen für die meisten Objekte, und vorgeben welche AnimationStates existieren. Mögliche Werte: +
- +
-  * Building +
-  * Vehicle +
-  * Robot +
-  * Driver +
-  * Passenger +
-  * Decal +
-  * Wreckage +
- +
-=== Node-Tree === +
- +
-Je nach Konfiguration ergibt sich eine Menge von notwendigen Nodes. Zusätzlich können Nodes ohne Funktion platziert werden (bei Objekten die aus mehreren Teilen mit unterschiedlichem Material bestehen z.B.). +
- +
-== Node == +
- +
-  * NodeRole **role** - welche der möglichen bzw. erlaubten Funktionen übernimmt die Node? +
-  * Mesh **mesh** +
-  * mapping<AnimState, material> **materialMapping** +
-  * mapping<AnimState, (list<(meshAnimation, probability)>, list<(meshAnimation, probability)>, list<(meshAnimation, probability)>> **animMapping** - Welche Mesh-Animationen werden mit welcher Wahrscheinlichkeit für die 3 Teile (Start, Mitte, Ende) eines AnimationStates gewählt? +
-  * mapping<AnimState, ParticleEffect> **particleMapping** - Welcher Partikeleffekt wird bei welchem AnimationState abgespielt? +
-  * Vector3 **position** +
-  * Quaternion **orientation** +
-  * Vector3 **scale** +
- +
- +
  
  
  
  
z/objekteditor.1220807753.txt.gz · Last modified: 2015/08/23 14:03 (external edit)