플래시 세일라이선스 30% 할인, 같은 가격에 더 커진 토큰 팩.라이선스 30% 할인 + 더 커진 토큰 팩종료까지 …가격 보기 → V2의 새로운 기능 보기 · 새로워진 인터페이스, Crew, Blueprint를 C++로 변환, 멀티플레이어 플레이 테스트, 에디터 안에서 업데이트 변경 사항 보기 →
모든 게시물
4분 분량

Unreal Engine 스텔스 감지: AI로 시야 원뿔이 있는 감시탑 만들기

Unreal Engine 스텔스 감지: 120도 훑는 감시탑, 45도 시야 원뿔(사거리 1500), 시야선, 붉은 램프와 Spotted 텍스트를 AI로 만듭니다.

Unreal Engine의 스텔스 감시탑은 세 가지 작은 아이디어로 이루어집니다. 돌아가는 머리, 초당 여러 번 던지는 질문인 플레이어가 보이는가, 그리고 램프와 텍스트로 나타나는 반응입니다. 이 질문에 답하려면 두 가지가 필요합니다. 플레이어가 각도 안에 있어야 하고, 사이에 가로막는 것이 없어야 합니다. 가장 쉬운 방법은 AI에게 시야 원뿔, 시야선, 경계 상태까지 시스템 전체를 한 번의 요청으로 맡기는 것입니다.

이 튜토리얼에서는 Ultimate Engine CoPilot이 좌우로 훑다가 플레이어가 원뿔 안에 들어오면 램프를 붉게 바꾸고 “Spotted!”를 표시하는 감시탑을 만듭니다. 정확한 프롬프트, AI가 찾아내 고친 배치 문제, 그리고 시야 원뿔의 작동 원리에 대한 쉬운 설명을 확인할 수 있습니다.

완성된 감시탑이 하는 일

꼭대기에 램프가 달린 높은 기둥이 좌우로 천천히 돌아갑니다. 그 뒤에 서 있는 동안에는 램프가 초록색으로 유지됩니다. 플레이어를 보지 못한 것입니다. 이제 기둥 앞쪽, 옅은 빛의 원뿔 안으로 들어서면 램프가 붉게 바뀌고, 화면 위쪽에 붉은 텍스트 “Spotted!”가 나타납니다. 밖으로 벗어나면 잠시 뒤 다시 초록색으로 돌아가고 텍스트도 사라집니다.

감시탑의 시야 안에서 눈 위에 서 있는 플레이어와 화면 위쪽의 붉은 Spotted! 텍스트

플레이어가 원뿔 안에 있어서 텍스트에 Spotted!라고 표시됩니다.

프롬프트

아래 내용을 복사해서 각도나 사거리를 바꾼 뒤, AI가 무엇을 만드는지 확인해 보세요.

Make a stealth sentry. Create BP_Sentry in /Game/Series/EP42_Sentry, a tall pillar with a lamp on top that slowly turns left and right through 120 degrees, with a vision cone of 45 degrees half-angle and 1500 units range drawn as a pale cone of light. The lamp is green while nothing is seen. When the player is inside the cone and in line of sight, the lamp turns red and the text Spotted! shows in the top centre below the existing Blizzard box; when the player leaves the cone, the lamp goes back to green after 1 second and the text is removed. Keep the range, the angle and the turn speed as variables. Place one sentry near the player start facing the open snow. Then play test it: check the lamp is green with the player behind it, teleport the player into the cone and check the lamp is red and the text shows, teleport the player out and check it returns to green, and fix anything that does not work.

120도, 45도, 1500 유닛, 1초라는 숫자를 보세요. 그리고 “in line of sight”라는 표현도 보세요. 벽이 시야를 가로막아야 한다는 것을 AI에게 알려 주는 말입니다. 벽 너머까지 보는 감시탑은 스텔스 게임이 아닙니다.

AI가 감시탑을 만드는 과정

AI는 프로젝트와 HUD를 읽은 뒤 감시탑을 만듭니다. 기둥, 램프 머리, 머티리얼 두 개(램프용 하나, 반투명 원뿔용 하나), 그리고 바닥을 비추기 위해 같은 각도와 사거리를 가진 스포트라이트입니다. 이어서 로직을 만듭니다. 머리는 회전 속도에 따라 돌아가고, 시야 확인은 매 Tick마다 실행되며, 1초짜리 타이머가 플레이어가 떠난 뒤에도 잠시 붉은색을 유지해서 램프가 깜빡이지 않게 합니다.

원뿔은 장식만이 아닙니다. 실제 시야 사거리와 각도와 같은 크기이므로, 보이는 그대로가 감시탑이 보는 범위입니다.

회전, 시야 확인, 반응 로직이 있는 BP_Sentry 이벤트 그래프

감시탑 그래프: 머리가 돌아가고, 시야 확인이 매 Tick마다 실행되며, 램프와 텍스트가 반응합니다.

배치 문제

감지 로직은 잘 작동하지만, 처음 배치한 감시탑이 플레이어 시작 지점과 같은 방향, 즉 유적 쪽을 바라보고 있었고, 270 유닛 앞에 있는 유적의 기둥이 시야를 가로막았습니다. 감시탑은 플레이어를 전혀 보지 못했습니다. AI는 지형을 탐색해 동쪽에서 탁 트인 눈밭을 찾아 감시탑을 그곳으로 옮겼습니다. Blueprint 로직은 바꿀 필요가 없었습니다. 그러자 모든 경우가 통과했습니다.

리포트

검사 항목, 수정한 내용, 알아 둘 사항을 담은 AI 리포트

검사 항목, 배치 수정, 그리고 메모.

리포트에는 모든 검사를 담은 표가 있습니다.

  • 감시탑 뒤에서는 발각되지 않고 초록색을 유지합니다. 머리는 1초에 약 21도 돕니다.
  • 감시탑 앞에서는 1초 안에 발각되어 붉은색이 되고, 텍스트가 Blizzard 박스 아래 화면에 표시됩니다.
  • 벗어난 뒤에는 0.5초 동안 붉은색을 유지하고, 1초 뒤에 초록색으로 돌아가며 텍스트가 사라집니다.
  • 감시탑과 플레이어 사이에 기둥을 놓으면 감지가 차단되고, 기둥을 치우면 감지가 다시 작동합니다.

하지 않은 일도 솔직하게 밝힙니다.

  • 원뿔 안 검사에서는 회전을 가운데에 고정했기 때문에, 텔레포트한 위치에서 항상 같은 결과가 나왔습니다. 머리가 회전하는 도중의 감지는 따로 테스트하지 않았습니다.
  • 램프 색상은 눈으로 확인한 것이 아니라 라이트의 값에서 읽었습니다.
  • 메인 메뉴 오버레이가 스크린샷의 일부를 가렸습니다.

또한 텍스트와 램프는 플레이어가 벗어나는 즉시가 아니라 1초 지연 뒤에 해제된다고 밝힙니다. 그리고 원뿔은 430 유닛 높이의 램프에서 수평으로 뻗어 있으므로, 기둥에서 약 350 유닛보다 가까이 서 있는 플레이어는 원뿔 아래에 있게 되어 발각되지 않습니다.

시야 원뿔의 작동 원리, 쉽게 설명하면

감시탑은 매 Tick마다 두 가지를 비교합니다. 머리가 향하는 방향과 플레이어가 있는 방향입니다. 둘 사이의 각도가 반각인 45도보다 작고 거리가 사거리보다 짧으면 플레이어는 원뿔 안에 있습니다. 그다음 램프에서 플레이어까지 선을 트레이스합니다. 선이 벽이나 기둥 같은 다른 것에 먼저 부딪히면 플레이어는 가려진 것입니다.

플레이어가 보이면 램프가 붉게 바뀌고 텍스트가 나타납니다. 보이지 않으면 1초짜리 타이머가 돌고, 그 뒤에 램프가 초록색이 되며 텍스트가 사라집니다. 이 지연이 감시탑을 공정하게 느끼게 만듭니다. 사거리, 각도, 회전 속도, 지연 시간이 변수이므로, 숫자 네 개만 바꿔서 느긋한 경비병이나 매우 경계심 강한 경비병을 만들 수 있습니다.

확장 아이디어

  • 감시탑이 의심은 하지만 아직 플레이어를 보지 못했을 때 쓰는 세 번째 색상, 노란색.
  • 플레이어를 발견하면 추격하는 감시탑.
  • 경보음, 그리고 이에 깨어나는 다른 감시탑.

감시탑 프롬프트를 위한 네 가지 팁

  1. 각도, 사거리, 회전 속도를 숫자로 지정하세요.
  2. 벽이 시야를 가로막도록 “in line of sight”라고 적으세요.
  3. 플레이어가 벗어나면 어떻게 되는지, 그리고 얼마 뒤에 그렇게 되는지 적으세요.
  4. 원뿔의 뒤, 안, 밖에서 모두 테스트하도록 AI에게 요청하세요.

자주 묻는 질문

Unreal Engine 5에서 시야 원뿔은 어떻게 만드나요?

감시탑이 바라보는 방향과 플레이어가 있는 방향 사이의 각도를 반각과 비교하고, 거리를 사거리와 비교한 다음, 선을 트레이스해서 시야를 가로막는 것이 없는지 확인하세요.

감시탑에 라인 트레이스가 필요한 이유는 무엇인가요?

각도와 거리로는 플레이어가 앞쪽에 있다는 것만 알 수 있습니다. 램프에서 플레이어까지 트레이스하면 벽이나 기둥이 가로막고 있지 않다는 것을 확인할 수 있습니다.

감시탑이 처음에는 왜 플레이어를 전혀 보지 못했나요?

처음 배치한 위치에서 270 유닛 앞에 있는 유적의 기둥을 마주하고 있어서 시야선이 막혔기 때문입니다. AI는 감시탑을 탁 트인 눈밭으로 옮겼고, 로직은 바꿀 필요가 없었습니다.

프로젝트에서 직접 사용해 보세요

Ultimate Engine CoPilot으로 무엇을 만들 수 있는지 제품 페이지에서 확인하거나, Fab에서 받아 보세요. AI Blueprint 생성기가 어떻게 작동하는지 확인해 보세요.

이 시리즈의 다른 빌드: Unreal Engine 가시 함정, Unreal Engine 열쇠 문, 그리고 Unreal Engine 포털 텔레포터.

어떠셨나요?

에디터에서 직접 사용해 보세요
Unreal Engine 5용 도구 1,655개.
플러그인 받기