애님 그래프

애니메이션 블루프린트에서 스켈레탈 메시에 적용시킬 포즈의 샘플링, 블렌딩, 조작에 사용되는 그래프입니다.

Windows
MacOS
Linux

AnimGraph (애님 그래프)는 현재 프레임에 대한 스켈레탈 메시의 최종 포즈를 구하는 데 사용됩니다. 기본적으로 각각의 애니메이션 블루프린트에는 애님 그래프가 있으며, 그 안에는 애니메이션 노드 를 놓아 애니메이션 시퀀스 샘플링, 애니메이션 블렌딩, 스켈레탈 컨트롤을 사용한 본 트랜스폼 작업을 합니다. 그 결과 포즈를 매 프레임 스켈레탈 메시에 적용합니다.

AnimGraph

애님 그래프 안에서는 이벤트 그래프 나 다른 곳, 이를테면 코드에서 계산된 값을 사용할 수 있으며, 그것을 블렌드 스페이스나 다른 블렌드 노드의 입력으로 사용할 수 있습니다. 물론 별도의 블렌딩 없이 바로 애니메이션 시퀀스만 샘플링할 수도 있습니다. 애님 그래프 에서는 스켈레탈 컨트롤을 사용하여 본 위치, 방향, 크기를 직접 조절할 수도 있습니다.

실행 흐름

모든 그래프에는 그래프 노드상의 실행 핀 사이를 흐르는 신호선으로 실행 흐름이 표시됩니다. 블루프린트의 이벤트 그래프와 같은 일반 그래프의 경우, 플레이 도중 이벤트 발동에 따라 그 실행 흐름이 표시됩니다. 애님 그래프는 이벤트 기반이 아니라 매 프레임마다 실행 흐름이 결정되기 때문에 항상 표시된다는 점이 다릅니다.

Blend - Alpha 0.0

애님 그래프에서의 실행 흐름은 한 노드에서 다른 노드로 전해지는 포즈를 나타냅니다. Blend 같은 일부 노드는 입력이 여럿 있어, 현재 실행 흐름의 어느 부분에 있는 입력인가에 따라 내부적으로 결정을 내립니다. 이러한 결정은 보통 데이터 핀에 전해진 값과 같은 외부 입력에 따라 달라집니다.

아래 예제에서 위와 똑같은 블렌드 노드의 실행 흐름이 (수동 설정되고 있는) Alpha 핀의 값에 따라 전환되었습니다:

Blend - Alpha 1.0

Alpha 1.0 인 Blend - Input B 사용

애님 그래프 작업하기

애님 그래프는 노드 그래프 값을 구하는 식으로 작동합니다. 이 노드 중 일부는 하나 이상의 인풋 포즈에 특정 연산을 하는 반면, 다른 노드는 애니메이션 시퀀스, 블렌드 스페이스, 애님 몽타주 등 다른 유형의 애셋에 접근하거나 샘플링하는 데 사용됩니다. 스테이트 머신에는 별도의 그래프 망을 포함하고 있는데, 이는 애님 그래프 안에 존재할 수 있으며, 다수의 스테이트 머신을 블렌딩하여 최종 출력 포즈를 낼 수 있습니다. 애님 그래프 컨텍스트 안에서 그 각각이 어떻게 작동하는지에 대한 정보는 아래 각 링크를 참고하시기 바랍니다.

  • 애니메이션 블렌딩 - 다양한 Blend 노드 사용을 통해 이루어집니다.

  • 애니메이션 노드 - 입력 포즈에 블렌딩, 직접 본 조작 등과 같은 작업을 하는 데 사용됩니다.

  • 애니메이션 시퀀스 - 애님 그래프 안에 바로 배치하여 최종 애니메이션 포즈를 구동시킬 수 있습니다.

  • 블렌드 스페이스 - 애님 그래프 안에서 사용하여 변수에 따라 포즈를 블렌딩할 수 있습니다.

  • 스켈레탈 컨트롤 - 스켈레톤 내 본을 직접 구동시키는 데 사용할 수 있는 노드입니다.

  • 좌표계 변환 - 포즈의 기준 좌표계를 로컬 - 컴포넌트 변환시킬 수 있는 노드입니다.

  • 스테이트 머신 - 일련의 그래프, 규칙, 변수를 통해 캐릭터가 들어갈 애니메이션 상태를 결정합니다.

  • 싱크 그룹 - 연관성은 있지만 길이가 다를 수 있는 애니메이션의 동기화 상태를 유지하는 데 사용됩니다.

스레드 안전성

애님 그래프 로직은 "클래스 디폴트" 에서 찾을 수 있는 "Use Multi-Threaded Animation Update" (멀티 스레드 애니메이션 업데이트) 세팅을 사용하여 워커 스레드에서 실행시킬 수 있습니다. 그러면 애니메이션 작업을 다른 업데이트와 함께 병렬 처리하도록 할 수 있어 멀티 코어 머신에서의 게임 퍼포먼스를 대폭 향상시킬 수 있습니다.

이 세팅을 켜면 (기본적으로 켜져 있습니다) 애님 그래프에서 unsafe (안전성이 없는) 작업이 이루어지는 경우 컴파일러 경고가 납니다. 일반적으로 안전성이 있는 작업은 다음과 같습니다:

  • 대부분의 애님 그래프 노드 사용.

  • (구조체 멤버를 포함한) 애니메이션 블루프린트의 멤버 변수 직접 접근.

  • (대부분의 수학 함수처럼) 상태를 변경하지 않는 블루프린트 'pure' 함수 호출.

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼