13 지상 탈것 - kyhsa93/karda GitHub Wiki

13. 지상 탈것

전차·장갑차·경차량·수송 트럭·방공 차량을 플레이어가 직접 조종한다(D1). 다섯 종 모두 한 가지 지상 차량 조종 모델(sim/vehicles/ground.ts)을 수치만 바꿔 쓰고, 무장·좌석·카메라로 손맛을 가른다(P1′).

13.1 목표

  • 탈것마다 플레이어 역할 2.4의 최소 손맛 목록을 만족한다.
  • 봇 탈것과 같은 유닛이다: 플레이어가 타면 그 유닛의 두뇌(brain)가 꺼지고 플레이어 조종기가 움직인다. 파괴·티켓·점령 세력 규칙이 봇과 같다.

13.2 공통 조종 모델 — ground.ts

sim 층, 120Hz 고정 스텝, 결정론.

  • 상태: 위치, 차체 방위, 속도(전후), 포탑 방위(차체 기준), 포 부앙각, HP, 불 상태.
  • 입력: 스로틀(−11, 음수 = 후진), 조향(−11), 브레이크, 포탑 목표 방향(시선).
  • 궤도형(전차·장갑차·방공 차량): 조향 = 좌우 궤도 속도 차. 정지 상태에서 제자리 선회. 조향 중 최고 속도 ×0.7.
  • 바퀴형(경차량·트럭): 자전거 모델(최소 선회 반지름), 속도가 높으면 조향 각이 줄어든다(최대 조향 × clamp(8 / v, 0.3, 1)).
  • 지형: 네 바퀴 자리 높이로 차체 피치·롤(기존 헬기 groundAttitude 방식). 오르막이면 최고 속도 × cos(경사). 궤도 30°·바퀴 25° 넘는 경사는 못 오른다. 도로 위면 도로 최고 속도, 아니면 야지 속도(도로 판정은 RoadGraph 근접, 기존).
  • 물: 도하 깊이 궤도 1.2m·바퀴 0.8m, 더 깊으면 진입 불가. 교량 상판 위로 달린다(기존 bridge).
  • 충돌: 민가·소품·다른 탈것과는 방향 있는 상자 충돌(멈추고 미끄러짐). 상대 속도 8m/s 넘으면 초당 속도 차 × 2 피해. 나무: 궤도형은 속도 ×0.5로 통과(나무는 그대로 — 렌더만 겹침, 비용 절감), 바퀴형은 막힘. 인형을 치면 12.3 규칙.
  • 전복 없음(단순화). 경사 45° 넘는 곳에 걸리면 멈춤.

13.3 탈것별 수치 (플레이어 조종)

모두 (추정), B4 각 작업의 교전 표 측정으로 확정. HP·장갑은 진영·병과·탈것 4.2와 같다(봇과 같은 유닛).

탈것 최고 속도 도로 / 야지 가속 선회 포탑 회전 · 부앙각 주무장 보조 무장 좌석
전차 16 / 11 m/s 2.0 m/s² 제자리 30°/s 30°/s · −8~+20° 주포: 철갑탄 1,650m/s·피해 180·관통 5 / 고폭탄 800m/s·피해 90·관통 2·폭발 8m, 재장전 5초, 탄종 전환 = 재장전 동축 기관총 13/s, 연막 2 운전 겸 포수 1
장갑차 20 / 14 m/s 2.5 m/s² 제자리 40°/s 60°/s · −10~+45° 30mm(기존 gun30: 805m/s·피해 12·관통 2, 발사율 4/s로 제한) 유선 대전차 미사일 2(250m/s·2,000m·피해 200·관통 5, 조준선 유지 유도, 재장전 20초), 연막 2 운전 겸 포수 1 + 분대 1(5)
경차량 28 / 18 m/s 4.0 m/s² 반지름 7m 사수석 360° · −10~+60° 중기관총(사수석) 9/s·1,000m — 운전 1 · 사수 1 · 승객 1
수송 트럭 22 / 13 m/s 2.0 m/s² 반지름 11m — — — 운전 1 + 분대 1(5)
방공 차량 16 / 11 m/s 2.0 m/s² 제자리 30°/s 70°/s · −5~+85° 쌍열 대공포 20/s·1,100m/s·2,500m, 레이더 잠금 시 선도 조준점 — 운전 겸 포수 1
  • 측·후면 피해: 발사체가 탈것 옆(±60°~±120°)으로 맞으면 ×1.2, 뒤 60° 안이면 ×1.5. 전차 정면은 대전차 로켓 3발, 후면 2발(보병 12.5).
  • 유선 대전차 미사일: 기존 헬파이어의 LOBL 레이저 유도를 재사용한다 — 레이저 점 대신 "조준선이 가리키는 지형·유닛 지점"을 매 스텝 유도 목표로 준다. 조준선이 표적에서 벗어나면 빗나간다.
  • 레이더 선도 조준점: 방공 차량 레이더(5km·공중만)가 잡은 표적의 예상 위치(속도 × 탄 비행 시간)를 원으로 표시. 기존 rocketSolution·predictGunImpact의 예측 방식을 공중 표적용으로 확장.

13.4 조준·탄도·카메라

  • 기본 시점은 3인칭 추적(기존 chase 카메라를 포탑 뒤 8m·위 3m에 붙이고 포탑과 함께 돈다). V로 1인칭 조준경.
  • 3인칭 조준: 조준선은 포신 연장선이 처음 닿는 지점. 탄착 예측점은 보여 주지 않는다(탄도 낙차를 익히는 재미 — 손맛).
  • 1인칭 조준경: 배율 2단(전차 3×/8×, 장갑차 2×/6×, 방공 차량 1×/4×), 거리 눈금 200m 간격, 레이저 거리계(L)로 거리 표시. 전차 주포 1,650m/s면 1.5km에서 비행 0.9초·낙차 약 4m(공기 저항 포함 추정) → 눈금을 읽고 쏘는 맛.
  • 재장전 원(조준선 둘레)이 채워지는 동안 발사 불가. 포탑 방향 표시(HUD 차체 윤곽 위 포탑 화살표)로 차체와 포탑이 따로 논다는 것을 보인다.

13.5 좌석·탑승

  • E로 5m 안 탈것에 탄다(빈 좌석이 있을 때). 첫 빈 좌석은 운전석. F로 좌석 전환(경차량 운전 ↔ 사수).
  • 운전자가 없으면 탈것은 멈춘다(경차량 사수석으로 옮기면 서서 쏘는 포대가 된다).
  • 봇 분대의 탑승·하차는 자동 규칙(봇 AI 5.4). 플레이어 탈것의 승객석은 봇만 쓴다.
  • 탈것에서 내리면 선택했던 병과 장비로 싸운다. 60초 동안 빈 탈것은 봇 소대가 가져간다(플레이어 역할 2.3).

13.6 피해·파괴·수리

  • HP만 쓴다(부위 피해 없음 — 아파치의 계통 피해는 헬기에만).
  • HP 20% 이하 = 기동 불능: 최고 속도 ×0.3, 불이 붙어 초당 HP 1 감소. 수리하거나 내리지 않으면 결국 파괴.
  • 파괴: 폭발(기존 효과), 승무원 사망, 탑승 분대 규칙(진영·병과·탈것 4.4), 잔해 90초 뒤 은퇴.
  • 수리: 공병 수리 도구 +20HP/s, 또는 아군 본진·FARP 딸린 거점 반경 30m에 정지하면 초당 +10(재보급 겸, 탄약도 5초마다 1탄창/1발).
  • 연막 2발은 FARP·본진에서 다시 채워진다.

13.7 조작

동작 키보드·마우스 게임패드 터치
전진·후진 / 조향 W·S / A·D 왼쪽 스틱 위아래 / 좌우 왼쪽 스틱
브레이크 Space A 스틱을 놓으면 서서히, 뒤로 당기면 브레이크 후 후진
포탑·시선 마우스 오른쪽 스틱 오른쪽 절반 드래그
주무장 / 조준경 배율 좌클릭 / 우클릭 RT / LT 발사(64px) / 조준
무장·탄종 전환 1·2·3 또는 휠 RB 무장
연막 X B 연막
레이저 거리계 L 십자키 위 조준경 모드에서 자동 표시
좌석 전환 F X 좌석(경차량만)
시점 V 오른쪽 스틱 누름 일시정지 메뉴
하차 E Y 누름 유지 하차
스폿 Q LB 두 번 조준 중 자동
  • 터치 버튼: 발사·조준·무장·연막·하차(+좌석) = 5~6개.

13.8 교전 기준 (보통 난이도, 추정)

교전 계산 기대
플레이어 전차 vs 봇 전차 정면, 1km 명중 가정 80% × 216(180 × 1.2), 5초 재장전 → 2발 약 6~10초 (봇끼리 48초보다 확연히 빠름 → 플레이어 개입이 보인다)
봇 전차 vs 플레이어 전차, 1km 0.45 × 0.84 = 0.38/발, 7초 간격, 2발 필요 약 37초 — 플레이어가 먼저 쏘고 숨으면 이긴다
봇 대전차 분대 vs 플레이어 전차, 800m 0.45 × 0.72 = 0.32/발, 12초 간격, 피해 300 = 1발 약 37초 안에 격파 위험 → 보병을 먼저 치워야 한다
플레이어 장갑차 30mm vs 봇 소총 분대, 600m 4/s × 명중 50% × 12 × 12.5 환산 → 분대원 1명 약 0.4초 분대 약 2~3초
플레이어 방공 차량 vs 봇 공격 헬기, 2km 20/s × 명중 20%(선도 조준점) × 5 = 20 HP/s, HP 300 약 15초

13.9 재사용과 신규

필요 재사용 신규
지형 자세·도로 terrain.ts, groundAttitude 방식, RoadGraph sim/vehicles/ground.ts
발사체·탄도 projectile.ts, ballistics.ts(예측), gun30 정의 전차 주포·HE 무기 정의
유도 헬파이어 LOBL(missile.ts) 조준선 유도 목표
모델 채택 전차·장갑차·픽업·트럭 GLB, airDefenseModels.ts 포탑 분리(모델 가공: 포탑 메시를 따로 회전)
카메라 기존 chase 카메라 포탑 추적, 조준경 뷰
봇 movement.ts, brain.ts 플레이어 탑승 시 두뇌 끄기, 빈 탈것 회수
  • 모델 가공 주의: 채택 전차·장갑차 GLB는 한 덩어리일 수 있다. 포탑을 따로 돌리려면 scripts/process-glb에서 포탑 메시를 분리해야 한다 — 분리가 안 되는 모델은 포탑을 코드 도형으로 덧씌운다(B4-3 조사 항목).
  • 예상 코드(추정): sim 약 900줄, render 약 400줄, ui 약 200줄.

13.10 VPA 대칭

  • 수치 동일. 외형은 같은 GLB의 VPA 색 + 코드 부품(전차 포탑 위 탐조등 상자, 장갑차 측면 장갑판), 이름은 진영·병과·탈것 4.2.
  • 엔진·포 소리는 진영별 피치만 다르게(새 녹음 없이).