APP下载

面向岗位需求的高职院校虚拟现实技能训练体系研究

2024-11-29姜蕴莉

电脑知识与技术 2024年27期

摘要:针对高职院校虚拟现实技术技能型人才培养需求,文章分析了虚拟现实技术产业的人才需求现状, 并以Unity3DVR软件程序员岗位为例,构建了基于岗位技能需求的虚拟现实技能训练知识体系。在此基础上,设计了涵盖VR 场景搭建、用户界面、动画与粒子特效、交互与脚本、性能优化与发布等模块的技能训练案例,并以Pico VR 头戴设备为例,详细阐述了VR岛屿探险游戏的开发流程和技术要点。研究结果可为高职院校虚拟现实技术专业课程建设和技能训练提供参考。

关键词:虚拟现实技术;技能训练;Unity3D

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)27-0136-03

0 引言

随着新一代信息技术的快速发展,虚拟现实(VR) 技术在教育、建筑、医疗等领域得到越来越广泛的应用。VR行业的蓬勃发展对技能型人才提出了迫切需求,也对高职院校的人才培养提出了新的挑战。然而,目前高职院校虚拟现实专业课程教学普遍存在技能训练不足、案例陈旧等问题,难以满足行业对高素质技能型人才的需求[1]。因此,构建基于岗位需求的虚拟现实技能训练知识体系,并开发相应的技能训练案例,对于提升高职院校虚拟现实技术专业人才培养质量具有重要意义。

1 基于岗位的人才需求分析

目前,现有的虚拟现实技术人才培养还处于起步阶段,教学内容和形式往往与企业实际岗位需要脱节,尤其是缺少技能训练或者训练的案例相对陈旧或者不实用。为了使培养的人才能满足企业发展的需要,需要在虚拟现实技术课程教学过程中基于岗位工作能力需求为基础,任务为驱动开展教学,培养以岗位职业技能能力需求为导向的虚拟现实高技能人才[2]。

为使人才培养与企业实际需求相匹配,高职院校虚拟现实技术专业课程教学应以岗位工作能力需求为导向。本研究通过行业调研和企业访谈,分析了虚拟现实应用技术产业的人才需求状况,并重点关注VR 软件程序员岗位的职业能力要求[3]。研究发现,VR软件程序员需要具备以下核心能力:熟练掌握C# 等编程语言;熟悉常见VR设备及SDK开发;熟练掌握Unity3D等虚拟引擎的开发使用;能够实现虚拟现实体验的核心逻辑,包括用户交互、物理模拟、动画控制等;熟悉软件开发过程,具备现实工程项目的交互功能设计和研发、环境搭建、软硬件平台设施构建与开发调试等基本能力。

2 技能知识体系

根据 VR 软件程序员岗位的核心能力要求,构建了如图1所示的知识体系。该体系涵盖了Unity编辑器基础、GameObject和组件、C#脚本语言、基础操作、物理系统、动画系统、渲染与着色、用户界面、音频、地形系统、粒子系统、输入系统、音频系统、网络编程、脚本API、特定平台的SDK的使用等核心知识点和技术领域[4]。

3 综合技能训练案例分析

Unity 3D引擎应用开发主要有基于PC端、安卓端、头戴 VR 眼镜端等,本文分别以头戴 VR 眼镜端为例进行技能训练案例设计。为了涵盖Unity 3D主要知识点并针对Pico VR头显开发一个综合案例,我们可以设计一个简单的VR探险游戏。这个案例将结合Unity中的多种技术和功能,同时考虑Pico VR设备的特点和限制,案例名称为VR岛屿探险游戏。游戏目标为:玩家在一座神秘的岛屿上探险,寻找隐藏的宝藏,避开危险。

3.1 案例介绍

开始游戏后,玩家通过Pico手柄控制游戏玩家行走、跳跃、转向等操作,在预设好的几个场景中进行漫游探险寻宝。玩家先找到标记着宝藏位置的藏宝图,再寻找宝藏。游戏场景中随机设有各种不同伤害值和伤害类型的陷阱,玩家需要小心避开。还可能会遇到守护宝藏的怪物,玩家需要战斗或躲避它们。如果遭到伤害,会降低玩家的生命值,玩家需要注意自己的生命值状态,如果生命值为0则玩家死亡,游戏失败。每个场景为一不同级别的关卡,初始场景为第一级关卡,各场景中设有不同类型的宝物,玩家得到宝物,可以增加生命值或者技能等级,宝物类别是随机的,可以是增加生命值的生命水、漫天花雨特效、免一次怪兽伤害的防御盾等,获取关卡中所有宝物后通关,进入下一关卡。功能流程图如图2所示。

3.2 技术要点

1) 场景构建:使用Unity的Terrain工具创建地形;使用Tree Creator工具和Paint Texture工具美化环境;利用ProBuilder或3D模型导入来创建建筑和其他物体。2) 光照与渲染:使用Lighting Window设置环境光和光源;应用HDRP(高清渲染管线)或URP(通用渲染管线)以提高画质;使用Bloom效果增强光照效果,使用Reflection Probes捕捉和反射环境光线。3) 玩家控制:使用Character Controller或Rigidbody组件来控制玩家移动;利用Pico XR SDK集成Pico控制器的支持;通过Input Tracking获取头部和手部追踪数据。4) 交互与谜题:使用Raycast检测玩家的视线方向,实现物品交互;利用Animator组件实现交互时的动画变化。5) 声音系统:使用Audio Source组件播放背景音乐和音效;利用Spatial Audio实现3D立体声效果。6) UI:使用Canvas创建用户界面,显示提示信息和游戏菜单;创建一个简洁的菜单系统用于选项和退出游戏;显示地图信息,使用Text Mesh Pro制作高质量的文字UI。7) 性能优化:使用Level of Detail (LOD)减少远处物体的细节;使用Occlusion Culling减少不必要的渲染;使用Texture Atlases减少纹理抽样次数。8) 脚本编写:使用C#编写脚本实现游戏逻辑;使用Coroutine 实现异步操作,如加载新场景或渐变效果;使用Events来同步不同游戏对象之间的动作。9) 场景管理:使用SceneManager加载不同的场景或区域;使用Streaming Assets来动态加载大文件,如视频介绍或过场动画。10) 发布与调试:使用Unity Profiler进行性能分析,分析并解决性能瓶颈,使用Build Settings配置发布平台;使用Pico XR SDK进行打包和签名;在PicoVR设备上进行测试。

3.3 设计与实施

3.3.1 资源需求

在游戏开发前,要规划好场景、准备好项目所需资源,资源可以通过Asset Store下载或者导入3D Max 等制作的资源,项目场景及所需资源列表如表1所示。

3.3.2 Pico 端开发环境设置

这部分涉及的技能知识点是Pico VR开发,设置Pico端开发环境主要操作步骤如下。

步骤一:新建项目后,导入Pico SDK,在 PackageManager 窗口中,点击 + > Add package from disk,选择 package.json 文件并导入。步骤二:启用 Pico XR 插件,在 Project Settings 窗口中,点击XR Plug-in Man⁃agement > 安卓设置图标,勾选 Pico。步骤三:设置包名及版本号,在 Project Settings 窗口中,点击左侧导航栏处的 Player,在 Player 面板处,设置Company Name、Product Name 和 Version。步骤四:设置 Player 相关参数,设置应用运行所需的最低 Android SDK 版本为29,将 Scripting Backend 设置为 IL2CPP,将 Target Ar⁃chitectures 设置为 ARM64,并取消勾选ARMv7。步骤五:升级 XR Interaction Toolkit 并导入示例文件。步骤六:添加 XR 摄像机,删除原有默认添加的 MainCamera,点击 + > XR > XR Origin (VR),将 XR Origin 添加至场景。

3.3.3 游戏世界与环境搭建

这部分涉及的技能知识点有:场景创建与管理、地形系统、建筑物和环境、植被、光源系统、模型、纹理。

设计目标:搭建玩家岛屿探险的游戏场景,使得玩家可以在一个广阔的、充满秘密的岛屿上自由探索。场景模拟自然岛屿,有山脉、河流、森林、动植物、岩石等自然环境,有晴天、雨天、雾天等动态天气系统,还有各种场景环境中所需的模型。

游戏世界与环境搭建通常涉及从创建基本环境到完善细节的多个步骤,设计要点如下:创建“初级关卡”“中级关卡”“高级关卡”三个场景;通过Asset Store 下载所需的模型、纹理和其他资源;使用Terrain系统分别在三个关卡场景创建不同的岛屿环境,包括森林、植被、山谷;使用水面着色器创建湖泊或河流;放置动植物、岩石、怪物、宝物、木屋等到合适的位置,难度高的关卡放置的怪物容易对玩家造成伤害并且伤害值大;设置环境光的颜色和强度,添加太阳光模拟白天的效果,在需要的地方添加点光源或探照灯,营造出神秘或者强调的效果;加入天气变化系统,模拟雨雪等效果;为场景中的对象分配合适的材质,使用高质量的纹理提升视觉效果,使用法线贴图、凹凸贴图等增加细节[5]。

3.3.4 玩家控制

这部分涉及的知识点有:角色控制器、刚体、碰撞体、碰撞检测、Pico VR开发、UI、物理系统等。

设计目标:设计玩家控制相关的设置与操作,确保玩家能够顺畅地在游戏中移动、互动并完成任务。

设计要点如下:案例游戏是第一人称视角,XR 摄像机代表玩家,为XR 摄像机添加刚体组件Rigidbody、角色控制器组件Character Controller;设计直观的UI 来显示玩家的生命值和饥饿度,初始值分别为100和0;集成Pico XR SDK,编写玩家控制脚本,比如:利用PicoVR设备的头部追踪功能,使玩家通过头部转动来改变视角,使用手柄的摇杆来控制玩家角色的移动。

3.3.5 用户界面设计

这部分涉及的知识点有:Canvas、UI元素、布局、交互。

设计目标:设计四个场景中的菜单和交互元素,设计抬头显示信息,为玩家提供必要的提示信息,设计设置菜单,提升游戏的可用性和可玩性。

设计要点如下:创建初始场景,在初始场景中创建游戏介绍按钮、游戏设置按钮、背景图、开始游戏命令按钮。创建游戏介绍面板,介绍游戏玩法。创建游戏设置面板,调整背景音乐音量、开关背景音乐;在各关卡场景中创建小地图——藏宝图,显示所在场景岛屿的地图,标注出玩家当前位置、宝藏位置、任务点等信息,创建背包面板,展示玩家拥有的物品。设计直观的UI显示任务提示,在玩家靠近可交互对象时显示提示信息,指导玩家如何操作。设计游戏胜利、游戏失败面板,在游戏胜利或失败时,分别被显示。

3.3.6 交互设计

这部分涉及的知识点有:Unity脚本基础、常用类和结构体、Pico VR开发、物理系统、UI、脚本控制粒子系统和动画系统、脚本控制粒子系统等。

设计目标:定义游戏中的行为、响应玩家输入以及控制游戏世界的状态,对可交互的对象编写交互逻辑,确保玩家能够顺畅地与游戏环境、角色和其他游戏元素进行互动。

设计要点如下: 使用扳机键trigger与游戏世界进行确认、选择、攻击怪物、打开宝箱、展示信息面板、关闭信息面板、受到陷阱伤害、打怪兽、受到陷阱伤害、答谜题、显示藏宝图、触发事件等交互,使用抓握键grip拾起宝物,按“a”键实现跳跃,使用物理引擎来检测玩家与其他物体的碰撞并作出相应的反应。

3.3.7 添加音效

涉及的知识点有:音频文件属性、AudioListener、AudioSource、代码控制音频源。

设计目标:在场景中添加合理的背景音乐和音效,控制音效的播放,增强游戏的沉浸感和互动性。

设计要点如下:给四个场景分别设置不同的背景音乐,设置背景音效属性,比如自动播放、循环播放、音量初始大小适中。编写脚本来响应游戏事件,触发相应的音频播放。允许通过脚本修改声音的音量等参数。除背景音效是自动播放外,其他音效均由触发播放,比如:击打怪物时的音效、游戏胜利后播放的音效、游戏失败后播放的音效、被怪物伤害后的音效、踩到陷阱后的音效。

3.3.8 添加动态效果

涉及的知识点有:Animator Controller、AnimationClips、Animation、动画交互、粒子系统,shader编程。

设计目标:为游戏对象添加动画效果、粒子系统,添加动态效果文字,增强游戏画面动态效果。

设计要点如下:在初始场景中利用shader创建彩虹流动特效的欢迎文字,再添加一个循环播放的欢迎动画。在各关卡场景,给各怪兽添加死亡时的倒地动画、守护宝物时的巡视动画,给藏宝图添加找到藏宝图时徐徐展开的动画。编写脚本来响应游戏事件,触发相应的动画播放。给开启宝箱时设置发光的粒子特效,持续5秒钟。

这个案例涵盖了Unity 3D的主要知识点,并特别考虑了Pico VR设备的特点。通过这个案例的开发,可以全面地了解Unity 3D在VR开发中的应用,包括场景构建、用户界面、特效设计、交互设计等方面。

4078p9AeTkTJPrQ6lbQxX0GX/ePDyXvGbTFEpH6gfZE=

4 总结

本文分析了基于Unity3D的VR软件程序员岗位所需的技能知识体系,并基于该知识体系设计了技能训练案例,有助于提升学生职业技能,使学生所学更好地与行业岗位需求衔接。同时,建议高职院校可以通过多种方式提高学生职业技能,例如与 VR 企业的合作,共建 VR 教学资源库和实训基地;鼓励教师开发基于真实项目案例的VR教学内容;组织学生参加VR 技能大赛,提升学生的实践能力和创新能力等。

参考文献:

[1] 张秀玉.高职院校虚拟现实专业课程体系构建探究[J].机电技术,2017,40(6):117-120.

[2] 李志勇.虚拟现实引擎技术项目化课程探索[J].电脑知识与技术,2021,17(25):213-215.

[3] 范茜.基于“岗课证赛创” 融合的高职虚拟现实技术课程教学改革研究[J].电脑知识与技术,2023,19(14):116-118,150.

[4] 陈星宇.Unity3D在室内设计沉浸式体验中的应用实践[J].电脑知识与技术,2024,20(2):109-111.

[5] 李秀娟.虚拟现实技术教学中的案例设计探讨[J].电脑与电信,2020(5):79-81.

【通联编辑:光文玲】

基金项目:江西省教育厅资助科研项目“基于移动云计算的新一代信息技术技能训练平台开发研究”(项目编号:GJJ2204910)