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

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

1
手続き的に生成された地形マップ。地形タイプ間のブレンド遷移
質問は申し訳ありませんが、最大の言葉遣いではありません。 私はいくつかのテクスチャーや地形生成について学び、プロトタイピングしていて、おそらくあなたが私を助けることができる何かに遭遇しました。 仕組み:地形の高さマップを手続き的に生成しています。あらゆる方向に無限にスクロールできます。(画像1)高さマップの値に応じて色をクランプして混合します(画像2) これは非常にうまく機能しており、現在非常に高速に実行されていますが、現時点では結局非常に単純化されています。 私が見つける必要があるのは、地形の遷移間をぼかしたり、歪ませたりするための良い方法です。現在お分かりのように、それは非常に隆起したラインを持ち、それほど自然に見えません。これがすべて手続き的に生成されていることを考えると、その場で実行できるブレンディング用のアルゴを見つける必要があることは明らかです。ピクセルジッタを少し試しましたが、見た目が悪いだけでした。また、一貫性を維持するために、シードをシードできる必要があります(ただし、ランダムで実行される可能性が高いため、問題になることはないと思います)。 どんな洞察もいただければ幸いです。私が急いでこれを投稿するために必要な情報をなんとかして除外した場合は、私に知らせてください。

4
3Dの手続き型地形:何が行われたか?共通のアルゴリズムや理論はありますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 プログラミング以外にも、環境のモデリングにはかなりの時間がかかります。 WoWダンジョンレベルや、その他の美しい都市のような未来の環境、ジャングル、ファンタジーなど、関係する作業時間についてはわかりませんが、この種の作業はアーティストがゼロから作成しています。 TorchLightレベルランダマイザーに含まれる手法は何ですか?他のタイトルはこれと類似していますか?そのような技術に姓はありますか?

3
グラフのエッジの数を減らし、接続を維持する
私はランダムに生成されたダンジョンでゲームをデザインしています。これを、ノードが部屋であり、エッジがドアまたは廊下である、接続された無向グラフとして表示したいと思います。次に、ダンジョンの入口として「サイド」ノードを選択し、この入口と他のすべてのノードとの間の距離を計算し、最も遠いノードの1つをダンジョンの「ゴール」(宝物、ボス、プリンセスなど)。 最終的なダンジョンの地形を生成する2つの方法を見ました。 最初にランダムグラフを生成し、エッジの接続を尊重して、ランダムな場所にある部屋で2Dワールドを塗りつぶします。部屋の生成が不可能な場所に部屋を適合させようと「ロック」される可能性があるため、これは時々困難になると考えました。 最初の部屋を生成し、それらが収まる場所にランダムに配置してから、結果をノードとエッジにマッピングします。私はこれを試すことにしました。 私の考えは次のとおりです。 最初に、ダンジョン全体を含む大きな部屋を生成します。 大きな部屋の内側のランダムな場所に壁を置き、大きな部屋を異なる面積の2つの小さな部屋に分割します。 次に、部屋が小さすぎるか、部屋の総数が最大(またはその他の条件)に達するまで、各部屋を2つに分割し続けます。新しい部屋はそれぞれノードです。 終了したら、各部屋をチェックして、隣接する他のすべての部屋を見つけ、2つのノードをエッジで接続されているものとしてマークします。 そうすることで、すべての部屋が2Dの世界で可能な場所に配置され、接続されたグラフによって正しくマッピングされるようにします。 私の問題は、部屋をつなぐドアと廊下が多すぎることです。 したがって、接続された無向グラフのエッジの数を減らし、最終的には接続されたまま(すべてのノードが到達可能なまま)のアルゴリズムが必要です。

8
「レベル文字列」の最善の解決策は?
レベルの開始時にランダムなレベルマップを生成するゲームがあります。レベルを保存およびロードする方法を実装したいと思います。 XMLがすべての変数を保存するのに適したオプションであるとしたら、XMLを解析してまったく同じレベルを生成できるものを簡単に作成できると思いました。 しかし、XMLはおそらく私のニーズに対しては行き過ぎです。昔、ゲームを保存する機能がなかった古いSegaコンソール(ワームズゲームでもそうだったと思います)を覚えていて、書き留めることができるたくさんのキャラクターを提供していたことを覚えています。後でそのストリングをパンチインすると、正確なレベルがロードされます。 「レベル文字列」は良いオプションでしょうか?それはある種の「base60」変換でしょうか?これをどのように実装しますか?

1
ゲームを完了できるようにする方法
探しているものの正しい用語がどのように記述されているかわかりません。これが重複する質問である場合はお詫びします。しかし、ゲームが無限スクローラーとの関係で「完全」であることを確認するための用語/アルゴリズムはありますか?完了可能とは、画面に追いつけようとするときにユーザーがブロックをジャンプし続けなければならないゲームの場合、ユーザーが到達できる新しいブロックが常に到達可能であることをどのように確認できるかということです。理論はジャンプする? 理論的には、ユーザーがジャンプできる高さを確認し、その範囲内にブロックがあることを確認しますが、それ以外に何かありますか?つまり、新しいブロックを配置するときに、重複しないことを確認するための高額なチェックを回避しますか? 具体的にはhtml5 / jsを調べていますが、この用語または調査できる特定のタイプのアルゴがあるかどうか疑問に思いましたか? ありがとう

1
テーパーする生成されたメッシュのジグザグのUVマッピングアーティファクトを修正するにはどうすればよいですか?
以下のように、カーブに基づいて手続き型メッシュを作成しています。メッシュ全体のサイズがカーブ全体で小さくなっています。 そして問題は、サイズが変わるとUVがジグザグになることです(カーブ全体でメッシュのサイズが同じである場合、UVは完全に機能します)。 Vertices.Add(R); Vertices.Add(L); UVs.Add(new Vector2(0f, (float)id / count)); UVs.Add(new Vector2(1f, (float)id / count)); start = Vertices.Count - 4; Triangles.Add(start + 0); Triangles.Add(start + 2); Triangles.Add(start + 1); Triangles.Add(start + 1); Triangles.Add(start + 2); Triangles.Add(start + 3); mesh.vertices = Vertices.ToArray(); //mesh.normals = normales; mesh.uv = UVs.ToArray(); mesh.triangles = Triangles.ToArray(); どうすれば修正できますか?

1
マップ上に手続き的に生成された2Dカーブ道路
自分が取り組んでいるゲームのロードマップを自動的に生成するアルゴリズムを試しています。 「Kingdom Rush」ゲームは見栄えのするマップがいくつかあるので、参照ポイントとして使用しています。 私は手続き型のコンテンツ生成に不慣れで、ここに誰かがポインタを持っているのではないかと思っていました。いくつかの入口/ソースノード、いくつかの内部ノード(分岐とマージ)、いくつかの出口シンクノードなどのランダムな道路トポロジを生成し、グラフレイアウトアルゴリズムを使用して、この情報に基づいて実際の道路地図を作成する実験をしました。 以下は、道路レイアウトにFruchterman-Reingoldアルゴリズムを使用した1つの例です。 青いグラフは、ランダムに生成されたベジェコントロールポイントを使用して、エッジの直線性を低下させています。 同じアルゴリズムを使用して生成された別の例ですが、乱数は異なります。 問題は、ほとんどの結果が非常によく似たものになってしまうことであり、手順で生成されたマップの制御性と多様性を改善するためにどのルールを追加できるかわかりません。 助言をいただければ幸いです。

6
手続き型生成を使用して探査メカニズムをサポートするにはどうすればよいですか?
手続き型の生成はオープンアドベンチャーゲームに最適なツールと思われます。これは、無限の世界を提供するためです。しかし、私は最も成功した手続き型生成ゲームがまったく異なるジャンルのものであることに気づきました。特に探索に手続き型生成を使用していると考えることができる唯一のゲームはNo Man's Skyですが、おそらく、手続き型のコンテンツが膨大であるにもかかわらず、探索ゲームのメカニズムに必ずしもそれほど多くの価値を追加しなかったため、期待に応えられませんでした人々はそうするだろうと思った。 手続き型生成ゲームを作成する試みと、他のゲームで目にするものから、アドベンチャーゲームでの手続き型生成を妨げる3つの問題があり、解決策はありません。 手続き型の地形は簡単かもしれませんが、手続き型のストーリーテリングはそうではありません。両方試しました。いくつかの単純なルールは、山や都市に似たものを作ることができますが、何らかのクエストがない限り、その周りでゲームを作ることは困難です。ただし、操作するマップがない限り、クエストを設計することは困難です。存在しないかもしれない場所を見つけるために、どのように探求できますか? 手続き型地形は、密度のないスケールを提供します。確かに、手続き型の山には、実際の山の複雑さを与えるためにすべてのテクスチャと尾根があるかもしれませんが、その山で行うことがたくさんない限り、どこが楽しいのでしょうか。手続き型生成の強みの多くは、何かを巨大にするのが簡単なことです。その世界で体験するのに十分な新しいものを置かずに世界をあまりにも大規模にした場合、それはただ空っぽに感じるでしょう。 経験は一貫していません。アドベンチャーゲームの楽しみの多くは、「その一部」に達しています。ウォークスルー、チュートリアル、Wikiは、通常、プレーヤーがすべて同じゲームを同じ世界でプレイしているという事実に依存しています。エクスペリエンスが非常にパーソナライズされている場合、ゲームの興奮を他の人と共有することはより困難です。同じ場所、キャラクター、またはクリーチャーを使用してゲームをプレイした世界中の他のプレーヤーがいない場合、ゲームについてミームを共有することを想像してください。 これらの問題、そしておそらくあなたが頭に浮かぶことができる他の問題を維持しながら、探査を台無しにせずに手続き型生成をゲームに組み込む方法はまだありますか?たぶん、アドベンチャーゲームが恩恵を受けることができるが、ストーリーの邪魔にならないいくつかの限定された手順のテクニック?

5
Vector3で演算子 '> ='を使用できないのはなぜですか?
私は私がように参照する2つの位置の間を移動するための四角形を取得しようとしている_positionAとします_positionB。どちらもタイプVector3です。長方形はうまく動きます。ただし、到達_positionBしても、本来のように反対方向に移動することはありません。 コードをもう一度見てみました。オブジェクトが移動ifすると、コード内のステートメントは、rectsの位置がに等しいフレームを逃したという結論に達しました_positionB。rectsの位置がより大きいか等しい 場合は、コードを変更して方向を逆にすることにしました_positionB。私のコードは長すぎないので、以下に表示します。 using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

3
手続き型ダンジョン生成:これらの部屋すべてを最小限の廊下を使用して接続することを確認する簡単なアルゴリズムはありますか?
廊下をあまり持たずにすべての部屋をつなぐハイブのような構造にすることは可能ですか?(1つの部屋から来る3-4以上の廊下が多すぎる) 以下は、私の部屋がどのように見えるかの出力です。基本的にはランダムに配置されています。 廊下ごとに実現したいこと。

3
リアルな人間の顔のランダム生成
現実的に見える人間の顔を大量に生成する実用的な方法は何でしょうか?3Dモデルをランダム化してレンダリングするには、特にアドホックベースでそれらを必要とするため、大量の計算能力が必要になります。2Dで描画された個々のパーツをレイヤー化するには、芸術的な才能が必要です。また、世代プロセスのできるだけ多くの側面をパラメーター化したいと思います。これに対処する方法について何か提案はありますか?

3
流れる地形を「ランダムに」生成する正しい方法
シンプルなトップダウンRTSゲームを作成しています。必要に応じて、その場で「ランダムに」マップを生成することを計画しています。私はすべて「パス」で機能することを計画しています: 地形をすべての草で埋めます 戻って、砂利のランダムな噴出をいくつか追加します 砂利を丸める 2番目のレイヤーに山の風景を描く 山を丸める などなど さて、以下のこの写真を見てください: 私は自分のマップエディターを使用してこれを手作業で作成しましたが、うまくいけばパス/ステップ3を実行した後の結果になることを計画しています。 砂利を少なくとも不規則な形にして散発的に自然に見えるように、砂利をいつ、どのように配置するかを決めるにはどうすればよいですか? できればありがとう!どんな助けもありがたいです! 補足として: 各パスは、基本的には次のように、すべてのタイルを繰り返し処理します(マップは40x40のタイルに分割されています)。 for (int x = 0; x <= GRIDMAX - 1; x++) { for (int y = 0; y <= GRIDMAX - 1; y++) { //Terrain(x, y, 0) = SomethingHere; } }

3
ランダムなプールまたは湖を生成する
多角形を描画できる関数を実装しましたが、湖の丸みを帯びたエッジを模倣する滑らかな形状を生成できませんでした。2つの円を生成してエッジを結合してみましたが、十分なばらつきや滑らかさがありません。このような形を生み出す可能性のある指針やアイデアは誰にもありますか?

2
高所の暑い地域ではどのような環境が予想されますか?
私は、世界地図がランダムに生成される「探索」ゲームを作成しています。バイオームは、「温度マップ」、「湿度マップ」、および標高マップなどのデータを使用して生成されます。たとえば、コールド+湿度=スノー、ホット+湿度=ジャングルなど私が残している問題は、暑い気候の高所地帯に対処する。現時点では、「裸の」バイオーム(次の写真の灰色の領域)に設定されています。これは、「無人の乾燥した土地」を意味すると思われます。一方、気温が低い高所ゾーンは雪(白)に設定されていますが、これは問題ありません。それで、私は寒い気候の高いゾーンにどのように対処すべきですか?私はいくつかのアイデアを持っていますが、どれもうまくいかないと思います:1)雪にも設定しますが、変に感じます2)「裸」に設定しますが、私はしません

1
グリッドにタウンレイアウトを生成する
次の要素を使用して、正方形のグリッドで町のレイアウトを生成します(等角投影でレンダリングされますが、問題ありません)。 2x2ハウス 道路、1ユニット幅 運河、1ユニット幅 サンプルレイアウト: 私はいつも特定の数の家を持ち、それらすべてを接続するために必要なだけの道路と運河を持っています。 家には、正面玄関の前に2つの道路が必要です(常に右側を向いています)。 中間の草原(空)があるとよいでしょう。 このための既製のアルゴリズムはありますか?そうでない場合、これを実装するためにどの方向を検討する必要がありますか?

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