Questions tagged «procedural-generation»

程序生成是基于算法和计算而不是手动构建内容的过程。

3
随机图生成-散布/聚类随机节点的策略
我正在太空中做一个简单的4X策略游戏,其中每个节点都是一个兴趣点(行星,小行星等)。 要随机生成地图,请按照以下步骤操作 确定地图每个节点的类型(例如,可能有5个类似地球的行星,10个贫瘠的行星等) 将每种类型的节点放置在地图上。 对于第2步,我希望每种节点类型的分布均匀。因此,例如,我将从放置所有类似地球的行星开始。如果我简单地做一个rand(map.width,map.height)来确定位置,我可能最终会把所有类地球的行星聚在一起,这将使从该区域开始的玩家受益。 是否有任何方法(例如使用不同的图形函数或噪声函数)可以生成彼此分散的(x,y)坐标序列。同样,有什么方法可以生成彼此接近的坐标?

1
程序生成的地形图。混合地形类型之间的过渡
这个问题不是最抱歉的措辞。 我一直在学习一些有关纹理和地形生成的东西并对其进行原型制作,并且遇到了可能可以帮助我的事情。 工作原理:我正在按程序生成地形高度图。它可以在任何方向无休止地滚动。(图1)我根据高度图的值钳制并混合颜色(图2) 这工作得很好,并且当前运行非常快,毕竟目前还很简单。 我需要找到一种在地形过渡之间模糊/扭曲的好方法。如您所见,目前它的线条非常凸凹,看起来并不自然。鉴于整个过程都是程序生成的,所以我显然需要找到一种可以即时运行的混合算法。我尝试了一些像素抖动,但看起来很糟糕。同样,我曾经使用过的东西也必须能够播种,以便保持一致性(尽管我怀疑这将是一个问题,因为它们很可能全部是随机运行的)。 任何见解将不胜感激。如果我在匆忙中遗漏了任何需要的信息以发布此信息,请告诉我。

4
3D中的程序性地形:做了什么?有共同的算法和/或理论吗?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 除了编程外,环境建模还需要大量时间。 我不知道所涉及的工作时间,例如在魔兽世界地牢级别,或其他类似城市的美好环境,未来环境,丛林,幻想等,但是这类工作是由艺术家从头开始的。 TorchLight级别随机化器涉及哪些技术,其他标题与此相似吗?有这种技术的姓氏吗?

3
减少图的边数,使其保持连接状态
我正在设计一个带有随机生成的地牢的游戏。我想将其视为一个连接的,无向的图,其中节点是房间,边缘是门或走廊。然后,我选择一个“侧面”节点作为地牢入口,计算该入口与所有其他节点之间的距离,并确定最远的节点之一是地牢的“目标”(宝藏,上司,公主等)。 我看到了两种生成最终地牢地形的方法: 首先生成一个随机图,然后在考虑边缘连接的情况下尝试用随机位置的房间填充2d世界。我认为这有时会很困难,因为可能会将房间生成器“锁定”以尝试将其放置在不可能的地方。 生成第一个房间,将它们随机放置在合适的位置,然后将结果映射到节点和边缘。我决定尝试一下。 我的想法包括: 首先生成一个包含整个地下城的大房间。 在大房间内的任意位置放置一堵墙,将大房间分成2个不同面积的小房间。 然后,我继续将每个房间划分为2个,直到它们变得太小或房间总数达到最大值(或其他任何条件)为止。每个新房间都是一个节点。 完成后,我检查每个房间并找到所有其他相邻的房间,将2个节点标记为通过边连接。 这样,我确保所有房间在2D世界中都有可能的位置,并通过连接的图形正确映射。 我的问题是连接房间的门和走廊太多。 因此,我想使用一种算法来减少连接的无向图的边数,但最后保持连接状态(所有节点保持可达)。

8
“级别字符串”的最佳解决方案?
我有一个会在关卡开始时生成随机关卡地图的游戏。我想实现某种保存和加载级别的方法。 我当时在想XML可能是保存所有变量的好选择,那么对我来说,构建可以解析XML并生成完全相同级别的内容很容易。 但是XML可能对我的需求而言过于严格。我记得当初使用旧的Sega游戏机无法保存您的游戏(我认为Worms游戏也可以保存游戏),它们会给您很多角色,您可以写下来。如果稍后再打入该字符串,它将加载准确的电平。 “级别字符串”会是一个不错的选择吗?会是某种“ base60”转换吗?我将如何实施呢?

1
如何在生成的锥化网格上修复Z字形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算法进行道路布局的示例: 蓝色图形使用一些随机生成的Bézier控制点来使边缘看起来不太平直。 这是使用相同算法但使用不同随机数生成的另一个示例: 麻烦的是,大多数结果最终看起来都非常相似,而且我不确定可以添加哪些规则来改善过程生成地图的可控制性和多样性。 任何建议表示赞赏。

6
如何使用程序生成来支持探索机制?
程序生成似乎将是开放式冒险游戏的绝佳工具,因为它将提供几乎无限的世界。但是,我注意到大多数成功的程序生成游戏的类型完全不同。我能想到的唯一使用程序生成进行探索的游戏是《无人深空》,但未能达到预期,部分原因是程序内容虽然庞大,但未必会像探索游戏机制那样为游戏增添价值人们以为会。 从尝试制作程序生成游戏的尝试以及我在其他游戏中所看到的,我看到了三个阻碍冒险游戏中程序生成的问题,而且我看不到任何解决方案: 程序性地形可能很简单,但程序性讲故事却并非如此。我都尝试过。一些简单的规则可以使事物看起来像高山或城市,但是除非您有某种探索,否则很难围绕它进行游戏。但是,除非有一张地图可以使用,否则很难设计任务。您如何寻求一个可能不存在的地方? 程序性地形提供了没有密度的缩放比例。当然,程序性的山峰可能具有所有的纹理和山脊,使其具有真正的山峰的复杂性,但是,除非在该山峰上有很多事情要做,它的乐趣在哪里?程序生成的大部分优势在于,很容易将某件事情变得庞大。如果您将一个世界变得过于庞大而又没有投入足够的新东西去体验这个世界,那么它将感到无聊。 经验不一致。冒险游戏的许多乐趣都达到了“那一部分”。演练,教程和Wiki通常依赖于玩家都在同一世界上玩同一游戏的事实。如果体验如此个性化,那么与他人分享您对游戏的兴奋就更加困难。想象一下,如果世界上没有其他玩家玩过具有相同位置,角色或生物的游戏,那么就分享一个关于游戏的模因。 牢记这些问题,也许您会想到其他问题,还有没有办法在不破坏探索的情况下将程序生成纳入游戏?也许某些有限的程序技术可以使冒险游戏从中受益,但不会妨碍故事的发展?

5
为什么在Vector3s中不能使用运算符'> ='?
我正在尝试获得一个矩形,以便在我称为_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
随机生成逼真的人脸
生成大量逼真的人脸的可行方法是什么?随机分配3D模型并渲染它们将需要大量的计算能力,尤其是在我临时需要它们的情况下。对单个2D绘制的零件进行分层需要一些艺术才能,这绝对是我所缺少的。另外,我想尽可能多地参数化生成过程的各个方面。您对此有什么建议吗?

3
正确“随机”生成流动地形的方法
我正在创建一个简单的自上而下的RTS游戏。我计划在需要时“随机地”即时生成地图。我计划所有这些都以“通过”的方式工作: 全草填满地形 返回并添加一些随机的砾石 磨碎碎石 在第二层上绘制山地景观 圆山 等等等 现在,请看下面的图片: 我是使用地图编辑器手动创建的,但我希望将其传递给第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
在高温高热地区,预计会出现什么样的环境?
我正在创建一个“探索”游戏,该游戏会随机生成世界地图。使用“温度图”,“湿度图”和海拔图给出的数据生成生物群系,例如:寒冷+湿度=雪,炎热+湿度=丛林等我剩下的问题是以应对炎热气候下的高架地区。现在,它被设置为“裸露”生物群系(下图中的灰色区域),我想这应该是“荒芜的干旱土地”。另一方面,温度较低的高架区域设置为雪(白色),可以。那么,我应该如何应对寒冷气候下的高架区域?我有几个想法,但我觉得它们都不起作用:1)也将其设置为下雪,但我认为这很奇怪2)将其设置为“裸露”但我不知道

1
在网格中生成城镇布局
我想使用以下元素在正方形网格(等距渲染,但是没关系)中生成城镇布局: 2x2房屋 道路,宽1个单位 1个宽的运河 示例布局: 我总是有一定数量的房屋,并有尽可能多的道路和运河将它们连接起来。 房屋的前门必须有两条路(总是指向右边) 介于它们之间的草地(空虚)会很好。 有现成的算法吗?如果没有,我应该考虑朝哪个方向实施?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.