virt_flyのブログ -161ページ目

virt_flyのブログ

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

イメージ 1


↑ロケット弾を断続的に繰り返し発射できるだけでなく、タッチパネル上でもロケット弾が使用できる状態を示していなければなりません。画像では、ロケット弾が使用できること、すでに片方の増槽が切り離されていることが、見てとれます.
 

武器の装着と連続発射(中)ーキーのコマンドに条件設定


  「厳密には」とか「正しくは」が口癖みたいになっていますが、ロケット弾ポッドは蜂の巣のように多数開いた穴の中に各1発装填されたロケット弾が、順繰りに発射されるのが本来のところ、FlightGear用の機体であるSu-25のロケット弾ポッドもJu EF128のそれも、いずれも一つの銃口からから何発も連続して弾丸が発射される機関銃のしくみをもって代用、つまりごまかしているのが実際です。

  他に、ちゃんとした方法があるのかも知れませんが、今回はこれを前提にしたJu EF128用のプログラムの作成についてです。

  機銃の断続的な発射を実現するweapons.nasの記述をそっくりまねて、ロケット弾用の記述をこれに書き加えます。

  もちろん、Sumbmodels.xmlにも発射後のロケット弾の挙動について書き加えておく必要があります。ここではrepeatをtrueとし、countを-1として、何回も繰り返しできるようにしておきます。

  問題は、Sumbmodels.xmlに書き込む発射のきっかけ、<trigger>であり、対応する発射キーの<command>の内容です。

  我がJu EF128では、機銃以外はすべての武器を使用するのにCtrl+Kキーを使っています。あらかじめ使用する武器を指定しておいて、このキーの<command>で実行しているわけです。

  既存の武器の記述を流用すればよさそうなのですが、そうもいきません。なぜなら、我がJu EF128では、1つのキーですべての武器をまかなうために、当該ハードポイントからの切り離しをtriggerとしており、もちろんそこの爆弾あるいはミサイルを使うのも1回こっきりなので、当該ハードポイントを再び使うことはなく、コクピットのボタンも使用不能になるようにしてあるからです。これでは、断続的な発射などには使用できず、ロケット弾には不向きです。

  やはりロケット弾の断続発射には、先のweapons.nasに記述のNasalプログラムの使用がどうしても必要になります。

  ロケット弾の発射に他のキーを割り当ててもいいのですが、使用する武器をパネルで指定してやるシステムになっている以上、ロケット弾ポッドだけ選択状態や使い切って使用不能の状態をディスプレイ表示できないのは具合悪い話。となれば、両立の方法を模索するしかありません。

  <binding>をいくつかもうけることで、複数の<command>を実行している例を見かけますから、これがキーでも使えれば、両立も不可能ではありません。ただし、キー1つですべてに対応しなければならないので、ある場合は断続発射を使い、また再使用できるように不能表示はさせないなどの使い分けに迫られます。

  そんな例は見かけたことがありませんが、<command>に条件設定を試みてみました。しかも、最初の<binding>では何も条件設定せずに共通して適用される<command>を記述しながら、次の<binding>では条件設定をして一部にしか適用されない<command>を記述しているのです。無知をいいことに闇雲に怪しげなプログラムを書いたのですが、驚いたことにこれが機能しているのですから。まあいいか。
  
【実例(juef128_custom-keyboard.xml)】

<?xml version="1.0" encoding="UTF-8"?>

<PropertyList>
        ・
        ・
     (中略)
        ・
        ・
  <key n="11">
    <name>Ctrl-K</name>
    <desc>Release selected store(s)</desc>
    <binding> ←第1の<binding>共通というか無限定に適用?
      <command>property-assign</command>
      <property>fdm/jsbsim/systems/armament/release</property>
      <value>1</value>
    </binding>
    <binding> ←第2の<binding>ロケット弾ポッドに限定
      <condition>
       <and>
        <equals>
         <property>fdm/jsbsim/systems/armament/station1/selected</property>
         <value>1</value>
        </equals>
        <not>
         <property>fdm/jsbsim/systems/armament/station1/released</property>
        </not>
       </and>
      </condition>
      <command>property-assign</command>
      <property>fdm/jsbsim/systems/armament/release</property>
      <value>0</value>
    </binding>
    <binding> ←第3の<binding>ロケット弾ポッドに限定して発射実行
      <condition>
       <and>
        <equals>
         <property>fdm/jsbsim/systems/armament/station1/selected</property>
         <value>1</value>
        </equals>
        <not>
        <property>fdm/jsbsim/systems/armament/station1/released</property>
        </not>
       </and>
      </condition>
      <command>nasal</command>
      <script>guns.fire_Rocket()</script>
    </binding>

    <mod-up>
    <binding> ←第1の<binding>
      <command>property-assign</command>
      <property>fdm/jsbsim/systems/armament/release</property>
      <value>0</value>
    </binding>
    <binding> ←第2の<binding>中止なのだから限定せずとも
      <command>nasal</command>
      <script>guns.stop_Rocket()</script>
    </binding>
    </mod-up>
   </key>
        ・
        ・
     (中略)
        ・
        ・
</PropertyList>


  なお、ロケット弾の数は決まっているはずですが、ここでは無限になっています。(^_^?) 機体によっては、機銃に弾数の限定をもうけたリアルなきちんとしたものもあり、みならうべきなのでしょうが。

イメージ 1
↑Su-25のフレア。実物は知りませんが、もっとはでなのかと思っていました。

 

武器の装着と連続発射(上)ーSu-25とJu EF128


  先にFlightGear用の機体であるスホーイSu-25を紹介しましたが、その際に用意されている武器類が初期状態では装着もされず、使用するためにとりあえず応急処置をほどこし、ようやくスクリーンショットを得たと書いていました。

  厳密には誤りで、武装はEquipmentからFuel and payload Settingsを開き、好みの武器を選んで装着することができます。

  ただし、使用できる武器は限られるようで、Submodels.xmlで見る限り、銃、爆弾、ロケット弾、フレアでしょうか。しかも、最近のFlightearではCtrl+JキーでMapが開くようになったようで、キーが競合して爆弾が投下できません。

  ロケット弾ポッドは使えるものの、翼の下にいくつ装着しても発射できるハードポイントは左右1ヶ所ずつに限られ、しかも、ロケット弾ポッドを1つも装着していなくても、キーを押せばどこからともなくロケット弾が現れ飛んで行くのですから、笑っちゃいます。

  偉そうなことを言えた義理ではありませんが、作成途中ともいえそうな中途半端な
感じです。

  さて、Fuel and payload Settingsを使用する方法は、パイロンを選び好みの武器を装着できる自由度の大きさが魅力です。しかし、YASimでしか見かけず、YASimでないと使えそうにありません。

  これに対して、ある意味で対極的なのが、我がJu EF128で採用した方法。これは、武器がすでに装着されて決まってしまってはいるものの、次に使用する武器を選び、どの武器であっても使用の際は共通した1個のボタン(キー)を押すだけでよいというのが特徴です。正確には機銃は別のキーですが、武器毎に決まったキーを覚えなくて済むのは助かります。いちいちコクピットパネルの画面にて、武器を指定するのは面倒とも言えますが。

  Ju EF128でも、もちろんロケット弾を断続的に発射することができます。Su-25と違うのは、ロケット弾ポッドも他の武器同様に指定してやらなければ使えないということ。ましてや装着もしていないのに、ロケット弾が飛び出すというようなことはありえません。そのかわり、発射のために使用するのは、他と共用のキーが1つだけというのも、Su-25と違うところです。

  無理解をいいことに、掟やぶりなプログラムを書いているのかもしれません。一応動いていることから、本人は至極満足といったところです。今回を機会に、ロケット弾ポッドを搭載したJu EF128をダウンロードできるようにしました。ついでに、Ctrl+Jキーへの対応とまだRembrandt対応できていなかった機関砲やロケット弾の爆発の光や煙の修正をほどこし、標準版、機能拡張版もあらためました。いずれもダウンロードのページからとることができます。  

  Su-25のロケット弾の爆発の様子はリアルです。Ju EF128にパクればよかったのですが…。
 

イメージ 1
不具合の見られたSu-25に応急処置をほどこし、武器の装着が可能となって得たスクリーンショット
 

FGUK HangarよりDLしたSu-25

 

   先に、飛燕を見つけた際のことですが、ふとSu-25をどこかで見かけていたことを思い出しました。以前、Su-25はflightGearにはないと言ったような気がして、急に気になりだしました。

  実際には勘違いをしていただけだったのですが、攻撃機を話題にした際にその1つに名前をあげてもいましたので、今回とりあげておくことにしたいと思います。

  ご存知のとおり、Su-25はアメリカのA-10のような存在の攻撃機として、旧ソ連のスホーイ設計局が開発した攻撃機(シュトゥルモヴィーク)です。最近の攻撃機の特徴である目立つ大きなキャノピーとまではいきませんが、機首が小さく、その分キャノピー前面は大きく見えて、やはりそれらしく感じます。

  FlightGear用の機体は、FGUK Hangarからダウンロードして手に入れました。
  さっそく起動を試みたところ、コンソールに灯火類のファイルの読み込み失敗の表示が流れ、現れた機体に灯火は見られません。さらに、起動したSu-25は、スプラッシュ画像のように翼の下に多数の武器をぶらさげてはいません。どうやら武器を選択、装着するプログラムに不具合があるというか欠落しているようです。

  画像は、とりあえずスクリーンショットを得るために応急処置して得たもの。 
 

イメージ 2


注記)ここで不具合としたのは誤認でした。説明文もなく、武器の装着がFuel and Payload Settingsで行われているのに気付くのが遅れました。訂正させていただきます。