GitHub: https://github.com/tyt0815
tyt0815 - Overview
tyt0815 has 4 repositories available. Follow their code on GitHub.
github.com
Notion: https://www.notion.so/tyt0815/a16514d41cb240f08aa19fe5b4c0ab86?pvs=4
언리얼 엔진
Unreal Engine 5 C++ The Ultimate Game Developer Course
www.notion.so
※노션에 기존에 작성하던 글이 있으니 참고
점프/착지 애니메이션
스테이트 머신을 하나 만들어서 메인 스테이트로 사용합니다. 이전 포스트에서 출력포즈로 연결했던 Locomotion 캐시 포즈사용 노드는 삭제해 줍니다.
메인 스테이트에서 다음과 같이 스테이트를 구성해 줍니다. 주의할 점은 ToLand는 스테이트가 아니라 스테이트 에일리어스 입니다.
Locomotion 스테이트는 만들어둔 캐시포즈를 사용합니다.
Land 스테이트는 애디티브 적용이 들어갑니다.
애디티브 적용은 영어로 Apply additive라 되어 있는데, 이름 그대로 두개의 애니메이션을 더해서 합성된 애니메이션을 만드는 것 입니다. 착지하면서 달리는 모션을 자연스럽게 하기 위해 포함되어 있습니다. 블렌드와 비슷한 성격이라고 생각될 수 있겠습니다.
ToLand는 스테이트가 아니기 때문에 따로 설정해 줄 수 없습니다. 나중에 Jump를 구현할때 다시 돌아오겠습니다.
Land → Locomotion 트랜지션 룰을 설정합니다. 에픽게임즈의 에셋을 살펴보면 하나는 서술형, 하나는 자동 룰 입니다. 서술형은 이때까지 위에서 사용하던 방식이 서술형 입니다. 자동 룰은 Land 스테이트의 애니메이션이 종료되면 자동으로 트랜지션 되는 룰 입니다.
먼저 자동 룰 부터 설정해 줍니다.
이제 서술형도 설정해 줍니다. 일단 저 트랜지션 룰 두개는 or로 연결되어 있는것 같고, 에픽 에셋에서 서술형 트랜지션을 지우고 자동 룰만 사용해본 결과, 잘 작동하긴 하는데, 일단 두개가 다 있으니 둘 다 구현합니다. 추가적으로 확인해본 결과, 두 트랜지션의 우선권이 같아서 or은 맞는 것 같고 서술형 트랜지션 룰이 존재하는 이유는 달리면서 착지하는 경우에는 Land 애니메이션이 더 빨리 끝납니다. 블렌드 세팅의 경과 시간을 0.6으로 설정되어 블렌딩 되는 시간이 있어서 그렇지 경과시간을 낮추면 Land 애니메이션이 없이 바로 달리는 모션이 나오게됩니다.
+ or로 연결된 것은 서술형을 무조건 false가 나오게 설정을 하고 실험을 해 봤는데 트랜지션이 되었기 때문에 or이라고 추측한 것 입니다.
To Land → Land 트랜지션 룰을 설정합니다.
이제 점프를 위한 스테이트들을 구성합니다. 여기서는 ToFalling이 스테이트 에일리어스 입니다.
이쯤에서 스테이트 에일리어스에 대해 설명하자면, 특정 스테이트에서, ToFalling 스테이트로 바로 점프하게 하는 스테이트라고 생각하면 되겠습니다. 아래처럼 체크된 스테이트에서 Jump와 FallLoop 트랜지션 룰을 적용시키는 것 입니다. 노드를 중복으로 만들고 일일이 트랜지션 룰을 설정하는 일을 줄여 주는 것 입니다. 아래와 같이 디테일에서 어떤 스테이트에서 넘어올 지 설정해 줍니다.
Jump 스테이트를 설정합니다.
Fall Loop 스테이트를 설정합니다. Fall Loop는 떨어지는 동안 무한반복해야 하기 때문에 루프를 켜 줍니다.
이제 트랜지션 룰을 설정합니다.
ToFalling → Jump 트랜지션 룰 입니다.
ToFalling → Fall Loop입니다.
먼저 디테일에서 우선권 순서를 2로 변경해 줍니다. 이렇게 되면 Jump로 가는 트랜지션 룰을 먼저 체크하고, Fall Loop로 가능 트랜지션 룰을 체크하게 됩니다.
Jump Fall Loop는 자동 룰로 설정해 줍니다.
이제 애니메이션 블루프린트를 설정하고 실행해서 확인해 봅니다.
'언리얼 엔진 > 기초' 카테고리의 다른 글
[Unreal Engine5] Game Feature 시스템 기초(1) (0) | 2023.08.13 |
---|---|
[Unreal Engine5] Inverse Kinematics (0) | 2023.07.29 |
[Unreal Engine5] Anim Instance 클래스로 걷기/점프 애니메이션 구현(1) (0) | 2023.07.23 |
[Unreal Engine5] 향상된 입력(Enhanced Input) (0) | 2023.07.08 |
[Unreal Engine5] 모듈 추가하기 (0) | 2023.07.08 |