언리얼 C++ 25.01.27

HyeonjungYun·2025년 1월 27일

언리얼 기초

목록 보기
12/23

애니메이션 클래스

Anim Instance



블루프린트 애니메이션 클래스를 생성하면 Anim Instance클래스를 상속한 애니메이션 클래스가 만들어진다.

Anim Instance는 애니메이션 시스템에서 핵심적인 역할을 하는 클래스, 애니메이션 로직 구현과 애니메이션을 동작시키는 전반적인 기능이 구현되어 있는 클래스다.

애니메이션 그래프

애니메이션 그래프를 보면 Output Pose 노드가 보이는데 이건 함수로 따지면 return 역할을 한다.
여기에 애니메이션 동작을 연결해주면 이 애니메이션 블루프린트 클래스가 최종적으로 구현할 애니메이션 동작을 출력한다.

애니메이션 클래스의 라이프 사이클 함수

애니메이션 클래스에도 액터 클래스의 라이프 사이클과 비슷한 함수가 존재한다.

Event BlueprintInitializeAnimation함수는 애니메이션 클래스가 처음 초기화될 때 호출되는 함수이다. 그렇기 때문에 블루프린트의 초기 데이터 설정을 하려면 이 함수에서 하면 된다.

Event BlueprintUpdateAnimation함수는 매 프레임마다 함수가 실행된다. 액터의 Tick함수와 비슷한 기능을 한다.

State Machine


State Machine은 언리얼 엔진의 애니메이션 시스템에서 캐릭터의 상태에 따라 적절한 애니메이션으로 전환해주는 기능을 한다.

State Machine에서 캐릭터의 상태를 바탕으로 캐릭터의 애니메이션을 전환해줄 수 있다.


각 State를 노드로 만들고 State내부에서 동작을 설정하면 된다.

각 State에 Transition Rule를 설정해서 상태를 어떻게 전환시킬지에 대해서 정할 수있다.


State Alias는 State를 묶어서 묶인 State에서 다른 State와 연결하여 Transition Rule를 충족시키면 묶인 State들이 연결된 State로 전환이 가능하도록 한다.

블렌더 스페이스


블렌더 스페이스는 input값에 따라서 애니메이션을 섞어준다.
값이 하나만 있는 것을 1D 스페이스라고 부른다. 방향이랑 속력을 같이 고려하게 되면 2D 스페이스가 된다.

컨트롤 릭과 IK

IK : 뼈 구조에서 특정 뼈를 원하는 위치로 움직였을 때 나머지 뼈도 같이 위치와 회전이 자동으로 계산된다. 캐릭터가 경사면에 선다면 IK가 발이 자연스럽게 지면에 닿도록 계산한다.

컨트롤 릭의 Details에서 원하는 IK를 고르면 된다.

컨트롤 릭 : 캐릭터의 뼈 구조를 잡고 움직여주는 조작도, 관절과 뼈를 IK가 계산해주면 컨트롤 릭은 계산한 값대로 캐릭터를 움직인다.

cached pose




cached pose로 저장을 하게 되면 캐시된 애니메이션 데이터를 재사용할 수 있게 된다.

Apply Additive

Apply Additive는 기존의 동작에 하나의 동작을 추가하여 블렌딩 해준다. 하나의 스테이트에서 동작을 하나 추가해준다. 동작들이 서로 매끄럽게 이어도록 블렌딩해준다.

profile
게임 프로그래머 공부

0개의 댓글