본문 바로가기

블루프린팅/10. AI적

[10.AI적업그레이드] 플레이어의 행동에 노이즈 추가

EnemyController의 폰감지 컴포넌트는 총소리같은 기존 음향소리를 듣는게 아니라 폰노이즈이미터에서 생성한 노이즈만 들을 수 있다. 플레이어의 스프린트와 슈팅에 폰노이즈이미터 컴포넌트를 이용해 감지가능한 노이즈를 생성하겠다.

 

*기존 ThirdPersonCharacter템플릿을 포기하고 처음 하였던 FirstPersonCharacter템플릿의 프로젝트로 진행하고 있습니다. 불편을 끼쳐드려 죄송합니다. 진행하다 보니 총기 발사및  UI등 기존의 변수및 기능들이 다 필요해져서 입니다. 혹시 새09.적인공지능에서 새로 프로젝트를 만드신 분은 Contents>ThirdPersonCharater및 Character 폴더를 카피해서 같은 Contents폴더에 복사하면 됩니다. 이후 ThirdPersonCharater>Enemy폴더의 BP_EnemyCharacter를 레벨에 끌어다 놓고 레벨에 PatrolPoint1,2를 생성하고, BP_EnemyCharacter에 연결해주고, BP_EnemyCharacter의 추적대상이 이제 ThirdPersonCharater가 아니라 FirstPersonCharater로 바꾸어 주면 됩니다.

 

 

1. 콘텐트드로워의 BP_FirstPersonCharacter 블루프린트를 연다.

2. 컴포넌트패널에서 +를 클릭하고 PawnNoiseEmiter 컴포넌트를 추가한다.

3. 먼저 스프린트에 노이즈를 추가한다. 내블루프린트 패널에서 Manage StaminaDrain 매크로를 두 번 클릭해서 매크로 맵을 연다. SET Player Stamina 노드 뒤에 Make Noise (PawnNoiseEmitter) 노드를 추가한다.

4. 출력 노드를 오른쪽으로 끌어서 다른 함수 노드를 위한 공간을 확보한다.

5. MakeNoise Loudness를 1로 설정하고 Noise Location에서 핀을 끌어 Get Actor Location을 연결해준다 출력을 Outputs와 연결해준다

6 다음으로 Make Noise를 추가할 장소는 발사입력을 감지해 탄약수를 줄이는 곳인 BP_Weapon_Component이다. (교재는 Fire이벤트인데 버전이 달라서 그런듯 하다.) 내 블루프린트 패널의 그래프 카테고리에서 찾을 수 있다. EnhancedInputAction IA_Shoot을 더블 클릭한후 

7. 맨 오른쪽 노드중 Ammo를 -해주고 SET 해주는 노드 다음에 Maker Noise노드를 추가하려했으나 BB_WeaponComponent블루프린트는 PawnNoise블루프린트 컴포넌트를 추가할수가 없어 FirstPersonCharacter에서 OnFire라는 변수를 만들고 여기서 세팅해주기로 했다

우선 BP_FirstPersonCharacter를 열고 Function+ 를 하고 이름은 CallMakeNoise로 한다. MakeNosie를 추가하고 Loudness는1.0 NoiseLocation을 끌어 GetActorLocation을연결해준다. 디버그용으로 Print String을 넣어주었다. ㅠ

8. 다시 BP_Weapon_Component로 돌아가 SET CurrentAmmo출력핀에서 Set OnFire를 추가하고 OnFire를 체크해준다. 

Target은 근처의 FirstPersonCharacter와 연결해준다.