译林军 宿学龙
http://unity3d.9tech.cn/news/2014/0219/39871.html
今天我带领大家学习如何为行星表面创建地形。虽然Unity有一些地形制作工具,但是他们多少还是有限制的。我们将使用一些工具来得到更加好看真实的场景。 地形的基本形状都是在Mudbox或者其他一些可以导出高度地图的画图软件里制作的。我们将在机器世界里使用高度地图,一个地形渐进制作软件可以帮助我们增加更加逼真的腐蚀效果。 点击这里查看机器世界的免费版本。 得到一个好看的地形后我们就可以将高度地图导出到Unity里,名字可以是颜色地图等,自己命名即可。 为了将我们的地图导入到Unity中,我们将使用强大的颜色地图地形阴影渐变器 创建基本形状 首先我们需要将一个简单的平面模型导入到Mudbox里。我们将使用一个512*512元素和8个分量的OBJ文件。 你可以用任何3D模型软件创建平面,也可以从这里下载: 详细的工作流程 打开Mudbox 在开始之前,我们需要设置一些变量。 调整FOV视角层的FOV参数来匹配你Unity上面的摄像机FOV值。这样就能得到一个好点的刻度调整以及均衡的视角。 将工具的雕刻值方向只设置Y。由于高度地图指示存储高度信息,我们只需要多边形向上在Y轴移动。 为雕刻工具选择一个好的邮戳图片。可以在制作完基本形状后再做。Bw_cliffFace.tif邮戳在岩石表面运行起来效果不错。 开始雕刻地形,直到你满意为止。 完成之后,你的地形如下图所示:
现在要导出我们地形的高度地图来在机器世界里使用!
为此我们导入简单的屏幕OBJ文件到场景中来映射高多边地形数据到平、低多边的平面。 之后到UV和地图->提取纹理地图->新操作 选择移置地图并调整下面的参数: - 目标模型->添加低多边平面
- 源模型->添加高多边平面地形
- 搜索距离->用最佳猜想试验,如果在高度地图中得到非人工的则进行调整
- 图片尺寸->我们用2048*2048分辨率的
- 基本文件名字->选择你的文件名字并选择TIFF16位整数
- 点击提取来制作你的高度地图
制作过程完毕后,你会得到一个2048*2048的图片。 添加地形过程详细信息 我们打开机器世界并设置一些节点。 处理各种参数的时候最好将分辨率设为一个较低的值(513*513),这样会加速构建时间。一旦你觉得地形不错了你就可以将分辨率增加到2049*2049. 你可以在项目设置菜单里更改分辨率。 机器世界里对每个节点都做了很多预设。只需要尝试不同设置即可。 创建一个新的高度地图 - 首先我们需要生成器列表中的一个文件输入节点来加载我们的高度地图。双击节点选择你的TIF高度地图文件。你可以谅解不同规格的节点到文件输出模块的高度域
- 最终谅解一输出列表中的高度输出节点到你更改环节中最后的一个模块的高度域输出即可
- 双击高度输出节点并选择一个文件名字
- 选择RAW16作为文件格式,将之前的.r16文件后缀名改为.raw
- 点击写出到硬盘!
创建一个splat地图 Splat地图是根据其水平高度来对地形进行纹理化的。 因此我必须将地形的高度信息分离到单独的通道来获取器RGBA值。我们会使用选择器列表中的选择坡度和选择高度模块。 我们的节点如下所示: 坡度选择器可以只选择来自给定高度的数据来配置地形数据。 如果最大值和最小值跟其他坡度选择器重叠,你就会获得最好的结果。 由于选择器只有一个高度位域输出,我们必须使用合并器列表中的通道合并,然后连接高度位域到通道合并器输入的红、绿、蓝。 最后我们连接来自输出列表中的位图输出节点来将我们的splat地图导出为一个16位PNG图片。 创建标准地图 标准地图是为地形添加结构的一种很好的方式。为了导出一个标准地图我们需要从转换列表中添加一个标准地图制作节点,然后将其连接到一个位图输出。 创建颜色地图 最后我们需要用转换列表中的颜色节点来制作一个颜色地图。 详细情况是我们将通过选择器列表中的选择顶点节点来导出一个曲率地图。 为了导出图片文件我们需要连接一个高度输出和一个位图输出节点。 我们将用Photoshop将曲率地图和颜色地图合并。不断对透明度和混合模式进行调整直到你满意为止。 如果你想更深入的了解使用Mudbox创建地形,在CryEngine和UDK里有一个好的更加深入的教程。 下面第二部分处理将地图导入到CryEngine,我们将在下面的环节中涵盖Unity的部分。 你处理完毕后应该会得到四个图片和一个高度地图的源数据文件。 颜色地图 曲率地图 标准地图 Splat地图 重要:为了用ats颜色地图终极地形渐变器,你序号将它们在Y轴翻转。 将地形和地图导入到Unity中 打开Unity并将地图添加到项目里。 额外需要添加至少四个纹理,以便在地形中使用。
你可以从Unity素材商店里花费10美金购买ats颜色地图终极地形渐变器,我们要用到它的,它可是物超所值哦。 用通过游戏对象->创建其他->地形来创建一个新的地形。 到你新创建地形对象的设置列表中,设置高度地图的分辨率为2049,并点击导入源按钮啦导入你的高度地形的源文件。
警告:你必须选择Windows作为字节顺序以防止设置为Mac。否则你的地形会一团糟。 使用ats颜色地图顶级地形渐变器 启动ats颜色地图渐变器有点复杂,但是包里的文档还是不错的。 创建好地形最好的方法就是遵循手册里的步骤。无论如何,下面是建立渐变器的大概步骤。 - 在地形中添加CustomTerrainScriptColorMapUltraU4.cs脚本
- 在添加颜色地图脚本的时候,设定颜色地图并用地形上的新编辑器处理标准地图
为防止处理splat地图格式时候出错,你可以在Unity里更改图片文件的导入格式 - 通过添加地形纹理的标准地图到槽里来创建合并的标准地图,然后导出新生成的合并标准地图
现在你应该在Unity里得到了一个不错的地形了。 如果在使用ats Colormap UL TRA地形渐变器过程中有什么问题,请查看包里的用户手册。里面很详细,你应该可以解决任何问题。 下面是我们刚才创建的地形。 如果你有任何评论或者建议请在下面留言! 原文链接:http://www.bitsalive.com/how-to-create-awesome-terrains-in-unity/
|