본문 바로가기

강동새싹언리얼수업/최종프로젝트

AI 멀티 비헤이버트리

https://unreal6.tistory.com/202

LOL 같은 RPG를 만들기 위해 복수의 적과 플레이어가 돌아다니게 만들어야 한다.

이번에 배운 중요한건 interface를 이용해 함수를 이용할때, 캐스팅은 필요없지만 함수가 위치한 Target은 필요하다는거다.  생각해보면 당연하다 함수가 어디에 있는지 정도는 알아야한다. 물론 interface를 사용하는 방법중 broadcast같은 방법도 있는것 같지만.

예전에 배운 Spline이 포함된 비헤이버 트리를 개조한다.

1. New Level을 만들고

2. NavMesh를 추가하고

3. AIC_Enemy를 만들어

4. BP_Enemy에 설정해준다.

5. BP_Enemy의 Tag 를 enemy로 해준다.

6. Actor를 부모로 BP_Patrol을 하나 만든다 아무것도 안해도 된다 위치표식용이다. 레벨에 10개쯤 배치한다.

7. Actor를 부모로 BP_Spawner를 만들어 변수를 BP_Patrol를 배열로 설정한다.

8. Spawn된 Character가 돌아다니기 위한 PatrolPoint를 얻기위해 레벨에 위치한 패트롤포인트를 얻어야하는데 Spawn하기 때문에 Replicate에서 연결하기가 귀찮았다. 따라서 BP_Spawner에 미리 위치를 얻어 저장하고 이걸 블랙보드에 지정하고 이걸 Player가 불러다 쓸 예정이다.  Interface를 사용하면 편할줄 알았는데 비헤이버트리는 Pawn정보를 얻어오기 때문에 힘들었다. AI Controller에 저장해놔도 편할것 은 같다.

IncrementPatrol 이라는 customer Event를 하나 만들자.

BP_Patrol 포인트를 찾아서 PatrolPoints변수에 담아준다.

GetNextPatrolActor함수를 만들고

GetNextPatrolPoint함수를 만들자.

블랙보드에 Spawner변수를 만들어주자.지금생각하니 AIC쪽이 더 좋은것 같다.

 

BTT_GetPatrolPoint 를 만들어주자 

AIController On Possess에서 초기화 해주자

BTT_GetPatrolPoint를 Tree에 연결해준다.

AI Perception과 같이 사용도 가능하다.

https://unreal6.tistory.com/214

'강동새싹언리얼수업 > 최종프로젝트' 카테고리의 다른 글

폰빙의 Possess  (0) 2024.03.02
Moving Actor - TimeLine Lerp  (0) 2024.02.28
NAV LINK PROXY  (1) 2024.02.28
내비게이션 메시 수정 준비 가이드 AI Move  (0) 2024.02.28
1일차 프로토 레벨만들기  (0) 2024.02.16