《虚拟现实技术》实验12指导书创建游戏环境.docx
- 文档编号:13281918
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:19
- 大小:2.67MB
《虚拟现实技术》实验12指导书创建游戏环境.docx
《《虚拟现实技术》实验12指导书创建游戏环境.docx》由会员分享,可在线阅读,更多相关《《虚拟现实技术》实验12指导书创建游戏环境.docx(19页珍藏版)》请在冰点文库上搜索。
《虚拟现实技术》实验12指导书创建游戏环境
实验1-2创建游戏环境
一、实验目的:
学会使用Unity的地形编辑器。
二、实验内容:
使用Unity自带的地形编辑器工具构建一个小岛——太阳、海水、天空。
三、实验步骤:
1.创建新工程。
打开Unity,选择File|NewProject创建新工程,选择好你自己的文件存放路径(注意:
不要在路径里包含中文,Unity不支持中文路径),然后按照下图在导入包复选框中勾选相应选项,点击Create完成创建。
2.了解地形工具。
在层次面板点击Create|Terrain,创建地形。
然后按下键盘上的F键,聚焦我们刚才创建好的地形。
这时候检视面板中就会出现如下Terrain组件:
下面我们依次来看看Terrain(Script)面板中的几个主要工具的功能。
①提升工具(Raise/LowerTerrain)
使用这个工具在地形上绘制可以提升地形的高度,你还可以预先设定笔刷大小(BrushSize)、不透明度(Opacity)。
按住Shift键绘制则会起到降低地形高度的效果。
②绘制高度(Paintheight)
这个工具的使用方法和提升工具差不多,只不过在Settings选项栏中多了一个绘制高度(Height)的额外设置,这意味着你可以设置特定的绘制高度。
也就是说,你可以让地形提升到一个特定高度,然后即便你继续绘制,地形也不会再升高。
我们可以用这个工具来创建一些平原。
③平滑高度(SmoothHeight)
通常我们把这个工具和绘制高度的工具配合使用,它允许你柔化地形边缘。
④绘制纹理(PaintTexture)
绘制纹理是一个用来刷纹理的工具,通俗的说就是绘制地表。
我们可以加载我们需要的任何纹理进行绘制,来得到我们想要的地表。
⑤植树(PlaceTree)
使用这个工具,我们可以通过用鼠标点击粉刷,在地形上绘制树木。
在Settings面板中我们可以调整以下参数:
◆BrushSize(笔刷大小):
每次点击时,种植树木的数量。
◆TreeDensity(树的密度):
种植树木之间的距离。
◆ColorVariation(颜色的多样性):
绘制树时产生随机颜色。
◆TreeWidth/Height(树的宽度/高度):
所使用树木的大小。
◆TreeWidth/HeightVariation(树高/树宽的多样性):
产生随机大小的树木,从而创造更加真实的森林场景。
你也可以使用Shift键来移除绘制的树木。
⑥绘制细节(PaintDetails)
这个工具的使用方法和植树工具相似,它被用来绘制细节部分的物体,如花、草、岩石和其他植物。
⑦地形设置(TerrainSettings)
在这个工具中我们可以对地形进行许多设置,具体我们会在接下来的实验步骤中部分讲解。
3.创建小岛——太阳、海水、天空。
①设置地形
首先,在层次面板中选中Terrain对象,然后在检视面板中选择地形设置工具(TerrainSettings),在Resolution面板中修改地形的长、宽、高参数,其它设置保持默认不变。
接下来,选择绘制高度工具,点击其中的Height选项栏,然后输入30,按回车键确认。
最后,点击Flatten应用修改。
(我们输入30,意味着我们绘制的最大高度是30,当地形高度小于30时,绘制操作使地形上升至30,而当地形高度大于30时,绘制操作便会使地形降低至30;而点击Flatten,便可使得全部地形都变化到30高度水平,也就是说我们使地形整体从创建初始的0升到了30。
)
②勾勒小岛轮廓
在检视面板中选择地形编辑器的第一个工具,也就是提升工具。
选择第一个笔刷,设置BrushSize(笔刷大小)为100,设置Opacity(不透明度)为75。
在场景视图的右上角点击场景手柄工具的y轴(绿色圆锥体),将视图角度改成俯视。
使用Shift键和笔刷在地形边缘粉刷,降低边缘地形高度,直到地形不再下降(高度为0)。
同学们创建的地形不必和上图一模一样。
接下来,在场景视图中单击鼠标右键拖拽回到透视图,继续使用提升工具为地形创造更多的细节,之后我们用平滑高度工具在地形边缘粉刷,使得尖利的边缘变得平滑。
但记住在地形的左下角保留一块平地,我们将在此创建火山。
③火山
现在,我们开始创建火山。
为了创建火山,我们将联合使用提升工具、绘制高度工具和平滑高度工具。
首先,选择绘制高度工具。
选择第一个笔刷,然后把笔刷大小设置为75,不透明度设置为50,Height设为100(YG:
第一个笔刷好像没有height这个变量,第二个笔刷才有)。
点击场景手柄工具选择俯视视角,然后在地形左下角创建一片高原。
记住,这个工具在地形高度达到100以后就会停止作用,这是因为我们在之前的设置中把高度设为了100。
操作完成后,你的小岛应该和下图类似。
接下来,我们继续来创建火山口。
选择绘制高度工具,把Height设置为20,BrushSize设置为30,Opacity设为60,仍旧在俯视图中进行绘制操作。
按住鼠标左键,从高原中心向外粉刷,直至在高原中心形成一个向下塌陷的空洞,如下图所示。
转回透视图,我们发现火山口的边缘过于尖锐,看起来不自然。
这时,我们就要使用平滑高度工具了。
选择该工具,把BrushSize设为30,Opacity设为100。
然后在火山口部分和山脊部分粉刷,直到他们边缘变得很平滑,如下图所示。
④添加纹理
在铺设纹理时,有一点特别重要:
就是你添加的第一种纹理,会自动地作用在整片地形上。
当你意识到这一点,你要确保你添加到检视面板的第一种纹理是我们地形的主要纹理。
此外,我们在创建游戏工程的时候,导入了地形资源包(TerrainAssets),这个资源包中就有我们所要的地形纹理,下面我们把这些纹理加入到检视面板中。
点击检视面板中Terrain选项栏中的EditTexture(编辑纹理)按钮,在弹出菜单中选择AddTextures(添加纹理),我们把我们需要的4种纹理添加到检视面板中。
当你点击AddTextures时,将会弹出一个对话框,选择Texture栏中的Select按钮打开纹理选择窗口,在该窗口的众多选项中选择Grass(Hill),并且保持Size和Offset的默认值,因为纹理将被应用到整个地形上,小的数值让小草的纹理更加细致,然后点击Add确定导入。
重复上面的步骤,把其它三种纹理Grass&Rock、GoodDirt、Cliff(LayeredRock)添加到检视面板中。
注意其中Cliff(LayeredRock)纹理的Size的x、y属性全都改为70,其它的纹理则保持默认值。
而接下来的纹理,就需要我们手动粉刷。
现在,你应该已经把纹理都添加到了检视面板中。
首先,确保每个纹理的参数设置与上面所说相符,然后选择GoodDirt纹理。
把它的BrushSize设为60,Opacity设为50,TargetStrength(目标强度)设为1。
然后使用它在小岛地形的外部进行粉刷。
粉刷完毕后,你将得到类似于下图的结果。
(YG:
Opacity是[0,100],表示的是一个百分量,表明当前纹理与原有纹理混合时的百分权重;而Targetstrength是[0,1],表示当前纹理混合时的强度。
我理解在计算时Opacity与targetstrength会相乘。
)
如果在粉刷过程中失误了,你可以在Edit|Undo撤销到上一步。
你也可以把鼠标定位在场景视图窗口,然后按下Space(空格)键最大化当前窗口,以方便绘制。
接着,我们在检视面板中选择Grass&Rock纹理。
把笔刷大小设置为25,不透明度设置为30,目标强度设置为0.5。
现在,你可以对小岛的凸起丘陵地带和火山上半部分进行粉刷。
完成后,你应该得到如下效果。
为了让我们的火山更加真实,我们对它使用Cliff(LayeredRock)纹理。
在检视面板中选中它,把笔刷大小设为20,不透明度设为100,目标强度设为1。
在火山整个内部和外围上半部分进行粉刷,你粉刷外围的时候,随着高度的下降,缓慢减小笔刷大小和不透明度,这样可以使得整个火山外表看起来更加精细,而且有一个渐变的过程。
(YG:
注意,笔刷大小与纹理的精细尺度其实没有关系)当不透明度处于较低水平时,你也可以对地形中的丘陵地带进行粉刷,完成后,将得到类似于下图的效果。
⑤树木
现在我们有了一个铺设好纹理的小岛,接下来我们来绘制一些树木来装点它。
在地形编辑器工具栏中选择植树(Placetrees)工具,然后点击EditTrees按钮,在弹出菜单中选择AddTree。
接着会弹出AddTree对话框,点击Tree设置最右边的圆形按钮,在弹出的菜单中选择Palm(棕榈树),并且把BendFactor(弯曲系数)设为2,弯曲系数允许我们控制树木是否能在风中摇曳,这需要消耗很大电脑运算能力,如果你的电脑表现很吃力,你应该把它调回0。
最后点击Add完成添加。
(YG:
如果设为0,树确实就一动不动了)
这时,棕榈树已经被添加到了检视面板中。
你可以看到它的缩略图有蓝色边框,说明它出于选中状态,接下来按下图设置我们植树的相关参数。
在小岛沿岸地带通过点击鼠标放置树木,为了使环境更为自然,在小岛内部也植上一些树。
记住,当你把树木放错地方时,你可以选择撤销绘制;同时,还可以按住Shift键,移除绘制好的树。
⑥太阳
在层次面板点击Create按钮,选择DirectionalLight(平行光),这时我们场景中便有了一盏平行光。
平行光是从一个方向照射到另一个方向,只有投射的光线才能被看到。
由于我们在本实验中要用它来模拟太阳,因此我们要对它使用镜头光晕特效。
在检视面板中调节DirectionalLight的位置为(0,250,-200),为了让它更好地照射在小岛地形上,我们把绕X旋转设为30,设置光强(Intensity)为0.8。
下一步,为了模拟太阳,我们将使光源变得可见。
要做到这一点,我们将使用镜头光晕特效。
在Unity顶部菜单选择Assets|ImportPackage|LightFlares导入资源包,在弹出菜单中选择Import完成导入。
然后在层次面板中选择DirectionalLight,在检视面板点击光源组件的Flare设置右边的圆形选择按钮,在弹出的对话框中双击选择Sun,完成操作。
⑦天空盒
在创建3D环境时,我们用一个天空盒代表地平线的远方。
一个天空盒是由Cubemap构成的,Cubemap是在一个立方体里面放置的6个纹理,使得它们无缝衔接,作为游戏的天空和地平线。
Cubemap始终存在于3D世界中,跟现实的地平线一样远不可及。
在顶菜单栏中选择Edit|RenderSettings。
这时检视面板中会出现渲染设置面板,在SkyboxMaterial(天空盒材质)选项的右边点击圆形按钮,在弹出的选择材质对话框中选择Sunny2Skybox,这是我们的场景便有了蔚蓝的天空。
哇!
(YG:
注意,skybox并不是作为某个物体的组件来添加的,而是在Edit菜单--Eender中来Settings中来全局性设置的)
⑧海水
我们构建好海滩之后,应该在小岛的四周加入海水了。
Unity免费版中的水其实是把一个动画材质应用在物体表面,从而得到流动的效果。
Water(Basic)Assets资源包为我们提供了2个现成的水材质,在工程面板选择StandardAssets|Water(Basic)|DaylightSimpleWater.prefab,把它拖到我们的场景视图中,修改它的位置(250,4,250)我们把水材质放在了小岛的中心,并把高度调为4,这样就覆盖了我们的海床。
然后我们把它的Scale的X、Z属性增大到1600,从而使得小岛被海水包围。
(YG:
你离近了就能看出水面的动态波澜效果。
不过如果你进入水面一下就会看到原先的地面,没有一个在水体中的那种感觉了。
)
(YG:
注意水是作为一个预制的物体加入的,是一个圆形的片。
)
⑨创建角色
在工程面板中,按下图所示路径选择我们的角色控制器,我们选择FirstPerson(第一人称)控制器。
在场景视图中放大的你场景,我们需要放置我们的角色控制器。
放大场景视图后,从工程面板中把控制器拖入到场景中,由于地形对象自带碰撞器,我们的角色控制器放在了地形的上方,而没有往下掉。
把鼠标移动到场景视图中,按下F键聚焦我们的第一人称控制器,你会发现控制器有一半陷进了地里,这是由于Unity把物体的中心对齐到地形的表面。
解决这个问题很简单,选择变换工具(快捷键W),然后拖动控制器的绿色Y轴手柄,把控制器拽到地表之上就可以了,现在你的控制器便是一个激活的游戏对象了。
由于角色控制器自带相机,现在我们不再需要创建工程时自带的MainCamera了。
在层次面板选中它,delete删除。
感谢它陪伴了我们这么久!
(YG:
用不着删除Maincamera,只要在inspector面板中将其前面的对勾去掉即可)
4.测试我们的游戏场景。
点击Play按钮,现在你可以通过键盘上的W/S/A/D键来实现走动,通过鼠标转动来改变角色行动方向和视角。
当你调整到太阳的方向就可以看到太阳光晕的效果。
当你对测试结果满意时,再次点击Play按钮退出播放模式。
好了,到现在为止我们的小岛地形就全部完成了。
到主菜单中选择File|SaveScene保存场景。
(YG:
要加快速度就修改inspector面板中:
movement---maxforwardspeed;空格是跳跃)
小结:
这一节实验中,我们用Unity自带的地形编辑器创建了一个迷人的小岛,以一块平地作为开端,然后为它添加各种各样的元素,最后完成了一个室外游戏场景的搭建。
(YG:
你可以试试加个第三人称控制器3rdPersonController)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟现实技术 虚拟现实 技术 实验 12 指导书 创建 游戏 环境
![提示](https://static.bingdoc.com/images/bang_tan.gif)