본문 바로가기

블루프린팅/10. AI적

[10.AI적업그레이드] 노이즈 이벤트 디버깅

열심히 노이즈 이벤트및 해석 처리를 했는데 잘 안된다. 뭔가 디버깅을 해봤다.

실행시 블루프린트에디터에서 움직임을 볼 수 있는건 BT_EnemyBehavior 에서이다. 일단 열고 영상감지와 청각감지를 분리하기 위해 Root밑 Selector와  영상감지쪽 Can see Player?를 ALT+클릭으로 끊었다. 

 BT_EnemyBehavior 가 보이는 상태에서 플레이 해보면  MoveToPatrol Sequence가 끝나면 HasSound?로 오는데 아무리 총을쏴도 HasSound? 밑으로 내려 가지를 않는다. HasSound?밑으로 내려가려면 BlackBoard key중 HasSound가 True로 되어 있어야 한다.

BlackBoard key중 HasSound가 True로 하는 기능은 BT_EnemyController의 UpdateSoundBB 마크로가 하는데 이 마크로는 Get Blackboard키중 LocationOfSound와 HasHeardSoundKey를 True로 설정한다.

여기서 힌트를 얻어 BT_EnemyBehavior의 New Task>BTTask_BlueprintBase로 만들고 BTTak_SetHeard로 이름을 바꾼다

다음같이 노드를 정리한다. BT_EnemyController의 UpdateSoundBB 마크로와 비슷하다

컴파일 저장후 MoveToPatrol에서 BTTask_SetHeard를 추가해주고 이름을 SetHeardSound로 변경한다.

이러면 Patrol이 끝나면 HasHeardSound가 True가 되어 HeadSound Sequce가 실행되어 플레이어를 추적하게 된다.

이러면 문제가 없어 다시 SetHeardSound를 끊어 버리고

BP_Enemy_Controller의 OnHearNoise출력핀에 Print String을 추가해 보왔는데 아무리 총을쏘거나 스프린트(W+SHIFT)를 해봐도 LOG가 화면에 나오지 않았다. 시간이 나면 왜 OnHearNoise가 트리거가 안되는지 찾아봐야겠다. ㅠ