Company
교육 철학

캐릭터 애니메이션(Blueprint) - 작성중

애니메이션 블루프린트란?

캐릭터에 애니메이션 에셋을 설정하면 해당 애니메이션을 실행할 수 있다는 것을 알아보았습니다. 또한 애니메이션 시퀀서를 사용해서 실행해 보았습니다.
이것으로는 애니메이션을 모두 사용하기에는 어렵습니다. 한가지가 더 필요합니다. 애니메이션 블루프린트 입니다.
애니메이션 블루프린트는 캐릭터의 다양한 애니메이션 상태를 관리하고 전환하기 위한 특별한 블루프린트입니다. 이는 게임 내에서 캐릭터가 걷기, 달리기, 점프 등 여러 동작을 자연스럽게 전환할 수 있도록 로직을 구현하는 데 사용됩니다.
애니메이션 블루프린트의 주요 구성 요소는 다음과 같습니다:
스테이트 머신(State Machine): 여러 애니메이션 상태를 정의하고 상태 간 전환 조건을 설정합니다.
블렌드 스페이스(Blend Space): 여러 애니메이션을 부드럽게 혼합하여 자연스러운 전환을 만듭니다. 예를 들어, 걷기에서 달리기로 전환할 때 속도에 따라 애니메이션을 자연스럽게 블렌딩합니다.
애님 그래프(Anim Graph): 애니메이션 노드들을 시각적으로 연결하여 복잡한 애니메이션 로직을 구현합니다.
애니메이션 블루프린트는 캐릭터 블루프린트와 연결되어 캐릭터의 움직임과 상태 변화에 따라 적절한 애니메이션을 재생합니다. 이를 통해 게임 개발자는 복잡한 애니메이션 시스템을 직관적으로 구현할 수 있습니다.

애니메이션 블루프린트 만드는 방법

애니메이션 블루프린트를 만들고 설정하는 방법을 알아보겠습니다:

1. 애니메이션 블루프린트 모드로 전환하기

편집기 모드 변경: 언리얼 에디터 상단의 모드 드롭다운 메뉴에서 '애니메이션'을 선택합니다.
애니메이션 모드: 이 모드에서는 애니메이션 관련 도구와 패널이 활성화됩니다.

2. 새 애니메이션 블루프린트 생성하기

콘텐츠 브라우저에서: 콘텐츠 브라우저에서 우클릭 → 새로 만들기 → 블루프린트 → 애니메이션 블루프린트를 선택합니다.
부모 클래스 선택: 일반적으로 'AnimInstance'를 선택합니다.
스켈레톤 연결: 생성 시 사용할 스켈레톤을 지정합니다. 이는 해당 스켈레톤을 사용하는 캐릭터에만 이 애니메이션 블루프린트가 적용되도록 합니다.

3. 애니메이션 블루프린트

블루프린트는 언리얼 엔진에 탑재된 프로그래밍 시스템입니다. 여러분은 앞서 머터리얼을 마들 때와 노드를 연결해 표면을 만들 때 블루프린트를 사용해보았습니다. 그리고 나이아가라 모듈을 만들 때도 사용했습니다.
아직은 우리가 블루프린트 프로그래밍 시스템을 잘 모르기 때문에, 지금 애니메이션 블루프린트를 사용한 처리에 관해 잘 이해가 되지 않을 수도 있습니다. 따라서 여기서는 이런 기능들이 있고 준비되어 있으며 정해진 형식대로 만들어가면 애니메이션을 제어할 수 있다.는 정도만 알아도 충분합니다.
일전에도 말씀 드렸지만 프로그래밍을 잘하는 방법은 한번에 많은걸 전부 이해하려 할 필요가 없다는 것입니다.
블루프린트에 대한 자세한 내용은 다음 강의에서 설명합니다.

이벤트 그래프와 AnimGraph

이벤트 그래프(Event Graph): 여기서 애니메이션에 필요한 변수와 로직을 설정합니다. 다양한 조작이나 동작에 따라 발생하는 이벤트를 처리합니다. 기본으로 2개의 노드가 준비되어 있습니다. 이벤트 그래프의 경우 필요해질 때까지는 손대지 않는 게 좋습니다.
일반적으로 'Event Blueprint Update Animation' 이벤트에서 캐릭터의 속도, 방향, 상태 등을 업데이트합니다.
예: 캐릭터 블루프린트에서 'TryGetPawnOwner'를 사용해 캐릭터 레퍼런스를 가져오고, 이를 통해 속도 등의 정보를 계산합니다.
애님 그래프(Anim Graph): 애니메이션이 실제로 어떻게 재생될지 정의합니다. 구처젝언 애니메이션 처리를 작성하는 그래프입니다. 이 그래프에는 기본으로 최종 애니메이션 포즈라는 노드가 배치되어 있습니다. 머테리얼의 결과 노드와 비슷합니다. 결과 노드와 마찬가지로 다양한 처리 결과로 결정된 애니메이션을 이 노드에 연결해서 애니메이션 재생되게 합니다.
'Final Animation Pose' 노드에 최종 애니메이션 결과를 연결합니다.
스테이트 머신(State Machine) 노드를 추가하여 여러 애니메이션 상태를 관리할 수 있습니다.

4. 스테이트 머신 설정하기

스테이트 추가: 스테이트 머신 내에서 필요한 애니메이션 상태를 추가합니다(예: Idle, Walk, Run, Jump).
애니메이션 연결: 각 스테이트에 해당하는 애니메이션 시퀀스나 블렌드 스페이스를 연결합니다.
전환 규칙 설정: 상태 간 전환 조건을 설정합니다(예: 속도가 특정 값 이상이면 Idle에서 Walk로 전환).

5. 블렌드 스페이스 활용하기

블렌드 스페이스 생성: 콘텐츠 브라우저에서 우클릭 → 애니메이션 → 블렌드 스페이스를 선택합니다.
애니메이션 추가: 블렌딩할 여러 애니메이션(예: 걷기, 달리기)을 추가합니다.
블렌드 파라미터 설정: 속도나 방향 같은 파라미터를 기준으로 애니메이션을 블렌딩합니다.
애님 그래프에 연결: 생성한 블렌드 스페이스를 애님 그래프나 스테이트 머신의 상태에 연결합니다.

6. 캐릭터 블루프린트와 연결하기

캐릭터 블루프린트 열기: 애니메이션 블루프린트를 사용할 캐릭터 블루프린트를 엽니다.
애니메이션 클래스 설정: 캐릭터 블루프린트의 메시 컴포넌트 상세 패널에서 '애니메이션' → '애님 클래스'에 생성한 애니메이션 블루프린트를 설정합니다.
변수 전달: 필요한 경우, 캐릭터 블루프린트에서 애니메이션 블루프린트로 변수나 상태 정보를 전달할 수 있습니다.
이 기본 설정을 완료하면, 캐릭터가 게임 내에서 움직일 때 애니메이션 블루프린트가 적절한 애니메이션을 자동으로 재생하게 됩니다. 복잡한 애니메이션 시스템은 이러한 기본 구조를 확장하여 구현할 수 있습니다.