virt_flyのブログ -22ページ目

virt_flyのブログ

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

↑塗装用のテクスチャーが複数できたので、作製したAI機に貼り付けて編隊飛行させてみる

プロペラの回転の再現でAI機も作製

 

フライトシミュレーターのFlightGear用航空機のYak-3に、またまた不具合を見つけてしまいました。「Yak-3の機体ファイルの不具合を直そう」が4回目になるとは思いませんでした。なんだか他人のあら捜しをしているやな奴って感じがしてきます。

 

そんな気は毛頭なく、あくまでも経年変化により不具合が生じた機体が、しかも何年もそのままになっているのはもったいないので直してしてしまおうというスタンスです。本来、他人が勝手に作品をいじるのは失礼な話で、作者によるメンテナンスを待つべきだと思います。

 

さて、今回の不具合というのは、排気管のペインティングのし忘れと、見た目気づかなかったのですがプロペラが壊れていたことです。

 

排気管の未塗装

 

違和感がありつつも、排気管は機体左右で違いがあるのがYak-3の仕様かと思ったのですが、いくらなんでもそんなことがあるわけありませんよね。目立ちますから、気がついて慌ててテクスチャーの当該箇所を黒っぽく塗ってやりました。

 

プロペラのac、rgb両ファイル間のエラー

 

↑select livery機能の導入でペイントが簡単に変えられるようになったYak-3

 

プロペラの方は、中速時の回転が描写されないのだなと思いはしましたが、まったく気になりませんでした。発見のきっかけは、前回紹介したselect livery機能(画面上から機体の塗装を切り替えられる)がYak-3に実装できないと困るので念の為に確認した際、いくつか機体の塗装用テクスチャーを描いたので、Wingman機能(編隊僚機)を使って遊べるようにAI機をこしらえようとして、プロペラの回転の再現に手こずることになったからです。

 

3Dモデリングソフトで見てみると、問題はYak-3が使用している3Dオブジェクトのpdiskとそのテクスチャーpdisk.rgbとがうまく関連していなくてエラーを起こすこと。

 

pdiskは、旧いFlightGearの機体で結構使われていたようで、F-4Uにまだ残っていたpdisk.rgbを借りてきて復旧することができました。ただし、F-4Uではプロペラの先端に塗られた黄色の塗装が弧を描くようになっているので、これを描かせないために画像を拡大してはみ出させるようにしました。

 

結果、Yak-3は中速時の三ツ矢羽風のプロペラの回転が再現できるようになりました。

 

AI機でのプロペラの回転の再現

 

AI機、わかった風なネーミングですが、FlightGearでは要は直接操縦するのではなくプログラミングして動かす機体のことと言っていいでしょう。それぞれの機体ファイルを一部改変し、コンピューターが操作できるようにしたのがAI機です。

 

Yak-3のAI機は、プロペラはpdiskを使わず、Bf-109のAI機につけられていたより簡単なpropdiskだけを取り出し、Yak-3の3Dモデルに合体させてつくることにしました。

 

↑プロペラの回転の様子ー機体ごとに少しずつ違えています 高速時のプロペラの影は、もともとありましたが濃くてでかいのが異様。なくすとまた物足りない。どうしたものか?(画像は内容にあったものに差し替えています)

 

propdiskは、透明の円板上の3Ðオブジェクトで高速時のプロペラの回転様子を画像にしたもの(テクスチャ―)をこれに貼り付け、高速時になったときに表示させるようになっています。AI再現するのにプロペラの高速時の回転を再現するのにpropdiskを機体の3Ðモデル(acファイル)の一部として取り込んでおく必要があります。この点は通常の機体とAI機の違いでしょう。

 

高速回転再現時の高速の条件は、今回は編隊を組ませたくAI機というよりwingman機となりますので、長機(起動した機体=自分の乗機)同様エンジンの回転数がもとになります(メモ参照)。

 

無事(wingman機)のプロペラも回転し、低速時、高速時の状態が再現できました。このページの各スクリーンショットがそれを示しています。

 

<メモ>おさえるべきはAI機とwingman機の違い

 

wingman機はAI機の一種といえますが、乗機のスロットルの上げ下げ、ギアの出し入れの操作が、直接wingman機に反映されます。編隊を組んでいるのですから、半ば当然です。

一方、AI機は空港を離発着する定期便の航空機や駐機場で止まっている旅客機、襲撃してくる爆撃機などなど、自分の乗機が飛んでいようが止まっていようが関係なく、飛行しあるいは駐機していなければなりません。

 

したがって、AI機のプロペラを回すには、乗機の影響を受けないよう上記のエンジンの回転数を頼りにするわけにはいきません。フライトプラン(今でも使えるのかは未確認)やAIシナリオでプログラミングされた速度を利用するしかないでしょう。

 

両者について、うっすらとした理解しかしていないようでは、混乱のもとです。私自身がきっちりと理解していなかったため、エンジンの回転数は使えないと思い込み、僚機にも速度を使っていました。この場合、笑っちゃいますが乗機の速度を使っていたわけです。本来のAI機に使用すべき速度と、速度に2つあることにも深く思い至らず、この3者の使い方でしばしば混乱していました。

 

恥ずかしながら、まだ理解が不十分かもしれませんが、これが今回の到達点です。自戒のためにメモに残します。ホームページの方のあやふやな記述も改めた方がよさそうですね。

↑ラダーの問題も解消したので、ノルマンディー・ニーメン風に塗装してみた

不具合が解消したら次はリバリー

ラダーを修正

 

前回のブログで、フライトシミュレーターのFlightGear用の機体であるYak-3は、ラダーの動きがおかしいと書きました。

 

操作と方向舵の効きは一致しているので飛行には問題ありませんが。見た目方向舵の向きが逆なのは違和感があります。気になる方は、修正してもよいいかも。簡単です。

 

●yak3.xmlを再修正

 

今回も、3Dモデル設定xmlファイルの記述を修正することになります。

 

yak3.xmlファイルの記述の修正箇所は次の通りです。赤色のように修正します。

 

   ・
   ・
   ・
 <animation>
  <type>rotate</type>
  <object-name>rudder</object-name>
  <object-name>rudderlogo</object-name>
  <property>/surface-positions/rudder-pos-norm</property>
  <!-- <factor>25.0</factor>  -->
  <factor>-25.0</factor>

  <center>
   <x-m>7.776</x-m>
   <y-m>0.0</y-m>
   <z-m>0.909</z-m>
  </center>

  <axis>
    <x1-m>7.707</x1-m>
    <y1-m>0.0</y1-m>
    <z1-m>1.485</z1-m>
    <x2-m>7.913</x2-m>
    <y2-m>0.0</y2-m>
    <z2-m>-0.242</z2-m>
  </axis>
 </animation>
   ・
   ・
   ・

 

 

ノルマンディー・ニーメン風に塗装

 

気になる不具合が解消できたら、次はリバリーに挑戦するのもよいかも。

 

↑ノルマンディー・ニーメン風の塗装のFlightGearのYak-3

 

第2次大戦のソ連機のペイントはユニークですね。東部戦線でYak機を駆ってナチスドイツと戦った自由フランス軍パイロットたち、ノルマンディー・ニーメンの乗機のペイントには惹かれます。

 

とりあえず似せたテクスチャーを何枚か描いてみました。迷彩柄は手抜きしてデフォルトの画像をもとにし使い回ししてますから、忠実な再現ではありません。垂直尾翼の国籍マークは、元画像が白地でしたので透明にしています。

 

↑テクスチャーの例 これをDLし、pngに変換すれば使えないこともありません。

 

あらたなテクスチャーファイルは、デフォルトのテクスチャーファイルであるyak3-1.pngがある機体のModelsフォルダーにおきます。使いたい塗装に変えたいその都度、テクスチャーファイル名をyak3-1.に置き換えます。もちろん、元のテクスチャーファイルは名前を変えてバックアップとっておくべきでしょう。

 

ただし、いちいちファイル名を変えるのは結構手間です。FlightGearでは起動後の画面で、メニューバーから機体の塗装、すなわちテクスチャーの切り替えができるSelect Liveryという便利な機能があります。Yak-3ではこれに未対応なため、Select Livery機能を導入してやる必要があります。

 

こちらに方法を紹介していますので、挑戦してみてください。

 

↑こんなのも描いてみました

 

↑再びパイロットが登場するようになったYak-3

 

時代遅れの旧いノートパソコンのWi-Fiがついに壊れました。もっぱら作業用に10年間使い倒してきたので、無理はないのですが悲しい(T_T)

 

気を取り直して書きます。

 

パイロットを今一度乗せよう

 

フライトシミュレーターのFlightGearの機体の中には、ダウンロードしてきても不具合のあるものが見られます。

 

せっかくの機体が使えないのはもったいないので、簡単な修正で済むことなら、みなさん自分でやりましょうよ、というスタンスで書いています。

 

今回もYak-3の続きです。

 

なぜかパイロットが乗らなくなった

 

前回は、起動したら青と黄の飛行機様のものがYak-3の機体にのっかてあらわれる不具合を直す方法は書きましたが、パイロットが搭乗しなくなっていることに気づいたもののそのままにしています。

 

パイロットがなぜ消えてしまっているのかはプログラムを見ていてもよくわからないのですが、パイロットのいない飛行機が飛ぶのは不気味なので、FlightGear本体の方に用意されているパイロットを乗せることにします。

 

●3Ðモデル設定xmlの記述の修正

 

その方法は、機体のファイルがどこにあるかわかってさえいれば簡単です。

 

修正対象は3Ðモデル設定xmlのyak3.xmlです。当該機体フォルダー内のModelsフォルダーにあります。

 

このxmlファイルの記述は、以下に示す赤字部分のように追加、修正します。

 

   ・
   ・
   ・
    <model> 
       <!-- <path>Aircraft/bf109/Models/pilot.xml</path> -->
       <path>Aircraft/Generic/Pilot/WWII/pilot.xml</path>
        <name>pilot</name>
      <offsets> 
        <!-- <x-m>3.6</x-m>
        <y-m>0.0</y-m>
        <z-m>0.08</z-m>
        <pitch-deg>22</pitch-deg> -->
        <x-m>3.4</x-m>
        <y-m>0.0</y-m>
        <z-m>0.19</z-m>
        <pitch-deg>11</pitch-deg>

      </offsets>
    </model>
   ・
   ・
   ・

 

いかがですか。いたって簡単でしょ。

 

まだある不具合


さて、外観の不具合はおおよそケリがついたのですが、厳密には、前回ブログで注に書いたプロペラの高速回転時の再現に、Bf-109をインストールしておく必要があること以外にも、いくつかまだ不具合はあります。

 

エルロンの軸にズレがあって動きにともなって隙間ができてしまうのは愛嬌として、キャノピーが開閉しなかったり、銃も発射できないようです。さして飛行に影響はしませんが、ラダーの動きが逆なのは、少々違和感があります。飛行中はあまり目立たないのが救いです。