Neue Modelle für Aerofly Professional
Workshop von rodeo
v1: 26.05.2002
Setup:
Für ein neues afpro Modell benötigen wir ein neues Unterverzeichnis
unter \aircraft.
Nimm den gleichen Namen für das Verzeichnis und die Dateien.
Vermeide alle problematischen Zeichen wie Leerstellen, Umlaute usw.
Kopiere ausserdem die tmg- und tmd-Dateien von einem ähnlichen Flugmodell in
deinen neuen Ordner
und benenne sie auf den neuen Namen um.
Dies ist die endgültige Struktur:
\aircraft\newmodel\
newmodel.bmp
newmodel.obj
newmodel.tmg
newmodel.tmd
thumb.bmp
eventuell:
\sound\newmodel.wav
A. Graphische Konstruktion
Für ein neues Modell benötigen wir ein 3D-Maschenmodell.
Ich schlage vor, aus folgenden Gründen Metasequoia LE zu verwenden:
Es ist FREEWARE, macht also Raubkopieren überflüssig
Es ist einfach zu bedienen
Es kann viele der Operationen, die wir für die Modellerstellung
benötigen
Es ist ein schlankes Programm und enthält keinen überflüssigen Ballast
(Animationen usw.)
Es gibt einen Konverter von Metasequoia LE zu easyfly/piccofly und afpro
Metasequoia LE kannst du hier runterladen:
http://www1.sphere.ne.jp/mizno/main_e.html
Ein englischer Workshop findet sich hier:
http://www.interq.or.jp/japan/cyber/fms/Metasequoia_e.htm
Diese Page enthält ausserdem Links zu deutschen und
französischen Workshops für Metasequoia LE.
Halte diese Regeln ein, wenn du ein 3D Modell erstellst:
- Du musst für alle Bauteile des Modells eigene Objekte
definieren.
- Wenn du zusätzliche Graphik erzeugst, wie etwa Zusatztanks, Waffen
usw., solltest du diese ebenfalls als eigene Objekte ablegen.
Später im TMG-File können wir sie dann als
Unterobjekte behandeln.
- Jedes Objekt kann genau nur 1 Bitmap enthalten. Vermeide es, mehrere
Bitmaps oder eigene Farbdefinitionen auf 1 Objekt zu legen,
sonst wird es hinterher in verschiedene Objekte zerlegt,
was ganz schön verwirren kann.
- Alle beweglichen Teile müssen als eigene Objekte angelegt werden
(Querruder, Landeklappen, Höhen-, Seitenruder,
Einziehfahrwerke und Räder).
- Alle beweglichen Teile müssen aus geschlossenen Polygonen bestehen.
Wenn du also aus einem Flügel ein Querruder ausschneidest,
musst du auf der offenen Seite des Ruders eine Fläche
(Face, Triangle) platzieren. Das ist unbedingt erforderlich für afpro,
weil diese Fläche verwendet wird, um die Rotationsachse des Ruders
zu berechnen.
- Eventuell braucht dein Modell einen Propeller. Erzeuge einfache
Blätter mit einer Steigung von ca. 20 Grad.
Pass auf die richtige Drehrichtung auf (rechtsherum).
- Öffne das TMG-File und sieh dir die Namen an, die du für deine
Objekte verwenden solltest.
- Ein Objekt mit dem Namen 'Fuselage' (Rumpf) muss zwingend
vorhanden sein.
Verwende irgendein Zeichenprogramm für die Erstellung eines Bitmaps, die
einfachste Lösung heisst MS Paint.
Ich kann hier Pixia empfehlen, das recht gut ist und wie Metasequoia LE als
FREEWARE zur Verfügung steht.
http://www.tacmi.co.jp/pixia/
Erstelle dein Bitmap als Quadrat mit 24 bit Farbtiefe, z.B. 256x256x24bpp oder
512x512x24 bpp.
Lies in den Metasequoia-Workshops nach, wie ein Bitmap auf dein 3D Modell
gelegt wird.
Ausserdem kannst du Meta gut nutzen, um das kleine Bildchen für die
Modellauswahl in afpro zu erstellen.
Mach einfach in Meta einen Schnappschuss von deinem Modell mit Bemalung.
Tip: Zusätzlich kannst du in Meta ein
Hintergrundbild einblenden, um die Farben zu verändern.
Die Achsen und Gitterlinien lassen sich ausschalten, ebenso wie die Lines und
Vertices.
Das gibt eine perfekte Modellansicht.
Kopiere deinen Schnappschuss in dein Zeichenprogramm, schneide die Ränder ab
und skaliere das Bild auf 64x64 Pixel.
Speichere es dann als 'thumb.bmp' in dein neues Modellverzeichnis.
Die Konvertierung von Metasequoia LE zur afpro OBJ-Datei erfolgt mit einem
Programm,
das du per email bei IPACS anfordern kannst. Schreibe
an mail@ipacs.de
B. TMG - Die Graphik-Definition
Diese Datei definiert alle Objekte, die in afpro sichtbar sind.
Ein Teil aus dem OBJ-File, das im TMG nicht definiert ist, wird nicht angezeigt..
Die TMG-Datei verwendet eine clevere Baumstruktur für die Objektdefinition.
Wie schon oben erwähnt, solltest du die TMG-Kopie eines Flugzeugs
verwenden, das deinem neuen Modell ähnlich ist.
Anschliessend können wir loslegen, die Daten zu verändern und zu prüfen.
Die Baumstruktur möchte ich mit 3 Beispielen erklären.
1. Definition von einzelnen Hauptobjekten
Append tmgeometricobject LeftGear
Hauptobjekt
cd LeftGear/
Geometry( "aircraft/rF86/rF86.obj", "Leftgear" )
cd ../
zurück zur Basis
Append tmgeometricobject RightGear Hauptobjekt
cd RightGear/
Geometry( "aircraft/rF86/rF86.obj", "Rightgear" )
cd ../ zurück
zur Basis
Append tmgeometricobject FrontGear Hauptobjekt
cd FrontGear/
Geometry( "aircraft/rF86/rF86.obj", "Frontgear" )
cd ../
zurück zur Basis
2. Definition eines Unterobjekts
Append tmgeometricobject Stabilizer
Hauptobjekt
cd Stabilizer/
Geometry( "aircraft/rJungmeister/rJungmeister.obj", "Stabilizer" )
Append tmgeometricobject Rudder
Unterobjekt
cd Rudder/
Geometry( "aircraft/rJungmeister/rJungmeister.obj", "Rudder" )
cd ../
zurück zu Hauptobjekt
cd ../
zurück zur Basis
Append tmgeometricobject TailGear
Hauptobjekt
cd TailGear/
Geometry( "aircraft/rJungmeister/rJungmeister.obj", "Tailgear" )
cd ../
zurück zur Basis
3. Definition von mehreren Unterobjekten
Append tmgeometricobject Fuselage
Hauptobjekt
cd Fuselage/
Geometry( "aircraft/rRaceRat/rRaceRat.obj", "Fuselage" )
Append tmgeometricobject Glass
Unterobjekt
cd Glass/
Geometry( "aircraft/rRaceRat/rRaceRat.obj", "Glass" )
cd ../
zurück zu Hauptobjekt
cd ../
zurück zur Basis
Append tmgeometricobject Propeller
Hauptobjekt
cd Propeller/
Geometry( "aircraft/rRaceRat/rRaceRat.obj", "Propeller" )
Append tmgeometricobject Blade1
Unterobjekt
cd Blade1/
Geometry( "aircraft/rRaceRat/rRaceRat.obj", "Blade1" )
cd ../
zurück zu Hauptobjekt
Append tmgeometricobject Blade2
nächstes Unterobjekt
cd Blade2/
Geometry( "aircraft/rRaceRat/rRaceRat.obj", "Blade2" )
cd ../
zurück zu Hauptobjekt
cd ../
zurück zur Basis
Beachte diesen Regeln:
- Alle Objekte aus dem OBJ-File, die in afpro dargestellt
werden sollen, müssen definiert sein.
- Die Baumstruktur muss passen, sonst gibt es einen Programmabsturz.
- Die letzten Anweisungen cd../ führen zurück zur Basis (
deswegen können am Ende der Datei 1 oder 2 cd../ Anweisungen nötig sein.
Das hängt davon ab, ob das letzte Objekt Unterobjekte
hat oder nicht).
- Achtung: Die Objektnamen können sich von den Namen im OBJ-File
unterscheiden.
- Um Verwechslung zu vermeiden, sollten die Namen möglichst gleich sein.
- Die Objektnamen im TMG sollten möglichst nicht verändert
werden, damit die Definition zum TMD-File passt.
Also verwende diese Namen auch im OBJ-File.
- Beachte Gross-/Kleinschreibung.
Tip: Wenn die Daten im OBJ, BMP und TMG korrekt
sind, zeigt afpro das vollständige Modell nach der Auswahl im Hauptbildschirm
an.
Falls irgendein Teil fehlen sollte, stimmt die Definition noch nicht.
C. TMD - Die Flugmodell-Daten
Das TMD-File enthält zahlreiche Datenabschnitte.
Zuerst stehen dort die Joint-Definitionen und die Definitionen aller für das
Flugmodell relevanten Objekte.
Dazu gehören die Klebestellen, die graphischen Objekte, aber auch Empfänger
und Servos.
Dann folgen die Daten der Joints sowie die Daten aller anderen Objekte.
Das TMD kopiert man sinnvollerweise vom gleichen Modell wie das TMG,
dadurch ist schon mal sichergestellt, dass die beiden zusammenpassen.
Es ist zwingend erforderlich, dass das TMD-File der Struktur des TMG-Files entspricht.
Folgende Regeln sind einzuhalten:
- Alle Objekte, die im TMG definiert sind, sollten im
TMD enthalten sein.
- Prüfe die Schreibweise in beiden Dateien.
- Alle Hauptobjekte müssen durch die Joints zusammengehalten werden,
sonst fallen die Teile vom Modell ab.
- Alle Hauptobjekte müssen in der Definition des TMD genannt werden.
- Ein Teil mit einem beweglichen Objekt muss einen entsprechenden Verweis
zu diesem Objekt enthalten (z.B. Flügel mit Querruder).
- Ausserdem muss dann noch der Verweis auf das entsprechende Servo
vorhanden sein.
- Für ein bewegliches Teil muss ein Servo definiert sein.
- Eine 'engine' muss immer vorhanden sein, auch wenn das Objekt
graphisch nicht präsent ist.
Tip: Wenn all diese Schritte durchgeführt wurden,
kannst du dein Modell in afpro laden.
Starte jetzt noch nicht, sondern wähle die Edit-Funktion.
Dort kannst du die Werte für Gewicht, Schwerpunkt, Leistung usw. einstellen.
Beende anschliessend afpro und öffne das TMD erneut zum Editieren.
Tip: Wenn die Geometrie der beweglichen Teile
korrekt ist, berechnet afpro automatisch die Rotationsachsen.
Tip: Für die nächsten Schritte müssen wir einige
Koordinaten eingeben. Öffne dazu parallel das OBJ-File und suche das
zugehörige Objekt.
Dort kannst du die passenden Werte finden.
Joints:
Wenn rigid =1 können die Teile nicht auseinanderbrechen, wenn der
Wert 0 beträgt, müssen wir die Klebekräfte angeben.
cd JointFuselageEngine/
Rigid = 1
Der Wert für die Klebestelle muss in der R Zeile angegeben werden (ungefähr
Bereich der Flächensteckung)
cd JointFuselageLeftWing/
R = tmvector4r( 0.0500, 0.0000, 0.2610, 1 )
Definiere the Kräfte und Dämpfungseingenschaften in
den folgenden Zeilen.
Starte mit K-Werten von 10-100 (abhängig von Grösse und Gewicht
des Modells), und D-Werten von 0.1-1.
Teste in afpro, ob die Teile zusammenhalten oder auseinanderfallen. Dann
müssen die Werte vergrössert werden.
Beispiel des Joints fuselage-wing für den Bleriot Slowflyer:
Kf = 400
Df = 1
Ktx = 12
Dtx = 0.15
Kty = 12
Dty = 0.15
Ktz = 12
Dtz = 0.15
MaxForce = 10
MaxTorque = 2.5
Rigid = 0
Beispiel des Joints fuselage-wing für die Spitfire:
Kf = 80000
Df = 100
Ktx = 8000
Dtx = 6
Kty = 8000
Dty = 6
Ktz = 8000
Dtz = 6
MaxForce = 1500
MaxTorque = 150
Rigid = 0
Wings:
Definiere die Flächenwurzel RootR
Definiere den Wert RootN, um die Richtung zu bestimmen (1 geht nach links, -1
geht nach rechts)
cd Leftwing/
Sections = 2
RootR = tmvector4f( 0.1000, 0.2300, -0.0900, 1.0000 )
RootN = tmvector4f( 0.0000, 1.0000, 0.0000, 0.0000 )
cd Rightwing/
Sections = 2
RootR = tmvector4f( 0.1000, -0.2300, -0.0900, 1.0000 )
RootN = tmvector4f( 0.0000, -1.0000, 0.0000, 0.0000 )
Einziehfahrwerk:
Definiere den Montagepunkt des Einziehfahrwerks. Wenn Retractable = 1
Einziehfahrwerk möglich, starr bei Retractable = 0.
Definiere die Rotationsachse in RetractZ.
Definiere den Rotationswinkel RetractAngle.
cd Rightgear/
MountingR = tmvector4f( 0.1800, -0.6200, -0.1400, 1.0000 )
MountingZ = tmvector4f( 1.0000, 0.0000, 0.0000, 0.0000 )
Retractable = 1
RetractZ = tmvector4f( 1.0000, 0.5000, 0.4000, 0.0000 )
RetractAngle = -1.4
Das Gewicht einzelner Objekte ist leicht zu ändern:
Die Datei enthält Angaben zum aktuellen Gewicht einzelner Teile
sowie zu Minimum und Maximum.
Dies kann man gezielt ändern.
Mass = 7
RangeMassMax = 10
RangeMassMin = 1.25
Es gibt verschiedene Antriebe für die
unterschiedlichen Modelle.
Davon hängen die weiteren Parameter in der TMD-Datei ab.
Normaler Verbrennungsmotor:
Append tmdengine00 Engine
cd Engine/
cd ../
Elektrischer Motor:
Append tmdengine10 Engine
cd Engine/
cd ../
Jet Turbine:
Append tmdturbine00 Turbine
cd Turbine/
cd ../
Werte für Abgase und Rauch:
cd Fuselage/
SmokeR = tmvector4r( 0.3500, 0.0000, -0.0200, 1 )
cd Engine/
ExhaustR = tmvector4r( 0.2000, 0.0000, 0.0000, 1 )
D. Bereit zum Take off - Starte afpro
Starte afpro erneut und wähle dein neues Modell aus.
Wenn bis hierher alles geklappt hat, kannst du nun den Flug geniessen.
Viel Spass!
rodeo