2023年3月20日22:47:36
1.增强输入绑定,实现移动旋转
过程见我的博客
2.实现鼠标旋转摄像机
要么蓝图里把这两项开了

要么C++里Character的SetupPlayerInputComponent函数里加上:
1 2 3
| bUseControllerRotationPitch = true; bUseControllerRotationYaw = true;
|
3.实现玩家跳跃功能
动画蓝图中创建IsAir布尔变量,然后如图设置

此为跳跃的条件

4.第三人称动画导入,动画重定向
从blaster项目里拷的ik和rtg文件,稍微改下就能用,还好都是标准模型,动画也可以直接重定向往上套。但是
动画有问题,需要去商城重下初学者内容包,回头替换,这动画绝逼被我搞坏了。

5.创建动画蓝图和BlendSpace

动画有问题,需要替换
6.RPC问题的解决,实现shift服务器客户端同步速度
按shift设置角色速度降低,松开shift恢复速度,但是速度是写在Character Movement Component组件里的,该组件的网络同步需要自己设置。此处在客户端调用服务端函数,实现客户端和服务端最大移动速度属性的统一,避免因属性不统一,客户端不断被服务端纠正而造成的卡顿。
实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| void AFPSBaseCharacter::LowSpeedWalk(const FInputActionValue& InputValue) { GetCharacterMovement()->MaxWalkSpeed = 300.f; ServerLowSpeedWalk(); }
void AFPSBaseCharacter::NormalSpeedWalk(const FInputActionValue& InputValue) { GetCharacterMovement()->MaxWalkSpeed = 450.f; ServerNormalSpeedWalk(); }
void AFPSBaseCharacter::ServerLowSpeedWalk_Implementation() { GetCharacterMovement()->MaxWalkSpeed = 300.f; }
bool AFPSBaseCharacter::ServerLowSpeedWalk_Validate() { return true; }
void AFPSBaseCharacter::ServerNormalSpeedWalk_Implementation() { GetCharacterMovement()->MaxWalkSpeed = 450.f; }
bool AFPSBaseCharacter::ServerNormalSpeedWalk_Validate() { return true; }
|
7.导入玩家第一人称手臂动画蓝图及混合空间
这是第一人称武器的动画蓝图设置

注意参数复用和这里有问题的动画
