Released: Importer 18beta1, ovlmake 0.4 und Flatridetutorial

Belgabor
Sehr seltsam, so was hatte ich noch nie. Das "Animation Template" ist ein Überbleibsel aus der Zeit als ich noch keine echte Animation exportieren konnte und sollte nur als Anhaltspunkt für manuelles animieren per xml dienen. Wenn Du also per Flatride-Tutorial animierst, solltest Du sogar die Länge auf 0 stellen da die erzeugte "Animation" wertlos ist und nur stört.

Ohne einen Blick auf Deine Einstellungen kann ich Dir aber auch nicht helfen =) Entweder Du schickst mir alles oder postest zumindest einen Screenshot des Create Scenery Fensters.
Eddi22
Ja noch mal ein Wort zu Blender. Ich hab zwar ein kleines "Büchlein" über Blender auf meiner Page speziell für diesen Bereich, aber wie ich höre, sind einige Passagen wohl noch nicht ganz einfach erklärt.

Da ich derzeit auch dort noch einige Änderungen vornehme, wäre es doch von Vorteil, wenn Ihr, (errt, im spezielle meine ich dich, da du oben geschrieben hast, das dieser Bereich sich für dich nicht erschließt, was sehr schade wäre. ;-) ) einfach mal damit arbeitet und mir per PM die Fragen stellt, die Ihr nicht versteht, was unglücklich ausgedrückt wurde usw. Belgabor hat mir schon einiges mitgeteilt, was in die neue Version implementiert wird.

In diesem Sinne war dies ein allgemeiner Vorschlag. Würde mich einfach freuen.

Gruß
Eddi
DasMatze
Ich habe mir die CFR Anleitung noch einmal angeschaut. Soweit ich das verstanden habe brauche ich ein Model im ASE Format, eine xml mit Animationen und eine xml mit Splines, die ich dann zusammen durch den OVL Creator Dingens jage und dann eine xml erhalte, die das scn Format abgelöst hat. Die nehme ich dann zusammen mit den Texturen (sofern sie nicht in einer Texture OVL sind) und dem Model und verschiebe sie in mein OVLMake Verzeichnis (so habe ich das zumindest immer temporär bei den Animationen gemacht, damit ich keine lästigen Pfadangaben machen muss). Dann schreibe ich eine xml mit den Ridedaten und einer Referenz auf die XML mit dem Model, Animationen und Splines drin. Dann jage ich das durch Ovlmake und habe ein Ovlpaar zum Importieren. Wenn das so ist, schickt mir doch einmal eine Splines xml, die ich dann von Hand schreibe (mit NL, so wie ich schon einmal demonstriert habe (sofern man die von Hand schreiben kann)).

MfG DasMatze
Belgabor
quote:
Original von DasMatze
Ich habe mir die CFR Anleitung noch einmal angeschaut. Soweit ich das verstanden habe brauche ich ein Model im ASE Format, eine xml mit Animationen und eine xml mit Splines, die ich dann zusammen durch den OVL Creator Dingens jage und dann eine xml erhalte, die das scn Format abgelöst hat. Die nehme ich dann zusammen mit den Texturen (sofern sie nicht in einer Texture OVL sind) und dem Model und verschiebe sie in mein OVLMake Verzeichnis (so habe ich das zumindest immer temporär bei den Animationen gemacht, damit ich keine lästigen Pfadangaben machen muss). Dann schreibe ich eine xml mit den Ridedaten und einer Referenz auf die XML mit dem Model, Animationen und Splines drin. Dann jage ich das durch Ovlmake und habe ein Ovlpaar zum Importieren. Wenn das so ist, schickt mir doch einmal eine Splines xml, die ich dann von Hand schreibe (mit NL, so wie ich schon einmal demonstriert habe (sofern man die von Hand schreiben kann)).

MfG DasMatze


Nicht ganz, aber fast (Es ist sogar nicht ganz so kompliziert, wie Du geschrieben hast ). Ich stelle Dir ein Beispiel zusammen wenn ich wieder zuhause an meinem Rechner bin.
Belgabor
Ok, hier ein kurzer Abriss wie man Flats in SketchUp erstellt:

- Modell machen
- modxml Datei mit Animationen erstellen, Syntax steht oben.
- modxml Datei mit Splines erstellen. Beispiel:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
<?xml version="1.0" encoding="UTF-8"?>
<model xmlns="http://rct3.sourceforge.net/rct3xml/model">
  <system handedness="right" up="z"/>
  <spline name="example" cyclic="0">
    <node>
      <position x="-1.200423" y="6.000000" z="2.133429"/>
      <controlPrev x="-1.200424" y="8.342469" z="2.133429"/>
      <controlNext x="-1.200422" y="3.657531" z="2.133429"/>
    </node>
    <node>
      <position x="-1.200421" y="-0.000001" z="2.133429"/>
      <controlPrev x="-1.200422" y="2.342468" z="2.133429"/>
      <controlNext x="-1.200420" y="-2.342470" z="2.133429"/>
    </node>
    <node>
      <position x="-1.200419" y="-6.000000" z="2.133429"/>
      <controlPrev x="-1.200420" y="-3.657531" z="2.133429"/>
      <controlNext x="-1.200418" y="-8.342468" z="2.133429"/>
    </node>
  </spline>
</model>

Für die loop Spline muss man cyclic="1" setzen, dann wird die Spline geschlossen interpretiert (ersten node nicht wiederholen!).

- Model im Importer laden, Texturen etc zuweisen wie normal.
- Bones manuell einstellen.
- Animationen über den "L"-Button aus der modxml-Datei laden
- LODs erstellen und Animationen zuweisen
- Zeit- und Nervenersparnis:
-- Animationen wieder löschen (nicht jedoch die Zuweisung zu den LODs)
-- Zuweisung muss wiederholt werden, wenn man die Namen der Animationen löscht.
- Wie im tut beschrieben, nur Szenerie xml speichern, keine OVLs erzeugen.

- xml Datei für ovlmake wie im Tutorial beschrieben anlegen
- ändern (neues in Fett-tags, die das Forum in code nicht interpretiert, die natürlich nicht eingeben.):
code:
1:
2:
3:
4:
5:
  <rawovl file="JumpJack">
    <import file="jump.xml" name="JumpJack"/>
    [B]<import file="jump_splines.modxml" id="mainimport"/>[/B]
    [B]<import file="jump_animations.modxml"/>[/B]
  </rawovl>

Das id attribut beim ersten import weglassen!

Es kann sein, dass das in der ovlmake version die ich veröffentlicht habe noch nicht durch die Validation geht, man muss also ovlmake eventuell mit der "--novalid" Option sagen, das es das lassen soll.

Matze, ovlmake erstellt mit dieser xml Datei ein vollständiges "Set", man muss also hinterher nichts mehr importieren (nur noch kopieren wenn man ovlmake nicht mit --install zur direkten Installation aufgefordert hat).
DasMatze
Erst einmal: Vielen Dank!!!111

Ich habe jetzt Splines, Animationen, eine Scenery XML und eine Ride XML. Ich komme sehr schnell durcheinander, weil ich nicht ganz durchschaue, welcher name in der ride xml jetzt wo gebraucht wird, weshalb es dort schnell zu Fehlern kommen kann. Denn überall steht nur JumpJack. Wenn ich alles auf OVLMake ziehe, wird ein Output Verzeichnis erstellt mit nichts drinnen. Aber mir fällt gerade ein, dass ich vergessen habe, einen Punkt für den Mechaniker und eine Kamera zu erstellen. Da werde ich mir alles noch ein paar mal anschauen müssen, bis ich was in's Spiel kriege.

Damit möchte ich auch nicht nerven, nur eine Sache wollte ich erwähnen. Als ich die Scenery XML abgespeichert habe und dann versucht habe noch einmal zu laden, bekam ich diesen Fehler hier:


Ab Zeile 22 schaut es so aus:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
        <positions2/>
        <bmesh name="1"/>
        <bmesh name="2"/>
        <bmesh name="3"/>
      </modelbone>
      <modelbone name="peep01" parent="model">
        <positions1>
          <matrix name="Translation by &lt;-2.7700,0.5100,0.6700&gt;">
            <row1>1.000000 0.000000 0.000000 0.000000</row1>
            <row2>0.000000 1.000000 0.000000 0.000000</row2>
            <row3>0.000000 0.000000 1.000000 0.000000</row3>
            <row4>-2.770000 0.510000 0.670000 1.000000</row4>
          </matrix>
          <matrix name="Rotate by 270.0 around the Z-axis">
            <row1>0.000000 1.000000 0.000000 0.000000</row1>
            <row2>-1.000000 0.000000 0.000000 0.000000</row2>
            <row3>0.000000 0.000000 1.000000 0.000000</row3>
            <row4>0.000000 0.000000 0.000000 1.000000</row4>
          </matrix>
        </positions1>
        <positions2/>


MfG DasMatze
Belgabor
Der Fehler ist mir bekannt und wird in der nächsten Version korrigiert sein. So lange bitte keine leeren pos1 matrices erstellen, einfach eine Einheitsmatrix in die Liste (zB Scale mit 1/1/1).

Du solltest auch ovlmake aus cmd heraus aufrufen, sonnst siehts Du die Fehler nicht =).
DasMatze
OK, Danke!

Ein paar Sachen sind mir noch beim Importer aufgefallen:
- Entweder habe ich eine solche Funktion übersehen ansonsten fände ich sie praktisch: Wenn man eine Animation.xml geladen hat sollte man aus der vielleicht auch die Namen der Bones auslesen können, damit man keinen Fehler begeht.
- Shared Textures werden nicht erkannt beim Installieren des Sets. Wenn ich sie per Hand dorthin kopiere, bekomme ich im Spiel trotzdem die grüne Splat-Textur. Muss die TextureOvl einen besonderen Namen haben? (Edit: Ich Idiot habe vergessen den Namen in der Referenz auf die Texture Ovl anzupassen )
- Wenn man ein animiertes Model erstellt hat und (wie ich es meistens mache) in der ASE noch mehr (statische) models hat, an die man die gerade geladene xml anpassen möchte, damit man nicht alles neu einstellen muss, bekommt man bei einen Doppelklick auf die eingetragenen LODs für das animierte Model den "blabla hat ein Problem festgestellt und muss beendet werden" Dialog zu sehen. Dasselbe Spiel geht umgekehrt auch. Ich denke zwar nicht, dass außer mir irgendwer zwei oder mehr models in eine ASE packt um Zeit zu sparen, aber dennoch wäre es toll, wenn es abstürzen würde.

Bei meinem CFR bekomme ich mehrere Fehler wie "unknown tag 'rawovl' in rawovl or subovl tag' oder einfach nur 'Error in xml file'. Ich denke ich warte besser damit, bis das so konform ist wie der Importer. Wenn ich bedenke, dass Animationen auch erst nur über eine Kommadozeile möglich waren und jetzt mit in den Importer eingebaut wurden, denke ich schon, dass das irgendwann einfacher wird.

Den Befehl "--novalid" kennt OVLMake übrigens nicht.

Das mit den leeren Matrices verstehe ich leider nicht so ganz (da ich nur auf system fix (fixed orientation) geklickt habe, was ja sicherlich noch nach wie vor notwendig ist).

Noch etwas: Ist es eigentlich möglich eine Animation zu erstellen, bei der etwas sich nicht um eine der drei Achsen dreht ohne den Bone mittels eines weiteren Bones vorher zur Seite zu neigen, sondern zB. so wie die Schraube bei der Rio Grande Station in Fort Fun:
http://commons.wikimedia.org/wiki/Image:...n_Schrauben.jpg
Ist dafür vielleicht die zweite Matrix da um damit die Achsen zu verdrehen? Denn bisher hieß es, man soll die beiden gleich lassen (oder im Importer nun weglassen), wodurch es für mich heißt, das zwei Punkte auf der gleichen Stelle liegen, wobei ich mir denke, dass der zweite da sein könnte, um die Achsen auszurichten. Ich brauche so eine Animation im Moment nicht, aber das würde mich mal interessieren.

MfG DasMatze
errt
Soweit ich weiß, haben die Bones eine Ausrichtung. Wie man die allerdings festlegt hab ich noch nicht rausgefunden^^
Belgabor
quote:
Original von DasMatze
OK, Danke!

Ein paar Sachen sind mir noch beim Importer aufgefallen:
- Entweder habe ich eine solche Funktion übersehen ansonsten fände ich sie praktisch: Wenn man eine Animation.xml geladen hat sollte man aus der vielleicht auch die Namen der Bones auslesen können, damit man keinen Fehler begeht.

Doppelclick oder E, dann kann man den Animationsnamen, Koordinatensystem und Bonenamen ändern. Dazu werden letztere auch angezeigt

quote:
Original von DasMatze
- Shared Textures werden nicht erkannt beim Installieren des Sets. Wenn ich sie per Hand dorthin kopiere, bekomme ich im Spiel trotzdem die grüne Splat-Textur. Muss die TextureOvl einen besonderen Namen haben?

Hm seltsam, hast Du mit dem Prefix im Create Scenery Fenster gearbeitet? Da steht in den Notes etwas dazu drin. Am Code der Textur-OVLs automatisch kopiert habe ich nichts geändert.

quote:
Original von DasMatze
- Wenn man ein animiertes Model erstellt hat und (wie ich es meistens mache) in der ASE noch mehr (statische) models hat, an die man die gerade geladene xml anpassen möchte, damit man nicht alles neu einstellen muss, bekommt man bei einen Doppelklick auf die eingetragenen LODs für das animierte Model den "blabla hat ein Problem festgestellt und muss beendet werden" Dialog zu sehen. Dasselbe Spiel geht umgekehrt auch. Ich denke zwar nicht, dass außer mir irgendwer zwei oder mehr models in eine ASE packt um Zeit zu sparen, aber dennoch wäre es toll, wenn es abstürzen würde.

Tut's doch, was willst Du mehr?
Im ernst, ich verstehe nicht ganz, was Du machst. Stelle mir bitte die Dateien zusammen, schick sie mir und sag mir Schritt-für-Schritt wie ich den Absturz erreiche.

quote:
Original von DasMatze
Bei meinem CFR bekomme ich mehrere Fehler wie "unknown tag 'rawovl' in rawovl or subovl tag' oder einfach nur 'Error in xml file'. Ich denke ich warte besser damit, bis das so konform ist wie der Importer. Wenn ich bedenke, dass Animationen auch erst nur über eine Kommadozeile möglich waren und jetzt mit in den Importer eingebaut wurden, denke ich schon, dass das irgendwann einfacher wird.

Den Befehl "--novalid" kennt OVLMake übrigens nicht.

Bist Du sicher, dass Du ovlmake 0.4 verwendest?

quote:
Original von DasMatze
Das mit den leeren Matrices verstehe ich leider nicht so ganz (da ich nur auf system fix (fixed orientation) geklickt habe, was ja sicherlich noch nach wie vor notwendig ist).

Ok, Schritt für Schritt.
- Das Problem besteht bei der pos1 Matrix von Bones, nicht bei der Modelltrasformationsmatrix
- Der Matrixstack der Pos1 Matrix darf nicht leer sein, d.H. man muss sie (momentan) editieren und eine Matrix in die Liste setzen. Das sollte eine Einheitsmatrix sein, die man wie ich beschriben habe erzeugt.
- Die System-Fix Matrices haben ausgedient. Man sollte dafür nur noch mit den Koordinatensystemeinstellungen arbeiten.

quote:
Original von DasMatze
Noch etwas: Ist es eigentlich möglich eine Animation zu erstellen, bei der etwas sich nicht um eine der drei Achsen dreht ohne den Bone mittels eines weiteren Bones vorher zur Seite zu neigen, sondern zB. so wie die Schraube bei der Rio Grande Station in Fort Fun:
http://commons.wikimedia.org/wiki/Image:...n_Schrauben.jpg

Ja, das ist möglich. Da wirds aber von Hand beliebig haarig. Das modxml-Format unterstützt drei Formate von Rotationskeyframes.
Zum einen Eulerwinkel, das heißt die Winkel werden in x->y->z Reihenfolge angewendet. Das ist die Voreinstellung da am "intuitivsten", funktioniert aber nur problemlos wenn man simple Animationen macht oder sehr vorsichtig ist.
Zum zweiten Quaternions. Gleich wieder vergessen, das kann man nicht sinnvoll von Hand machen, ist aber das "native" Format von Rotationskeyframes in Blender.
Drittens das RCT3-Achsen/Vektorformat. Dazu muß man in jedem (model->animation->)bone Element das Attribut rotationformat="axis" hinzufügen. Das ist auch nicht einfach von Hand, aber Du wolltest es ja wissen =)
Zunächst brauchst Du einen Vektor, der die Achse definiert, um die Du drehen willst (z.B. <1 / 0 / 0> wäre die X-Achse). Der Vektor muss ein Einheitsvektor (Vektor der Länge 1) sein.
Dann brauchst Du den Rotationswinkel in Radianten.
Um x/y/z für die Keyframes zu erhalten, multiplizierst Du die entsprechende Koordinate des Achsenvektors mit dem Rotationswinkel.

quote:
Original von DasMatze
Ist dafür vielleicht die zweite Matrix da um damit die Achsen zu verdrehen? Denn bisher hieß es, man soll die beiden gleich lassen (oder im Importer nun weglassen), wodurch es für mich heißt, das zwei Punkte auf der gleichen Stelle liegen, wobei ich mir denke, dass der zweite da sein könnte, um die Achsen auszurichten. Ich brauche so eine Animation im Moment nicht, aber das würde mich mal interessieren.

Nein. Pos1 ist die Ruheposition des Bones relativ zu seinem Parent (im Parentraum), Pos2 ist seine Ruheposition im Objektraum.
Feuer-Link
Hi hab auch mal eben eine Frage, die ich für sehr wichtig halte.
und 1000mal sry wenn es diese Frage schon gab.

Wo bekommt man im neuen Importer die FixOrientation her, weil ich mache meine CSO´s mit Sketch up.

Würde mich sehr über eine Antwort freuen, auch wenn das hier vllt schon mal vorkam...
Belgabor
Die Matrix lassen wie sie ist (Einheitsmatrix) und als Koordinatensystem (coordinate system) "Right-handed, Z-up" einstellen.
Feuer-Link
ok also wenn ich es recht verstehe dann kann ich da im Iporter in diesem (ich glaube so heißt es) dropdown menü "right-handed, Z up einstellen und dann war das praktisch die fix-orientation. ok Danke sowas in der Art habe ich mir schon gedacht aber ich wollte nicht alle mödlichkeiten ausprobieren, da RCT3- bei mir zulange läht, um es nur 5min anzuhaben. Also danke.
BlackMambaFan
Mir sind zwei Bugs aufgefallen (ich glaub, ich hatte den einen irgendwo schon genannt): Einmal, kommt wenn man eine Textur auswählt dieses "Dennggg" (also das das nicht geht). Zweitens wenn man für die Ovl ein Prefix verwendet, und dann bei "Use this Ovl for this Scenery Item" "ok" auswählt, wird der Prefix nicht in die Location mit eingeschrieben, was natürlich zu einem Spiel Absturz führt.

Dann hab ich noch ne Frage: Kann man eigendlich auch Effect Points animieren? Ich hab das versucht, aber geklappt hats bei mir noch nie...
Belgabor
quote:
Original von BlackMambaFan
Mir sind zwei Bugs aufgefallen (ich glaub, ich hatte den einen irgendwo schon genannt): Einmal, kommt wenn man eine Textur auswählt dieses "Dennggg" (also das das nicht geht). Zweitens wenn man für die Ovl ein Prefix verwendet, und dann bei "Use this Ovl for this Scenery Item" "ok" auswählt, wird der Prefix nicht in die Location mit eingeschrieben, was natürlich zu einem Spiel Absturz führt.


Das erste musst Du mir genauer beschreiben. Das zweite habe ich korrigiert, danke.

quote:
Original von BlackMambaFan
Dann hab ich noch ne Frage: Kann man eigendlich auch Effect Points animieren? Ich hab das versucht, aber geklappt hats bei mir noch nie...

Natürlich geht das, schau Dir mal eines meiner Flats an, in allen bewegen sich Effektpunkte (bzw. -bones).
BlackMambaFan
Nochmal zu 1:

Bei mir kommt wenn ich bei Texture auf "+" klicke, und in dem Fenster dann irgendeine Datei einmal(!) anklicke, dieser Sound, der auch bei "Successfully installed" kommt.

Dann noch was neues, ich hab, nachdem Fechu CFR so grandios gemeistert hat, auch mal damit angefangen. Es hat eine Weile gedauert, bis alle Zusatzprogramme (darunter auch ovlmak-0.4) zufrieden waren. Aber jetzt meckert RCT3.

code:
1:
2:
3:
4:
5:
6:
7:
Ressource_OverlayFile: In Overlay File stye\Custom\BMF\Firsttest\Style
loading data from Item 0, block 0 left file pointer in wrong position: start offset =
1121, size = 3168, expected end offset = 4289, actual end offset = 4155

This error has also been send to debug.log

OK: <Attempt to continue> Cancel: <Exit>


Womit hängt das zusammen? Ich hab wirklich alles doppelt und dreifach kontrolliert, Fechu hat auch nochmal drübergeguckt.
DasMatze
Ich wollte auch noch einmal einen Fehler melden. Wie ich schon mal schrieb, habe ich mehrere Objekte in einer ASE, dessen Gruppen ich dann immer an- und abwähle und dann als verschiedene Objekte und Scenery-XMLs abspeichere:


Im Spiel jedoch kommt es dann hin und wieder mal zu Problemen, dass nicht alle Gruppen beim An- und Abwählen richtig ausgewählt wurden und ich dann solche Objekte erhalte:


Links sieht man ein perfektes 1H Fenster, welches ich als erstes erstellt habe. Daneben ist ein 3H Fenster, welches aber noch den Rahmen vom 1H Fenster hat. Rechts ist 4H. Auch das hat den 1H Rahmen. Dabei sind im Importer alle Gruppen richtig ausgewählt.

Manchmal bringt es auch nichts die Scenery XML zu öffnen und noch einmal zu exportieren, manchmal muss ich noch einmal als ASE exportieren und dann mit der "Switch Model File" Funktion das Model wechseln.

MfG DasMatze
Belgabor
Matze, kannst Du mir bitte eine Szenerie Xml/ASE Kombination schicken die den Fehler aufweist?
DasMatze
Sind im Anhang.

Ich liste noch die Reihenfolge auf:
- Texturen in den Cache geladen
- SharedTextures Referenz eingegeben
- Model geladen und Gruppen eingestellt
- LODs eingestellt
- Prefix, Name und Pfad angegeben
- Gruppen von 2H, 3H und 4H deaktiviert
- Scenery OVL erstellt
- Scenery XML gespeichert
- Gruppen von 1H deaktiviert und von 2H aktiviert
- Name von "Window Corner HalfxHalf 1H" in "Window Corner HalfxHalf 2H" geändert
- Scenery OVL erstellt
- Scenery XML gespeichert
- und dann dasselbe mit 3H und 4H

Im Spiel habe ich dann die Scheiben in der richtigen Größe und die Rahmen nur als 1H. Ist mir aber bisher nur bei diesem Set, also bei Scheiben und Rahmen, passiert. Aber so weit ich mich erinnern kann, habe ich vorher nicht sonderlich viel mit der neuen Importer Version importiert. Und wenn, dann nicht mehrere Objekte in einer ASE.

MfG DasMatze
Belgabor
Das Problem ist, das die Rahmen in der ASE alle 1h hoch sind. Es handelt sich also um ein Problem in SU oder beim Export daraus.