当前位置: 首页 > news >正文

《UE5_C++多人TPS完整教程》学习笔记56 ——《P57 未装备武器的蹲伏(Crouch Unequipped)》


本文为B站系列教学视频 《UE5_C++多人TPS完整教程》 —— 《P57 未装备武器的蹲伏(Crouch Unequipped)》 的学习笔记,该系列教学视频为计算机工程师、程序员、游戏开发者、作家(Engineer, Programmer, Game Developer, Author) Stephen Ulibarri 发布在 Udemy 上的课程 《Unreal Engine 5 C++ Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者)为 游戏引擎能吃么。
在这里插入图片描述


文章目录

  • P57 未装备武器的蹲伏(Crouch Unequipped)
  • 57.1 完善未装备武器下的蹲伏
  • 57.2 Summary


P57 未装备武器的蹲伏(Crouch Unequipped)

本节课我们将进入枪战部分的学习,完善人物角色在未装备武器的蹲伏状态及动画。
在这里插入图片描述


57.1 完善未装备武器下的蹲伏

  1. 在动画蓝图 “BlasterAnimBP” 中打开 “Unequipped” 状态机,进入 “IdleWalkRun” 状态节点编辑界面,如下图所示修改蓝图,这样人物角色在未装备武器时也可以进行蹲伏行走。
    在这里插入图片描述在这里插入图片描述

  2. 我们注意到人物角色在未装备武器时进行转向,会有一定时间的延迟,我们可以在人物角色蓝图 “BP_BlasterCharacter” 选中移动组件,在右侧细节面板 “角色移动(旋转设置)”(CHARACTER MOVEMENT(ROTATION SETTINGS))选项卡下找到 “旋转速率”,将分量 “Z”的值(绕 Z 轴旋转的 Yaw 值)改为 850。
    在这里插入图片描述

  3. 我们也可以使用 C++ 代码,在 “BlasterCharacter.cpp” 的构造函数 “ABlasterCharacter()” 中对旋转速率的默认值进行设置。

    /*** BlasterCharacter.cpp ***/...// Sets default values
    ABlasterCharacter::ABlasterCharacter()
    {// Set this character to call Tick() every frame.  You can turn this off to improve performance if you don't need it.PrimaryActorTick.bCanEverTick = true;...GetCapsuleComponent()->SetCollisionResponseToChannel(ECollisionChannel::ECC_Camera, ECollisionResponse::ECR_Ignore);	// 让人物角色的胶囊体组件忽略来自摄像机碰撞通道的所有检测GetMesh()->SetCollisionResponseToChannel(ECollisionChannel::ECC_Camera, ECollisionResponse::ECR_Ignore);				// 让人物角色的骨骼网格体组件忽略来自摄像机碰撞通道的所有检测/* P57 未装备武器的蹲伏(Crouch Unequipped)*/GetCharacterMovement()->RotationRate = FRotator(0.f, 850.f, 0.f);					// 设置旋转速率/* P57 未装备武器的蹲伏(Crouch Unequipped)*/TurningInPlace = ETurningInPlace::ETIP_NotTurning;									// 默认转身状态为不转身NetUpdateFrequency = 66.f;															// 设置网络更新频率MinNetUpdateFrequency = 33.f;														// 设置最小网络更新频率	
    }...
    
  4. 我们在未装备武器时进行蹲伏,如果按下空格键,我们的人物角色是没有反应的,因此可以覆写跳跃的回调函数 “Jump()”。

    /*** BlasterCharacter.h ***/...UCLASS()
    class BLASTER_API ABlasterCharacter : public ACharacter
    {GENERATED_BODY()...protected:// Called when the game starts or when spawnedvirtual void BeginPlay() override;// 与轴映射相对应的回调函数void MoveForward(float Value);	    // 人物角色前进或后退void MoveRight(float Value);	    // 人物角色左移或右移void Turn(float Value);			    // 人物角色视角左转或右转void LookUp(float Value);		    // 人物角色俯视或仰视// 与动作映射相对应的回调函数void EquipButtonPressed();		    // 人物角色装备武器void CrouchButtonPressed();		    // 人物角色蹲伏void AimButtonPressed();		    // 人物角色开始瞄准void AimButtonReleased();		    // 人物角色停止瞄准void AimOffset(float DeltaTime);    // 人物角色瞄准偏移/* P57 未装备武器的蹲伏(Crouch Unequipped)*/virtual void Jump() override;       // 人物角色跳跃/* P57 未装备武器的蹲伏(Crouch Unequipped)*/...};
    
    /*** BlasterCharacter.cpp ***/.../* P57 未装备武器的蹲伏(Crouch Unequipped)*/
    void ABlasterCharacter::Jump()
    {if (bIsCrouched) {	// 如果在蹲伏UnCrouch();		// 起身}else {				// 如果不在蹲伏,说明在站立状态Super::Jump();	// 跳跃}
    }
    /* P57 未装备武器的蹲伏(Crouch Unequipped)*/...
    

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  5. 我们可以根据个人喜好,调整人物角色的瞄准行走速度和蹲伏行走速度。
    在这里插入图片描述在这里插入图片描述


57.2 Summary

本节课我们完善了人物角色未装备武器下的动画,通过修改状态机 “Unequipped” 下 “IdleWalkRun” 的状态蓝图,人物角色在未装备武器的情况下也能够进行蹲伏行走,我们还设置了人物角色的旋转速率,使得人物角色在转向时延迟减少,转身更丝滑。接着,我们覆写跳跃的回调函数 “Jump()”,这样人物角色在未装备武器时进行蹲伏时,如果按下跳跃键,我们的人物角色可以起身。最后我们可以根据个人喜好,调整人物角色的瞄准行走速度和蹲伏行走速度。
在这里插入图片描述


http://www.dtcms.com/a/392229.html

相关文章:

  • AI人工智能训练师五级(初级)考试题库(1)1~100题
  • 【Python精讲 02】编程第一课:彻底掌握Python变量、数字、字符串与布尔值
  • Unity2D-Sprite
  • 本地实现视频分析与总结工具
  • Vue 开发常见报错及解决方案指南
  • Linux 进程状态
  • 基于自然语言处理的文本敏感内容检测系统的设计与实现
  • JDBC小白入门项目创建 IDEA 空项目+模块配置 JavaWeb MySQL
  • 笔记 Docker(离线)安装(24.0.9)
  • Docker-Android+cpolar:移动开发的环境革命
  • uniapp首先对战匹配简单实现
  • [bitcoin白皮书_2] 隐私 | 计算
  • 【杂谈】-重构注意力经济:人工智能重塑短视频内容生态
  • 【杂谈】Godot 4.5下载指南
  • CICD工具选型,Jenkins VS Arbess哪一款更好用?
  • iOS 26 续航测试实战,如何测电池掉电、Adaptive Power 模式功耗、新系统更新后的耗电差异与 App 续航优化指南
  • 数据挖掘与KDD:从理论到实践的最佳流程解析
  • 深入理解Linux网络中的Socket网络套接字——基础概念与核心实现
  • Spark专题-第二部分:Spark SQL 入门(4)-算子介绍-Exchange
  • Spark专题-第二部分:Spark SQL 入门(3)-算子介绍-Aggregate
  • Go基础:Go语言中集合详解(包括:数组、切片、Map、列表等)
  • 《算法闯关指南:优选算法--滑动窗口》--09长度最小的子数串,10无重复字符的最长字串
  • 请卸载xshell,一款国产的终端工具,界面漂亮,功能强大,支持win,mac,linux平台,安全免费
  • 用批处理文件实现Excel和word文件的重造
  • unseping(反序列化漏洞)
  • 麒麟系统 word转为pdf
  • 【Codex CLI 配置指南(小白速通版)】
  • R及RStudio的配置与安装
  • 深度解析:基于 ODBC连接 KingbaseES 数据库的完整操作与实践
  • springboot川剧科普平台(代码+数据库+LW)