Skip to content

北京大学计算机图形学课程大作业选题之一——使用虚幻引擎4实现的VR小游戏。游戏中支持使用Oculus手柄抓取武器:单手剑、长柄武器、弓箭,并能使用武器敌对动物。

Notifications You must be signed in to change notification settings

CaptainHarryChen/hunt-craft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HuntCraft

本项目为使用虚幻4引擎开发的VR小游戏,使用头显设备Oculus Quest 2

在游戏中,玩家可以在大世界中自由探索,使用近战武器与危险的动物展开搏斗,灵活运用闪避技巧躲避攻击,或使用潜行技巧巧妙接近动物,或者用弓箭远程射击。

项目中提供测试关卡用于测试游戏中各种机制。

由于资源大小问题,部分资源不会上传。

资源需求

未上传git资源:

动物资源包:虚幻商城 Animal Variety Pack

武器资源包:虚幻商城 Free Fantasy Weapon Sample Pack

大地图:虚幻商城 Landscape Pro 2.0 Auto-Generated Material

大作业提交中,由于大地图过于巨大(3.0G),未上传教学网,并且已在程序中删除进入大地图的入口。其余资源已上传

编译及运行方式

首先将Oculus Quest 2连接至电脑,使用Unreal Engine 4.27打开HuntCraft.uproject,点击引擎中的VR运行。

玩法介绍

  1. 操作介绍

    左手柄摇杆:前后左右移动

    左手柄菜单:打开游戏菜单

    右手柄摇杆:打开传送模式

    右手柄A键和B键:跳跃

    左右手柄握把键:抓取物体

    菜单模式中,左手柄摇杆用于选择菜单栏,左手柄扳机用于选择确认

  2. 武器使用

    打开菜单栏,选择对应武器可以召唤武器

    :单手握持(可以使用左右手),可以对动物直接进行挥砍造成伤害,伤害:50

    :可以单手握持,也可以双手握持,双手握持时由两只手共同决定矛的方向。单手伤害:40,双手伤害:70

    :需要双手握持进行射击。双手握持时,后手拉弓,拉弓到一定距离后会在弓上生成箭,后手松手时,箭被释放射出,伤害与箭击中物体的速度有关,平均伤害约为50

  3. 潜行

    在现实中下蹲到一定高度可以进入潜行模式,此时行走时只会发出微小的声音,更不容易被动物听见

    蹲下时,人物身高变矮,可以闪避掉动物的跳跃攻击,也可以通过一些比较矮的通道。

  4. 动物

    狐狸是和平动物,不会攻击玩家。当狐狸发现玩家后(听见或看见),会像同伴发起警告,快速远离玩家

    狼是攻击性动物,当其发现玩家后,会像玩家发起攻击,若狼攻击到玩家,玩家会立即死亡。

文件说明

  1. Config文件夹:项目以及引擎设置,定义了按键映射,游戏运行的主类等信息
  2. Content文件夹:工程的主体,包括各种蓝图,材质,音效等

Content

Content中,由我们自己编写的代码均在ours文件夹中。另外,STF中大地图中添加了动物等操作。

  1. AnimalVarietyPack:动物模型、材质、骨骼等
  2. Bow_Arrow:弓和箭的模型、材质、骨骼等
  3. Geometry:基础方块以及地板模型
  4. STF:大地图
  5. VRSpectator,VRTemplate:虚幻自带的VR控制模板,我们的设计主要继承这里面的类并写在了ours文件夹里
  6. Weapon_Pack:武器模型、材质

ours

  1. actors:包含Target蓝图类,定义了移动的靶方块,被武器击中会发出爆炸声并变色,用于在靶场测试

  2. AI_utils:动物AI相关类

    1. AI:包含和平动物和攻击动物的AI类。AIController定义了AI运行的哪一个行为树算法,并且定义了AI的听觉和视觉感知

      BT前缀为AI的行为树,BB前缀为行为树使用的黑板。AIController与行为树之间使用黑板交互。

    2. BTService:行为树使用的服务模块

    3. BTTask:行为树使用的任务模块,包含动物攻击模块,修改速度模块,计算随机游走位置模块,逃跑模块等

  3. Animal:动物相关类。其中Animal类为所有动物的父类,定义了动物的共同行为,如受到伤害、惊吓等虚函数,骨骼模型,碰撞箱等共有模块

    1. Fox:定义了动物狐狸,具体化了模型,各种事件处理等。FoxAnimation为动画类,使用状态机模型运行动画。
    2. Wolf:定义了动物狼,与狐狸类似。
  4. maps:两个测试地图,用于调试的test地图和靶场地图

  5. Sound:音效和背景音乐,取材至互联网

  6. UI:用户界面,角色死亡界面和动物血条

  7. VRutil:VR相关功能

    1. GrabbleActor:可抓取物品的基类
    2. GrabComponentTwoHands:双手抓取的组件,定义双手抓取时物体的旋转逻辑
    3. GrabTowHandActor:可双手抓取物体的基类
    4. ReleaseArrowEffect:射箭的震动特效
  8. weapon:武器相关功能。weapon:武器的基类,包括武器在场景中为漂浮可拾取状态等功能。其余类均为对应武器的实现。

  9. TestVRCharacter:VR角色控制类,用于控制自己角色,包括移动跳跃,控制器等

  10. TestCharacter:键盘控制的角色类

About

北京大学计算机图形学课程大作业选题之一——使用虚幻引擎4实现的VR小游戏。游戏中支持使用Oculus手柄抓取武器:单手剑、长柄武器、弓箭,并能使用武器敌对动物。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published