Jog Start Blendspace
달리기를 시작할때의 Blendspace를 만들기 위해 우선 원본을 복사해 줍니다. (이후 이름을 _Trimmed로 변경해줍니다.)
이후 JogStartBlendspace를 만들어 줍니다..
이전에 해주었던 작업을 되새기며 만들어 줍니다.
Jog_Start의 모션이 길어서 부자연스럽기 때문에 수정해 줄것이다. 이를 위해서는
Jog_Right_Start_Trimmed에서 자연스럽게 이어지기 위해 Jog_Right를 확인해야 한다.
Jog_Right의 경우 발이 왼쪽부터 시작하기 때문에 Jog_Right_Start_Trimmed의 끝을 왼쪽발이 지면에 닿을때 쯤으로 해야 한다. ( 21 프레임이랑 이으면 좋을꺼 같아 Trimmed의 뒤를 삭제해주었다.)
Jog_ Left _Start_Trimmed 도 적절히 잘라준다.
Jog Stop Blendspace
Stop 작업을 해준다.
이렇게 실행하면 문제가 생기는데, 우리가 조작을 멈추면 MovementRotation이 0이 되기 때문에 MovementOffsetYaw 계산에 문제가 생깁니다.
따라서 ShooterAnimInstance 파일로 가서 코드를 작성해 줍니다.
ShooterAnimInstance.h
// Offset yaw the game before we stopped moving
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Movement, meta = (AllowPrivateAccess = "true"))
float LastMovementOffsetYaw;
ShooterAnimInstance.cpp
if (ShooterCharacter->GetVelocity().Size() > 0.f)
{
LastMovementOffsetYaw = MovementOffsetYaw;
}
- ShooterCharacter->GetVelocity().Size() : 캐릭터의 속도를 정규화한 값을 가져옵니다.
이후 ABP_ShooterCharacter의 Getter 대상을 바꿔줍니다.
Jog_Right_Stop_Trimmed를 아래처럼 수정해 줍니다.
이후 Rate Scale을 통해 1.5 배속을 해줍니다.
Jog_ Left_Stop_Trimmed를 아래처럼 수정해 줍니다.
이후 ABP_ShooterCharacter에 들어가 Stop과 Start에 사용한 BlendSpace의 Loop 설정을 해제해줍니다.
Smoothing Character Movement
부드럽지 않게 전환되는 부분이 있느데, 이는 BlendSpace의 Smooting Time을 설정해주어서 해결할 수 있다.
(JogStart와 JogStop 둘다 설정 해주자.)
Smoothing Time
BlendSpace에서 "Smoothing Time"은 애니메이션의 전환을 부드럽게 하는 데 사용되는 설정입니다. BlendSpace는 애니메이션을 여러 가지 조건에 따라 혼합하여 원활한 움직임을 만들어내는 데 사용되며, "Smoothing Time" 설정은 이러한 애니메이션 혼합이 얼마나 부드럽게 이루어질지를 결정합니다.
'Unreal 공부 > Unreal Engine 4 C++ The Ultimate Shooter' 카테고리의 다른 글
Aiming and Crosshairs - 2 (1) | 2024.01.04 |
---|---|
Aiming and Crosshairs - 1 (0) | 2023.12.31 |
Animation - 4 (1) | 2023.12.31 |
Animation - 3 (1) | 2023.12.30 |
Animation - 2 (1) | 2023.12.28 |