• UE4_f3视角修正


    按之前的步骤做下来,有一个小bug,当我们上下移动视角的时候,只是摄像机在旋转,所以我们可能会看到一些奇怪的东西,比如发现自己没脑袋

    我们想要的效果是能够让 手臂跟随着摄像机一起移动,也就是让我们的模型“弯腰”。

     首先在动画蓝图的动画图表中右键输入transform bone,

     在骨骼中找到有关弯腰的三个关节。

     用get control rotation来获得我们控制器的旋转值。

     运行一下大概是这样的。

     P指的是我们上下的幅度,最高是90,最低是270.(平视时是0,当向下看时会从360开始减,一直减到270)

    Y指的是我们左右的幅度。R表示的是我们的顺时针或逆时针的旋转值(第一人称中一直是0)

    复制三份transform bone,分别指向spine_01,spine_02,spine_03,并且把Rotation的RotationMode改成Add to Existing,表示将输入的值添加到原有旋转值上。

    (Translation 和 Scale 用不到,可以先关掉。)

    用一个变量Spine Rotation表示旋转值。

     

    在动画蓝图的事件图表中新增一个改变spine rotation值的方法。

    说明,因为弯腰只改变一个轴,所以其余两个轴设为与之前的一样。

    注意点一,在动画蓝图中经过测试,当改变X(Roll)时才会改变人物的弯腰状态。而get control rotation中,通过第一次的打印测试,发现Y(Pitch)才是控制器中控制弯腰的轴。

    所以要把Control的Y(Pitch)赋值给 Spine Rotation的X(Roll)。

    注意点二,经过打印测试,当我们抬头时,控制器的Y(Pitch)是从0到90的,低头时是从360到270的。而在动画蓝图中,X填为正值时是弯腰,负值时是抬头。这又是不一样的地方。

    所以做一个判断,如果>180说明我们正在低头,获得(360-当前Y值)。<180说明我们在抬头,直接乘一个负一。

    注意点三,因为我们是同时旋转了三个关节才实现的弯腰抬头,所以我们处理后的值必须/3才能赋给SpineRotation。比如说我们抬头抬到最大90,也就是每个关节最大30。

    添加脚部动画

    首先创建一个2D的混合空间(一个轴表示速度,一个轴表示方向)

    速度设为20个格子,方向设为8个格子

    在速度为360的数轴上添加Run的各个方向的动画。这里还添加了一个冲刺动画和一个静止动画。

     

    把这个混合空间拖到Unarmed_Idel/Run中。

    因为我们只想让腿动,所以我们需要一个骨骼的分层混合。

     

     注意左面的设置,从spine_01开始混合(作为区分上下身的标志),还要把Mesh Space Rotation打开。

     复制上半部分到每个状态中( jump可以不做,因为跳起的时候脚是不动的)

    用一个封装好的函数,calculate direction获得-180到180的方向值。并传入相应的参数。

    视角限制

  • 相关阅读:
    一文搞懂字符集
    机器视觉之eVision
    PID调节
    激光切割质量主要影响因素
    155. 最小栈
    111.二叉树最小深度
    110. 平衡二叉树
    108.将有序数组转换为二叉搜索树
    107. 二叉树的层次遍历 II
    104. 二叉树的最大深度
  • 原文地址:https://www.cnblogs.com/reluctante1/p/12741782.html
Copyright © 2020-2023  润新知