どのようにして手続き型生成を開始しますか?


147

最近、手続き型の生成が(Spore、MMOなどによって)脚光を浴びており、興味深い/強力なプログラミング手法のようです。

私の質問は次のとおりです:

  • 手続き型生成手法を利用する中規模プロジェクトを知っていますか?
  • 手続き型生成に最適な言語/言語クラスは何ですか?
  • 「深刻な」コードの手続き型生成を使用できますか?(つまり、ゲームではない)

1
X-Teamのこの記事が役に立ったと思いませんか?x-team.com/blog/...
アダム・ジェラード

回答:


117

おそらく、少し理論と中点変位アルゴリズムなどの単純な例から始める必要があります。グラフィックの生成に興味がある場合は、Perlin Noiseについても少し学ぶ必要があります。これを使用して、手続き型生成の最終年度プロジェクトを開始しました。

フラクタルは、手続き型の生成と密接に関連しています。

TerragenSpeedTreeは、手続き型生成の驚くべき可能性をいくつか示します。

手続き型の生成は、任意の言語で使用できる手法です(JavaなどのOO言語や、Prologなどの論理言語で使用できるため、Cなどの手続き型言語に限定されません)。任意の言語での再帰を十分に理解することで、手続き型生成の理解が深まります。

「深刻な」コードまたはゲーム以外のコードについては、手続き型の生成手法が次の目的で使用されています。

  • 交通管理を計画するために都市の成長をシミュレーションする
  • 血管の成長をシミュレートする
  • SpeedTreeは、映画や建築プレゼンテーションで使用されています

このパーリンノイズは、Photoshopの「雲」フィルターに非常によく似ています。
doubleOrt 2018年

最初のリンクが壊れている
Jean Carlo Machado

一部のエレクトロミュージックでは、プロシージャルジェネレーションを使用して作成しています
Poyda


12

手続き型コンテンツの生成はすべてGPU用に記述されているため、シェーダー言語を理解する必要があります。それはGLSLまたはHLSLを意味します。これらはそれぞれOpenGLとDirectXに関連付けられた言語です。

私の好みはDx11 / HLSLですが、速度、習得しやすさ、Frank D Lunaのため、OpenGLはより多くのプラットフォームでサポートされています。

OpenGL / DirectXゲームエンジンのセットアップにかかる(かなりの)時間を費やすことなく、シェーダーの記述にすぐに飛び込む場合は、WebGLもチェックしてください。

手続き型コンテンツはノイズから始まります。

したがって、Perlinノイズ(およびその後継のSimplexノイズ)について学ぶ必要があります。

Shadertoyは、シェーダープログラミングについて学ぶための優れたリファレンスです。シェーダーコーディングを自分で試した後は、数学的に不快なコードはないので、ここにアクセスすることをお勧めします。

Shadertoyは、手順の天才であるInigo Quilezによって作成されました。これは、Pixarで働くデモシーンの産物です。彼はライブコーディングセッションのいくつかのyoutubeビデオ良い例)を持ってます、そして私はこれらをお勧めすることもできます。


17
「手続き型コンテンツの生成はすべてGPU向けに記述されている」とはどういう意味ですか?あなたは草の葉のようなものについて話しているだけですか?たとえば、ゲームのマップや都市の生成を意味するのではありませんか?
Dronz

2
ええ、私はここでの「すべて」のコメントは過度に一般化されていると思いますが、風景の生成(私が推測する最も一般的な種類)の領域では、これは役立つ回答です。だれがビデオでコードをタイプしている誰かを見たいと思うか想像できませんが。
Nate CK

1
シェーダーなどの複雑なコードの記述方法や、複雑なパターンをデザインで利用する方法を学びたい人。そして、それは表面を傷つけているだけです。
Ultroman the Tacoman 2017

「手続き型コンテンツの生成はすべてGPU用に記述されているため、シェーダー言語を理解する必要があります。」単に真実ではなく、100%誤解を招くものです。(私は単純な手続き型の生成プロジェクトを作成しています。私は自分の人生で0行のシェーダーコードを書きました)
活動を減らす

9

ワールドジェネレーターのシミュレーションプレートの例として、テクトニクス、侵食、雨の影などが必要な場合は、https//github.com/ftomassetti/landsをご覧ください。

その上に、文明進化シミュレーターもあります。

https://github.com/ftomassetti/civs

興味深いリソースが満載のブログは次のとおりです。

dungeonleague.com/

それは今放棄されましたが、すべての投稿を読む必要があります


興味深い情報源。
SalahAdDin

8

私はこれについての専門家ではありませんが、いくつかの答えを試して貢献することができます。

  1. NetHackとそれはbrethernはオープンソースであり、手続き型のレベル(マップ)の生成に大きく依存しています。それのダウンロードへのリンク。ランドスケープ/テクスチャ/クラウドの生成にもっと興味がある場合は、これらの主題に関するかなりの数の記事があるGamasutraGameDevを検索することをお勧めします。

  2. 私の知る限り、言語間に大きな違いはないと思います。表示されるコードのほとんどは、ゲーム開発者の公式言語であるためC / CPPになりますが、好きなものを使用できます...

  3. まあそれはあなたがそのような技術から利益を得ることができるプロジェクトがあるかどうかに依存します。軍のシミュレーターで手続き型生成が使用されているのを見ました(非常にプレイ可能ではありませんが、ゲームと見なすことができます:))。

そして小さなメモ-手続き的な生成が少量のルールまたはパターンと大量のランダム性から大量のデータを生成するものである場合の私の定義は、結果が異なる場合があります:)


8

トピックに関する優れた本があります:

http://www.amazon.com/Texturing-Modeling-Third-Procedural-Approach/dp/1558608486

それは非リアルタイムの視覚効果とアニメーション生成に偏っていますが、理論とアイデアはこれらの分野以外でも使用できると思います。

SideFXのHoudiniと呼ばれる完全な手続き型ワークフローを実装するプロフェッショナルソフトウェアパッケージがあることにも言及する価値があります。これを使用して、問題の手続き型ソリューションを発明し、プロトタイプ化して、後でコードに変換できます。

かなり高価なパッケージですが、無料の評価ライセンスがあり、非常に優れた教育および/またはエンジニアリングツールとして使用できます。


7

プロシージャル生成は、デモシーンで頻繁に使用され、小さな実行可能ファイルで複雑なグラフィックを作成します。ウィル・ライトは、胞子を作っている間、彼はデモシーンに触発されたとさえ言った。それはあなたが始めるのに最適な場所かもしれません。

http://en.wikipedia.org/wiki/Demoscene


3

最も重要なことは、道路、都市、ブロック、建物の構造を分析することです。すべての建物などに共通するものを見つけます。写真、地図、計画、現実を見てください。そうすれば、都市の建設を単なるコンピュータ技術の問題だと考える人々よりも一歩先を行くでしょう。

次に、そのジオメトリを小さな個別の手順で作成する方法に関するソリューションを開発する必要があります。信じられないほどの都市を構成するルールを定義する必要があります。3Dモデリングに慣れている場合は、コンピュータがあらゆる状況で指示に従うことができるように、学んだことの多くを再考する必要があります。

トラックを失わないようにするには、プロセス全体のほんの一部にしか責任を負わない多数のオペレーターをセットアップする必要があります。これにより、システムのデバッグ、拡張、改善がはるかに簡単になります。次のステップでは、それらの演算子をリンクし、パラメーターを変更して結果を確認する必要があります。

主にランダムな形のボックスで構成され、ウィンドウテクスチャがいくつかある「都市ジェネレータ」が多すぎます。


3

(10年以上後...)

手続き型の生成とは、手作りではなく、コードを使用してデータを生成することだけです。たとえば、さまざまなツリーを持つフォレストを生成する場合は、各ツリーを手動で設計することはないため、バリエーションを生成するためのコーディングの方が効率的です。それは木のグラフィック、サイズ、構造、配置の生成である可能性があります...

一般に、いくつかのルールとのある種の相互作用があります。それに加えて、独自のランダム性とロジックを追加し、これらのテクニックをすべて組み合わせることができます。

ここにいくつかの注目すべきテクニックがあります:

手続き型世代で有名ないくつかのゲーム:

手続き型ランドマス生成に関するビデオチュートリアル。

ゲームの手続き型コンテンツ生成に関する会議には、トピックに関する多くのビデオがあります:すべて手続き型

楽しんで。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.