unity3d--地形系统

发表于2016-09-21
评论0 4.7k浏览
首先创建一个新的场景 
  点击菜单栏中的 Terrain-> create Terrain 菜单  
  完成后如 下图
 
 
  创建地形系统的时候 unity会按默认的 宽高 图像分辨率,纹理分辨率 等创建一个地形  不过不怕 这些我们都可以修改滴  
  如果需要在game 窗口(即是游戏运行窗口)中看效果 ,需要调整下摄像机的位置和角度  
操作方式  选中  Hierarchy 中的 main camera 摄像机 然后使用 场景编辑器上面那4 个 功能(拖动,移动,旋转,缩放)进行调节即可 调节过程中就可以再game 窗口中看到效果啦,   各位童鞋 多操作几次就可以熟练操作了
  点击 Terrain ->resolution 菜单 可以设置地形的各个参数
  如下图
 
        

  如上图所示从上到下分别代表的含义是
  Terrain Width: 地形的宽度 
  Terrain Height: 地形的高度
  Terrain Length:地形的长度
  HeightMap Resolution:地形高度图的分辨率. 
  Detail Resolution:细节分辨率,控制草和细节网格地图的分辨率。数值越高标示效果越好,想对也越消耗机器性能,可能会卡。根据情况适当的调节。
  Control Texture Resolution:控制不同纹理的分辨率。
  Base Texture Resolution:控制相对纹理分辨率,这里指一定范围内的。
  设置完毕点击 set Resolution按钮,有兴趣的朋友可以动态的修改一下参数,看看你的地形发生了什么样的改变?
  修改完后我们来给地形添加点元素吧 
  选中 Hierarchy 中的 刚刚创建的terrain 地形 右边出现了地形的编辑窗口
  如图
 
          
 
  上图中 的红框框 讲解  从上 到下
  1、 position 是地形的 位置坐标  
    rotation 的旋转坐标
        scale   缩放比例
        这个位置任何游戏组件都有这 3 个属性
  2、这7 个属性 从左往右 分别是 编辑高度、编辑特定高度、设置平滑、纹理贴图、画树模型、画草模型、其他设置.善用着七个工具可以编辑一个非常不错的游戏地形,稍后我会介绍这七个按钮的具体操作流程。
  选中编辑高度   下面出现 barusher 和 settings  属性栏
  Brushes:地形绘制画笔,这里有很多种画笔的图案可供我们选择。
  Brush Size :画笔宽度取值范围
  Opacity :画笔高度取值范围
  如图 
 
              
 
  各位童鞋 可以修改参数 在地图系统上 绘制 高度 感受这些参数的 意义 

       
 
  上图是我使用编辑高度拖拽出来的效果  现在有点难看哈 ,,没事滴   我们继续完善它 
       
编辑特定高度
  和编辑高度页面中的信息差不多,只是多了一个Height用来设置最大的高度,编辑高度中Opacity是最大高度,但是在这里Height才是最大高度但是Opacity必需有数值,举个例子Opacity设置为100,Height设置 80 最高的高度就是80   .Opacity设置为20  Height设置 100最高的高度还是20.  。
 
设置平滑
  用上面拉出来的地形 如果 近距离看 会发现 有些山峰 的边角会有些粗糙, 这时我们就可以使用 设置平滑来 山峰的边角平滑过渡

纹理贴图
  这个东东呢 ,就是给地图加上图片 ,从而实现 好看的地图 而非像上面光光的  图片资源方面我们可以导入系统标准的资源库,里面有很多好看的地形资源,当然也可以自己添加喜欢的图片做地形资源。
  导入系统 图片资源  选择  菜单栏中的assets -> import package -> terrain assets   点击导入 ,这里只是导入 地形系统的资源  在此次你也可以导入其他资源   如下图
 
     
 
  点击Edit Textures  出现一个下拉列表
  add Textures 添加一个贴图 
  Edit Textures  编辑贴图
  Remove Textures删除贴图
  点击 addTextures 添加一个贴图 
  如图 中的 箭头 标记  选择一个 你喜欢的地形图片  给地形 

    
 
  Add Terrain Texture (添加贴图)
  splat :选择一个贴图,上面导入了系统自带的地形资源,在这里随便添加两个贴图用于区分资源。也可以添加自己喜欢的图片,拖放在工程中就可以在这里看到图片资源。
  Tile size x: 设置贴图X轴宽度
  Tile size x:设置贴图Y轴宽度
  Tile offset x:设置贴图X轴偏移量
  Tile offset y:设置贴图Y轴偏移量
有兴趣的童鞋修改一下参数方可看到效果,这里暂时使用默认数值。
现在回头看看 是不是好看多了 , 精彩还在后面的 ,我们继续 ....

画树模型
  既然 是地形 当然是有树啦  
  Hierarchy 标签栏中,点击Create - > Tree 可以创建一个树的模型,设置自己的树木模型,这里我们先导入系统自带的树木模型,以后在讨论自定义模型的制作。
  因为新建的工程中是没有树木和草地的贴图元素,可以在Unity3D 的标准资源库中导入,导入的方法和纹理贴图介绍的一样。打开Unity3D 在Project标签栏中 鼠标右键 Import package - > Tree Creator 将标准树木资源模型导入工程。
  点击 Add Terrain Texture 添加一个 树模型  过程和 添加纹理贴图 类似 
  如下图  
 
             

  在上图中 花树模型的 属性 
  Brush Size : 画笔绘制一次树木添加数量,数值越大越多,越小则越少,取值范围0到100。
  Tree Density:树之间的百分比,在一片树中间在放入量一片树就得修改这个数值了,取值范围0到100。
  Color Variation:树之间颜色差的范围,取值范围0到1。
  TreeHeight:树的高度,它是与场景模型有一定比例,越大树越高,取值范围0到200。
  Variation:树与树之间的高度比例,取值范围0到30。
  Tree Width:树的宽度,它是与场景模型有一定比例,越大树越宽,取值范围0到200。
  Variation: 树与树之间的宽度比例,取值范围0到30。
  童鞋可以 调整这些参数 才地形上 花 并观看 效果 
  我在 地形上 添加了 树 效果如下


 
game 游戏运行时的效果 如图
 

 
  但我们在游戏的 game 窗口中看效果会发现地形中灰暗暗的一片这是为什么呢,这是因为光线不够 ,这些unity 都为我们想好了,记得我们前面有一章讲了game object 吗 ?现在我们来添加一个平行光 (如何添加平行光不知道的童鞋去看Unity3D游戏开发创建简单的游戏世界(三) 添加游戏组件 ),给地形加点亮度。
  各位童鞋注意哦,平行光的位置对游戏中的亮度是没有关系的, 角度才对亮度有关系, 所以我们添加了平行光 旋转旋转角度就可以搞定了。
  如下图,是不是好看多了  
 

 
画草模型:
  起始它不仅能草,还能画一些自定义模型,可以处理一些零碎的小东西丰富游戏场景 它或 画树模型有些类似  这里就不再多啰嗦了 
  主要设置一些3D游戏地形的一些参数
  一下面列出一些主要参数的介绍,盆友们可以自己拖动鼠标修改一下其中的具体数值就可以在游戏视图中清晰的看到效果。
  Pixel Error:控制地形密度容差,数值越大越圆滑,越小地形角度越明显。
  Base Map Dist:控制地形贴图的距离.
  Case shadows: 是否显示地形阴影
  Draw:是否绘制绘制场景模型,比如树,草等等。
  Wind Settings 地形中风的设置
  Speed:风速 
  Size:风的范围 
学习了这一章 童鞋们赶快 试试 制作自己的喜欢的游戏地形吧 ,哈哈,这章暂时就到这了,有什么不明白的地方或遗漏的地方,欢迎积极留言,家共同学习共同进步咔咔。 
  看了上面的文章 热爱游戏创作的你是不是已经开始热血沸腾了呢?是不是迫不及待的想加入游戏团队成为里面的一员呢?
  福利来啦~赶快加入腾讯GAD交流群,人满封群!每天分享游戏开发内部干货、教学视频、福利活动、和有相同梦想的人在一起,更有腾讯游戏专家手把手教你做游戏!

腾讯GAD游戏程序交流群:484290331

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引