icon안동민 개발노트

애님 그래프의 기본 구성


 애님 그래프는 애니메이션 블루프린트의 핵심 요소로, 캐릭터의 애니메이션 로직을 시각적으로 구성할 수 있게 해줍니다.

 이를 통해 복잡한 애니메이션 시스템을 직관적으로 설계하고 관리할 수 있습니다.

애님 그래프의 기본 구조

 애님 그래프는 크게 세 부분으로 구성됩니다.

  1. 이벤트 그래프 : 애니메이션 로직을 제어하는 스크립트
  2. 애님 그래프 : 실제 애니메이션 블렌딩과 전환을 담당
  3. 결과 포즈 : 최종적으로 캐릭터에 적용될 애니메이션 포즈

주요 노드 유형

 1. 포즈 블렌딩 노드

  • 여러 애니메이션을 혼합하여 부드러운 전환 구현
  • 예 : Blend Poses by Bool, Blend Poses by Int

 2. 스테이트 머신

  • 복잡한 애니메이션 상태와 전환을 관리
  • 예 : 대기, 걷기, 달리기 상태 간 전환

 3. 시퀀스 플레이어

  • 개별 애니메이션 시퀀스를 재생
  • 예 : Play Sequence 노드

 4. 레이어드 블렌드 퍼 본

  • 신체 부위별로 다른 애니메이션 적용
  • 예 : 상체는 공격 동작, 하체는 이동 동작

애님 그래프 작성 방법

  1. 애니메이션 블루프린트 생성
  2. 애님 그래프 탭으로 이동
  3. 최종 애니메이션 포즈 노드에 연결될 노드 체인 구성

 예시 : 걷기/달리기 블렌드

[Speed 변수] --> [Blend Poses by Float]
                    |
   [걷기 애니메이션] -|
   [달리기 애니메이션] -|
                    |
                [결과 포즈]

애니메이션 시퀀스 연결

  1. 콘텐츠 브라우저에서 애니메이션 시퀀스를 애님 그래프로 드래그
  2. 생성된 시퀀스 플레이어 노드를 다른 노드와 연결

 예시 : 점프 애니메이션 추가

[IsJumping 변수] --> [Blend Poses by Bool]
                        |
   [일반 이동 블렌드] --------|
   [점프 애니메이션 시퀀스] ---|
                        |
                    [결과 포즈]

애님 그래프에서의 변수 사용

  1. 애니메이션 블루프린트의 변수 섹션에서 변수 생성
  2. 애님 그래프에서 변수 노드로 드래그하여 사용

 예시 : 이동 속도에 따른 애니메이션 블렌드

이벤트 그래프:
[Calculate Speed] --> [Set Speed Variable]
 
애님 그래프:
[Get Speed Variable] --> [Blend Poses by Float]

이벤트 그래프와의 상호작용

 이벤트 그래프에서 애님 그래프에 사용될 변수를 업데이트합니다.

 예시 : 캐릭터 상태 업데이트

이벤트 그래프:
Event Blueprint Update Animation
    |
[Get Character Movement] --> [Calculate Speed]
                         --> [Set Speed Variable]
                         --> [Determine Character State]
                         --> [Set State Variable]

디버깅 기법

 1. 프리뷰 창 활용

  • 애님 그래프 실행 결과를 실시간으로 확인

 2. 포즈 모니터

  • 특정 본의 회전, 위치 등을 모니터링

 3. 변수 워치

  • 주요 변수 값의 변화를 실시간으로 추적

 4. 브레이크포인트 설정

  • 특정 조건에서 실행을 일시 중지하고 상태 검사

효과적인 애님 그래프 구성을 위한 팁

 1. 모듈화

  • 복잡한 로직을 서브 애님 그래프로 분리하여 관리

 2. 명확한 명명 규칙

  • 노드와 변수에 의미 있는 이름 부여

 3. 주석 활용

  • 복잡한 로직에 대한 설명을 주석으로 추가

 4. 성능 고려

  • 불필요한 연산을 최소화하고 캐싱 활용

 5. 계층 구조 활용

  • 레이어드 블렌드를 사용하여 신체 부위별 애니메이션 제어

주의사항

 1. 순환 참조 방지

  • 노드 간 순환 참조로 인한 무한 루프 주의

 2. 과도한 복잡성 회피

  • 필요 이상으로 복잡한 그래프는 유지보수 어려움

 3. 성능 모니터링

  • 복잡한 블렌딩이 성능에 미치는 영향 주시

 4. 버전 관리

  • 주요 변경사항에 대한 백업 및 버전 관리 필수

예제 : 종합적인 캐릭터 애니메이션 시스템

애님 그래프 구조:
 
[루트 모션 소스]
    |
[레이어드 블렌드 퍼 본]
    |
    +-- [하체 스테이트 머신]
    |       |
    |       +-- [대기 상태]
    |       +-- [걷기 상태]
    |       +-- [달리기 상태]
    |       +-- [점프 상태]
    |
    +-- [상체 블렌드 스페이스]
            |
            +-- [대기 포즈]
            +-- [공격 포즈]
            +-- [아이템 사용 포즈]
 
이벤트 그래프:
Event Blueprint Update Animation
    |
[Update Movement State]
    |
[Update Combat State]
    |
[Update Upper Body Blend]

 이 예제는 하체의 이동 상태와 상체의 액션을 독립적으로 제어하면서도 전체적으로 조화로운 애니메이션을 만들어냅니다.

 레이어드 블렌드를 통해 상/하체를 분리하고 스테이트 머신과 블렌드 스페이스를 조합하여 다양한 상황에 대응할 수 있는 유연한 시스템을 구성합니다.