Projext/보스전_설계_지침서.md
hydrozen e989d20668 카툰 쉐이더 추가 + 중복 스크립트 수정 + 전체 업데이트
- ToonPostProcess.shader: 횃불 고딕 스타일 후처리 쉐이더 (Built-in RP)
- ToonCameraEffect.cs: 카메라 자동 부착 후처리 스크립트
- 중복 UI 스크립트 제거 (MenuIntroController, ToggleCustom)
- 씬, 프리팹, 애니메이션 등 전체 업데이트

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 12:31:16 +09:00

20 KiB
Raw Blame History

보스전 설계 지침서 — 12가지 핵심 원칙

작성일: 2026년 3월 4일 대상: 노르시엘(Norciel) 보스 — 쇠공 투척형 대형 보스 목적: 설명이 아닌 실전 설계 기준. "이렇게 만들어라 / 이렇게 만들지 마라"


원칙 1: 즉사기·강공격에는 반드시 전조를 넣어라

절대 이렇게 만들지 말 것

  • 애니메이션 시작과 동시에 판정이 나가는 공격
  • 와인드업 분산(variance)이 커서 전조 시간이 0.1초 미만으로 줄어드는 설계
  • 이펙트나 사운드 없이 동작만으로 위험도를 구분하게 만드는 것

대신 이런 원칙으로 만들 것

  • 위험도 = 전조 시간. 데미지가 클수록 전조를 길게
  • 전조는 반드시 3채널 이상 동시 사용: 모션 + 사운드 + 시각(바닥 표시·글로우·파티클)
  • 같은 패턴이라도 Phase가 올라가면 전조의 형태가 바뀌어야 함 (색상, 소리 톤 변화)

실제 구현 시 체크리스트

  • 모든 공격 패턴에 최소 0.3초 이상의 와인드업 보장 (windupVariance 적용 후에도)
  • attackIndicator가 Smash/Sweep뿐 아니라 DashSmash에도 적용되는가
  • Dash 와인드업 중 시각적 구분이 충분한가 (발을 구르는 모션, 먼지 파티클 등)
  • Phase3 DashSmash의 0.15초 최소 와인드업이 사실상 전조 없는 것은 아닌가
  • 사운드 큐가 공격 종류별로 구분되는가

플레이어 납득 설계 포인트

"처음 맞아도 다음엔 피할 수 있겠다"

전조 3요소(모션·사운드·시각)를 모두 갖추면, 첫 사망 시 "아 그 동작이 그 공격이었구나" 라고 복기가 가능해야 함. 전조 없이 갑자기 큰 데미지를 주면 플레이어는 "어? 왜 맞았지?" → 학습 실패 → 이탈.


🔍 현재 노르시엘 진단

패턴 전조(모션) 전조(사운드) 전조(시각) 판정
Throw 던지기 애니 없음 없음 ⚠️
Smash 와인드업 없음 바닥 원형 ⚠️ 임팩트 직전 스냅 회전
Sweep 와인드업 없음 바닥 부채꼴 ⚠️ 65% 추적 회전
Dash 예비 모션 없음 돌진 방향 표시 없음 호밍 추적
DashSmash 예비 모션 없음 없음

문제: 사운드 큐 전무. Dash/DashSmash에 시각적 전조 없음. Smash 임팩트 직전 스냅이 "분명 피했는데 맞았다" 느낌 유발 가능.


원칙 2: 패턴은 완전 랜덤이 아니라 규칙 안의 랜덤으로 만들어라

절대 이렇게 만들지 말 것

  • 거리/상황 무관하게 5개 패턴 중 아무거나 고르는 순수 Random
  • 연속 3회 이상 같은 패턴이 나오는 것
  • 플레이어 행동이 아무 영향도 없는 AI

대신 이런 원칙으로 만들 것

  • 거리 → 패턴군 필터링 (근접군, 중거리군, 원거리군)
  • 플레이어 행동 → 가중치 보정 (정지·접근·도주·카이팅)
  • 히스토리 → 연속 방지 (같은 패턴 2연속 시 가중치 95% 감소)
  • 플레이어가 "관찰 → 예측 → 대응" 사이클을 돌릴 수 있어야 함

실제 구현 시 체크리스트

  • SelectAndFire에서 모든 패턴의 가중치가 0인 경우에 대한 폴백이 있는가
  • Phase별로 패턴 풀이 실제로 다른가 (현재: 동일 풀 + 수치만 변화)
  • 카이팅 감지 → Dash 유도가 너무 빠르지는 않은가 (2.5초 적절?)
  • 중거리 캠핑 감지가 실제로 데드존을 해소하는가

플레이어 납득 설계 포인트

"운이 아니라 숙련으로 대응할 수 있다"

플레이어가 3~5회 패턴을 보면 "가까이 가면 찍기/쓸기, 멀면 던지기/돌진" 규칙을 학습해야 함. 그 규칙이 100%가 아니라 80% 정도여서 가끔 의외의 패턴이 섞이는 것이 이상적.


🔍 현재 노르시엘 진단

잘 되어 있는 것:

  • closeFactor/farFactor/midFactor 거리 기반 가중치
  • 적응형 AI (정지·접근·도주·카이팅 4종 감지)
  • 히스토리 기반 연속 방지 (_samePatternCount)
  • 카운터 시스템 연동 (BossCounterSystem)

문제:

  • Phase별 패턴 풀이 동일 (Phase 1~3 모두 같은 5개 패턴)
  • ⚠️ Phase1에서 DashSmash 기본 확률 10으로 Phase1 학습 구간에도 고난이도 패턴 등장

원칙 3: 카메라와 시야를 항상 우선해라

절대 이렇게 만들지 말 것

  • 보스가 너무 커서 카메라가 벽에 끼이는 것
  • 이펙트가 화면을 가려 판정을 못 읽게 만드는 것
  • 보스가 화면 밖으로 나가는 대시를 하면서 공격 판정이 남아있는 것

대신 이런 원칙으로 만들 것

  • 판독성 > 화려함. 이펙트가 보여야 할 정보(판정 범위, 방향)를 가리면 안 됨
  • 카메라 락온 상태에서 보스의 전체 실루엣이 항상 보여야 함
  • 보스의 모든 공격은 플레이어 화면 안에서 완결되어야 함

실제 구현 시 체크리스트

  • 보스 방 크기가 카메라 최대 줌아웃 시에도 벽이 카메라를 가리지 않는가
  • Dash/DashSmash 중 보스가 카메라 밖으로 나가지 않는가
  • 흡인(Suction) 효과 중 카메라가 보스 모델 안으로 들어가지 않는가
  • attackIndicator(바닥 표시)가 바닥 텍스처와 구분되는가

플레이어 납득 설계 포인트

"안 보여서 맞았다"는 느낌이 들면 안 된다

죽었을 때 "공격이 왔다는 건 봤는데 내가 못 피했어"라고 느끼면 정당함. "뭐가 온 건지도 모르고 맞았어"라고 느끼면 카메라/시야 실패.


🔍 현재 노르시엘 진단

  • 카메라 로직이 보스 AI에 없음 (별도 시스템 필요)
  • ⚠️ Dash 호밍 추적으로 보스가 플레이어를 지나쳐 화면 밖으로 갈 가능성
  • ⚠️ Smash 흡인 중 카메라 거리 보정 없음
  • 보스 방 크기 vs 카메라 거리 검증 미확인

원칙 4: 기존 전투 시스템을 보스전에서도 활용하게 만들어라

절대 이렇게 만들지 말 것

  • "보스에게는 회피가 안 통한다" (슈퍼아머만 있고 빈틈이 없는 경우)
  • "보스에게는 패링이 안 통한다" (완전 무효화)
  • 특정 빌드(원거리/근접)가 완전히 봉쇄되는 것

대신 이런 원칙으로 만들 것

  • 보스전은 기존 시스템의 응용 시험이어야 함
  • 강한 전략은 완전 봉쇄가 아니라 효율 조정으로 대응 (카이팅 → 대시로 추격, 근접 밀착 → Sweep 빈도 상승)
  • 슈퍼아머라도 스태거 게이지 같은 우회 경로를 두어야 함

실제 구현 시 체크리스트

  • 슈퍼아머 보스에게 "맞이 피격"(히트 반응)이 전혀 없는 것은 아닌가
  • 원거리 플레이(카이팅)가 완전 불가능하지는 않은가
  • 근접 플레이어에게 공격 타이밍(빈틈)이 확실히 주어지는가
  • 회피(i-frame)가 보스 공격에 제대로 작동하는가

플레이어 납득 설계 포인트

"내가 배운 걸 보스에게도 쓸 수 있다"

보스전이 기존 시스템을 부정하면 플레이어는 "그동안 배운 게 의미 없었나?" → 불쾌함. 보스전이 기존 시스템을 시험하면 "드디어 써먹을 곳이 있다" → 성취감.


🔍 현재 노르시엘 진단

  • 적응형 AI로 카이팅/근접 모두 대응 가능 (완전 봉쇄 아님)
  • ⚠️ 완전 슈퍼아머 — TakeDamage에서 StartHit() 미호출 → 보스에게 히트 리액션 전무
  • 패링/블록/스태거 시스템 연동 없음
  • ⚠️ Recover(경직) 시간이 Phase3에서 0.175초(0.5 × 0.35)까지 줄어 → 공격 틈이 거의 없음

원칙 5: HP만 높은 스펀지형 보스로 만들지 마라

절대 이렇게 만들지 말 것

  • Phase 전환이 "같은 패턴 + 빨라지고 아프게" 뿐인 것
  • 체력이 높아서 같은 전투를 10분 반복하는 것
  • 전투가 길어질수록 새로운 요소 없이 반복 노동이 되는 것

대신 이런 원칙으로 만들 것

  • 전투 시간 = Phase 수 × Phase당 고유 경험
  • 각 Phase는 최소 1가지 이상 새로운 위협 요소를 추가해야 함
  • HP를 올리는 대신 Phase 수를 늘리고, 각 Phase의 HP 구간은 짧게

실제 구현 시 체크리스트

  • Phase 2에서 Phase 1과 패턴 동작이 다른 공격이 최소 1개 있는가
  • Phase 3에서만 등장하는 고유 패턴이 있는가
  • 플레이어가 "Phase 바뀌었다"를 숫자가 아니라 체감으로 아는가
  • 전투 전체 시간 중 "같은 걸 반복하는 느낌" 구간이 30% 이하인가

플레이어 납득 설계 포인트

"전투가 길어질수록 경험이 변해야 한다"

Phase 1은 학습, Phase 2는 변형, Phase 3은 극한. 이 흐름이 없으면 아무리 HP가 적어도 지루함.


🔍 현재 노르시엘 진단 ← 가장 심각한 문제

  • Phase 1/2/3의 패턴이 완전히 동일 (Throw, Smash, Sweep, Dash, DashSmash 5종 공유)
  • Phase 차이는 오직 숫자 배율 (간격 ×0.65, 데미지 ×1.4, 속도 ×1.3)
  • Phase 전환은 포효 1회 → 시각적 변화 없음, 필드 변화 없음
  • ⚠️ 콤보 확률(0→35→55%)이 유일한 구조적 차이이나 체감 부족

결론: 현재 노르시엘은 원칙 5를 가장 심하게 위반하고 있음. 코드 수정 최우선 대상.


원칙 6: 피격 판정은 보이는 것과 일치하게 만들어라

절대 이렇게 만들지 말 것

  • 이펙트 범위보다 판정이 넓은 것
  • 애니메이션과 판정 타이밍이 안 맞는 것
  • "분명 피했는데 맞았다"가 자주 일어나는 것

대신 이런 원칙으로 만들 것

  • 판정 ≤ 시각 범위. 시각적으로 보이는 것보다 판정이 작아야 관대하게 느껴짐
  • 타이밍은 애니메이션 이벤트 기반이 원칙 (타이머 폴백은 어디까지나 보험)
  • 잡기·광역·연속 판정은 더 엄격하게 검수

실제 구현 시 체크리스트

  • Smash 임팩트 직전 transform.rotation 스냅이 판정을 부당하게 넓히지 않는가
  • Sweep 추적 회전(65%)이 "분명 뒤에 있었는데 맞았다"를 유발하지 않는가
  • Dash 충돌 판정(dashHitRange=1.8m)이 시각적 보스 크기와 맞는가
  • Smash 흡인(Suction)이 회피 후에도 끌어당겨 판정에 넣지 않는가

플레이어 납득 설계 포인트

"맞으면 맞은 이유를 바로 알아야 한다"

판정이 넓으면 "이게 왜 맞아?" → 신뢰 상실. 판정이 좁으면 "겨우 피했다!" → 스릴 + 성취감. 항상 조금 좁게 만들어라.


🔍 현재 노르시엘 진단

  • ⚠️ Smash 임팩트 직전 스냅 회전 — 70%까지 추적 후 30% 구간에서 회전 멈춤, 그런데 임팩트 직전에 다시 스냅. 이중 보정으로 플레이어가 옆으로 빠져도 거의 반드시 맞음
  • ⚠️ Sweep 추적 회전이 임팩트 직전까지 65% 추적 + 최종 스냅 → Smash와 동일한 문제
  • Dash 오버슈트 감지로 지나치면 즉시 정지 (양심적)
  • OverlapSphere + 각도 체크 조합으로 Sweep 판정은 정밀

핵심 수정 필요: Smash/Sweep 임팩트 직전 스냅 회전 제거 or 완화


원칙 7: 플레이어가 실패 원인을 명확히 이해하게 만들어라

절대 이렇게 만들지 말 것

  • 여러 공격이 동시에 겹쳐서 뭐에 맞았는지 모르는 것
  • 전조와 공격 사이에 다른 패턴이 끼어들어 혼동을 주는 것
  • 죽었을 때 "억울하다"는 느낌이 드는 것

대신 이런 원칙으로 만들 것

  • 1패턴 1위협 원칙: 한 번에 1개 공격에만 주의하면 되게 설계
  • 패턴 사이에 숨 돌릴 틈(경직, Recover)이 있어야 학습 시간이 됨
  • 사망 시 "저 공격의 저 타이밍에 회피를 못 했다" → 원인이 1문장으로 설명 가능

실제 구현 시 체크리스트

  • 콤보 체인(연속 패턴) 사이에도 최소 0.2초 간격이 있는가
  • Phase3 콤보 55% + 3연속까지 허용 → 사실상 연속 공격이 너무 길지 않은가
  • Recover 시간이 Phase3에서도 플레이어가 1~2회 타격할 수 있을 만큼 남는가
  • 피격 넉백 후 다음 공격까지 회복할 시간이 있는가

플레이어 납득 설계 포인트

"실패가 억울함이 아니라 학습이어야 한다"

억울한 죽음 1회 = 재도전 의지 -30%. 납득 가능한 죽음 1회 = 재도전 의지 +10%. 실패를 학습으로 바꾸는 핵심은 원인의 명확성.


🔍 현재 노르시엘 진단

  • 1패턴 1위협 원칙 준수 (동시 다중 공격 없음)
  • ⚠️ Phase3 Recover가 0.175초까지 줄어 학습 타이밍 부족
  • ⚠️ comboDelay(0.2초)가 Phase3 콤보 3연속과 결합 시 → 0.6초 안에 3패턴 → 과도할 수 있음
  • BossRest(숨돌리기) 시스템 존재

원칙 8: 2페이즈는 단순 강화가 아니라 구조 변화로 만들어라

절대 이렇게 만들지 말 것

  • 속도 ×1.3, 데미지 ×1.4로 끝나는 Phase 전환
  • "같은 패턴이 빨라졌을 뿐" → 플레이어가 Phase를 인지하지 못함
  • Phase 전환 연출이 포효 1회뿐인 것

대신 이런 원칙으로 만들 것

  • Phase 2에서는 기존 패턴의 동작이 물리적으로 변해야 함 (충격파 추가, 왕복, 바운스 등)
  • Phase 3에서는 새 패턴이 등장하거나 기존 패턴이 극단적으로 변형되어야 함
  • Phase 전환 시 시각·청각·필드·UI가 동시에 변해야 "규칙이 바뀌었다"를 체감

실제 구현 시 체크리스트

  • Phase 2에서 Smash가 Phase 1 Smash와 동작이 다른가
  • Phase 3에서만 나오는 패턴이 최소 1개 있는가
  • Phase 전환 시 보스 외형(이펙트, 글로우 등)이 변하는가
  • Phase 전환 시 BGM이 변하는가
  • Phase 전환 시 UI 체력바가 시각적으로 변하는가

플레이어 납득 설계 포인트

"Phase 1에서 배운 것을 Phase 2에서 확장 적용해야 한다"

Phase 1의 Smash를 피하는 법을 배웠다면, Phase 2 Smash는 "같은 공격인데 추가 요소(충격파)가 있네?" → 기존 지식 + 새로운 학습. 이것이 없으면 Phase 2는 "같은 건데 빨라진 것" → 지루 + 짜증.


🔍 현재 노르시엘 진단 ← 원칙 5와 함께 최심각

  • Phase별 패턴 동작 변형 전무. 코드에 Phase 분기가 없음
  • Phase 전환 연출 = 포효 애니 1개
  • Phase별 전용 패턴 없음
  • Phase별 UI/BGM/VFX 변화 없음

코드 수정 최우선 대상: Pattern_Smash, Pattern_Sweep에 Phase 분기 추가


원칙 9: 잡몹 소환을 난이도 때우기 용도로 남발하지 마라

절대 이렇게 만들지 말 것

  • 보스가 HP 깎이면 잡몹 무한 소환으로 시간 끄는 것
  • 잡몹이 시야를 가려 보스 패턴을 못 읽게 만드는 것
  • "보스를 때리는 건지 잡몹을 때리는 건지 모르겠다"

대신 이런 원칙으로 만들 것

  • 소환은 보스 정체성과 전투 구조에 꼭 필요할 때만
  • 잡몹이 있어도 중심은 항상 보스에게
  • 잡몹은 보스 패턴과 연계되어야 함 (독립적으로 움직이면 X)

🔍 현재 노르시엘 진단

  • 해당 없음 — 현재 잡몹 소환 미구현. 이 원칙은 향후 추가 시 참고.

원칙 10: 연출은 전투 흐름을 살리는 선에서만 사용해라

절대 이렇게 만들지 말 것

  • 컷신이 10초 이상 → 플레이어가 조작할 수 없는 시간이 긴 것
  • Phase 전환마다 긴 무적 연출 → 모멘텀 끊김
  • 보스가 쇠공 줍는 시간이 너무 길어 전투 리듬이 끊기는 것

대신 이런 원칙으로 만들 것

  • 연출 중에도 플레이어가 위치 조정은 할 수 있어야 함
  • Phase 전환 연출은 3~5초 이내
  • 쇠공 회수(Retrieving) 시간은 플레이어의 공격 기회로 활용

실제 구현 시 체크리스트

  • PhaseTransitionRoutine에서 보스가 무적인 시간이 5초를 넘지 않는가
  • 쇠공 회수 시간이 지나치게 길지 않은가 (플레이어 대기 시간)
  • 포효 연출 중 플레이어가 움직일 수 있는가

🔍 현재 노르시엘 진단

  • ⚠️ PhaseTransitionRoutine에서 SetState(Attacking) → 포효 끝날 때까지 다른 행동 차단
    • 포효 애니 길이에 따라 무적 시간이 달라짐 (최대 10초 대기)
  • ⚠️ 쇠공 회수(Retrieving) 중 보스가 NavMesh로 걸어가서 주움 → 거리에 따라 10초+ 걸릴 수 있음
  • 컷신 없음, 전투 중 연출 최소화

원칙 11: 난이도와 처벌 강도의 균형을 맞춰라

절대 이렇게 만들지 말 것

  • Phase 3를 보려면 10분 플레이해야 하는데, 죽으면 Phase 1부터
  • 실수 1번에 HP 70% 날아가는 것
  • Phase 3 패턴을 연습할 방법이 없는 것

대신 이런 원칙으로 만들 것

  • 체크포인트 또는 페이즈 스킵 연습 모드 고려
  • 최대 데미지 공격도 HP의 25~35% 이내로 제한 (1방에 안 죽게)
  • 재도전까지의 로딩/이동 시간 최소화

실제 구현 시 체크리스트

  • Phase3 DashSmash(데미지 ×1.8)가 플레이어 HP의 몇 %인지 계산했는가
  • 보스방까지 재이동 시간이 30초를 넘지 않는가
  • 전시회(PlayX4) 데모에서 죽으면 즉시 재도전 가능한가

🔍 현재 노르시엘 진단

  • ⚠️ 데미지 밸런스 미확인 (Phase3 smashDamage 30 × 1.8 = 54 → 플레이어 HP 대비 비율 불명)
  • 체크포인트/재도전 시스템 보스 AI에 없음 (별도 시스템)
  • ⚠️ 디버그 모드에서 Phase 스킵은 가능하나 플레이어용 연습 모드 없음

원칙 12: 보스의 캐릭터성이 전투에서 드러나게 만들어라

절대 이렇게 만들지 말 것

  • 아무 보스에나 같은 AI를 복붙하는 것
  • 설정은 "쇠공을 든 괴물"인데 전투에서 쇠공이 중요하지 않은 것
  • 보스 외형/설정과 공격 방식이 안 맞는 것

대신 이런 원칙으로 만들 것

  • 보스의 핵심 특징(쇠공)이 전투의 중심 메커니즘이어야 함
  • 공격·이동·위협 방식이 모두 같은 정체성을 향해야 함
  • "이 보스만의 경험"이 있어야 함

실제 구현 시 체크리스트

  • 쇠공이 Throw 외에도 패턴에 활용되는가 (쇠공 끌기, 쇠공 회전 등)
  • 보스의 크기/무게감이 공격 모션과 이동에서 드러나는가
  • Phase가 올라갈수록 "광폭화"가 시각적으로 체감되는가

🔍 현재 노르시엘 진단

  • 쇠공이 Throw 패턴의 핵심 + 회수 메커니즘으로 전투 리듬 형성
  • ⚠️ 쇠공이 Smash/Sweep/Dash에서는 활용 안 됨 (맨손 공격)
  • Phase별 외형 변화 없음 (광폭화 시각 표현 전무)

종합 진단: 수정 우선순위

우선순위 항목 위반 원칙 심각도
🔴 1 Phase별 패턴 동작 변형 없음 원칙 5, 8 최심각
🔴 2 Smash/Sweep 임팩트 직전 스냅 회전 원칙 6 ⚠️ 심각
🟡 3 Phase 전환 시각/청각 연출 없음 원칙 8, 12 ⚠️ 중간
🟡 4 Phase3 Recover 시간 과도하게 짧음 원칙 7, 11 ⚠️ 중간
🟢 5 사운드 큐 전무 원칙 1 ⚠️ 보통
🟢 6 슈퍼아머 + 패링/스태거 미연동 원칙 4 ⚠️ 보통
🟢 7 쇠공의 패턴 활용도 부족 원칙 12 💡 개선