《UE5_C++多人TPS完整教程》学习笔记58 ——《P58 旋转奔跑动画(Rotate Running Animations)》


本文为B站系列教学视频 《UE5_C++多人TPS完整教程》 ------ 《P58 旋转奔跑动画(Rotate Running Animations)》 的学习笔记,该系列教学视频为计算机工程师、程序员、游戏开发者、作家(Engineer, Programmer, Game Developer, Author)Stephen Ulibarri 发布在 Udemy 上的课程 《Unreal Engine 5 C++ Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者)为 游戏引擎能吃么


文章目录

  • [P58 旋转奔跑动画(Rotate Running Animations)](#P58 旋转奔跑动画(Rotate Running Animations))
  • [58.1 修复持枪奔跑动画的 BUG](#58.1 修复持枪奔跑动画的 BUG)
  • [58.2 Summary](#58.2 Summary)

P58 旋转奔跑动画(Rotate Running Animations)

本节课我们将快速修复人物角色持枪斜向奔跑时腿部滑动的小问题。


58.1 修复持枪奔跑动画的 BUG

  1. 当我们同时按下 W、A或 S、D 键,操控人物角色持枪 45° 向前向左或向后向右斜向奔跑时,我们可以发现人物角色的腿部在进行滑动,有点像月球漫步(Moon Walking)。

  2. 为了解决这个问题,我们可以拷贝动画资产 "Jog_Fwd_Rifle",将副本重命名为 "Jog_Fwd_45_L"。我们想做的就是只用人物角色的下半身向前奔跑。在 "Jog_Fwd_45_L" 编辑窗口中,将骨骼节点 "Root" 旋转 -45°,调整下半身方向,并为其添加关键帧。

  3. 选择骨骼节点 "spine_01",切换成世界场景坐标系(World space coordinate),向右旋转 45°,保持上半身正前方的朝向,并为其添加关键帧。

  4. 根据当前动画预览网格体,创建动画资产 "Jog_Fwd_45_Left",然后删除 "Jog_Fwd_45_L"。

  5. 同理,通过编辑 "Jog_Bwd_Rifle" 的副本,创建动画资产 "Jog_Bwd_45_Right"。

  6. 可以发现新创建的动画资产都是没有同步标记和声音通知的,分别复制 "Jog_Fwd_Rifle" 和 "Jog_Bwd_Rifle" 的同步标记和声音通知即可。

  7. 在混合空间 "EquipRun" 中修改水平坐标的 "网格划分 "(Number of Grid Division)为 8 ,并分别放置 "Jog_Fwd_45_Left" 和 "Jog_Bwd_45_Right" 到坐标 (-45, 0)(135, 0) 上。

  8. 如果时间充裕,可以制作它们的倾斜奔跑动画,但这里为了省时间,笔者决定跟着教学视频走,不制作hhh,在混合空间 "EquipRun" 的垂直坐标中使用相同的动画。

  9. 进行测试,可以观察到人物角色持枪向前向左或向后向右斜向奔跑时,人物角色的腿部移动因为其臀部和髋部的旋转变得正常了。


58.2 Summary

本节课我们解决了人物角色持枪 45° 向前向左或向后向右斜向奔跑时其腿部滑动的小问题。首先,我们拷贝了动画资产 "Jog_Fwd_Rifle" 和 "Jog_Bwd_Rifle" ,并在其副本的动画资产编辑器中旋旋骨骼节点 "Root" -45° 调整下半身方向(本地空间坐标)和脊柱骨骼 "spine_01"(世界场景坐标)45° 保持上半身朝向,然后根据旋转后的动画预览网格体,创建了专门的斜向奔跑动画 "Jog_Fwd_45_Left" 和 "Jog_Bwd_45_Right" ,接着,我们从原动画 "Jog_Fwd_Rifle" 和 "Jog_Bwd_Rifle" 复制同步标记和声音通知到 "Jog_Fwd_45_Left" 和 "Jog_Bwd_45_Right" 中,确保脚步声同步。随后,在EquipRun混合空间中将水平座标的 "网格划分 " 修改为 8,精确放置动画资产 "Jog_Fwd_45_Left" 和 "Jog_Bwd_45_Right" 至相应的坐标,虽然为了效率考虑笔者在这里没有制作斜向奔跑的倾斜版本,但基础的方向移动已经得到了显著改善。最终,调整后的斜向奔跑动画消除了人物角色的腿部滑动,角色移动更加真实流畅。


相关推荐
勿忘初心917 小时前
游戏手柄遥控越疆协作机器人[一]
游戏·机器人
小龙报7 小时前
《算法通关指南数据结构和算法篇(4)--- 队列和queue》
c语言·开发语言·数据结构·c++·创业创新·学习方法·visual studio
全栈软件开发7 小时前
萌猫 合并卡牌 RPG抽卡游戏 Unity3D休闲益智游戏源码完整项目
游戏·unity源码
打不了嗝 ᥬ᭄7 小时前
【Linux】网络层协议
linux·网络·c++·网络协议·http
feiyangqingyun8 小时前
Qt/C++编写GB28181服务/前后端分离/定义一套交互协议/视频点播/录像回放和控制/警情通知
c++·qt·交互
m0_748248028 小时前
C++与C#布尔类型深度解析:从语言设计到跨平台互操作
c++·stm32·c#
虾米Life8 小时前
基于微服务脚手架的视频点播系统 (仿B站) [客户端] -1
c++·qt·微服务·架构
落羽的落羽9 小时前
【C++】现代C++的新特性constexpr,及其在C++14、C++17、C++20中的进化
linux·c++·人工智能·学习·机器学习·c++20·c++40周年
CAU界编程小白9 小时前
数据结构系列之十大排序算法
数据结构·c++·算法·排序算法
头发还没掉光光10 小时前
Linux网络初始及网络通信基本原理
linux·运维·开发语言·网络·c++