Unity3八篇

2024-07-02

Unity3 篇1

虚拟现实技术能够利用计算机生成真实的环境模拟效果, 使体验者沉浸在虚拟环境中, 同时产生现实用户与虚拟环境的直接交互。虚拟场景在沉浸感、交互性与实时性方面的综合效果优势是传统二维效果图及二维和三维动画技术所无法比拟的。三维数字系统漫游系统, 不仅能通过互联网更直观地展示景点, 还能通过人机交互产生身临其境的感觉, 对景区今后的规划与设计具有重要的现实意义。

1 基本介绍

Unity 3D是由丹麦Unity Technologies公司开发的多平台游戏开发引擎, 是一个全面整合的专业游戏制作工具。它的最大特性就是出色的跨平台性。

对游戏或是虚拟现实开发感兴趣的人们来说, 学习编程语言, 比如C++或是掌握如何使用工业标准级别的游戏引擎是一件极其艰巨的任务, 没有系统而完整地学习编程或是计算机动画制作, 是很难理解游戏或是虚拟现实技术的概念、方法、设计原则的, 但是Unity 3D引擎改变了这一现状。Unity 3D整合了丰富的开发资源, 包括:地形创建工具、物理引擎、粒子系统、常用脚本、灯光渲染组件、碰撞检测组件、设置图像画面的后处理方法等, 并且Unity 3D提供了一个庞大的类库:Mono Behavior, 在这个类库中已经为开发人员定义好了各种方法, 可以方便地调用这些方法进行功能的开发。本景点漫游系统采用Unity 3D作为虚拟现实的开发平台, 大大降低了难度, 提高了制作效率。

2 开发前期设计

2.1 景点漫游需要达到的效果

(1) 实现网络浏览, 单个浏览文件不能太大, 要保证大多数普通计算机用户可正常访问;

(2) 在虚拟场景中按比例真实还原实体景点, 所有重要的场景要尽量真实表现出来;

(3) 提供比较人性化的GUI界面便于用户操作, 比如“帮助导航”用来给用户提示信息;

(4) 供用户浏览模式的选择, 包括自定义漫游路径、通过输入设备手动漫游;

(5) 设置导航图方便用户了解景点的整体布局情况;

(6) 配备背景音乐播放, 并可以由用户自行设置关闭或打开;

(7) 设置有与景点网站链接。

2.2 景点场景要求

(1) 烘焙贴图, 烘焙完之后删掉灯光, 光线效果直接在物体模型上, 但没有实时光线变化。

(2) 灯光的逐像素光照, 可以改成逐顶点光照。顶点灯光可以让所有的物体在每一帧被渲染一次, 像素灯光只能让每一个被灯光照射到的物体在每一帧渲染一次, 在漫游场景中通过顶点灯渲染整个画面, 从而即使是配置低的计算机也同样可以顺畅运行该系统。

(3) 三维模型的面数渲染越多, 就会消耗越多的系统资源, 将景点漫游用户看不到的面删除, 同时对于合并的物体使用同一种材质从而加快渲染的速度。

(4) 除模型优化外, 在贴图上除了要注意尽量真实, 还应注意贴图文件不要过大, 避免影响系统运行速度。

2.3 开发流程

开发流程如图一所示。

3 景点漫游制作过程

3.1 获取景点信息

景点漫游系统来源于真实的旅游景点, 因此获得真实景点中的空间数据信息最关键。将获得的信息通过平面、三维等软件进行后期处理, 即可得到构建景点漫游系统所需的空间数据。

(1) 对景点进行拍照测量, 制作平面CAD图像, 为后期的建模工作提供基础;

(2) 仔细研究景点地形地貌, 建筑物景点会简单些, 自然景点进行场景计算机重绘更难, 花费更多工作时间;

(3) 用相机拍摄校园整个建筑, 并在图像处理软件中制作贴图, 最终应用于模型中。

3.2 模型构建

模型构建包括地形、建筑物以及环境, 地形和建筑在有了具体的地形数据和建筑物数据之后, 可以在3DS Max等三维软件中根据景点信息数据进行构建, 环境部分主要包括天空、树木和花草, 这些在Unity 3D中有自带的多种模型可以选择, 也可以通过软件制作 (如:制作树木可以用speedtree) , 在高版本的Unity 3D中也自带有树木生成系统。

在模型的构建中需要注意的是多边形模型面数的优化。一个景点漫游系统模型是具有很多个三角面的, 对模型充分的优化可以减小最后执行文件的大小, 利于用户快速浏览。

除模型优化外, 在贴图上除了要注意尽量真实, 还应注意贴图文件不要过大, 避免影响系统运行速度。贴图大小要为2的次方, 如:物体贴图为128×128、512×512等。

3.3 漫游系统交互性设计与实现

人机交互技术是通过计算机输入及输出设备, 以有效的方式实现人与计算机相互传递信息的技术。在本系统中主要的人机交互技术包括GUI界面设计和漫游功能设计。用户通过浏览器可以直接打开漫游系统, 并可进入使用界面选择多个漫游模式, 包括自动漫游、手动漫游、地图导航。

用户可以通过GUI进行交互设计, 还可以以第一人称视角通过键盘上的WSAD四个按键在场景中移动, 代码如下:

function Update ()

{

if (Input.Get Key Down ("w") )

transform.position+=Vector3.forward*speed;

if (Input.Get Key Down ("s") )

transform.position-=Vector3.forward*speed;

if (Input.Get Key Down ("a") )

transform.position-=Vector3.right*speed;

if (Input.Get Key Down ("d") )

transform.position+=Vector3.right*speed;

}

配合鼠标随意改变视点角度:

void Start ()

{

if (rigidbody)

rigidbody.freeze Rotation=true;

original Rotation=transform.local Rotation;

}

public static float Clamp Angle (float angle, float min, float max)

{

if (angle<-360F)

angle+=360F;

if (angle>360F)

angle-=360F;

return Mathf.Clamp (angle, min, max) ;

}

如图二所示, 当用户漫游到广场中央的升旗台周围区域时, 用户可以选择点击国旗, 开始升旗, 同时播放国歌, 当国旗升到最高时, 停止升旗, 国歌播放结束, 国歌的播放和升旗的时间可调整。升旗控制脚本如下:

Void Update ()

{

if

(sq&&Tansform.position.y<3)

transform.Translate (0, speed*Time.delta Time, 0) ;

}

3.4 多媒体元素的应用

视频能够融合到景点漫游中, 可以选择景点视频介绍在三维场景中由用户选择播放, 在景点漫游系统中可以加入视频作为全面了解景点的一种形式, Unity 3D支持的视频格式种类包括mov、mpg、、mpeg、mp4、avi等。视频元素要绑定至某个场景对象才能产生作用, 视频一般以平面的形式展现, 所以可以在游戏场景中创建一个平面对象, 然后通过编写脚本的方式控制视频播放, 在脚本中主要用到Movie Texture类, 本例中将场景中的大屏幕与景点的视频介绍完美结合 (如图三所示) , 对于景点漫游系统使用者对整个场景的了解起了很大帮助。

场景中视频播放代码如下:

function Update () {

if (Input.Get Button Down ("Jump") ) {

if (renderer.material.main Texture.is Playing) {

renderer.material.main Texture.Pause () ;

}

else{

renderer.material.main Texture.Play () ;

}

}

}

4 结束语

Unity 3D是跨平台的虚拟现实创作工具, 具有直观的虚拟现实编辑功能, 是一个全面整合的专业引擎。Unity 3D最大的优势是性价比高, 并且可以发布成网页进行浏览, 有些网络浏览器内置有Unity3D播放插件, 用户不需要下载客户端, 就可以直接体验三维漫游交互效果。Unity 3D支持各种脚本语言, 其中包括Java Script、C#等, 兼容各类操作系统, 真正地实现跨平台。Unity 3D在景点漫游系统制作中将得到越来越多的应用。

参考文献

[1]梅柳.基于新媒体技术的湘潭红色文化网络阵地建设[J].长沙铁道学院学报 (社会科学版) , 2012, 13 (01) :5-6.

[2]代君, 张丽芬.三维数字虚拟陈列馆陈列的研究和开发[J].九江学院学报 (自然科学版) , 2012, 27 (01) :33-35, 42.

Unity3 篇2

本文所阐述的智能仪表展示平台是在详细分析了国内外现状后, 提出的一种仪表的智能展示和学习平台。本次设计的三维智能仪表平台将形形色色的仪表搬到了手机上, 并能360°的展示其外部及内部结构。除此以外, 在该平台上还可以智能的显示仪器仪表的使用拼装过程, 让用户可以足不出户的学习到仪表的组装。最后, 我们还将仪表的介绍及参数也融入到该平台上, 这让该平台成为了一个可以随时移动“活字典”。

1 设计思路

本项目主要研究工业生产过程中使用的仪表在手机和PC端上的展示、介绍和组装等功能。仪表主要包括常用的电学仪表。

本项目设计思路如图1所示。

2 具体实施过程

2.1 系统建模

根据照片在3Dmax中构建模型并真实还原。

关于场景建模方法有两种, 一种是利用Unity3D自身所带的功能组件建模, 通常用到地形系统, 而另一种是从外部导入模型, 通过3ds Max软件将模型直接导出为FBX格式文件, 然后再导入到Unity3D中, 被导入的信息包括:物体的空间坐标、名称材质、动画等。

目前已经搭建完成了三种仪器的3D模型, 包括:电烙铁、洛氏硬度计, 分别如图2所示。

2.2 图像处理

对3D模型进行材质指定以、贴图编辑及数据优化。本文综合使用了以下的数据优化方法:

(1) 网格优化;

(2) 材质优化;

(3) 贴图优化;

(4) 脚本优化;

(5) 界面优化;

(6) Atlas优化。

2.3 引擎编辑

导入3D模型到Unity中, 进行布光、材质编辑、动画设置

2.4 产品发布

通过Unity打包3D场景, 发布到Windows平台和Android移动端 (图3和图4所示) , 移动端的展示如图5所示。

摘要:本文旨在设计一款能在电脑或手机上使用的, 可进行仪器仪表造型还原、人机交互、特性展示等功能的智能仪表展示平台。具体设计分为系统建模、图像处理、引擎编辑和产品发布这四个部分。通过这四个部分的构建, 可在PC段和手机端实时观看仪器仪表的组装、拆分、特性参数等内容。

关键词:仪器仪表,unity,3D,手机,PC,组装拆分

参考文献

[1]吕萌萌, 郭新宇, 陆声链, 吴建伟.基于Unity 3D果树交互虚拟修剪技术及其实现[J].农机化研究, 2015 (04) .

[2]梁惠娥, 张守用.虚拟三维服装展示技术的现状与发展趋势[J].纺织导报, 2015 (03) .

[3]王磊, 高珏, 金野, 许华虎.基于Web3D无插件的三维模型展示的研究[J].计算机技术与发展, 2015 (04) .

Unity3 篇3

关键词: Unity3D;大棚西瓜;虚拟现实技术

中图分类号: S126 文献标志码: A

文章编号:1002-1302(2015)08-0416-03

虚拟现实技术别称灵境技术,为用户提供视觉、听觉、触觉等感官模拟,让用户沉浸在计算机生成的三维虚拟世界中,确保用户可以及时、无限制地通过语言、手势等方式与三维空间内的事物进行实时交互 [1]。虚拟现实技术最初应用于军事、航空航天领域,近年来已经广泛应用于工业、建筑设计、文化娱乐、教育培训等领域。西瓜属葫芦科,原产于非洲,喜温耐热,1年生蔓性草本植物,在我国栽培历史悠久 [2]。我国是世界上最大的西瓜生产国,同时也是西瓜消费大国。近年来,随着人们生活水平的提高,水果在我国居民食物消费中所占的比例明显增加,西瓜作为重要的鲜食水果,消费需求持续快速增长 [3]。我国西瓜种植面积日益扩大,尤其是在一些城市的近郊,西瓜成为促进农民增收的主要经济作物。西瓜种植技术培训课程也在各农林高校、职业院校以及农业技能推广站广泛开展。传统的西瓜种植培训主要采用教科书、上课板书、视频等方式,主要存在以下缺点:(1)传统教育培训采用教师口头授课或多媒体授课,机械式灌输教学内容,讲解形式枯燥;(2)学员须在同一地点集中接受同样内容的培训,教学缺乏灵活性;(3)在传统教学过程中,西瓜种植生长过程涉及到的农事耕作、苗床铺设、大棚开沟、接穗及砧木种子的挑选、消毒、播种等多个实践环节费时费力且成本较高。综上所述,传统的培训模式在人力、物力、互动性等方面的缺陷在一定程度上限制了西瓜种植技术的传播。本研究基于Unity3D开发平台,以西瓜春大棚技术规程为对象,设计了1款寓教于乐的西瓜实训系统,该系统综合了计算机动画、虚拟现实 [4]、人机交互以及网络技术,有效整合了西瓜生长过程管理所涉及的农学知识,为西瓜种植培训提供了虚拟互动电子教科书。

1 春植西瓜大棚实训系统设计

本系统适用于北京市大兴区,所以地理条件、土壤条件、气候条件已经基本确定。本系统根据西瓜实际种植生长时序与虚拟生长时序之间的比例建立时序对应关系,对西瓜生长过程进行模拟。采用任务驱动方式,提高用户的兴趣点、参与度。该系统开始运行之后,弹出完成相应任务的提示信息,任务完成之后,日历动态改变并触发完成下一个任务,既保证了西瓜种植的科学性,又增强用户互动体验效果。图1展示了春植西瓜大棚技术流程,图中标注的时间是系统仿真西瓜生长过程的模拟时间。

2 关键技术

根据西瓜种植技术规程,利用交互式参数化建模方法构建西瓜的三维虚拟模型,结合二三维交互、动画及场景渲染技术,建立了春大棚西瓜种植虚拟实训系统(图2)。

2 1 交互式植物参数化三维建模方法

构建西瓜生长过程中的三维模型是春大棚西瓜种植虚拟过程可视化表达的关键步骤。植物三维建模方法多样,针对不同的建模目的及应用要求,不同的建模方法可取得不同的建模效果。其中,起步较早、影响力较大同时应用较为广泛的建模方法为参数化建模方法,该方法使用一组参数来表示植物主要器官及植株三维形态结构 [5]。通常以交互式的方式实现对参数的动态调整和编辑,以达到修改模型三维形态的目的。从西瓜形态结构上看,西瓜地上部主要由主蔓、侧蔓两部分构成,蔓上着生叶子、花、果实、卷须等器官 [6]。西瓜蔓的横断面近似圆形,有棱角。瓜蔓有节,节上着生叶片或侧蔓。西瓜叶子由叶柄、叶片构成,叶子呈羽状、单片、互生、叶缘深缺刻,叶片表面有蜡质、绒毛。本研究采用交互式参数化建模方法,首先使用Immersion G2LX三维数字化仪采集田间西瓜三维形态结构数据,构建西瓜三维模型,通过定义叶脉曲线、叶片边缘实现叶片特征的虚拟建模。最后按照典型西瓜的株型结构生成西瓜植株模型。创建的西瓜各个时期的生长模型如图3所示,需要将模型转换为fbx格式,然后导入 Unity3D 场景中使用。

2 2 鼠标拾取

鼠标拾取指在屏幕上用鼠标点击某个物体时,应用程序能返回该物体的1个标志、某些相关信息 [7]。本研究采用鼠标拾取算法实现用户与虚拟场景中的三维物体交互功能。先给需要进行交互的物体绑定碰撞体mesh collider,然后将鼠标拾取函数脚本绑定给该物体,在脚本中根据物体名进行不同的响应操作。OnMouseDown()、OnMouseOver()、OnMouseEnter()函数分别可以实现鼠标点击、悬浮、进入物体时的响应操作。虚拟场景中砧木和接穗种子在石台上晒种时,通过鼠标悬浮响应函数实现将瘪小、破损、虫蛀、发霉的种子剔除的功能。在西瓜伸蔓期,对植株进行修剪时采用二三维交互相结合的方式,点击二维剪刀图片,鼠标光标变换为剪刀,触碰到西瓜植株待修剪部分时,使用Tween Position实现待修剪部分下落到地面的动画,从而完成植株的修剪操作。图4展示了伸蔓期西瓜植株修剪过程。

采用鼠标拾取实现三维物体的拖动,算法基本思想为:首先将物体的世界坐标系转化为屏幕坐标系,z轴不变。由于鼠标的坐标系是二维的,需要转化成三维的世界坐标系,然后计算鼠标位置与物体的距离。当按下鼠标左键时,获取当前鼠标的二维坐标系位置并转化成三维坐标位置,再加上鼠标的移动量得到物体应该的移动量并赋给物体的transform的position属性,实现鼠标拖拽三维物体的交互功能。例如,文中在配制营养土时鼠标点击草炭,拖拽到沙壤土中。通过距离碰撞检测 [8],当距离小于既定阈值时,草炭消失,使用NGUI插件的TweenColor进行颜色渐变,实现营养土配制混合效果。[ (W10][TPJYN4 tif]

nlc202309041716

2 3 粒子系统

粒子系统采用有“生命”的微小粒子单元来模拟现实世界中的不规则物体,尤其是一些模糊、易扩散的物体,如火、烟等 [9]。通过许多小粒子的组合,模拟出不规则物体的运动形态,然后渲染显示。粒子系统中的每个小粒子都有很多属性,如大小、颜色、形状、透明度等。具体每个小粒子的属性则由该粒子系统具体模拟的物体决定。粒子系统是动态的,系统中的每个小粒子的生命周期都是从“产生”到“活动”再到“消亡”。随着时间的推移,新粒子逐渐加入到系统中,“存活”的粒子不断变化,旧的粒子逐渐死亡,从而实现粒子系统的模拟效果。本研究采用Unity3D自带的粒子系统实现砧木、接穗种子浸种时水龙头的流水动画。配制基肥时磷酸二铵、尿素、硫酸钾等撒到农家肥上的动画,大棚熏棚时点燃烟剂后的冒烟效果以及西瓜开花期喷施的叶面肥,都是通过调整粒子系统的相应参数实现其逼真的可视化表达。图5展示了部分粒子系统实现的效果。

2 4 视频播放

用户在互动体验过程中,若是根据系统中的简单提示信息不能完成任务或者想更加系统详细地了解西瓜种植流程,可以在场景任意漫游的同时观看视频课件,既能够娱乐放松,又能系统学习。Unity3D的视频文件通过Apple QuickTime导入,支持的文件类型是QuickTime。在Windows操作系统下导入视频需要安装QuickTime播放器。将视频资源导入到 Unity3D 场景中,建立音频源AudioSource、影片纹理 MovieTexture,影片纹理是从1个视频文件中创建的动画纹理,放置1个视频文件在项目的Asset文件夹中,可以导入要使用的视频,音频源在场景中播放音频剪辑AudioClip。使用C#脚本控制视频的播放暂停,图6是Unity3D场景中人工授粉视频截图。

2 5 模型动态实例化

西瓜植株生长过程中要经历定植期、伸蔓期、开花期、结果期、成熟期等过程,若是在场景中手动摆放模型,不仅耗时费力,而且资源占用空间大。通过对Unity实例化相关知识进行研究,本研究采用模型实例化算法解决上述问题。通过脚本动态实例化所需模型,并设置实例化的西瓜植株的行数、列数、行间距、列间距等信息,为不同时期的西瓜植株命名,然后通过动态查找物体名的方法销毁之前实例化的模型,再实例化新的模型。图7为采用C#脚本动态实例化的西瓜植株。

3 结论

本研究依据春植西瓜大棚技术规程,建立不同生长时期

的西瓜植株模型,对西瓜种植进行虚拟现实表达,构建了简单方便、开发成本低的春植西瓜大棚实训系统。该系统具备一定程度的真实感、沉浸感以及交互性,提高了用户的学习兴趣和互动体验度。在后续工作中,拟实现功能更加完善、人机交互界面更加友好的春植西瓜大棚实训系统。为了进一步增强用户体验的真实感和交互性,可以采用数据手套逼真模拟虚拟场景中物体的抓取、移动、旋转等动作,利用头盔显示器等3DVR图形显示与观察设备提高用户的沉浸感,使用户能更加真实而自然地与场景中三维物体进行交互。

参考文献:

[1] 朱 柱 基于Unity3D的虚拟实验系统设计与应用研究[D] 武汉:华中师范大学,2012

[2]孙 胜,田永生,冷丹丹,等 不同砧木对嫁接西瓜经济产量及叶片矿质营养含量的影响[J] 植物营养与肥料学报,2010,16(1):179-184

[3]赵 姜,张 琳,王志丹,等 我国居民西瓜消费特征及影响因素分析[J] 中国蔬菜,2013(6):17-23

[4]石教英 虚拟现实基础及应用算法[M] 北京:科学出版社,2002

[5]Xiao B X,Guo X Y,Du X H,et al An interactive digital design system for corn modeling[J] Mathematical and Computer Modelling,2010,51(11/12):1383-1389

[6]赵春江,陆声链,郭新宇,等 西瓜三维形态几何建模和真实感绘制技术研究[J] 中国农业科学,2008,41(12):4155-4163

[7]Kenneth C 游戏开发大全[M] 北京:清华大学出版社,2005

[8]宣雨松 Unity3D游戏开发[M] 北京:人民邮电出版社,2012

[9]蔡 翊 基于Unity3D的金丝峡地质公园虚拟旅游系统的研究与实现[D] 西安:西安科技大学,2012

Unity3D学习总结 篇4

我经过思考之后加入了我Unity3D培训班(狗刨学习网),因为我发现现在手机游戏迅速崛起,占据了国内很大的市场,因为手机人人都有,人们在坐公交,坐地铁,坐火车等交通工具时都会玩手机,甚至有些人在走路时都会玩,我参加了Unity3D培训班之后才发现,培训班远远比学校好多了,在这里你不会老师会问你那里不会,然后再教给你,不像学校老师就是为了拿工资给你上课,你不去,记你一个旷课也不会对你说什么,在这里还有大家可以讨论问题。

早上九点开始上课期间也有一些休息时间,可是几乎没有人乱走动,都是坐在自己的位置依旧学习,一直到晚上10点以后甚至到12点以后,大家都在拼命的学习,因为大家都知道了这是我们最后的机会,我们已经可以说是一只脚踏出了悬崖,如果我们还不能好好学习的话我们就会掉下悬崖,万劫不复,所以大家都在拼命的学习,只为了将来出人头地,不至于像大学那样上完以后碌碌无为。

Unity3 篇5

实时排名是竞速游戏中非常重要的一个模块, 可大大提高玩家的刺激感、成就感和持久兴趣。尽管实时排名在竞速游戏中的应用已非常普遍, 但迄今为止, 笔者仍未在国内文献中发现相关的文字描述和理论研究。

笔者在使用Unity3D开发一款竞速类游戏时, 需要在比赛过程中对玩家角色实时排名, 由于缺乏一个统一的标准对不同玩家角色的比赛情况进行实时的记录和比较, 而赛道的多样性和地形的复杂性进一步加深了这一标准的制定难度。因此, 该模块的制作一直成为制约项目开发进程的瓶颈。

一次偶然的机会, 笔者在观看某届奥运会百米飞人大赛时观察到, 沿着跑道边缘有一条专供摄像机运动的轨道。比赛过程中, 摄像机沿着轨道跟随跑在前端的运动员实时拍摄, 这对比赛排名的最终判定起到了关键作用。

推而广之, 如果能为比赛中的每一位运动员都配置一台实时跟随的摄像机, 所有的摄像机都沿着同一条轨道运行, 那么在不同跑道上的运动员的运动就可以映射为同一条轨道上对应的摄像机的运动。

同样, 在竞速游戏中, 如果能为每位玩家角色配置一个追踪对象, 同时制定一条沿着赛道的标准路径, 将游戏过程中所有玩家角色的运动全部映射到这条标准路径上, 那么就可望解决游戏中的实时排名问题。

当然, 为了实现这一设想, 还必须首先选定一款功能强大的游戏开发引擎作为开发工具, 然后选择合适的样条曲线来完成标准赛路径的制定, 同时选择合适的碰撞检测方法以实现玩家角色与追踪对象的前后位置判定, 最后通过能定量计算玩家比赛进度的数学模型来实现实时排名算法的最终设计。

一、游戏开发工具的简介

Unity3D是Unity Technologies公司开发的一套包含图形、声音、物理等功能的游戏引擎。它提供了强大的关卡编辑器, 支持大部分主流3D软件格式, 使用C# 或Java Script等高级语言实现脚本功能, 开发者无需了解底层复杂的技术, 就能够快速地开发具有高性能、高品质的游戏产品。

Unity3D最突出的特点是它的跨平台性[1,2,3,4], 它支持的平台包括PC、MAC、Linux、Web、i OS、Android、Xbox360、Play Station3等大部分主流游戏平台, 还可以将游戏直接导出为Flash格式放到网页上。开发者可以在PC平台开发测试后, 只做很少的改动, 即可将游戏移植到其他平台。

经过不断的完善, Unity3D已经成为一个成熟的游戏引擎, 不仅在游戏领域, 而且在教育、医疗、交通等领域的应用也越来越广泛[5,6,7,8]。

本游戏项目的开发正是基于这种当前最流行的Unity3D游戏引擎。它在本文中的应用主要分为三个模块:路径拟合、追踪对象与玩家角色前后相对位置判定和实时机制的设计。

二、基于Catmull_Rom样条曲线的路径拟合

样条曲线[9,10]是指给定一组控制点而得到一条曲线, 曲线大致形状由这些点予以控制, 一般可分为插值样条和逼近样条两种。插值样条通常用于数字化绘图或动画设计, 逼近样条一般用于构造物体表面。由于赛道的多样性和不规则性, 对拟合路径的限制很高, 因此该游戏最终选择插值类型的样条曲线。

同样由于游戏中赛道的多样性和不规则性, 考虑到二次曲线模型通常只能表示存在一个拐点的赛道, 而二次曲线在此方面存在很大的局限性, 因此该游戏采用了更为精确的三次曲线来描述赛道。笔者对三次Beta样条曲线、B样条曲线、Bezier曲线和Catmull_Rom样条曲线进行了比较, 结果表明Cat-mull_Rom曲线具有局部性, 并且通过所有控制点, 这在赛道拟合上具有一定的优势。因此本文选择插值类型的三次Cat-mull_Rom样条曲线[11,12,13]来拟合标准赛道路径。

2.1 Catmull_Rom样条曲线

Catmull_Rom样条函数是从三次曲线方程演变而来的。当已知两点P0、P1和这两点的切线斜率P′0、P′1, 即可确定一条通过这两点的三次曲线:

这两点的位置和斜率分别为:

由上式可得:

推广到一般情况, 对于N个点P0, P1, P2, …, PN-1, 只要给定每个点的切线斜率就可以确定一条经过所有点的曲线。由于某一点的斜率是未知的, 通常用其前后两点连线的斜率来近似代替, 所以该曲线的每个分段有四个控制点。设P为第i个分段上的点, 该段曲线的四个控制点分别命名为Pi-1、Pi、Pi+1、Pi+2, 则有:

由此可得Catmull_Rom样条函数:

该函数的模拟演示图如图1 所示:

2.2 Catmull_Rom样条曲线控制点

设P0, P1, P2, …, Pn为拟合路径的控制点, 其中P0, Pn为首尾控制点, 则一般有:

而其间的控制点P1到Pn-1为赛道上关键位置设置的路点。

考虑到玩家角色在游戏中的比赛圈数不止一圈, 为保持拟合路径在游戏全程的连贯性, 笔者将拟合路径设计为一条封闭的曲线。

由分析可知, Catmull_Rom样条曲线不通过首尾两个控制点, 因此P1和Pn-1是相同的。为保证在P1 (或Pn-1) 处曲线斜率的连续性, 需要对首尾控制点重新设置:

下图2 为拟合路径的模拟图:

三、基于实时碰撞检测的前后位置判别

碰撞检测用于判定一对或多对物体在给定时间域内的同一时刻是否占有相同区域。它是游戏、虚拟现实、机器人运动规划等领域一个不可回避的问题。

随着计算机硬件, 互联网技术的日趋成熟, 以及虚拟现实和动画仿真的快速发展, 人们对游戏的交互性和真实性提出的要求也越来越高, 碰撞检测作为其中最关键的技术之一, 其实时性[15,16,17]和真实性一度成为研究热点。经过二十多年不断研究, 已最终形成了一些比较通用和成熟的算法。主要分为三类:模型之间的碰撞检测、预测将要发生的碰撞和动态获取模型之间的距离。相应的, Unity3d的碰撞检测[18]方法也有三种:基本碰撞检测, 触发器碰撞检测和射线碰撞。

3.1 基于射线碰撞检测的选定和实现

基本碰撞检测要求碰撞对象之间必须发生真实的碰撞, 这种碰撞会影响玩家角色在游戏中的运动, 造成不真实感。

触发器碰撞检测因在实际情况中可能出现追踪对象与玩家角色碰撞击穿的现象, 造成漏检, 导致游戏不稳定。

因此, 本文选择了可有效克服以上两种碰撞检测算法缺点的射线碰撞检测算法。

根据射线碰撞检测的特点, 笔者在游戏设计中, 以玩家角色为起点, 每间隔固定时间, 沿着玩家角色运动的正反方向分别发射两条射线。如果向前的射线与追踪对象发生碰撞, 则判断追踪对象在玩家角色前面, 反之在玩家角色后面。射线碰撞既避免了基本碰撞检测造成的不真实感, 又避免了触发器碰撞检测造成的击穿问题, 同时降低了开发成本。

3.2 追踪对象的设置

由于射线碰撞检测也有自身的局限性, 只有当角色正对着追踪对象时射线才会与追踪对象发生碰撞, 因此该游戏使用平面来表示追踪对象。

为了提供足够的有效碰撞范围, 平面宽度略大于赛道最大宽度, 高度略高于角色的高度, 并且游戏过程中追踪对象始终垂直于标准路径。由于追踪对象是一个虚拟设置的游戏物体, 设置完成后应关闭追踪对象的渲染组件。如图3 为打开追踪对象的渲染组件的示意图:

碰撞类型设置为触发器碰撞, 以免造成玩家的不真实感, 同时给该对象设置单独的碰撞层, 以避免不必要的碰撞给检测造成的干扰。

四、实时排名机制的设计

在完成了标准路径的制定和追踪对象和玩家角色的前后位置的判别之后, 接下来就进入实时排名机制的具体设计和实现了。按照引言所述的设计思想, 笔者为每名玩家角色配置了一个沿标准路径运动的追踪对象, 通过追踪对象对玩家角色的实时追踪, 将玩家角色在赛道上的运动转换为追踪对象在标准路径上的运动, 并使用追踪对象已完成的圈数与当前圈数完成的百分比之和来表示玩家的比赛完成进度。

具体实现步骤包括:

4.1 追踪对象的运动控制

Catmull_Rom样条曲线是一种分段式连续平滑曲线[19], 并且每一分段都可独立计算。设点P为拟合路径上百分比为u的点, 则。由 (3) 式即可计算出P点的坐标。

设追踪对象已完成的比赛圈数为n, 初始值为0, 在游戏开始阶段, 追踪对象初始化为拟合路径上百分比为0 (即u=0) 的位置。游戏过程中, 每帧给u一个增量add, 并将追踪对象的坐标更新为当前u值所对应的拟合曲线上点的坐标。当u=1 时, 表明追踪对象跑完一圈, 此时n值加1, 并将u值重置为0。通过这种方式实现了对追踪对象运动轨迹的控制。通过调整add的值则可以实现对追踪对象运动速度的控制。

4.2追踪对象的实时追踪

设玩家角色在游戏中的最大速度为Vmax, 最小速度为Vmin, 同时为add设定两个可选值:high Speed和low Speed, 其中high-Speed >Vmax, low Speed<Vmin。游戏过程中实时检测玩家角色与追踪对象的前后相对位置, 当追踪点对象超越玩家角色时, add = low Speed;当追踪对象落后玩家角色时, add = high Speed。

由于游戏情况的复杂性以及不同场景的多样性, 导致Vmax和Vmin没有一个恒定的值, 因此high Speed和low Speed的数值需要在实际测试过程中反复调整, 以降低追踪对象与玩家角色之间的平均相对速度, 提高追踪对象实时追踪的精确度。

4.3 游戏进度的计算模型

通过追踪对象对玩家角色的实时追踪, 实现了从玩家角色在赛道上的运动到追踪对象在标准路径上的运动的实时映射。设游戏玩家数为k, 每名玩家角色已完成的圈数为N, 当前圈数完成的百分比为U, 比赛完成进度为P, 则:

这样, 通过每帧比较每位玩家角色的P值, 便可实时计算出每位玩家的比赛排名。

五、算法测试与分析

实时追踪模块的设计与玩家角色游戏进度的计算紧密相连, 该模块的实现直接关乎到实时排名的计算。其中, 最能反应该模块设计好坏的是玩家角色与追踪对象之间的实时距离, 因此, 笔者选择该指标作为定量检测算法性能的标准。

笔者将比赛中可能碰到的情况分为直道运动, 弯道运动, 加速运动, 碰到跑道边缘减速运动和碰到障碍物停止运动这五类, 并分别对处在这五类情况下的检测指标进行了测试。如图4为测试结果:

其中, 纵轴表示玩家与追踪对象之间的距离, 横轴表示时间。笔者对每种类型的情况分别进行了长达5 秒的测试, 每隔0.5 秒记录一次测试结果。

由上图可知, 在直道和弯道运动情况下, 玩家角色速度比较平稳, 玩家角色与追踪对象之间的距离波动不大, 一直稳定在一个较小的范围内。

在玩家角色加速运动或碰到跑道边缘减速的情况下, 玩家角色速度发生小幅度的变化, 刚开始追踪对象与玩家角色的距离出现较小的波动, 经过不到0.5 秒的调整, 它们的距离重新回到正常的波动范围。

当玩家角色碰到障碍物时, 玩家的速度突变为0, 此时玩家角色与追踪对象的距离出现较大波动, 接着追踪对象的速度降为零, 此时它与玩家角色的距离保持不变, 当玩家角色跳过障碍物后, 它们的距离迅速恢复到稳定波动范围内。

因此, 由前面分析可知, 该算法针对不同类型的赛道和地形都表现出了良好的稳定性和准确性。

结束语

Unity3 篇6

随着计算机辅助设计技术和网络三维技术的发展, 虚拟现实技术通过生成比较真实的模拟环境, 在沉浸感、交互性和实时性方面优势明显。

Web3D即网络三维技术, 是一种在网页中实现虚拟现实的最新技术, 它支持通过浏览器实现跨平台的高品质在线三维交互体验[2]。Web3D技术需要对展示对象进行三维建模, 并基于真实三维模型获取具有纵深效果的立体图像, 可用于客观存在实物的三维展示[3]。典型Web3D技术主要有VRML、Java3D、Cult3D、Virtools和Unity3D等。其中, Unity3D可使低端硬件也能流畅地运行漫游展示、虚拟仿真、交互式动画等, 并能够创造出高质量3D仿真系统和真实视觉效果。它能够与HTML、Flash等进行良好的交互, 并支持C#、Java Script等多种脚本语言。文献[4]中陈洪等基于Unity3D设计并实现了一个交互式虚拟农业仿真系统。本文针对电机学中基本元件的工作原理学习等需求, 应用Unity3D引擎, 实现了对常见电机的结构、拆装和工作原理进行展示。进一步通过与HTML的交互进行在线展示, 交互性强, 动态展示效果好。

1虚拟仿真展示平台设计与实现

1.1三维仿真建模

1.1.1 Pro/E零件建模及装配

a.电动机数据采集。

b.选取零部件的基本截面, 进行基本特征草绘, 然后利用拉伸、阵列等操作添加附加特征完成零部件整体制作。

c.利用Pro/E完成电动机模型的装配。

1.1.2 3DS Max渲染

Pro/E也拥有渲染功能, 但效果一般。因此采用3DS Max对模型进行贴图渲染, 同时配合使用Photoshop对材质贴图进行处理, 提升渲染效果。电动机内部的绕组等零部件具有不规则特性, 使用Pro/E进行建模时很难获得逼真的效果。对于这部分不规则零部件, 可以在3DS Max中进行真实感建模。

1.1.3虚拟场景设计

将3DS Max处理后的电动机三维模型导出为.FBX格式文件, 在导出时需要选择材质和动画同时导出。将导出的.FBX格式文件放到Unity3D的资源文件夹Assets中, Unity3D将自动导入对应的三维模型及相应的贴图和动画文件。然后在Unity3D操作界面下, 将电动机三维模型由Assets窗口拖动到Hierarchy窗口中, 即在虚拟场景中添加了电动机模型。同时需要对电动机三维模型进行缩放、移动、旋转、显示隐藏等相关属性的设置。

为了进行可视化虚拟仿真展示, 必须在场景中添加主摄像机和灯光等其他虚拟环境的必备元素, 并进行相关属性的设置。如果要进行虚拟场景的漫游, 还需要添加第一人称控制器, 并做相应设置。

1.2展示平台效果

在展示平台中, 鼠标单击三相鼠笼式异步电动机前的单选按钮, 将该电动机模型载入虚拟场景;然后通过鼠标拖动可实现模型的旋转、通过滚轮滚动可实现模型的缩放;通过取消选中零部件前的复选按钮, 可以在虚拟场景中实现相应零部件的隐藏。交互式展示效果如图1所示。

2结论

通过该平台在教学中的使用, 学生普遍反映动态展示效果好、逼真度高, 对学习电动机结构和工作原理有很大的帮助。

摘要:针对电机学中基本元件的工作原理学习等需求, 应用Unity3D引擎, 实现了对常见电机、变压器的结构、拆装和工作原理进行展示。进一步通过与HTML的交互, 实现网络化, 交互性强, 动态展示效果好。

关键词:虚拟仿真,Unity3D,电机学

参考文献

[1]王秀和等.加强电机结构认识实习环节提高电机学教学质量[J].电气电子教学学报, 2006, 28 (6) .

[2]冯开平, 潘光洋.基于Web3D的灯饰协同设计定制系统[J].图学学报, 2012, 33 (3) :56-60.

[3]任镤, 王文剑, 白雪飞.基于虚拟现实技术的山西大学堂建筑复原[J].计算机仿真, 2012, 29 (11) :20-23+46.

Unity3 篇7

【摘要】Unity3D游戏开发引擎作为制作游戏的主流应用软件,近年在教育领域也得到较广泛的应用。在教学过程中使用Unity3D游戏引擎制作的学习资源,不仅丰富了教学形式,教学方法也得到了更好的体现,同时也可以达到寓教于乐的效果。Unity3D在教育中的应用研究,可以从Unity3D在成人教育中的应用、Unity3D在教育模型展示中的应用以及Unity3D在教育游戏中的应用三个方面分析研究。

【关键词】Unity3D 教育 应用 游戏 模型

一、绪论

在现代教育中,创新人才的培养模式不应局限于传统课堂的讲授模式,参与式学习、讨论式学习以及探究式学习等学习模式被不断提出,那么如何将学生带入到此类学习情境中是一个值得深思的问题,提供给学生的学习资源就是其中的一个切入点。在传统课程模式的推动下,运用多媒体教学资源可以激发学生的学习兴趣和课堂的主动参与性,提高独自思考与探索问题的个人能力。

同时,随着IOS、Android等系统的移动终端的广泛使用,各类移动终端的移动学习资源被大面积开发。基于Unity3D制作出来的教学游戏交互资源可以跨平台发布到手机、IPAD等移动终端,使学生可以不受时空时间限制进行学习,成为Unity3D从同类软件中脱颖而出的重要原因之一。

二、Unity3D技术

Unity3D简介:Unity3D技术相对其他游戏制作软件是一种相对较新的技术,它既是一款游戏引擎,也是游戏制作工具。Unity3D是由丹麦Unity公司开发的游戏开发工具,具体的特性包含整合的编辑器、跨平台发布、地形编辑、着色器、脚本、网络、物理、版本控制等特性。Unity3D在教学中应用具有以下优势:

(1)MonoDevelop是Unity3D中主要的开发平台,同时包含了多种编程语言,例如C,C++,Boo,JavaScript等,其中JavaScript语言最为入门。开发者可以根据自己的实际情况进行选择。对于无开发游戏经验的教育者也可以使用简单的编程语言参与到教育游戏开发的过程中。

(2)Unity3D相对于其他的同类制作游戏软件支持更大的场景制作,制作出的场景也较为逼真,虚拟与现实的完美结合可以提供给学生更强的代入感。

(3)Unity3D另外一种较为强大的功能是可以支持跨平台设计,在当前的游戏引擎中是唯一可以提供所有平台植入能力的游戏开发软件;同时,可以将开发出的游戏发布到手机等移动终端,作为移动学习资源供学生利用闲散的时间学习,也可以为成人学习者提供终身学习的目的。移动学习将终身学习的理念从技术上进行了充分展现,使学习者得以在生活、工作甚至消遣之余,于开放的状态中体验移动计算技术带来的随时随地学习的全新感受。

三、Unity3D在教育游?蛑械挠τ?

(一)教学设计

基于Unity3D游戏引擎制作的教育游戏,既然需要用在教育过程中,那么必须需要遵循教育的相关教学理论以及教学设计相关原则。教学设计的目的是设计教学过程,使教学过程更完善,学生在结合Unity3D教育游戏学习的过程中学习效率更高、学习效果更好,以达到预设的教学目标。教育游戏面对的对象可以是各个领域、各个行业,不同类型的教育游戏有不同的教学内容和教学目标,以针对小学英语教学设计的教育游戏为例。基于Unity3D游戏引擎设计的游戏也是一个小型的学习环境,所以在设计的过程中首先要进行学习者分析、教学目标的制定、设计教学过程,其次需要在一定的理论的指导下,根据一定的教育游戏的设计原则进行教育游戏的框架设计,最后阶段是进行开发与调试。

1.学习者分析

小学生接受新鲜事物的能力有限,并且每个学生的英语基础和学习习惯也有所不同,所以在呈现新的知识点时不宜直接进入深层次问题的探索,应该循序渐进、由简到难,给学生一个适应的过程。学习者可以根据自身的情况自主控制学习进度、学习方法以及学习时间,这与建构主义学习理论所倡导的“以学生为中心的”思想不谋而合。

2.教学目标的制定

基于Unity3D游戏引擎设计的教育游戏,必须要确定教学目标。可选择一些在传统课堂中不易理解的知识点作为教学内容,同时将大的学习内容拆分成小的知识点,每一部分的设计内容不宜过多,知识点应短小精悍,可以适应各个年龄段学习者的学习要求。

设计者还需要考虑到学生在运用基于Unity3D游戏引擎设计的学习资源后学习者可以达到哪些学习目标,可以从三维学习目标展开,语言技能、知识目标以及情感态度。在这一部分的设计过制定过程中教师可以参与其中,与游戏设计者共同完成目标的制定。

3.设计教学过程

在针对小学英语设计教育游戏时,可将教学内容的难易程度进行区分,学生可根据自身情况进行选择。作为学生学习的辅助课件,在使用Unity3D设计的教育游戏课件时,学生本身处于一种非正式的学习状态,教育游戏将学生完全带入到学习内容中显得尤为重要。这就需要在设计基于Unity3D游戏引擎的教育游戏时,环境的设计要符合学生的心理特征。

4.教育游戏框架设计

游戏框架设计是教育游戏最为关键的一个部分。框架的设计可以根据移动学习环境下教育游戏通用标准。分别包括以下几个方面,目标、规则、竞争、挑战、幻想以及娱乐。

Unity3 篇8

经过20天的培训,国家“双师型”教师“unity 3D虚拟现实项目开发”培训圆满结束。这短短的20天,对我来说是教学经验提升、教学眼界开阔的重要阶段。这20天我学到了很多。对unity从不了解到了解,到深入学习,再到使用。都是在这短短的20天里学到的。

一、培训目的

本次培训的时间从7月9日到7月31日,除去休息日,共培训20天。出去学习主要是为了参加每年河南省举办的“全国大学生技能大赛”虚拟现实的的比赛,同时也为了了解虚拟现实这一块的内容。

二、培训单位

本次培训是郑州铁路职业技术学院与环球科技有限公司合作组织的培训,培训的地址是在环球科技有限公司。环球科技有限公司是从事游戏开发和虚拟现实项目开发的公司,在虚拟现实培训这一块也比较有经验。

三、培训内容和培训过程

第一天:我们进行了开班典礼,并对同班进行培训的同学进行了了解,主办单位给我们讲了一下培训内容的安排和介绍。下午的时候我们进行了AR,VR和MR的体验,体验过之后我才知道unity是做什么的和我们的生活工作有哪些联系,最让我吃惊的是,他的应用领域如此的广泛,在此之前,我一直以为unity只能在游戏领域运用,但显然除了在游戏领域有运用外,在医学,教育,汽修,选车、机械运用、室内装修等方面的应用也比较成熟。这让我对这次的培训产生了浓厚的兴许。但同时我对AR,VR和MR是什么产生了疑问。

第二天:微软官方的技术专家对我们进行了讲座。通过本次的讲座,我对AR,VR和MR的概念才算了解,并且从讲座中我了解到,目前最流行的是MR的开发。下午我怀着激动的心情开始了unity的学习,在学习的过程中我知道了我们平常接触到的拍照的时候有各种小造型的拍照软件是AR的使用。

第三天:我们主要学习unity的基础内容和常用的虚拟仿真软件的讲解和unity软件的下载和安装。这部分的内容虽然简单,但对后面的学习却是至关重要的。

第四天到第七天:我们主要进行学习的是AR项目。主要从AR医疗和AR汽修两个方面进行学习,这四天的学习结束后,我可以使用软件进行AR心脏和省份证的小项目制作,这让我对后面的学习更加有信心。

第八天:我们开始了VR的学习。老师先从VR案例制作规范开始讲解,并对VR课程体系和专业设置方面进行了讲座。这主要是为了部分学员来的时候主要是为了学校开设unity课程作准备的。

第九天:我们对郑州市电力高专的实验室建设进行了参观,并在老师的讲解下了解了VR实验室的建设方案

第十天到第十五天:主要是进行VR项目化教学,我们主要学习VR选车和VR小游戏的制作,这里面我们主要是用的是第三方插件steam VR和VRTK。这两款插件学习完成之后,我可以使用他们进行保龄球和射箭以及汽车选颜色的制作。这个阶段的学习内容安排比较丰富,但是简单易操作。学习过之后让我有很大的信心。

第十六天到第十七天:是对MR的学习,学习的过程中我们了解到MR在医学领域以及医学教育领域的运用,并且MR 的发布使用也仅仅才是一年的时间,但是MR确实将来虚拟现实发展的主流方向。

从第十八到结束这段时间,我们开始对学习的内容进行总结,进行员作品的调试与发布,并对做过的作业在设备上进行了调试。

学习培训结束,我不仅学习到了软件,也开拓了眼界,认识了一些行内的精英,可以说的非常的充实,对我来说,这次学习的机会非常的珍贵也非常的有价值,相信通过这次学习,可以对以后的教学有很大的提高,对系和学校的发展做更多的贡献。

开班典礼

开班合影

VR,MR体验

高校参观

上一篇:人参皂甙Rg1下一篇:脆弱的融资链

热搜文章

    相关推荐