目录
一、设计简介及故事概要
我设计了一款微恐密室逃脱游戏,为了让游戏有挑战性一点,我加入了一些机关元素,我搭建了一个房屋,躲避npc逃脱模式。查阅了很多恐怖题材的密室,决定将天气设为夜晚,再加一些闪烁的灯光烘托气氛。不仅加入伤害,也加入回血功能,根据提示找到钥匙,开启天梯之门,保证玩家可以顺利通关。( 传说进入石头屋的人,不久之后就会变成没有意识且有剧毒的石头人,你的朋友不小心进入了石头屋,最后关头给你发来消息求助,你缓过神来,猛地发现不知何时你也身处石头屋,好在你的朋友失踪之前已经探索过很多信息并藏在了角落,你的目标是根据线索寻找到钥匙,躲避石头人的伤害,活着逃脱石头屋。
二、环境设计与场景搭建
将天空球改成黑夜
通过修改SkySphereBlueprint的值,修改了云的颜色,通过旋转调整光照射的方向,将大环境设为黑夜状态。
![](https://img-blog.csdnimg.cn/img_convert/3e40c6b8293afb1c7050adad400e29e5.png)
通过画刷(BSP)搭建逃脱石头屋
本来打算直接套用虚幻商城里面的模型,但是发现那样不太方便我后续设计逃脱的机关,所以查阅资料了解到BSP功能,自己设计了大概逃脱房屋。
过程:
![](https://img-blog.csdnimg.cn/img_convert/33bed997a57a086f3bb8f3ec16dffcf2.png)
![](https://img-blog.csdnimg.cn/img_convert/6727ad4d1b5f2c28911fd5aba50e8d2d.png)
成品:
(无光照环境下)
![](https://img-blog.csdnimg.cn/img_convert/fa0713fbb846d25c6f2345155f8f5360.png)
一层:
![](https://img-blog.csdnimg.cn/img_convert/3f7823303dc2bc15e011cce32a52bb90.png)
二层:
![](https://img-blog.csdnimg.cn/img_convert/15f6c82f5ddb374c97e181ea4461a52d.png)
![](https://img-blog.csdnimg.cn/img_convert/653fcd673d4283d63d3ef1340611d88f.png)
地下室:
![](https://img-blog.csdnimg.cn/img_convert/becf438b1acc8b2f9875e10b0b706b91.png)
天梯:
![](https://img-blog.csdnimg.cn/img_convert/5a5292b8024865356eb6f4741d9c4111.png)
添加地形
搭建好房子空空旷旷,我使用地形画笔随便拉了几座小山,在虚幻商城导入了一个材质包,利用植物模式画在地形上,简单装饰。
![](https://img-blog.csdnimg.cn/img_convert/ba2203ca48040c902199950dbb6ea594.png)
添加氛围元素
在一楼我添加了一把大火,还添加了闪烁的红色灯光,给游戏增加恐怖氛围
![](https://img-blog.csdnimg.cn/img_convert/f7c881379ab8b7b963a2135fe5847811.png)
通过时间轴实现一闪一闪的效果:
![](https://img-blog.csdnimg.cn/img_convert/f7a6f9a3a8793c76a5f1c6743c8d22be.png)
效果:
![](https://img-blog.csdnimg.cn/img_convert/18c641466d2ed707e5696a328b6df1da.png)
![](https://img-blog.csdnimg.cn/img_convert/59bb24d9c67811f4532b7390872d07c1.png)
![](https://img-blog.csdnimg.cn/img_convert/3498c5858bc4f152872dcc8c8b252d6e.png)
感应灯
创建蓝图LIGHT类,用来感应,有人路过就亮起,通过box重叠切换可视性实现
![](https://img-blog.csdnimg.cn/img_convert/af8b5bea06485699268a644986ad7da2.png)
效果:
![](https://img-blog.csdnimg.cn/img_convert/da23e129049353b5132a7f35c5849abe.png)
二、游戏机关蓝图设计
1.手电筒设计
由于我的逃脱环境大多比较黑暗,所以我设计了一个手电筒给人物,在看不清的情况下就可以按F开灯查看前方路况,在人物身前放置一个SpotLight然后设计一个切换可视性即可。
![](https://img-blog.csdnimg.cn/img_convert/2e4ad3c42066570640b464a873840248.png)
![](https://img-blog.csdnimg.cn/img_convert/3a4ffa1cfa3856a9ccfa97a31d472a8d.png)
2.设计开关门
整个房子里有很多门,有门就得有钥匙,所以我创了门类和钥匙类,以方便后续更改管理
![](https://img-blog.csdnimg.cn/img_convert/4d8df85da049cc27e25fa6a93ff8856e.png)
![](https://img-blog.csdnimg.cn/img_convert/12dc0d26939689c663ed538635e1c3f0.png)
Key来打开通往地下室的门
Key2来打开天梯的门
Noke用来混淆
蓝图:
Door实现按键盘1就将门旋转85度,在视口增加一个box来检测重叠,当重叠时键盘敲1来通过时间轴正向反向播放,updata 更新设置门的相对旋转,使用Flip Flop节点使鼠标点击两次可以实现开关门效果。使用if分支判断是否是正确的钥匙,不正确则打印字符串“不匹配”。
![](https://img-blog.csdnimg.cn/img_convert/f6efe426a6fe54e68ad203094932324f.png)
![](https://img-blog.csdnimg.cn/img_convert/ebd86247b414f41656ab96afd01dafe4.png)
Key实现按1拾取钥匙,并通过更改布尔变量ok?打开门
![](https://img-blog.csdnimg.cn/img_convert/26ba9a11df9a9b5e19cd8c4083ad32ce.png)
Go和key2同理
![](https://img-blog.csdnimg.cn/img_convert/a5610f916d159734da5acb3e18196a95.png)
![](https://img-blog.csdnimg.cn/img_convert/3c2bb2ca3e9d4000af3871a36024640d.png)
Door2有所不同,目前Door2类只要按1就可以开门,不需要寻找钥匙,则不需要判断布尔值,直接运用即可。
![](https://img-blog.csdnimg.cn/img_convert/2834630370b455341de722085636b5e6.png)
Nokey蓝图:
![](https://img-blog.csdnimg.cn/img_convert/7cc605760cce00c73aa3d21f7e8fd3f8.png)
天梯设计
天梯我设计了电梯,如果找到了天梯门钥匙,按2即可升上电梯,乘坐电梯逃脱
通过设置相对位置实现,插值结点可以使我更方便的从外部直接更改时间轴内部数据,通过测量电梯需要到达高度(980)即可实现从0上升到980,Flip Flop节点再次点击即可下降。
蓝图:
![](https://img-blog.csdnimg.cn/img_convert/cc32c3cedcd031f578682a99f2e725eb.png)
加血装置
创建blood类,拖入一个选好的模型,加入box,增加一个回血量浮点变量,设计重叠事件,当重叠时,利用“浮点加浮点”结点给增加血量给生命。再利用CompareFloat判断生命是否小于96,进行加血操作。
![](https://img-blog.csdnimg.cn/img_convert/94deaa923da987d8550ebfe60a32aa3b.png)
![](https://img-blog.csdnimg.cn/img_convert/77aeb691e8e84c83be16806158b215af.png)
三、UI设计
ui总设计
![](https://img-blog.csdnimg.cn/img_convert/773ace805c601fef17504115a6bf9b09.png)
开始界面
![](https://img-blog.csdnimg.cn/img_convert/44f17dbb68190a009f4362d0f86c99ae.png)
蓝图:
退出:
直接连接退出游戏结点就好。
开始游戏:
创一个可以控制(pawn)类控制摄像机,将摄像机的自动控制玩家设为玩家0,使用混合设置视图目标,延迟时间混合视图,将画面从我们摄像机控制权转向我们控制的第三人称玩家。
![](https://img-blog.csdnimg.cn/img_convert/8f55dc674d810377ee9aac4705c16873.png)
显示开始界面,将ui显示视口,并且显示鼠标以供选择
![](https://img-blog.csdnimg.cn/img_convert/26a3161cceafe2be7dcfde4f225de352.png)
![](https://img-blog.csdnimg.cn/img_convert/40a03a8da0181da9f8bed77ede8ff27e.png)
暂停页面
![](https://img-blog.csdnimg.cn/img_convert/2f6b74ec016a245ac6c167f6e31893ef.png)
是
直接退出游戏
否
将ui折叠,将游戏暂停,并且将控制器给玩家
![](https://img-blog.csdnimg.cn/img_convert/d0c6dccf5a079fdda14abd155019b798.png)
在人物蓝图里添加视口,首先判断是否存在,防止报错,然后设置可视性为可视,获取玩家控制器,显示鼠标光标以供选择操作,在此过程中确保游戏暂停。
![](https://img-blog.csdnimg.cn/img_convert/f73f91631d06fe23080fb79ee68eeb4f.png)
血条界面
![](https://img-blog.csdnimg.cn/img_convert/f4523f76d3401dd3f8293440a14fecc3.png)
在界面上添加一个进度条和文本
将文本勾选
![](https://img-blog.csdnimg.cn/img_convert/6ed0f732a46fd152f0849be978b41ac0.png)
成变量
进度条和文本都绑定事件
在第三人称人物中添加“生命”浮点变量
![](https://img-blog.csdnimg.cn/img_convert/ef1b44227b43ca0baf48415e5c74d4ab.png)
进度条
![](https://img-blog.csdnimg.cn/img_convert/9849433dde45ddfc66d45445fe1a1144.png)
文本
可以同步进度条数据
![](https://img-blog.csdnimg.cn/img_convert/3ccf60641c9164506b001778825eeb1b.png)