포스트

미야코를 내려놓고 팀에 명령하다

SRT 브리칭의 조작을 미야코 한 명 직접 조종에서 미야코·사키 팀 명령으로 바꾼 과정. 포메이션 네 가지, 우클릭 명령 휠과 진입 신호, Halo 3 식 AI 구조, 돌입을 옆에서 찍는 시험 영상, C2 폭탄 가방, 동물 주민 인질, 새 타이틀.

미야코를 내려놓고 팀에 명령하다

한 줄 요약: 미야코를 직접 걷게 하던 조작을 버리고, 미야코와 사키를 한 팀으로 묶어 명령하는 조작으로 바꿨습니다. 길을 그리면 둘이 대형을 맞춰 걷고, 우클릭을 길게 누르면 명령 휠이 열립니다.

개인적으로 즐기려고 만든 팬 게임입니다. 게임 그림과 소리가 들어 있어 공개 배포는 하지 않습니다.

직접 조종하면 전술이 사라진다

4편까지 플레이어는 미야코를 직접 걷게 하고, 사키는 AI로 따라왔습니다. 그런데 직접 몰다 보니 미야코만 전투 태세에 들어가지 않았습니다. 사키는 교리대로 멈춰 서서 엄호하는데, 미야코는 플레이어가 그은 길을 그대로 걸어갔습니다. 교리를 아무리 잘 짜도 절반만 지키는 셈이었습니다.

그래서 조작을 바꿨습니다.

  • 플레이어는 미야코를 직접 걷게 하지 않습니다. 팀(미야코·사키)에 명령하고, 둘 다 같은 분대 AI로 움직입니다. 위협에 대응하고, 교전 중 자리를 옮기고, 멈추면 사방을 경계하는 것을 미야코도 똑같이 합니다.
  • 미야코의 손 조작은 그대로 남겼습니다. F 항복 요구·상호작용, G·H 섬광탄, R 재장전, V 미러건, Q/E 기울이기.

길은 지금처럼 좌클릭으로 끌어 그립니다. 다만 이제 그 길은 미야코의 길이 아니라 팀의 길입니다. 길 위로 보이지 않는 “기준점”이 걷고, 두 대원은 기준점을 중심으로 대형 자리에 붙어 걷습니다.

포메이션 네 가지

숫자 키 1~4로 대형을 바꿉니다. 누르면 바로 바뀌고, 지금 대형은 화면 오른쪽 위에 나옵니다.

키대형움직임
1일렬 (기본)사키가 선두, 미야코는 길을 따라 뒤. 둘뿐이면 걷는 동안 미야코가 뒤를 봅니다
2나란히기준점 양옆에 서서 각자 자기 쪽 앞을 봅니다
3엄호 이동한 명이 멈춰 엄호하는 동안 다른 한 명이 앞으로 나가고, 닿으면 역할을 바꿉니다
4산개양옆으로 넓게 서고, 교전할 때 움직일 수 있는 범위가 넓습니다

대원이 자기 자리에서 너무 뒤처지거나, 누가 교전 중이거나, 기준점 앞이 닫힌 문이면 기준점이 멈춥니다. 팀이 같이 멈춰 싸우고, 선두가 문을 열 때까지 기다립니다.

말로는 단순한데, 실제로 돌려 보니 이상한 장면이 많이 나왔습니다.

  • 오가기만 하는 미야코: 미야코가 사키보다 4칸 앞에 서 있는 상태에서 길을 주면, 미야코가 3초마다 같은 두 칸을 오가고 사키는 기다리기만 해서 10초 동안 아무도 못 나갔습니다. 이제 뒷사람 자리가 선두 출발점보다 앞이면 길 옆으로 비켜서서 선두를 먼저 보냅니다.
  • “비빔인간”: 테스터가 붙인 이름입니다. 엄호 이동으로 길 끝까지 가면 두 사람의 자리가 같은 점이라, 몸 지름 20픽셀만큼 맞붙어 서로 밀었습니다. 시험 5번 모두 간격이 정확히 20.00픽셀이었습니다. 이제 길 끝에서는 일렬처럼 한 명이 뒤에 섭니다.
  • “명령 내리고 10초 뒤에 액션 시작”: 선두가 모퉁이에서 동료를 기다리는 동안 기준점이 48픽셀 더 나가 버려서, 미야코가 기다려 주는 거리(64픽셀) 바로 밖인 66픽셀에 섰습니다. 사키는 최대 대기 시간 6초를 다 기다렸습니다. 이제 선두가 기다리는 동안은 기준점도 멈추고, 뒷사람이 선두 쪽으로 다가갑니다.

땅을 더블클릭하면 급히 이동입니다. 교리를 잠시 무시하고 달려갑니다. 기준점이 달리기 빠르기(102px/s)로 나가고, 모퉁이를 원호로 도는 것과 후방 경계를 하지 않습니다. 다만 위협이 보이면 그때는 멈춰 싸웁니다.

우클릭 명령 휠

처음에는 우클릭으로 고른 대원에게 명령을 줬는데, 조작이 불편하다는 말을 들었습니다. 그래서 SWAT 4·Ready or Not의 명령 휠과 Door Kickers 2의 진입 신호(Go-Code)를 참고해 다시 짰습니다.

우클릭을 짧게 누르면 (0.22초 안에 떼면) 그 자리의 기본 명령입니다.

  • 항복한 사람 → 구속
  • 먼 문 → 문 앞으로 이동
  • 실내 방 바닥 → 룸 클리어 (그 방으로 가서 항복자 구속, 증거 줍기, 안 본 곳 확인을 하고 클리어를 보고)
  • 그 밖의 땅 → 여기로 이동

길게 누르면 명령 휠이 열립니다. 날개 여덟 개에 번호, 이름, 그 명령을 하는 미야코 그림이 붙어 있습니다. 누른 채 그 방향으로 끌고 떼면 고릅니다. 명령마다 방향이 늘 같아서, 익숙해지면 휠을 안 보고도 고를 수 있습니다. 위는 열고 진입, 오른쪽은 차기, 아래는 C2입니다. 휠이 떠 있는 동안에는 게임 시간이 느려집니다.

명령 휠 명령 휠. 겨눈 날개(차기)가 파랗게 빛나며 바깥으로 나오고, 아래 칸에 고를 명령 이름이 나옵니다.

Shift를 누른 채 돌입 명령을 고르면 팀이 문 옆에 붙어 서기(스택)까지만 하고 기다립니다. T를 누르면 그때 진입합니다. 문 두 개에 동시에 붙어 있다가 한 번에 들어가는, Door Kickers 2의 진입 신호 그대로입니다.

이 조작은 키 하나하나를 자동으로 눌러 보는 시험(우클릭 짧게·길게, 휠 방향, 숫자 키, Shift 대기, T, 길 이어 붙이기, 지우기, 휠이 떠 있을 때 느린 시간)으로 확인합니다.

걷는 모습 다듬기

탑다운 게임들이 유닛을 어떻게 움직이는지 자료를 찾아 정리했습니다. Reynolds의 조향(steering), 에이지 오브 엠파이어의 유닛 비키기, 디아블로와 Door Kickers의 클릭 이동 등을 지금 코드와 하나씩 비교했고, 그중 두 가지를 바로 넣었습니다.

  • 출발과 정지: 전에는 첫 프레임에 최고 속도, 도착하면 그 프레임에 0이었습니다. 이제 600px/s²로 가속·감속해서 걷기 빠르기까지 0.085초, 달리기까지 0.17초가 걸리고, 길 끝 앞에서 서서히 멈춥니다.
  • 옆걸음과 뒷걸음: 전에는 3D 모델 전체가 보는 쪽으로 돌았습니다. 이제 다리는 걷는 쪽, 가슴은 보는 쪽을 향하고 최대 80°까지 몸을 비틉니다. 둘의 차이가 110°를 넘으면 걷기 동작을 거꾸로 틀어 뒷걸음질합니다.

9개 미션 시험에서, 보는 쪽과 걷는 쪽이 45° 넘게 다른 시간이 모두 29.2초였고, 그중 다리가 걷는 쪽과 45° 넘게 어긋난 시간은 2.8초였습니다. 남은 2.8초는 다리가 돌아가는 중인 시간입니다.

Halo 3 식 AI 구조

적과 분대의 판단 구조를 Halo 3의 AI 구조를 본떠 다시 짰습니다. Damian Isla와 Max Dyckhoff의 GDC 발표에 나온 개념을 그대로 옮겼습니다.

Halo 3이 게임
행동 트리. 매 틱 위 가지부터 다시 확인하고, 위 가지가 해당되면 끊고 갈아탄다교전 행동(재배치·후퇴·엄폐·제압 사격·우회·전진·재집결·버티기)을 정한 순서로 확인
충동(impulse)·자극(stimulus)용의자가 다치면 도주, 가까운 동료가 쓰러지면 세력에 따라 도주하거나 광폭 돌격
캐릭터 상속기본 용의자 → 하역장 경비·FOX 등 세력별로 값만 바꿔 물려받음
기억과 지각마지막으로 본 자리·시각, 안 보인 시간만큼 줄어드는 확신
임무(Objectives)용의자에게 지킬 지역과 우선순위를 줌. 임무가 소진되면 마지막 지역으로 물러남

전에는 Ready or Not 식으로 행동마다 점수를 매겨 가장 높은 것을 골랐습니다. 이 방식은 한 번 고르면 정해 둔 시간 동안 아무것도 끼어들지 못했습니다. 이제는 더 급한 행동이 해당되면 바로 끼어듭니다.

세력마다 성격도 달라졌습니다. 260픽셀 안에서 보이는 동료가 쓰러지면, 헬멧단은 25% 확률로 도망치고, 하역장 경비는 50%, FOX는 60% 확률로 4초 동안 돌격합니다.

분대는 교리를 바꾸지 않고 고르는 구조만 트리로 바꿨습니다. 그래서 교리 시험 결과로 비교했습니다. 장면마다 5번씩 돌린 결과입니다.

 바꾸기 전바꾼 뒤
시험 맵PASS 96 · FAIL 0PASS 96 · FAIL 0
실전 맵PASS 725 · FAIL 13PASS 716 · FAIL 20

시험 맵은 판정 96줄이 모두 같았고, 실전 맵은 FAIL이 7개 늘었습니다. 대부분 5번 중 1번 나오는 FAIL이고, 원인은 아직 재지 않았습니다.

돌입을 옆에서 찍는다

게임 화면은 위에서 내려다보는 화면이라, 대원이 문 앞에서 무릎을 꿇는지, 다리를 뻗는지, 문짝이 어디로 날아가는지 잘 안 보입니다. 그래서 돌입만 옆에서 찍는 시험을 만들었습니다.

방 하나, 문 하나짜리 맵에서 돌입 명령을 하나씩 줍니다. 문과 나란히 놓은 카메라 두 대가 문 밖(스택 쪽)과 문 안(방 쪽)을 동시에 찍고, 옆에 위에서 본 작은 지도와 대원 상태를 붙여 영상으로 저장합니다. 대원이 동작을 시작하면 끝날 때까지 게임 1프레임마다 사진도 한 장씩 남깁니다.

장면진입까지 걸린 시간
열고 진입1.10초
차고 진입1.70초
섬광탄3.00초
C2 폭파6.35초

C2 설치부터 폭파까지 C2 진입. 왼쪽부터 사키가 문에 C2를 거는 중(1.32~4.33초), 문에 걸린 폭탄 가방, 폭파 직후 사키가 들어가는 순간.

C2 모델도 바꿨습니다. 문에 거는 C2는 무츠키의 폭탄 가방 모델을 게임에서 꺼내 씁니다. 분대가 두 개를 들고 다니고, 사키가 겁니다. 사키는 3.0초 동안 설치하고, 0.4초 동안 물러난 뒤, 1.6초 기다렸다 터뜨립니다.

인질은 동네 주민으로

처음 넣은 민간인 모델은 게임 속 이름 있는 학생과 닮아서 인질로 어색했습니다. 인질은 누구인지 알 수 없는 사람이어야 합니다. 그래서 블루 아카이브의 필드 NPC(모브) 중에서 찾았습니다. 트리니티·밀레니엄 일반 학생, 게헨나 선도부원, 그리고 동물 주민들이 후보로 나왔습니다.

블랙마켓의 동물 주민들 블랙마켓 미션의 민간인. 낚싯대를 든 슈나우저, 뜰채와 양동이를 든 레서판다.

블랙마켓 미션은 동물 주민으로 채웠습니다. 시바견 상인, 슈나우저, 레서판다가 나타나는 순서대로 돌아가며 배정됩니다. 난수를 쓰지 않아서 같은 맵은 늘 같은 사람이 나옵니다. 시바견 모델에는 동작이 없어서 슈나우저의 서 있기·걷기 동작을 빌려 씁니다.

새 타이틀

타이틀 화면에 RABBIT SQUAD 로고를 올리고, 대표 그림을 미야코와 사키가 나란히 소총을 겨누는 그림으로 바꿨습니다.

RABBIT SQUAD 타이틀

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.