JEV Unity 튜토리얼: 실시간 전술 구축 NPC

압축 상태, Legal Actions, 결정 흐름, 실행기, 시간 초과 처리 및 관찰 가능한 대체 정책을 사용하여 JEV 주위에 Unity NPC 아키텍처를 구축합니다.

Seele Editorial TeamUpdated 2026년 9월 21일
Unity-style tactical NPC scene with perception, decision, navigation, and fallback layers.

이 Unity 튜토리얼은 JEV을 제한된 전술 결정 레이어로 사용하고 Unity은 장면 상태, 물리, 탐색, 애니메이션 및 게임플레이 권한을 계속 담당합니다. 이는 하나의 SDK 호출이 NPC 컨트롤러를 대체할 수 있다는 주장이 아니라 어댑터 패턴입니다.

Unity 아키텍처

5개의 별도 구성 요소: 상태 프로젝터가 장면을 읽고, 액션 빌더가 Legal Actions을 생성하고, JEV 클라이언트가 요청을 보내고, 실행기가 검증된 액션을 Unity 시스템에 매핑하고, 대체 정책 정책이 NPC 응답이 늦거나 잘못된 경우 이동합니다.

NpcController -> StateProjector -> LegalActionBuilder -> JevClient -> Validator -> Executor or Fallback

1. 장면을 Game State

에 투영합니다.

state = { agentId, role, healthRatio, visibleThreatIds, objectiveUnderThreat, ammo, stateVersion }

state = { agentId, role, healthRatio, visibleThreatIds, objectiveUnderThreat, ammo, stateVersion }

2. Legal Actions

빌드

액션 빌더는 엄폐, 보이는 대상 공격, 아군 지원, 위치 유지 등의 명령을 생성합니다. 각 작업에는 실행자에게 필요한 대상 또는 위치 식별자가 포함됩니다. 탐색은 Unity 문제로 남아 있습니다. JEV은 의도 또는 대상 후보를 선택하고 NavMesh는 경로를 계산합니다.

if (!requestInFlight) { requestInFlight = true; result = await client.Decide(snapshot, actions); ApplyIfStillValid(result); }

현재 의도가 완료되거나, 위협이 인식되거나, 목표가 변경되거나, 전술 타이머가 만료되면 결정을 트리거합니다. NPC당 하나의 진행 중인 요청으로 코루틴, 비동기 작업 또는 게임플레이 서비스를 사용하세요. 네트워크 응답을 기다리는 Unity의 메인 스레드를 절대 차단하지 마세요.

if (!requestInFlight) { requestInFlight = true; result = await client.Decide(snapshot, actions); ApplyIfStillValid(result); }

4.

검증 및 실행

응답의 상태 버전을 현재 세계와 비교하고 허용된 행동 세트를 다시 빌드하고 매개변수를 확인합니다. 요청이 진행되는 동안 대상이 사망했거나 엄폐 지점에 도달하지 못할 수 있습니다. 검증에 성공하면 의도를 기존 명령, 행동 트리, NavMesh 대상 또는 능력 시스템에 매핑합니다.

5. 케이던스, 시간 초과 및 대체 정책

설정

  • 전술 루프에서 렌더 루프를 분리합니다. NPC 시간이 남아 있는 마감일을 설정하세요. 타임아웃 시에는 현재의 안전 의도를 유지하거나, 부상 시 엄폐하고, 목표를 유지하거나, 합법적인 공격이 남지 않으면 후퇴하는 등의 지역 정책을 사용합니다.
  • 6. 의사결정을 가시적으로 확인하세요
  • 개발 빌드에서는 프로젝트된 상태, Legal Actions, 선택한 작업, 상태 버전, 요청 대기 시간, 유효성 검사 결과 및 대체 정책 이유를 디버그 창 또는 기즈모에 노출합니다. 설계자는 네트워크 추적을 읽지 않고도 결정을 이해해야 합니다.
  • Unity 체크리스트
  • Perception은 상태 투영을 소유합니다.

메인을 차단하지 마세요. thread.

실행 전에 재검증합니다.

동작, 물리, 애니메이션 및 권한을 유지합니다. Unity.

선박 결정적 대체 정책 및 처음부터 원격 측정 프로토타입.최소 Unity 장면 설정하나의 NPC, 하나의 목표, 두 개의 위협, 몇 개의 커버 포인트 및 로컬 대체 정책 컨트롤러로 시작합니다. 인식 구성 요소, 상태 프로젝터, 작업 작성기, 의사 결정 클라이언트 및 실행기를 별도의 MonoBehaviours 또는 서비스로 추가합니다. 전체 장면 없이 테스트할 수 있도록 JEV 어댑터를 NavMeshAgent 및 Animator 세부 정보와 독립적으로 유지하세요.

어댑터 경계

  • 어댑터는 Unity 유형을 공급자 중립적 요청으로 변환하고 검증된 의도를 다시 기존 명령으로 변환합니다. 유효성 검사 전에
  • SetDestination
  • 을 호출하거나, 애니메이션을 재생하거나, 손상을 적용해서는 안 됩니다. 이러한 효과는 실행기와 게임플레이 시스템에 속합니다.
  • 프롬프트 조정 전 테스트 시나리오
  • 사용 가능한 체력이 낮습니다.
  • 탄약은 없지만 접근 가능한 후퇴 경로.

요청이 전송되는 동안 목표가 파괴되었습니다.

다른 두 개의 동일하게 유효한 엄호 지점 거리.

JEV 활성 전투 상태 중 시간 초과.

장면 언로드 또는 NPC 응답 전에 소멸됩니다.

  1. 각 시나리오에 대해 선택한 작업이 적법하고, 실행기가 최대 한 번 호출되고, 오래된 응답이 무시되고, 대체 정책가 NPC을 유효한 상태로 유지한다고 가정합니다.
  2. Unity 프로파일러에서 측정할 내용
  3. 상태 투영 시간, 직렬화 시간, 네트워크 대기, 유효성 검사 시간, 실행기 시작, 작업 완료 및 대체 정책 개수를 추적합니다. 모델은 빠를 수 있지만 어댑터는 주 스레드에서 너무 많은 상태나 일정 작업을 직렬화하기 때문에 느립니다. 엔드투엔드 결정 지연 시간과 별도로 프레임 영향을 측정합니다.
  4. 단계적 배송 계획
  5. 로컬 가짜 결정 클라이언트를 사용한 프로토타입.

기록 및 재생 상태 스냅샷.기능 플래그 뒤에 원격 클라이언트를 추가합니다.배송 대체 정책-첫 번째 동작 및 원격 측정.결정 레이어를 범용으로 만들기 전에 제한된 NPC 코호트를 실행합니다.공급자 중립 계약의 경우 JEV API 사용법을 읽어보세요. 행동 공간 설계에 대해서는