ルギア君の戯言

雑多な記事。

OpenTTD の遊び方 - その4

その3 → d:id:lugia:20090308:1236516344
その2 → d:id:lugia:20090307:1236441417
その1 → d:id:lugia:20090213:1234498207

今度こそ最後だ!


ということで「自分だけのマップの作り方」の説明をします。


ランダムマップで遊んでいてもよいというのならばこの話はカットしてください(笑)

必要な物

OpenTTD のマップエディタを使うなら別に無くてもいいけど。

  • 2次元お絵書きソフト
    • Canvas X
    • Adobe Illustrator
    • Corel Draw
    • Inkscape
    • Scribus
    • GIMP
    • など。
      • 今からやることはペイントでは無理。
        ただし、写し絵をしないならペイントでも構わない。
      • リーで使えるものでは僕は Inkscape が好きです。
      • ベクタードローイングのできる物をオススメ。
      • PNG か BMP に出力できること。
  • OpenTTD (当然)
  • 素材 (必要があれば)
    • 実際の地図
    • RPGの地図
    • 戦略ゲームの地図
    • 家の見取図
    • 物の写真
    • etc. etc.

以後、Inkscape を使って説明します。ショートカットは 0.46 のショートカットです。新しいバージョンでは変更されているかもしれません。
大抵のベクタードローイングツールでできないようなことはしないつもりなので、好きなソフトをお使いください。ただし、その機能がメニューのどこにあるかわからないといわれても、それはちょっと僕も分かりませんね(笑)。もちろん、Inkscape のメニュー階層は説明します。

絵を切り取る

TTD のマップは以下の組み合わせの長方形でなければいけません。
ようするに1:2^nの比であれば良いのですね。だから、1:2^nの比の長方形にしてあげればよいのです。

マス数 64 128 256 512 1024 2048
64 1:1 1:2 1:4 1:8 1:16 1:32
128 2:1 1:1 1:2 1:4 1:8 1:16
256 4:1 2:1 1:1 1:2 1:4 1:8
512 8:1 4:1 2:1 1:1 1:2 1:4
1024 16:1 8:1 4:1 2:1 1:1 1:2
2048 32:1 16:1 8:1 4:1 2:1 1:1

1:1 か 1:2 が無難です(ぁ

この比の長方形に切り取ります。大きさは一度ベクトルデータ化するのであれば2の冪乗にする必要はありません。ベクトルデータというのは便利ですよね。

絵や写真を写してベクトルデータ化する

もともとベクトルデータで入っているものは構わないが、そうでない物は、ベクトルデータ化してあげます。こうすれば、TTDのマップサイズを自由に選ぶことができますね。

輪郭をなぞる

まずは地図や写真の輪郭をなぞって、陸地と海の区別を付けます。
そして、内側に等高線を引いていきます。
f:id:lugia:20090318220019p:image
こんな感じ。
盆地や湖の部分は切り抜きます。
切り抜くには、盆地になる部分を後から描いて(上に覆う(Shortcut:[Home])ようにして)、まわりの山の部分と盆地になる部分を両方共選択してから[パス]→[差分](Shortcut:[Ctrl]+[-])で切り抜くことができます。


でも北海道だと面倒なので簡単な形に変えます。ごめんなさい(笑)


で、高さごとに色をわけていきます。
Inkscape の場合は透明が使えますので、色は下の表の左のように設定します。
透明が使えない時は下の表の真ん中のように設定します。
右は HSL 表記です。参考までに。多分、HSL しか使えないというソフトはないと思うけど。

高さ RGBA RGB HSLA HSL
750m 0xFFFFFFFF 0xFFFFFF 0x0000FFFF 0x0000FF
700m 0x00000011*1 0xEEEEEE 0x00000011 0x0000EE
650m 0x00000011 0xDDDDDD 0x00000011 0x0000DD
600m 0x00000011 0xCCCCCC 0x00000011 0x0000CC
550m 0x00000011 0xBBBBBB 0x00000011 0x0000BB
500m 0x00000011 0xAAAAAA 0x00000011 0x0000AA
450m 0x00000011 0x999999 0x00000011 0x000099
400m 0x00000011 0x888888 0x00000011 0x000088
350m 0x00000011 0x777777 0x00000011 0x000077
300m 0x00000011 0x666666 0x00000011 0x000066
250m 0x00000011 0x555555 0x00000011 0x000055
200m 0x00000011 0x444444 0x00000011 0x000044
150m 0x00000011 0x333333 0x00000011 0x000033
100m 0x00000011 0x222222 0x00000011 0x000022
50m 0x00000011 0x111111 0x00000011 0x000011
0m (海面) 0x00000011 0x000000 0x00000011 0x000000

で、透明化ができればおなじ色に設定できて便利ですねと言いたいところなのですが、ソフトによっては(最近のソフトだとほとんど当てはまると思う)15枚重ねても 0x000000 になんかなるわけがないです。透明度をどんなに下げても 0x000000 にはならないものがあります(α値がFFに近いと誤差で 0x000000 になることはある)。その場合は、α値を調節して、750m のところが 0x111111 より小さくなるように調節するか、透明を使わないで設定してください。上の表はただ単純に透明の計算が 0xFFFFFFFF に 0x000000011 が重なっていれば 0xEEEEEE になるものと仮定して書かれたものです。


↓必要があれば使ってください。

16進 10進
FF 255
EE 238
DD 221
CC 204
BB 187
AA 170
99 153
88 136
77 119
66 102
55 85
44 68
33 51
22 34
11 17
00 00

で、色が塗れたら、線(ストローク)を消して、実際に使うサイズにリサイズします。
Inkscape の場合、リサイズはビットマップのエクスポート画面([ファイル]→[ビットマップにエクスポート]、ショートカット:[Ctrl]+[Shift]+[E])で行った方が便利です。範囲はページ(ページのサイズをあらかじめ変えておくと良い*2 )、ビットマップサイズを2の冪乗にします。


さて出力しました。もう一度言いますけど、PNG か BMP である必要があります。
f:id:lugia:20090412221446p:image
↑この画像は PNG です。


なんか変ですか。ああ、そうですか。いえ、変ではないです。色は飛んでいても大丈夫です。
もちろん、飛んでいないほうが正確なマップが作れます。


では、OpenTTD を起動しましょう。
シナリオエディタを起動し、ファイルメニュー(フロッピーのアイコン)から、「ハイトマップを開く」を選択します。
開くファイルを選択したら、気候・サイズ・開始年を調整して、作成をクリックしましょう。
f:id:lugia:20090412222213p:image
これで、マップの土台ができました。0.6.3 以前は角やマップの端は海になるように調整されます。


あとは好きなように街や道路、産業を配置していけば君だけのマップの完成だ(笑)
もちろん、地形の微調整も忘れずに。細かいところまで君のイメージした通りに作れるわけじゃないからね。


ちなみに素材にした地図などの著作権が心配な場合には外部には公開しないほうが無難かも。
著作権法的にはどうなのか良くわからないんで、自己責任でね。


最後だ! って言ったんだけど、やっぱり続きますw

*1:0mの領域に重ねる。以下ひとつ上の色に重ねていく

*2:[ファイル]→[ドキュメントの設定]、ショートカット:[Ctrl]+[Shift]+[D]