virt_flyのブログ -134ページ目

virt_flyのブログ

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

イメージ 1

できあいの3Dモデルを借りる

 

 フライトシミュレーターに関するブログだというのに、なんでまた戦車なんでしょう。

 最近は、日本のFlightGear愛好家のみなさんのなかに機体を自作される方がふえてきました。わたしのような下手くそでいい加減なものしかつくれない人間の出る幕は、そろそろなくなってきた気がして、やはりもともとの目標である風景のなかに置くのによい3Dオブジェクトづくりへ転身すべきかと思ったものです。

 とはいえ、作業は三面図をおこして3Dモデルをつくり、写真をテクスチュア画像にしてはりつける単純なものであっても、三面図や適当な写真を見つけるのがなかなか困難であることは、以前当ブログでふれたことです。

 しかも、Google EARTHだとビルディングメーカーがあっていとも簡単に3Dの建物をこしらえることができるようで、世界旅行するならこれで十分かも。
 Google EARTHなりとFlightGearが合体できれば、いいのですが。

 そんなわけで、風景の一部としての3Dオブジェクトづくりのモチベーションはなかなかあがらないわけで、いっそのこと神社や仏閣などのできあいの適当な3Dモデルを借用することはできないかと思い立ちました。

 以前にも探したことがあり、あまり多くはないことを知っていましたが、少しは使えそうな和風建造物の3Dモデルを見つけることができました。個人的に楽しむ範囲に限定されますが。

 加えて、レーニン像だったりナチスの旗をたらした建物とか、ヤシの木などなど、シツエーションに使うとおもしろそうなものを見つけました。

 画像のパンターIVもそうしたひとつです。上手く作ってありますねえ。この3DモデルをBlenderでacファイル形式に変え、テクスチュアもddsからpngに変換して、FlightGearで使えるようにしました。

イメージ 1イメージ 2
↑コルコバードのキリスト像 左がカスタムシーナリー、右がFlightGear通常のシーナリー

 

コルコバードのキリスト像からの景色

 

 6月のニュースレターにて、再リリースのようですがリオデジャネイロのカスタムシーナリーが紹介されていました。

 リオと言えばカーニバルはもちろんですが、コルコバードのキリスト像を忘れるわけにはいきません。DLして試すことにしました。

 カスタムシーナリーでは、コパカバーナやイパネマなどの海岸には、砂浜が出現しており、木々もいっぱいです。

 ブラジル独立100周年を記念してつくられたキリスト像は、もともとのシーナリーにあったもののようで、カスタムシーナリーでも使いまわしされてるようです。画像のように横に飛行機を置いてくらべると、かなりでかい像であることがわかります.高さは39.6m、左右30mだとか。

 この位置からのリオの写真をよくみかけますが、像のあるあたりはカスタムシーナリーのように周囲より高くなってないといけないのに、もともとのシーナリーでは像の背後にさらに高い峰が迫っています。一方、画像前方の海岸には大きな岩山様の突出がなくてはなりませえんが、カスタムシーナリーには存在しません。ここは違和感があるところです。

 
 
画像の移行に失敗しています
 
 
↑回転する砲塔とたなびく旗。問題は前進と後進の切り替え時の再現
※アメブロは動画に対する許容容量が少なく移転できなかったので割愛しました

 

前進と後進の切り替え時に旗の位置がずれてしまう

 

 旗を、戦車の砲塔にとりつけることにしてしまったために、少々困ることになりました。

 砲塔は回転しますから、砲塔にとりつけられた旗竿もそれにつれていっしょに位置を変えることになり、一方風になびく旗の向きは通常は一定のはずで、たいがいは進行方向と逆の向きに。それはいいのですが、戦車は前進とともに後進もするので、その際は向きが180度変わります。

 とりあえず、前進だけには対応させたのですが、後進した時は、あきらかに旗の向きがおかしいのが目立つと思うと、どうにも気になります。

 前進と後進とに応じて旗の向きを切り替えるのに、旗のacファイルと対応するxmlファイル一種類で済ませることができればよいのですが、どうしても2種類が必要で、そのためにウイザードの3Dビューには旗が2つも現れてなんとも不格好です。

 不格好というなら、はためく様子を再現するため分厚くなった旗も不格好なはずですし、こだわるなら他にも旗の落とすべき影の再現や停止時には旗が垂れ下がるか自然の風にそよぐ様子、低速時と高速時の旗のはためきの違いも反映させるべきところ(^_^?)

 問題はそれどころでなく、実際には前進と後進を切り替えたとき、なぜかかなり旗の位置がずれてしまいます。せめて、前進、後進には対応させたいと、数値をいじるうちに少しはずれが小さくなったかと思えば、今一度試すとまたまた大きくずれてしまうあり様で、対応をあきらめていたものです。

 しかし、なるべく条件の食い違いが少なくなるよう、プログラムをシンプルに書き換えて、最終的に旗の挙動を記した前進用、後進用のxmlファイルの中に3Dオブジェクトの表示・非表示を記述するところまで試行錯誤をくりかえしました。その結果、砲塔との相対的位置関係ではおかしな位置にあらわれるものの、旗のあらわれる絶対的な位置は、どうやら初期状態からはじまっているという気がしてきました。

 初期状態に戻るようでは打つ手がなさそうにも思ったのですが、経験からxmlファイルの記述にも順序があるように思ったもので、旗のxmlファイルの記述をチェックしてみました。スピンのアニメーションの前に3Dオブジェクトの表示・非表示の条件指定を記述していたので、旗を非表示から表示に切り替えた時には初期常態からスピンがはじまるようになるのかもと思い、スピンのアニメーションの後に3Dオブジェクトの表示・非表示の条件指定を記述してみました。

 あながちはずれではなかったようです。さっそくこの修正だけでも反映したものを、ハンガーにアップロードしなおすことにしましょう。