本篇我们用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影子谜题相关推荐

  1. 过于自嗨的《紫塞秋风》,怎么就成了行业教科书?

    前言: <紫塞秋风>--这个名字实在太响了,但凡稍微关注游戏圈新闻的玩家,十有八九都听过它的名号.从公布之初到上线前夕,这几年<紫塞秋风>赚足了太多的期待,就连我这样参与众筹了 ...

  2. UE4骨骼网格体没有影子

    打开你的骨骼树,点击最外层骨骼.不断拖动整个骨骼的位置,直到地面上的影子变得厚重,这个时候保存再出去看你的网格体就可以看到影子了.

  3. ue4场景没阴影_UE4 Mobile使用动态阴影的一些小结

    UE4在Mobile平台里,除了预先烘焙的静态阴影之外,对于动态物体一般使用两种阴影:调制阴影(Modulated Shadows)和级联阴影(Cascade Shadows,简称CSM). 调制阴影 ...

  4. 【UE灯光•简介】UE4光照类型和灯光参数

    我们UE4学习接下来这段时间我们了解下灯光. 打开我们ue4来到我们灯光系统 分别是定向光源 点光源 聚光灯 矩形光源 天光 静态光源(Static): 不能动态实时的添加,只能预先烘焙好效果,但是不 ...

  5. 如何改造UE4用于赛璐璐3D卡渲?这里有一份日本大厂的实操分享

    当今市场中,3D卡渲无疑是最热门的一个技术竞争领域,此前也有不少厂商分享了各自基于不同引擎的3D卡渲实现技术. 前几个月葡萄君分享了万代南宫旗下一款基于UE4制作的赛璐璐3D卡渲产品<蓝色协议& ...

  6. 用“连接”勾勒角色:《死亡搁浅》亡人的设计及其背后的故事谜题

    死亡搁浅,名为"连接"的世界观 小岛秀夫是一个十分注重游戏制作细节的人,我们没有理由不去相信,他勾勒出的恢弘世界观框架下,每一个角色的存在背后都有着极为精细和巧妙的设计.多数时候也 ...

  7. ue4光追降噪_【RTX ON!】可能是最详细的UE4实时光追测评

    最近UE4.22 终于更新了dxr,我下意识的打开gpuz看看rtx卡是啥时候发布的...? 半年过去了啊! 废话不多说,ue开启raytracing需要改三个地方. 工程设置里,这个要打开 然后才能 ...

  8. 墨尘 - UE4 入门教程笔记 —— 二

    一.C4D - 入门篇 旋转视图:Alt + 鼠标左键 缩放视图:Alt + 鼠标右键 平移视图:Alt + 鼠标中间 移动:E.缩放:T.R:旋转 撤回:Ctrl + Z 复原视图:Ctrl + s ...

  9. UE4如何贴混合贴图_UE4助力高品质移动游戏(1)-优化篇

    当下绝对是移动平台最火热的阶段,各色各样的游戏纷纷占领移动平台,包括NS也算一个移动平台,曾经的移动平台主力军Unity引擎,在现在UE4越来越火热的时候,Unity明显感觉到了UE4的压力,尤其是E ...

最新文章

  1. Target host is not specified错误
  2. Mac python3.x使用HTMLTestRunner.py生成html格式的测试报告
  3. 大脑构造图与功能解析_锻炼改变大脑
  4. PHP反射之类的反射
  5. java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big解决方法
  6. 关于 Blazor Server Side 的一些杂项, 感想
  7. C#中List〈string〉和string[]数组之间的相互转换
  8. 序列傅里叶变换性质matlab,MATLAB傅里叶变换及性质.docx
  9. react hooks子给父传值
  10. JAVA计算机毕业设计博雅楼自习室预约系统Mybatis+系统+数据库+调试部署
  11. c++:ISBN号码
  12. EXCEL快捷键大全(三)(九耶-钛伦特)
  13. jsp页面引入调色板、颜色表
  14. 华三防火墙添加web用户_h3c防火墙用户名密码怎么样设置
  15. 网易互娱2017实习生招聘在线笔试第一场-2源代码编译
  16. 武汉科技大学计算机学院温文,第五届华中地区计算机类院校学生领袖峰会成功举行...
  17. 饿了么官宣合作抖音后,美团的失意是什么?
  18. java计算机毕业设计计算机专业招聘网站源码+mysql数据库+系统+lw文档+部署
  19. 深度学习在推荐领域的应用lookalike
  20. 对AVL树和红黑树的个人理解

热门文章

  1. 解决ora-01861文字与格式字符串不匹配(转)
  2. ABAP删除字符串某字符
  3. 锚杆拉拔试验弹性模量计算_锚索刚度怎样计算
  4. 多语言在线客服系统源码-自动识别中英环境-私有化部署完美支持跨境电商网站...
  5. 鲁棒随机优化(Robust Stochastic Optimization)和RSOME
  6. word嵌入对象依损坏_word模板损坏修复
  7. Mathematica导出数据
  8. 羊驼alpaca php,羊驼线(alpaca)简介
  9. Kotlin写界面时诸多控件的点击事件
  10. 【可见光室内定位】(二)基于光电器件PD的可见光室内定位技术