본문 바로가기

블루프린팅/8. 제약조건및 게임플레이 목표

[08목표생성] 승리 트리거

목표 타깃을 달성하기 충분한 실린더 타깃을 파괴하면 게임 종료 이벤트를 발생 시킨다. BP_FirstPersonCharacter 블루프린트에 CheckGoal이라는 커스텀 이벤트를 생성할 것이다. 이 이벤트는 타깃이 파괴될때 마다 BP_CylinderTarget에 의해 호출된다.

1. BP_FirstPersonCharacter 블루프린터를 연다. 이벤트그래프 바닥에 커스텀이벤트를 추가하고 이름을 CheckGoal로 변경한다.

2. CheckGoal 노드의 흰색출력핀을 끌어 Bandch노드를 추가한다.

3. Branch노드의 Condition 입력핀에서 와이어를 빈그리드 공간으로 끌어 크거나 같음 노드를 추가한다. > 로 검색하면 쉽게 찾을수 있다

4. >= 상단입력핀을 끌어 GET Targets Goal 노드를 추가한다. 하단에는 Get Targets Goal노드를 추가한다. 이 두 변수는 BP_FristPersonCharacter에 추가된 변수이므로 변수판넬에서 끌어다 놔도 된다. 배치시 GET을 선택해주면 됨

5. Branch  노드의 True출력핀에서 와이어를 끌어 딜레이 노드를 추가한다. Duration 파라미터에 1.0을 입력한다. 이 노드는 WinMenu를 표시하기 전에 1초를 기다리는데 사용한다.

6. Delay노드의 Completed핀을 끌어 EndGame노드를 추가한다. 이 노드는 우리가 WinMenu를 표시하기 위해 만든 EndGame커스텀 이벤트를 호출한다.

7. CheckGoal 주석을 달아주고 컴파일 세이브 하나고 에디터를 닫는다.

이제 대상이 파괴될때 마다 방금만든 CheckGoal 이벤트를 호출하도록한다.

 

1. 콘텐트브라우저에서 Blueprints폴더의 BP_CylinderTarget 블루프린트를 연다

2. 이벤트그래프에서 히트이벤트액션들의 끝으로 가 DestroyActor노드를 오른쪽으로 끌어 CheckGoal 노드를 위한 빈 공간을 만든다.

3.  형변환 노드의 As BP FirstPersonCharacter출력핀에서 와이어를 끌어 CheckGoal노드를 추가한다. ++노드의 흰색출력핀을 CheckGoal노드의 흰색입력핀에 연결하고 CheckGoal노드의 출력핀을 Destroy Actor노드의 흰색 입력핀에 연결한다.

4. 컴파일 후 저장하고 게임을 플레이한다. 잘 하셨다면 실린더를 2개 파괴하면 게임이 중지되고  WinMenu가 나타난다. Restart 버튼을 누르면 레벨이 다시 로드되고 Quit를 클릭하면 세션이 닫히로 레벨에디터로 돌아온다

 

요약

플레이어의 능력에 제한을 주었다. 이 과정에서 타이머를 사용해 동작을 반복하는 방법과 과도한 제한을 보충해줄 게임 월드에서 수집 가능한 개체를 만드는 방법 그리고 UI를 사용한 메뉴시스템을 만드는 방법을 배웠다.