최종 프로젝트 - 기술적 의사결정 (조명에 반응하는 AI 알고리즘)

정혜창·2025년 6월 28일

내일배움캠프

목록 보기
62/64

📌 계기

눈이 좋지 않은 심해 생물 의 현실성을 살리기 위해, 단순 거리/충돌 기반 감지가 아니라

조명 방향(DotProduct), 노출 시간 누적, 상태 전이 가 결합된

“입체적 감지 시스템”을 설계하게 되었음.

👉 좀 더 사실적인 느낌을 더해서 게임에 몰입감 있는 긴장감을 유도


📌 해결 방안

플레이어의 조명이 몬스터를 정확히 비추는 각도(Forward Vector와 DotProduct가 임계치 이상)를 계산하여 실제 빛이 몬스터에게 닿을 때만 감지 로직이 발동되고,

그 순간부터 노출 시간을 누적하여 일정 시간 이상 노출 시에만 Chase(추격)로 상태가 전이하도록 로직 설계

1️⃣ Monster 조명감지 Pipeline

  • 플레이어(Instigator)와 조명 위치 추적
    • AUnderwaterCharacterLanternComponent를 통해 현재 조명 위치, 방향 등 정보를 실시간 제공
    • 조명 On 시 Capsule Collision이 활성화 되고, 플래그가 활성화 되면서 Monster 감지 (Tick 에서 감지)
  • 조명 방향성(DotProduct) 및 충돌 판정(CapsuleCollision)
    • 몬스터와의 캡슐 충돌, DotProduct(조명 방향 vs 몬스터 방향)를 함께 검사
    • DotProduct가 임계치 이상일 때만, 실제로 몬스터가 조명에 노출된 것으로 판단
  • 노출 시간 누적 및 AI 감지
    • ExposureTime Calculate를 통해 ExposureTime을 Monster로 제공
  • 노출 시간 기반 상태 전이
    • AMonster 에서 노출 누적 시간(ExposureTime)에 따라 Investigate(조사) → Chase(추격)로 단계별 상태 전이
    • 노출이 짧거나 끊기면, 다시 Patrol(순찰) 상태로 복귀
  • 상태/행동 정보 동기화
    • AMonster 에서 로직 상으로 바뀐 EMonsterState 현재 상태를 Blackboard에 기록, BehaviorTree에서 이를 참조하여 적절한 행동(Task)으로 전환

📌 효과

플레이어의 조명 사용 방식, 각도, 지속 시간에 따라 몬스터 반응이 정교하게 달라짐 → 전략적·몰입감 있는 플레이 연출

👉 심해라는 환경과 "눈이 좋지 않은 생물" 컨셉에 현실감을 더해주며, 플레이어의 행동(조명 사용, 은신, 도주 등)에 따라 AI의 반응이 다채롭고 사실적으로 변화

하는 몰입감 높은 플레이 경험을 제공.

profile
Unreal 1기

0개의 댓글