開発ストーリー(1~5)
1)オートパイロット(昔の名前で出ています。)・・・2012年の記録
SKYWAVE(EZ FLIGHTの旧名)の開発を始めたのは2004年。もう8年前の話です。開発環境はMacromedia Directorと3dsmax。ところが、いくらやってもオートパイロットができませんでした。実はこれはDirectorのバグではないかと思っています。エラーをエラーとして表示しないバグ・・・
オートパイロットの仕組みは簡単です。標準機(4番機)の上下、左右に参照ポイントを作っておきます。これは目には見えません。そして、前方の空間の1点を設定点として定め(Program では Nav Point と呼んでいます。)、この点に向かって編隊が進むように編隊の上下動(Pitch)、左右旋回動(Yaw)、左右の傾き(Roll)をコントロールしてやります。前方の目標点(Nav Point)と基準機上の各4点の間の距離差を計算し、Nav Point に機が向かうように徐々に移動させます。そして、Nav Point と編隊が一定の距離まで近づいたら次のNav Point を探してやります。この繰り返しで、編隊はずーっと飛行を続けています。左右の参照ポイントは機を水平に保つためにも使われます。
最初、4番機のモデルの名前はairship_copy3というモデル名でした。その機の各4つの設定点とNav Point との間の距離の計算で編隊全体をオートパイロットで動かそうとしました。ところが、後でそのairship_copy3というモデル名をairshipGp4という名前に都合があり、変更しました。airship_copy3というモデルはもはやプログラム上にはないので、そのまま飛ばそうとすればエラーメッセージが出るはずです。
ところがDirectorのバグなのか、消えたはずのairship_copy3というモデル名をいつまでも覚えていて、その「まぼろし」の機と前方のNav Pointの間で計算をするようになり、編隊は飛行を続けました。そして、私はいつしかairship_copy3をairshipGp4という名前に変更したことを忘れてしまいました。
スタートボタンを押します。すぐにオートパイロットに入ります。ある程度まではうまくいくのですが、次のNav Point を決める段階で編隊が暴れだしました。原因は8年間わかりませんでした。
ところが昨年、見直したとき、オートパイロットの計算では確かにairship_copy3という名前が参照されているにもかかわらず、プログラムのどこにもその定義が書いてないことがわかりました。普通ならばエラーメッセージを出して終了するところなのですが、8年間、エラーメッセージを出すことなく、Directorは動いたのでした。
Directorに欺かれた感じです。それがわかったのは昨年の夏。8年ぶりに長いプログラムを読み返し、発見しました。モデル名を変えても、いまだに昔の名前でプログラムは計算をしていたのです。しかし、次のNav Point あたりではそれができなくなり、編隊があばれはじめていたのです。
私は8年間、頭をかかえていました。
2)うまくいかないフォグ
遠くの景色ばぼやーっとぼけていること表現するLingo上の「fog」というstatementがあります。これがうまくいきません。
設定して、再生すると、天球にちらちらとFlicker現象が出て、見るのが億劫になります。
しかたないので、EZ Flightでは以下のようにしました。
カメラの視点を基準点とする一定の半径の円筒をつくり、そのカメラと水平な部分を一番濃く、上下に離れた部分を薄く塗ったスクリーンをつくりました。カメラが移動するたびにその円筒形のモデルを上下左右にカメラに合わせて移動することにより、遠景のぼやーっとぼやけた感じを出すことにしました。
よく画面を見ると海面上に白い大きな輪のようなものが動くのが見えると思います。それがこの円筒のへりの部分です。
3)ゴムがびゅんびゅん(ゴムひも現象 、EZFLIGHT 347で解消)・・・EZFLIGHT347は2012年5月公開
編隊は一緒に飛行を続けています。実際は6機は全部一緒に動いているのではなく、リーダーの一番機の動きを残りの2,3,4,5,6番機が追ってトレースするような仕組みを作っています。
しかし、ごらんになってわかるように、なんだか、ゴム動力のおもちゃのように1番機が動いています。これはカメラを2,3,4,5,6番機側にあわせているからで、本当は2,3,4,5,6番機が1番機にゴムでつながれたように動いているのです。
もっと自然な動きにならないのか、いろいろ、関数をいじってみましたがなかなかうまくいきません。ひどいときにはゴムが切れたときのようにぐじゃぐじゃと編隊が暴れだしたりしました。
子供の頃に、ゴム動力の飛行機を作ったときにこんな経験があります。飛ばすときに、友達の飛行機よりも長く飛ばそうとして、ゴムを巻きすぎ、プチンとゴムが切れ、ブルブルとゴムの塊が暴れだしてしまう。・・・皆さんもそんな経験を持っていませんか。?
次期の改良版までうまくいけばよいのですが。・・・
4)ハエがブンブン(EZ FLIGHT 396 で改善)・・・EZ FLIGHT 396は2012年7月公開
9番のカメラを見ていると、編隊が進路を変更したときに勢いよく、ぐるぐると編隊があたかも、まんじゅうにたかるハエのようにすばやく動いて見えることがあります。実際にこんなハエのような動きはしていないのですが、これは9番のカメラの特性上、こうなって見えるのです。いわば錯覚なのです。
9番のカメラは編隊の「常に」後方を編隊よりも遅いスピードでついて行くようになっています。それで、編隊に追い越されたときに後ろ側から前方にゆっくり移動するように見えるのです。ところが前方に移動し、その後、次のNav Point(目標設定点)に向かって進路を変えると、遠く後方に離れたカメラは大変なことになるのです。
カメラは編隊の「直線」延長上後方にある設定になっていますから、編隊が少しだけ進路を変えただけで、いきおいよく「ぐるんぐるん」と振り回されしまうのです。
したがって、カメラから見る前方の景色もぐるんぐるんと動き、結果としてハエがブンブンの状態になるのです。
5)Shockwings
2004年にフライトシミュレータをつくりはじめるきっかけになったのが、カネハラアツシさんのつくったShockwingsというドッグファイトシミュレータでした。オンライン上で動くように設定されており、まず、自分の戦闘機と敵方の戦闘機を選定してやり、景観として昼、夜、朝などシチュエーションも選択できます。BGMの変更もでき、効果音もよくできていました。最高2×2でのドッグファイトが楽しめました。
正直、「え、Web上でこんなことができるの。?」という感じでそのときの衝撃はまさにShockwingsの名が示すものでした。しかし、数年前より、サイトにアクセスできなくなりました。
shockwave.co.jpも以前はよくアクセスし、フリー(無料)ソフトで遊びました。子供たちと交代で遊びました。フリーのものが多く、お金がかからなののがよかったです。shockwaveは結構いい遊び道具でした。
今でも思い出すとチューチューロケットや、Bugwayなどは楽しく面白く遊びました。しかし、数年前から閉鎖されました。いくつかはほかのサイトからオフラインでも現在ダウンロードできるようにはなってはいるのですが・・・。現在はshockwave.comだけが動いています。
とにかく、Shockwingsが私のフライトシミュレータ開発の大きな動機となったのは確かでした。