CN111524221A - 基于Unity平台的虚拟仿真实验制作系统 - Google Patents
基于Unity平台的虚拟仿真实验制作系统 Download PDFInfo
- Publication number
- CN111524221A CN111524221A CN202010211559.4A CN202010211559A CN111524221A CN 111524221 A CN111524221 A CN 111524221A CN 202010211559 A CN202010211559 A CN 202010211559A CN 111524221 A CN111524221 A CN 111524221A
- Authority
- CN
- China
- Prior art keywords
- model
- camera
- animation
- folder
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于Unity平台的虚拟仿真实验制作系统,包括:1、场景初始化模块,2、模型导入模块,3、动画编辑模块;4、UI编辑模块;5、相机模块;6、实验步骤模块。本发明能够大幅度降低虚拟实验的制作门槛,使高校的学生和老师经过一段时间的使用和熟悉就能制作出能够用于实际教学的虚拟实验,降低高校对于虚拟实验建设的成本。
Description
技术领域
本发明涉及一种基于Unity平台的虚拟仿真实验制作系统。
背景技术
如今三维可视化虚拟实验在教育系统中需求量很大,应用也相当广泛,在高校专业建设中起着至关重要的作用,内容包括法学类、建筑类、体育学类、历史学类、物理学类、电气类、矿业类、兵器类、农业工程类、林业工程类、公共卫生与预防医学类、医学技术类、艺术学类、生物科学类、机械类、电子信息类、航空航天类等60多种学科。
目前由于Unity3D引擎具有多平台适应性以及体积小、支持网页端操作等优势,这些虚拟实验的制作大部分都是基于Unity3D引擎进行设计开发,以C/S架构搭建的用户操作平台。以此来实现多平台数据互通以及三维可视化操作。
现有技术的缺陷和不足:
现阶段高校的虚拟实验建设进行的软件开发都是依托第三方软件开发公司进行软件开发。由于高校的专业需求较高,使得虚拟实验的开发进程需要较多的时间进行沟通与交流,大部分第三方开发公司并不具备相关专业的专业能力,在沟通过程中会出现较多的返工现象。
第三方开发公司的开发成本较高,单个虚拟实验的平均制作报价在20-50万左右。高校的虚拟实验室建设需要大量的虚拟实验作为支撑,但是以这样的开发成本,高校需要承担很高的实验室开发费用,对于实验步骤类似的虚拟实验都需要独立开发,成本巨大。
由于Unity3D引擎属于游戏开发引擎,使用难度和基于C#语言的开发环境使得它并不具备非专业人员的原生开发环境。大部分功能需要编写代码才能够实现,对于非软件开发业内的使用来说几乎不能进行开发。
发明内容
1、本发明的目的
为了解决高校的学生和老师并不具备Unity3D的开发技术,本发明提出一种让高校学生或老师能够在Unity3D平台上自行进行虚拟实验的开发的技术方案。
2、本发明所采用的技术方案
本发明公开了一种基于Unity平台的虚拟仿真实验制作系统,包括:
1、场景初始化模块,启动引擎加载插件后会对新建的场景进行初始化;
2、模型导入模块
(1)导入.fbx格式模型存入基础模型库中,在预制体函数,创建预制体Prefab以备后期调用;
(2)增加切换导入模型的主uv和次uv的Swap UVs和光照图UV集属性;
(3)对导入的模型进行信息添加,通过ModelInfo(String)对模型进行信息定义:
带有平面信息的模型,以模型坐标原点0,0,0插入相同尺寸的.png格式图片,定义平面图片为Plan图层,
带有模型预览功能的模型,定义模型的集合中心为模型中心点,在打开模型详细信息后,对模型在新窗口中进行自由旋转、缩放预览;
带有动画的模型,该模型在导入后在Assets>Model>BasicModel文件夹中创建与模型名称相同的.anim动画文件;
3、动画编辑模块:使用Unity引擎的Animation组件对模型进行帧动画编辑,保存到模型对应的文件夹下,将动画文件名与模型名称统一;
4、UI编辑模块:
通过GameObject.Instantiate()函数在场景内新建预设Canvas,以及多个功能性UI,包括图片、按钮、滚动条,逻辑通过ButtonEventController.cs预设操作逻辑;
UI面板通过LoadAsset()函数引用了图片、文字、视频内容,直接将素材拖入到内容栏中进行替换;
自定义UI界面,通过ChangeUIAsset(string path)指向Assets>UI>Image中的自定义UI图片文件夹来进行UI图片替换;
UI在自定义时按照UI模板中的图片尺寸、位置制作,并且与模板中的UI图片保持相同的文件名,通过FindUIAssetByName(string name)函数以文件名来查找所属UI类型;
5、相机模块
平面相机,通过设置相机Transform.Rotation=new Vector(90,0,0),通过orthographic=fakse将Projection设置为正交摄像机;
人视点相机,通过创建一个First Person Controller来预先设定一个第一人称视角控制器,实现多个功能包括模拟人物行走,碰撞以及摄像机;
自由相机,通过在平面相机中挂载CameraController组件开启相机控制逻辑;
通过启动First Person Controller以及平面相机两个GameObject来进行切换第一视角及第三视角的切换;第三视角包含了平面相机和自由相机,对CameraController组件的enable=false/ture的设置做到基本的平面相机以及自由相机的切换;
6、实验步骤模块
漫游型实验,通过LoadAsset从库中选择模型,通过CreatePath新建路径点GameObject,路径点GameObject包含一个红色的球体来在空间中标识位置,同时由Gizmos显示模式控制其在Game窗口运行模式下不显示,同一组路径点GameObject有Gizmos进行连接,可见相机运行轨迹路线;路径点GameObject由CreateKeyFrames添加关键帧缩略图;
布局型实验,通过LoadAsset从库中选择模型,每个模型通过LoadImage添加平面图片,通过设置Transform属性修正位置信息,通过导入到备选模型列表中。在运行时通过DragObject拖动模型到目标位置,并通过RecodeTransform记录位置信息,和标准布局的位置信息以及模型信息作比对;
动画型实验,通过LoadAnimation从库中选择动画模型,在timeline中添加触发事件,并以这种形式不断叠加,以最终播放完随后一个动画作为完成标准;
步骤型实验,通过LoadAnimation从库中选择动画模型,判断步骤是否正确,如果正确则通过UI提示进行下一步操作;过程中如果出现错误操作,则通过提示操作错误,返回上一步骤重新进行操作。
更进一步,场景初始化模块:启动引擎加载插件后会对新建的场景进行初始化,以达到后期导出的场景标准;
1、初始化操作会删除新建场景内自带的Main Camera,并新建相机Camera;
2、设置Field of View为75,设置Background Color为RGBA(9,2,75,0);
3、删除Lighting>Scene>Skybox Material;
4、在Assets文件夹下新建Model文件夹,并从ProfilePath.cs中读取文件夹内部嵌套逻辑。
更进一步,模型导入模块:
1、导入.fbx格式模型存入Assets>Model>BasicModel文件夹中,通过PrefabUtility.CreatePrefab()函数在Assets>Model>Prefab文件夹中新建Prefab以备后期调用;
2、导入.skp格式模型时由于SketchUp模型并不支持自带光照UV,因此需要通过PrefabUtility.CreatePrefab()函数增加Swap UVs和Generate Lightmap UVs属性,再存入Assets>Model>BasicModel文件夹中,通过PrefabUtility.CreatePrefab()函数在Assets>Model>Prefab文件夹中新建Prefab以备后期调用;
3、对导入的模型进行信息添加,通过ModelInfo(String)对模型进行信息定义,带有平面信息的模型,以模型坐标原点0,0,0插入相同尺寸的.png格式图片,定义平面图片为Plan图层;带有模型预览功能的模型,定义模型的集合中心为模型中心点,在打开模型详细信息后模型能在新窗口中进行自由旋转、缩放预览;带有动画的模型,该模型在导入后在Assets>Model>BasicModel文件夹中创建与模型名称相同的.anim动画文件。
更进一步,动画编辑模块:
1、对导入的模型进行动画编辑,使用Unity引擎自带Animation组件对模型进行帧动画编辑,编辑完成后将Animation动画保存到模型Assets>Model>Basic Model>XXX对应的文件夹下,并将动画文件名与模型名称统一;
2、多个模型多个动画编辑时使用Unity引擎自带TimeLine组件。
更进一步,UI编辑模块:
1、通过GameObject.Instantiate()函数在场景内新建预设Canvas,以及多个功能性UI,图片包括Logo、Top、Bottom、Option Bar、按钮包括Meun、Exit、滚动条;按钮逻辑通过ButtonEventController.cs预设好相关的操作逻辑ExitBtn.onClick.AddListener(ExitBtnOnClick);
2、如果在UI编辑模块中需要进行按钮及布局自定义,则需要在插件面板中点选Add Button,插件会通过CreateButton()函数新增一个按钮,并且需要通过AddButton()函数指向需要打开的面板;
3、UI面板通过LoadAsset()函数引用了图片、文字、视频内容,可以通过直接将素材拖入到内容栏中进行替换;
4、自定义UI界面,通过ChangeUIAsset(string path)指向Assets>UI>Image中的自定义UI图片文件夹来进行UI图片替换;UI在自定义时需要严格按照UI模板中的图片尺寸、位置来进行制作,并且与模板中的UI图片保持相同的文件名,通过FindUIAssetByName(string name)函数以文件名来查找所属UI类型。
更进一步,相机模块:
1、平面相机,通过设置相机Transform.Rotation=new Vector(90,0,0),通过orthographic=fakse将Projection设置为Orthographic;
2、人视点相机,通过创建一个First Person Controller来预先设定一个第一人称视角控制器,其中包含了模拟人物行走,碰撞以及摄像机等多个功能;
3、自由相机,通过在平面相机中挂载CameraController组件开启相机控制逻辑,WASD控制相机平移、QE控制相机升降、[]控制相机FOV;
4、通过启动First Person Controller以及平面相机两个GameObject来进行切换第一视角及第三视角的切换。第三视角包含了平面相机和自由相机,对CameraController组件的enable=false/ture的设置做到基本的平面相机以及自由相机的切换。
3、本发明所采用的有益效果
(1)本发明通过自行研发的Unity3D引擎开发的功能性封装插件,通过场景场景初始化模块能快速的清理新建场景中的无用元素,添加整体运行环境,对于不了解Unity引擎的使用者来说极大地提高了便利性,方便了操作简化了流程。
(2)本发明通过对Unity功能性的编程包括集成ModelImput、Animation、Timeline等unity自带组件的功能以及GameObject.Instantiate、ChangeUIAsset内部引用的功能,使得使用者不需要接触复杂的代码即可进行模型的整理、动画的编辑、UI的自定义以及实验逻辑的编辑,方便使用者快速的制作三维可视化课件。
(3)本发明能够大幅度降低虚拟实验的制作门槛,使高校的学生和老师经过一段时间的使用和熟悉就能制作出能够用于实际教学的虚拟实验,降低高校对于虚拟实验建设的成本。
(4)本发明本发明通过整合优化Unity3D平台的部分功能使得所有制作的虚拟实验都基于同一套框架,这样的方式结构可控,系统Bug的产生率较低。功能叠加组合的制作方式也能使结构更加明确,方便查找问题并及时修改。
(5)本发明本发明将虚拟实验的制作、发布、运行用统一的系统平台进行编辑,使得基于本方案制作的虚拟实验都有一定的通用性,便于不同学校相同专业之间的交流。
附图说明
图1为本发明的整体流程图。
图2为本发明详细的运行流程图。
图3为场景初始化模块的功能实现图。
图4为模型导入模块的功能实现图。
图5为动画编辑模块的功能实现图。
图6为UI编辑模块的功能实现图。
图7为相机模块的功能实现图。
图8为实验步骤模块的功能实现图。
具体实施方式
下面结合本发明实例中的附图,对本发明实例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
下面将结合附图对本发明实例作进一步地详细描述。
本发明所要解决的技术问题是建立一套完整的开发到运行使用的解决方案,方便非专业的老师和学生也能通过Unity3D引擎制作出想要的虚拟实验。包括:引擎内编辑模块、打包导出模块、线上运行模块三个主要模块。
1、引擎内编辑模块
作为该解决方案核心功能,其原理是基于Unity3D引擎开发的功能性封装插件(以C#语言编写的快捷使用功能,将复杂的使用逻辑整合到一套功能按键中,以下简称插件),在模块内用户可以对自行准备的模型进行编辑,对虚拟实验的步骤逻辑进行编辑,对整体的UI界面进行设计,选择合适交互方式来最终制作出自己理想的虚拟实验。
(1)模型导入功能:导入fbx格式(3dsmax、Maya等软件制作)、skp(SketchUp制作)等格式的模型,由插件自动进行模型UV设定、Mesh形式设定(用户无需自行操作设定)。此功能避免了用户在模型导入后对模型进行错误编辑导致模型显示不正常等问题。
(2)模型导入模块:导入fbx格式(3dsmax、Maya等软件制作)、skp(SketchUp制作)等格式的模型,由插件自动进行模型UV设定、Mesh形式设定(用户无需自行操作设定)。此功能避免了用户在模型导入后对模型进行错误编辑导致模型显示不正常等问题。
(3)动画编辑功能:使用Timeline功能和Animation功能对对象Transform信息(包括Position、Rotation、Scale信息)进行关键帧动画编辑,通过打开Animation帧编辑按钮拖动帧指示器确定需要在某个关键帧插入动画,再将模型设置位置信息到该帧所要呈现的状态,关闭编辑模式完成动画编辑。
(4)UI设计功能:插件内预设了多个UI模板,使用者根据需求选择合适的UI模板,并根据模板中的UI提示自行替换UI图片,以达到自定义UI的目的。
(5)相机模式切换功能:三维可视化操作需要进行视角切换以方便操作,此功能包含人视点透视视角相机、自由平行视角相机、自由透视相机等相机模式。
(6)实验步骤设计功能:调取插件内的实验步骤预设,本方案内部集成了一些通用的实验步骤预设,包括漫游型(以相机根据路径点移动来达到漫游效果的实验模式)、布局型(以拖动场景内物体到达指定位置的实验模式)、动画类(以UI或者模型点击,输入参数返回不同结果的实验模式)、步骤型(以选取正确的模型进行正确步骤的拆解或组装的实验模式)、展示类(以自由行走,点击场景内物体进行信息交互的实验模式)等。
2、打包/导出模块
打包导出模块通过插件将在引擎内制作好的虚拟实验进行打包导出,可以选择在PC上直接运行的.exe格式,也可以选择在Web端运行的http格式,根据不同的导出格式自动配置文件并自定义导出路径最终导出。
3、线上运行模块
从服务器读取已经打包上传的http数据包,并以单独http页面进行虚拟实验的运行,因此不受到Unity3D版本和插件版本的限制。
实施例
场景初始化模块001
如图3所示,启动引擎加载插件后会对新建的场景进行初始化,以达到后期导出的场景标准;能够避免无用元素的干扰,加快场景建设。
1.初始化操作会删除新建场景内自带的主相机,并新建相机,主相机自带的相机属性会影响相机的使用效果,新建相机将删除这些属性,保证后期相机使用的稳定性;
2.设置可视范围(FOV)为75,设置背景颜色为RGBA(9,2,75,0),实际项目中默认的白色背景会影响使用者的视觉感受,因此将相机默认背景设置为深蓝色将适用于正常状态下的项目需求;
3.删除Lighting>Scene>Skybox Material,默认的天空球会影响场景中的全局光照,在初始化过程中删除默认的天空球,在后面的自定义阶段重新定义需要的天空球;
4.在Assets文件夹下新建Model文件夹,并从ProfilePath.cs中读取文件夹内部嵌套逻辑,避免用户在自行创建标准文件路径时由于拼写错误或父子关系错误导致的文件无法读取等问题。
模型导入模块002:
如图4所示,1.导入.fbx格式模型存入Assets>Model>BasicModel文件夹中,通过PrefabUtility.CreatePrefab()函数在Assets>Model>Prefab文件夹中新建Prefab以备后期调用。模型在导入引擎后一键自动进行预制体生成以及保存,无需用户自行操作,保证流程正确。
2.导入.skp格式模型时由于SketchUp模型并不支持自带光照UV,因此需要通过PrefabUtility.CreatePrefab()函数增加Swap UVs和Generate LightmapUVs属性,再存入Assets>Model>BasicModel文件夹中,通过PrefabUtility.CreatePrefab()函数在Assets>Model>Prefab文件夹中新建Prefab以备后期调用。由于SketchUp模型的特殊性,需要在引擎中进行UV调整和自适应光照UV生成,因此通过代码自动执行这些操作,避免用户在模型导入的过程中遗漏该步骤。
3.对导入的模型进行信息添加,通过ModelInfo.Cs代码对模型进行信息定义:a.带有平面信息的模型:以模型坐标原点0,0,0插入相同尺寸的.png格式图片,定义平面图片为Plan图层,并作为模型的的子物体随模型一起进行移动、旋转、缩放等操作。此步骤通过通过ModelInfo(String)函数中的PlanModel函数将导入的图片进行上述操作,编辑好的模型将作为以下布局型实验的基本模型。
b.带有模型预览功能的模型:定义模型的几何中心为模型中心点,在打开模型详细信息后新建Rowimage以及模型相机使模型能在新窗口中通过ModelContral.cs代码进行自由旋转、缩放预览。此步骤通过通过ModelInfo(String)函数中的FreeModel函数将导入的模型进行上述操作,将模型转化为可在以下实验步骤模块中的漫游型中直接使用的模型。
c.带有动画的模型:该模型在导入后会在Assets>Model>BasicModel文件夹中创建与模型名称相同的.anim动画文件,保证模型指向动画的识别性,防止在自建.anim动画是由于文件名不同导致资源混乱。
动画编辑模块003
如图5所示:1.对导入的模型进行动画编辑,使用Unity引擎自带Animation组件对模型进行帧动画编辑,编辑完成后将Animation动画保存到模型Assets>Model>BasicModel>XXX对应的文件夹下,并将动画文件名与模型名称统一。
2.多个模型多个动画编辑时使用Unity引擎自带TimeLine组件对多段动画进行整合,通过Events.cs代码,将动画整合过程中常见的触发事件(点击、时间延续、移动、UI触发等)整合到操作界面的UI中,仅需要直接在操作界面中点击需要插入的触发事件,插件会将触发事件代码直接插入到Timeliness中,不需要自行编辑触发代码。
UI编辑模块004
如图6所示:1.通过GameObject.Instantiate()函数在场景内新建预设Canvas,以及多个功能性UI,包括图片(Logo、Top、Bottom、Option Bar等)、按钮(Meun、Exit等)、滚动条等。这些按钮逻辑通过ButtonEventController.cs预设好相关的操作逻辑
_ExitBtn.onClick.AddListener(ExitBtnOnClick);
2.如果在UI编辑模块中需要进行按钮及布局自定义,则需要在插件面板中点选Add Button,插件会通过CreateButton()函数新增一个按钮,并且需要通过AddButton()函数指向需要打开的面板,此步骤将需要编写代码进行的触发操作用一个按钮进行代替,简化了UI编辑的复杂步骤,将需要代码定义的UI逻辑可视化、一键化。
3.编辑详情UI面板通过添加LoadAsset代码,在属性面板中将图片、文字、视频内容素材拖入对应的路径框内,代码会根据属性面板中的排列顺序将素材进行自动排列,由于素材的排版在UI中排列比较自由,而且很容易出现图片文字溢出等问题,为保证素材的正常显示只能按照代码给定的排版布局进行编辑。
4.自定义UI界面,通过ChangeUIAsset(string path)指向Assets>UI>Image中的自定义UI图片文件夹来进行UI图片替换。UI在自定义时需要严格按照UI模板中的图片尺寸、位置来进行制作,并且与模板中的UI图片保持相同的文件名,通过FindUIAssetByName(string name)函数以文件名来查找所属UI类型。
相机模块005:
如图7所示,1.平面相机,通过设置相机Transform.Rotation=new Vector(90,0,0),通过orthographic=fakse将Projection设置为Orthographic。
2.人视点相机,通过创建一个First Person Controller来预先设定一个第一人称视角控制器,其中包含了模拟人物行走,碰撞以及摄像机等多个功能。
3.自由相机,通过在平面相机中挂载CameraController组件开启相机控制逻辑,WASD控制相机平移、QE控制相机升降、[]控制相机FOV
4.通过启动First Person Controller以及平面相机两个GameObject来进行切换第一视角及第三视角的切换。第三视角包含了平面相机和自由相机,对CameraController组件的enable=false/ture的设置做到基本的平面相机以及自由相机的切换。
实验步骤模块006:
如图8所示,1.漫游型实验,通过LoadAsset从库中选择模型,通过CreatePath新建路径点GameObject,路径点GameObject包含一个红色的球体来在空间中标识位置,同时由Gizmos显示模式控制其在Game窗口运行模式下不显示,同一组路径点GameObject有Gizmos进行连接,可见相机运行轨迹路线。路径点GameObject由CreateKeyFrames添加关键帧缩略图
2.布局型实验,通过LoadAsset从库中选择模型,每个模型通过LoadImage添加平面图片,通过设置Transform属性修正位置信息,通过导入到备选模型列表中。在运行时通过DragObject拖动模型到目标位置,并通过RecodeTransform记录位置信息,和标准布局的位置信息以及模型信息作比对。
3.动画型实验,通过LoadAnimation从库中选择动画模型,在timeline中添加触发事件,并以这种形式不断叠加,以最终播放完随后一个动画作为完成标准。
4.步骤型实验,通过LoadAnimation从库中选择动画模型,判断步骤是否正确,如果正确则通过UI提示进行下一步操作。过程中如果出现错误操作,则通过提示操作错误,返回上一步骤重新进行操作。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (6)
1.一种基于Unity平台的虚拟仿真实验制作系统,其特征在于包括:
1、场景初始化模块,启动引擎加载插件后会对新建的场景进行初始化;
2、模型导入模块
(1)导入.fbx格式模型存入基础模型库中,在预制体函数,创建预制体Pre fab以备后期调用;
(2)增加切换导入模型的主uv和次uv的Swap UVs和光照图UV集属性;
(3)对导入的模型进行信息添加,通过ModelInfo(String)对模型进行信息定义:
带有平面信息的模型,以模型坐标原点0,0,0插入相同尺寸的.png格式图片,定义平面图片为Plan图层,
带有模型预览功能的模型,定义模型的集合中心为模型中心点,在打开模型详细信息后,对模型在新窗口中进行自由旋转、缩放预览;
带有动画的模型,该模型在导入后在Assets>Model>BasicModel文件夹中创建与模型名称相同的.anim动画文件;
3、动画编辑模块:使用Unity引擎的Animation组件对模型进行帧动画编辑,保存到模型对应的文件夹下,将动画文件名与模型名称统一;
4、UI编辑模块:
通过GameObject.Instantiate()函数在场景内新建预设Canvas,以及多个功能性UI,包括图片、按钮、滚动条,逻辑通过ButtonEventController.cs预设操作逻辑;
UI面板通过LoadAsset()函数引用了图片、文字、视频内容,直接将素材拖入到内容栏中进行替换;
自定义UI界面,通过ChangeUIAsset(string path)指向Assets>UI>Image中的自定义UI图片文件夹来进行UI图片替换;
UI在自定义时按照UI模板中的图片尺寸、位置制作,并且与模板中的UI图片保持相同的文件名,通过FindUIAssetByName(string name)函数以文件名来查找所属UI类型;
5、相机模块
平面相机,通过设置相机Transform.Rotation=new Vector(90,0,0),通过orthographic=fakse将Projection设置为正交摄像机;
人视点相机,通过创建一个First Person Controller来预先设定一个第一人称视角控制器,实现多个功能包括模拟人物行走,碰撞以及摄像机;
自由相机,通过在平面相机中挂载CameraController组件开启相机控制逻辑;
通过启动First Person Controller以及平面相机两个GameObject来进行切换第一视角及第三视角的切换;第三视角包含了平面相机和自由相机,对Camera Controller组件的enable=false/ture的设置做到基本的平面相机以及自由相机的切换;
6、实验步骤模块
漫游型实验,通过LoadAsset从库中选择模型,通过CreatePath新建路径点GameObject,路径点GameObject包含一个红色的球体来在空间中标识位置,同时由Gizmos显示模式控制其在Game窗口运行模式下不显示,同一组路径点GameObject有Gizmos进行连接,可见相机运行轨迹路线;路径点GameObj ect由CreateKeyFrames添加关键帧缩略图;
布局型实验,通过LoadAsset从库中选择模型,每个模型通过LoadImage添加平面图片,通过设置Transform属性修正位置信息,通过导入到备选模型列表中;在运行时通过DragObject拖动模型到目标位置,并通过RecodeTransfo rm记录位置信息,和标准布局的位置信息以及模型信息作比对;
动画型实验,通过LoadAnimation从库中选择动画模型,在timeline中添加触发事件,并以这种形式不断叠加,以最终播放完随后一个动画作为完成标准;
步骤型实验,通过LoadAnimation从库中选择动画模型,判断步骤是否正确,如果正确则通过UI提示进行下一步操作;过程中如果出现错误操作,则通过提示操作错误,返回上一步骤重新进行操作。
2.根据权利要求1所述的基于Unity平台的虚拟仿真实验制作系统,其特征在于场景初始化模块:启动引擎加载插件后会对新建的场景进行初始化,以达到后期导出的场景标准;
1、初始化操作会删除新建场景内自带的Main Camera,并新建相机Camera;
2、设置Field of View为75,设置Background Color为RGBA(9,2,75,0);
3、删除Lighting>Scene>Skybox Material;
4、在Assets文件夹下新建Model文件夹,并从ProfilePath.cs中读取文件夹内部嵌套逻辑。
3.根据权利要求1所述的基于Unity平台的虚拟仿真实验制作系统,其特征在于模型导入模块:
1、导入.fbx格式模型存入Assets>Model>BasicModel文件夹中,通过PrefabUtility.CreatePrefab()函数在Assets>Model>Prefab文件夹中新建Prefab以备后期调用;
2、导入.skp格式模型时由于SketchUp模型并不支持自带光照UV,因此需要通过PrefabUtility.CreatePrefab()函数增加Swap UVs和Generate Lightmap UVs属性,再存入Assets>Model>BasicModel文件夹中,通过PrefabUtility.Crea tePrefab()函数在Assets>Model>Prefab文件夹中新建Prefab以备后期调用;
3、对导入的模型进行信息添加,通过ModelInfo(String)对模型进行信息定义,带有平面信息的模型,以模型坐标原点0,0,0插入相同尺寸的.png格式图片,定义平面图片为Plan图层;带有模型预览功能的模型,定义模型的集合中心为模型中心点,在打开模型详细信息后模型能在新窗口中进行自由旋转、缩放预览;带有动画的模型,该模型在导入后在Assets>Model>BasicModel文件夹中创建与模型名称相同的.anim动画文件。
4.根据权利要求1所述的基于Unity平台的虚拟仿真实验制作系统,其特征在于动画编辑模块:
1、对导入的模型进行动画编辑,使用Unity引擎自带Animation组件对模型进行帧动画编辑,编辑完成后将Animation动画保存到模型Assets>Model>Basic Model>XXX对应的文件夹下,并将动画文件名与模型名称统一;
2、多个模型多个动画编辑时使用Unity引擎自带TimeLine组件。
5.根据权利要求1所述的基于Unity平台的虚拟仿真实验制作系统,其特征在于UI编辑模块:
1、通过GameObject.Instantiate()函数在场景内新建预设Canvas,以及多个功能性UI,图片包括Logo、Top、Bottom、Option Bar、按钮包括Meun、Exit、滚动条;按钮逻辑通过ButtonEventController.cs预设好相关的操作逻辑ExitBtn.onClick.AddListener(ExitBtnOnClick);
2、如果在UI编辑模块中需要进行按钮及布局自定义,则需要在插件面板中点选AddButton,插件会通过CreateButton()函数新增一个按钮,并且需要通过AddButton()函数指向需要打开的面板;
3、UI面板通过LoadAsset()函数引用了图片、文字、视频内容,可以通过直接将素材拖入到内容栏中进行替换;
4、自定义UI界面,通过ChangeUIAsset(string path)指向Assets>UI>Image中的自定义UI图片文件夹来进行UI图片替换;UI在自定义时需要严格按照UI模板中的图片尺寸、位置来进行制作,并且与模板中的UI图片保持相同的文件名,通过FindUIAssetByName(string name)函数以文件名来查找所属UI类型。
6.根据权利要求1所述的基于Unity平台的虚拟仿真实验制作系统,其特征在于相机模块:
1、平面相机,通过设置相机Transform.Rotation=new Vector(90,0,0),通过orthographic=fakse将Projection设置为Orthographic;
2、人视点相机,通过创建一个First Person Controller来预先设定一个第一人称视角控制器,其中包含了模拟人物行走,碰撞以及摄像机等多个功能;
3、自由相机,通过在平面相机中挂载CameraController组件开启相机控制逻辑,WASD控制相机平移、QE控制相机升降、[]控制相机FOV;
4、通过启动First Person Controller以及平面相机两个GameObject来进行切换第一视角及第三视角的切换;第三视角包含了平面相机和自由相机,对Came raController组件的enable=false/ture的设置做到基本的平面相机以及自由相机的切换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010211559.4A CN111524221A (zh) | 2020-03-24 | 2020-03-24 | 基于Unity平台的虚拟仿真实验制作系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010211559.4A CN111524221A (zh) | 2020-03-24 | 2020-03-24 | 基于Unity平台的虚拟仿真实验制作系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111524221A true CN111524221A (zh) | 2020-08-11 |
Family
ID=71901050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010211559.4A Withdrawn CN111524221A (zh) | 2020-03-24 | 2020-03-24 | 基于Unity平台的虚拟仿真实验制作系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111524221A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112767799A (zh) * | 2021-02-07 | 2021-05-07 | 江南大学 | 一种基于电磁学实验器材的软件构件封装方法 |
CN112891948A (zh) * | 2021-04-06 | 2021-06-04 | 辽宁工程技术大学 | 一种基于unity3D的游戏场景树木毁坏的方法 |
CN113160362A (zh) * | 2021-04-23 | 2021-07-23 | 清华大学 | 一种电阻应变测量实验虚拟演示实现方法及系统 |
CN113791821A (zh) * | 2021-09-18 | 2021-12-14 | 广州博冠信息科技有限公司 | 基于虚幻引擎的动画处理方法、装置、介质与电子设备 |
CN115640044A (zh) * | 2022-12-26 | 2023-01-24 | 北京格如灵科技有限公司 | 基于Unity的三维软件开发方法、装置、设备及介质 |
-
2020
- 2020-03-24 CN CN202010211559.4A patent/CN111524221A/zh not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112767799A (zh) * | 2021-02-07 | 2021-05-07 | 江南大学 | 一种基于电磁学实验器材的软件构件封装方法 |
CN112891948A (zh) * | 2021-04-06 | 2021-06-04 | 辽宁工程技术大学 | 一种基于unity3D的游戏场景树木毁坏的方法 |
CN113160362A (zh) * | 2021-04-23 | 2021-07-23 | 清华大学 | 一种电阻应变测量实验虚拟演示实现方法及系统 |
CN113160362B (zh) * | 2021-04-23 | 2022-08-05 | 清华大学 | 一种电阻应变测量实验虚拟演示实现方法及系统 |
CN113791821A (zh) * | 2021-09-18 | 2021-12-14 | 广州博冠信息科技有限公司 | 基于虚幻引擎的动画处理方法、装置、介质与电子设备 |
CN113791821B (zh) * | 2021-09-18 | 2023-11-17 | 广州博冠信息科技有限公司 | 基于虚幻引擎的动画处理方法、装置、介质与电子设备 |
CN115640044A (zh) * | 2022-12-26 | 2023-01-24 | 北京格如灵科技有限公司 | 基于Unity的三维软件开发方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111524221A (zh) | 基于Unity平台的虚拟仿真实验制作系统 | |
US10078325B2 (en) | Systems and methods for designing programmable parts for models and optimizing 3D printing | |
WO2020103702A1 (zh) | 在线教学课件的编辑和生成方法以及系统 | |
TWI413017B (zh) | 用於混合式物件屬性關鍵製格模組之方法與電腦系統 | |
KR102294134B1 (ko) | 하이브리드 슬라이드-캔버스 프리젠테이션을 합성하기 위한 저작 도구 | |
US11501658B2 (en) | Augmented reality platform for collaborative classrooms | |
Smith et al. | Android recipes: a problem-solution approach | |
CN101233496A (zh) | 用于3d用户界面程序的视觉调试系统 | |
US9159168B2 (en) | Methods and systems for generating a dynamic multimodal and multidimensional presentation | |
CN112184880A (zh) | 建筑三维模型处理方法、装置、计算机设备和存储介质 | |
Villar | Learning Blender | |
CN101374213A (zh) | 电视人机界面自定义的实现方法 | |
CN114329695A (zh) | 一种基于HoloLens的BIM+MR的施工管理方法 | |
CN115170365A (zh) | 一种基于用户配置生成的虚拟仿真教学系统以及方法 | |
CN110704152A (zh) | 图形化在线互动教学内容创建系统及方法 | |
CN115379278B (zh) | 基于扩展现实(xr)技术沉浸式微课的录制方法及系统 | |
Boardman | 3ds max 6 Fundamentals | |
CN115426520A (zh) | 一种对直播间的直播场景进行布置的方法、装置及设备 | |
TWI327300B (en) | Simulated learning software and method for making the same | |
Ma et al. | Innovative Applications of Digital Art and Augmented Reality in the Construction Industry through Building Information Modeling | |
Ding et al. | Research on the Key Technology of Augmented Reality Technology in the Application and Development of Children's Plant Science Popularization Education | |
Chung | Pro Processing for Images and Computer Vision with OpenCV: Solutions for Media Artists and Creative Coders | |
Eidenberger | SMIL and SVG in teaching | |
Ullrich et al. | AlgoViz-a computer graphics algorithm visualization toolkit | |
CN117008894A (zh) | 一种基于混合现实技术的拆装信息快速配置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200811 |