icon안동민 개발노트

애님 그래프의 기본 구성


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

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

애님 그래프의 기본 구조

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

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

주요 노드 유형

  1. 포즈 블렌딩 노드
  • 여러 애니메이션을 혼합하여 부드러운 전환 구현
  • 예 : Blend Poses by Bool, Blend Poses by Int
  1. 스테이트 머신
  • 복잡한 애니메이션 상태와 전환을 관리
  • 예 : 대기, 걷기, 달리기 상태 간 전환
  1. 시퀀스 플레이어
  • 개별 애니메이션 시퀀스를 재생
  • 예 : Play Sequence 노드
  1. 레이어드 블렌드 퍼 본
  • 신체 부위별로 다른 애니메이션 적용
  • 예 : 상체는 공격 동작, 하체는 이동 동작
주요 애님 그래프 노드 유형

애님 그래프 작성 방법

  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. 프리뷰 창 활용
  • 애님 그래프 실행 결과를 실시간으로 확인
  1. 포즈 모니터
  • 특정 본의 회전, 위치 등을 모니터링
  1. 변수 워치
  • 주요 변수 값의 변화를 실시간으로 추적
  1. 브레이크포인트 설정
  • 특정 조건에서 실행을 일시 중지하고 상태 검사
애님 그래프 디버깅 도구

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

  1. 모듈화
  • 복잡한 로직을 서브 애님 그래프로 분리하여 관리
  1. 명확한 명명 규칙
  • 노드와 변수에 의미 있는 이름 부여
  1. 주석 활용
  • 복잡한 로직에 대한 설명을 주석으로 추가
  1. 성능 고려
  • 불필요한 연산을 최소화하고 캐싱 활용
  1. 계층 구조 활용
  • 레이어드 블렌드를 사용하여 신체 부위별 애니메이션 제어

주의사항

  1. 순환 참조 방지
  • 노드 간 순환 참조로 인한 무한 루프 주의
  1. 과도한 복잡성 회피
  • 필요 이상으로 복잡한 그래프는 유지보수 어려움
  1. 성능 모니터링
  • 복잡한 블렌딩이 성능에 미치는 영향 주시
  1. 버전 관리
  • 주요 변경사항에 대한 백업 및 버전 관리 필수

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

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

 이 예제는 하체의 이동 상태와 상체의 액션을 독립적으로 제어하면서도 전체적으로 조화로운 애니메이션을 만들어냅니다. 레이어드 블렌드를 통해 상/하체를 분리하고, 스테이트 머신과 블렌드 스페이스를 조합하여 다양한 상황에 대응할 수 있는 유연한 시스템을 구성합니다.

 애님 그래프는 복잡한 캐릭터 애니메이션 로직을 직관적이고 효율적으로 관리할 수 있게 해주는 강력한 도구입니다. 기본 구조와 주요 노드 유형을 이해하고, 효과적인 구성 방법과 주의사항을 숙지하면, 더욱 생동감 있고 자연스러운 캐릭터 애니메이션을 구현할 수 있습니다. 지속적인 실험과 최적화를 통해 게임에 적합한 애니메이션 시스템을 개발해 나가는 것이 중요합니다.