Skip to main content

地形(Terrian)制作技巧!

这个图书还未完成!请谨慎观看!

没有图片这回事真的很私密马赛!本文最初是一个视频教程的文案,但我一直抽不出时间去录制这个教程!

制作这些教程需要花费的时间太长了,外加本人不太想反反复复造轮子。不如向你推荐 Brackeys 创作的一个绝妙教程,这教程基本涵盖了 Unity 2019 及更高版本地形(Terrian)制作的基础知识。我知道,视频评论区里的老铁们大部分都不会选择观看先修课程;而我又做了个违背祖宗的决定,不在本教程中教学如何安装或设置地形(Terrian)!所以先去观看 Brackey 的视频吧!

首先!有一件是你绝对绝对应该先关掉的!如果你使用的是2D植被资产,请不要打开它们的 Billboards 模式!!!这会让它们始终面向相机,这在 VR 中看着尤为扎眼,并且会十分破坏沉浸感!

还有一件事。根据我的个人经验,确实存在这么一些更适合用于第一次地形尝试的景观类型,而有些则不适合。我尝试制作的第一个景观是一个受奥地利阿尔卑斯山启发的山谷景观,但我很快发现,要让这种景观看起来还说得过去是需要花费大量的时间和精力的,这还没算上许多我还没有掌握的技能的学习成本。之后,我决定创建一个小型海滩岛屿,简单多了。不仅没有那么多地形需要雕刻,而且让它看起来说得过去所需的付出要比制作一个复杂景观简单得多。它也可以很轻易地用纯天然的“大海”屏障围住,而这同时也可以很巧妙地隐藏掉小地形边缘,并可直观作为边界以阻止玩家越过。

我最终还是挤出了一个山谷景观,这可能是从技术角度来说我拉的最大的一坨场景之一,但我仍然喜欢它的视觉效果和氛围。我当然可以再发点力让它看起来更好些,但这就需要花费相当长的时间。

总之:选择一种做起来更简单的景观作为你的第一个地形尝试!即使你已经有了制作地形的经验,在计划创建新的地形前也应该考虑一下它们的制作时长与投入产出比!

许多关于地形制作的教程都有在解释地形到底该如何制作,但许多并没有确切地解释这些方法是什么或者为什么它们能作用。Unity地形(Terrian)经过了优化,适用于大型景观。这是因为地形(Terrian)的网格能够被细分。

哥们最好先自己试试。如果你点击地形,然后转到 Gizmos,勾选“mesh wire”,它会显示地形的多边形面。当你靠近时,你可以看到多边形的数量增加,当你远离时,它会减少。你可以切换到不同的场景视图渲染模式(scene view rendering mode),这样看得更清楚些。这也有助于优化渲染(rendering)和碰撞物理(collision physics)。

地形(Terrian)具有在单个物体上绘制多种材质的能力。这个功能由 splatmap 驱动,在 Unity 官方做的视频中有着详细解释。那当然,如果你的地形上只有一个材质,那它可能看起来也没啥意思。

地形的置换是由高度图(heightmap)驱动的。这个问题在 Brackey 的视频中有讨论过。这么做的缺点当然是你不能使用地形制作悬垂的悬崖,在这种情况下,你应该放置静态网格,如岩石或带有 LOD 的悬垂悬崖。

说到这,我个人认为大多数初学者制作的地形问题还是在于它们很无聊。通常问题不在于试图使用地形(Terrian)复现的景观不好看(虽说不假),而是因为地形(Terrian)之上根本没有足够的东西;地形应该是作为场景其他元素的基底存在的。地形本身,这个二维平面,不应该是整个环境的主角!重要的是草地、树木、水体或任何人造结构!(以及记得遵循视觉构图规则,这些规则始终适用)这会使你的地形不仅从视觉上变得有趣,还会让一切引人入胜!

地形通常不是完美的光滑面。当然,这完全取决于你试图重现的环境类型。如果你正在制作一个雪地,那么被雪覆盖的部分可能就会因为雪的下落和风吹而显的更平滑。

一如既往,参考是关键!不仅如此,研究地形为何看起来是这样还会帮助你创建更加逼真的地形!当然,这可能会让一部分人感到无聊,但几乎每个专业艺术家,尤其是3D艺术家,都会深入研究事物的外观以及为何它们看起来如此的原因,以便在他们选择的表现媒介(在这种情况下是3D软件)中重现它们。

如果你认为你的地形需要更多细节,你可以在获得地形的大致形状后使用奇妙画笔。当然你可能希望它不那么上强度。如果不小心整太多了,你总是可以再次平滑它!

以下是一些关于地形(Terrian)的其他很棒的教程!

https://youtu.be/MWQv2Bagwgk

https://youtu.be/smnLYvF40s4

https://youtu.be/ddy12WHqt-M

https://youtu.be/PDKZXjyhwh0

来看看 Unity 关于地形及其地形工具的官方文档!

https://docs.unity3d.com/Manual/CreatingEnvironments.html

https://docs.unity3d.com/Manual/script-Terrain.html

https://docs.unity3d.com/Manual/TerrainTools.html