私はこれが気に入らなかったため、名古屋修正シーナリを作って公開しています。これが殊の外うまく行ったので、今度は東京湾を改造してやろう、と思い立ったのです。
具体的には、まず、以下のような変換テーブルを作ります。これは、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() 命令中の座標値などを再計算しま す。変換テーブルを作るのが結構大変ですが、一旦変換テーブルさえ作ればいとも簡 単に位置を修正できるわけです。
早速プログラムを実行し、修正を掛け、scasm でコンパイルします。FS をわくわくしながら起動してみると、その結果は、、、
レインボーブリッジは崩壊してるし、銀座は超過密だし、皇居の屋根があさっての方向 にいってるぞぉぉ。
という具合で、惨澹たる結果となってしまいました。
何とかしようとその後も試行錯誤をくり返したのですが、どうもうまく行きません。 あまりにもずれが大きすぎるため、この方法ではうまく行かないようです。
この時点ですっかり嫌になり、2ヶ月ほど改造計画は止まったままとなってしまいました。
結局名古屋修正シナリと同じ方法(つまり全部手で)でパッチを作成することにしました。MapFan という電子地図ソフト(あ、そういや最新版にアップデートしてないや) にあるルート機能を使って海岸線をなぞり、そのデータを自作のツールで scasm の Point データに直し、ソースコードの埋めこんでいく作業を行うのです。
とはいっても実は昨年の2月に海岸線の修正はほとんど済んでいました。実は名古屋修正シナリの完成後すぐに着手していたのですが、面倒になって途中で投げていたのです。 ですから、後は建造物類を移動させる「だけ」です。
だけ、といっても東京は建造物がかなり多いので、多少は自動的にできる方法を 考えています。とりあえず、指定した範囲のオブジェクトを平行移動するプログ ラムはできまして、皇居を平行移動させることには成功しました。プログラムが 欲しい人はこちらからどうぞ。例によってドキュメ ントも何もありません。
でも全体の大きさが違う(実物よりかなり大きい)ので今度は縮小・拡大プログラ ムを作らないといけないです。うう。
ああ、面倒だなあ、、、また頓挫するかも。そうなったら誰か引き継いでください (^^) 6月は仕事もちょっと忙しいかもしれないし。
でもまあ、伊藤さんの首都高とか山の手線に比べればずっと簡単ですが、、、あ、このプロジェクトって伊藤さんの プロジェクトとバッティングしそうな気がするぞ。どうしよう。
といってもドキュメントはほとんどないし、どれも適当に作ったもの なので、それなりに覚悟して使ってください。
以下のツールを使うには perl が必要です。
次に 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 用です。これには一つ便利な機能があって、マウスを適当な箇所にもっていってスペースキー を押すとその位置の緯度・経度がクリップボードに入ります。エディタでそのまま ペーストすることができます。
作業をしていてわかったのですが、全ての物体が実際より1.5 倍以上大きくなっています。困ったものです。
それでは、現在の状況を見てもらうことにしましょう。
これは正しい位置に移動させた皇居を東側から見たところです。 銀座はまだ移動させていません。銀座が実際の位置よりも相当西に配置 されてしまっていることがわかりますね。
以下は scview ツールを使ってシーナリを真上から見たものです。 最初の図はオリジナルの JAPAN13.BGL のもの、下の図は修正を掛けている 途中のものです。
この2つの図の縮尺は同じです。かなり全体が縮小されているのが わかると思います。
こっちは修正したもの
銀座などもビルが猛烈にでかいのでおなじく半分くらいの大きさにしました。 ちょっと不安だったので、ソースを調べてみたのですが、銀座のビルは 120m 四 方 21階建になってます。地図で調べるとそんなに大きくありません。50から60m 四方くらいです。(体積にして8倍)ということで、半分に縮小するのが正しいみ たいです。
実際に飛んでみましたが、もうビルが小さい、小さい。でもすごく自然な感じが します(気のせいかな)つーことは、今まで飛んでいた FS の東京はすごーくデ フォルメされていることになりますね。多少予想はしていたものの、これほどと は思いませんでした。
これは銀座から皇居方面を見たところです。まだ縮小していないビルが 残っています。比べるといかにもとのオブジェクトが大きかったか わかります。
とりあえず都心部の全てのオブジェクトの移動が終わりました。縮小率などは まだ改善の余地がありますが、位置はかなり正確になったと思います。 ただ、地面のテクスチャを動かしていないので、一部おかしなところがありますが おいおい直していきます。