Files
Travel_Run/Docs/maps.md
T
2026-07-09 02:50:48 +09:00

6.6 KiB

Maps

맵별 배경, 스킨, 도착 지점, 목적을 정리합니다.

공통 구조

각 맵은 MapDefinition으로 관리합니다.

주요 필드:

  • mapId
  • displayName
  • routeName
  • platformSkin
  • backgroundResourcePath
  • backgroundResourcePaths
  • backgroundFitScaleMultiplier
  • backgroundVerticalOffset
  • finishGateStyle
  • targetDistance
  • timeLimit
  • clearMileageReward
  • courseProfile
  • openingSteps, loopSteps fallback

리팩터링 목표:

  • CourseProfile 기반 코스 구조를 사용합니다.
  • PlatformSpawner.TutorialStepCourseStep으로 독립시켰습니다.
  • MapDatabase는 맵 목록 관리만 담당하고, 실제 맵 정의는 맵별 파일로 나눴습니다.

현재 구조:

MapDatabase
-> Definitions/TutorialIncheonMap.cs
-> Definitions/JapanMap.cs
-> Definitions/ChinaMap.cs
-> Definitions/AmericaMap.cs

Course
-> TutorialCourseProfile.cs
-> JapanCourseProfile.cs
-> ChinaCourseProfile.cs
-> AmericaCourseProfile.cs

코스 분리 기준

튜토리얼과 일반 맵은 같은 구조를 복사하지 않습니다.

코스 목적
Tutorial / Incheon 조작 학습, 강제 피격, 아이템 효과 체험, 출국 게이트 실전 연습
Japan 첫 일반 맵, 쉬운 점프/슬라이드 반복 패턴
China 간격 변화, 연속 슬라이드/점프 확장
America 빠른 속도, 후반 난이도, 긴 주행 압박

난이도 기준:

난이도
Tutorial / Incheon 1 / 10
Japan 3 / 10
China 5 / 10
America 8 / 10

현재 PlatformSpawner는 맵이 가진 CourseProfile을 실행합니다. 맵별 opening/loop 코스와 fallback 코스는 Course/Profiles에서 관리합니다.

Tutorial / Incheon

역할:

  • 기본 조작과 아이템 학습
  • 실제 플레이 시작 전 연습 코스

배경:

  • 현재 런타임 적용: Assets/Resources/StageBackgrounds/Incheon/Stage_Incheon_DarkLower_Segment_01_CheckInHall.png
  • 현재 런타임 적용: Assets/Resources/StageBackgrounds/Incheon/Stage_Incheon_DarkLower_Segment_02_DepartureSecurity.png
  • 현재 런타임 적용: Assets/Resources/StageBackgrounds/Incheon/Stage_Incheon_DarkLower_Segment_03_DutyFreeConcourse.png
  • 현재 런타임 적용: Assets/Resources/StageBackgrounds/Incheon/Stage_Incheon_DarkLower_Segment_04_MovingWalkwayWindows.png
  • 현재 런타임 적용: Assets/Resources/StageBackgrounds/Incheon/Stage_Incheon_DarkLower_Segment_05_BoardingGate.png
  • 이전 단일 배경: Assets/Resources/Map_Tutorial_Incheon_Airport.png

현재 인천 배경 조각은 화면비 보정을 위해 임시 런타임 캔버스로 적용되어 있습니다. 상단 늘어남이 보여 최종본은 현재 화면비에 맞춘 새 16:9 배경 조각으로 다시 제작합니다.

도착 지점:

  • Assets/Resources/FinishGate_Tutorial_Incheon.png
  • 출국 심사/보딩 게이트 느낌

체험 순서:

  1. 점프
  2. 2단 점프
  3. 슬라이드
  4. 강제 피격
  5. 김밥
  6. 바나나우유
  7. 에너지 드링크
  8. 실전 연습 후 출국 게이트

튜토리얼 필드 아이템은 한국/공항 스킨 기준으로 표시합니다. 일반 맵에서는 같은 효과가 맵별 음식/음료 스킨으로 바뀝니다.

Japan

역할:

  • 첫 일반 여행 맵
  • 튜토리얼에서 배운 조작을 반복 패턴으로 사용
  • 튜토리얼 설명, 강제 피격 체험, 아이템 설명 트리거는 사용하지 않음

배경:

  • Assets/Resources/Map_Japan_Fukuoka.png

도착 지점:

  • Assets/Resources/FinishGate_Japan_Torii.png
  • 토리이

스킨:

  • 일본 발판
  • 석등 낮은 장애물
  • 배너/표지판 슬라이드 장애물

코스 방향:

  • 안전 발판으로 시작
  • 낮은 점프 장애물과 짧은 슬라이드를 번갈아 배치
  • 마일리지 코인은 점프 아크와 안전 라인 중심
  • 튜토리얼보다 긴 반복 패턴을 사용하되 난이도는 낮게 유지
  • 필드 아이템은 일본 스킨의 초밥, 라멘, 에너지 드링크를 사용
  • 난이도 3 기준으로, 액션 뒤에는 대체로 회복용 안전 발판을 둠
  • 석등 점프와 표지판 슬라이드는 한 번에 하나씩 읽히게 배치

China

역할:

  • 붉은색/금색 지역감
  • 슬라이드와 점프 패턴 확장
  • 일본보다 장애물 간격 변화가 큼

배경:

  • Assets/Resources/Map_China_Beijing.png

도착 지점:

  • Assets/Resources/FinishGate_China_Paifang.png
  • 중국 패방

스킨:

  • 중국 발판
  • 시장 상자 낮은 장애물
  • 홍등 슬라이드 장애물

코스 방향:

  • 점프 뒤 슬라이드, 슬라이드 뒤 점프처럼 전환 패턴을 늘림
  • 마일리지 라인은 안전 구간과 위험 보상 구간을 구분
  • 튜토리얼용 강제 피격 패턴은 사용하지 않음
  • 필드 아이템은 중국 스킨의 만두, 훠궈, 에너지 드링크를 사용
  • 난이도 5 기준으로, 점프와 슬라이드가 이어지는 구간을 루프마다 포함
  • 공중 발판 간격은 일본보다 짧게 잡아 착지 타이밍을 더 요구

America

역할:

  • 뉴욕 도착 맵
  • 자유의 여신상에 도착하면 클리어되는 느낌
  • 후반 맵답게 속도와 반응 시간을 더 강하게 사용

배경:

  • Assets/Resources/Map_America_NewYork.png

도착 지점:

  • Assets/Resources/FinishGate_America_Liberty.png
  • 도착 게이트가 나올 때 전용 착지 발판을 함께 깔아 이미지가 공중에 뜬 것처럼 보이지 않게 합니다.
  • 도착 게이트 뒤에는 추가 코스가 생성되지 않게 막아 클리어 지점이 끝처럼 보이게 합니다.

스킨:

  • 미국 발판
  • 콘/도로 장애물
  • 배너/표지판 슬라이드 장애물

코스 방향:

  • 넓은 점프와 짧은 슬라이드가 빠르게 이어짐
  • 안전 발판 비중은 줄이고 패턴 반복 속도를 올림
  • 도착 지점 전 마지막 구간은 시야가 복잡하지 않게 정리
  • 필드 아이템은 미국 스킨의 햄버거, 핫도그, 에너지 드링크를 사용
  • 난이도 8 기준으로, 짧은 간격의 점프/슬라이드 연속 패턴을 사용
  • 회복 아이템은 루프 안에 있지만 액션 밀도를 낮추지는 않음

맵 추가 규칙

새 맵을 추가할 때:

  1. MapId 추가
  2. Maps/Definitions에 맵별 정의 파일 추가
  3. 단일 배경은 Assets/Resources/Map_*.png로 저장하고, 연결 배경 조각은 Assets/Resources/StageBackgrounds/<MapName>/에 저장
  4. 도착 지점 이미지를 Assets/Resources/FinishGate_*.png로 저장
  5. backgroundResourcePath 또는 backgroundResourcePaths, finishGateStyle 연결
  6. Course 폴더에 해당 맵의 CourseProfile 추가
  7. MapDatabase 목록에 새 맵 연결