1. 캐릭터 애니메이션
언리얼에서는 캐릭터 애니메이션을 쉽게 지정해서 구현할 수 있도록 해놨는데 그 기능을 배워 볼 것이다.
우선 콘텐츠 브라우저에서 빈곳에 우클릭을 해 애니메이션 블루프린트를 만들어보자.
안으로 들어가 A_Bot_Idle을 Output Pose에 연결시켜주고 컴파일을 누르면 우리의 봇 친구의 자세가 편안해진다.
그 후 애니메이션에서 블렌드 스페이스를 만들어준다. 블랜드 스페이스는 애니메이션들을 블렌딩(혼합)해주는 특수 에셋이다.
멈춰있을 때는 Idle애니메이션, 속도가 빨라지면 Run 애니메이션을 사용할거기때문에 축을 하나만 사용할거고 이름을 speed로 해줄것이다.
그리고 에셋 브라우저에서 끌어와서 A_Bot_Idle을 0으로, A_Bot_Run을 100에 놨두니 빨간 선이 생겼다.
Ctrl을 누르고 마우스를 갖다대면 속도가 0일때는 걸어다니고
100일때는 뛰어다니는걸 볼 수 있다 그 중간의 과정을 정말 자연스럽게 이어준다.
이제 실제 캐릭터가 이동할 때 달리는 애니메이션, 멈추면 Idle 애니메이션이 나오도록 연결해줘야겠다.
변수 플로트로 변수를 만들고 Speed 변수를 NBC_NPCCH(블렌드 스페이스)노드에 연결하고 아웃풋 포즈에 연결해준다.
그 후 이벤트그래프에서 플레이어 캐릭터의 움직임이 Speed변수에 들어가도록 연결을 해주도록하자.
Try Get Pawn Owner (플레이어가 소유한 엑터) 의 값을 Get Velocity의 타깃에 연결을 시켜주고 그 타겟의 속도를 옮겨줄것이기 때문에 점프와 관련된 Z축을 빼고 백터값으로 바꿔준 후 Speed 변수에 넣어주면 실시간 내 움직임에 따라 Speed의 값이 정해진다.
Pawn이란 플레이어나 AI가 제어할 수 있는 엑터를 말한다.
이렇게 한 후 실행을 하면 내 캐릭터가 이동할 때 달리는 애니메이션이 자연스럽게 연결되는걸 볼 수 있다.
2. 액터 회전시키기
액터 회전은 어렵지 않다.
Event Tick으로 매 프레임마다 이벤트를 발생하도록 하고 Add Actor Local Rotation을 넣어주고 회전량을 넣어주면 된다! 근데 Roll, Pitch, Yaw는 저번 글에서 설명을 해줬으니 넘어가도록 하고 Delta Seconds는 1프레임에 걸리는 시간값이라고 보면 되는데. 저거랑 Speed를 곱해주면 서로 다른 프레임을 가진 사람들끼리도 같은 시간당 회전량을 가질 수 있게된다.
예) Speed 값을 10이라고 보면
1. 곱하지 않고 숫자를 넣었을 때
30프레임 = 30 x 10(Speed) : 1초에 300 만큼 회전
60프레임 = 60 x 10(Speed) : 1초에 600 만큼 회전
2. 곱해줬을 때
30프레임 = 30 x (1s/30 x 10) : 1초에 10x1s 만큼 회전
60프레임 = 60 x (1s/60 x 10) : 1초에 10x1s 만큼 회전
이 되기때문에 다양한 컴퓨터 사양을 가진 모든사람에게 최대한 비슷한 경험을 주기위해 넣어준다고 보면 된다.
'언리얼 공부' 카테고리의 다른 글
Unreal[실제 Unreal에 C++ 스크립트 적용시켜보기] (0) | 2025.01.09 |
---|---|
2024.12.22[액터 좌우 반복이동, 트램펄린(캐릭터 상태변경, 캐릭터 팅겨나가기)] (1) | 2024.12.22 |
2024.12.19[블루프린트와 입력액션으로 플레이어 캐릭터 조작하기] (1) | 2024.12.19 |
2024.12.18[While Loop로 구구단만들기, 열거형으로 가위바위보 만들기] (5) | 2024.12.18 |
2024.12.17[머티리얼, 머티리얼 인스턴트, 이미시브 컬러] (2) | 2024.12.17 |