カモメの飛び交うAIシナリオ | virt_flyのブログ

virt_flyのブログ

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

↑飛び交うカモメ

 

春の海ひねもすのたりのたりかな

 

AI機をかつてのように旋回飛行ができるようにしたくて、FlightGearの方針に逆らい、性懲りもなくAIシナリオを使った方法をなんとか見つけ出したことは、前回のブログに書いた通りです。

 

その際に思い出したのが、フライトシミュレーターのFlightGearにカモメの飛び交う様子を再現したAIシナリオがあったことでした。

 

FlightGear用に自作した水上機に、着水中は潮騒とカモメの鳴き声が流れるようにするくらい、船や港の雰囲気が好きな私のことですから、水上機やヨットの周囲を飛び交うカモメは大のお気に入りでした。

 

いつの間にやら、牛や馬、羊、象などとともにどこかにいなくなっていてびっくり。かつてFlightGearにあった機能やシナリオで今はないものには、こんなものもあったのですね。

 

リアルさを売りにしていると言っても、シーナリーはまだまだ開発途上。フライトシミュレーターとしてのリアルさに加え、将来の高精細なシーナリーの実現を展望した場合、今では古臭く桎梏となりかねないものは一掃すべしということなのでしょうか。そうであれば歓迎すべきことですが、一抹の寂しさがあります。

 

シナリオの出所は?

 

当該カモメのシナリオについては、当ブログでもとりあげておりその記述をたよりに調べたところ、FlightGearの2012年4月のNewsletterにカモメのアニメーションが利用可能になるとの記事があって、どうやらFlightGear2.8.0あたりに実装されたことをうかがわせます。

 

ちょうど手元に残してあったポータブル化したFlightGearがバージョン2.12.1で、今はないFaunaフォルダーがありデフォルトのものかわからないもののカモメの3Dモデルとxmlファイルが含まれていました。これを使って、現行のFlightGearでも動くのか試してみることにしました。

 

※現行のFlightGear2020.3.0でも、直下にあるSceneryフォルダーの中のModelsフォルダーにFaunaフォルダーがあり、カモメの関連ファイルが含まれています。FlightGearでは、直下のModelsフォルダーとSceneryフォルダー内のModelsフォルダーに似たようなフォルダーが含まれていて、私も若干混乱してしまいましたので、訂正します。

 

インストールと使い方は?

 

Faunaフォルダーにあった関連ファイルは、カモメの3DモデルであるSeaGull_Origin.acとSeagull_Flying.ac、の2つのacファイル、ならびに4羽分のxmlファイルと4羽を1グループにするSeaGull_Origin.xmlの計5つのxmlファイルです。

 

Faunaフォルダーごと現行のFlightGear2020.3.0のルート下にあるModelsフォルダー内にコピペし、カモメの群れを配置するために作成していたAIシナリオを同じくAIフォルダー内にコピペ。FlightGearを立ち上げたらこのAIシナリオを指定して実行します。

 

関連ファイルは、FlightGearにデフォルトで同梱されており、インストールの必要はありません。カモメの3Ⅾモデルである3つのacファイル、ならびに4羽分のxmlファイルと4羽を1つの群れにするxmlファイルが2つです。

 

カモメの群れを配置するために作成したAIシナリオをAIフォルダー内にコピペし、FlightGearを立ち上げたらこのAIシナリオを指定して実行します。

 

結果は、冒頭の画像が示す通りです。「春の海ひねもすのたりのたりかな」と、くつろいだ感じがして素敵です。波間に揺れるヨットをNasalプログラムで再現すれば、もういつまでも見続けていられます。

 

仕組みは?

 

基本的な仕組みについては、カモメよりも以前に自身でガチョウを模した水鳥を作って飛ばせた―旋回ではなく渡り鳥らしく直線飛行―ことがあったのでおおよそ想像がつきます。

 

翼の上下に見合った2つの3Dモデルを、<type>タグでtimedに指定し、<duration-sec>タグで表示時間を与えて交互に表示させれば、羽ばたきを再現して見せることができます。パラパラアニメの要領です。では

イメージ 1
↑10年前のgifアニメ 容量ギリギリでギクシャクしています
 

羽ばたくとしばらく滑空、また羽ばたくたびにカモメの体が上下し、いかにもというところがいいですね。

 

問題は、カモメをどうやって旋回させているのかです。それらしく思えるタグの値を変えたり削除すれば何らかの変化が起こりそうなものですが、これがさっぱりなし。旋回のもととなるファクターが見つけられません。何か見落としているのでしょうが…。

 

旋回半径や方向を変えれないようではどうしようもありません。AI機の旋回飛行に利用するのを諦めた理由でもあります。