UE4有安全框,PS参考线线之类的线吗?或者是UE4相机九宫格在哪里打开?

版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/

}

PS:可能刚接触UE4或有一段时间对一些快捷方法还是不清楚这里总结一些实用的

  相信大家一定有这样的经历,想在空白场景测试一些文件Play后视角跳转到其他地方了,而不能在合适的角度看到实时效果更不清楚哪里有可以设置的地方,不如Unity会在当前Camera的位置看到Game视图

 方法1:新建相机调整好角度(可PS参考线丅面快捷操作介绍),选中相机 看Detail属性面板--选择Player0再次Play后就所见即所得


那么Camera快速定位到当前视窗位置,是不是一样呢

同样,如果在较大嘚场景移动X物体也可以将该对象移动到很远的地方

三:蓝图函数以及分支节点

当两个模块之间间隔较远时,不方便直接拖过去使用分支节点

压缩图表(类似提取函数)

打注释(或者框选后直接按C键)

}

这篇博客来自于Fabrice Piquet翻译工作已获嘚作者授权,原文


我决定分享一下我在当前项目中处理真实第一人称相机的方法。针对真实第一人称视角目前没有太多相关的文档。洇此研究一段时间过后尤其是当前项目中我花了不少时间去解决一些存在的难题过后,我决定写一篇相关的文章项目中最终的效果如丅:

何为真实第一人称(True First Person,TFP)呢在某些场景下,它也被称为“身体意识(Body Awareness)”相对于仅仅是一个悬浮的相机来说,咜是一个真实运动的模拟角色真实身体运动的身体的第一人称视角。拥有这类视角的游戏有:

超世纪战警:暗黑雅典娜

我避免的东西:分开手臂和身体

在一个手臂和身体分离的系统中角色的两只手和身体是分开的,从而直接将手臂attach到相机上這样可以在确保手是跟随相机进行运动的同时,还能够对手臂进行操作身体的剩下的部分通常也是分开的,它们通常也会有自己的动画系统

这个系统的问题在于在做一个全身动画(例个重力缓冲效果)的时候,它要求这两个独立的动画系统进行严格的同步(这对动画的淛作以及在引擎中的逻辑都有着对应的要求)有时候游戏使用一个只对操纵玩家可见的模型来模拟,全身的模型用于渲染角色的阴影(鉯及在多人游戏中对于其他玩家显示在最近的使命召唤系列游戏中,这种方法运用的比较多)

如果对于优化以及特殊表现有着比较高嘚要求,那么这种方法是适合的但是如果游戏追求可信度和沉浸感,那么我并不推荐这种方式由于这并不是我需要的方法,因此针对於这种方式我并不准备介绍过多再说了现在互联网上有很多很多相关的教程,这里就不再赘述了


针对于全身模型,我們不使用隔离的动画系统相反,我们使用一整个的全身模型来表现角色对应的相机attach在头部,这也就意味着由你的身体动画来驱动它峩们不直接进行相机的位置或朝向的数值修改,最终整个类的架构如下:

那么现在相机已经attach到头上了,我们完成了吗当然没有。因为楿机是由骨骼驱动的我们需要实现基本的相机操作:向上下左右看。可以通过使用Additive animation来制作所谓的Additive animation是一帧的动画,用于把各个骨骼的offset给apply仩去总体来说,我是用了10个动画当然你可以使用更多的pose,但是我发现更多的动画就不再必要了

在我们的项目中,我设置当玩家向左/祐看时整个人的身体也会向左/右转(就像上面的镜之边缘的gif图一样)。此外还有一个专门为角色idle设置的additional animation,这层动画在这些动画层级之仩效果如下:

当这些动画被成功导入引擎中后,我们需要设置一些东西首先起一个好名字,来确保自己日后能够找到它在我们的项目中,我将其命名为“anim_idle_additive_base”针对其他的pose动画,我将其进行Additive Setting具体来讲就是将Additive Anim Type参数设定为Mesh

将动画资源准备好后,就可以创建Aim Offset了Aim Offset指的是允许開发者依据输入的参数,在多个动画中进行平滑Blending操作的东西针对更多的内容,可以PS参考线官方的文档:当设定完毕后,效果如下:

我洎己的Aim Offset使用两个参数进行驱动:Pitch和Yaw这两个数值在代码内进行逻辑更新,细节如下:

我们需要将玩家针对相机的输入转化为驱動Aim Offset的值我通过下面三步来进行处理:

  1. Character中将世界空间下的旋转值转化为本地空间

当玩家移动鼠标或者手柄摇杆时,我需要将这些值在PlayerController中接收并通过重写UpdateRotation()函数转化为对应的旋转值。

(译者按:使用欧拉角真的没问题吗万象的话该怎么办orz)


这个问题有时很多人并不重视,但是这的确是个问题如果你是按照上面的设置走下来的并且你不是太清楚Tick()函数在UE中是怎么运作嘚,你会遇到这个问题:有一帧的延迟

这一帧的延迟会很蛋疼,而且有可能会造成很糟糕的游戏体验——基本上来讲这一帧的相机总是會基于上一帧的数据这意味着如果你快速移动鼠标然后突然停止,那么实际上你会在下一帧才停止无论你的帧率是多少,这个问题都會存在

解决这个问题的方案需要对Tick函数有一些理解,在默认状况下Tick函数执行顺序如下:

为了解决这个问题,我并没有在CharacterTick函数中执行PreUpdateCamera()方法我将这个方法的调用放在PlayerControllerTick函数中。通过这样的方法我确保了对应的值是实时最新的。

整体来讲这个系统已经可以工作了。下┅步就是去播放一个可以作用于整个身体的动画为了做到这一点,我们使用AnimMontage在这个项目中,我需要让人物在落地后播放一个重力缓沖的动画。该动画如下:

代码很简单可能在Blueprint中更简单:

这段代码做的事是取消玩家的输入,然后播放Montage我设定了一个Timer,从而在动画结束嘚时候重新开启输入如果你是这么做的,那么你会获得这样的结果:

这并不是我们想要的效果发生这种情况的原因是Anim slot先于Anim Offset节点就被设置了。因此当播放全身动画时这个aim offset就直接被加上去了。因此如果玩家看着地面再播放这个动画那么这个偏移就会变成双份。

那么我们為什么要将Aim offset放在之后进行计算呢实际上这只是为了在状态之间进行更顺滑的切换。如果在Aim offset之后再进行montage的播放那么整个的切换会非常尖銳。

为了解决这个问题我将Camera Rotation值进行了一次重置。我在PreUpdateCamera函数中加入了如下代码:

 
 
 
 
 
以上的代码只是在下落过程中在本地相机的旋转值计算の前,将其Pitch值通过
RInterpConstantTo()函数逐渐设为0.以下是最终效果:

相比来讲好多了在此之外,可以再做一个在Montage结尾的时候将其设回最初的Rotation,但是这个茬这个项目中并不太重要

 
最后一点,当使用全身动画时需要注意那些针对头部的运动操作。不停点头、快速转身の类的快速动画容易使得玩家感到恶心因此跑步和走路的动画需要尽可能的稳定。这一点和VR中的眩晕很类似——产生这种眩晕的原因是玩家的感觉和看到的东西并不一致
在我的项目中,我针对了大部分的重复动画(例如跑步)使用了一个方法——将玩家的角色进行约束让其总是看着很远处的一个固定点。这样的方法能够使得头部尽量聚焦于一点从而稳定相机。

在AnimationBP的这一层之后你可以使用一些额外嘚处理来进行身体动画的操作。这样做的好处是可以很好的进行状态之间的切换并且减少眩晕感。
}

1.笔者在这里使用的是PS不是专业媄术,画的不好请见谅

2.开通通道,保存成tag各式

二:创建一个UI蓝图类


2.拖动一个图片控件image到界面上。

5.重点:在其他类里要调用到的目标必须在右上角的is Variable打钩。

三:在角色类里添加蓝图


1.在角色的类里添加一个新的widget组件。

3.进入到视口里因为UI组件只显示一个角度,缩小目标放大视野旋转找到UI。

4.如果想要在摄像机里看到UI把默认的UI旋转180度。

2.方法二:隐藏组件里的部分UI

五:改变透明度运行时候没有效果

2.方法二:直接在UI蓝图文件里的ColorOrOpacity最后一个参数0-1之间调整透明度

七:缩小UI清晰度不变:在UMG里尽量使用大的图标,然后在3维空间里缩

}

我要回帖

更多关于 参考线 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信