본문 바로가기

블루프린팅/10. AI적

[10.AI적업그레이드] 적의 배회(Wamdering) 행동 만들기

이전 Patrol1, Patrol2 두 지점을 지정하여 적이 배회하도록 만들었으나 이번에는 무작위 배회로 대체할 것이다. 

 

커스텀 태스크으로 배회 지점 식별

배회할 다음 지점을 저장할 BB_EnemyBlackboard에 키를 만든다.

기존의 PatrolPoint 키와는 다르게 목적지는 게임내 Actor가 아닌 벡터좌표로 표시된다. 

그 다음 적이 배회해야 하는 곳을 결정하는 태스크를 만든다.

 

1. BT_EnemyBehavior트리를 연다.

2. Blackboard탭을 클릭한다.

3. 새키 + 버튼을 클릭하고 벡터를 키타입으로 설정후 이름을 WanderPoint로 변경한다.

4. 저장후, BehaviorTree로 돌아간다.

5. 툴바에서 새태스크를 클릭하고 BTTask_BlueprintBase를 선택하고 저장시 BTTask_FindWanderPoint로 이름을 변경한다. 에디터로 바뀐다.

6. ClassDefaults의 디테일 메뉴에서 NodeName을 FindWanderPoint로 설정한다.

6.  변수+를 클릭하고 이름은 WanderKey 타입은 Blackboard Key Selector로 변경한다. 인스턴스편집기능을 켠

7. 내 블루프린트 함수위 Overrider 드롭다운을 열어 Receive Execute를 선택해 이벤트를 추가한다.

8. 흰색출력핀을 끌어 Set blackboard Value as Vector을 추가하고 그 출력핀을 끌어 Finish Execute를 추가하고 Success를 체크한다.

9 SetBlackboardValue노드의 Key입력를 끌어 Get WanderKey를 추가한다. Value를 끌어 GetRandomReachablePointInRadius를 추가하고 Radius를 10000으로 설정한다.

10. Origin파라미터를 끌어 Make Vecotr노드를 추가한다.

11. 컴파일후 저장한다.

12. 여기서 만든 Task를 BT_EnemyBehavior트리에서 사용하여 WanderPoint로 이동시킬 수 있다.