知識ベース

手続き生成

コンピューティングにおいて、 プロシージャ生成は、通常、人間が生成した資産とアルゴリズムを組み合わせ、コンピューターが生成したランダム性と処理能力を組み合わせることにより、手動ではなくアルゴリズムでデータを作成する方法です。コンピュータグラフィックスでは、テクスチャと3Dモデルの作成によく使用されます。ビデオゲームでは、ゲーム内に大量のコンテンツを自動的に作成するために使用されます。手続き型生成の利点には、ファイルサイズが小さいこと、コンテンツの量が多いこと、ゲームプレイを予測しにくいランダム性などがあります。

概要

手続きという用語は、特定の関数を計算するプロセスを指します。フラクタルは幾何学的なパターンで、多くの場合手続き的に生成できます。一般的な手続き型コンテンツには、テクスチャとメッシュが含まれます。サウンドは手続き的に生成されることも多く、音楽だけでなく音声合成にも応用できます。 「生成音楽」という用語を広めたブライアン・イーノなどのアーティストによって、さまざまなジャンルの電子音楽の作曲に使用されています。

ソフトウェア開発者は何年も手続き生成技術を適用してきましたが、このアプローチを広範囲に採用している製品はほとんどありません。手続き的に生成された要素は、以前のビデオゲームに登場しました。TheElder Scrolls II:Daggerfallは主に手続き的に生成された世界で発生し、イギリス諸島の実際のサイズの約3分の2を世界に与えます。 Raven SoftwareのSoldier of Fortuneは、単純なルーチンを使用して敵のモデルを詳述しますが、その続編ではランダムに生成されたレベルモードを使用していました。 Avalanche Studiosは手続き型世代を採用して、 Just Causeの詳細で熱帯の島々の大規模で多様なグループを作成しました。ゲームスタジオHello Gamesによって開発されたゲーム、 No Man's Skyはすべて、手続き的に生成された要素に基づいています。

現代のデモシーンは手続き型生成を使用して、大量の視聴覚コンテンツを比較的小さなプログラムにパッケージ化します。

計算インテリジェンスとゲームに関するIEEE会議、人工知能とインタラクティブデジタルエンターテイメントなどの会議で、新しい方法とアプリケーションが毎年発表されています。

現代のアプリケーション

ビデオゲーム

初期の歴史

グラフィック指向のビデオゲームの前は、 Beneath Apple Manor (1978)や同ジャンルの同名Rogue (1980)などのローグライクゲームは、手続き型生成を使用してASCIIベースまたは通常のタイルベースのシステムのダンジョンを構築していました。手続き世代は、プレイヤーが見つける部屋、廊下、モンスター、宝物を定義します。ローグライク、およびローグライクコンセプトに基づいたゲームを使用すると、ゲームの世界を作成するのに過度の時間を費やすことなく、複雑なゲームプレイを開発できます。

1978年のAtari VCS用のMaze Crazeは、アルゴリズムを使用して、各ゲームのランダムでトップタウンの迷路を生成しました。

擬似乱数ジェネレーターを使用した一部のゲームは、事前に作成されたように見える非常に大きなゲームワールドを生成するために、事前に定義されたシード値とともに使用されることがよくありました。 Sentinelには、たった48キロバイトと64キロバイトで10,000の異なるレベルが保存されていたと思われます。極端な例はエリートで 、元々はそれぞれ256の太陽系を持つ合計248(約282兆)の銀河を含むように計画されていました。しかし、出版社は、そのような巨大な宇宙がプレイヤーに不信をもたらすことを恐れていたため、これらの銀河のうち8つが最終版に選ばれました。その他の注目すべき初期の例は、リアルタイムで、手続きの作成にフラクタルを使用Fractalusに 1985ゲームレスキュー 、エイリアンの惑星や川レイドのゴツゴツした山、線形フィードバックシフトレジスタによって生成された擬似乱数列を使用1982 Activisionのゲームを含めます障害物のスクロール迷路を生成するため。

現代の使用

最近のコンピューターゲームには、以前のゲームと同じメモリとハードウェアの制限はありませんが、手順生成の使用は、各プレイスルーに固有のランダム化されたゲーム、マップ、レベル、キャラクター、またはその他のファセットを作成するために頻繁に使用されます。

2004年に、 .kkriegerと呼ばれるPCの一人称シューティングゲームがドイツのデモグループによってリリースされました。 Microsoft Windows用の96キロバイトの実行可能ファイルに完全に含まれており、実行時に数百メガバイトの3Dおよびテクスチャデータを生成します。プログラマーの一人によると、「ゲーム側に関する限り、それは完全な失敗でした(主に、その側面に深く関わっている人は誰もいなかったためです)。」

Naked SkyのRoboBlitzは手続き型生成を使用して、Xbox Live Arcade用のダウンロード可能な50 MB未満のファイルのコンテンツを最大化しました。ウィルライトの胞子も手続き合成を利用しています。

プロシージャル生成は、アクションロールプレイングゲームや大規模なマルチプレイヤーオンラインロールプレイングゲームなど、クエスト駆動型ゲームの略奪システムでよく使用されます。クエストは固定報酬を特徴とする場合がありますが、プレイヤーキャラクターのレベル、クエストのレベル、クエストでのパフォーマンス、およびその他のランダムな要因に基づいて、武器や鎧などの他の戦利品が生成される場合があります。これは、プロシージャル生成システムが平均よりも優れた属性を持つアイテムを生成したことを反映するために適用される希少性の品質を持つ略奪品につながることがよくあります。たとえば、 Borderlandsシリーズは、100万個を超える独自の銃やその他の機器を作成できる手順生成システムに基づいています。

多くのオープンワールドゲームまたはサバイバルゲームは、ランダムシードまたはプレイヤーが提供するシードから手順的にゲームワールドを作成するため、各プレイスルーは異なります。これらの生成システムは、リソース、オブジェクト、およびクリーチャーの分布を使用して、ピクセルベースまたはボクセルベースの多数のバイオームを作成します。プレイヤーは頻繁に、ワールド内の水量の指定など、いくつかの生成パラメーターを調整することができます。そのようなゲームの例には、 ドワーフ要塞マインクラフトが含まれます。これらのゲームに関する手続き型生成のアーティファクトは、プレイヤーが探索できるスペースが制限されていない場合、手続き型生成のランダム性がコンテンツよりも多くのノイズを生成し始めることです。これは、 Minecraftの以前のバージョンの「ファーランド」のアイデアで実証されています。ここでは、バイオーム間の通常のスムーズな移行が無計画な構成に置き換えられました。

手続き型生成は、宇宙探査および取引ゲームでも使用されます。 Elite:Dangerousは、天の川銀河の4,000億の既知の星を世界の基盤として使用していますが、手続き型生成を使用してこれらの太陽系の惑星をシミュレートします。同様に、スターシチズンは、その惑星にテクノロジーを使用して、手作りの宇宙の中にシームレスにロードされた惑星サイズの惑星のコレクションを作成します。 I-Novae Infinityは、プレイヤーが宇宙船を介して移動できる手続き的に生成された大量の惑星を備えています。 Outerra Anteworldは、手続き型生成と実世界のデータを使用して、実際の規模で惑星地球の仮想レプリカを作成する開発中のビデオゲームです。ノーマンズスカイは、プレイヤーが地形、天気、動植物、動物相、宇宙に生息する多くの外来種など、遭遇したときにその場で手続き的に生成される18個の惑星を含む宇宙を特徴としています。このユニバースは、単一のランダムシード番号を決定論的エンジンに使用することで定義され、すべてのプレイヤーの同じ場所で同じコンテンツが生成されることを保証します。これにより、プレイヤーは惑星の場所の知識のみを使用して発見を共有できます仮想銀河。

映画

ビデオゲームのように、手続き型生成は、視覚的に興味深く正確な空間を迅速に作成するために映画でよく使用されます。これは、さまざまなアプリケーションで利用できます。

1つのアプリケーションは不完全なファクトリーとして知られており、アーティストは多数の類似オブジェクトを迅速に生成できます。これは、実際には、2つのオブジェクトがまったく同じということはないという事実を説明しています。たとえば、アーティストは食料品店の棚の製品をモデル化し、その後、棚を埋めるために多数の同様のオブジェクトを生成する不完全な工場を作成できます。

MASSIVEは、映画やテレビ向けの群衆関連の視覚効果を生成するために使用されるハイエンドコンピューターアニメーションおよび人工知能ソフトウェアパッケージです。ピーター・ジャクソンの「ロード・オブ・ザ・リング」映画のために、数十万人の兵士の戦闘軍隊を自動的に作成するために開発されました。

コヒーレントノイズは、フィルムの手順ワークフローにとって非常に重要です。シンプレックスノイズは多くの場合、アーティファクトが少なくて高速ですが、Perlinノイズと呼ばれる古い関数も使用できます。この場合、コヒーレントノイズとは、 n次元で滑らかな擬似ランダム性を生成する関数を指します。