적 AI가 사용할 애니메이션 블렌드 스페이스를 만들어보겠습니다
BasicSkeletalEnemy 이름을 가진 Character (c++)를 종속받은 적을 한마리 생성후
SkeletalMesh를 할당해주었습니다
스폰할때 여러가지버전의 적을 생성하기위해 부위별로 별도로 만들어주었습니다
전체의 스케일값을 쉽게 변동하기 쉽게 기준이되는 spine 스켈레톤을 기준으로 나머지 부위가 종속받도록 설계하였습니다
AI의 움직임은 총 8가지 방향으로 블렌드스페이스2D를 사용하여
속도와 방향에 따라 움직임을 설계해보도록 하겠습니다
IDLE 애니메이션과 걷기 8방향애니메이션 그리고 뛰기 8방향 애니메이션을 리타게팅 해줍니다.
블렌드 스페이스를 만들어줍니다
AI가 사용할 애님인스턴스를 만들어주겠습니다
값을 넘겨받고 넘겨주기위한 NativeInitializeAnimation과 NativeThreadSafeUpdateAnimation을 선언
이동속도를 받기위한 groundSpeed변수와 방향을 받을 direction변수를 선언해주었습니다
BlueprintReadWrite프로퍼티를 선언해 스테이트머신에서 변수를 사용할수있게 해주었습니다.
TryGetPawnOwner로 BasicSkeletonEnemy 를 캐스팅후에
GetVelocity로 이동속도를 가져와 groundSpeed변수에 할당
direction에는 캐릭터의 방향을 -180 ~ 180도로 받아올수있게 해주었습니다
8방향 블렌드스페이스입니다
왼쪽 디테일 패널창 가로축을 Direction ,세로축을 Speed으로 설정해주고
Direction의 최소값 -180, 최대값 180설정해줍니다
Speed는 원하는 최고 이동속도를 설정해줍니다.
그리드분할을 8로 설정해줍니다.
그리드에 각각 방향에 알맞는 애니메이션을 할당해줍니다
첫번쨰줄은 idle 두번쨰줄은 speed400(걷기) 세번쨰줄은 speed700(뛰기) 라인이며
중앙을 기점으로 오른쪽은 Right움직임 왼쪽은 Left움직임을 담당합니다
[ 아래 -- 왼쪽아래 -- 왼쪽 -- 왼쪽위 -- 중앙 -- 오른쪽위 -- 오른쪽 -- 오른쪽아래 -- 아래 ] 순서입니다
방금만든 c++를 종속받고있는 애니메이션블루프린트를 생성후
StateMachine - DefaultSlot - OutPutPose 이렇게 연결해줍니다
스테이트머신노드를 더블클릭 한뒤 스테이트를 추가해주고
블렌드스페이스 스테이트 노드안에서 아까만든 블렌드스페이스를 꺼내준뒤 만들어놓은 변수와 연결해줍니다
적용되어야하는 스켈레탈 메시 애님클래스에 만들어둔 애니메이션블루프린트를 할당해주면 해당 애니메이션이 적용이 됩니다
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
Unreal - Behavior Tree(2) 플레이어 따라가기 (0) | 2025.04.29 |
---|---|
Unreal - BehaviorTree(1) AI Perception (0) | 2025.04.27 |
Unreal - 미니맵 만들기 (0) | 2025.04.25 |
Unreal - 마우스 커서 바꾸기 (0) | 2025.04.25 |
Unreal - 스택형 스킬 구현하기 (0) | 2025.04.24 |