# ゲームの手続き型生成:その仕組み
Source: https://thelockoftime.world/ja/blog/procedural-generation-in-games
手続き型生成とは何か、レベルや世界を組み立てるためにゲームが使う種類とアルゴリズム、そして単なるランダム生成との違いを解説します。


手続き型生成とは、デザイナーがひとつひとつを手で置くのではなく、実行時にアルゴリズムとルールでコンテンツ——レベル、地形、戦利品、敵、惑星まるごと——を作り出す技術だ。開始値(**シード**)を与えると、システムは設計者が定めた枠の内側に収まる、新鮮で遊べる結果を組み上げる。

ローグライクが100回目のランでも別のダンジョンを差し出せるのも、Minecraftが地球より広い表面積の世界を生成できるのも、これがあるからだ。以下では、この言葉が実際に何を指すのか、アルゴリズムがどう働くのかを平易に説明し、この手法がどこで破綻するのかを見ていく。

## 手続き型生成とは何か

多くの人がまず思い浮かべる言葉は「ランダム」だが、真っ先に正しておきたい誤解がそれだ。手続き型生成はむしろ**選び抜かれたランダムさ**に近い。デザイナーが素材——部屋のテンプレート、タイルセット、アイテムプール、敵の種類、地形のルール——を用意し、それらがどう組み合わさるかの指示を書く。アルゴリズムは、たいていシードを起点に、それらを組み合わせて、ルールに従いつつも新しいものを作り出す。

つまり、あるゲームが*手続き型生成*と説明されているとき、それは開発者がサイコロを振って出た目をそのまま出荷したという意味ではない。完成したレベルを直接作り込む代わりに、コンテンツをその場で組み立てるシステムを設計した、という意味だ。鍵になる細部はシードである。同じシードは常に同じ出力を生む。だからプレイヤーはシードコードを交換して友人とまったく同じ世界を遊べるし、開発者は不具合を起こした地形を再生成して再現できる。

職人技が宿るのは制約の側だ。弱いシステムは粥のようなものを吐き出し、強いシステムは意図を感じさせたままの多様性を生む。

## 手続き型生成とランダム生成

この2つはしばしば同じ意味で使われるが、別物であり、その違いこそが手続き型生成が機能する理由そのものだ。

**ランダム生成**はルールなしに値を選ぶ。数値を振り、壁を置き、次へ行く。放っておけば、この手法は平然と出口を壊せない壁で封じ、扉のない部屋に放り込み、開始地点に精鋭の敵を3体積み上げる。

**手続き型生成**は、そのランダムさを、厳選された部品に適用されるルールと制約で包む。部屋を振って決めるところは同じでも、入口から出口への経路が存在するか、提示された戦利品で勝てるか、難易度が許容範囲に収まっているかを検査する。ランダムさがエンジンで、制約がハンドルだ。

平たく言えば、ランダムさはコイン投げ、手続き型生成は、その脇にデザイナーが立って「それはなし」と言ってくれるコイン投げである。優れた手続き型システムはどれも、実のところ乱数のまわりに張られたガードレールの集合だ。

## 手続き型生成の種類

「手続き型生成」は総称だ。ゲームはこれをまったく異なる部分に適用しており、大作の多くは複数の種類を同時に使っている。

- **レベルとダンジョン。** 古典的な用途。Spelunky、[Dead Cells、The Binding of Isaac](/ja/blog/best-roguelike-games)のようなローグライクは、毎回のランで手作りの部屋から新しい構造を縫い合わせる。読み解こうとしている空間が、二度とまったく同じにはならない。これは[パーマデス](/ja/blog/permadeath-in-games)と自然に噛み合う。固定マップに永続的な死を足しただけでは、ただの記憶力テストになってしまうからだ。
- **地形と世界。** Minecraft、No Man's Sky、Valheimは、陸地、バイオーム、洞窟、惑星を彫刻するのではなく数式から生成する。小規模チームでも事実上無限の世界を成立させられるのは、これのおかげだ。
- **戦利品とアイテム。** DiabloとBorderlandsは武器や装備の性能をテーブルから振る——基礎タイプ、修飾、レアリティ——ので、「同じ」型番の銃2挺がまったく別物として機能する。有名な「Borderlandsには銃が870垓丁ある」という売り文句は、手続き型ルートを一言で表している。
- **テクスチャとモデル。** ノイズ関数は、アーティストが1ピクセルずつ描かなくても大理石、木目、雲、錆を描き出せるし、岩や草や木をマップ全体に撒くこともできる。
- **クエストと物語。** もっとも稀で、もっとも難しい種類。Dwarf Fortressは歴史まるごと——戦争、移住、遺恨——をシミュレートし、Left 4 DeadのAIディレクターは緊張感を保つために敵の波やアイテムの落ち方をその場で組み替える。物語の生成は、手続き型システムがもっとも継ぎ目を見せやすい領域でもある。

## よく使われるアルゴリズムと技法

ゲームが何をしているかを理解するのに、これらを自分で書ける必要はない。主力どころを平易に並べておく。

- **ノイズ関数(Perlin、Simplex)。** 砂嵐のように見える生の乱数値ではなく、ノイズは滑らかで自然に感じられる勾配を生む。格子上でサンプリングし、その値を高さとして読めば、なだらかな丘や山や谷になる。Minecraftを含め、生成された風景のほぼすべてを支える背骨だ。SimplexはPerlinの後継で、より高速で格子の偏りが少ない。
- **セルオートマトン。** 「壁」と「床」のセルをランダムにばら撒いた状態から始め、単純な近傍ルール(近隣に十分な数の壁があればそのセルも壁になる)を繰り返し適用する。数回の反復でノイズは有機的な見た目の洞窟に落ち着く。自然な洞窟系を作る定番の手だ。
- **BSPと部屋・通路方式。** 二分空間分割は矩形を再帰的に小さな矩形へ切り分け、それぞれに部屋を落とし込み、通路でつなぐ。多くの古典的ダンジョン構造を支えてきた、信頼できて読みやすい手法である。
- **波動関数崩壊。** 比較的新しい人気株。少数のタイルの見本と、どのタイルがどのタイルの隣に置けるかというルールを与えると、局所的な配置がすべて合法であるようにマップ全体を埋めてくれる。アートタイルでできた数独を解くようなものだ。整合性のある町やダンジョン、模様に向く。
- **Lシステム。** ひとつの記号から始めて、ルールに従って繰り返し展開していく書き換え文法。枝分かれ構造に向けると、説得力のある樹木、植物、河川網、稲妻を生む。

実際のゲームの多くはこれらを連ねる。地形にノイズ、その内部の洞窟にセルオートマトン、その上の森にLシステム、といった具合に。

## ゲームがこれを使う理由

- **リプレイ性。** レベルと戦利品が毎回変わるなら、システムを習熟し尽くしたあとも予測不能さが残る。[ローグライク](/ja/blog/what-is-a-roguelike)と、その軽装版である[ローグライト](/ja/blog/roguelike-vs-roguelite)の心臓部はここにある。
- **規模。** MinecraftやNo Man's Skyほどの世界を手で作るのは端的に不可能だ。手続き型生成は、小さなチームがほぼ無限の空間を出荷することを可能にする。
- **容量。** 生成された世界はディスク上にほとんど存在しない。保存するのはシードとルールであって、完成した数テラバイトではない。No Man's Skyが1800京個の惑星を通常サイズのダウンロードに収めているのは、料理そのものではなくレシピを保存しているからだ。
- **驚き。** あるシードが何を生むかは開発者にも正確には分からない。だからゲームは、作った本人たちを驚かせることさえできる。

## トレードオフ

代償は作為的な意図だ。手作りのレベルは意図的なリズムを持てる。奇襲の前の静けさ、狙いすまして切り取られた眺め、体力が減りきったちょうどそのときに襲いかかる敵の配置。生成されたレベルは、その作り込みの一部を多様性と引き換えにしている。制約が弱ければ、結果はどこか似通い、「魂がない」と言われ、噛み合わない断片を寄せ集めたパズルのように支離滅裂に感じられる。

正直な失敗の形は、「広いが浅い」世界だ。技術的には無限で、感情的には平板。発売当時のNo Man's Skyがその教訓である。数十個も回ると区別がつかなくなり始める、無数の惑星。

だからこそ、もっとも優れた手続き型ゲームはたいてい**ハイブリッド**だ。SpelunkyとDead Cellsは全体構造を生成しつつ、人間が設計し調整した部屋からそれを組み立てる。だから毎回のランは新鮮でありながら、どの部屋も公平だ。配置は生成器が担い、それぞれの部品の中身は人間が担う。手続き型の極みのようなDwarf FortressやCaves of Qudでさえ、その足元には人の手で作られたシステムとアートとルールがある。生成器はデザイナーの仕事を置き換えるのではなく、掛け算しているのだ。これは[死と再挑戦の感触](/ja/blog/roguelike-death-mechanic)も変える。生成された世界では、やり直しは前回の繰り返しではなく新しい課題になる。

私たちのゲーム、KUTO: The Lock of Timeは、そのハイブリッド寄りの位置にいる。戦い抜いていく各時代——古代エジプト、ヴァイキングの時代、ネオンきらめくサイバー都市——は完全生成ではなく手作りの構造で、そのうえで、クロノスの大鎌と選んだ時間の力による戦闘が毎回まったく同じ展開にならないよう変化がつけられている。手続き型ローグライクではなく、多様性の余地を持たせた作り込みの空間だ。[KUTOをSteamのウィッシュリストに追加](https://store.steampowered.com/app/4755510)。


## FAQ
**ゲームにおける手続き型生成とは?**
手続き型生成とは、デザイナーがひとつひとつを手で配置するのではなく、実行時にアルゴリズムとルールを使ってコンテンツ——レベル、地形、戦利品、敵——を組み立てることです。シードと呼ばれる開始値を与えると、システムは設計者が定めた枠内に収まる、新鮮で遊べる結果を生成します。

**手続き型生成にはどんな種類がある?**
代表的なのは、レベルやダンジョンの構造(Spelunkyのようなローグライク)、地形や世界そのもの(Minecraft、No Man's Sky)、戦利品やアイテムの性能(Diablo、Borderlands)、ノイズから作るテクスチャやモデル、そしてクエストや物語上の出来事(Dwarf Fortress、Left 4 DeadのAIディレクター)です。多くのゲームはこれらを複数組み合わせます。

**手続き型生成とランダム生成は同じもの?**
違います。ランダム生成はルールなしに値を選ぶだけですが、手続き型生成は厳選された部品にルールと制約を適用します。純粋な乱数は出口を塞いだり勝ち目のない戦闘を積み上げたりしかねませんが、手続き型のシステムは意図した難易度の範囲内で、クリア可能かつ公平であることを保証します。

**手続き型生成にはどんなアルゴリズムが使われる?**
定番は、地形の高さに使うPerlinやSimplexといったノイズ関数、有機的な洞窟を作るセルオートマトン、ダンジョン向けのBSPや部屋と通路方式、局所ルールに従うタイル配置のための波動関数崩壊、そして木や川のような枝分かれ構造を作るLシステムです。

**手続き型生成における「シード」とは?**
シードとは、アルゴリズムに与える開始値です。同じシードは常に同じ出力を生みます。だからこそプレイヤーはシードコードを共有して互いの世界を追体験でき、開発者は特定の地形を再現してデバッグできるのです。

**なぜローグライクは手続き型生成を使うの?**
ラン単位のゲームは、挑戦のたびに新鮮な内容を必要とするからです。固定マップだと、何十回もの再挑戦がただの暗記作業になってしまいます。手続き型生成は毎回のランを新しい課題にします。数百時間を経てもこのジャンルが遊べる理由がそこにあります。

**手続き型生成の弱点は?**
代償は作為的な意図です。手作りのレベルは正確なリズムと完璧な位置の敵配置を持てますが、生成されたものはその作り込みの一部を多様性と引き換えにします。制約が弱いと、似通っていたり支離滅裂だったりする内容になります。多くのスタジオが手作りの部品と生成による組み立てを混ぜるのはそのためです。

**KUTO: The Lock of Timeは手続き型生成を使っている?**
KUTOはハイブリッド寄りです。古代エジプト、ヴァイキングの時代、ネオンきらめくサイバー都市といった各時代は完全生成ではなく手作りの構造で、そのうえでクロノスの大鎌と時間の力を使った戦闘が毎回同じ展開にならないよう変化がつけられています。手続き型ローグライクではなく、多様性の余地を持たせた作り込みの空間です。