그래픽(시각적 요소): 캐릭터, 배경, UI
사운드(청각적 요소): 배경 음악, 효과음
인터랙션(상호 작용): 플레이어와 게임과의 상호 작용
이 요소들을 게임 엔진이라는 작업대 속에서 게임을 만들 수 있다

대신에 움직이는 방향으로 캐릭터가 회전하게끔 설정

컨트롤러 회전에 따라 spring arm 회전하게 설정

카메라 조작 상하 반전 적용

결과
A, D 방향키 입력 시 좌우로 이동하는 것이 아닌 회전을 함
캐릭터가 카메라 기준으로 움직이는 것이 아닌, world 좌표 기준으로 움직임
(w로 직진 이동 중에 마우스를 돌려도, 같은 방향으로 계속 이동)
자동차 핸들링 느낌의 캐릭터 움직임(world 기준 움직임)

기존의 이동의 경우 월드 를 기준으로 캐릭터의 회전을 구현하였음
현재의 노드들은 컨트롤러(Get Control Rotation) 기준의 움직임을 구현
Input Action BluePrints를 새로 만들어 점프키의 자료형 설정
입력 / 미입력이 기준이므로 Bool로 설정

space바와 Mapping

Jump노드를 이용해 스페이스 입력 받을 시 jump하도록 설정

결과

스켈레탈 메시의 애니메이션 로직과 상태 전환(State Machine), 이벤트(Event Graph) 등을 시각적으로 설계할 수 있는 시스템
Anime Graph에서 어떤 애니메이션을 사용할 것인지 세팅
애니메이션 시퀀스(Animation Sequence): 걷기, 뛰기, 공격 등 단일 모션이 들어있는 파일
애니메이션 몽타주(Animation Montage): 여러 시퀀스를 재생 구간별로 편집, 합칠 수 있는 특수 에셋 (주로 특정 이벤트 처리에 사용, 점프 공격 같은 연결 동작)
블렌드 스페이스(Blend Space): 여러 애니메이션 시퀀스를 축 값(X/Y)에 따라 자연스럽게 섞어(Blend) 재생하기 위한 에셋 (대표적으로 “걷기-뛰기”, “Idle-Run” 등)
Blend Space를 통해 "Idle" - "Walk" - "Run" 애니메이션을 잘 섞어서 새로운 애니메이션 생성
캐릭터의 벡터를 받아 속력(scalar)을 구해 Speed라는 변수에 저장

Speed에 저장된 값을 통해 애니메이션 작동

결과
Idle과 Move state가 존재하는 새로운 state machine을 만들어 Output Pose에 연결


Idle에는 Idle 애니메이션을, Move에는 아까 Blender Space를 통해 만든 RunWalk 애니메이션을 연결
Idle과 Move state의 transition은 Speed변수의 값이 0 이상인지 아닌지로 판단
결과는 위의 기존 애니메이션과 동일

Idle과 Move state에서 캐릭터가 공중에 떠 있는 경우 Jump, Fall state로 이동
Jump state에서는 점프 애니메이션이 끝난 경우 Fall state로 자동 이동
Fall state에서 이제 공중에 있지 않은 경우 speed scalar 값에 따라 Idle이나 Move state로 이동
공중에 떠 있으면 참 값을 가지는 IsInAir 변수 초기화

공중에 떠있을 경우의 transition

점프 애니메이션 종료 후 자동 transition 설정 (transition Detail에서)

공중에 떠 있지 않은 경우 speed값에 따라 state transition (Move의 경우)

결과