giicha2
2021. 11. 1. 11:28
이번시간에는 NPC AI를 만들어 보겠습니다.
처음에는 조금 생소한 개념들이 있어 어려우실수 있지만 조금 숙달되시면 Blueprint와 크게 다르지 않습니다.
1. AI 적용
AI Controller Blueprint를 만듭니다.
Behavior Tree를 만듭니다.
Blackboard 도 만듭니다.
전부 만든 모습
2. 렌덤하게 이동하기
NPC에 AIController 적용
AIController에 Blackboard 적용
BehaviorTree 내용작성
Task 생성
Blackboard에서 TargetLocation Vector 추가
Blackboard Keyselecter 벨류 추가
Task 이름을 FindRandomLocation으로 변경,Vector값은 visible로 변경
FindRandomLocation 추가후 Vector값으로 Task(TargetLocation) 적용
Move To(BlackBoard Key 추가)와 Wait task를 추가함
Level에 Nav Mesh Bonuds Volume 추가
렌덤하게 뛰어다니는 NPC
3. 이동하다가 플레이어 추적하기
Sequence이름을 바꾸고 Selecter에 분기를 만들고 새로운 task를 만듬
task 이름을 FindPlayerLocation 으로 바꾸고 내용을 만든다.Vector는 Instance Editable 체크
Find Excute의 Success를 true로 체크
Chase Player 부분의 task를 만든다.
Blackboard쪽에 가서 bool(CanSeePlayer) 값을 추가
Add Decorator에서 Blackboard를 추가
Blackboard 값과 Description을 작성
오른쪽 Chase Player쪽의 Decorator도 작성
이제 NPC 캐릭터에게 Perception(인지) 기능을 부여해 보겠습니다.
NPC_AI에게 AIPerception을 추가한다.(NPC가 아님)
AI Sight config(시야)를 추가
세부설정에서 Detection by Affiliation을 모두선택
이번엔 PlayerCharacter에가서 AIPerception Stimuli Source를 추가
Details 설정의 AI Percetion에서 Auto Register as Source를 체크하고 AISense_Sight를 추가
On Target Perception Updated 이벤트 기능을 추가하고 Literal Name으로 'CanSeePlayer'를 추가
돌아다니다가 캐릭터 근처로 다가옴, (중간에 캔슬하지 않기때문에FindRandomLocation 값을 100정도 낮추어야 작동함)