virt_flyのブログ -153ページ目

virt_flyのブログ

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

イメージ 1
↑画像上部の斑点は弾幕のつもり。特攻機への米軍艦船による弾幕のすざまじさには到底及びません。
 

AI用のooyodoを再びDLできるようにしました

 
 ooyodoの主砲や高角砲の発射を、パラパラアニメの要領で擬似的に再現させてみたと言ったって、プログラムも何も示さなければ本当に何をしたかはわかりませんよね。
 
 でも、プログラムを書いても冗長なだけですから、興味のある方には見てもらえるように、今一度AI用艦船として公開することにしました。サイズが少々大きくなりすぎたかも。
 
 今回AI船として公開するooyodoでは、主砲や高角砲の向きと傾きを、プログラムでそれぞれ好きなように決めれ、自由度は低いものの適当な間隔で勝手に射撃をしますから、米艦載機で対艦攻撃の雰囲気を味わうのにいいかもしれません。弾幕ぽいものも用意してみました。FlightGearに雷撃のできる機体があればいいでしょうに。
 
 さすがに日本の船なので、bombable対応にはしませんでしたが、戦争ごっこ好きの方はお試しください。
 
 必要な方は、ダウンロードのページから手に入れることができます。
 
 インストールは、解凍してできたフォルダごと/AI/Aircraft下に置くだけ。なお、AIシナリオは用意していませんから、どこかの海上にooyodoを出現させるには、ship_demo.xmlを真似て当該AI用ooyodoをpath指定したAIシナリオを、/AI下に設ける必要があります。
 
 余談ですが、下の画像をご覧ください。射撃時の炎の色がくすんでいて、まばゆさどころではありません。せめて上の画像くらいであってほしいのですが。グラフィックカードの性能もあるのかしれませんが、FlightGearでは何か発色におかしなところを感じることがあります。
 
イメージ 2

 

イメージ 1
↑火を吹くooyodoの高角砲と米軍コルセア機
 

パラパラアニメの要領で艦砲射撃を再現

 
 ooyodoの主砲が火を吹くようになったといっても、第2砲塔だけですが、できれば、高角砲なども発射を再現できるようにし、米軍艦載機あたりでフルボッコできるようにしてもいいかもと(←かなりアブナイ)。

 

 AI船なら、多少ズルして手抜きな再現でも許されそうなので、そちらで挑戦してみることにしました。

 

 もちろん、発射の瞬間のまばゆい炎、湧き上がる砲煙、薄れゆく煙など4つを基本にする6枚ほどのパラパラアニメでの再現です。

 

 これなら、発射も自動化できますし、なによりも砲塔の向きを変更しても炎や煙が追随してくれるのがありがたいです(正確には砲口の上下には非対応)。そのためには、少々細工が必要ですが、船体と砲塔、砲身をそれぞれ別のacファイルにすることは、砲口の向きの左右、上下の変更を容易にします。もちろんAI船ですから自在に操作できるということではなくあくまでも固定的ですが、xmlファイルでの角度の値の変更で簡単に砲口の向きと炎・煙の位置が決定できます。

 

参考)

 

 パラパラアニメにした艦砲・高角砲の炎や煙は、サイズは違いますが、それそれ同じ画像を使用しています。もともとが、パーティクルシステムを用いたooyodoの艦砲の画像から作成したものです。まばゆさのために白っぽいものを選んだせいもありますが、元画像と比べても白っぽくなり、模様もほとんど見えなくなっていました。見る位置でくすんだ色にみえるため、さらに白く塗ってみましたが、意味はなかったようです。

 

 とりあえず、比較用にパーティクルシステムによる艦砲の炎の画像を下にかかげます。上の画像の炎と比べてみてください。少し黄色味がかったほうがリアルでした。

 

イメージ 2

イメージ 1
↑火を吹くooyodoの主砲
 

パーティクルシステムを使って艦砲射撃を再現

 
 ooyodoの2つ目の砲塔を自在に回転させたり、まがりなりにも砲身の角度を変えられるようにしましたので、この際砲が火を吹く様子も再現したいと思いました。

 

 ちなみに砲塔の回転は、カタパルトでしたように<rotate>で、ただし<property>には/controls/flight/elevatorを借用して実現。砲身の上下は、3つ同時ですが、<property>に/controls/flight/flapsを使い、そのため3段階の切り替えになりましたが、キー操作で角度を変えることができます。

 

 砲の発射については、自在に動く砲の向きに合わせ、任意の位置で行われてしかるべきなのですが、そこまでのスキルはないもので、右60°、高さ45°の固定位置でのみ発射の光と砲煙が出現されるにとどまります。

 

 問題は、この光と煙の再現です。もちろんparticlesystemを使ったリアルな再現をめざします。

 

 艦砲射撃の動画を見ると、砲身から前へと炎は伸びて行っているように見えます。

これを再現しようと思えば、ひとつは砲弾を発射するように砲から炎と煙を前へ打ち出すか、ロケット弾のように発射した砲弾に炎や煙をひかせるか、そのどちらかになろうかと思われます。

 

 しかし、打ち出す方式では、最初にできて大きく広がった炎がただ前に押し出されてくることになり、しかも船体が前に進むに連れて炎の先端は取り残されてしまい、どんどんずれていくことになってしまいます。

 

 それと比べれば、弾に炎をひかせるほうが、炎の先端に新たな炎が次々生まれてくる感じになり、現実にも合っているような気がします。

 

 ただし、ロケット弾では発射の初速度が速いほど、発射を実行した後、パイロンの下に吊り下げられてあったロケットが、一旦消えてから次に姿を現すまでしばらく時間がかかり、しかも現れるのはかなり離れたところとなっていました。パソコンの能力にかかわるところもありますが、この方式だと、大砲を撃った後しばらくしてから離れたところに炎と砲煙が発生することになりかねません。初速度を遅くしても、砲弾がゆっくり飛んでいくということになったのではおかしなことになります。

 

 第3の道が見つけられない現状では、前者を採用し、<life>を短くしてボロを目立たなくするしか、しかたがありません。

 

追記)

 

 艦砲射撃の炎には、FlightGear用の機体ではミサイルがヒットしたときに放つまばゆい光が印象的なF-14Bのexplosionを真似させてもらいました。