언리얼엔진(UE)

[언리얼엔진] 5일차

2h1824 2024. 12. 20. 21:21

TIL

1. 캐릭터 애니메이션 적용 ㅡ> 애니메이션 블루프린트, 블렌더 스페이스

2. 액터 움직이거나 기능 만들기 ㅡ> 회전, 이동, 미끄러짐, 밟으면 사라지는 액터 + 충돌 시 튕겨내기

3. 배운 내용들로 간단한 플랫포머 게임 만들기

캐릭터 애니메이션 적용

1. 애니메이션 블루프린트 생성

2. 블렌드 스페이스 생성 및 가로 축, 세로 축 설정 ㅡ> Speed 0에 A_Bot_Idle, Max에 A_Bot_Run 애니메이션 배치

3. 애니메이션 블루 프린트에서 BS_NBC_IdleRun과 Output Pose 애니메이션을 연결하고 Speed 변수 생성 및 입력 값으로 연결

4. 이벤트 그래프에서 애니메이션 적용되도록 노드 연결 및 업데이트 + 지속적 Speed값 업데이트

액터에 기능 적용 (회전, 이동, 미끄러짐, 밟으면 사라짐, 충돌)

회전

Event Tick을 이용해 Rotation Velocity 값에 따라 Delta Rotation값을 수정하도록 하여 회전 구현.

이벤트 시작 시 Move Direction(bool) 값을 통해 회전 방향을 정할 수 있도록 설정. (수정 가능)

 

이동

블루프린트에 Movement 컴포넌트에 보간을 추가 및 디테일 설정하여 구현. 

(좌) 좌우로 왕복하는 발판, (우) 상하로 왕복하는 발판

ㅡ> 왕복하는 움직임은 비헤이비어 타입을 Ping Pong으로 설정.

 

미끄러지는 얼음 발판

1. 스태틱 메쉬에 Box collision을 추가하여 알맞은 크기로 조정.

2. 콜리전과 상호작용할 액터 지정

3. 콜리전 범위와 overlap 되었을 때, 캐릭터의 지면 마찰, 감속 걷기 제동 값 조절

4. overlap이 끝났을 때, 지면 마찰 값과 감속 걷기 제동 값 정상화

밟으면 사라지는 발판

1. 콜리전 박스 생성 및 범위 설정 미끄러지는 발판과 동일

2. 상호작용할 액터 지정도 미끄러지는 발판과 동일

3. overlap이 되었을 때, Time 변수 값만큼 Delay해준 뒤에 Simulate Physics를 설정하여 공중에서 떨어지게 만들고 이후 일정 시간 뒤에 액터가 파괴되도록 노드 구성.

 

충돌 시 캐릭터를 밀어내는 액터

1. 상호작용할 캐릭터 지정.

2. 충돌(Hit) 시 캐릭터를 튕겨내도록 노드 구성.

Hit Nomal값에 곱해지는 값을 수정하여 튕겨내는 정도 수정 가능

3. 액터의 움직임의 경우 시작 지점에서 한 방향으로 달려가다 다시 시작 지점에서 스폰되는 것을 무한 반복하도록 설정.

ㅡ> 스태틱 메시에 무브먼트 컴포넌트에 보간 설정에서 비헤이비어 타입을 Loop Reset으로 설정.

TMI

오늘 배운 내용들은 대체로 게임에서 기본적인 액터들의 움직임이나 기능들에 초점이 맞추어져 있었다. 이 외에도 발판이 물리적으로 사라졌다 나타났다 한다거나 충돌 시 밀어내는 것을 이용하여 점프 발판을 만드는 것도 재밌을 것 같다. 

애니메이션을 적용하여 액터의 움직임을 자연스럽게 보이도록 하는 것이 Asset에 만들어져 있는 것들을 이용하면 꽤 간단하게 구현이 되어서 인상적이었다. 내가 원하는 애니메이션을 직접 구현하는 것도 근시일 내에 시도해 보도록 해야겠다.

https://www.youtube.com/watch?v=K6jkCG7QKpc