Roblox 地形生成器中的种子是什么?

What are seeds in Roblox Terrain Generator?

我正在使用 Roblox Studio,并且遇到了地形生成器。它有文本输入 "Seed" 并且总是有一些默认值 number/code。我一直对种子是什么以及 Roblox Seeds 上是否有某种列表感到困扰。这是该功能的屏幕截图:Screenshot of Terrain Editor on Roblox Studio

我一直在乱输入随机数,影响了地形风格。我也多次用谷歌搜索 Roblox 种子,但只找到游戏和组。

如果我能列出所有 Roblox 种子以及它们的工作原理,我将不胜感激。

高性能标记是正确的。让我解释一下为什么。

地形生成器、云生成器和海洋模拟器都使用数学波、随机和噪声函数来构建有趣且可信的形状。除了生成器之外,种子值在很大程度上对任何人都无关紧要。该值使其能够非常快速地可靠地获得可重现的结果。计算机程序需要找到优化所有可能的方法,而存储地形信息可能需要大量数据!因此,智能系统不会保存所有地形,而是会在需要时尝试重新生成地形。地形中的每个点都可以使用复杂的数学函数重新计算,您的种子值在该计算中起着重要作用。

例如,假设您想绘制一些 2D 山丘。您可以使用 sine wave 来描述那些山丘的高度。

for distanceAway = 0, 1, 0.1 do
    local hillHeight = math.sin( distanceAway )
    print( hillHeight )
end

因为您使用的是数学函数来描述山丘,所以无论距离多远,您都可以立即知道它应该是山顶、山谷底部,还是介于两者之间。而且每次你​​ 运行 也是一样!

但也许那些山看起来都太相似了。您可以通过向高度添加一些随机数来为这些山丘添加一些变化和抖动。

for distanceAway = 0, 1, 0.1 do
    local hillHeight = math.sin( distanceAway ) + math.random()
    print( hillHeight )
end

这看起来像是一个不错的补充:山现在有了更多的变化,它们可能有点异常尖锐,但至少它们不再是同一座山,一遍又一遍……但现在我们出现了问题。再问同一座山,就不一样了!

local distanceAway = 10
local hillHeight = math.sin( distanceAway ) + math.random()
print( hillHeight )
hillHeight = math.sin( distanceAway ) + math.random()
print( hillHeight )

想象一下,您正在环游世界,发现山顶上有一块非常酷的岩石或一棵树。所以你走开去找朋友,但是当你return,山顶现在变成了山谷。无论你走到哪里都会像那样。任何地方都不会再有永恒的世界!

所以我们不用随机数,而是使用 noise function 中的伪随机数。这次,我们也提供一个种子值!

local seedValue = 0.2357
local distanceAway = 10
local hillHeight = math.sin( distanceAway ) + math.noise( distanceAway, 0.5, seedValue )
print( hillHeight )
hillHeight = math.sin( distanceAway ) + math.noise( distanceAway, 0.5, seedValue )
print( hillHeight )

漂亮!提供种子数允许噪声函数每次都重新创建相同的随机数。现在我们有了可重现的地形生成,它也有一些有趣的变化!

如果您想了解噪声的其他用途,可以阅读精彩的 slideshow made by the University of Texas 深入了解随机数和噪声。

我希望这有助于说明为什么 Roblox 地形编辑器允许您提供 "Seed" 值。据我所知,没有一个包含所有不同种子的主列表。不过如果你找到好的,一定要分享给你的朋友,让他们也来试试!

种子基本上是一个数字,让地形不同,例如,你想要一个有大洞穴的部分,你得到种子,你粘贴它,你想要的地形就会出现,每个种子都是不同的,所以尝试尽可能多的种子,找到你最喜欢的 :3