
이제 적이 움직일 수 있도록 만들어보자
이를 위해 Nav Mesh를 사용하자. 이를 위해 액터 배치 패널을 열어주고 navmeshBounds Volume을 선택해주자

선택해주고 맵에 배치해주고 P키를 눌러보면 nav 매쉬가 적용된 부분을 볼 수 있다.

이 볼륨이 맵 전체에 적용될 수 있도록 크기를 키워주자.

이렇게 해주면 이제 AI 기능을 사용하여 적을 움직이게 할 수 있다. 이 기능을 사용하기 위해 블루프린트 클래스로 이동해주자.
이때 AI 컨트롤러가 적이 Spawn했을 때도 잘 작동하게 하기위해 디테일창에서 AI자동 빙의를 수정해주자

일단 테스트를 위해 시작할 때 AI컨트롤러를 통해 움직이도록 해보자

이렇게 해주면 0,0,0으로 이동하는 것을 볼 수 있다.

이제 특정 액터로 이동하게 만들기 위해 Actor 타입의 변수를 하나 선언해주자. 이때 기본값을 설정해줄 수도 있는데 이때 변수의 인스턴스 편집가능을 체크해주어야한다.

또한 Target Poin 객체를 추가하는 것으로 움직일 위치를 정해줄 수 있다.

움직이는 사용자를 Chase하려면 플레이어가 공격할 때 이 변수를 조정해주고 움직이는 함수를 호출해주는 것을 반복하는것으로 구현할 수 있을 것이다.
그리고 프로젝트 세팅에서 네비게이션 매쉬의 런타임 생성을 Dynamic으로 바꿔주면 항아리같은 부숴지는 물체나 문 같이 열릴 수 있는 물체의 상태에 따라 이 매쉬가 재구성 된다. 이는 고비용이 든다.

또한 셀 사이즈 및 높이를 조정해주는 것으로 매쉬가 어떻게 얼마나 적용될지 정해줄 수 있다.

적이 움직일 때 애니메이션을 추가해주자 애니메이션은 Mixamo에서 추가해주자. 이때 Blender를 통해 Root본을 추가해주는 작업을 해주어야한다. 이때 폴더에 하나의 with Skin Animation이 존재해야 다른 것에도 일괄적으로 자동 적용이 된다.
Blender에서 N키를 눌러 사이드 바를 열 수 있다.

이렇게 변환이 끝난 애니메이션을 매쉬없이 임폴트해준다.

'게임공부 > Unreal Engine' 카테고리의 다른 글
[Unreal Engine][C++]25. Patrol (0) | 2025.02.07 |
---|---|
[Unreal Engine][C++]24. Enemey Behavior2 (0) | 2025.02.05 |
[Unreal Engine][C++]22. Death (1) | 2025.01.26 |
[Unreal Engine][C++]21. Damage (1) | 2025.01.21 |
[Unreal Engine][C++]20. Actor Component (0) | 2025.01.16 |