虚幻4入门 第三人称状态下的瞄准方案

在第三人称视角下,动画的瞄准偏移如果是直接使用控制器的旋转值,会出现较大的视觉误差(近距离与远距离切换时没有差别)。我们需要做的就是使瞄准偏移量(Yaw,Pitch)能够瞄准屏幕中心所瞄准的点。

项目Demo源文件百度云盘

FindLookAtRotation节点


虚幻4入门 第三人称状态下的瞄准方案_第1张图片
蓝图节点

C++:

FRotator UKismetMathLibrary::FindLookAtRotation(const FVector& Start, const FVector& Target)

起始坐标的获取:

一般在持枪状态下值为枪的大概位置。本文简单起便直接使用当前角色的世界坐标,直接GetActorLocation就可以了。


虚幻4入门 第三人称状态下的瞄准方案_第2张图片
蓝图节点

目标坐标的获取:

通过摄像机发射光线追踪,撞击到目标得到世界坐标。

虚幻4入门 第三人称状态下的瞄准方案_第3张图片

关键实现:

角色蓝图

在角色蓝图更新瞄准偏移的原始值


虚幻4入门 第三人称状态下的瞄准方案_第4张图片
虚幻4入门 第三人称状态下的瞄准方案_第5张图片
计算光线追踪的起始点与结束点


虚幻4入门 第三人称状态下的瞄准方案_第6张图片

动画蓝图


虚幻4入门 第三人称状态下的瞄准方案_第7张图片

限制值的最大值最小值,并使用插值平滑过渡。

虚幻4入门 第三人称状态下的瞄准方案_第8张图片

如果是摄像机没有碰撞到物体,则使用控制器的旋转值

虚幻4入门 第三人称状态下的瞄准方案_第9张图片

关于FindLookAtRotation的起始点需要微调。

你可能感兴趣的:(虚幻4入门 第三人称状态下的瞄准方案)