UE4实现生化危机7影子谜题
本篇我们用ue4来实现一下生化危机7的影子谜题。实现的效果如下:
素材资源地址 密码: 3rkb
生化危机影子谜题实现
- 1.准备安置素材
- 2.人物交互逻辑实现
- 2.1 人物交互Eagle
- 2.2 旋转Eagle
- 2.3 人物摄像头的转换。
- 2.4 判断影子是否对齐
1.准备安置素材
将素材导入ue4中,随后建立一个Actor,将staticmesh类型的Eagle模型给Actor。这里命名Actor为BP_Eagle。
这里我们使用第三人称模板用作演示,进入官方的第三人称地图,随后将测试场景布置好(聚光灯,BP_Eagle,Eagle_Puzzle_Image)
这些基本的场景做好之后(上图可以看见Eagle旁边有个Camera,这个Camera会在后面讲解如何设置这里先略过),我们便可以开始做人物与Eagle模型的交互功能了。这里我们直接在第三人称人物蓝图中进行修改,打开ThirdPersonCharacter。
2.人物交互逻辑实现
2.1 人物交互Eagle
打开蓝图后,我们在空白区域,利用Left Moush Button节点(点击鼠标左键),发出射线检测,碰到的物体如果为BP_Eagle的话,就将该物体存入一个该类型的变量Eagle中(方便我们后面旋转Eagle),随后将人物的运行状态设置为None,并设置一个Bool类型的变量(这里我的变量名为Begin,即在这个变量为True后我们的人物就不能运动了,旋转鼠标只能旋转Eagle的方向不能控制我们的人物,再次点击鼠标,我们便返回之前的状态)。整个蓝图逻辑比较简单,这里利用第三人称的camera作为射线检测的初始不是很合理,但是因为是着重于实现所以细节就不用去深究拉=。=
下面是该部分蓝图的实现:
整体蓝图:
上面的蓝图实现后,我们的人物便于Eagle有了简单的交互,即检测到Eagle后不能移动,Begin的值设置为True,再次点击左键,我们便回到了人物。接下来我们接着做发生交互后,旋转鼠标即旋转Eagle的方向的逻辑。
2.2 旋转Eagle
首先我们添加两个函数,用于Begin为True时,旋转Eagle的逻辑。(EagleYaw EagleRoll 即旋转Eagle的Yaw轴与Roll轴)
EagleYaw函数:
传入函数的值便为鼠标旋转的数值(下边会解释值得来源),随后获取该值得Yaw值,与之前存好得Eagle变量的rotation值(GetActorRotation)利用Combinerotators节点,将两个值进行混合,便可以实现Eagle从一个rotation旋转到另一个rotation。最后将return的值(return Value)传给Eagle新的rotation(利用SetActorRotation)便实现了Yaw轴的转换。(Roll轴的转换异曲同工,便不做赘述。直接附上蓝图)
EagleRoll:
随后我们回到事件蓝图节点。利用人物蓝图中的Mouse Input(之前官方给我们写好的)。
即当Begin为True时,鼠标输入的值便会传入Eagle Yaw,Eagle Roll两个函数中。到这一步我们便已经设置好了Eagle的旋转,接下来我们开始设置,摄像头的转换。
2.3 人物摄像头的转换。
在场景中新添加一个camera,并设置好camera的位置(方便观察Eagle的旋转以及与老鹰图片对齐的关系)
设置好了之后我们便进入关卡蓝图
在关卡蓝图中创建一个新函数changecamera。
在切换camera之前我们需要知道ThirdPersonCharacter蓝图中的Begin是否为True,于是我们获取PlayerCharacter(利用GetPlayerCharacter),随后强制转换成ThirdPersonCharacter类型,这样我们便能获取它的Begin变量了。随便判断Begin的真假性,利用SetView Target with Blend节点实现摄影机的切换。
设置好该函数后,我们在关卡蓝图事件蓝图中,利用定时器节点Set Timer By Function Name。定时的调用该函数。我这里设置的时间间隔为0.5,这里注意将函数的名字填入Function Name中(我的函数名为ChangeCamera),以及勾上Looping(循环)。
到这一步我们便实现了摄影机的切换,下一步我们将实现核心功能,判断影子是否对齐功能。
2.4 判断影子是否对齐
首先我们回到人物蓝图,利用Event tick,每帧打印一下Eagle模型的旋转信息。
从上图可以看出当影子与图片重叠时的,pitch为1.302128,yaw为-3.7,roll为92(每个人的旋转信息可能不一样,根据自己的值进行设定!)左右当然不用非常的精确,在实际测试中,我们也是设置一个趋近于的值设立一个范围。这里我们记下值的信息。随后在人物蓝图中创建一个新函数CheckEagle。
这里首先判断一下Begin的值,随后获取Eagle的rotation值,再利用InRange节点,判断3个轴的值是否在重叠的范围内(可以设立一个范围,最大最小最好不要超过10度),当三个值都为True时,我们便解开了谜题,设置一下Begin为False,end值为True,这里我们不要忘将人物的运动状态设置回来。随后的功能读者便可以自行实现。
博主在陆续过程中会出一些,用ue4实现游戏中一些常见小功能的实现教程。大家可以关注一下方便对教程的更近。
另外如果本次教程中,有哪些没讲清楚的地方欢迎大家留言私信,博主看到都会一一解答。
UE4实现生化危机7影子谜题相关推荐
- 过于自嗨的《紫塞秋风》,怎么就成了行业教科书?
前言: <紫塞秋风>--这个名字实在太响了,但凡稍微关注游戏圈新闻的玩家,十有八九都听过它的名号.从公布之初到上线前夕,这几年<紫塞秋风>赚足了太多的期待,就连我这样参与众筹了 ...
- UE4骨骼网格体没有影子
打开你的骨骼树,点击最外层骨骼.不断拖动整个骨骼的位置,直到地面上的影子变得厚重,这个时候保存再出去看你的网格体就可以看到影子了.
- ue4场景没阴影_UE4 Mobile使用动态阴影的一些小结
UE4在Mobile平台里,除了预先烘焙的静态阴影之外,对于动态物体一般使用两种阴影:调制阴影(Modulated Shadows)和级联阴影(Cascade Shadows,简称CSM). 调制阴影 ...
- 【UE灯光•简介】UE4光照类型和灯光参数
我们UE4学习接下来这段时间我们了解下灯光. 打开我们ue4来到我们灯光系统 分别是定向光源 点光源 聚光灯 矩形光源 天光 静态光源(Static): 不能动态实时的添加,只能预先烘焙好效果,但是不 ...
- 如何改造UE4用于赛璐璐3D卡渲?这里有一份日本大厂的实操分享
当今市场中,3D卡渲无疑是最热门的一个技术竞争领域,此前也有不少厂商分享了各自基于不同引擎的3D卡渲实现技术. 前几个月葡萄君分享了万代南宫旗下一款基于UE4制作的赛璐璐3D卡渲产品<蓝色协议& ...
- 用“连接”勾勒角色:《死亡搁浅》亡人的设计及其背后的故事谜题
死亡搁浅,名为"连接"的世界观 小岛秀夫是一个十分注重游戏制作细节的人,我们没有理由不去相信,他勾勒出的恢弘世界观框架下,每一个角色的存在背后都有着极为精细和巧妙的设计.多数时候也 ...
- ue4光追降噪_【RTX ON!】可能是最详细的UE4实时光追测评
最近UE4.22 终于更新了dxr,我下意识的打开gpuz看看rtx卡是啥时候发布的...? 半年过去了啊! 废话不多说,ue开启raytracing需要改三个地方. 工程设置里,这个要打开 然后才能 ...
- 墨尘 - UE4 入门教程笔记 —— 二
一.C4D - 入门篇 旋转视图:Alt + 鼠标左键 缩放视图:Alt + 鼠标右键 平移视图:Alt + 鼠标中间 移动:E.缩放:T.R:旋转 撤回:Ctrl + Z 复原视图:Ctrl + s ...
- UE4如何贴混合贴图_UE4助力高品质移动游戏(1)-优化篇
当下绝对是移动平台最火热的阶段,各色各样的游戏纷纷占领移动平台,包括NS也算一个移动平台,曾经的移动平台主力军Unity引擎,在现在UE4越来越火热的时候,Unity明显感觉到了UE4的压力,尤其是E ...
最新文章
- Target host is not specified错误
- Mac python3.x使用HTMLTestRunner.py生成html格式的测试报告
- 大脑构造图与功能解析_锻炼改变大脑
- PHP反射之类的反射
- java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big解决方法
- 关于 Blazor Server Side 的一些杂项, 感想
- C#中List〈string〉和string[]数组之间的相互转换
- 序列傅里叶变换性质matlab,MATLAB傅里叶变换及性质.docx
- react hooks子给父传值
- JAVA计算机毕业设计博雅楼自习室预约系统Mybatis+系统+数据库+调试部署
- c++:ISBN号码
- EXCEL快捷键大全(三)(九耶-钛伦特)
- jsp页面引入调色板、颜色表
- 华三防火墙添加web用户_h3c防火墙用户名密码怎么样设置
- 网易互娱2017实习生招聘在线笔试第一场-2源代码编译
- 武汉科技大学计算机学院温文,第五届华中地区计算机类院校学生领袖峰会成功举行...
- 饿了么官宣合作抖音后,美团的失意是什么?
- java计算机毕业设计计算机专业招聘网站源码+mysql数据库+系统+lw文档+部署
- 深度学习在推荐领域的应用lookalike
- 对AVL树和红黑树的个人理解
热门文章
- 解决ora-01861文字与格式字符串不匹配(转)
- ABAP删除字符串某字符
- 锚杆拉拔试验弹性模量计算_锚索刚度怎样计算
- 多语言在线客服系统源码-自动识别中英环境-私有化部署完美支持跨境电商网站...
- 鲁棒随机优化(Robust Stochastic Optimization)和RSOME
- word嵌入对象依损坏_word模板损坏修复
- Mathematica导出数据
- 羊驼alpaca php,羊驼线(alpaca)简介
- Kotlin写界面时诸多控件的点击事件
- 【可见光室内定位】(二)基于光电器件PD的可见光室内定位技术