I-400の改造4)ーM6A晴嵐の修正 | virt_flyのブログ

virt_flyのブログ

フライトシミュレーターソフトのFlightGearで仮想飛行を楽しむブログです。

イメージ 1

 

AI機のM6Aのプロペラを回す

 

  I-400潜水艦の改造記録です。
  これまでの改造で、M6A晴嵐をカタパルトで射出が可能となりました。しかし、このままでは射出されたM6A晴嵐は、プロペラが回らないまま飛行するというおかしなことになります。

  プロペラが回っている様子は、これを擬似的に再現する3Dオブジェクトを使うのが通常ですが、なんとI-400の中にあるM6AのAI機の3Dモデルでは、これが省略されていて含まれていません。FlightGear用の本来のM6Aの機体から当該オブジェクトだけコピーしてくる必要があります。

  問題は、格納容器から引き出された直後のM6A晴嵐はプロペラが止まっているが、カタパルトで射出するときは、プロペラが高速回転している、この2つの状態を再現できなくてはなりません。

  2つの状態を分けて再現することのできる、都合のよい条件がなかなかみつけられず、それぞれに対応する3Dモデル設定xmlファイル、m6a.xmlとm6a-2.xmlとをもうけることにしました。

  なお、高速で動くプロペラの残像が半透明の扇形を描くのを模した3Dオブジェクトを表示させることで、回転するプロペラを擬似的に再現しているわけですが、いまいち動いている感じがしません。そこで、これを少し回転させることでリアリティが増さないかと、ゆっくり動かしてみたのですが、いかがでしょう。


●回転するプロペラを模した3DオブジェクトをI-400のAichi-M6Aに付け加える

 別途ダウンロードしたAichi-M6AのModelsフォルダ中にあるm6a.acを、Blenderなどの3Dモデリングソフトで開き、ここではpropblurのみを選択して、propか何かの名前のacファイルに書き出します。 

ついで、I-400内のModelsフォルダ内のAichi-M6Aフォルダにあるm6a.acを3Dモデリングソフトで開いた上、先のprop.acを読み込みます。

あらたに取り込まれたpropblurをはじめすべてをac形式で書き出し、新たなm6a.acの完成です。


●m6a.xmlへの追加ー格納容器から引き出された直後のプロペラの止まった状態

<?xml version="1.0" encoding="ISO-8859-1"?>

<PropertyList>

   <path>m6a.ac</path>
          ・
          ・
         (中略)
          ・
          ・
   <animation>
    <type>select</type>
    <object-name>propblur</object-name>
   <condition>
     <equals>
      <property>sim/model/door-positions/bay/position-norm</property>
      <value>0</value>
     </equals>
    </condition>
   </animation>


</PropertyList>  


●m6a.xmlの修正コピーでm6a-2.xmlを新規作成ー射出時のプロペラの回転

<?xml version="1.0" encoding="ISO-8859-1"?>

<PropertyList>

   <path>m6a.ac</path>

    <animation>
    <!-- draw these first (in no particular order) -->
          ・
          ・
         (中略)
          ・
          ・
     <object-name>m6a-flotteursB</object-name>
     <object-name>propblur</object-name>

     <!-- draw this at last (order critical!) -->
          ・
          ・
         (中略)
          ・
          ・
    </animation>

    <effect>
      <inherits-from>Aircraft/Generic/Effects/Fuselagereflect</inherits-from>
          ・
          ・
         (中略)
          ・
          ・
     <object-name>propblur</object-name> ←Rembrandt対策
    </effect>
          ・
          ・
         (中略)
          ・
          ・
    <animation>
     <type>select</type>
     <object-name>m6a-helice</object-name>
     <condition>
      <equals>
       <property>sim/model/door-positions/bay/position-norm</property>
       <value>1</value>
      </equals>
     </condition>
    </animation>

    <animation>
     <type>select</type>
     <object-name>propblur</object-name>
     <condition>
      <less-than>
       <property>velocities/true-airspeed-kt</property> ←dummy
       <value>1</value>
      </less-than>
     </condition>
    </animation>


    <animation>
     <type>rotate</type>
     <object-name>propblur</object-name>
     <property>/sim/time/elapsed-sec</property>
     <factor>20</factor> ←大きくすれば回転が大、小さくすれば小
     <center>
      <x-m> -4.44266 </x-m>
      <y-m>  0.00000 </y-m>
      <z-m>  0.22662 </z-m>
     </center>
     <axis>
      <x> -1 </x>
      <y>  0 </y>
      <z>  0 </z>
     </axis>
    </animation>


</PropertyList>


●submodels.xmlの修正

<?xml version="1.0" encoding="UTF-8"?> ←encordingは統一した方がよさそう

<PropertyList>



  <submodel>
    <name>M6A</name>
    <!--<model>Aircraft/I-400/Models/Aichi-M6A/m6a.xml</model>-->
    <model>Aircraft/I-400/Models/Aichi-M6A/m6a-2.xml</model>
 
        ・
         ・
         (中略)
         ・
         ・
  </submodel>

</PropertyList>