World of Gothic Archiv > Editing
spacer tutorial
Seite 1 von 1  1 
08.12.2001, 22:02 #1
roXtar
Beiträge: 341
spacer tutorial
ich mach mal nen extra thread für das spacer tutorial von bert speckels, da es nicht mehr auf seinem server liegt.
ich hoffe das bert da nix dagegen hat

roxtar
08.12.2001, 22:03 #2
roXtar
Beiträge: 341
Was kann der Spacer?
Was kann der Spacer?
Es ist einfacher zu beschreiben, was der Spacer nicht kann. Deshalb fange ich damit einmal an:

Der Spacer kann also nicht:
Eine 3D-Welt erstellen
Dazu ist ein Programm zur Erstellung von 3D-Meshes nötig. Allen voran 3D-Studio Max.
Die Welt mit Menschen und Monstern (NPCs) beleben
Das übernehmen komplett die Scripte. Der Spacer kann die Welt nur für lebende Wesen vorbereiten, beispielsweise ein Wegnetz verlegen.
Die Story gestalten
Auch das wird vollständig von den Scripten erledigt, und auch hier bereitet der Spacer nur vor: Events in die Welt einfügen, Gegenstände verteilen etc....
Eines ist also klar: Der Spacer ist nur ein Tool von vielen, das bei der Entwicklung von Gothic zur Verfügung stand. Ganz vereinfacht betrachtet sieht die Entwicklung eines Spiels wie Gothic wie folgt aus:
Die 3D-Welten und Gegenstände, Wesen etc. mit 3D-Studio erstellen und dabei zahlreiche Vorgaben beachten
Solche Vorgaben sind z.b.
Welche Höhe können (N)PCs erklettern?
Welche Schrägen können der (N)PCs noch begehen?
Welche "Gräben" können der (N)PCs überspringen?
Wie gross darf ein maximales Polygon sein?
Wo liegt die vertretbare Obergrenze für die Polygonanzahl?
und vieles andere ...
Neben Leveln werden auch alle anderen 3D-Objekte mit 3D-Studio erstellt:
Bäume und Sträucher
Zäune, Steine, Feuerstellen
Items und MOBs (Winden etc.)
vieles mehr ...
Weitere benötigte Daten erstellen

Texturen
Item-Instanzen (werden in den Scripten erzeugt)
Die erstellte 3D-Welt als 3DS-Datei in den Spacer laden und mit den anderen erstellten Gegenständen und Texturen beleben.
Hier ein Ausschitt aus den Aufgaben:
Die Welt texturieren: d.h. Texturen auf Polygone legen und ausrichten. Dabei kann ein Texture-Pool verwaltet werden.
Bäume, Zäune, Sträucher, Fackeln und mehr in die Welt einfügen
Items (Tränke, Waffen etc.) und Truhen mit Items entsprechend der geplanten Story einsetzen
Das Wegenetz für die NPC-AI erstellen. NPCs können sich zwar frei bewegen, benötigen aber ein solches Wegenetz, um auch weiter entfernte (>10m?!) ohne Probleme zu finden.
Geräusche (Sounds und Daytime-Sounds) platzieren
Die Welt ausleuchten, d.h. Lichtobjekte setzen
Ereignisse (Events) für die Story erstellen. Das sind z.B. die berüchtigten Winden, Schalter, Fallen, Rätsel u.v.m.
und einige andere Dinge: Kamerafahrten,
Die Story in den Scripten niederschreiben und mit der Welt verknüpfen
Dies ist ein wesentlicher Teil, der aus einer recht statischen Welt, erst ein lebendiges Etwas ... ein Spiel ... erstellt:
NPC-Instanzen (Menschen und Monster) erzeugen. Diese werden mit Körpermeshes, Animationen etc. versorgt
Den NPCs Tagesabläufe verpassen. Sie z.B. am Tage zu einer Arbeitsstelle zu schicken und am Abend zurück ins Bett.
Die Reaktion der NPCs auf den Spieler programmieren: Das ist zum einen die allgemeine NPC-AI sowie diverse Sonderreaktionen (ich sage nur "Mud")
Dialoge mit dem Spieler scripten und in Quests (Aufträge) einbinden.
Die NPCs über ein zentrales Script in die Level einfügen.
Ihr seht: Der Spacer übernimmt das Ausstatten der Welt mit allem, was nicht lebt (ausgenommen die Pflanzen vielleicht). So wird aus einem schnöden langweiligen 3D-Mesh eine schon richtig gemütliche oder ungemütliche Welt, der allerdings noch ein wesentlicher Bestandteil fehlt: Die Lebendigkeit von Menschen und Monstern.

--------------------------------------------------------------------------------
Ende.
Machs gut und danke für den Fisch
08.12.2001, 22:07 #3
roXtar
Beiträge: 341
Das Verzeichnis der Vob-Typen
Das Verzeichnis der Vob-Typen
Die Basisklasse für alle Objekte, die Ihr in der Welt sehen könnt, und einige, die Ihr nicht sehen könnt, ist zVob. Davon leiten sich zahlreiche Klassen ab, die ihre eigenen speziellen Eigenschaften mitbringen.

Aber hier einmal eine Erläuterung, was ein Vob eigentlich ist:

--------------------------------------------------------------------------------
Ein Vob ist "virtuelles Objekt". Es hat eine Position und Orientierung im Raum und kann durch ein explizit wählbares "Visual" visualisiert werden.

Die Welt wird mit Objekten (= Vob, "virtuelles Objekt") bevölkert. Jedes Objekt gehört einer Klasse an, die die Eigenschaften und Fähigkeiten dieses Objektes festlegt (z.B. Klasse "oCNPC", oder "zCTrigger"). Die Objekte kommunizieren untereinander und mit der GothicEngine über einen festgelegten Satz von Nachrichten (= Messages oder EventMessages).

Beim Design der Klassen und Nachrichten wurde das Ziel verfolgt eher viele spezialisierte verschiedene Klassen zu haben, die über relativ wenige Arten von Nachrichten kommunizieren, als wenige übermächtige Klassen, die über eine Unzahl von verschiedenen Nachrichten angesteuert werden müssen. So ist z.B. eine häufig benutzte Nachricht die "OnTrigger" Nachricht, die ein Objekt "anstößt" bzw. aktivieren soll. Was nun genau ein Objekt tut, das eine solche Nachricht empfängt, hängt von der Klasse des jeweiligen Objektes ab.

Ein Vob-Objekt der Klasse zCMover würde sich in Bewegung setzen, während ein Vob-Objekt der Kasse zCEarthquake ein lokales Erdbeben auslösen würde. Man kann eine Vob-Klasse auch als ein "Modul" sehen, das geschrieben worden ist, um ganz bestimmte Aufgaben in der Welt zu erfüllen. Die Vob-Klassen sind in einer Hierarchie angeordnet, wobei eine Klasse an einer bestimmten Position in der Hierarchie alle Eigenschaften und Fähigkeiten aller Klassen beerbt, die sich in der Hierarchie über ihr befinden.
--------------------------------------------------------------------------------


Im Folgenden habe ich einmal die wichtigsten Klassen in einem Hierarchiebaum aufgelistet. Wie gesagt, alle Klassen sind von zCVob eingeleitet. Nicht fett gedruckte Vob-Klassen werden in der Regel nicht direkt in die Welt eingefügt. Einige Vob-Klassen, die für das Editieren der Welt völlig unwichtig sind, habe ich weggelassen.

Im Spacer werden (teilweise) weitaus ausführlichere Erläuterungen auch im Hilfefenster sichtbar, wenn man die entsprechende Klasse im Vob-Hierarchiebaum des Objekt-Fensters selektiert. Auch zu den zahlreichen Eigenschaften eines Objektes gibt es oft gute Informationen.
oCVob

oCNpc
oCNpc repraesentiert die immens wichtige Klasse der NPCs. Ein NPC-Objekt wird in den Scripten angelegt und nicht (anders als alle Gegenstände) im Spacer sondern über eine Scriptfunction an den jeweiligen Wegpunkten in die Welt eingefügt.
oCItem
Ein Gegenstand, den ein (N)PC mit sich herumtragen kann und mit dem je nach Einstellung verschiedene Dinge gemacht werden können (Essen, Anziehen etc.). Ein Item-Objekt wird in den Scripten angelegt.
oCMOB
Ein Objekt, das optional bewegt und/oder getragen werden kann.
oCMobInter
Ein Objekt mit dem (N)SCs nach dem Interaktionsschema interagieren können.
oCMobBed
Ein Bett zum reinlegen
oCMobFire
Eine Feuerstelle
oCMobLadder
Eine Leiter zum hochklettern
oCMobSwitch
Ein Schalter mit zwei Zuständen ( an/aus )
oCMobWheel
Ein Drehrad mit 4 Zuständen
oCMobLockable

oCMobContainer
Objekte, die Items beinhalten
oCMobDoor

zCCSCamera

zCCamTrj_KeyFrame

zCEffect

zCEarthquake
Reagiert auf OnTrigger und OnUntrigger Messages und loest ein Erdbeben aus (Camera-Tremor).
zCPFXControler
Objekte dieser Klasse beherbergen Partikel-Effekt Visuals und steuern diese über OnTrigger (einschalten) bzw. OnUntrigger (ausschalten).
zCVobAnimate
Objekte dieser Klasse sollte ein Visual zugewiesen bekommen, das Animationen abspielen kann (z.B: zCModel oder zCMorphMesh) ...
zCVobLensFlare
Diese Vob-Klasse verhält sich genau wie die zCVob Basisklasse. Allerdings kann der Name eines LensFlare-Effektes angegeben werden, der mit dem Objekt zusammen dargestellt werden soll. LensFlare-Effekte werden in dem File "lensflare.zen" definiert.
zCVobScreenFX
Mit einem Effekt-Vob dieser Klasse können spezielle Bildschirmeffekte ausgelöst und gesteuert werden, wie z.B. Blenden, "Kino-Balken" und FOV-Morphs. Diese Effekte werden durch Nachrichten der Klasse zCEventScreenFX an dieses Objekt gesteuert.
oCVisualFX

oCVisFX_Lightning

oCVisFX_MultiTarget

zCTouchDamage

oCTouchDamage
Objekte dieser Klasse fügen anderen Objekten, die sie berühren, Schaden zu (praktisches Beispiel: Feuer).
zCTriggerBase
Dies ist ein einfacher Trigger, der auf Berührung reagiert. Bei Berührung (OnTouch) und bei eingehender OnTrigger Nachricht wird eine OnTrigger Nachricht an alle Vobs mit dem Namen 'triggerTarget' verschickt. Bei Beendung einer Berührung (OnUntouch) oder eingehender OnUntrigger Nachricht werden OnUntrigger Nachrichten verschickt.
zCCodeMaster
Bei einem CodeMaster kann eine Liste von Namen von sogen. 'slaveVobs' angegeben werden. Ein CodeMaster schickt erst dann ein OnTrigger-Event, wenn alle slaveVob ihm eine gesendet haben ...
zCMessageFilter
Eingehende OnTrigger und OnUntrigger Nachrichten werden in andere Nachrichten umgewandelt, die dann an das angegebene triggerTarget weitergeschickt werden.
zCMoverControler
Objekte dieser Klasse werden benutzt, um speziell zCMover anzusteuern, die sich im MoverBehavior 'MB_NSTATE_SINGLE_KEYS' befinden. Bei diesen Movern ist jeder Keyframe ein einzelner State und kann gezielt angesteuert werden. Objekte der Klasse zCMoverControler reagieren auf OnTrigger Nachrichten und verschicken dann an ihr triggerTarget, dass i.d.R. ein zCMover sein sollte, eine einstellbare Nachricht.
zCTriggerUntouch
Dieser Trigger sendet eine OnTrigger Nachricht an sein triggerTarget, sobald sich die Berührung zu dem letzten nicht-lebenden Objekt loest wird. Dieses Objekt reagiert nicht auf eingehende OnTrigger und OnUntrigger Nachrichten.
zCTrigger
Die Aufgabe eines Triggers ist es Nachrichten zu empfangen und zu filtern ("ActivationFilter"). Nachrichten, die durch den Filter gelangen, führen zu dem Verschicken von OnTrigger Nachrichten an weitere Vobs ("FireBehavior").
zCMover
Die wichtigste Eigenschaft eines Movers ist die Fähigkeit sich zu bewegen, entweder auf einer Kette von Keyframes, oder falls das Visual des Movers ein Model ist, durch die Animation des Models.
oCTriggerChangeLevel
Dieser Trigger aktiviert einen Levelwechsel. Dabei wird der Levelname im Feld 'levelName' eingetragen (inklusive Unterverzeichnisse und Endung). In 'startVobName' steht der Name des Vobs, wo der Spieler im neuen Level erscheint.
oCTriggerScript
Die Klasse oCTriggerScript ergänzt den zCTrigger um eine zusätzliche Eigenschaft: Beim Triggern kann zusaetzlich eine Scriptfunktion ausgeführt werden.
zCTriggerList
Diese Klasse ist eine Erweiterung der zCTrigger Klasse. Statt nur einem TriggerTarget kann hier eine ganze Liste von TriggerTargets mit dazugehörigen FireDelays angegeben werden. Die Abarbeitung der Liste kann auf verschiedene Weisen erfolgen (siehe "listProcess"). Die TriggerTarget und FireDelay Felder des zCTrigger sind zu ignorieren. Die Deaktivierung (z.B. über OnUntrigger Nachrichten) führt zur Sendung einer OnUntrigger Nachricht an aller TriggerTargets der Liste.
zCTriggerTeleport

zCVobLevelCompo

zCVobLight
dyamische oder statische Lichtquellen
zCVobSpot
Ein VobSpot beschreibt eine Position und Orientierung im Raum. An diesen Positionen können dann im Spiel zur Laufzeit entsprechende Objekte eingefügt oder hinbewegt werden. Eine andere Bezeichnung ist auch 'Freepoint'.
zCVobStartpoint
An dem Startpoint wird der Spieler beim Start eines Levels eingefügt, wobei er Position und Ausrichtung übernimmt.
zCVobWaypoint
Ein Waypoint beschreibt eine Position und Orientierung im Raum. Waypoints werden mit anderen Waypoints zu einem WayNet verknüpft.
zCZone

oCZoneMusic
Mit Objekten dieser Klasse werden in der Welt Volumina angelegt, in denen sich die Wiedergabe eines Musikthemas steuern laesst.
oCZoneMusicDefault
Dieses Objekt bezieht sich auf die Klasse oCZoneMusic und setzt den levelweiten Defaultwert. Es muss genau ein solches Objekt im Level vorhanden sein.
zCVobSound
VobSound Objekte sind frei im Raum positionierbare, punktförmige "Geräuschquellen". Eine OnTrigger Nachricht schaltet sie ein, während eine OnUnTrigger Nachricht sie ausschaltet.
zCVobSoundDaytime
Diese Geräuschquellen sind nur zu der angebenen Tages/Nachtzeit vernehmbar. Es kann optional unter "sndName2" der Name eines zweiten Sounds angegeben werden, der genau außerhalb der angegeben Tages/Nachtzeit gespielt wird. An den Zeitgrenzen werden die Sounds im Verlauf langsam ein- und ausgeblendet. Die Zeiten sind in Stunden anzugeben. Achtung: 13.5 = 13:30 ! (Praktisches Beispiel: tagsüber Vogelgezwitscher, nachts Grillen).
zCZoneReverb
Mit Objekten dieser Klasse wird die Halleigenschaften des Raumes festgelegt, der sich als maximaler Ellipsoid innerhalb der BBox des zCZoneReverb Vobs befindet. Der Einfluss des Halleffektes ist zum Zentrum des Volumens maximal und nimmt du den Rändern hin ab. Mit einer Einstellung von "innerRangePerc" >=1 könnte aber z.B. bewirkt werden, daß der Effekt überall im Volumen gleichstark ist.
zCZoneReverbDefault
Dieses Objekt bezieht sich auf die Klasse zCZoneReverb und setzt den levelweiten Defaultwert. Falls sich die Kamera nicht in einem Objekt der Klasse zCZoneReverb befindet, werden die Werte aus einem Objekt dieser Klasse entnommen. Die BBox von Objekten dieser Klasse ist irrelevant, es kann nur ein solches Objekt pro Level geben.
zCZoneVobFarPlane

zCZoneVobFarPlaneDefault

zCZoneZFog
Mit Objekten dieser Klasse werden in der Welt Volumina angelegt, in denen sich der Tiefen-Z-Nebel steuern laesst. Die Volumen werden über die BoundingBox der Objekte angegeben und koennen beliebige Formen haben. Es koennen sich auch mehrere Fog-Zonen durchdringen. Beim Rendern einer Szene werden alle Fog-Zonen ermitteln, in denen sich die Kamera befindet, und der Einflüss einer jeden Zone wird zu einem Wert verrechnet, der die sichtbare Zone-Distanz festlegt.
zCZoneZFogDefault
Dieses Objekt bezieht sich auf die Klasse zCZoneZFog und setzt den levelweiten Defaultwert. Falls sich die Kamera nicht in einem Objekt der Klasse zCZoneZFog befindet, werden die Werte aus einem Objekt dieser Klasse entnommen. Die BBox von Objekten dieser Klasse ist irrelevant, es kann nur ein solches Objekt pro Level geben.
Alle VOBs haben Eigenschaften. Diese werden im Objects-Dialog angezeigt und können dort auch verändert werden. Bei der Selektion einiger Eigenschaften erscheint im Hilfefenster ein Informationstext zu dieser Eigenschaft.

In diesem Bild sieht man zum Beispiel die Eigenschaften eines EarthQuake-Objektes. Im Ordner "Vob" befinden sich die grundlegenden zCVob-Eigenschaften. Weitere spezielle Einstellungen sind im Ordner EarthQuake zu finden, wie z.B. die Dauer, der Radius und die Amplitude des Bebens.


--------------------------------------------------------------------------------
Ende.
Machs gut und danke für den Fisch
08.12.2001, 22:09 #4
roXtar
Beiträge: 341
Materialien und Texturen
Texturieren
Um einen Level oder auch Gegenstände zu texturieren, geht man wie folgt vor:
Den Level oder den Gegenstand (.3DS oder .ZEN) in den Spacer laden
Das Mesh compilieren. Dabei die Checkbox "EditorModus" aktivieren
Nach dem Compilieren können nun mit der Maus einzelne oder auch ganze Polygongruppen selektiert werden:
Mit einem Mausklick können einzelne Polygon selektiert bzw. deselektiert werden.
Bei gedrückter Maustaste kann man mit der Maus über mehrere Polygone "fahren" und diese so nacheinander selektieren bzw. deselektieren.
Mit der Taste X wird eine Selektion entfernt
Mit der Leertaste wird die Selektion verborgen, die Texturierung wird also kurzzeitig sichtbar
Um den selektierten Polygonen nun ein Material (inklusive seiner Textur) zuzuweisen, benutzt man die beiden oberen Button in der vertikalen Toolbar:
"Apply material with mapping" weist den Polygonen das im Materialeditor ausgewählte Material zu und wendet das eingestellte Mapping (Art und Weise, wie die Textur auf die Polygone "tapeziert" wird) an.
"Apply material without mapping" führt kein erneutes Mapping durch. Dadurch bleibt die Positionierung, Skalierung und Rotation der Textur auf den Polygonen erhalten.
Bei gedrückter Leertaste können die Texturen auf den Polygonen verschoben, skaliert und rotiert werden. Mit der Taste G kann dabei ein LockGrid eingeschaltet werden (einstellbar in den Spacer-Settings):
Die Cursortasten verschieben die Textur
Mit dem Ziffernblock wird die Textur skaliert
ENTF und BILDAB rotiert die Texur, ebenso wie EINFG und BILDAUF (andere Schrittweite)
Mit PAD_DIV und PAD_MUL kann man die Texur horizontal scheren
Mit PAD_MINUS und PAD_PLUS kann man die Texur vertikal scheren
Schliesslich kann man mit PAD_EINFG und PAD_ENTF die Textur spiegeln
Materialien
Der Materialeditor ist ein wichtiges Werkzeug im EditorModus des Spacers. Ein Material besitzt als wohl wichtigste Eigenschaft eine Textur. Weitere wichtige Eigenschaften lassen sich entweder im Materialeditor oder im Objects-Dialog festlegen.

Materialpool und Materialliste

In der Materialliste werden die zur Verfügung stehenden Materialien aufgelistet. Der Spacer verwaltet einen Materialpool, der in verschiedene Material-Filter unterteilt ist. In der Datei Matlib.ini (in _work/tools/data) werden die einzelnen Filter gespeichert. Pro Filter wird dort eine pml-Datei angelegt, die alle Materialien enthält. Das Speichern des Materialpools kann über das Settings-Menü durchgeführt werden (Save Materialfilter).

Kann eine Textur aus dem Level keinem Filter zugeordnet werden, landet diese erst einmal im TRASH-Filter. Mit den beiden Buttons NEW und DEL in der Materialliste können neue Filter angelegt bzw. vorhandene entfernt werden. Das Zuordnen von Materialien zu einem Filter geschieht im Materialeditor.

Um ein Material in den Materialeditor bzw. den Objects-Dialog zu laden, reicht ein einfacher Mausklick auf das gewünschte Material in der Liste.

Material Editor
Der Materialeditor bietet einige Möglichkeiten, die hier kurz aufgezählt sind:
Anlegen neuer Materialien
Zweisung von Texturen
Filterzuordnung
Gruppenzuordnung
Zuordnung zu Quickslots
Wir wollen nun einmal ein neues Material anlegen. Dazu klicken wir auf den Button NEW und geben einen Namen für das Material ein. Danach können wir noch wählen, in welchen Materialfilter es gespeichert werden soll. (Bugalarm: Das Fenster nicht über das Schliessen-Kreuz beenden!). Nun können wir dem Material noch eine Textur (Button "...") und andere Eigenschaft zuweisen.

Das Material kann einfach dadurch wieder entfernt werden, indem man Ihr den Filter "TRASH" (daher der Name) zuordnet.

Nun wollen wir einen etwas einfacheren Weg einschlagen um Materialien zu erzeugen. Vor allem wollen wir gleich mehrere mit einem Schlag anlegen. Dazu benutzen wir den ADD-Button im Materialeditor. Nun öffnet sich ein Dateiauswahl-Dialog, mit dem wir uns die Texturen auswählen, die wir als neues Material in den Materialpool laden möchten. Eine Auswahl mehrerer Texturen ist möglich. Nachdem wir die ausgewählten Texturen bestätigt haben, erscheint wieder der bekannte Dialog zur Auswahl eines Filters. Man kann die Materialien

erst einmal in den TRASH legen (wenn man das Material nur kurzzeitig benötigt),
einen vorhandenen Filter zuordnen oder
gleich in einen neuen Filter speichern.
Nun wollen wir vorhandene Materialien einem Filter zuordnen. Dazu gibt es im Materialeditor die Auswahlbox "Filter". Nun, es ist einfach, ein einzelnes Material in einen Filter zu verschieben. Doch wird es umständlicher, wenn wir dies mit einer ganzen Menge von Materialien machen wollen. Dazu können wir bei einer Textur aus dem Zielfilter den Button FIX aktivieren. Dann wird beim jedem Mausklick in der Materialliste das angeklickte Material in den fixierten Filter geschoben.

Eine weitere Unterteilung der Materialien findet in Form von fest vorgegebenen Materialgruppen statt. Diese bestimmen einige weitere Eigenschaften des Materials (z.B. Schrittgeräusche).

Die QuickSlots wurden eingeführt, um das einfache Texturieren im Freelook-Modus (Taste F3) zu ermöglichen. In diesem Modus können die Polygone nämlich sehr bequem mit der Maus selektiert (linke Maustaste) und einer ausgewählten Textur zugewiesen (rechte Maustaste) werden. Mit den Quickslot-Tasten (1-9) lassen sich nun maximal 9 Materialien direkt auswählen, ohne aus dem Freelook-Modus auszusteigen.

Weitere Einstellungen im Materialeditor bestimmen das Mapping, mit dem die Material-Textur auf die Polygone gelegt wird (siehe "Texturierung") sowie die Feinheit, mit der Texturen bewegt werden können ("Tex.Move"). Diese Einstellung hat bei eingeschaltetem Grid (Taste G) alledings eine Wirkung.

Die Farbe eines Materials gibt an, wie dieses gezeichnet werden soll, wenn die Textur nicht dargestellt wird (z.B. wenn die Textur nicht gefunden wurde). Hier bietet sich in den meisten Fällen die Durchschnittsfarbe (Avg.Color) an. Die Farbe wird als entsprechend farbiger Rand um die Texur im Materialeditor angezeigt.

Der Alpha-Wert einer Textur gibt schliesslich die Transparenz einer Textur an: 0=Komplett durchsichtig, 255 = komplett undurchsichtig.

Materialeigenschaften

Ein paar weitere Einstellungen können im Objects-Dialog vorgenommen werden (beim Editieren nicht den Button APPLY vergessen!). Die einzelnen Felder sind in der Online-Hilfe des Spacers (siehe Help-Fenster) eigentlich recht gut erklärt.


--------------------------------------------------------------------------------
Ende.
Machs gut und danke für den Fisch
08.12.2001, 22:34 #5
roXtar
Beiträge: 341
hier gibts das und noch mehr
http://www.worldofgothic.de/dl/inde...nloads&cat_id=9
13.12.2001, 13:37 #6
roXtar
Beiträge: 341
divx-spacer tutorial
ich hab nochmal mit malek geredet, und er hat mir versprochen, dass er - wenn nichts dazwischenkommt - im laufe der nächsten woche ein video-tutorial zur benutzung des spacers machen wird.
er wird darin die basics in der benutzung des spacers erklären.
also freut euch schonmal drauf.


gruss
roXtar
13.12.2001, 14:21 #7
Malek
Beiträge: 6.225

Dank dir vielmals roX :D
Zur Belohnung gibts ein "Aktuell" für dich ;)
27.12.2001, 20:59 #8
Dr.Wieselkopp
Beiträge: 354

quote:
Die 3D-Welten und Gegenstände, Wesen etc. mit 3D-Studio erstellen und dabei zahlreiche Vorgaben beachten
Solche Vorgaben sind z.b.
Welche Höhe können (N)PCs erklettern?
Welche Schrägen können der (N)PCs noch begehen?
Welche "Gräben" können der (N)PCs überspringen?
Wie gross darf ein maximales Polygon sein?
Wo liegt die vertretbare Obergrenze für die Polygonanzahl?
und vieles andere ...


Und die genauen Vorgaben für Gothic Level findet man bitte wo?
Hab bisher noch nirgends irgendwelche Angaben dafür in den Tutorials für Gothic gefunden.
08.01.2002, 17:32 #9
Sezer
Beiträge: 988

Na Malek wo ist das Viedo-Tutorial geblieben.
08.01.2002, 21:39 #10
Malek
Beiträge: 6.225

quote:
Zitat von Sezer
Na Malek wo ist das Viedo-Tutorial geblieben.


Ich ärgere mich noch mit der Kompression des Videos rum... roXtar hat sich dieses Jahr noch nicht blicken lassen, ich glaube aber ich brauche seine Hilfe um das Video von der Grösse her erträglich zu halten.

Gruss
Malek
09.01.2002, 03:11 #11
roXtar
Beiträge: 341

hi leute,
tja wo war ich,
ich hab in den letzten tagen mal an der beta von dark age of camelot gezockt.
die grafik ist nicht so hübsch wie bei gothic, aber die möglichkeit mit mehreren tausend leuten zusammen zu spielen, ist schon atemberaubend.
ich hab vorher noch nie an einem massive multiplayer game gezockt, wenn gothic diese möglichkeit hätte, wäre das der totale überhammer.
wär geil, wenn pb mal ein massive multiplayer game fürs gothic universum machen würde.
bei daoc gibt es übrigens auch bannsänger, wie in unserem mod.(die heissen nur anders)


zu den codeceinstellungen:
eigentlich isses gar nicht so schwer.
als codec nimmst du den divx.
data rate ca. 900kbit/s
die framerate kannst du ruhig niedrig einstellen, die üblichen 24 fps sind fuer diesen fall zu viel, nimm da mal 5-10 fps.
audio 11khz 8bit mono
interleave audio every 1 frame.

@ doc wieselkopp
zu deiner frage kann ich dir vorerst keine antwort geben, aber es wäre doch gelacht, wenn wir das nicht zusammen rausbekommen.
schicke mir mal ne private message mit deiner e-mail addy und icq-nummer.
ich melde mich dann bei dir.

gruss
roXtar
14.01.2002, 03:05 #12
Boss_mod_man
Beiträge: 212

@Malek ich habe ein gutes tool zum viedeo kompriemiren kanst du mir bitte mal sagen was du für ein format hast und wie groß es jetzt ist !!! dann kann ich dir vieleicht helfen!!!
21.01.2002, 14:24 #13
Dr.Wieselkopp
Beiträge: 354

Hossa.

Meine oben gestellte Frage habe ich mir inzwischen schon selbst beantwortet. Die meisten der fürs Level Design wichtigen Werte findet man in der Datei Species.d

Hier die Werte für den normalen Player Character:

// HUMAN
SWIM_TIME [GIL_HUMAN] = TIME_INFINITE; // Verweildauer im Wasser ohne Schaden (in Sek.)
DIVE_TIME [GIL_HUMAN] = 30; // Verweildauer im Dive ohne Schaden (in Sek.)
WATER_DEPTH_KNEE [GIL_HUMAN] = 65; // Wassertiefe ab der WWalk-Mode aktiv (in cm)
WATER_DEPTH_CHEST [GIL_HUMAN] = 140; // Wassertiefe ab der Swim-Mode aktiv (in cm)

STEP_HEIGHT [GIL_HUMAN] = 60; // Stufenhöhe für autom. Höhenüberwindung
JUMPLOW_HEIGHT [GIL_HUMAN] = 105; // Höhe bis zu der JumpUpLow benutzt wird (in cm)
JUMPMID_HEIGHT [GIL_HUMAN] = 205; // Höhe bis zu der JumpUpMid benutzt wird (in cm)
JUMPUP_HEIGHT [GIL_HUMAN] = 200; // Sprunghöhe wenn höher als JumpUpMid (in cm) Ist effektiv höher, da von Boden bis Körpermitte gemessen!!!

SLIDE_ANGLE [GIL_HUMAN] = 45; // Winkel ab der Model in Slide (in Grad)
DISABLE_AUTOROLL [GIL_HUMAN] = 0;
SURFACE_ALIGN [GIL_HUMAN] = 0;

// Turn-Speed für den Spieler ist PROGRAMMINTERN auf 100° im Normalmodus und 200° im Kampfmodus eingestellt!
// der Wert gilt nur für NSCs!
TURN_SPEED [GIL_HUMAN] = 270;

// Kletterkanten - Winkel
CLIMB_HEADING_ANGLE [GIL_HUMAN] = 45;
CLIMB_HORIZ_ANGLE [GIL_HUMAN] = 30;
CLIMB_GROUND_ANGLE [GIL_HUMAN] = 30;

// Fallhöhe / Fallschaden
FALLDOWN_HEIGHT [GIL_HUMAN] = 500; // Fallhöhe in cm ohne Schaden zu nehmen
FALLDOWN_DAMAGE [GIL_HUMAN] = 20; // Schaden in HPs für jeden weiteren Meter

// Kampf
FIGHT_RANGE_BASE [GIL_HUMAN] = 60; // Bip01 bis BBox
FIGHT_RANGE_FIST [GIL_HUMAN] = 50; // BBox bis "Attack-Limb"

//FIGHT_RANGE_1HS [GIL_HUMAN] = 160; // Reichweite 1hS (Komplettrange, keine Kombination von Waffenlänge und Fist-Range!)
//FIGHT_RANGE_1HA [GIL_HUMAN] = 160;
//FIGHT_RANGE_2HS [GIL_HUMAN] = 200;
//FIGHT_RANGE_2HA [GIL_HUMAN] = 200;

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++

Doch die Antwort wie groß denn nun ein Polygon sein darf, wie viele Polys maximal angezeigt werden sollten und wie man sich diesen Wert überhaupt anschauen kann fehlen mir noch. Da müssen wohl die Piranha herhalten, denn wo anders wird man diese Informationen wohl nciht ehrbekommen.
Seite 1 von 1  1