RhinoFreak 发表于 2022-12-9 10:46

unity3D 开发虚拟展厅开发流程

2.1 Unity3D平台

虚拟展厅的Unity3D是一款跨平台的游戏开发引擎,同样也非常适合开发虚拟现实这样的严肃游戏。
Unity最大的优势在于可以同时将自己的产品发布至几乎所有主流平台,大大降低了开发成本,
真正的“一次开发,部署至所有平台”。Unity3D支持主流脚本语言,其中包括 C#、JavaScript 等。
同时Unity3D还有各种相关的开发插件,为开发提供强有力的支持,缩短开发时间。
2.2 绿色货运虚拟展厅开发流程

虚拟展厅采用了基于3dsMax+Unity3D的开发方式,具体开发思路和流程根据虚拟展厅需要实现的功能和效果,本系统主要采用 3ds Max 进行前期展厅的设计与制作,包括展厅中展示的产品模型。利用 Photoshop 等图像处理软件进行贴图的制作。在 3ds Max中制作相关交互动画,
将相关资源导入到Unity3D中,进行功能脚本的设计,编写交互代码,添加UI控件。最后将系统通过Unity3D发布至页面版和手机端。
2.3 虚拟展厅的设计以及展厅模型的制作

科技虚拟展厅的设计主要围绕绿色货运这个主题,色调和风格主要突出节能环保、低碳交通的一些理念,展示元素也主要选择跟运输、货运、绿色相关的一些形态。
虚拟展厅的模型采用多边形建模技术,对虚拟展厅中的墙体、展架、展示产品进行三维建模。模型制作完毕后,还需要对其进行UV的划分,指定好 UV 通道编号,设置灯光。没有灯光,场景缺乏真实感,互动体验大打折扣。Unity3D中自带了几种光源类型,如果采用Unity3D中的实时灯光,对系统资源的消耗会非常大。
因此,一般采用贴图加灯光贴图来进行制作,这样能大大加快系统运行效率。灯光贴图就是将满意的光照信息保存在一张贴图上,模拟物体接受到光照的效果。该系统中,对场景中大部分模型进行灯光贴图的烘焙,将灯光贴图保存在UV通道2上。
2.4 Unity3D中虚拟展厅功能的实现

虚拟展厅科技将3ds Max中制作的模型、灯光贴图等资源导入到Unity3D中,然后添加相应的操作交互脚本,来控制游戏对象在虚拟展厅中进行交互浏览。这里实现的功能,包括自由行走浏览方式、自动漫游方式以及两种模式的切换,虚拟展厅视频播放功能实现。还包括整个系统的UI控制部分。
2.5 虚拟展厅最后的发布

虚拟展厅科技的整个系统功能完成,测试没有问题之后,即可采用Unity3D的发布功能,将整个展厅进行打包发,选择对应平台进行发布。在发布至网页版和手机版本时,由于手机上操作方式跟网页版存在一定差异,所以部分交互的脚本需要进行一定的修改和调整。
3 关键技术

3.1 场景资源优化技术Unity3D虽然拥有简单几何体,但是并不具备完善的模型编辑功能。在利用3ds Max进行场景模型的制作过程中,遵循“不见不建”,将看不见的模型删除。墙体、展架均采用单面建模方式,减少多边形的使用数量。
对于圆弧、曲线结构,将分段进行调整,在满足视觉效果前提下减少分段数量。相同的结构,不重复进行制作,只制作一份,然后在导入Unity3D之后转化为Prefabs来进行使用,从而减少模型使用数量。灯光贴图的烘焙可以使用Unity3D中的灯光烘焙系统,也可以使用外部渲染器烘焙后导入使用第一种方式,在Unity3D中的烘焙效果并不是非常细腻,而且烘焙设置的参数越高,速度会非常慢,需要耗费大量时间。本系统采用的是Vray渲染器来
进行灯光贴图的烘焙,灯光的设置和参数的调整均在3ds Max中来完成,对于烘焙效果的调整自由度非常高,烘焙质量和速度都比较理想。
3.2 交互设计以及界面设计

交互设计是整个虚拟展厅的关键部分,本系统需要实现自由行走浏览和自动浏览两种浏览方式,以及两种方式之间的切换。在Unity3D系统中已经预设了第一人称和第三人称角色控制系统,可以在不写一行代码的前提下,就能实现角色行走控制,包括前进、后退、左行、右行、跳跃等交互行。
对于自由行走方式,采用了 Unity3D 自带的第一人称视角角色控制器来实现,而自动漫游系统则采用了路径动画,将另外一台摄影机绑定到路径动画游戏物体上,让摄影机随着动画物体一起运动,使用一个脚本来控制是否激活其中一个摄影机,这样便能完成两种浏览方式的切换。
虚拟展厅的UI控制系统可以通过两种方式来完成,第一就是采用 Unity3D 自带的 UI 系统。由于自带的UI系统使用起来不直观,相关功能还需要从头开始来写,效率并不是很高。第二种方式就是采用Unity3D的UI插件NGUI,这是使用非常广泛的一款UI插件,编辑效果非常直,
而且有一些控制功能已经提供,非常方便,可以节省大量开发时间。
3.3 碰撞检测技术

碰撞检测是用户在虚拟展厅中行走时,碰到地面、墙壁、展架、展示产品时做出的反应,因为角色
不可能穿过地面、墙面等物体,否则,交互的体验感会下降。在Unity3D中,碰撞的检测非常容易实现,因为Unity3D已经为我们提供了多种碰撞器,包括BoxCollider、SphereColliderCapsuleCo-lliderMeshCollider 等。根据物体的相应形状,选择合适的碰撞器,便能够实现碰撞的检测。
3.4 最终虚拟展厅效果

虚拟展厅科技基于Unity3D的虚拟展厅系统,最终发布成了网页版和手机版的产品,能在两个平台上流畅运行。
我们大力开拓数字展馆技术,形成了实体展馆、网络展厅、移动终端展厅,博物馆、科技馆、城市规划馆、文化馆齐头并进的互动多媒体展厅建设新标准,在内容更加注重创意价值需要,用艺术的理念、创意的数字内容、创意的数字展示技术,精彩呈现项目的过去、现在和未来,有效传达项目的核心价值,超越客户的想象
页: [1]
查看完整版本: unity3D 开发虚拟展厅开发流程