世界を動かす技術を、日本語で。

「シヴィライゼーションVII」におけるボロノイマップ生成

概要

  • Civilization VIIのマップ生成技術の刷新
  • Voronoi図を活用した自然で多様な地形生成
  • 新マップタイプ「Continents and Islands」「Pangea and Islands」の追加
  • 探索の楽しさとバリエーションの強化
  • 今後の拡張・カスタマイズやMOD対応も視野

Civilization VII マップ生成技術の進化

  • Civilization VII の初期リリース時、従来型のマップ生成技術を採用
    • バランス重視、Deep OceanやDistant Landsなど新ルール対応
    • 公平なマップだが、 予測可能性 が高く、探索のワクワク感が減少
  • コミュニティから「マップが単調」「海岸線が直線的で没入感が薄い」との声
    • Earthらしさ の欠如、没入感の低下
    • 特に マルチプレイ 以外では自然さが重要

1.2.5アップデートの主な改善点

  • より自然で多様なマップ生成を目指し 新技術 を導入
  • 新マップタイプ
    • Continents and Islands (2大陸+島々)
    • Pangea and Islands (1大陸+島々)
  • どちらも Voronoiマップ生成 を採用

Voronoiマップ生成技術の仕組み

  • Voronoi図 を応用し、動的に陸地を成長させるアルゴリズム
    • 従来の フラクタルノイズ では難しかった柔軟な制御が可能
    • ゲームプレイ要件を満たしつつ、自然な地形生成
  • 手順概要
    • ランダムに点を配置し、 セル分割 で「割れたガラス」状の地図を作成
    • 一部セルを選び、 テクトニックプレート として拡張
    • プレートごとに 回転・移動方向 を設定
    • 高解像度点を再配置し、 本格的な大陸・島々 を成長
    • ルールに応じて陸地の成長方向や分布を調整(例:極地回避、特定緯度優先)
    • ゲームプレイ制約(HomelandsとDistant Landsの分離など)も適用
    • 島生成、海岸線の侵食、山や火山の追加などの仕上げ作業
    • 最後に ヘックスグリッド を重ね、ゲームプレイ層へ引き渡し

新マップ生成によるゲーム体験の変化

  • より 多様で自然な地形 が出現
    • HomelandsとDistant Landsの配置バリエーション増加
    • 大陸同士の接続や分断、島々の分布の多様化
    • 島同士の合体による超大陸 の出現可能性
  • 95%は「標準的な自然マップ」に調整、5%は 奇抜なレイアウト も発生
    • RNG による予測不能な展開も楽しみの一部

今後の展望とカスタマイズ性

  • 新マップ「Continents and Islands」「Pangea and Islands」はシングルプレイでデフォルト
  • 旧マップも マルチプレイ向け に引き続き利用可能
  • 今後も カスタマイズ性・拡張性 を重視
    • さらなるマップオプションや改良、設定公開を予定
  • MOD制作者 にもVoronoiマップ生成を開放
    • スクリプトや設定ファイルをゲーム内で提供
    • コミュニティによる新マップタイプ創出を期待

プレイヤーへのメッセージ

  • 新マップでの 探索の驚きと発見 を再体験
  • 面白いマップや奇抜な地形を SNSや公式Discord で共有推奨
  • 今後も継続的なマップ機能のアップデートを予定
  • Firaxis Games からの今後の発表に注目

Hackerたちの意見

関連: https://www.redblobgames.com/x/2022-voronoi-maps-tutorial/

ゲーム開発に関しては最高のウェブサイトの一つだね。A*やダイクストラのセクションは伝説的だよ。

自分でもボロノイ図を使ってマップを作ろうとしてるんだ。ロイドのアルゴリズム[0]を使って、変な形の領域を「フィット」させるようにしてたけど、島を定義するために大きな領域を生成して、その上に小さな領域を重ねるってアイデアが好きだな。こういうアルゴリズムの面白さは、アルゴリズムによって生まれる独特な特徴にあると思うんだけど、それを取り除こうとすると、面白い新しさが失われちゃう気がする。 - [0] https://en.m.wikipedia.org/wiki/Lloyd%27s_algorithm

こういう探索的・クリエイティブなプログラミングは、ソフトウェアエンジニアとしての楽しさの中で間違いなく最高だよね。こういうプロジェクトについてのレポートを読むのが大好きで、画面からオタクの喜びが伝わってくる感じがする。

ほんとに感染力があるよね!こんな風にボロノイを使うなんて思いつかなかったし、今までの使い方はデータビジュアライゼーションだけだった。

新しいシヴィライゼーションのゲームはまだプレイしてないけど、これはすごく興味深いね。

Civ4-Beyond the Swordは、個人的には最後の良いCivゲームだと思う。1タイルにつき1ユニットだとゲームが台無しになる。

個人的には、この最後のやつがかなり良いと思う。

Civ 7は微妙だから避けた方がいいけど、5と6はかなり良いよ。1タイルにつき1ユニットのシステムのおかげで、前の作品とはかなり違うけど、個人的には良い方向に変わったと思う。

関連で、手続き型コンテンツ生成とGenAIコンテンツ合成についてのブログを始めたんだ: https://gamedev.blog/。フィードバックや提案があれば大歓迎!近いうちにボロノイ図についても取り上げる予定で、Pythonの実装やUnityで3Dマップにすることも考えてるよ。

ここを見てみて、いい参考になるよ。 https://available-anaconda-10d.notion.site/That-Creative-Cod...

これめっちゃ面白い!AlphaEvolve[0]を使ってパーリンノイズの手続き型生成にちょっと手を出してみたんだけど、ボロノイマップでもやってみたら面白いかなって思ってる! [0]: https://blog.toolkami.com/alphaevolve-toolkami-style/

これは一般的にすごく強力なテクニックだよね。従来のPCG技術に対して、ある程度のコントロールができるから!必要なのは正しいプロンプトと評価基準だけ。Voronoiマップにも応用できそう。

Raymond Hill(ブロック解除)もJavaScriptのVoronoiライブラリを作ったよ。 https://github.com/gorhill/Javascript-Voronoi

Civ 5をもう一度作ってほしいな、でもこういうクールなアップデート付きで。

Uncivに追加できるかもね?