【Unity】4.3 地形编辑器

分类:Unity、C#、VS2015

创建日期:2016-04-10

一、简介

Unity拥有功能完善的地形编辑器,支持以笔刷绘制的方式实时雕刻出山脉、峡谷、平原、高地等地形。Unity地形编辑器同时提供了实时绘制地表材质纹理、树木种植、大面枳草地布置等功能。值得—提的是,Unity中的地形编辑器支持LOD(Level of Detail)功能,能够根据摄像机与地形的距离以及地形起伏程度调整地形块(Patch)网格的疏密程度。远处或平坦的地形块使用稀疏的网格,近处或陡峭的地形块使用密集的网格。这将使游戏场景即真实、精细,同时也不影晌性能。

注意:地形与其他的游戏对象有些不同,地形支持Transform(几何变换)组件中的Position(位置)变换,但对于Rotation(旋转)以及scale(缩放)操作是无效的。

二、地形的创建方式

要创建地形并实现山脉、峡谷、平原、高地、树木种植、大面枳草地布置等功能的绘制,必须先熟悉下面的基本概念。

1、添加地形对象

先创建一个新的场景,然后打开菜单栏中的【Terrain】→【Create Terrain】,就创建了一个地形对象:

新创建的地形会在项目工程中创建一个地形资源,并在当前场景中添加—个地形实例(Project视图和Hierarchy视图中同时出现了该地形的相关文件),如下图所示:

新建地形对象后,在检视器视图中可以看到该对象所挂载的组件,除了Transform组件外,还有一个Terrain(地形)组件以及一个Terrain Collider(地形碰撞)组件。

2、地形组件

Terrain组件共包含7个选项按钮,利用这些选项就可以绘制地形起伏、地表纹理或附加细节如树、草或石头等:

在这7个选项按钮中,前3个用于地形高度绘制。

(1)按钮1--升高/降低高度

单击此选项按钮后,再展开的选项卡中,先设置Brush Size(笔刷大小)、Opacity(不透明度)的值以及绘制时使用的Brushes(笔刷),然后就可以在场景中用鼠标单击或拖动绘制地形了。

单击鼠标会增加高度,保持鼠标按下状态移动鼠标会不断的升高高度直到达到高度的最大值。如果想降低高度,按住Shift键再单击鼠标即可。

(2)按钮2--喷涂高度

单击左侧开始的第2个按钮选项,可进入喷涂高度模式。该模式一般用于绘制平整的高地或峡谷等地形。

设置Brush Size(笔刷大小)、Opacity(不透明度)、Height(高度)的值以及绘制时使用的Brushes(笔刷),就可以利用鼠标移动场景中地形上的任意部分,直到达到你希望的高度为止。

(3)按钮3--平滑高度

单击左侧开始的第3个按钮选项,可进入平滑高度模式。该模式用于柔化绘制的区域的高度差,使地形的起伏更加平滑。

(4)按钮4--绘制纹理

单击左侧开始的第4个按钮选项,可进入纹理绘制模式。单击【Edit Texture】可添加、编辑、移除纹理。重复“Add Texture”这个过程,可以添加多个纹理。

添加地形纹理以后,选择想使用的地形纹理,即可使用此纹理拖动鼠标左键对地形进行纹理绘制,如下图所示:

选择不同的纹理再拖动鼠标绘制,就可以在同一个场景中绘制出各种形式的地形纹理。

(5)按钮5—植树

单击左侧开始的第5个按钮选项,可进入植树模式。

单击【Edit Tree】可添加、编辑、移除树。重复“Add Tree”这个过程,可以添加多种树。

选择使用的树,设置树的密度(Tree Density)为合适的值,然后就可以将其绘制在场景中了,此时当前鼠标所在位置会标记为蓝色高亮,如下图所示,单击即可。

单击地形的任何地方都能种树。按住鼠标左键不放并拖动鼠标可在地形上连续种树。按住Shift键然后单击地面,可以擦掉相应位置种植的树。

参数设置(Settings):

Bush Size:笔刷的尺寸。设置植树时笔刷的大小,取值范围在1~100之间。

Tree Density:树木密度。用于控制树对象的间距。值越大树木越密集、间距越小。取值范围在10~100之间。

Tree Height:树的基准高度。值越大树木越高,取值范围在50~200之间。

Color Variation:每棵树的颜色所能够使用的随机变量值,取值范围在0~1之间。

(6)按钮6—种草

单击左侧开始的第6个按钮选项,可进入Paint Details模式,利用该模式可绘制草坪(用Grass Texture种草)以及指定对草坪进行细节性描述的网格(Detail Mesh)。

其中,【Settings】下的【Target Strength】表示目标强度,用于控制种草以及添加细节网格时所产生的影晌,取值范围在0~1之间。

单击【Edit Details…】,在弹出的快捷菜单项中选择【Add Grass Texture】,然后选择某种草坪纹理,并设置相关参数,单击【Add】即可添加一种草坪:

Details Texture:草坪的图片。

Min Width、Max Wdth、Min Height:设定草坪的最小宽度、最大宽度、最小高度值。

Noise Spread:噪波范围。用于控制草产生簇的大小。该值越低意昧着噪波越低。

Healthy Color:健康颜色。此颜色在噪波中心较为明显。

Dry Color:干燥颜色。此颜色在噪波边缘较为明显。

Billboard:广告牌。该项如果被勾选,草将随着摄像机一起转动,永远面向主摄像机。

单击【Edit Details…】,在弹出的快捷菜单项中选择【Add Details】,然后选择某种草的预设,并设置相关参数,单击【Add】即可添加一种草的预设体:

这两项选择后,就可以在场景中用鼠标种草了。

按住Shift键可用鼠标选择删除,按住Ctrl键可用鼠标删除选择的细节网格。

(7)按钮7—地形参数设置

单击左侧开始的第7个按钮选项,进入地形设置模式。

基本地形(Base Settings)选项卡下的参数如下:

Draw:是否绘制基本地形。

Pixel Erroe:像素容差。在显示地形网格时允许的像素误差。是地形LOD系统的一个参数。

Base Map Dist:基本地图距离。设置地形贴图显示高分辨率的距离。

Cast Shadows:投影。设置地形是否投射阴影。

Mterial:材质。通过单击右侧的圆圈按钮为地形指定材质。

树和细节配置(Tree & Details Objects)选项卡下的参数如下:

Draw:如果选中该项,所有的树、草和细节模型都将被渲染出来。

Bake Light Probes for:

Detail Distance:细节距离。该项用于设定摄像机停止对细节渲染的距离。

Collect Detail Patches:

Detail Density:细节密度。该项用于控制细节的密度。默认为1,如果将此值调小,过密的地形细节将会不被渲染。

Tree Distance:树林距离。该项用于设定摄像机停止对树对象进行渲染的距离。值越高,越远的树会被渲染。

Billboard Start:开始广告牌。该项用于没定摄像机将树渲染为广告牌的距离。

Fade Length:渐变距离。该项用于控制树对象从模型过渡到广告牌的速度,如果值设置为0,模型会突变为广告牌。

Max Mesh Trees:最大网格树。该项用于控制在地形上所有模型树的总数量上限。

针对草的风设置(Wind Settings for Grass)选项卡下的参数如下:

Speed:速度。该顶用于设定风吹过的速度。

Size:大小。该项用于设定风力影响的面枳。

Bending:弯曲。该项用于没定草木被风吹的弯曲程度。

Crass Tint:草的色调。该项用于设定所有草以及细节网格整体的色调。

【Resolution】选项卡下的参数用于添加地形对象后设置相关的属性。参数含义如下:

HeightMap Resolution:高度图分辨率。

Detail Resolution:细节分辨率。控制草地和细节网格的地图分辨率。如果希望提高绘制性能,可将该数字设置低一些,比如设置为512或者256。

Base Texture Resolution:基础纹理分辨率,用于代替在一定距离的泼溅贴图 (splat map) 的复合纹理分辨率。

三、示例(Demo05)

这里介绍实际操作的基本步骤,当你熟悉了这些基本步骤后,就可以绘制各种绚丽的地形了。按这些基本步骤操作完成后,即可得到下面的简单示例效果:

1、添加地形对象

在层次视图中鼠标右击选择【Terrain】→【Create Terrain】,创建一个地形。此时在Project的Assets下也会自动添加一个文件名为【New Terrain】的地形组件。

将Project的Assets下的【New Terrain】拖放到Demos05子文件夹下,并将其换名为【Demo05Terrain】。

在“层级视图”(Hierarchy) 中选中地形 (Terrain) 后,便可以使用 F(焦点)键对地形进行轻松导航。按 F 后,无论鼠标在哪个位置,都会移动到场景视图 (Scene View) 的中心位置。这样就可以对某个区域进行润色,快速移动到另一个区域并修改其他东西。如果在按下 F 键时鼠标没有悬停在地形 (Terrain) 的某个区域,则整个地形 (Terrain) 都会被置于场景视图 (Scene View) 的中心位置。

2、设置地形长宽

在检视图中,单击地形组件中的【按钮7】,修改【Resolution】选项卡下的参数设置,将地形的长(Length)宽(Width)都设置为2000,其他使用默认值:

下面是在Unity 5.3.4中初次创建地形后的默认值:

宽(Terrain Width):500

长(Terrain Length):500

高度(Height):600

Heightmap Resolution:513

细节分辨率(Detail Resolution):1024

Detail Resolution Per Path:8

Control Texture Resolution:512

Base Texture Resolution:1024

3、绘制山脉

在检视图中,单击地形组件中的【按钮1】,然后在地形上绘制出山脉的初步效果,这—步骤主要从整体角度来把握山脉效果,绘制出山脉的大致起伏即可:

然后在【Brushes】栏中选择笔刷的样式,为山脉增加细节结构,用于模拟山脊的效果:

4、绘制平坦地面

绘制山脉上的部分平坦地面,如下图所示:

技巧:按住Shift键配合单击或按住鼠标左键可以实时获取到笔刷所在地形的相应位置的高度,并将该高度设为笔刷的高度值。

5、为地形添加材质(可选)

鼠标右击Demo05文件夹,在该文件夹下创建一个材质:

然后将其命名为【Demo05Material】:

选中Demo05Material材质,在Inspector视图中单击Shader右侧的按钮,在弹出的列表框中依次选择【Nature】→ 【Terrain】→【Diffuse】项,为terrain材质指定shade:

选择地形,在Inspector视图中,单击【按钮7】,然后单击【Material】项右侧的圆圈按钮,在弹出的Sehct Matmal对话框中为地形指定刚刚创建的材质:

说明:地形的材质不是必须设置的,通常没置地形的材质是为了能够更改地形的渲染Shader。如果该材质设置为空,Unity会使用一套内置的地形材质。

6、添加纹理

单击地形编辑器中的【按钮4】切换到【Paint Textures】模式,单击【Edit Texture】按钮,选择【Add Texture】项,会弹出Add Terrain Texture对话框,单击Texture顶的【Select】按钮,在弹出的Select Texture2D对话框中指定一张纹理作为地形的首层纹理:

指定首层纹理后,Unity会自动将首层纹理平铺在整个地形上。如果需要修改平铺的大小,可继续单击【Edit Texture】按钮,选择【Edit Texture】项,在弹出的对话框中调节【Size】项的X、Y方向的数值即可。

首层纹理指定之后,接下来还可以继续为地形指定其他纹理用于丰富地形效果,方法与指定首层纹理相同。指定后再选中新添加的纹理,利用笔刷将该纹理绘制到地形上,这里不再演示。

7、添加路面

办法与“6.添加纹理”相同。

下面是添加的路面纹理:

下面是添加路面后的效果:

8、添加树

地形的纹理绘制完毕后,接下来为地形添加树。单击地形编辑器中的【按钮5】切换到【Place Trees】模式,单击【Edit Trees】按钮,选择【Add Tree】,在弹出的Add Tree对话框中单击【Tree】顶右侧的圆圈按钮,进而在弹出的【Se!ect CameObject】对话框中指定—棵树作为地形的树(重复此操作可以添加多种树):

添加树以后,在【Trees】预览框中选中某种树,设置合适的参数后,就可以利用笔刷在地形上种树:

如果希望修改已添加树的样式或受风力影晌的程度等参数,先在Tree预览框中选择要编辑的树,然后单击【Edit Trees】按钮,选择【Edit Tree】,在弹出的对话框中进行编辑。

要移除树,单击【Edit Trees】按钮,选择【Remove Tree】项即可。

9、添加草、灌木等

绘制完树,接下来为地形添加草、灌木等细节。

单击地形编辑器中的【按钮6】切换到【Paint Deails】模式,然后添加草坪、灌木等细节即可,用法与前面添加树的办法类似,这里就不再细讲了。

10、设置其他参数

当你熟悉以后,还可以通过地形编辑器【按钮7】下的选项,设置风刮草地和树木的效果。最后,再添加光源让整个场景看起来明亮绚丽等。

时间: 2024-10-21 09:37:57

【Unity】4.3 地形编辑器的相关文章

创建场景——02地形编辑器

学习笔记适合新手,如有错误请指正.?号处也请各位指点下,谢谢. 在Project视图中点击鼠标右键>Import Package>Environment,弹出资源导入窗口 点击Import按钮,导入环境资源宝 点击导航菜单栏>GameObject>3D Object>Terrain菜单项创建地形 在Scene视图中通过鼠标滚轮调整视距,按住鼠标右键进入观察模式,在该模式下用鼠标调整视角,键盘WASD移动 升降地形工具 选中地形工具栏中的第一栏Raise/Lower Terra

Unity 3D真实地形快速建模视频教程

虚拟场景的建立一般涉及到地形的构建,而基于真实地形下的数字城市/智慧城市建设.房地产建设规划.旅游景区规划设计.园林景观设计.军事仿真演习.防灾减灾仿真演练是当下研究的热点.真实地形建模是工作量大.难度高.资源消耗严重的环节.传统的方法通过点.线.面及细分操作控制或涂刷绘制地形,属于劳动密集型建模,耗时长.效率低.劳动强度大.制作成本也高,对人类技术要求较高,很难做到与实际完全相符. Unity3D是一个跨平台的综合型游戏引擎.越来越多的朋友需要在Unity中构建真实地形,传统方法采用涂刷工具绘

(转 )Unity对Lua的编辑器拓展

转 http://blog.csdn.net/ZhangDi2017/article/details/61203505 当前版本的Unity(截至Unity5.5.x)中TextAsset类不支持后缀为lua的文件,将lua文件导入到项目中后,其会被识别为类型为DefaultAsset的文件,即不被Unity原生支持.此外在编辑器模式下也无法直接创建lua文件,需要在文件夹中手动进行创建.经过一番探索,简单实现了在编辑器中创建lua文件和预览lua文件的功能. 一.在编辑器下创建Lua文件 打开

【Unity】无限地形搭建基础

步骤创建GameObject(命名Mesh Genrate网格生成器),为其添加两个组件Mesh Filter和Mesh Renderer.,创建脚本Mesh Genrate. [1]基础知识 [1]基础知识 (Unity三角形绘制渲染,正反都是顺时针方向:012:132) 原文地址:https://www.cnblogs.com/Mr-QingZi/p/11159330.html

unity小工具 在编辑器面板上显示文件和文件夹的大小

显示效果 代码部分如下: #if UNITY_EDITOR using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine; public static class FileCapacity { private const string REMOVE_STR = "Assets"; private const string FILESIZE = "FileSize&

unity3d 给游戏添加音源 Unity3d adds a sound source to the game

unity3d 给游戏添加音源 Unity3d adds a sound source to the game 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:[email protected] E-mail: 313134555 @qq.com 视频目录及链接: 16 创建游戏工程和游戏场景,添加游戏对象  9:00  17 创建游戏脚本,脚本与对象绑定  5:43  18 游戏发布与运行   | 6:15  19 常用的四种外部资源导入方法  4:10  20 采用包和

unity3D游戏开发三之unity编辑器二

转:http://blog.csdn.net/kuloveyouwei/article/details/23020995 下面我们介绍下GameObject,游戏对象/物体,通过游戏对象我们可以创建游戏对象,如灯光.粒子.模型.GUI等. GameObject菜单 通过Create Other,我们可以创建系统自带的一些游戏对象,具体如下: Particle System:创建粒子系统 Camera:创建摄像机 GUI Text:创建GUI文本 GUI Texture:创建GUI贴图 3D Te

【Unity 3D】学习笔记三十:游戏元素——游戏地形

游戏地形 在游戏的世界中,必然会有非常多丰富多彩的游戏元素融合当中. 它们种类繁多.作用也不大同样.一般对于游戏元素可分为两种:经经常使用.不经经常使用.经常使用的元素是游戏中比較重要的元素.一般须要使用脚本来实现某些特殊功能.比方:玩家控制的主角对象,须要攻击的敌人等. 因此经常使用的元素直接影响游戏的执行,而不常有的元素.比方说游戏里的天空,云朵等.不影响游戏的主线.只提升游戏的总体效果. 创建地形 在3D游戏里,常常会出现起伏的地形. 本文变总结回想下怎样在游戏里创建游戏地形. 首先在导航

关于Unity自带的Terrain编辑器

一.刷草 1.草: 所谓的草,其实就是一张图片,竖着放在地上. 按住Shift键加左键点击,可以清空图片. 左键点击,可以把草地的图片添加到地形上. 另外:想看到你添加的草,必须要使相机非常靠近地面才可以!否则看不见. 2.选中状态下,就可以刷草了! 3.重中之重! 破解版的Unity,刷地形,可能会出问题! 二.刷树木: 1.选中第五个 2.添加植物的prefab 模型: 3.添加树 4. 5.放大看,好看 6.点击,就可以添加了 三.添加地形贴图: 1.第四个 2.双击一张图片 3.Appl