[Unreal] 08.애니메이션_블루프린트 템플릿

본 문서는 어소트락 언리얼엔진 게임프로그래머 양성과정의 강의를 토대로 필기한 내용입니다

애니메이션

애니메이션 블루프린트 템플릿

  • 시퀀스 플레이어 : 원하는 시퀀스를 불러오고 동작시켜주는 역할
    • UAnimSequence 변수를 코드에서 잡아두고 해당 변수에 시퀀스를 다른 것으로 넣어 둘 수도 있다
    • Idle이 여러 개의 시퀀스로 구성된 경우 차례로 플레이하게끔 하는 구성을 만들 수 있음
    • 동적으로 AnimSequence를 변화시키는 구조로 내가 원하는 대로 설계할 수 있다
  • UAimOffsetBlendSpace
    • 헤더를 추가하고 코드에 멤버변수를 잡아준 뒤 BP에서 멤버변수를 프로퍼티로 Get해서 사용할 수 있다
  • 애니메이션 몽타주
    • 스켈레톤마다 만들어지는 그룹과 슬롯은 다름
    • 따로 지정 필요하다
  • 공격
    • 현재 버전에선 Default 그룹 밖에 사용 불가능
    • ABPT에서는 애님 슬롯 매니저의 창을 여는것 조차 불가능
  • 죽음
    • 로그 ABP를 만들때, Sequence Player Death모션을 직접 끌어와서 사용했다
    • ABPT를 만들 때, 각 캐릭터에 맞는 Death모션을 재생시키기 위해서 AnimInstance 코드에서 매핑을 해줄 필요 있다
    • Array 혹은 Map을 이용해서 미리 각 캐릭터 ABPT에서 매핑을 해 두고 사용하기

애니메이션 링크

애니메이션 블루프린트가 또 다른 애니메이션 블루프린트를 가져와서 사용 하는 방법
모듈 조립의 개념

  • 애니메이션 밀리, 원거리, 캐스팅 등 애니메이션을 따로 작업한 후에 링크를 진행할 수 있다
  • 상속을 받아서 구현하는 것이 아니라 에셋 오버라이드가 불가능
    • 에셋 오버라이드가 아니라 Map과 같은 자료구조에 애니메이션을 매핑해 둔 후에 사용
  • UAnimationAsset : 모든 애니메이션 에셋이 상속받는 클래스 타입
    • AnimSequence, BlendSpace(AimOffsetBlendSpace를 상속받으므로 BlendSpace로 통합 관리)등으로 다운캐스팅해서 사용할 수 있다
    • 에디터 상의 BP에 직접 바인딩 해줄 수도 있지만 UE에서 제공하는 기능인 DataTable을 사용할 수도 있다

데이터테이블 구조체

  • 동적으로 사용하는 멤버변수를 데이터테이블 구조체에 넣어두고 관리
USTRUCT(BlueprintType)
struct FPlayerAnimData : public FTableRowBase
{

};

IK

위치가 주어지면 End Effector가 가능한 정확하게 그 위치로 이동할 수 있도록 각 관절들의 각도(Pose)를 구하는 것

  • 사용 예시
    • 인간형 캐릭터가 어떤 물체를 들어올리는 모션을 연출하는 경우, 각 관절들의 각도를 조절해서 원하는 포즈를 정의하는 것(Forward Kinematics, FK)보다 캐릭터의 End Effector를 직접 물건의 위치(타겟)에 가져다 놓는 것 (Inverse Kinematics, IK)이 더 직관적인 방법
    • 울퉁불퉁한 표면에 대한 애니메이션 처리가 필요한 경우

© 2023 Jinsoo Lee. All rights reserved.

Powered by Hydejack v9.1.6