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