Unreal - 8방향 블렌드스페이스(BlendSpace)

2025. 4. 27. 01:46·Unreal5 프로젝트 다이어리

적 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
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
  • Unreal - Behavior Tree(2) 플레이어 따라가기
  • Unreal - BehaviorTree(1) AI Perception
  • Unreal - 미니맵 만들기
  • Unreal - 마우스 커서 바꾸기
lucodev
lucodev
커피와 노트북 그리고 개발
  • lucodev
    루코 개발테이블
    lucodev
  • 전체
    오늘
    어제
    • 분류 전체보기 (130) N
      • Unreal5 프로젝트 다이어리 (73)
      • Unreal5 프로젝트 다이어리2 (9) N
      • Unreal 팁 (8)
      • Unreal 디버깅 (8)
      • C++ 프로그래머스 다이어리 (24)
        • Stack (3)
        • Hash (4)
        • Heap (2)
        • Sort (4)
        • Exhaustive search (0)
      • 코드 개인보관함 (8)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 링크

  • 공지사항

  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 태그

    unreal 로딩
    언리얼 로딩창
    언리얼 look at
    언리얼 behaviortree
    언리얼 시퀀스
    언리얼 로딩
    unreal look at
    언리얼 컷씬
    언리얼 비헤이비어트리
    언리얼 motionmatching
    언리얼 모션매칭
    언리얼 페이드 아웃
    언리얼 behavior tree
    언리얼 foot step
    unreal loading
    unreal 모션매칭
    unreal sequence
    unreal 시퀀스
    unreal 컷씬
    언리얼
  • hELLO· Designed By정상우.v4.10.3
lucodev
Unreal - 8방향 블렌드스페이스(BlendSpace)
상단으로

티스토리툴바