查看: 6716|回复: 82

[基础] Unity 地形制作 - 创建华丽的游戏地形

    [复制链接]

1

主题

20

听众

201

积分

Rank: 2

升级   0.33%

发表于 2013-2-17 11:50 |显示全部楼层
共享资源获取更多积分!share your resources get more credits!
资源信息 Tutorial Information
教程名称: Unity 地形制作 - 创建华丽的游戏地形(发布原创教程可获得更多积分哦!)
适用引擎: (资源适用引擎)
教程语种: 中文
教程等级: 小白(等级越高教程越难,但能学到的东西越多)
教程格式: 图文(请用IE9以上浏览器访问本版块)
教程作者: 转载自互联网 (如有问题请短消息联系作者或发表回复)
点击查看原图 --> 美丽分割线
请先回复
哇伊~ (((‵□′))回复太烦了,怒买VIP(充值金额将用于论坛采购更多资源)

--> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 --> 请先登录 -->

在Unity工作流程内,地形是一个不可缺少的重要元素,不论是游戏或虚拟现实都会使用到各种类型的地形效果,在这个教学中我们需要了解到地形的制作基本概念与,其中对于Unity的地形操作部分需要大量的操作练习.熟悉这些功能操作之后,相信对于游戏地形的制作与运用将会更得心应手。

创建一个新的專案目录,勾選Terrain Assets資源包(Tree Creator與Water可一併加入),按下 Create 開始创建项目。


开始创建地形,按下Terrain > Create Terrain,窗口内自动产生一个平面,这是地形默认使用的基本原型。


选择 Terrain > Set Resolution 功能可以检视默认的地形所设定的基本参数,在这个选单内提供多样化的设定方式:

Terrain Width : 地形的宽度
Terrain Height : 地形的高度
Terrain Length : 地形的长度
HeightMap Resolution:地形高度图片所使用的分辨率.

Detail Resolution : 这个数值高低用来控制草地和添加细节模型的分辨率。数值越高效果越好,不过会大量消耗内存,可能会造成严重的延迟,大多数我们将这个数值控制在128到256之间会取得一个测试地形的开始。
Detail Resolution Per Patch : 每一个面片的细节设定值
Control Texture Resolution : 控制贴图纹理的分辨率。
Base Texture Resolution : 控制地型基本贴图纹理分辨率。

在第一次的练习中,我们先采用内定的标准数值来进行地形绘制,直接按下Set Resolution 完成确认。

在Inspector 面板中的 Terrain ( Script ) 是关于整个地形的所有功能设定,最上面的七个按钮为主功能区,由左至右的按钮功能分别是:
1.Raise and Lower Terrain – 绘制地形表面凹凸程度,如在绘制过程按下 Shift 则将地形向下凹陷。
2. Paint height – 绘制地形高度
3. Smooth the terrain height – 对地形表面进行平滑处理
4 Paint the terrain texture – 绘制地形表面贴图
5.Place trees – 种植树木功能
6.Place plant,stone and other small foliage – 种植花草与地形表面对象
7.Terrain – 地形相关参数设定


确认 Set Resolution 的设定值为默认的设定值后,选择 Import Heightmap – Raw功能。Raw文件里面记录着灰阶的位阶图,藉由灰阶的落差来产生地形的高低。

选择下載的附件terrain.raw,不改动任何设定,直接按下 Import将地形高度贴图导入。

经过贴图的导入后,原本的平面转换成高低起伏的地形,接下来我们就可以开始绘制地形上的纹理效果。


按下 Paint the terrain texture > Edit Texture > Add Texture,将Sand (Beach2) 拖曳到 Splat 栏位内。

将贴图拖曳进来后按下 Add 完成导入动作,在地形上就直接覆盖了一层类似沙地的表面。


现在我们需要导入第二张贴图来增加地形斜坡上的绿色纹理,按下 Add Texture 后将Grass ( Hill )拖曳到 Splat,Tile Size X与Y设定为10,按下Add完成导入,在 Textures 小窗口内就增加了第二种纹理。

按下绿色的纹理小图,表示选择该贴图进行绘制,在Settings 字段中将 ***sh Size 设定为60,Opacity设定为50,Target Strength设定为0.9的笔刷设定,然后开始进行斜坡上的纹理绘制。




使用相同方式在地形的斜坡区块上绘制出相同的绿色纹理,在完成大面积的斜坡纹理绘制后,选择原来的沙地贴图, 将***sh Size 设定为5,Opacity设定为50,Target Strength设定为1,在斜坡上绘制出道路的造型。


在绘制斜坡道路时可先使用较小的笔刷先绘制出基本线条,然后再推进摄影机角度进行更多细节上的调整。


将加第三个贴图纹理Cliff(Layered Rock)加载,Tile Size X与Y设定为50,***sh Size 设定为15,Opacity设定为40,Target Strength设定为0.4,然后在斜坡与地面上的交界处进行绘制,使其能产生融合的纹理效果.

在绘制交界处纹理时,先将 Target Strength 设定为 0.4可取得一个半透明的融合,然后再降低数值约为0.25,在靠近地面的融合处再用笔刷淡化边缘,使交界处能产生较为真实的地形表面纹理.
  

接下来需要在地形上面放置植物与花草,连结到官方网站http://unity3d.com/support/resources/assets/terrain-assets下载地形辅助资源包后,使用 Assets > Import Package > Custom Package 将资源包导入.


导入资源包时可以预览与勾选所需要的对象内容,确认所有资源都被勾选后按下Import,系统在逐一导入资源时会需要些时间,完成后在Project面板内就会出现Terrain Assets的资源目录.


按下Place Trees > Edit Trees..> Add Tree,然后将Palm(Group)模型加载,我们准备用这个椰树来做为种植的对象.


在树木的设定栏中调整分别设定笔刷的大小与密度,设定的数值作用如下:
***sh Size – 笔刷范围
Tree Density – 树木的密度
Color Variation – 颜色的变化控制
Tree Height – 树木高度
Variation – 高度的变化值(使其产生高度不一的树木)
Tree Width – 树木的宽度
Variation – 宽高度的变化值(使其产生宽度不一的树木)


设定好树木笔刷的数值之后,就可以开始在地形上刷出椰树,我们将椰树种植在比较低的区域,越往上则数量越少,一个原则是先刷密集区域,然后再降低 Tree Density数值刷其它部分.

在进行树木种植过程中,可能会有些不需要种植的区域被刷到,消除的方式只要配合Shift键就可刷掉多余的树木.


完成第一种树木的种植后,现在增加第二种树木模型,按下Edit Trees>Add Tree,将Terrain Assets资源包内的ThinTree加载,然后将笔刷的设定修改如下:


开始刷出第二种树木的分布,运用相同的操作方式配合Shift键进行区域种植,必须注意的是 Tree Density的数值控制.


按下 Place plants,stones..> Edit Details..> Add Grass Texture ,将Terrain Assets > Terrain Grass > Grass 拖曳到Detail Texture.

调整Grass的设定值如下,将Health Color与Dry Color颜色设定为白,Billboard为勾选的状态,按下Add完成导入.


调整Grass的笔刷与强度,这里必须注意到的是Target Strength这个数值的调整,数值越大则植物的密度越高,可先从0.15-0.25之间的数值先开始操作.




现在我们将摄影机拉远到一个距离,这时会发现刷出来的植物突然消失不见,原因是地形中的细节显示被限定在一个范围内,按下 Settings for the terrain 可找到关于地形的相关设定,我们可以将Draw > Detail Distance的显示距离加大到250(最大值),这样就可在场景中看到更多较多的细节.


Detail Density用来设定细节的密度显示比例,将数值设定为0则完全不显示.Tree Distance 表示在摄影机中看到树木的距离,数值越小则从摄影机看过去的数量越少,这个功能类似3D软件中Clip Plane的作用.


按下Edit Detail > Add Grass Texture 加载 Terrain Assets > Grass > Fern后继续在地形上增加一些花草作为点缀.除了使用Grass贴图作为种植方式,还可以增加细节模型来强化场景的三维效果,按下Edit > Add Detail Mesh,将Terrain Assets > Tree Ambient-Occlusion > BananaPlant拖曳到 Detail字段,设定值调整如下,Health 、 Dry Color分别设定为浅绿与深灰色,Render Mode选择Vertex Lit(顶点着色),按下Add完成导入.


将***sh Size调整为4,Opacity为0.06,Target Strength为0.0625,然后在地形上刷出少量的植物.

最后再增加一种点缀用的植物,将Terrain Assets > Grass > WhiteFlowers拖曳到Detail Texture后分别设定以下的数值, 将Health、Dry Color分别设定为白色与浅灰色,按下Add完成导入.


导入后在地形上刷出第四种花草植物,在过程中我们可根据地形高低与范围来切换不同的植物,再配合Shift键删减掉多余的部分,最终就能得到一个理想的地形效果。


最后在场景中增加天空背景与雾化效果即可完成整个地形的制作。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

点评

stine  要静下心好好的学习,啊,谢谢楼主,,,,  发表于 2013-5-29 14:57
楼主热帖
已有 4 人评分鲜花 道具币 收起 理由
force0512 + 1
1287537617aa + 1
aa1287537617 + 1
索拉 + 1 很给力!

总评分: 鲜花 + 2  道具币 + 2   查看全部评分

1

主题

20

听众

201

积分

Rank: 2

升级   0.33%

发表于 2013-2-17 11:57 |显示全部楼层
增加天空背景与雾化效果即可

点评

G_Dragon  如何添加雾化效果?  详情 回复 发表于 2013-3-28 11:03
回复

使用道具 举报

0

主题

20

听众

200

积分

Rank: 2

升级   0%

发表于 2013-2-18 15:58 |显示全部楼层
早出来就好了,当年自己折腾N久才会搞

点评

忘秋  雾化效果怎么实现的  详情 回复 发表于 2013-4-30 11:41
忘秋  雾化效果怎么添加的  详情 回复 发表于 2013-4-30 11:41
回复

使用道具 举报

7

主题

20

听众

221

积分

Rank: 2

升级   7%

发表于 2013-2-18 19:49 |显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

20

听众

202

积分

Rank: 2

升级   0.67%

发表于 2013-2-19 18:01 |显示全部楼层
谢谢分享! 有时间来学习
回复

使用道具 举报

0

主题

20

听众

202

积分

Rank: 2

升级   0.67%

发表于 2013-2-20 15:14 |显示全部楼层
楼主太有才了,膜拜中……
回复

使用道具 举报

0

主题

20

听众

200

积分

Rank: 2

升级   0%

发表于 2013-2-22 11:09 |显示全部楼层
没有地形RAW的下载链接的啊?楼主!
回复

使用道具 举报

0

主题

20

听众

204

积分

Rank: 2

升级   1.33%

发表于 2013-2-22 14:06 |显示全部楼层
初学者  借来学学
回复

使用道具 举报

0

主题

0

听众

8

积分

Rank: 1

升级   4%

发表于 2013-3-14 17:54 |显示全部楼层
very good  
回复

使用道具 举报

2

主题

20

听众

202

积分

Rank: 2

升级   0.67%

发表于 2013-3-16 08:09 |显示全部楼层

膜拜中。。。。
直面生活,勇气是你的宝贝。
回复

使用道具 举报

温馨提示:求助请到“Unity技术讨论”版块中发帖,便于集中解决!
您需要登录后才可以回帖 登录 | 立即注册

懒人模式:

关闭

站长推荐 上一条 /1 下一条

Unity3D游戏开发联盟(资源共享平台) -Unity3D,Unreal ( 苏ICP备12051100号 )   

GMT+8, 2019-12-6 05:50 , Processed in 0.119552 second(s), 88 queries .