東京湾改造プロジェクト


東京湾改造プロジェクトの途中成果をテスト公開します。
JAP13PAT.LZH : β1版 ('97/6/8)
かなりの頻度で更新される可能性が大です。


事の始まり、、、

'97/3/1 ごろ

Microsoft JAPAN シーナリは良くできたシーナリだと思います。やっぱり自分の国を飛べるのはいいものです。んが、一つ重大な問題があります。それは空港を除く物体(海岸線やビルなど)の位置がかなり不正確なため、追加シーナリを作るときに困ってしまう、ということです。

私はこれが気に入らなかったため、名古屋修正シーナリを作って公開しています。これが殊の外うまく行ったので、今度は東京湾を改造してやろう、と思い立ったのです。


当初の計画

名古屋修正シーナリの場合は、bgl2bgs で BGL ファイルを decompile して、そのソースファイルを手でいじっていたのですが、それではあまりにも手間がかかりすぎるため、東京では「全自動で」修正する方法を模索していました。

具体的には、まず、以下のような変換テーブルを作ります。これは、JAPAN13.BGL 中 の座標データと、それに対応する「正しい」座標の対になっています。

-----------------------------------------------------------------
N35:42:34 E139:42:52N35:40:44.8 E139:45:22.0   ; 皇居
N35:44:06 E139:42:22N35:41:23.4 E139:45:10.4   ;武道館
N35:46:02 E139:43:03N35:42:08.1 E139:45:17.5   ; 東京ドーム
N35:41:30 E139:41:48N35:40:20.9 E139:44:52.7   ; 国会議事堂
...
-----------------------------------------------------------------
これを元にして、間違った座標を正しい座標にマッピングするようなプログラムを 作って、BGL ファイルを修正してやればいいわけです。このテーブルに含まれてい ない座標は「補間して」計算します。

具体的には、RefPoint 中の緯度・経度や、Points() 命令中の座標値などを再計算しま す。変換テーブルを作るのが結構大変ですが、一旦変換テーブルさえ作ればいとも簡 単に位置を修正できるわけです。


世の中そんなにうまくいかない

その後1週間くらい

と、いうことでプログラムを perl でしこしこと作りました。補間のアルゴリズムがかなりムズイのですが、ま、そこは何とか作りました。本当は2次元スプライン補間とか使いたかったのですが、そこまで気力はありません。この辺、かなり試行錯誤が入ってます。プログラムが欲しい人はこちらからどうぞ。ただし、ドキュメントは全然ありません。自力で解析してね (^^)あと、perl が要ります。

早速プログラムを実行し、修正を掛け、scasm でコンパイルします。FS をわくわくしながら起動してみると、その結果は、、、

なんじゃこりゃあああ

レインボーブリッジは崩壊してるし、銀座は超過密だし、皇居の屋根があさっての方向 にいってるぞぉぉ。


崩壊したレインボーブリッジ

という具合で、惨澹たる結果となってしまいました。

何とかしようとその後も試行錯誤をくり返したのですが、どうもうまく行きません。 あまりにもずれが大きすぎるため、この方法ではうまく行かないようです。

この時点ですっかり嫌になり、2ヶ月ほど改造計画は止まったままとなってしまいました。


あきらめずに別の方法を模索

'97/5/30

ディスクの整理をしていて、忘れかけていた改造計画関係のファイルを発見。 あぁ、そういやこんなことやってたっけ、うーん、どうしようかなぁぁ、と 思案することしばし。これもむら気の多い B 型のせいなのです、というのはさておき、

結局名古屋修正シナリと同じ方法(つまり全部手で)でパッチを作成することにしました。MapFan という電子地図ソフト(あ、そういや最新版にアップデートしてないや) にあるルート機能を使って海岸線をなぞり、そのデータを自作のツールで scasm の Point データに直し、ソースコードの埋めこんでいく作業を行うのです。

とはいっても実は昨年の2月に海岸線の修正はほとんど済んでいました。実は名古屋修正シナリの完成後すぐに着手していたのですが、面倒になって途中で投げていたのです。 ですから、後は建造物類を移動させる「だけ」です。

だけ、といっても東京は建造物がかなり多いので、多少は自動的にできる方法を 考えています。とりあえず、指定した範囲のオブジェクトを平行移動するプログ ラムはできまして、皇居を平行移動させることには成功しました。プログラムが 欲しい人はこちらからどうぞ。例によってドキュメ ントも何もありません。

でも全体の大きさが違う(実物よりかなり大きい)ので今度は縮小・拡大プログラ ムを作らないといけないです。うう。

ああ、面倒だなあ、、、また頓挫するかも。そうなったら誰か引き継いでください (^^) 6月は仕事もちょっと忙しいかもしれないし。

でもまあ、伊藤さんの首都高とか山の手線に比べればずっと簡単ですが、、、あ、このプロジェクトって伊藤さんの プロジェクトとバッティングしそうな気がするぞ。どうしよう。


使用ツールを大公開

'97/6/1

名古屋修正シーナリ作成時から使っていたツールを公開することにしました。 これだけあれば、他の人が手伝ってくれるかもしれないし (^^)

といってもドキュメントはほとんどないし、どれも適当に作ったもの なので、それなりに覚悟して使ってください。

以下のツールを使うには perl が必要です。

使い方ですが、まず上記4つのファイルを全部同じディレクトリに置きます。 そして、各ファイルの先頭をちょっと修正します。(各ファイル内のコメントを 見てください。)

次に MapFan を起動して、ルートファイルを作ります。たとえば道路を作りたい 場合、その道路をルート設定機能を使ってなぞります。そしてそのデータを適当 なファイル名で保存します。ここでは road.rot としましょう。

これから、rot2degs を使って緯度・経度ファイルを作り、さらにmkroad.pl で道路 のファイルを作ります。具体的には以下のようにします。

perl rot2degs road.rot > road.ll
perl mkroad.pl road.ll > road.scm
このファイルは SCASM のソースになっているので、Header などの定義をつければそのままコンパイルできるはずです。道路ではなく、海岸線などを作る場合は mkroad.pl の 代わりに mkpoints.pl を使い、できた Points 定義を Points 文の中にいれて Poly 命令などを使って面を作ります。

この道路作成スクリプトは自分でいうのも何ですが超便利です。これがなければ道路 なんて作りたくありませんね。

あと、もう一つツールを公開します。

これは bgsview とほぼ同じものですが、SCASM のソース を表示することができます。あと、bgsview ver0.1 にあったバグがちょっと直ってます。ですが、ドキュメントは一切ありません。Windows 95/NT 用です。

これには一つ便利な機能があって、マウスを適当な箇所にもっていってスペースキー を押すとその位置の緯度・経度がクリップボードに入ります。エディタでそのまま ペーストすることができます。


縮小ルーチンができた

'97/6/1

今日、1時間ほどかけて縮小ルーチンを作りました。これで、「新宿全体を 正しい位置に移動させて、全体を縮小する」といったことができるようになりました。 今のところ、以下の物体の移動に成功しています。 ただし、まだ細かな調整が必要です。あとレインボーブリッジの方位が実際と 違っているので回転処理を加える必要があります。

作業をしていてわかったのですが、全ての物体が実際より1.5 倍以上大きくなっています。困ったものです。

それでは、現在の状況を見てもらうことにしましょう。

これは正しい位置に移動させた皇居を東側から見たところです。 銀座はまだ移動させていません。銀座が実際の位置よりも相当西に配置 されてしまっていることがわかりますね。

以下は scview ツールを使ってシーナリを真上から見たものです。 最初の図はオリジナルの JAPAN13.BGL のもの、下の図は修正を掛けている 途中のものです。

この2つの図の縮尺は同じです。かなり全体が縮小されているのが わかると思います。


こっちがオリジナル


こっちは修正したもの


縮小率は約2倍?

'97/6/2

今日、銀座と東京駅近辺のオブジェクトを移動させたのですが、もろに皇居の中 に埋まってしまいました。で、良くサイズを検討してみたのですが、皇居は実際 の倍近くの大きさ(面積にして4倍)があることがわかりました (-_-メ) 今のところ拡大率 0.45 にしてあります。

銀座などもビルが猛烈にでかいのでおなじく半分くらいの大きさにしました。 ちょっと不安だったので、ソースを調べてみたのですが、銀座のビルは 120m 四 方 21階建になってます。地図で調べるとそんなに大きくありません。50から60m 四方くらいです。(体積にして8倍)ということで、半分に縮小するのが正しいみ たいです。

実際に飛んでみましたが、もうビルが小さい、小さい。でもすごく自然な感じが します(気のせいかな)つーことは、今まで飛んでいた FS の東京はすごーくデ フォルメされていることになりますね。多少予想はしていたものの、これほどと は思いませんでした。


これは銀座から皇居方面を見たところです。まだ縮小していないビルが 残っています。比べるといかにもとのオブジェクトが大きかったか わかります。


途中成果をテスト公開

'97/6/3

改造プロジェクトの途中成果をテスト公開することにしました(このページ の先頭のところからダウンロードできます)。

とりあえず都心部の全てのオブジェクトの移動が終わりました。縮小率などは まだ改善の余地がありますが、位置はかなり正確になったと思います。 ただ、地面のテクスチャを動かしていないので、一部おかしなところがありますが おいおい直していきます。


β1版公開

'97/6/8

β1版を公開しました。以下の変更がされています。


Back...