[UE4学习笔记][VR]-射箭模拟-Day2

DAY2: 接上篇,上篇我们的基础搭建工作已经完成,这篇主要就是完成整个的项目以及修改BUG工作

  1. 拉弓设置

 现在开始设置如何使得弓可以拉开,也就是要设置弓里面建立好的变量BP_Strength.

首先我们需要在MyPawn里把 BP_BOW提升为一个变量

然后我们就可以调取Bp_bow里面的数值

在这里面新建一个自定义事件,命名,调取BP_Bow里面的数值。


  • 接下来要开始进行计算两个手之间的距离来赋值给上面BP_Bow里的BP Strength。

用左手的世界坐标减去右手的世界坐标,转变为长度,直接赋值给BP Strength。

接下来进行一个判断,弓什么时候进行拉伸。在我们弓与箭发生碰撞的时候,我们会进行拉伸,所以我们就需要在 弓的蓝图 里进行一项设置

注意:这里门节点后面会提到。
方框里我们需要调取MyPawn里的SetStrength 我们就需要调取Get Player Pawn(在任何蓝图里都可以调取)——Cast To My Pawn——Set Strength

现在设置好以后,只可以进行一次操作,所以我们需要不断的实时刷新,需要一个新的门节点(Gate)

Gate 有四个开关,进入,开启,关闭,反向开启(这三个都是控制开关的)

在弓与箭碰撞的时候 我们要让它开门 同时 让他进入,这里就需要一个Sequence节点连接到前面。

然后弓箭的拉伸需要不断的变化,我们就需要加循环,在后面加上Delay节点,链接到前面。

现在只有开门,没有关门,我们设置为,当他射出去的时候,门会关闭。

我们要在蓝图里,设置一个自定义事件,命名为Close。

需要再MyPawn的蓝图里来调取弓蓝图里的 Close(刚才设置的自定义事件)

接下来进行测试


2.Bug调试

接下来进行测试
第一个问题,弓箭的方向不对
改动完成

第二,扣动扳机 箭不会发射

改动前

改动后

第三,箭生成的方向不对,发射的方向不对,没有重力

第四,箭绑定在弓上不对

需要绑定Socket 调整Socket的位置

注意两个红色的X轴 都需要调整向前

第五,按发射键后,需要按两次shoulder键才可出现箭

第六,拉弓拉不动 两只手有起始距离会导致箭放到弓上 弓弦会直接拉开

解决弓拉不动

在弓的蓝图里加上弓的动作

解决起始距离问题

这里涉及到一个新的节点 Map Range Clamped 线性比例

解释:线性比例大小(在两只手的距离小于28的时候,弓弦的值永远等于0,只有当大于28小于58时才会按照0到30的比例来进行拉伸,也就相当于双手的距离在28到58的范围时候,弓弦才会按照0到30的比例来进行拉伸)

第七:只有在箭在弓上才可以进行射箭 。需要加判断。射箭完成后,弓弦需要回复初始位置

MyPawn蓝图里

在BP_Bow蓝图里写

弓弦回复初始位置

第八:弓弦的距离和箭的速度成比例,弓弦越大,箭的速度越大

在发射Shoot 事件后面 加上

经过Vr设备测试,需要注意几个地方

在弓的蓝图里,门节点需要先连接Open 在连接Enter ,否则不会进行拉伸

在弓箭的蓝图里,需要加一个Arrow 把弓箭放在Arrow下

把弓箭的方向调整和Arrow的方向一致。

之前生成箭的时候调整了一次箭的位置,现在 不需要调整 需要改回来

在弓箭发射的时候方向也是有问题的,我们需要获取箭头的方向来进行射箭。改动如下
在制作一个项目的过程中,都是需要不断地进行测试,调试才能慢慢的达成自己想要的样子。所以后期的调试占了很大一部分。


未授权禁止转载

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注