zoukankan      html  css  js  c++  java
  • 虚幻4—纯蓝图—宠物定点移动与跟随玩家

      前置需求

        创建一个动画混合空间,水平坐标为value区间为-1到1(宠物朝向),垂直坐标为speed区间为0到2(宠物速度),放入动画蓝图。

        

    一,定点移动

      首先,实现宠物移动需要设置速度,朝向,目的地三个变量。在宠物类中定义变量。

        

       在玩家操控角色类中通过线条碰撞检测,来获取碰撞地点为要前往的目的地。将“由通道检测线条”绑定到R键。

        

       将hit击中的地点赋给location变量。

        

      在确定了宠物要去的目的地后,创建get value函数获取宠物朝向。

      在函数中通过宠物位置与location变量获取旋转来获得宠物到达目的地应该的朝向角度,再通过宠物当前角度获取差量,将差量限制再-1到1之间。

        

      将限制了角度的差量赋予value变量,我们就获得了宠物需要的朝向。

      我们可以通过目的地与宠物的距离来设定宠物的速度。创建set speed函数,通过compare float来分别获取不同距离下需要的速度。(上图的compare float与下图的compare float是同一个)

            

        

      我们设定如果距离大于500将速度设为2,小于500大于200将速度设为1,若距离小于200我们视为宠物到达目的地,将value和speed设为0。

      有了speed和value我们只需要将两个变量的值导入动画混合空间就可以实现宠物的移动。(上图为从动画蓝图中获取宠物类中的speed和value,下图将两个变量导入混合空间)

         

        

      通过帧事件执行两个函数,定点移动功能完成。

    二,跟随玩家

     在玩家操控角色类中我们绑定T键来切换到跟随状态。给宠物类添加following布尔值变量来判断是否为跟随状态。绑定Y键为取消跟随状态。(rest忽略)

        

      在宠物类中添加分支,判断条件为following变量。

      创建get location函数,获取角色位置。

          

      将getlocation返回的值导入search road函数,并绑定在帧事件中。通过following来判断是否执行。

        

      完成。

  • 相关阅读:
    游记-HNOI2019
    题解-COCI2015Norma
    题解-Codeforces671D Roads in Yusland
    题解-POI2014 Supercomputer
    笔记-莫队的强制在线
    题解-HAOI2018全套
    题解-UOJ455 雪灾与外卖
    题解-Codeforces917D Stranger Trees
    题解-AtCoder Code-Festival2017 Final-J Tree MST
    Linux 配置svn
  • 原文地址:https://www.cnblogs.com/zptcszj/p/13380738.html
Copyright © 2011-2022 走看看