タグ付けされた質問 「procedural-generation」

手続き型の生成とは、手動ではなくアルゴリズムと計算に基づいてコンテンツを構築することです。

4
無限の地形のための手続き型の川または道路の生成
私は中世のように考えているので、道ではなく道を言うべきです。また、リアリズムを探していません。私が探している答えは、リアリズムではなく、私が説明する型に収まることです。 曲線的な方法で手続き型の道路/川を生成する方法を探していますが、無限の地形タイプのシステムでそれを行いたいと思っています。perlinノイズがブロブを生成する方法と同じように、ランダムな長さのラインセグメント(場合によっては無限の長さ)を生成したいと考えています。 私はここにある提案された答えのような戦略を知っていますが、それは指定された開始点と終了点に依存するため、指定された開始点と終了点がありません。任意の座標を使用して単純に関数を呼び出し、特定の座標が川/道路の一部であるかどうかを返すことができるようにしたいと思います。 地形を事前に生成する必要はありません。これには、ハイトマップが含まれます(降雨シミュレーションなどに使用されます)。また、開始点/終了点を必要としません。 私が説明しようとしていることを達成するために、誰かが知っているかもしれないノイズアルゴリズムにそのようなアルゴリズムまたは微調整がありますか? 名前を適切に使用している場合、これまでに最も近いのはマルチリッジフラクタルです。値ノイズの絶対値を取得し(-1から+1にスケーリングされると仮定)、しきい値を設定しています。これに関する私の主な問題は、線が頻繁に重なりすぎて、ほとんどが円形であり、時にはきれいであるが望ましくない大きな湖を形成するように収束し、線の太さが非常に異なることです。 ここに私がこれまで2Dで持っていたものの写真がありますが、より詳細を示すために非常に高い頻度で:

4
単純なノイズ生成
私は次のようなノイズを生成しようとしています: (Perlin Noiseを理解するための画像提供) 基本的に、小さな「リップル」がたくさんあるノイズを探しています。以下は望ましくありません: これを行う簡単な方法はありますか?私は今、perlinとsimplexを1週間見てきましたが、JavaScriptで動作させることができないようです。スロー。 私が投稿した3つの画像は、おそらく同じアルゴリズムで異なるスケールで実現できることを理解していますが、そのアルゴリズムは必要ありません。最初の画像のようなものを理想的に実現するには、非常に単純なアルゴリズムが必要です。何らかのぼかしが仕事をするかもしれませんが、結果を得ることができません。 私はこれをJavaScriptで開発していますが、どんな種類のコードでも、簡単で詳細な説明でも機能します。


8
球を作成するためのアルゴリズム?
誰もが、la緯度線、lo経度線、および半径の量で球を手続き的に作成するアルゴリズムを持っていますrか?Unityと連携するために必要なので、頂点の位置を定義してから、インデックスを使用して三角形を定義する必要があります(詳細)。 編集 私はコードを統一して機能させることができました。しかし、私は何か間違ったことをしたかもしれないと思います。を上げるとdetailLevel、頂点とポリゴンを移動せずに追加するだけです。何か忘れましたか? 編集2 法線に沿ってメッシュをスケーリングしてみました。これは私が得たものです。私は何かが欠けていると思います。特定の法線のみをスケーリングすることになっていますか?

2
接続されたパスを持つ手続き型2Dマップのアルゴリズム
解決すべき問題:すべての部屋が接続されているタイルベースのゲームのランダムな2Dダンジョンマップを生成します。 現在のソリューションよりも優れたソリューションを探しています。 私の現在の解決策は、2つのアルゴリズムを実行することです。最初の部屋ではダンジョンを生成します。2番目は、すべての部屋が接続されていることを確認します。私は他の解決策が存在するかもしれないと思っています。より高速および/または簡単など。速度は実際には問題ではありませんが、実際のコストをかけずに速度を上げることができれば、それは良いことです。さらに重要なことは、私と他の読者は、問題にアプローチして解決するさまざまな方法を学ぶことができるということです。 以下は私の現在の実装です。現在、部屋には出口がないか、2、3、または4方向に出口があります。 ダンジョンルームの生成 セットアップ:現在の部屋を左上の部屋に設定します。 部屋の有効な部屋タイプを取得します(有効な部屋タイプとは、ダンジョンの出口がなく、上の部屋と左の部屋の出口に一致する出口があるタイプです。以下の手順2のために残されました)。 部屋を置いて、x座標を1ステップ進めます。X座標がダンジョンの幅を超える場合、X座標を0に設定し、Y座標を1ステップ進めます。y座標がダンジョンの高さを超えている場合、完了です。 #1から繰り返します。 次に、すべての部屋が接続されているかどうかを確認します。すべてが接続されていない場合は、2番目のアルゴリズムを実行します。接続されるまで。 すべての部屋が接続されているかどうかを確認する セットアップ:パスを表す整数の2Dマップを作成し、エントリを「未処理」(まだ通過していない)-1に初期化します。現在のパスを追跡する開始パスインデックス整数を1に設定します。チェックする部屋のスタックに追加することにより、現在の部屋を左上の部屋に設定します。 スタックにチェックするルームが含まれる場合、ポップしてルームのパスインデックスを現在のパスインデックスに設定します。スタックに部屋が含まれていない場合は、パスインデックスを増やし、まだ処理されていない部屋を取得するまで、列ごと、行ごとに進めて部屋を取得してください。部屋が見つからない場合は、完了です。 部屋の左側に出口があるかどうかを確認します。まだそこにない場合、スタックに左の部屋を追加している場合。 下方向、右方向、および上方向について手順2を繰り返します(部屋を上方向から時計回りに移動するスタックを使用しているため)。 手順1から繰り返します。 パスインデックスのカウントが1より大きい場合、接続されていない部屋があります。 接続されていない部屋がある場合は、パスインデックスで部屋をグループ化し、最大のパスのインデックスを取得し、他のすべての部屋をそれらの部屋に接続します。これは進行中の作業ですが、私の(現在の、「強烈な」)計画は、部屋グループ(最初の部屋を除く)の各部屋を通過して、biggeset部屋グループへの水平または垂直パスがあるかどうかを確認することです。その場合、間に部屋を挿入/更新することにより、そこに水平/垂直パスを作成します。すすぎ、繰り返します。glyい、はい、しかしそれは視覚的なパターンの点で目立たないものなので、その意味で機能します。

3
チームはソースファイルの上書きをどのように防止しますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 たとえば、ゲームエンジンなどが複数の人によって同時に処理されているときに、上書きをどのように防ぐことができるのか、ということが起こりました。 開発者1が作業してAudio.cppおり、開発者2も作業をしているとしましょう。Audio.cppこれは、一般的に大規模なチームで上書きに対処するためにどのように管理されていますか?(つまり、開発者2がファイルを開くのを停止して、開発者1が終了するまで)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

3
手続き的に生成された世界でフィーチャ領域を識別するにはどうすればよいですか?
私は島を作っています。私は古典的なハイトマップソリューションを使用します。丘の構築機能を使用して、マップの角を避けて高度を作成します。次に、パーリンノイズは、バイオームを処理するための気候変数を提供します。今、私は何らかの形で接続されている2つの課題に直面しています: ドワーフ要塞では、世界の生成のきちんとした側面の1つは、ゲームがどのように領域を「認識」し、長方形にするのではなく名前を付けるように見えるかです。森林、川、丘を「認識」できるようにしたい...マップをスキャンしてその領域を解釈するためにどのようなアルゴリズムを使用できるか考えていますか?そして、それをどのように保存しますか?「タイルオブジェクト」のベクトルのベクトルから作成された基本的なC ++グラフを使用しています。 この島は、純粋に自然な地域だけでなく、政治的な地域に分けられるべきです。山や川を使って「自然な境界線」を作ることはできますが、手続き的に生成された地図は保証されません。王国を形成する素敵な「飛び地」ができます。ミクロの王国に囲まれた巨大な「リボンの形をした」政治的領域を持っていることに気付いた。別の可能性は、都市または城に適したエリアを探すことです。次に、その周辺の政治領域を「成長」させます。しかし、再び、私は自分自身を考案しようとする前に、いくつかの有名なアルゴリズムを持ちたいです。 この質問は少し曖昧すぎると解釈される可能性があるため、言い換えると、手順で生成された世界をゲームプレイに適した領域に(変更せずに)分割する方法はありますか?よろしくお願いします。

3
プログラムで球をどのように生成しますか?
誰かが球の頂点、インデックス、テクスチャ座標を作成する方法を説明してもらえますか?これを行う方法についてのドキュメントが驚くほど不足しており、私は学習に興味を持っています。 gamedev.netなどで明らかな、グーグル、ルックなどを試してみました。しかし、球体ポイントの生成、それらのインデックス付け、テクスチャリングはカバーしていません。

4
タイルマップの生成
私はタイルベースのゲームをプログラミングしており、いくつかの基本的なタイル(草、汚れなど)を持っていますが、タイルが本当にランダムに選択された場合、草/汚れでなければなりません、私はこれを取得します: 私はこれがなぜ起こっているのか理解していますが、私が望むのは、草や土のランダムな連続領域を作成することです。次のような、より意味のあるもの:

6
2Dゲームの滑らかな地形を生成する最も簡単な方法は何ですか?
「Moon Buggy」や「Route 960」などの2Dゲームで滑らかな地形を生成する最も簡単な方法は何ですか? stackoverflow.comで、ランダムな高さの配列を生成し、後でそれらをぼかすことについての回答を得ました。はい、大丈夫です。しかし、いくつかのポイントを与えて、滑らかな曲線を取得する方が良いでしょう。

6
手続き的に生成されたテクスチャはどうなりましたか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 少し前に、手続き的に生成されたテクスチャが大きな問題になり、多くの人々/企業がいくつかの深刻な利点(小規模な展開、潜在的に高速な読み込み、高品質、スケーラブルなテクスチャ、潜在的に安価な製造など)に本当に興味を持っていたことを思い出します)。 私が言うことができることから、バズは死んでいて、私のレーダーのゲームはそれらを使用していません。何が起こった? 手続き型テクスチャがNaturalMotionのものと同じように動くことを期待していました(ゆっくりですが着実に採用されています)。

3
タイルエンジンでランダムな「世界」を作成するにはどうすればよいですか?
クラシックタイルエンジンで動作するゲームを設計していますが、その世界はランダムに生成されます。これを行う既存のゲームやアルゴリズムはありますか?私が見つけた手続き生成アルゴリズムは、タイルシステムを使用することはありません...タイルシステムを使用して「世界」全体を生成する最良の方法は何でしょうか。私はブロックの迷路についてではなく、全体的な「世界地図」について話している

4
ランダムに生成されたストーリー
私は現時点でゲームを開発していますが、プレイヤーの進行に合わせてゲームのストーリーラインがランダムに生成され、そのアクションがストーリーに影響を与えるというアイデアがありました。 これはゲームプレイの観点からは悪いアイデアでしょうか、それとも複数のエンディングがあるストーリーラインが最良のアイデアでしょうか?


4
アイランドマップマスクを作成する簡単な方法
私は、C#を使用して島のマップのマスクを生成するための素敵で簡単な方法を探しています。 基本的には、地形が水に囲まれていないパーリンノイズで生成されたランダムハイトマップを使用しています。 次のステップは、マスクを生成して、角と境界がただの水であることを確認することです。 その後、perlinノイズ画像からマスクを差し引くだけで島を取得できます。 コントラストをいじって 勾配曲線を使用すると、希望どおりに島の高さマップを取得できます。 (これらはもちろん単なる例です) ご覧のとおり、島の「エッジ」は切り取られていますが、カラー値が白すぎない場合は大きな問題ではありません。グレースケールを4つのレイヤー(水、砂、草、岩)。 私の質問は、2番目の画像のように見栄えの良いマスクをどのように生成できますか? 更新 私はこの手法を見つけましたが、それは私にとって良い出発点のようですが、目的の出力を得るためにどの程度正確に実装できるかわかりません。 http://mrl.nyu.edu/~perlin/experiments/puff/ 更新2 これが私の最終的な解決策です。 makeMask()このように正規化ループ内に関数を実装しました。 //normalisation for( int i = 0; i < width; i++ ) { for( int j = 0; j < height; j++ ) { perlinNoise[ i ][ j ] /= totalAmplitude; perlinNoise[ i ][ j ] …

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