APP下载

一种VR摘西瓜游戏制作技术*

2022-05-09魏三强蒋正铨张晓光

关键词:手柄视图射线

魏三强,蒋正铨,张晓光

(1.宿州职业技术学院 计算机信息系,安徽 宿州 234101;2.中国矿业大学 信息与控制工程学院,江苏 徐州 221116)

0 引言

随着人们生活水平的提高和生活节奏的加快,市民对农村的田野生活越来越疏远。城里长大的孩子对蔬菜和水果的生长知识知之甚少,一些家长为了给孩子补充常识,会在周末或节假日带着孩子去城郊或农村采摘园进行采摘活动,采摘蔬菜和水果已成为市民亲近自然、感受自然的一种新型的休闲方式。但是,对那些工作十分忙碌的家长而言,很少有时间带孩子去乡村体验采摘生活[1]。据此,设计与制作了一款VR摘西瓜小游戏,希望能够满足市民足不出户、虚拟采摘西瓜的愿望,从而达到亲近自然、感受自然的目的。

1 游戏设计

1.1 软件工具与方法

使用Unity 3D(2019版)作为游戏开发主软件。使用Maya软件创建游戏3D模型,将“瓜棚”“干草卷”等3D模型导出为.fbx格式文件,并拖到Unity 3D的Project视图中,再逐一添加Mesh Collider网格碰撞体,使用Steam VR插件、射线瞬移和编写C#脚本实现西瓜地的交互式漫游设计[2-3]。使用Quixel Bridge软件制作材质,导入Unity 3D软件中,并赋予3D模型材质(直接将材质库里的西瓜模型导出到Unity 3D中)。将音效文件yinxiao.mp3拖至Unity 3D的Project视图Assets中,通过Component/Audio/Audio Source添加音频源。

1.2 游戏交互设计

在使用Unity 3D软件搭建完成“地形” “树木”等游戏场景后(如图1所示),接着进行游戏交互设计。本游戏的交互设计流程是:首先进入游戏首界面,点“开始游戏”按钮进入游戏,通过射线瞬移可移至西瓜地的每一个角落,用HTC Vive两个手柄的扳机键可以采摘西瓜,可把采摘的西瓜都集中在瓜棚下。

图1 游戏场景截图

2 游戏制作关键技术

本游戏的主要制作流程是:按VR摘西瓜游戏要求调研分析各个模块的功能,如具体制作中,虚拟场景中的模型和纹理贴图都来源于真实场景,使用Maya软件创建游戏3D模型,使用Quixel Bridge软件制作材质,使用Unity 3D软件搭建游戏场景、制作图形界面、设置Steam VR插件、编写C#脚本语句、制作音效和发布游戏[4-5]。

2.1 游戏首界面按钮交互控制

创建脚本ShouJiemian.cs,“开始游戏”按钮、“结束游戏”按钮的代码编写如下:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.SceneManagement;

public class ShouJiemian : MonoBehaviour

{

public void PlayGame( )

{

SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);

}

public void QuitGame( )

{

Debug.Log("QUIT!");

Application.Quit( );

}

}。

2.2 创建玩家预设体Player

在Unity 3D资源商店中搜索并下载安装Steam VR插件,将Project视图中的玩家预设体Player拖入到Scene视图的游戏场景中,关闭主摄像机Main Camera,点播放按钮,戴上HTC Vive头盔,以玩家Player视角进入游戏场景。

2.3 射线瞬移交互控制

首先将SteamVR中的Teleporting.prefab拖到游戏场景中,添加射线瞬移预设体。接着复制一个地面(Plane1)用于传送区域处理,将TeleportArea.cs添加到Plane1上。再找到SteamVR中的TeleportPoint.prefab拖到游戏场景中,点击HTC Vive手柄的触控板控制射线瞬移。按此方法,在西瓜地各角落中添加若干个Teleportpoint.prefab[6-7],可实现整个西瓜地中的定点射线瞬移。

2.4 抓取抛掷制作

为西瓜添加刚体Rigidbody组件、速度估算脚本VelocityEstimator、悬停事件InteractableHoverEvents、抛掷Throwable后,就可以使用HTC Vive两个手柄的扳机键采摘、抛掷西瓜。

2.5 给游戏添加音效

选中西瓜,为西瓜添加Sphere Collider组件。在西瓜上添加一个Audio Source组件,并指定AudioClip为音效文件yinxiao.mp3。取消勾选Play On Awake和Loop复选框。在Project视图中创建一个新的脚本,将其命名为GuaCollider.cs,输入下列代码[8-9]:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class GuaCollider : MonoBehaviour

{

//定义一个AudioSource对象

AudioSource guaAudio;

void Start( )

{

//初始化音效

guaAudio = GetComponent( );

}

//当发生碰撞的时候调用该方法

public void OnCollisionEnter(Collision collision)

{

//播放音效

guaAudio.Play( );

}

}。

2.6 游戏的发布

在Unity 3D的菜单栏中选择File→Build Settings命令,在Platform处选择默认的PC,Mac & Linux Standalone,单击Build按钮[10-11],选择可执行文件保存的路径,然后等待生成可执行文件,即可完成游戏发布到PC平台。

3 实验测试

3.1 实验测试平台

实验测试选用的测试平台是VR图形运算工作站:i7-9700 CPU;操作系统:Windows 10,64位;内存:32GB;显卡:GeForce RTX 2060 SUPER;HTC Vive头盔,HTC Vive操控手柄。

3.2 实验测试与结果分析

直接运行该游戏的.exe文件,进入游戏的首界面(如图2所示)。点“开始游戏”按钮进入游戏,戴上HTC Vive头盔,通过两个HTC Vive操控手柄可实现在西瓜地中的交互式虚拟漫游。

图2 游戏首界面

(1)射线瞬移测试。使用HTC Vive手柄操控,通过射线瞬移可准确地传送到西瓜地中预设的若干个传送点(如图3、图4所示)。本测试通过,定点传送准确。

图3 射线瞬移传送点 图4 射线瞬移测试

(2)采摘西瓜体验测试。通过HTC Vive操控手柄可采摘西瓜(如图5所示),并可搬运西瓜至目的地(如图6所示)。测试通过,体验效果良好。

图5 摘西瓜测试 图6 搬运西瓜测试

(3)音效测试。当西瓜落到地面上时,就会发出音效声。本测试通过,声音效果良好。

4 结语

本研究完成的小游戏实现了VR采摘西瓜的体验效果,能够为体验者带来摘西瓜的喜悦感,达到了亲近自然、感受自然的目的。但游戏的交互体验项目偏少、动景少、天空中无飞鸟、无人物元素等。下一步的研究将增加游戏的交互式体验项目,丰富游戏的动态场景元素,使得游戏场景元素更加丰富、娱乐性能更强。

猜你喜欢

手柄视图射线
基于PLC控制的手柄座钻孔攻丝一体机的研发
“直线、射线、线段”检测题
『直线、射线、线段』检测题
一种多功能无线手柄的设计
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
赤石脂X-射线衍射指纹图谱
γ射线辐照改性聚丙烯的流变性能研究