애니메이션 블루프린트란?
캐릭터에 애니메이션 에셋을 설정하면 해당 애니메이션을 실행할 수 있다는 것을 알아보았습니다. 또한 애니메이션 시퀀서를 사용해서 실행해 보았습니다.
이것으로는 애니메이션을 모두 사용하기에는 어렵습니다. 한가지가 더 필요합니다. 애니메이션 블루프린트 입니다.
애니메이션 블루프린트는 캐릭터의 다양한 애니메이션 상태를 관리하고 전환하기 위한 특별한 블루프린트입니다. 이는 게임 내에서 캐릭터가 걷기, 달리기, 점프 등 여러 동작을 자연스럽게 전환할 수 있도록 로직을 구현하는 데 사용됩니다.
애니메이션 블루프린트의 주요 구성 요소는 다음과 같습니다:
•
스테이트 머신(State Machine): 여러 애니메이션 상태를 정의하고 상태 간 전환 조건을 설정합니다.
•
블렌드 스페이스(Blend Space): 여러 애니메이션을 부드럽게 혼합하여 자연스러운 전환을 만듭니다. 예를 들어, 걷기에서 달리기로 전환할 때 속도에 따라 애니메이션을 자연스럽게 블렌딩합니다.
•
애님 그래프(Anim Graph): 애니메이션 노드들을 시각적으로 연결하여 복잡한 애니메이션 로직을 구현합니다.
애니메이션 블루프린트는 캐릭터 블루프린트와 연결되어 캐릭터의 움직임과 상태 변화에 따라 적절한 애니메이션을 재생합니다. 이를 통해 게임 개발자는 복잡한 애니메이션 시스템을 직관적으로 구현할 수 있습니다.
애니메이션 블루프린트 만드는 방법
애니메이션 블루프린트를 만들고 설정하는 방법을 알아보겠습니다:
애니메이션 블루프린트 모드로 전환하기
•
편집기 모드 변경: 언리얼 에디터 상단의 모드 드롭다운 메뉴에서 '애니메이션'을 선택합니다.
•
애니메이션 모드: 이 모드에서는 애니메이션 관련 도구와 패널이 활성화됩니다.
2. 새 애니메이션 블루프린트 생성하기
•
콘텐츠 브라우저에서: 콘텐츠 브라우저에서 우클릭 → 새로 만들기 → 블루프린트 → 애니메이션 블루프린트를 선택합니다.
•
부모 클래스 선택: 일반적으로 'AnimInstance'를 선택합니다.
•
스켈레톤 연결: 생성 시 사용할 스켈레톤을 지정합니다. 이는 해당 스켈레톤을 사용하는 캐릭터에만 이 애니메이션 블루프린트가 적용되도록 합니다.
애니메이션 블루프린트
블루프린트는 언리얼 엔진에 탑재된 프로그래밍 시스템입니다. 여러분은 앞서 머터리얼을 마들 때와 노드를 연결해 표면을 만들 때 블루프린트를 사용해보았습니다. 그리고 나이아가라 모듈을 만들 때도 사용했습니다.
아직은 우리가 블루프린트 프로그래밍 시스템을 잘 모르기 때문에, 지금 애니메이션 블루프린트를 사용한 처리에 관해 잘 이해가 되지 않을 수도 있습니다. 따라서 여기서는 이런 기능들이 있고 준비되어 있으며 정해진 형식대로 만들어가면 애니메이션을 제어할 수 있다.는 정도만 알아도 충분합니다.
일전에도 말씀 드렸지만 프로그래밍을 잘하는 방법은 한번에 많은걸 전부 이해하려 할 필요가 없다는 것입니다.
블루프린트에 대한 자세한 내용은 다음 강의에서 설명합니다.
이벤트 그래프와 AnimGraph
블루프린트 에디터를 살펴보면, 블루프린트 프로그래밍을 하는 곳인 그래프 패널을 살펴봅니다.
그러면 2개의 그래프가 열려 있습니다. [이벤트 그래프]와 [AnimGraph]가 열려 있습니다.
•
이벤트 그래프(Event Graph): 여기서 애니메이션에 필요한 변수와 로직을 설정합니다.
다양한 조작이나 동작에 따라 발생하는 이벤트를 처리합니다. 기본으로 2개의 노드가 준비되어 있습니다. 이벤트 그래프의 경우 필요해질 때까지는 손대지 않는 게 좋습니다.
•
일반적으로 'Event Blueprint Update Animation' 이벤트에서 캐릭터의 속도, 방향, 상태 등을 업데이트합니다.
•
예: 캐릭터 블루프린트에서 'TryGetPawnOwner'를 사용해 캐릭터 레퍼런스를 가져오고, 이를 통해 속도 등의 정보를 계산합니다.
•
애님 그래프(Anim Graph): 애니메이션이 실제로 어떻게 재생될지 정의합니다. 구처젝언 애니메이션 처리를 작성하는 그래프입니다. 이 그래프에는 기본으로 최종 애니메이션 포즈라는 노드가 배치되어 있습니다. 머테리얼의 결과 노드와 비슷합니다. 결과 노드와 마찬가지로 다양한 처리 결과로 결정된 애니메이션을 이 노드에 연결해서 애니메이션 재생되게 합니다.
◦
'Final Animation Pose' 노드에 최종 애니메이션 결과를 연결합니다.
◦
스테이트 머신(State Machine) 노드를 추가하여 여러 애니메이션 상태를 관리할 수 있습니다.
최종 애니메이션 포즈에 애니메이션 설정하기
간단한 애니메이션을 만들어 보겠습니다. [AnimGraph] 탭으로 이동해서 애니메이션 포즈를 잘 보겠습니다.
이 노드에는 result라는 입력이 하나 준비 되어 있습니다. 이곳에 [애니메이션 포즈]를 연결하면 됩니다. 애니메이션 에셋으로 재생되는 애니메이션을 최종적으로 나타내는 값이라고 생각하면 됩니다.
자 이제 애니메이션 만들어보도록 하겠씁니다.
다음과 같은 All → 엔진 → 콘텐츠 → Tutorial → SubEditors → TutorialAssets → Character
폴더안에서 애니메이션 파일을 찾아봅니다.
[Tutorial_Walk_Fwd]를 블루프린트 쪽으로 드래그앤 드릅으로 옮겨주세요.
애니메이션 포즈
추가된 노드는 애니메이션(Animation Pose)라고 합니다. 출력이 하나뿐인 단순한 노드라고 생각하면 됩니다. 이 재생 노드에는 에니메이션을 에셋이 연결되어 있습니다.
노드를 최종 애니메이션 포즈에 연결합니다.
추가한 애니메이션 포즈 노드를 최종 애니메이션 포즈 Result로 드래그해서 연결합니다.
블루프린트를 컴파일합니다.
최종 [컴파일] 버튼을 클릭해 컴파일 하세요. 애니메이션 블루프린트는 이처럼 내용을 변경할 때마다 새롭게 컴파일 해주어야 합니다.
최종적으로 프리뷰에는 캐릭터가 총을 겨눈 자세로 전진하는 애니메이션 표시됩니다. 애니메이션 이끝난 후에는 캐릭터가 멈춰 서있습니다.
블루프린트로 스켈레탈 메쉬를 움직여보기
그럼 이제 우리가 만든 블루프린트로 실제 레벨안의 캐릭터를 움직여 보겠습니다.
/////////===================================================
4. 스테이트 머신 설정하기
•
스테이트 추가: 스테이트 머신 내에서 필요한 애니메이션 상태를 추가합니다(예: Idle, Walk, Run, Jump).
•
애니메이션 연결: 각 스테이트에 해당하는 애니메이션 시퀀스나 블렌드 스페이스를 연결합니다.
•
전환 규칙 설정: 상태 간 전환 조건을 설정합니다(예: 속도가 특정 값 이상이면 Idle에서 Walk로 전환).
5. 블렌드 스페이스 활용하기
•
블렌드 스페이스 생성: 콘텐츠 브라우저에서 우클릭 → 애니메이션 → 블렌드 스페이스를 선택합니다.
•
애니메이션 추가: 블렌딩할 여러 애니메이션(예: 걷기, 달리기)을 추가합니다.
•
블렌드 파라미터 설정: 속도나 방향 같은 파라미터를 기준으로 애니메이션을 블렌딩합니다.
•
애님 그래프에 연결: 생성한 블렌드 스페이스를 애님 그래프나 스테이트 머신의 상태에 연결합니다.
6. 캐릭터 블루프린트와 연결하기
•
캐릭터 블루프린트 열기: 애니메이션 블루프린트를 사용할 캐릭터 블루프린트를 엽니다.
•
애니메이션 클래스 설정: 캐릭터 블루프린트의 메시 컴포넌트 상세 패널에서 '애니메이션' → '애님 클래스'에 생성한 애니메이션 블루프린트를 설정합니다.
•
변수 전달: 필요한 경우, 캐릭터 블루프린트에서 애니메이션 블루프린트로 변수나 상태 정보를 전달할 수 있습니다.
이 기본 설정을 완료하면, 캐릭터가 게임 내에서 움직일 때 애니메이션 블루프린트가 적절한 애니메이션을 자동으로 재생하게 됩니다. 복잡한 애니메이션 시스템은 이러한 기본 구조를 확장하여 구현할 수 있습니다.














