2 ポイント 投稿者 GN⁺ 2025-05-23 | 1件のコメント | WhatsAppで共有
  • 1999年のゲーム Sid Meier’s Alpha Centauri に登場する惑星 Chiron を、実際の地図制作手法で再構成し、128×64タイルベースのゲームマップを高解像度のポスター地図へ拡張したもの
  • 中核となる作業は、ゲーム内の 8,192個のタイルの標高値 を直接記録し、降水量・岩石度・xenofungus データをスクリーンショットと QGIS のサンプリングで抽出することだった
  • Chiron が球体の惑星として描かれ、ゲームマップが左右に連続している点を踏まえ、元の地図に cylindrical equal area projection と Trystan Edwards 変形を与えた
  • 低解像度のグリッドデータは、ランダム点分散、TIN 補間、Delaunay 三角分割、ノイズ、手動補正、極地 DEM の再作成によって、より有機的な地形モデルへと変換された
  • 最終地図は QGIS、Python、Photoshop、Illustrator、Eduard を組み合わせて制作されており、架空世界の地図でも使える 既存データ があれば、実際の地図制作技法で拡張できることを示している

Alpha CentauriのChironを地図化したプロジェクト

  • 成果物は Sid Meier’s Alpha Centauri の舞台となる惑星 Chiron を扱ったポスター地図
  • Chiron はゲームの舞台であり中核要素のひとつで、公式の内蔵マップはゲームデザイナー Chris Pine が制作した
  • この記事の中心はゲーム紹介よりも、ゲーム内データを実際の地図制作プロセスへ変換する 制作工程 にある
  • このプロジェクトは既存の地図制作スキルを架空世界に応用した事例だが、最初から世界を創作するファンタジー地図とは性格が異なる

実在の地図と架空地図の違い

  • 実在世界の地図制作は、与えられた 地理データ を加工し、スタイリングする作業に近い
  • ファンタジーやSFの地図をゼロから作るには、データ自体を新たに作らなければならず、別の能力が必要になる
  • 制作者は自分をデータ生成者というより データ操作者 に近いと捉えている
  • Chiron の地図を作れた決定的な理由は、ゲーム内に活用可能な既存データがあったため

ゲームデータの収集

  • Alpha Centauri の公式マップは 128×64のひし形ピクセル で構成されている
  • 各ピクセルには標高、降水量、岩石度といった属性が含まれている
  • 標高値の転記

    • ゲームが各タイルの正確な標高値を表示することを利用した
    • 合計 8,192タイル の標高値を手作業で記録し、転記ミスを減らすため再確認も行った
    • この作業は2022年に始まり、2025年に完了した
  • 降水量と岩石度

    • 降水量データは、元のゲームにはない MOD の主題図を利用した
    • 降水量は rainy、moist、arid の 3段階 に分かれている
    • 全体地図をスクリーンショットで取得した後、Photoshop で色を分離し、QGIS でグリッドごとのベクターポイントにラスタ値をサンプリングした
    • 地図要素が降水量情報を隠している部分は手動で補正した
    • 岩石度も同じ手順で抽出したが、最終地図では使用しなかった
  • xenofungus

    • xenofungus は Chiron 固有の生命体で、ゲームマップではピンクまたは赤の地表として示される
    • このデータは存在の有無だけを持つ二値データである
    • 専用の主題図がないため、通常のゲームマップからピンク・赤系のピクセルをサンプリングして補正した

投影法の設定

  • ゲーム世界は左右に無限に移動でき、上下端で止まる 円筒状の地図 のように動作する
  • Chiron はゲーム内のさまざまな媒体やタイトル画面で丸い惑星として描かれるため、2D地図は球体惑星の表現とみなせる
  • ゲームでは基地を建てると場所に関係なく同じ数のピクセル領域を支配するため、各ピクセルは同じ面積を表すと仮定した
  • これらの条件に合わせ、ゲームマップに cylindrical equal area projection を与えた
  • 標準緯線を 37.4° に設定するとゲームマップと同じ縦横比になり、これは Trystan Edwards projection に相当する
  • この投影設定は、その後 QGIS で生成したデータセットの座標処理基準として使われた

低解像度の標高グリッドをDEMへ拡張

  • 元の標高データは 128×64 グリッドで、ポスター地図に使うには解像度が非常に低い
  • 目標は、ゲーム内で既知の事実を保ちながら、より詳細な デジタル標高モデル を作ることだった
  • ランダム点と TIN 補間

    • 各タイル上にランダムな点を散布しつつ、点が過度に密集しないよう最小距離を設けた
    • 各グリッドタイルにはおおよそ 1〜3 個の点が生まれ、点のないタイルには中心点を追加した
    • 各点には、その点が置かれたタイルの標高値を与えた
    • その後 TIN 補間 で初期標高モデルを生成し、元のグリッドだけを使う補間よりも格子状の見え方を減らした
  • Delaunay 三角分割とノイズ

    • より細かな地形を得るために Delaunay 三角分割を繰り返し利用した
    • ランダム点同士の三角形の重心に新しい点を追加し、その標高は周囲 3 点の平均で決めた
    • 各点の標高に小さなランダムノイズを加えて凹凸を作り、反復するごとにノイズ幅を小さくした

手動補正とGarland Crater

  • 補間結果が公式 Chiron マップと食い違う箇所は手動で補正した
  • 公式地図では島なのに補間結果では本土とつながってしまったり、小さすぎて最終地図で見えなくなる島があった
  • そのような地域には追加の標高点を入れて形状を調整した
  • Garland Crater は、元のグリッド標高値だけを見るとほぼ四角形だが、ゲーム内の視覚表現は円形を意図しているように見える
  • この地域では rubbersheeting によって元の標高点を移動し、より円形に近いクレーターへ補正した

スムージングと極地DEM

  • 補間後には複数のスムージング手法を組み合わせて適用した
    • focal statistics の mean と median を使用
    • QGIS の Karika plugin による line integral convolution
    • 少量の Perlin noise を追加
    • スムージングしたレイヤーと元レイヤーを再度混合し、再びスムージング
  • 厳密な公式よりも、結果が適切に見えるまで調整するやり方に近かった
  • 元の円筒投影では極地が大きく引き伸ばされるため、北極と南極は別投影で再度標高補間を行った
  • 極地にはゲームデータのない大きな領域があり、中央部にはほぼランダムなノイズを散布した
  • 北極・南極の DEM は、将来的にその地域の地図に使えるよう別個に作成し、メイン DEM にも再びブレンドした
  • その後も欠落した湖や小島が見つかり、一部は DEM 修正で、一部は地図制作段階での手描きで補正した

Orthoapsidal投影とカスタムスクリプト

  • メイン地図には orthoapsidal、すなわち Raisz Armadillo projection を使用した
  • この投影は、読者に曲面を見ている感覚をより直接的に与えるため選ばれた
  • QGIS にはこの投影がないため、Wikipedia の変換式をもとに Python スクリプトを自作した
  • PyQGIS の使用にはまだ不慣れで、ChatGPT の助けも借りた
  • Chiron の大陸配置に合わせて投影を調整した
    • 既定の垂直傾斜 20° を -10° に変更
    • 左右の曲率を弱めた
    • まず水平方向に地図を縮めてから投影し、その後ふたたび水平方向に引き伸ばして、縁での圧縮歪みを軽減した
  • スクリプトはベクターしか扱えなかったため、DEM のようなラスタは各ピクセルをポリゴン化して投影し、再ラスタ化した
  • この方法は理想的ではなく処理時間も長かったが、実作業では機能した

Photoshop中心の地図レイヤー制作

  • 最終地図は大部分を Photoshop でレイヤーを重ねて構成した
  • 海底地形は、標高 0 以下の DEM 部分を白黒ラスタ化し、gradient map で青系に再着色した
  • 陸地は再投影した標高モデルから水中部分を切り取り、Eduard を通してスイス式の手描き陰影起伏をシミュレートした
  • 海岸線には内側グローを加えて陸と水を分離し、海岸近くの山地が徐々に消えていく効果を与えた
  • ゲームの標高値は凹凸が大きく、山が海岸のすぐ脇に突然現れることが多かったため、海岸部が少し穏やかに見えるよう処理した
  • 陸地の起伏には hue/saturation レイヤーで茶系の色味を与え、小さな色ノイズを加えてより有機的に見せた

降水量にもとづく植生表現

  • ゲームの公式地図と同様に、降水量データを植生表現に利用した
  • 起伏レイヤーを複製して緑色に着色し、色ノイズと明暗調整レイヤーを加えた
  • 緑の起伏レイヤーと茶色の起伏レイヤーを混ぜるマスクは 降水量データ から作られた
  • QGIS で再投影した降水量ポイントに thin plate spline interpolation を適用して、マスクの基礎を作成した
  • Photoshop では dissolve blending mode とぼかし・シャープ化フィルタで、点状のやわらかなノイズテクスチャを作った
  • このマスクにより、雨の多い地域から乾燥地帯へ移る際、植生が透明になるのではなく、植物数が減っていくように見せられる
  • 印刷物では拡大鏡なしでは見えにくいかもしれないが、画面ではより自然な植生境界が期待できる

Xenofungusと河川

  • xenofungus は陸と海の両方に現れる
  • 陸上の xenofungus は植生とほぼ同じ方法で処理した
    • ポイントデータを補間する
    • なめらかにし、ノイズ化する
    • 赤い起伏レイヤーのマスクとして使う
  • 海の xenofungus は同じ点状マスクを使いつつ、水域だけに切り抜かれる別の紫レイヤーとして追加した
  • 海の fungus レイヤーは linear burn ブレンドモードで下の水色と混ぜた
  • ゲームマップ上の河川はグリッドに縛られて非常に角張っているため、QGIS で手作業で描き直した
  • Illustrator で河川の源流部に弱い taper を与え、Photoshop で色と bevel を追加して、地面を削って流れているような感覚を出した
  • DEM ベースの水文解析も試みたが、地形があまりにでこぼこで内陸流域や短い川が大量にでき、直接描くほうが簡単だった

色調、ペイント効果、曲面の強調

  • 地図全体には彩度上昇を適用し、曲率を視覚化するため graticule を追加した
  • 彩度上昇は当初 Photoshop のレイヤー移動中に偶然生じたものだったが、結果が気に入ったため残した
  • いつもより強い色彩体系になったが、個人プロジェクトでの実験として受け入れた
  • 地図を単一レイヤーに統合して縮小した後、Photoshop の dry brush フィルタを適用し、半ば塗装されたような質感を作った
  • フィルタ結果はぼやけすぎたため、元の地図と 50:50 で混ぜ、ディテールと絵画的な柔らかさのバランスを取った
  • 最後に縁へ内側の影を加えて光が減衰する感じを作り、平面ではなく曲面だという印象を強めた

ラベリングと書体選び

  • 初期のラベリングは Photoshop より文字ツールに優れる Adobe Illustrator で行った
  • 完成したラベルは Photoshop に戻して地図と馴染ませた
  • 各ラベルの下の地図をぼかし、文字の縁が背景より鮮明に見えるようにした
  • 明るい文字を明るい背景に、暗い文字を暗い背景に載せられるよう、glow と smart halos の手法を使った
  • すべてのラベルは Sarah Bell が設計した BellTopo Sans を使用した
  • serif は地図の強い色調に対して繊細すぎ、SF 地図にも合わないと判断した
  • ゲーム本体の書体である Eurostile は、やわらかなパレットとスタイルの地図には硬すぎて見えた
  • BellTopo Sans はサンセリフの強さと手描き風の人間味のある要素を併せ持ち、適していると考えた

曖昧な地名とポスター構成

  • ゲームの地形地物は常に明確にラベル付けされているわけではなく、白いテキストが単一グリッドタイル上に置かれている形だった
  • 多くの場合、地形の境界を自分で解釈しなければならなかった
  • Planetneck は最も難しい例だった
    • 指のような水路を指すのか、その上を横切る陸地を指すのか曖昧だった
    • ゲームマップには陸地と水域のどちらも通行可能な細い茶色の線状地域もあり、解釈はさらに難しかった
    • 最終的には、細長い湾の入口を意味するものと判断した
    • この判断は、公式地図に他の海峡名が存在することとも整合する
  • 公式地図にある名称は 32個 のみで、この規模の地図としては非常に少ない
  • 新しい名前を作るのは気が進まなかったため、既存名だけを使った
  • 最終ポスターにはメイン地図のほか、同じデータセットと技法で作った小地図も含まれる
    • 標高データをより明確に見せる地図
    • 歪みの少ない極地地図 2 点
  • 背景と地図には、ゲームインターフェースへのオマージュとして薄い scanline を加えた
  • タイトルとフレームの青色もゲームインターフェースを想起させる要素である

作業の限界と今後の可能性

  • 全工程は、ゲームデータの地道なサンプリング、GIS 変換、カスタム投影の調整、Photoshop レイヤー構築が組み合わさった、非常に労働集約的な作業だった
  • 実際の進行は説明のような効率的な順序ではなく、何か月にもわたる試行錯誤と行き止まりがあった
  • 現在はデータセットがあるため、今後 Chiron の小地域を拡大し、より大縮尺の地図を作る可能性がある
  • その場合、既知の標高値を保ちながら、より現実的な地形を生成する方法を探れる
  • 岩石度データは最終デザイン後になってから活用可能性を思いついたもので、この縮尺では大きな違いを生まなかったが、拡大地図では影響を与えるかもしれない
  • 元の DEM には、欠落した湖や島のような点でまだ整理が必要である
  • より現実的な標高モデルを作る方法が分かれば、既存 DEM をより良いものに置き換える可能性がある
  • このプロジェクトは既存データがあったからこそ可能であり、架空世界であってもデータ操作能力を実際の地図制作手法に応用できることを示している

1件のコメント

 
GN⁺ 2025-05-23
Hacker Newsのコメント
  • Daniel Huffmanの話はかなり説得力があって刺激を受ける: https://somethingaboutmaps.wordpress.com/about/
    長い版はさらに良い: https://somethingaboutmaps.wordpress.com/2011/03/02/on-salva...

    • 仕事に関する憂うつ感の描写が本当に刺さる
      彼が見つけた火花を自分も見つけたいが、自分の情熱はもう何年も前にすり減ってしまった気がして怖い
  • このゲームは自分にとってとても重要だった。イデオロギーと宗教的信念を、特定の人間の事例から切り離された抽象的なものとして初めて認識した記憶だからだ
    さまざまな勢力と彼らの信じるものが本当に良くて、もし異星人が存在するならどんな種類の信念を持つのだろうといつも想像させられた

    • 素晴らしいゲームだった
      政治体制が本当に良くて、4つの分野にそれぞれ4つの選択肢しかないのに、選択肢同士が自動的に結び付けられていない点が見事だった
      その気になれば自由市場の警察国家も可能だ。子どもの頃にこのゲームをやると、自分の政治的傾向が実際には何を意味するのかをもう少し考えるようになるかもしれない。もちろん本を読んでもよかったのだろうが、それは無理だったので。SFゲームとしてもしっくり来ていた。作家というのは奇妙な政治的組み合わせで遊ぶのが好きだからだ
    • そういう理由でSFやファンタジーが好きだ。もちろん十中八九は人間文化の変形だったり、序盤では一面的に縮減されたりする。エルフはエリート主義の人種差別主義者、Klingonは怒れる種族、という具合に
      でも長く続くシリーズは時間とともにニュアンスを加え、固定観念が自分たちの「本性」と戦うようになったりもする
    • Civilization: Beyond Earthがあれほど期待外れだったのは残念だ
      興味深い指導者、勢力、イデオロギーの代わりに、「宇宙アフリカ」と「宇宙オーストラリア」を渡された
      Firaxisが本物のCentauriリメイクを作れないような法的問題があるのか気になる
  • Sid Meier's Alpha Centauri、本当にすごいゲームだった
    SMACを通じて、未来社会が人類の生存と進歩を保証するためにどのように組織され得るかについてのアイデアを得たし、speculative technologyが文明をどう変えるかも見た
    このゲームを遊んでいると孤独が少し和らいだ。孤独が時代を超えた普遍的な人間条件であることを示していたからだ。星々のあいだに居場所を見つけようとする人類のビジョンに希望を見いだし、自分よりはるかに大きな思想と格闘することになり、ゲーム内での選択によって自分の共感能力が測られているようにも感じた
    そして歴史もゲームのように、道徳的な羅針盤なしにただ前へ進んでいくのだと気づいた

  • Sid Meier's Alpha Centauriでなぜ「planetfall」という言葉が使われるのか気になっている人のために言うと、ゲーム内で繰り返し登場する用語で、歴史の始まりを意味していた
    開始プロンプトはこうだった:

    $NAME3, a new era of struggle and opportunity awaits you. The UN Starship Unity has arrived in the Alpha Centauri system after a forty year voyage. All contact with Earth has been lost. After Captain Garland's assassination by an unknown assailant, the crew mutinied and split into factions. In the ensuing conflict, some seized control of the Unity's colony pods. You now shape the destiny of your $ faction, which has just made PLANETFALL!

  • 「だから地図をなぞって、すべてのタイルの高度値を書き留めた。全部で8,192個だった」
    8千回も手作業でやるより、もっと自動化された方法が明らかにあったはずでは?

    • このコメントを読んでいる多くの人なら、地図データを抽出して .CSV に変換するスクリプトをあっという間に書けたはずだと思う
      それでも、さほど重要でもないことに少し時間を使いたいとき、ぼんやり長く繰り返せるプロジェクトにはそれなりの価値がある
    • 自分も同じことを思った。当時このゲームを好きだった nerd はものすごく多かったし、自分もその一人だから、こういうデータポイントをプログラミングで抽出することに喜んで挑戦したと思う
  • Sid Meier's Alpha Centauriの説明を読んでいて、アニメシリーズScavengers Reignが非常によく似た設定だと気づいた。知性があるように見える惑星に人類の開拓者たちが不時着するという点でそうだ
    この機会にぜひ勧めたい。SFファンなら、Greg EganやVernor Vingeを思い浮かべる人なら気に入るはずだ。SFファンでなくても試してみる価値がある。それくらい良い

  • このゲームのサウンドデザインは本当に素晴らしかった。傑作だ

    • 奇妙な「イベント」音、インターフェースの小さなビープ音、武器の「ピュンピュン」という音、素晴らしい声優の演技が好きだ
      1999年にパッケージ版を買って以来、どのコンピューターにもいつもこのゲームを入れていた。芸術作品だ。この25年以上でグラフィックがどれだけ進化しても、ほかのCivゲームが自分にこれほど響いたことはない
    • サウンドデザインについて一つ不満があるとすれば、BGMの動作の仕方だ
      おそらくプレイヤーが非アクティブなときに流れ始めるようなのだが、どんなプレイをしていても実際に発動する機会がほとんどない
      勢力ごとに別々のサウンドトラックがあった気がする
  • 作品は素晴らしいし、地図も文章も気に入った。本当に良くできている
    惜しいのは、陸地の質感にコントラストの強い境界が見えないことだ。すべてが別の地域へなめらかに流れていき、山は見えるものの、質感はほとんど山を無視している。私たちの惑星の地形に見られるような境界が欠けている

    • ある程度は同意する。元の地図を異星らしく見せていた面白い特徴の一つは、あらゆる場所を横切る赤い線だった
      おそらくxenofungusなのだろうが、マグマのようにも見えたし、大陸が裂けているようにも見えた。新しい版ではその感じが失われている
      それでも、ここに注ぎ込まれた作業量は高く評価するし、仕上がりもとても見栄えがいい
  • そのゲームをやめるために、ディスクを他人に渡さなければならなかった。仕事と睡眠に深刻な支障が出るほどだった

  • 似た流れで、ファンタジー地図の手続き型生成を扱うブログ「Here Dragons Abound」がある。しばらく更新はされていない: https://heredragonsabound.blogspot.com/