The next patch should start to use http://www.flight-manuals-on-cd.com/B314.html
[fg:toms-fgdata.git] / Aircraft / Boeing314 / Models / Boeing314Clipper.xml
1 <?xml version="1.0"?>
2
3 <!-- 
4      VRP :
5      - the model is shifted at the nose tip, where one wants the FDM to compute the movement.
6      - that doesn't affect the animations.
7      - that only requires a shift of views.
8      - IMPORTANT : the model is already aligned vertically from Blender.
9
10
11      Aninmation :
12      - x y z Blender => x z y animation.
13      - 1 blender unit = 1 m.
14      - multiplayer requires property without leading slash.
15
16
17
18      References :
19      ==========
20
21      - http://case.pr.erau.edu/reports/US_reports/1940/1943.02.22_PanAmericanAirways_Boeing-314.pdf
22      (crash - 22 february 1943 Lisbon, Portugal) :
23
24      Elevator range : +/-25 deg (20 + 5).
25  
26      - http://www.airweb.faa.gov/Regulatory_and_Guidance_Library/rgMakeModel.nsf/MainFrame?OpenFrameSet
27      (FAA certificate, TC176 - Wright Double row Cyclone GR-260025) :
28
29      Gear ratio 16 : 9.
30
31      - http://www.southernoregonwarbirds.org/fa3.html/
32      (Franck Varnum flew during WWII). 
33
34      The propellers were geared down 9:5 from engine shaft, so when we slowed the engines to 1500 rpm
35      the props were only turning at 850 rpm.
36
37
38      Known problems :
39      ==============
40      - the shaft is visible behind the propeller disc, because they are not in a group.
41
42 -->
43
44 <PropertyList>
45
46  <path>Boeing314Clipper.ac</path>
47
48  <offsets>
49
50 <!-- VRP at nose -->
51
52    <x-m>16.30</x-m>             <!-- model is not exactly at the middle of length 106 feet. -->
53
54 <!-- The black painting of the hull should be visible, if empty load.
55      Both sponsons touch inside water (not only 1), if full load.
56  -->
57    <z-m> 0.0</z-m>               <!-- aligned by FDM gear, if model at scale. -->
58
59  </offsets>
60
61   <nasal>
62    <load>
63     var livery_update = aircraft.livery_update.new(
64     "Aircraft/Boeing314/Models/Liveries", 10,
65     func { print("Boeing 314 livery update") });
66    </load>
67
68    <unload>
69     livery_update.stop();
70    </unload>
71   </nasal>
72
73
74 <!-- =========== -->
75 <!-- Instruments -->
76 <!-- =========== -->
77
78  <model>
79   <name>Instruments</name>
80   <path>Aircraft/Boeing314/Models/Boeing314_instruments.xml</path>
81  </model>
82
83  <model>
84   <name>Exterior</name>
85   <path>Aircraft/Boeing314/Models/Boeing314_exterior.xml</path>
86  </model>
87
88
89 <!-- ============================ -->
90 <!-- Livery (1 texture per group) -->
91 <!-- ============================ -->
92
93 <!-- disabled, because transparent windows have a 2nd texture
94   <animation>
95    <type>material</type>
96    <object-name>Fuselage</object-name>
97    <property-base>sim/model/livery/</property-base>
98    <texture-prop>texture</texture-prop>
99   </animation>
100 -->
101
102   <animation>
103    <type>material</type>
104    <object-name>LeftWing</object-name>
105    <property-base>sim/model/livery/</property-base>
106    <texture-prop>texture-wing-left</texture-prop>
107   </animation>
108
109   <animation>
110    <type>material</type>
111    <object-name>RightWing</object-name>
112    <property-base>sim/model/livery/</property-base>
113    <texture-prop>texture-wing-right</texture-prop>
114   </animation>
115
116   <animation>
117    <type>material</type>
118    <object-name>LeftFin</object-name>
119    <property-base>sim/model/livery/</property-base>
120    <texture-prop>texture-fin</texture-prop>
121   </animation>
122
123   <animation>
124    <type>material</type>
125    <object-name>RightFin</object-name>
126    <property-base>sim/model/livery/</property-base>
127    <texture-prop>texture-fin</texture-prop>
128   </animation>
129
130
131 <!-- ============= -->
132 <!-- Optimizations -->
133 <!-- ============= -->
134
135 <!-- OSG doesn't yet clip the panels -->
136
137  <animation>
138    <type>range</type>
139    <object-name>Panel2DPilot</object-name>
140    <min-m>0</min-m>
141    <max-m>2.0</max-m>
142  </animation>
143
144  <animation>
145    <type>range</type>
146    <object-name>Panel2DOverhead</object-name>
147    <min-m>0</min-m>
148    <max-m>3.0</max-m>
149  </animation>
150
151  <animation>
152    <type>range</type>
153    <object-name>Panel2DEngineer</object-name>
154    <min-m>0</min-m>
155    <max-m>3.0</max-m>
156  </animation>
157
158
159 <!-- ================================== -->
160 <!-- Animations (x/y/z = back/right/up) -->
161 <!-- ================================== -->
162
163 <!-- PROPELLERS -->
164
165 <!-- assume 1/7 gear ratio -->
166
167 <!-- OUTBOARDS PROPELLERS -->
168
169  <animation>
170   <type>noshadow</type>
171   <object-name>PropellerDisc1</object-name>
172  </animation>
173
174  <animation>
175   <name>Disc1</name>
176   <object-name>PropellerShaft1</object-name>
177   <object-name>PropellerDisc1</object-name>
178  </animation>
179
180  <animation>
181   <type>spin</type>
182   <object-name>Disc1</object-name>
183   <object-name>Propeller1</object-name>
184   <property>engines/engine[0]/rpm</property>
185   <factor>0.5625</factor> <!-- real 16 : 9 -->
186   <center>
187    <x-m>0.0</x-m>
188    <y-m>-10.07</y-m>
189    <z-m>1.70</z-m>
190   </center>
191   <axis>
192    <x>1</x>
193    <y>0</y>
194    <z>0</z>
195   </axis>
196  </animation>
197
198  <animation> 
199   <type>blend</type>
200   <object-name>PropellerDisc1</object-name>
201   <property>engines/engine[0]/rpm</property>
202   <factor>0.00015</factor>
203   <offset>-0.5</offset>
204   <min>0.0</min>
205   <max>0.5</max>
206  </animation>
207
208  <animation>
209   <type>select</type>
210   <object-name>Propeller1</object-name>
211   <condition>
212    <less-than>
213     <property>engines/engine[0]/rpm</property>
214     <value>1800</value>
215    </less-than>
216   </condition>
217  </animation>
218
219  <animation>
220   <type>select</type>
221   <object-name>Disc1</object-name>
222   <condition>
223    <greater-than-equals>
224     <property>engines/engine[0]/rpm</property>
225     <value>1800</value>
226    </greater-than-equals>
227   </condition>
228  </animation>
229
230 <!-- 4 -->
231
232  <animation>
233   <type>noshadow</type>
234   <object-name>PropellerDisc4</object-name>
235  </animation>
236
237  <animation>
238   <name>Disc4</name>
239   <object-name>PropellerShaft4</object-name>
240   <object-name>PropellerDisc4</object-name>
241  </animation>
242
243  <animation>
244   <type>spin</type>
245   <object-name>Disc4</object-name>
246   <object-name>Propeller4</object-name>
247   <property>engines/engine[3]/rpm</property>
248   <factor>0.5625</factor> <!-- test with 0.01 -->
249   <center>
250    <x-m>0.0</x-m>
251    <y-m>10.05</y-m>
252    <z-m>1.70</z-m>
253   </center>
254   <axis>
255    <x>1</x>
256    <y>0</y>
257    <z>0</z>
258   </axis>
259  </animation>
260
261  <animation> 
262   <type>blend</type>
263   <object-name>PropellerDisc4</object-name>
264   <property>engines/engine[3]/rpm</property>
265   <factor>0.00015</factor>
266   <offset>-0.5</offset>
267   <min>0.0</min>
268   <max>0.5</max>
269  </animation>
270
271  <animation>
272   <type>select</type>
273   <object-name>Propeller4</object-name>
274   <condition>
275    <less-than>
276     <property>engines/engine[3]/rpm</property>
277     <value>1800</value>
278    </less-than>
279   </condition>
280  </animation>
281
282  <animation>
283   <type>select</type>
284   <object-name>Disc4</object-name>
285   <condition>
286    <greater-than-equals>
287     <property>engines/engine[3]/rpm</property>
288     <value>1800</value>
289    </greater-than-equals>
290   </condition>
291  </animation>
292
293 <!-- INBOARDS PROPELLERS -->
294
295  <animation>
296   <type>noshadow</type>
297   <object-name>PropellerDisc2</object-name>
298  </animation>
299
300  <animation>
301   <name>Disc2</name>
302   <object-name>PropellerShaft2</object-name>
303   <object-name>PropellerDisc2</object-name>
304  </animation>
305
306  <animation>
307   <type>spin</type>
308   <object-name>Disc2</object-name>
309   <object-name>Propeller2</object-name>
310   <property>engines/engine[1]/rpm</property>
311   <factor>0.5625</factor>
312   <center>
313    <x-m>0.0</x-m>
314    <y-m>-4.744</y-m>
315    <z-m>0.92</z-m>
316   </center>
317   <axis>
318    <x>1</x>
319    <y>0</y>
320    <z>0</z>
321   </axis>
322  </animation>
323
324  <animation> 
325   <type>blend</type>
326   <object-name>PropellerDisc2</object-name>
327   <property>engines/engine[1]/rpm</property>
328   <factor>0.00015</factor>
329   <offset>-0.5</offset>
330   <min>0.0</min>
331   <max>0.5</max>
332  </animation>
333
334  <animation>
335   <type>select</type>
336   <object-name>Propeller2</object-name>
337   <condition>
338    <less-than>
339     <property>engines/engine[1]/rpm</property>
340     <value>1800</value>
341    </less-than>
342   </condition>
343  </animation>
344
345  <animation>
346   <type>select</type>
347   <object-name>Disc2</object-name>
348   <condition>
349    <greater-than-equals>
350     <property>engines/engine[1]/rpm</property>
351     <value>1800</value>
352    </greater-than-equals>
353   </condition>
354  </animation>
355
356 <!-- 3 -->
357
358  <animation>
359   <type>noshadow</type>
360   <object-name>PropellerDisc3</object-name>
361  </animation>
362
363  <animation>
364   <name>Disc3</name>
365   <object-name>PropellerShaft3</object-name>
366   <object-name>PropellerDisc3</object-name>
367  </animation>
368
369  <animation>
370   <type>spin</type>
371   <object-name>Disc3</object-name>
372   <object-name>Propeller3</object-name>
373   <property>engines/engine[2]/rpm</property>
374   <factor>0.5625</factor> <!-- test with 0.01 -->
375   <center>
376    <x-m>0.0</x-m>
377    <y-m>4.72</y-m>
378    <z-m>0.92</z-m>
379   </center>
380   <axis>
381    <x>1</x>
382    <y>0</y>
383    <z>0</z>
384   </axis>
385  </animation>
386
387  <animation> 
388   <type>blend</type>
389   <object-name>PropellerDisc3</object-name>
390   <property>engines/engine[2]/rpm</property>
391   <factor>0.00015</factor>
392   <offset>-0.5</offset>
393   <min>0.0</min>
394   <max>0.5</max>
395  </animation>
396
397  <animation>
398   <type>select</type>
399   <object-name>Propeller3</object-name>
400   <condition>
401    <less-than>
402     <property>engines/engine[2]/rpm</property>
403     <value>1800</value>
404    </less-than>
405   </condition>
406  </animation>
407
408  <animation>
409   <type>select</type>
410   <object-name>Disc3</object-name>
411   <condition>
412    <greater-than-equals>
413     <property>engines/engine[2]/rpm</property>
414     <value>1800</value>
415    </greater-than-equals>
416   </condition>
417  </animation>
418
419 <!-- FLAP -->
420
421  <animation>
422   <type>rotate</type>
423   <object-name>LeftFlap</object-name>
424   <property>surface-positions/flap-pos-norm</property>
425   <factor>-55.0</factor>
426   <offset-deg>0</offset-deg>   
427   <center>
428    <x-m>-0.12</x-m>
429    <y-m>-8.4</y-m>
430    <z-m>1.60</z-m>
431   </center>
432   <axis>
433    <x>-0.11</x>
434    <y>-1.0</y>
435    <z>0.07</z>
436   </axis>
437  </animation>
438
439  <animation>
440   <type>rotate</type>
441   <object-name>RightFlap</object-name>
442   <property>surface-positions/flap-pos-norm</property>
443   <factor>55.0</factor>
444   <offset-deg>0</offset-deg>   
445   <center>
446    <x-m>-0.12</x-m>
447    <y-m>8.4</y-m>
448    <z-m>1.60</z-m>
449   </center>
450   <axis>
451    <x>-0.11</x> <!-- height -->
452    <y>1.0</y>
453    <z>0.07</z> <!-- depth -->
454   </axis>
455  </animation>
456
457 <!-- AILERON -->
458
459  <animation>
460   <type>rotate</type>
461   <object-name>LeftAileron</object-name>
462   <property>surface-positions/left-aileron-pos-norm</property>
463   <factor>25.0</factor>
464   <offset-deg>0</offset-deg>   
465   <center>
466    <x-m>-1.16</x-m>
467    <y-m>-19.19</y-m>
468    <z-m>2.16</z-m>
469   </center>
470   <axis>
471    <x>-0.14</x>
472    <y>-1.0</y>
473    <z>0.05</z>
474   </axis>
475  </animation>
476
477  <animation>
478   <type>rotate</type>
479   <object-name>RightAileron</object-name>
480   <property>surface-positions/right-aileron-pos-norm</property>
481   <factor>25.0</factor>
482   <offset-deg>0</offset-deg>   
483   <center>
484    <x-m>-1.16</x-m>
485    <y-m>19.19</y-m>
486    <z-m>2.16</z-m>
487   </center>
488   <axis>
489    <x>-0.14</x> <!-- height -->
490    <y>1.0</y>
491    <z>0.05</z> <!-- depth -->
492   </axis>
493  </animation>
494
495 <!-- ELEVATOR -->
496
497  <animation>
498   <type>rotate</type>
499   <object-name>LeftElevator</object-name>
500   <property>surface-positions/elevator-pos-norm</property>
501   <factor>25.0</factor> <!-- real -->
502   <offset-deg>0</offset-deg>   
503   <center>
504    <x-m>14.49</x-m>
505    <y-m>0.0</y-m>
506    <z-m>2.04</z-m>
507   </center>
508   <axis>
509    <x>0.0</x>
510    <y>1.0</y>
511    <z>0.0</z>
512   </axis>
513  </animation>
514
515  <animation>
516   <type>rotate</type>
517   <object-name>RightElevator</object-name>
518   <property>surface-positions/elevator-pos-norm</property>
519   <factor>-25.0</factor> <!-- real -->
520   <offset-deg>0</offset-deg>   
521   <center>
522    <x-m>14.49</x-m>
523    <y-m>0.0</y-m>
524    <z-m>2.04</z-m>
525   </center>
526   <axis>
527    <x>0.0</x>
528    <y>-1.0</y>
529    <z>0.0</z>
530   </axis>
531  </animation>
532
533 <!-- RUDDER -->
534
535  <animation>
536   <type>rotate</type>
537   <object-name>LeftRudder</object-name>
538   <property>surface-positions/rudder-pos-norm</property>
539   <factor>20</factor>
540   <offset-deg>0</offset-deg>   
541   <center>
542    <x-m>14.37</x-m>
543    <y-m>-6.95</y-m>
544    <z-m>0.0</z-m>
545   </center>
546   <axis>
547    <x>0.0</x>
548    <y>0.0</y>
549    <z>1.0</z>
550   </axis>
551  </animation>
552
553  <animation>
554   <type>rotate</type>
555   <object-name>RightRudder</object-name>
556   <property>surface-positions/rudder-pos-norm</property>
557   <factor>20</factor>
558   <offset-deg>0</offset-deg>   
559   <center>
560    <x-m>14.37</x-m>
561    <y-m>6.95</y-m>
562    <z-m>0.0</z-m>
563   </center>
564   <axis>
565    <x>0.0</x>
566    <y>0.0</y>
567    <z>1.0</z>
568   </axis>
569  </animation>
570
571
572 <!-- ====== -->
573 <!-- Inside -->
574 <!-- ====== -->
575
576 <!-- doors -->
577
578  <animation>
579   <type>rotate</type>
580   <object-name>CelestialDoor</object-name>
581   <property>controls/doors/celestial/position-norm</property>
582   <factor>-180</factor>
583   <center>
584    <x-m>-5.351</x-m>
585    <y-m>-0.235</y-m>
586    <z-m>0.0</z-m>
587   </center>
588   <axis>
589    <x>0.0</x>
590    <y>0.0</y>
591    <z>1.0</z>
592   </axis>
593  </animation>
594
595  <animation>
596   <type>pick</type>
597   <object-name>CelestialDoor</object-name>
598   <action>
599    <button>0</button>
600    <binding>
601     <command>nasal</command>
602     <script>globals.Boeing314.doorsystem.celestialexport();</script>
603    </binding>
604   </action>
605  </animation>
606
607 </PropertyList>