37 KiB
FirstRising 대화로그 — 2026-09-20
같은 세션에서 이어짐 (
2026-09-19.md§1~16). 기록 간소화(BT20-Org) — 안건 종료 시 1회. 커밋 없음(작업 트리 보존).
1. 플레이어 색 튐 · 후드 · 새 활/화살통 · 발사 모션 확인 · 모닥불 시작 · 앉았다 일어남 · 외형 차이 (BT18 ㉑)
PD 원문
"1. 전체적은 느낌은 좋아. 하지만 플레이어가 색상이 너무 색이 튀는 느낌이야. (플레이어가 램프를 지니고 있는 것처럼 주위가 자연스러운 광원이 비춰지면 좋겠어. 2. 캐릭터가 에셋에서 사용 된 캐릭터와 너무 다른 느낌인데, 후드를 벗긴 상태로 보이게 해줘. 3. 새로 추가한 "Medieval fantasy weapon pack" 에셋의 활로 바꾸고 캐릭터의 등에 화살통을 메고 있는 것처럼 수정해줘. 4. 활을 발사하는 모션이 내가 지시했던 모션 에셋을 제대로 반영하고 있는지 체크해봐. (활을 당기는 모션도 없이 발사되고 있음) → Stander@Bow_Attack1 모션이 제대로 반영되었는지 체크할 것." (작업 중) "1. 플레이어를 모닥불 공터에서 시작하게 해줘. 2. 게임을 실행하면 모닥불 공터에서 앉은상태에서 일어나게 해줘. (앉은상태로 일어나는 모션이 보유한 리소스중에 존재하는지 체크해볼 것) 3. 내가 본 캐릭터와 왜 외형이 다르게 느껴지는지 체크해볼 것." · "BowOne과 QuiverOne을 사용하자."
결과 (미커밋 · 백업 개발팀_백업/FirstRising/archer_setup_20260920_0014)
- 색 튐: 캐릭터 전용 SH 보조광(
TVCharacterLight)을 끄고, 램프(KeyLight_Player 4.2/9 m)를 캐릭터 옆·앞 낮게 따라다니게 했다. - 후드 벗은 모습: 보유
SK_SwordsmanGirl_02 Variant(CAPE_OFF + HAIR_01, 은발) 사용. - 활·화살통: BowOne을 왼손에, QuiverOne을 등(spine_05)에 달았다(
TVArcherGear, 재질은 URP 사본). 게임 무기 메시는 숨겼다.TVArcherSetup이 TestVisual·TestVisual2 양쪽에 적용한다. - 발사 모션: Bow_Attack1 적용은 맞다. 당김 폭이 작아 보이는 원인은 체형 차이(어깨너비/키 0.20 vs 0.12)다. 정상화는 §2 참고.
- 시작 위치: 모닥불 공터로 옮겼다.
- 앉았다 일어남: 전용 '앉기' 클립은 없다. Platform
LyingBack_WakeUp앞부분을 잘라TV_SitStand로 썼다(TVIntroSitStand, LobbyIdle 상태 사용). - 외형 차이 원인: 후드 버전(01), 밤 조명 vs 스튜디오 3점 조명, 16 m 위 카메라, 모바일 품질(1본 스키닝·렌더 0.75·AA 없음), 이전 SH 보조광.
2. 디아블로식 맵 · 캠핑팩 · 공격 모션 정상화 · 공터 재설계 · 달빛/스모그 · 에러 · 자동 주행 점검 · 이동 가능 지도 (BT18 ㉒)
PD 원문
"1. 모닥불이 회전하지 않게 해줘. 2. 모닥불은 "Stylised Reality: Stylized Camping Pack - Low Poly Survival Pack | URP" 에셋을 사용하고, 시작 위치에 텐트도 배치해줘. 3. 나는 디아블로 형태의 맵을 구성하고 싶어. 시작 위치를 시작으로 맵을 나무나 다리, 등 프랍들을 보유한 자원을 최대한 적절히 활용해 디아블로 형태의 맵으로 구성해줘. 4. 맵 구성이 끝나면 어떻게 맵을 구성했는지 게임의 맵 형태로 이미지 한장으로 보고해." (PD 플레이 후) "* 플레이어의 공격 애니메이션이 "Shinabro → Platform_Animation → 04_Bow" 애니메이션의 첫번째 공격( Stander@Bow_Attack1 모션)을 제대로 사용중인게 맞아? 모션을 정상화 할 방법을 찾아봐. * 전반적으로 플레이어가 움직이기 일 수 있는 영역이 좁고 이동을 방해하는 오브젝트가 많아서 너무 불편해. 탁 트인 공터 위주로 다시 설계해봐. * 맵의 경계는 나무들로 채워서 첫 지역은 자연스러운 숲처럼 구성해줘. * 화면이 너무 어두워, 전반적으로 조금 더 밝게 달빛이 비치듯 구성하고, 은은한 몽환적인 분위기를 풍기는 옅은 스모그도 존재하면 좋겠어." "* 게임 중 에러가 발생되었어. (확인해보고 수정해) * 네가 실제로 캐릭터를 움직여보고 플레이 조작감이 거슬리지 않는지 체크해서 너무 과도하다고 판단될 경우 오브젝트 배치를 수정해서 핵앤슬래쉬(디아블로4) 게임과 같은 느낌의 쾌적한 맵 구성이라고 판단될 때까지 맵을 다듬어. * 네가 충분히 완성되었다고 판단될 때까지 자율적으로 반복해 개선점을 찾고 폴리싱해줘. * 완성 된 맵은 한장으로 이동 가능 영역과 불가능 영역을 볼 수 있는 지도를 제공해줘."
결과 (미커밋 · 백업 개발팀_백업/FirstRising/tv2_diablo_20260920_0048 · tv2_diablo_v2_20260920_0143 · archer_motion_20260920_0119 · residue_20260920_0213)
- 모닥불 회전
- 원인: PowerUps 소품의
PowerUps.Rotate(초당 회전 + 0.2 m 둥실)였다. 횃불·촛불에도 붙어 있었다. - 조치: 모닥불은 캠핑팩 CampFire(+불꽃 VFX·빛)로, 촛불은 Toby 촛불로 바꿨다. 횃불은 인스턴스에서 Rotate를 떼어냈다. 텐트는 캠핑팩 Tent 2개를 시작 위치 뒤에 놓았다.
- 원인: PowerUps 소품의
- 맵 빌더
Assets/BurningTimes/Editor/TV2DiabloMap.cs(메뉴TestVisual2 Diablo Map/Apply·Remove, 결과Logs/bt_tv2_diablo*.txt/json/png)- 1차: 좁은 길 네트워크 → PD 플레이 피드백을 받고 2차로 다시 짰다.
- 2차: 반경 9~13 m 공터 8곳(캠프·다리목·묘지·숲 매복지·사냥꾼 오두막·던전 입구·강 건너 마을·망루 폐허) + 걸을 폭 8~10 m 길 7개 + 돌다리(Advance Studios ×4.2)·나무 다리(늪 팩 부두).
- 순환로: 캠프 → 다리목 → 돌다리 → 마을 → 망루 → 나무 다리 → 캠프.
- 갈래: 묘지(납골당), 숲 매복지 → 사냥꾼 오두막 / 던전 입구(바위 아치 + 붉은 포털).
- 경계 바로 밖부터 나무를 세웠다(침엽수·잎 나무·고목·덤불·바위). 카메라 쪽은 가지만 있는 고목과 반투명 재질을 썼다.
- 보이지 않는 벽: 플레이어만 부딪히는 물리 범주 16. 강물 위는 다리 말고는 막았다.
- 캠프 앞 모래톱은 강으로 팠다. 소품은 공터 가장자리에만 두었다. 몬스터 구역 5곳을 새 공터로 옮겼다.
- 분위기
- 빛: 달빛 (0.66,0.78,1.0)×2.1, 환경광 ×1.6, 노출 0.75→1.05, 대비 18→12, 블룸 0.85/1.0.
- 안개: 옅은 청회색, 10~62 m. 바닥 안개와 빛 입자는 플레이어를 따라 방출한다.
- 강물: 어두운 청록 + 물결 노멀.
- 공격 모션
- 원본을 30fps로 실측했다. 시위 걸기 0~0.03 s, 당겨 고정 ~0.11 s, 놓기 ~0.17 s, 이후 놓은 자세 유지.
- 게임은 공격 시작을 0.2 s 섞어 들어가고, 화살은 0.42 s에 나간다. 그래서 당기기·놓기가 섞임 안에 묻혀 "당기지 않고 쏘는" 것처럼 보였다.
- 조치:
TV_Bow_Shot의 시간만 재배분했다(당기기 0.18~0.34 s, 놓기 0.40~0.45 s = 화살 시점, GUID 유지). - 제자리 전신 공격은 게임이 이미 튼다(
Character.Skill.UseSkill기본 레이어 Skill 하위 상태). 처음에 넣은 전신 보강 로직은 게임과 충돌해서 되돌렸다.
- 에러
- (1) 서브씬 굽기 예외: 읽기 불가 메시 MeshCollider 328개(맵 원래 저폴리 바위 + 새 소품). 모두 끄고, 놓을 때도 끄게 했다. 이미 난 예외는 서브씬을 다시 import해 지웠다.
- (2) 내 CLI 명령이 5초를 넘기면 에디터가 빨간 로그를 남겼다. 긴 작업은
--detach로 바꿨다. - (3) 참고: "Cannot import package in play mode"는 Play 중 패키지를 가져오려 할 때 나는 로그다.
- 최종 Play에서 에러 0.
- 자동 주행 점검 (
Assets/BurningTimes/Visual/Scripts/TVAutoPilot.cs, 테스트 도구, 씬에 넣지 않음)- 웨이포인트 41 · 약 420 m · 120.3 s · 끼임 0 · 건너뜀 0.
- 막혀야 할 5곳(숲 3·강·절벽)은 모두 경계에서 멈췄다.
- 추가 수정
- MEP 목책·망대의 LOD1이 옛 셰이더(Mobile/Diffuse)라 게임 거리에서 분홍색이었다. 같은 프리팹의 URP 재질로 바꿨다.
- 돌다리가 강바닥 높이에 놓여 물속에 잠겼던 것을 지면 기준으로 고쳤다.
- 에디터 실측(PC): 129~149 fps · 배치 181~264 · 삼각형 35만~46만.
- 보고 지도:
개발팀_백업/FirstRising/tv2_diablo_v2_20260920_0143/보고/tv2_map_final.png. 이동 가능/불가 · 경계 · 강 · 자동 주행 경로 · 막힘 확인 지점을 표시했다.
남은 이슈
- 모바일 실기 성능 미확인(소품 약 1,000 · 점광원 32).
- 원본 게임 맵·자산 미반영(TestVisual2 전용).
- 앉기 전용 모션 없음(현재는 눕기→일어나기 클립 앞부분 사용).
- Play 때마다 생기는 잔여 파일(폰트 아틀라스·CharacterFresnelEffect·일부 재질 자동 업그레이드)은 이번에 되돌렸다. Unity가 다시 불러오면 재발할 수 있다.
3. 캐릭터 주변 밝기 · 이동 가능 지도 · 바닥 질감 · 못 가는 곳 나무 빼곡 (BT18 ㉓)
PD 원문
"* 캐릭터 주위로 갈수록 조금씩 더 어두워지게 해야할 것 같아. * 맵의 지도를 보여줘. (움직일 수 있는 영역과 없는 영역을 확인할 수 있도록) * 바닥이 너무 자글자글한 느낌인데, 좀 더 숲바닥이나 흙바닥처럼 꾸며줄 수 없을까? * 못가는 지형(움직일 수 없는 지역)은 나무들로 빼곡하게 채워진 것처럼 보이게 구성해줘." (작업 중) "바닥 재질이 너무 이질적으로 변했어. 이전 로비에서 보이던 타일 느낌이 훨씬 더 자연스러웠던거 같아"
결과 (미커밋 · 백업 개발팀_백업/FirstRising/tv2_ground_trees_20260920_0952)
- 캐릭터 주변 밝기: TVPlayerVignette(TestVisual 전용). 캐릭터 화면 위치를 중심으로 바깥으로 갈수록 어두워진다(세기 0.46 · 부드러움 0.55). 씬 볼륨 프로파일 에셋은 건드리지 않고 실행 중 전용 볼륨을 만든다. 전역 비네트는 0.28 → 0.14 로 낮췄다.
- 못 가는 곳: 지형 나무 2,305그루를 심었다(ScatterTerrainTrees). 소품(엔티티)보다 싼 지형 인스턴싱이고, 가림 반투명 재질을 입힌 TestVisual2 전용 프리팹 사본을 프로토타입으로 쓴다(원본 팩 프리팹 미변경). 카메라 쪽 7 m 안에는 큰 나무를 두지 않아 캐릭터가 가리지 않는다. 표시 거리 110 m. 깊은 숲 소품은 그만큼 줄였다.
- 바닥: 처음에 MEP 숲바닥·흙 텍스처로 바꿨는데 PD가 "이질적"이라고 해서 원래 텍스처(흙 HQ_ground6 · 늪풀 · 이끼 · 돌 타일)로 되돌렸다. 자글자글함은 반복 간격을 넓혀(흙 5→8.5 m · 풀·이끼 4→7 m · 돌길 3→3.6 m) 요철(노멀)을 절반(0.9→0.45)으로 낮춰 줄였다. 얼룩 무늬도 크고 부드럽게 바꿨다.
- 지도: 이동 가능/불가·강·경계·자동 주행 경로·막힘 지점을 한 장에 표시해 다시 발행했다(보고/tv2_map_final2.png).
- 에디터 실측(PC): 136~151 fps · 배치 288~302 · 삼각형 41만~55만.
남은 이슈
- 바닥 질감은 PD 취향 확인 필요(돌 타일 범위를 공터까지 넓히는 안도 가능).
- 지형 나무 2,305 + 소품 약 700 — 모바일 실기 성능 미확인.
4. BT18 ㉔ — 성능(안 보이는 영역 비우기)·막힌 곳 시각화·캠프·물·바닥 구역·게임 내 지도 (2026-09-20)
PD 지시 (원문)
- 성능 개선을 위해 보이지 않는 영역 (플레이어의 카메라에 절대 보이지 않을 영역)은 아무것도 배치하지 말고 비워.
- 시각적인 부분까지 고려해 이동이 불가한 장소는 나무나 바위, 구조물과 같은 오브젝트를 배치해서 확실히 갈 수 없다는 것을 인지할 수 있도록 해줘.
- 시작 위치(캠프 공터의 천막은 1개만 남기고, 모닥불의 불 크기를 줄여줘.(지금은 솥을 뚫고 나오고 있어)
- 시작 위치 하단의 물이 움직임도 없고, 질감이 물이 아니라 이질적인 액체로 보여. 자연스럽게 물처럼 보이게 수정해줘.
- 시작 위치의 바닥 텍스쳐(해골 무더기)는 퀄리티가 좋지만 이 장소에 적합한 것 같지 않아. 이 텍스쳐는 묘지 같은 장소에서 사용하되, 캠프 근처는 숲 바닥 텍스쳐와 흙 바닥 텍스쳐로 길을 만드는 형태로 구성해줘.(흙 바닥이란 현재 내 플레이어가 서있는 갈색 톤의 바닥을 의미함)
- 게임 내 우측에 버튼(더미 아이콘 사용)을 누르면 지금 제가 제공한 맵 지도가 보이도록 해줘.
결정
- "해골 무더기"의 정체는 늪풀 레이어(HQ_AugustSwampyGrass) — 타일로 반복하면 희끄무레한 덩어리가 뼈 무더기처럼 보인다. 텍스처를 바꾸지 않고 칠하는 범위만 묘지로 제한했다(PD가 이전에 텍스처 교체를 "이질적"이라고 기각했기 때문).
- 물은 FantasyForest 물 셰이더(깊이 텍스처 필요)를 쓰지 않았다 — 런타임 URP(URP_TestVisual)가 깊이 텍스처를 끄고 있어 켜면 깊이 프리패스 비용이 든다(PD ① 성능과 상충). 기존 URP Lit 를 유지하고 물결 크기·매끄러움·UV 흐름만 고쳤다.
- 보이는 범위 판정은 게임 카메라를 Play 중에 실측해 기준으로 삼았다(거리 16 m · 피치 45° · 요 180° · 세로 FOV 50° · 화면 비 0.5625).
결과 (미커밋 · 백업 개발팀_백업/FirstRising/tv2_batchD_20260920_1055)
- ① 보이는 범위: 걸을 수 있는 칸마다 카메라를 세워 칸별 "보이려면 필요한 최소 높이"를 구하고(
BuildVisibility), 배치·심기 때마다 물건 높이와 비교해 안 보이면 두지 않는다. 절대 안 보이는 12,084 ㎡ 를 비웠다(전체 21,868 ㎡ 중). 지형 나무 2,305→762그루 · 풀·꽃 7,206 제거 · 숲 소품 1,958곳 생략. 파이썬으로 같은 계산을 따로 해 교차검증(보이는 칸 9,657 vs 유니티 9,651). - ② 막힌 곳: 경계 바깥 0.7~2.6 m 에
BuildEdgeWall— 바위 39 · 쓰러진 나무 8 · 나무 16 · 울타리·돌담 6. 카메라 쪽(화면 아래)은 낮은 바위·통나무만 써서 캐릭터를 가리지 않게 했다. - ③ 캠프: 천막 2→1개. 모닥불 불꽃 VFX 0.95→0.5배·높이 0.28→0.12 m 로 낮춰 솥을 뚫지 않는다.
- ④ 물: 물결 노멀 타일 60→330(물 판이 1000 m 이므로 한 칸 16.7 m → 약 3 m) · 매끄러움 0.95→0.62 · 노멀 0.55→1.1 · 색 (0.07,0.13,0.16).
TVWaterFlow가 실행 중에만 UV 를 흘린다(초당 0.045/0.014 타일, 꺼지면 원래 값 복구). 두 프레임 비교로 물 영역 픽셀 76.4% 변화(다리 바닥 0.7%) — 실제로 흐른다. 물가가 자로 그은 듯 직선이라BuildRiverBank로 물가 수풀 30·바위 16·통나무 4·물속 갈대 64 를 놓아 선을 끊었다(FantasyForest 식생은 밤에도 형광 초록이라 MEP 고사리로 교체). - ⑤ 바닥: 늪풀(뼈) 레이어는 묘지 반경 10~26 m 에서만 올린다. 그 밖은 공터 한가운데로 갈수록 흙(HQ_ground6), 숲으로 갈수록 이끼로 섞는다. 캠프 공터를 지나는 흙길 2줄(캠프 안길·물가 샛길)을 칠했다 — 걸을 수 있는 범위는 건드리지 않게 반폭 0.1 m·칠 폭만 2.4/1.5 m.
- ⑥ 지도:
TVMapButton(TestVisual 전용). 실행 중에만 전용 캔버스를 만들어 우측에 더미 아이콘 버튼을 띄우고, 누르면 전체 화면 지도(1024×1110)와 현재 위치 점을 보여준다. 화면을 누르면 닫힌다. 지도 이미지는 보고용과 같은 판(Assets/BurningTimes/Visual/TV2/UI/TV2_MapImage.png). - 버그 수리: 플레이 종료 시 NullReferenceException 7건 —
TVEntityBlobShadows가 ECS 월드가 사라진 뒤에도 캐시한 쿼리를 썼다. 매 프레임 월드를 확인하도록 고쳤고 종료 시 0건 확인. - 에디터 실측(PC): fps 129~175 · 배치 194~350 · 삼각형 34.6만~41.8만.
남은 이슈
- 화면에 보이는 배치만 남겼으므로 프레임당 그리기 양(배치)은 크게 줄지 않는다 — 줄어든 것은 씬 전체 인스턴스 수·메모리·굽기 비용이다. 모바일 실기 측정은 아직 없다.
- 게임 HUD(상단 일시정지·경험치 바·스킬)가 지도 위에 계속 보인다. 지도 캔버스 정렬 32760 인데 게임 HUD 가 더 위다. 필요하면 게임 UI 쪽을 만져야 한다(현재는 TestVisual 범위 밖).
- 카메라 쪽 경계에 큰 나무가 서면 화면 아래쪽을 크게 가린다(가림 반투명은 캐릭터를 가릴 때만 작동). 더 낮은 물건만 쓰도록 좁힐지 PD 판단 필요.
- 커밋은 PD 지시 전까지 하지 않는다(BT16 ④).
5. BT18 ㉕ — 물·이동 중 공격 모션·이동 경계·다리 풀·성채·불 속도·데미지 폰트·회피 방향 (2026-09-20)
PD 지시 (원문)
- 흐르는 냇물의 수면이 너무 자글자글한 느낌+ 너무 실사풍이라 튀는 느낌이야. 조금만 캐릭터나 배경 분위기에 맞게 보정해줘.
- 이동 중 공격(활을 쏠 때)할 때 모션이 너무 어색해 이동 중 공격 모션이 애니메이션 데이터에 없는지 체크해봐.
- 이동하지 못하는 영역의 구조물이 시각적으로 보이는 영역보다 넓게 잡혀있어서 답답한 느낌을 주는 것 같아. 다시 한번 더 체크해보고, 통과되는 구조물이 없도록 수정해줘. (다리 옆 화로는 통과 가능)
- 다리에는 부자연스럽게 풀이 솟아나지 않도록 제거해줘.
- 성채처럼 보이는 구조물들이 구조에 맞지 않게 지붕만 나오거나 일부 조립 된 형태로만 나오는데 부자연스럽지 않도록 실측 후 자연스럽게 수정해줘.
- 불타는 연출의 구조물의 경우, 불 재생 속도가 너무 느려서 부자연스러워. 따라서 불타는 연출의 이펙트가 자연스럽게 수정해줘. (현재 내 화면 실측해볼 것)
- 데미지 폰트의 숫자가 너무 어두워서 잘 안보여 컬러를 좀 더 밝은 톤으로 하고, 아웃라인 색상도 데미지 폰트 숫자에 맞춰서 보정해줘.
- 화면 더블 클릭으로 회피동작을 할 때 터치한 방향으로 회피하도록 해줘.
결정
- PD가 40분 넘게 같은 자리(던전 입구)에서 멈춰 계셔서 자리를 비우신 것으로 판단하고 Play 를 종료한 뒤 작업했다(편집 모드가 필요한 지시였다). 불 항목은 지시대로 PD 화면을 먼저 캡처해 원인을 재고 시작했다.
- 회피 방향은 게임 코드(Player·Character·Joystick)를 고쳐야 해서 TestVisual 범위를 벗어난다 — PD 지시라 진행하되 최소 변경으로 했다.
- 이동 중 공격은 새 클립을 만들지 않고, 게임 컨트롤러의 방향별 달리기 상태에 보유 팩의 조준 달리기를 끼우는 방식(교체 목록에만 추가)을 택했다.
결과 (미커밋 · 백업 개발팀_백업/FirstRising/tv2_batchE_20260920_1234)
- ① 냇물: 물결 한 칸 3 m → 7 m(타일 330→140) · 요철 1.1 → 0.45 · 매끄러움 0.62 → 0.55 · 흐름 초당 0.32 m → 0.19 m. 잔물결이 사라지고 넓고 느린 결로 보인다.
- ② 이동 중 공격: Shinabro Platform_Animation 04_Bow 에는 이동 중 공격 클립이 없다(제자리 Attack1~3 · 점프 · 회피 공격뿐). 더 큰 원인은 게임 컨트롤러의 방향별 달리기 상태(Unarmed-Run-Left/Right/Backward/45°) 8개가 모두 앞 달리기 한 개(Bow_Run)로 덮여 있던 것 — 적을 보며 옆·뒤로 움직이면 미끄러지듯 보였다.
Assets/PlayerAssets/Archer_Anim_Set(휴머노이드)의 방향별 조준 달리기 8종을 끼웠다(TVArcherLocomotion메뉴 · 게임 컨트롤러 에셋은 그대로). 실행 중 확인: 이동 시anim_Bow_Run_Fwd_Aim등이 재생된다. - ③ 이동 경계: 걸을 수 있는 범위를 길·공터 경계 밖 2.2 m 까지 넓히고(보이는 나무·바위 줄까지), 소품 347개의 발자국을 막는 벽으로 바꿨다. 화로·횃불·등불·표지판·다리는 통과(PD 지시). 소품 사이 2 m 미만 틈은 메우고 실틈·이어지지 않는 조각은 정리했다. 실측: 텐트·모닥불·성탑·마을 오두막 자리 = 막힘, 시작 위치·공터·다리 위·묘지·던전 = 이동 가능. 자동 주행(길 꼭짓점 경로 41개) 끼임 30 → 6 · 건너뜀 11 → 2 · 96.7 s, 막힘 확인 3곳 모두 경계에서 정지. 남은 건너뜀 2곳은 목표 지점 자체에 소품이 있어서이고, 그 옆 4.5 m 는 열려 있다.
- ④ 다리: 다리 위·어귀 3 m 안에는 수풀·소품·지형 풀을 두지 않는다 → 실측 결과 다리 주변 풀 인스턴스 0개.
- ⑤ 성채: 실측으로 원인 확인 — Advance Studios 팩은 프리팹 원점이 모델 윗부분이라 지면 높이에 놓으면 몸통이 묻힌다(성탑 71 % · 성벽 76 % · 기둥 45 % · 철문 47 %). 놓은 뒤 렌더러 경계를 재서 바닥을 지면에 맞추도록 고쳤고(8개 · 최대 4.71 m 상승), 온전히 드러난 크기에 맞춰 배율을 낮췄다(성탑 3.0→2.1 · 성벽 2.6→1.7 · 기둥 2.6→1.9). 검은 덩어리로 보이지 않게 폐허 불빛 1개 추가. 바위·묘비·다리처럼 원래 박혀 있어야 하는 것은 건드리지 않는다.
- ⑥ 불: PD 화면을 캡처해 재니 불 텍스처 시트(2×2·3×3)가
timeMode=Lifetime · cycles 1이라 수명(0.5~1.3 s) 동안 한 바퀴만 돌아 초당 3~7장이었다(fps 30 설정은 Lifetime 모드에서 무시된다). 수명에 맞춰 바퀴 수를 정해 초당 약 15장으로 올리고 시뮬레이션 속도 1.25배(소품 78개 시스템). 두 프레임 비교로 불꽃 픽셀 59.8 % 가 바뀐다. - ⑦ 데미지 숫자: 글자 면을 깎던
_FaceDilate -0.15 → 0.02(외곽선이 밝은 면을 먹고 있었다) · 색 위 (1.00,1.00,0.90) → 아래 (1.00,0.84,0.34) · 외곽선 짙은 호박 (0.26,0.10,0.02) · 굵기 0.13→0.115. - ⑧ 회피: 누른 화면 지점을 캐릭터 높이 평면에 투영해 그 방향으로 구른다(
Player.TryScreenRollDirection). 조이스틱을 잡고 있지 않을 때만 쓰고, 키보드 입력이 있으면 기존대로. 기존 조건x != 0 && y != 0(축 하나만 입력하면 무시) 도||로 고쳤다. 실측 5방향 각도 오차 0.0~1.7°. - 콘솔: 빌드·플레이 모두 오류 0(경고만).
남은 이슈
- 게임 코드 3개 파일(
Player.cs·Character.cs·Joystick.cs)을 고쳤다 — TestVisual 범위를 벗어나므로 PD 확인 필요. - 성채는 온전히 섰지만 밤이라 검은 덩어리로 보인다(불빛 1개 추가). 더 밝히려면 폐허용 조명·재질 톤 조정이 필요하다.
- 자동 주행 잔여 끼임 6회는 길 꺾임에서 직선으로 밀 때 생긴다(자동 주행에 길찾기가 없다). 사람 조작에서 같은 느낌인지 PD 확인 필요.
- 커밋은 PD 지시 전까지 하지 않는다(BT16 ④).
6. BT18 ㉖ — 낮은 오브젝트 통과·충돌 기준·다리 난간·이동 모션 원복 (2026-09-20)
PD 지시 (원문)
자동 주행 잔여 끼임 6회는 길이 꺾이는 곳을 직선으로 밀 때 생깁니다(주행 봇에 길찾기가 없습니다). 이게 무슨 말이지? 수정했다는거야?
- 캠프파이어 주변 낮은 통나무까지 길이 막히는데 비주얼적으로 통과 할 수 있을 것 같은 낮은 오브젝트는 통과가 가능해야해.
- 다리 주변의 화로는 여전히 통과하는데 분명히 통과하지 못할 것 같은 오브젝트는 충돌체크가 되어야 해.
- 다리 난간 부위도 몸이 통과하는데 적절하게 길막힘이 발생하도록 개선할 방법을 찾아봐.
- 왜 적이 없이 이동할 때 활을 든 공격대기 상태로 움직이는건지 체크해봐. (이전에는 자연스럽게 이동했었어.)
결정
- 첫 질문에 대한 답: "끼임 6회"는 내 테스트 봇(TVAutoPilot) 수치였고 게임을 고친 것이 아니다. 봇은 길찾기 없이 다음 지점으로 직진만 해서 길이 꺾이면 벽을 민다. 보고서에 게임 문제처럼 읽히게 쓴 것이 잘못이었다.
- 충돌 여부는 이름 목록이 아니라 실측 크기 규칙으로 정했다 — 사람이 보고 판단하는 기준(낮다/가늘다)을 숫자로 옮긴 것이다.
- ㉕에서 PD가 "다리 옆 화로는 통과 가능"이라 해서 통과로 두었는데, 이번에 "분명히 통과하지 못할 것 같은 오브젝트는 충돌"로 지시가 바뀌어 화로를 충돌로 되돌렸다.
결과 (미커밋 · 백업 개발팀_백업/FirstRising/tv2_batchF_20260920_1930)
- ① 낮은 것 통과: 높이 0.9 m 미만이면 통과. 쓰러진 통나무(
BrokenDeadTree·Log_)는 크기와 무관하게 통과. 실측 — 캠프 통나무 0.52~0.57 m · 해골 0.52 m · 상자 0.60 m · 뼈무더기 0.18 m. - ② 확실한 것은 충돌: 가로·세로 중 하나라도 0.55 m 미만이면 통과(횃불 0.34 m · 등불 0.36 m · 표지판 0.29 m), 그 밖에는 막는다. 화로는 통과 목록에서 빼 충돌로 바꿨다(돌 화로 2.0×3.8×1.9 m · 나무 화로 0.77×1.76×0.68 m). 실측 확인: 다리목 화로 2곳·캠프 화로·통(배럴) 모두 막힘.
- ③ 다리 난간: 다리 위에서 걸을 수 있는 폭을 난간 안쪽으로 좁혔다(반폭에서 0.20 m 안쪽). 실측 — 돌다리 전체 폭 3.65 m 중 걸을 수 있는 폭 2.0 m(|x| ≤ 0.8 이동 가능 · 1.2 막힘), 나무다리 3.6 m. 중간 사고: 처음 0.45 m 를 물렸더니 통로가 한 칸 폭이 되어 "실틈 정리(침식)" 단계에 통째로 지워져 돌다리가 전부 막혔다 — 다리 칸을 침식 대상에서 제외해 고쳤고 단면으로 재확인했다.
- ④ 이동 모션: 원인은 ㉕에서 내가 넣은 조준(_Aim) 달리기 클립이었다(활을 당긴 자세). 앞 달리기는 PD가 자연스럽다고 한 원래
Bow_Run(Shinabro)으로 되돌리고, 옆·뒤·대각선만 조준이 아닌 일반 달리기(anim_Bow_Run_*)로 바꿨다. 실행 중 확인: 이동 시 base 레이어 클립 =Bow_Run, 활을 내린 자세로 달린다. - 걸을 수 있는 면적 3,949 ㎡.
남은 이슈
- 내가 검증용으로 띄운 Play 를 PD 것으로 오인해 여러 번 대기했다(PD 지적). 메모리
feedback-never-wait-on-own-play로 등재 — 검증이 끝나면 즉시 종료하고, 편집 모드가 필요하면 기다리지 않는다. - ㉕의 게임 코드 3개 파일 수정(
Player.cs·Character.cs·Joystick.cs) 유지 여부는 PD 판단 대기. - 커밋은 PD 지시 전까지 하지 않는다(BT16 ④).
추가 (㉗ · 같은 날) — 다리 난간 충돌
- PD 위치(1.3,-3.0)는 돌다리 북쪽 진입로의 석재 난간 안이었다. 원인: 다리 프리팹을 통째로 "충돌 없음" 목록에 두어 난간·교대도 통과했다.
- 고침: 다리 구조물 반폭(실측 돌다리 1.85 m · 나무다리 2.65 m) 안이면서 상판(걸을 수 있는 폭)이 아닌 칸을 막는다(
BridgeRail). 난간이 막은 면적 20 ㎡. - 실측: 조이스틱을 난간 쪽으로 계속 밀어도 x 0.8(상판 가장자리)에서 멈춘다. 예전에는 1.3 까지 들어갔다.
- 부작용과 복구: 이 변경 뒤 묘지 구역 450 ㎡ 가 고립돼 삭제됐다(길에 걸친 소품 + 좁은 틈 메우기가 입구를 막았다). 길 한가운데(중심선에서 반폭 −1.5 m 안)는 소품·틈메움으로 막지 않도록 규칙을 추가해 복구했다. 캠프·다리목·묘지·강 건너 마을·망루·숲 매복지·던전 7곳 도달 가능 재확인. 걸을 수 있는 면적 3,924 ㎡.
추가 (㉘ · 같은 날) — 비어 보이는데 막히는 자리
- PD 위치(20.7,-6.3) 캠프에서 대각선 오른쪽이 막혔다. 주변 격자를 찍어 보니 천막·통·상자 덩어리와 모닥불 덩어리가 붙어 하나의 벽이 되어 있었다.
- 원인 둘:
- 소품 충돌 상자를 보이는 경계의 0.42 배로 잡았는데, 모닥불 실측 경계가 2.13×2.37 m 라 충돌이 불·돌 무더기보다 컸다(삼발이까지 포함된 경계).
- 좁은 틈 메우기(닫힘 연산)가 2 m 간격까지 메워, 천막과 모닥불 사이처럼 눈에는 비어 보이는 통로를 막았다.
- 고침: 충돌 상자 0.42 → 0.34 배, 틈 메우기 2 m → 1 m 미만.
- 실측: 대각선 오른쪽으로 계속 밀면 (20.7,-6.3) → (18.8,-7.9) → (16.6,-10.1) → (10.2,-16.5) 로 막힘 없이 이동한다. 걸을 수 있는 면적 3,924 → 4,319 ㎡, 고립 조각 0 ㎡.
- 재검증: 캠프 통나무 3곳 통과 · 다리목/캠프 화로·통 막힘 · 가는 횃불 통과 · 돌다리 단면 |x| ≤ 0.8 통행 · 7개 지역 모두 도달 가능.
추가 (㉙ · 같은 날) — 같은 기준으로 전수 감사
- 빌더가 소품마다 판정을 남기게 했다(
Logs/bt_tv2_props.json— 막음 325 · 통과 327). 걸을 수 있는 마스크와 대조하는 감사 스크립트로 세 가지를 본다:- 길·공터 안인데 막혔고, 충돌 상자에서 1 m 넘게 떨어진 칸(= 보이지 않는 벽)
- 통과인데 높이 1.2 m·폭 0.5 m 이상인 소품(= 보이는데 지나가진다)
- 막기로 했는데 실제로는 통행 가능한 소품
- 1차 감사에서 나온 불일치와 조치:
- 성채 기둥 3.34 m·계단 5.14 m 가 통과였다 → 2 m 넘게 솟은 것은 가늘어도 막고, 충돌 상자 최소 반폭 0.25 m 를 보장, 계단을 통과 목록에서 제외.
- 길 한가운데 보호 때문에 화로·돌담·철문·울타리 4개가 통과였다 → 이 규칙을 없애고(보이는 것은 길 위라도 막는다), 대신 연결 복구를 넣었다. 시작 위치에서 8개 공터로 못 가면 0-1 BFS 로 가장 적게 뚫는 경로를 찾아 그 소품만 1.5 m 폭으로 연다(이번 빌드는 복구 0건).
- 물·다리 난간은 감사에서 정상 제외하도록 판정을 고쳤다(오탐 6곳).
- 재감사: 보이지 않는 벽 0 · 보이는데 통과 2(다리·부두 — 상판은 걸어야 하고 난간은 따로 막음) · 막기로 했는데 통행 가능 0 · 고립 조각 0 ㎡.
- 걸을 수 있는 면적 4,302 ㎡. 지정 지점(캠프 통나무 통과 · 화로·통 막힘 · 가는 횃불 통과)과 7개 지역 도달 가능 재확인. 지도 이미지 갱신.
- PD 지시에 따라 이 기준을 메모리
project-map-collision-standard로 등재했다 — 이후 맵 작업에 같은 숫자(0.9 m·0.55 m·0.34 배·틈메움 1 m·다리 난간·연결 복구)를 그대로 적용한다.
7. BT18 ㉚ — 하단 메인 메뉴 6개 배치 (2026-09-20)
PD 지시 (원문 요약)
게임 메뉴 하단에 첨부 스크린샷처럼 메인 메뉴 6개를 배치. 그라데이션 배경 + 플랫 아이콘, 이름은 왼쪽부터 성장·장비·특성·야영지·컨텐츠·길드. 스프라이트는
FirstRising/Assets/UI/Sprite에 배치 순서대로 넣어 두었고, 그라데이션이 필요하면 같은 경로의Ui_Shdow를 써도 된다. 우선 기능 연결 없이 배치만.
결과 (미커밋)
- 스프라이트 실측:
PictoIcon_1~6.Png512×512 흰색 플랫 아이콘(1 메달 · 2 갑옷 · 3 과녁 · 4 순환 화살 · 5 고양이 해골 · 6 건물),Ui_Shdow.png64×512 검정 + 알파가 위아래로 사라지는 세로 그라데이션. - 배경: Ui_Shdow 의 위쪽 절반(투명 → 검정)을 RawImage 의 uvRect 로 잘라 바닥에 깔았다. 밝은 배경에서도 읽히도록 맨 아래 92 px 검정 띠(투명도 0.55)를 더했다.
- 배치(1080×1920 기준): 막대 높이 230 · 6등분 · 아이콘 54 px(중심 y 100) · 이름 28 px(중심 y 46) · 아이콘/글자는 참고 화면과 같은 바랜 금빛(0.86,0.79,0.62 / 0.84,0.79,0.70).
- 폰트는 프로젝트의
NanumGothicBold SDF를 썼다. 모든 요소는raycastTarget=false라 조작을 막지 않는다(기능 연결 없음 — PD 지시). - 구현은 TestVisual 전용 런타임 UI(
TVBottomMenu) + 에디터 배치 명령(TVBottomMenuSetup, 메뉴BurningTimes/TestVisual2 Bottom Menu/Apply). 게임 UI 프리팹·씬 UI 는 건드리지 않았다. - 덤으로 고친 버그: PD 화면에서
TVCameraProfile.LateUpdateNullReference 가 매 프레임(100건) 나고 있었다. 카메라·컨트롤러가 다시 만들어질 때 캐시가 반쪽만 남아 생긴 문제로, 셋 다 살아 있을 때만 캐시를 쓰도록 고쳤다.
남은 이슈
- 기능 연결(각 버튼의 화면 전환)은 PD 지시 대기.
- 선택 상태 표시(참고 화면은 선택된 항목만 밝다)는 아직 없다 — 필요하면 추가한다.
- 실제 게임 UI 에 옮길지(프리팹화) 여부는 PD 판단 대기. 지금은 TestVisual2 에서만 보인다.
추가 (㉛ · 같은 날) — 하단 메뉴 2차 조정 · steam 병합 · bt/work 푸시
하단 메뉴 2차 조정(PD 지시)
- 1차 수정에서 묶음 폭을 860 으로 좁혔더니 좌우 여백이 커져, 폭 1044(좌우 여백 18 px)로 되돌리고 아이콘을 78 px 로 키워 촘촘해 보이게 했다(이름 34 px).
- 참고 이미지처럼 아이콘·글자에 금빛 세로 그라데이션을 넣었다(위 1.00,0.96,0.80 → 아래 0.76,0.56,0.26). 셰이더 없이 UI 메시 꼭짓점 색을 바꾸는
TVGradientTint(BaseMeshEffect)를 만들어 아이콘에 붙였고, 글자는 TMP 의 정점 그라데이션을 썼다.
git 작업(PD 지시: steam pull · bt/work push)
- 작업 전 확인: HEAD 가 bt/work 가 아니라 detached(9a6bf3c02a) 였다. 같은 커밋이라 안전하게
git switch bt/work로 붙였다. - 커밋 범위는 내 작업만 골랐다(310 파일 ·
c3d8c5f32d) —Assets/BurningTimes, TestVisual2 씬·맵 서브씬, PD 지시로 고친 게임 코드 3개(Player.cs·Character.cs·Joystick.cs), PD가 넣은Assets/UI/Sprite아이콘. 제외: 벤더 팩(미추적),ProjectSettings.asset(유니티가 자동 추가한 PPSv2 정의),Packages/manifest.json(유니티 자동 추가 패키지), Play 잔여 파일(Fresnel 재질·TMP 폰트 아틀라스), 로컬에서만 지워진FantasyAxeAndShield45 파일. origin/steam병합 → 충돌 0(3656328641). 내 게임 코드 수정도 그대로 살아 있음을 확인했다.- 병합 직후 컴파일 오류 6건(Google 네임스페이스 없음). 원인 실측: steam 은 PC(스팀) 빌드 브랜치라 모바일 SDK 884 파일(GooglePlayPlugins 283 · FacebookSDK 259 · GoogleMobileAds 125 · Firebase 66 · GoogleSignIn 50 · ExternalDependencyManager 20 …)을 지웠는데, 우리 에디터는 Android 타겟이라
#if UNITY_ANDROID안의using Google이 살아 있어 깨졌다. - 조치: steam 의 기능 작업은 그대로 두고 모바일 SDK 만 병합 전 상태로 복원(
237e3f0a09). 컴파일 오류 0 확인(Assembly-CSharp 2,959 타입). git push origin bt/work완료 —7d393378c4 → 237e3f0a09.
남은 이슈
- GitHub 경고:
TV2_Terrain.asset87 MB(권장 50 MB 초과). LFS 도입 여부는 PD 판단. - 로컬에만 있는 미추적 벤더 팩(Shinabro 297 MB · IdaFaber_SwordsmanGirl 710 MB · P09_Modular_Humanoid 483 MB · FantasyForest 144 MB · PolygonPilots 10 MB · GameLair 2 MB · FacebookSDK 43 MB)은 여전히 커밋되지 않았다 → 다른 PC 에서 bt/work 를 받으면 TestVisual2 의 해당 소품이 비어 보인다.
- 모바일 SDK 복원은 steam 쪽 의도(PC 빌드에서 SDK 제거)와 반대 방향이다. bt/work 를 steam 으로 병합할 계획이라면 되돌려야 한다.
추가 (㉜ · 같은 날) — 하단 메뉴 배경 브라운 · 에셋 팩 푸시
- PD "하단 메뉴 그라데이션이 너무 어두워 배경과 구분이 안 된다 → 짙은 브라운으로(레퍼런스 참고)".
참고 스크린샷 하단을 실측했다 — 아래로 갈수록 따뜻해져 맨 아래가 RGB (0.125, 0.098, 0.066) 이다.
Ui_Shdow는 순수 검정이라 색을 입힐 수 없어(곱하기라 검정 유지), 꼭짓점 색으로 직접 브라운 그라데이션을 그리도록 바꿨다 (위 알파 0 → 아래 (0.145,0.112,0.075) 알파 0.94 · 바닥 띠는 같은 색 0.35). 결과 실측 (0.133, 0.098, 0.076) 으로 참고 화면과 거의 일치. - PD "다른 PC 에서도 받아볼 수 있게 푸시해" → 로컬에만 있던 팩을 커밋해 올렸다(약 1.6 GB · 4,526 파일):
Shinabro(활 모션) · PolygonPilots(모닥불·텐트) · FantasyForest(물·바위·수풀) · IdaFaber_SwordsmanGirl · P09_Modular_Humanoid · GameLair,
그리고 steam 병합 때 사라졌던 SDK 폴더
.meta들(GUID 가 병합 전과 같은지 확인하고 복구 — 다르면 참조가 끊긴다). 사전 점검: GitHub 하드 제한 100 MB 를 넘는 파일은 없다(최대 88 MB). 50 MB 초과 5개는 경고만 뜬다. - 커밋에서 제외한 것:
Assets/_Recovery,Assets/GeneratedLocalRepo.meta,output/, 그리고Assets/FacebookSDK/FantasyAxeAndShield로 옮겨져 있던 팩 45개 — 원래 위치(Assets/FantasyAxeAndShield)가 원격에 그대로 있어 손대지 않았다(PD 확인 필요).