'살인마 웅'의 플레이어는, 마침내 퍼즐을 풀고 지상으로 향하는 통로의 문을 엽니다. 하지만 기쁨도 잠시, 문이 열리며 나는 소음에 의해 지하실을 배회하던 살인마에게 적발당했습니다. 쫓아오는 살인마로부터 몸을 숨겨야합니다.
[기능 설명]
퍼즐의 암호를 올바르게 입력하면, 연출 이벤트가 발생하며 다음 레벨로 이동하고, 순찰 이벤트가 시작됩니다.
'적대적 NPC'는 정해진 포인트를 1회씩 경유하며 순찰합니다. (경유 설정 파트는 다른 팀원이 담당)
'적대적 NPC'가 특정 포인트를 경유하면, 다음으로 향하는 문의 잠금이 해제됩니다.
'적대적 NPC'가 플레이어를 시각적으로 감지할 경우, 플레이어를 빠른 속도로 쫓습니다. (속도 파트는 다른 팀원이 담당)
플레이어가 '적대적 NPC'와 접촉하면, 게임오버됩니다.
해당 이벤트에 사용되는 AI는 시각 감지 기능만 지원합니다. (시각 감지 파트는 다른 팀원이 담당)
[기능 미리 보기]
[알고리즘]
레벨 자체가 하나의 이벤트용으로 구성됩니다. 레벨이 변경되므로, BeginPlay 이벤트에서 현재 레벨에 필요한 위젯들을 생성해줍니다. 특히 순찰 이벤트 시작 시, 독백 메시지를 띄워야 하므로 위와 같이 설정해줍니다.
1. 적대적 NPC
플레이어가 Killer의 Box 콜리전에 겹쳐지면, BGM을 페이드 아웃하고 추격 이벤트때처럼 플레이어를 게임오버 처리합니다.
2. 은신 구역
Killer의 순찰로부터 안전한 구역을 설정합니다.
드럼통을 두개 배치하고, 사이의 틈에 벽을 배치해줍니다.
라이팅과 렌더링을 위와 같이 설정해줍니다.
벽을 투명하게 만들어 Killer의 시각에 감지되지 않고 드럼통 틈으로 훔쳐볼 수 있습니다.
3. 역주행 방지
플레이어가 역주행하는 것을 막기 위해, 시작지점의 뒤편에 블로킹 볼륨을 배치합니다.
FirstPersonCharacter의 콜리전은 PhysicsBody이므로, 블로킹 볼륨을 통과할 수 없습니다.
Killer의 경우, 오브젝트 타입을 Pawn으로 설정하여, 블로킹 볼륨을 통과할 수 있도록 합니다.
4. 탈출 문
Rotator 변수와 Bool 변수를 생성해줍니다.
OpenedDoor과 ClosedDoor 이벤트 디스패처를 생성해줍니다.
BeginPlay이벤트에서, 현재 액터의 Rotation 값을 Get하여 Default Rotation 변수에 저장합니다.
문에 상호작용을 시도하면, Level 4 Escapedoor Open 변수 값이 True일 경우, Open Door을 호출합니다.
변수 값이 False일 경우, 시스템 메시지 인덱스를 설정하고, Closed Door을 호출합니다.
Door Open 변수 값이 False라면, 매 틱마다 Level 4 Escapedoor Open 변수 값을 체크합니다.
Level 4 Escapedoor Open 변수 값이 True라면, 문을 살짝 회전시키고, Door Open 변수 값을 True로 변경합니다.
문의 잠금이 해제될 때, 열렸음을 알리기 위해 살짝 회전시키는 알고리즘입니다.
Killer의 AI 중 다음 경유지를 탐색하는 알고리즘의 일부입니다. (다른 팀원 개발 파트 일부 수정)
5번 포인트를 지나면, Level4 Escapedoor Open 변수 값이 Ture로, 즉 지상으로 향할 수 있는 문의 잠금이 해제됩니다. 이때 문이 열리는 소리가 재생됩니다. 청각적으로도 문이 열림을 알 수 있습니다.
레벨 블루프린트에서 closedDoor 이벤트가 발생하면, 시스템 메시지를 출력합니다.
OpenedDoor 이벤트가 발생되면, BGM을 페이드아웃하고, 모든 위젯을 제거하고 시퀀스 연출을 재생합니다.
연출이 종료되면 다음 레벨로 이동합니다.
5. 게임오버, 재도전
게임오버와 재도전과 관련된 내용은 이전 글과 동일합니다.
[살인마 웅] 추격 이벤트, 게임오버, 재도전
'살인마 웅'의 플레이어는 어두운 지하실을 조사하다 흉기를 든 남성과 마주치고, 쫓기게 됩니다. 흉기를 든 남성에게 잡히지 않기 위해 필사적으로 도주해야 합니다. [기능 설명] 추격 이벤트 -
wj527.tistory.com
플레이어가 게임오버되면, 캐릭터 조작은 비활성화하고, 키보드 입력만 활성화합니다.
이 상태에서 스페이스 바를 입력하면, 현재 레벨을 재시작합니다.
'Portfolio > Unreal 4' 카테고리의 다른 글
[살인마 웅] 인트로 구현(스페이스, 프롤로그) (0) | 2023.07.16 |
---|---|
[살인마 웅] 탈출 이벤트 구현(타이머, 펜치, 사슬, 탈출문, 에필로그) (0) | 2023.07.15 |
[살인마 웅] 이동 디테일 구현 (0) | 2023.07.13 |
[살인마 웅] 추격 이벤트, 게임오버, 재도전 (0) | 2023.07.11 |
[살인마 웅] 시퀀스 연결 (0) | 2023.07.09 |