Project_WL/Assets/WL/Settings/WL813b_Boss12_Measured.md

21 KiB
Raw Blame History

WL-813b — 힘민지 보스 12종 · WL_Nature 군중 전투 실측 (코드 0 · 읽기 전용 조사)

발주 WL-813b(PD #813) · worktree E:\NerdNavis\WL_wt\systems · base main@abcd03865 이 문서는 초안·실측 기록이다. 게임이 읽는 테이블·프리팹·씬·코드는 한 줄도 바꾸지 않았다. 모든 수치는 이 worktree 의 파일에서 직접 읽은 값이다. 읽지 못한 것은 「미확인」으로 적었다.

0. 실측 방법 · 이 문서를 읽을 때 알아야 할 규칙 3가지

규칙 근거 (파일:줄)
보스 프리팹 Addressables 키 = Assets/Res_Addr/Mobs/{s_MonsterPrefab}.prefab — 테이블의 FieldBoss/Anubis 에 코드가 접두/확장자를 붙인다 Assets/Script/Table/IngameStage/table_monsterlist.cs:191
런타임 크기 = 테이블 f_DefaultScale 가 프리팹 루트 스케일을 덮어쓴다 Assets/Script/Character/Mob/MobActor.cs:87 (transform.localScale = f_DefaultScale * Vector3.one)
몹 최종 스탯 = MonsterList.f_Base*Rate × MonsterAppear.n_Monster* — 보스 HP/ATK 는 스포너 행이 있어야 정해진다 Assets/Script/Util/MyValue.cs:370-371

부속 경로 규칙(전부 코드에서 확인): 투사체 Assets/Res_Addr/Projectile/{name}.prefab(ProjectileInfo.cs:48) · 인디케이터 Assets/Res_Addr/Obj/{name}.prefab(IndicatorInfo.cs:40) · 이펙트 Assets/Res_Addr/Effect/{name}.prefab(InGameInfo.cs:345).


1. A — 보스 12종 실측 표

MonsterList.jsone_MonsterType == "Boss" 행은 정확히 12행(10001~10012) 이고, 12개 모두 Assets/Res_Addr/Mobs/FieldBoss/ 에 프리팹이 있으며 해당 Boss_*.cs 가 붙어 있다.

1-1. 테이블 · 프리팹 (실측)

ID 프리팹 (Addressables 키 접미) 스크립트 scale HP배율 ATK배율 사거리/추적 애니메이터 패시브
10001 FieldBoss/Lusif Boss_LusifActor 3 ×10 ×2 5 / 16 Lusif_Animations_Check 710031 DMG_TO_HP(흡혈 0.5%)
10002 FieldBoss/Lusif_B Boss_LusifB_Actor 3 ×10 ×50 5 / 16 Lusif_Animations_B 710032 PerHPBuff_AASPD
10003 FieldBoss/Mega_Ice_Golem Boss_IceGolem 8 ×10 ×50 10 / 16 Ice_Golem_Animations_Check 710033 DMG_DECREASE(피해 15%↓)
10004 FieldBoss/Minotos Boss_Minotos 3 ×15 ×25 3.5 / 16 Mintos_Animations_Check 710034 Revive30(부활 HP30%)
10005 FieldBoss/Golem_Child Boss_GolemChild 2 ×20 ×30 3.5 / 50 Golem_Child_Animations_Check 710035 StartleBehind(뒤로 순간이동+스턴)
10006 FieldBoss/Anubis Boss_Anubis 1.5 ×20 ×30 3.5 / 50 Anubis_Animations_Check 710036 PerHPBuff_AMSPD
10007 FieldBoss/Queen_Undead Boss_QueenUndead 1.5 ×20 ×30 2.5 / 20 Queen_Undead_Animations_Check 710037 DeadSkin(스킬피해 50%↓)
10008 FieldBoss/Flower Dryad Boss_FlowerDryad 1 ×16 ×16 6 / 15 Flower Dryad_Animations_Check 710038 RageOfFairy
10009 FieldBoss/Angez_B Boss_Angez_B 3 ×1 ×5 6 / 15 Angez_Boss 710039 SummonMob(ID253 ×3)
10010 FieldBoss/Angez_C Boss_Angez_C 3 ×12 ×7 6 / 15 Angez_Boss 710040 HellfireFlames(상시 화염 장판)
10011 FieldBoss/Brother_Penguin_C Boss_BrotherPenguin 3 ×13 ×11 4 / 15 Brother_Penguin_Boss 710041 SummonMob(ID290 ×3)
10012 FieldBoss/Shaga_B Boss_Shaga 5 ×9 ×11 6 / 15 Forest_Shaga_Boss 710042 AcidicLiquid

10009 Angez_B 만 f_BaseHPRate = 1 (나머지 9~20). 테이블 미조정으로 보인다 — 보스로 쓰려면 xlsm 수정 필요. 공통: 12종 전부 n_DropItem = 0 (처치 보상 없음) · f_BaseATKSpeed = 1 · f_BaseMOVSpeed = 2 · f_BaseDEFRate = 1.

1-2. 패턴 요약 (6훅 Set / Init / Update / Get_Skill#Dmg / Get_Skill#Pos / Set_Skill#Projectile 에서 읽은 실제 행동)

공통 골격 = BossMobActor.cs — 스킬1 은 HP 90% 이하, 스킬2 는 HP 70% 이하에서 해금되고(Get_Damage), 둘 다 준비되면 랜덤 선택. 스킬 종료 시 반대편 스킬 쿨을 최소 0.5s 로 강제해 연속 발동을 막는다.

ID 스킬1 스킬2 이동성 예고(인디케이터/차징)
10001 Lusif 전방 2.5m 인디케이터 1s → 관통 장판 (쿨 8s, 배율 3.5) 거리 10m 초과 시만 · 0.8s 간격 5연사 (쿨 1.5s, 1.5) 없음 인디케이터 1
10002 Lusif_B 4s 차징 + 인디케이터 → 광역 (쿨 12s, 3.5) 4s 차징 → 인디케이터 2-1 → 1s → 2-2 2단 광역 (쿨 20s, 5.0) 없음 인디케이터 3 + 차징 4s
10003 IceGolem 타깃 2m 앞까지 돌진(속도 5) → 점프 → 착지 광역 + 스턴 2s (쿨 8s, 3.5) 3s 차징(인디케이터가 타깃 추적 회전) → 전방 18m 직선 돌진 + 넉백/스턴 (쿨 10s, 3.5) 최상 (돌진 2종) 인디케이터 2 + 차징 3s
10004 Minotos 1s 차징 → 근접 광역 (쿨 15s, 1.2) 1s → 자버프 이속+50% 공속+50% 15s (쿨 10s ※프리팹값 · 코드 기본은 25s) 중 (자버프) 없음(차징 이펙트만)
10005 GolemChild 타깃 위치 인디케이터 2s → 바위 낙하 → 2s 뒤 후속 폭발(2단) (쿨 8s, 3.8/1.2) 1s 차징 장판 → 뒤 15m 순간이동 → 전방 3m 간격 5연속 장판(0.5s) (쿨 8s, 3.0/2.0) 최상 (워프 2종 + 패시브 순간이동) 인디케이터 4
10006 Anubis 3s 회전 차징(가속) → 모델 은신 후 칼날 폭풍으로 타깃 추적 이동 5s (쿨 18s, 2.2) 3s 차징 → 뒤·우·앞 5m 점프 3회 × 2연사 = 6발 (쿨 15s, 3.0 ※프리팹값 · 코드 2.8, 투사체 속도 15) 최상 (은신 추격 + 점프 3회) 이펙트 5 + 차징 3s
10007 QueenUndead 거리 15m 이상일 때만 · 침묵/마나번(SilenceCurse 5s, 마나 2%/s) (쿨 6s) 2s 차징 + 인디케이터 → 광역 → 피격 시 타임스케일 연출 + 플레이어 7.5m 밀어냄 (쿨 18s, 3.2) 낮음 인디케이터 1 + 차징 2s
10008 FlowerDryad 3s 차징 → 주변 3m 아군 몹 회복. 프리팹에서 Skill1Heal = 0 이라 즉시 회복은 꺼져 있고 6s 도트힐(1s당 최대HP 1%)만 돈다 (쿨 20s) — s_Porjectile2 = None 3s 차징 + 인디케이터 → 독 장판(5s) + 에어본 1.5s (쿨 18s, 5.2) 없음 인디케이터 1 + 차징 3s
10009 Angez_B 3s 차징 → 플레이어 추적 낙뢰 10회(0.5s 예고 → 0.5s 발동, 총 10s) + 스턴 0.3s (쿨 20s, 2.8) 3s 차징 + 방향 인디케이터 → 전방 광역 + 스턴 0.2s (쿨 15s, 1.2) 없음 인디케이터 2 + 차징 3s
10010 Angez_C 3s 차징 → 추적 메테오 8회 + 화상 (쿨 12s, 3.2) 3s 차징 + 방향 인디케이터 → 전방 화염 광역 (쿨 18s, 1.5) 없음 인디케이터 2 + 차징 3s + 패시브가 1s마다 랜덤 위치에 화염 장판
10011 BrotherPenguin 3s 차징 + 인디케이터 → 광역 냉기 + 넉백(공속/이속 30%↓ 3s) (쿨 12s, 3.2) 3s 차징 → 보호막 최대HP 25% · 12s, 보호막 도는 동안 쿨 정지 = 딜체크 구간 (쿨 20s, 5.0) 없음 인디케이터 2 + 차징 3s
10012 Shaga 곡선 투사체가 근처 랜덤 낙하 → 지면 냉기 장판 6s (쿨 18s, 1.6) 3s 차징 → 무적 소환물 2기(ID176 Shaga_A · 스탯 50% 계승 · 12s) (쿨 20s) — s_Porjectile3 = None 낮음 인디케이터 1 + 차징 3s

1-3. WL 로드 가능 여부 (실측 · 파일시스템 정적 검사)

전 항목 12/12 통과 · 누락 0:

검사 결과
프리팹 존재 (Assets/Res_Addr/Mobs/FieldBoss/*.prefab) 12/12 존재
Boss_*.cs 컴포넌트 부착 12/12 부착 (Shaga 는 NoSeeLongDMob 도 함께)
missing script (해결 불가 GUID) 0개 — 걷어낸 SDK 참조 없음
Animator + Controller 12/12 연결
스크립트가 부르는 애니 상태 ↔ 컨트롤러 상태 누락 0 (AnimationPlay 인자 전수 대조 · Actor.cs:2027Animator.Play(이름))
머티리얼 셰이더 전부 MK/Toon/URP/Standard/Simple (Assets/_MK/MKToon/Shader/URP/Standard/StandardSimple.shader) — URP 전용 패스 보유(RenderPipeline=UniversalPipeline · UniversalForward) → URP 17.3 에서 정상. 셰이더 없음/에러 머티리얼 0
투사체 s_Porjectile1~3 + 코드 직접 호출분 전부 존재
인디케이터 (Load_Indicator 인자) 전부 존재
이펙트 (Show_Effect 인자) 전부 존재
소환 대상 몹 (176 Shaga_A · 253 Teruru_Ac · 290 Ice_Cube_B) 전부 MonsterList 에 존재
Addressables 등록 그룹 Mobs 의 폴더 엔트리 Assets/Res_Addr/Mobs 하위 — 12종 전부 포함

추가 실측 — 스크립트가 null 검사 없이 쓰는 오브젝트 참조가 전부 할당돼 있다: Boss_GolemChild.tf_Skill1Pos(Set 에서 .position 접근) · Boss_QueenUndead.go_attackeffect(Set 에서 .SetActive) · Boss_Minotos.gos_attackeffect(2개). 셋 다 비어 있으면 스폰 즉시 NullReference 가 나는 자리인데, 프리팹에 fileID 가 들어 있다.

Addressables 주의: Mobs 그룹은 폴더 1개를 통째 등록한 형태(AssetGroups/Mobs.assetm_SerializeEntries 1건)라서 개별 주소가 아니라 폴더 경로 기반 주소로 빌드된다 — 코드가 만드는 키(Assets/Res_Addr/Mobs/....prefab)와 형태가 일치한다. 런타임 카탈로그로 최종 확인한 것은 아니므로 이 항목만 「정적 근거 · 런타임 미검증」.

1-4. 크기 · 박진감 · 준비 비용

박진감 = 패턴 다양성(0~3) + 예고(0~3) + 이동성(0~3) = /9. 크기는 f_DefaultScale(런타임 확정값)과 프리팹 스킨메시 AABB×누적스케일로 낸 높이 「추정」.

ID 보스 scale 추정 높이 NavMeshAgent 반경(×scale) 박진감 준비 비용
10006 Anubis 1.5 「미확인」(AABB 이상치 20.0m — 스킬1 폭풍용 보조 스킨메시로 추정) 0.32 → 0.48 9/9 S
10005 Golem_Child 2 ~2.3 m 0.25 → 0.50 9/9 S
10003 Mega_Ice_Golem 8 ~2.4 m 0.11 → 0.88 8/9 S
10010 Angez_C 3 ~1.2 m 0.25 → 0.75 6/9 S
10007 Queen_Undead 1.5 ~3.6 m 0.46 → 0.69 6/9 S (내장 파티클 28)
10002 Lusif_B 3 ~3.9 m 0.35 → 1.05 5/9 S
10009 Angez_B 3 ~1.2 m 0.10 → 0.30 5/9 M (HP배율 1 → 테이블 수정 필요)
10011 Brother_Penguin_C 3 ~3.4 m 0.37 → 1.11 5/9 S
10012 Shaga_B 5 ~1.9 m 0.28 → 1.40 5/9 S
10001 Lusif 3 ~3.9 m 0.35 → 1.05 4/9 S
10008 Flower Dryad 1 ~2.2 m 0.50 → 0.50 4/9 M (단독 보스전이면 스킬1 힐이 무의미 — 군중 동반 전제)
10004 Minotos 3 ~2.5 m 0.23 → 0.69 3/9 S (내장 파티클 16)

「미확인」 — 삼각형 수/드로우콜: FBX 메시 통계는 Unity 없이 못 읽는다. AgentScripts/WL813b_BossProbe.cs 가 에디트 모드에서 보스별 tri/머티리얼 수를 찍도록 만들어 뒀다(실행은 다음 태스크). 렌더러 수만 실측: Brother_Penguin_C·Golem_Child 가 SkinnedMeshRenderer 5개(나머지는 1~2개)라 드로우콜이 가장 크다.

1-4b. ⚠ 보스 스킬 수치는 테이블이 아니라 프리팹 인스펙터 값이다

Boss_*.cspublic float Skill1CoolTime = 18f; 같은 필드는 전부 [SerializeField] 대상이라 프리팹에 직렬화된 값이 코드 기본값을 덮는다. 12종 프리팹의 직렬화 값을 코드 기본값과 전수 대조한 결과, 어긋나는 곳 4군데를 찾았다.

보스 필드 프리팹(실제 동작) 코드 기본 의미
10004 Minotos Skill2CoolTime 10 25 자버프가 2.5배 자주 — 실제로는 거의 상시 버프 상태
10006 Anubis Skill2Dmg 3.0 2.8 점프 연사 배율 상향
10007 Queen_Undead Skill2BackDuration 2 1.5 플레이어를 밀어내는 시간이 더 길다
10008 Flower Dryad Skill1Heal 0 0.1 즉시 회복이 꺼져 있다 — 힐 스킬이 도트힐만 남았다

또, 프리팹이 필드 추가 이전에 저장돼 직렬화 자체가 없는 필드들이 있다(이 경우 코드 기본값이 그대로 쓰인다): Boss_GolemChild.Skill1AfterIndicator / Skill2AfterIndicator / DmgAfterSkill2 · Boss_FlowerDryad.Skill1ChargingTime / Skill2AirborneTime · Boss_BrotherPenguin.Skill1KnockBackTime / Skill1KnockBackSpeed / Skill2Dmg / Skill2ChargingTime. 전부 코드 기본값이 유효한 자산을 가리켜 문제는 없지만, 튜닝 시 프리팹을 저장하면 값이 고정된다는 점을 알고 만져야 한다.

보스 튜닝은 xlsm 이 아니라 프리팹 수정이다(C45 예외 구간). 데이터 값을 테이블로 옮기는 것은 별도 과제.

1-5. 첫 보스 후보 2종 (추천)

  1. 10006 Anubis — 1순위. 근거: ① 박진감 9/9 — 3s 회전 차징 → 모델을 지우고 칼날 폭풍이 되어 플레이어를 5초간 추격 → 3방향 점프 6연사. PD 가 말한 "다이나믹하고 박진감 넘치는" 에 그대로 맞는다. ② f_DefaultScale = 1.512종 중 가장 작은 축 — 세로 1080×1920 에서 보스가 화면을 가리지 않는다. ③ 준비 비용 S — 인디케이터를 아예 안 쓰고(누락 위험 0) 이펙트 5종·투사체 3종·애니 상태 4종이 전부 존재. ④ 스킬2 가 제자리 연사가 아니라 점프로 위치를 바꾸며 쏴서 한 손 조작에서도 회피 동선이 생긴다. 주의: f_BaseChaseRange = 50 — 아레나 밖까지 따라온다. 아레나에 쓰려면 15~20 으로 낮추는 편이 좋다(xlsm).

  2. 10005 Golem_Child — 2순위. 근거: ① 박진감 9/9, 패턴 다양성은 12종 중 최고 — 2단 낙석(예고 → 낙하 → 후속 폭발), 순간이동 후 전방 5연속 장판, 패시브(StartleBehind)로 플레이어 뒤 순간이동+스턴까지 3층. ② scale 2 로 세로 화면에 적합. ③ 인디케이터 4종·투사체 4종 전부 존재, 애니 상태 4/4. ④ 인디케이터 기반 예고가 촘촘해 "피하는 재미"를 데이터만으로 조절할 수 있다(모든 시간값이 public float). 주의: f_BaseChaseRange = 50 동일 · SkinnedMeshRenderer 5개(드로우콜).

(참고 · 3순위) 10003 Mega_Ice_Golem 은 돌진 2종으로 액션감이 가장 크지만 f_DefaultScale = 8 이라 세로 화면에서 카메라 조정 없이는 화면을 다 덮는다 — 카메라 작업이 붙는 뒤 순번으로 둔다.


2. B — 군중 전투 현황 (WL_Nature)

2-1. 스포너 시스템 (Assets/Script/Mgr/MobControlMgr.cs)

항목 실측
스폰 모드 4종 Random(지정 몹을 max 마리 랜덤) · Order(순서 반복) · Phase(한 종류씩, 1마리 죽으면 다음 종류 1마리) · PhaseAllKill(그 종류를 전멸시켜야 다음 종류 일괄 생성) — MobControlMgr.cs:99-132
풀 크기 Random/Order = n_MaxMonsterCount × 2 를 미리 생성 · Phase 계열 = 몹 종류 수 × n_MaxMonsterCount (:102, :108, :123-128)
초기 활성 어떤 모드든 dic_actors[0] 에서 n_MaxMonsterCount 마리만 켠다 (:52-53)
리젠 사망 후 f_SpawnerDelay 초 뒤 (:170-225) · Random 은 죽은 것 중 랜덤 1마리 부활, Order 는 순번, Phase 는 다음 종류 1마리, PhaseAllKill 은 killmobcount == n_MaxMonsterCount 일 때 다음 종류 일괄
스폰 위치 스포너 원점 반경 MobGenRange(WL_Nature 전부 10) 안 NavMesh 랜덤 (:65-75) · MapData.spawnRequireReachableFromPlayer = 1 이라 WL_Nature 는 도달 가능 표집(#764) 사용
맵 ↔ 스포너 연결 MonsterAppear.json 에 맵 컬럼이 없다. 맵 프리팹의 MobControlMgr.SpawnerID 가 행을 가리킨다

2-2. WL_Nature (BattleMapConfig n_MapID = -1 · s_Scene = WL_Nature · 프리팹 Assets/Res_Addr/Map/WL_Nature.prefab)

  • 스포너 19개(SpawnerID 1~19, 전부 MobGenRange = 10) · MapData 1개 · FieldBossData 0개 → 지금 WL_Nature 에는 보스가 한 마리도 안 나온다.
  • 플레이어 시작 지점 Portal_Start = (115, 0, 10) (부활 지점도 동일 좌표).
  • NavMesh = Assets/WL/Settings/WL_Nature_NavMesh.asset (존재).
  • 스포너 좌표(x, y, z) 와 구성:
SP 좌표 모드 동시 리젠
1 (115, 0.4, 22) Random 15 4.0s Batty_A~D (101~104, scale 1.5)
2 (147, 2.6, 30) Order 10 3.8s Cute_Spider_A~C (105~107, 2.0)
3 (71, 0.3, 18) Order 10 3.6s Golem_A/B (1014·1015 — Elite), 2.5
4 (159, 0.9, 22) PhaseAllKill 5 3.4s Prizon_01~03 (111~113, 0.9)
5 (103, 0.2, 74) Phase 10 4.0s Whispa_A~D (114~117, 1.25)
6 (55, 0.2, 38) Random 5 3.4s Devilu_A~C (118~120)
7 (191, 0.3, 42) Random 5 3.4s Magic_Mirror_A~C (121~123)
8 (199, 0.7, 2) Random 5 3.4s Magicbook_A~E (124~128)
9 (47, 0.1, 62) Random 5 3.4s Mimix_A~E (129~133)
10 (155, 1.3, 70) Random 5 3.4s Beez ×3 (134~136)
11 (19, 0.2, 10) Random 5 3.4s Devil_Tree ×4 (137~140, 0.35)
12 (195, 0.3, 50) Random 15 3.4s Planta ×5 (141~145)
13 (143, 0.4, 110) Random 20 3.4s Rabby ×9 (146~154)
14 (91, 0.2, 90) Random 5 3.4s Turnipa ×3 (155~157, 0.45)
15 (67, 0.1, 110) Random 5 3.4s Big_Boar ×3 (158~160)
16 (195, 0.1, 90) Random 10 3.4s Forest_Butterfly ×4 (161~164)
17 (19, 0.6, 90) Random 10 3.4s Platopo ×3 (165~167, scale 5)
18 (15, 0.1, 110) Random 15 3.4s Porin ×5 (168~172)
19 (215, 1.0, 90) Random 15 3.4s Racco ×3 (173~175)
  • 동시 생존 몹 = 175마리 (각 스포너 n_MaxMonsterCount 합) · 인스턴스 생성 = 375개 (풀 포함).
  • 시작 지점에서 가까운 스포너: SP1 32.0m → SP2 37.7m → SP3 44.7m → SP4 54.4m.

2-3. 화면 내 적 수 「추정」

스포너 간 최근접 거리 44.0m(SP1↔SP4), 스폰 반경 10 → 군집 반지름 10m 원끼리 최소 24m 떨어져 절대 겹치지 않는다. 따라서 화면에 동시에 보이는 적 = 그 자리 스포너 1개의 n_MaxMonsterCount, 즉 5 / 10 / 15 / 20 마리. 시작 직후 첫 교전은 SP1 의 Batty 15마리다. 「미확인」 — 실제 카메라 FOV·거리(세로 화면 화각)는 RealCamera 값이 런타임 결정이라 정적으로 못 읽었다. 위 수치는 스포너 기하만으로 낸 상한이다.

2-4. 지금 데이터의 문제 (실측 · 그대로 쓰면 리듬이 안 나온다)

  1. SP4~SP45 의 n_MonsterATK / n_MonsterDEF / n_MonsterHP 가 전부 4 — 자리표시자 값이다. 몹 최종 HP = f_BaseHPRate × 4 라 거의 즉사한다.
  2. SP2 n_MonsterHP = 99999, SP3 n_MonsterATK = 99999 — 테스트 값이 남아 있다. 시작에서 37.7m 거리의 SP2 는 사실상 못 죽이는 벽이다.
  3. SP1 만 정상 튜닝(Lv1 · ATK 10 · HP 300 · n_DropReward 9700001). SP1 의 n_MonsterDEF = -10 도 음수다.
  4. 스포너 ID 1~19 는 13개 맵이 공유한다WL_Nature, WL_Nature02~10, WL_Start, Map_C01(1~13 중복 사용), Map_C02(14~24). 기존 1~19 행을 고치면 13개 맵이 전부 바뀐다. WL_Nature 전용 리듬은 새 SpawnerID 로 가야 한다.
  5. 보스를 참조하는 MonsterAppear 행이 0개 — 46행 중 보스 ID(10001~10012)를 쓰는 행이 없다. 보스가 등장하는 곳은 Map_C01 / Map_C02FieldBossData 컴포넌트뿐이고(각 9개 · 10001~10009 · 전부 n_SpawnerId = 1 · RegenTime = 10 · 마지막 10009 만 isChapterBoss = 1), 10010·10011·10012 는 어디에도 배치돼 있지 않다.

3. 다음 (초안 파일)

  • 군중 프리셋 → Assets/ResWork/Table/Export/_WL813b_MonsterAppear_Draft.json
  • 보스 아레나(+ 필요한 코드 변경 6건 목록) → Assets/ResWork/Table/Export/_WL813b_BossArena_Draft.json
  • 로드 검증 프로브 → AgentScripts/WL813b_BossProbe.cs (unity command run_script --file AgentScripts/WL813b_BossProbe.cs --entry WL813b_BossProbe.Edit --timeout 300)

두 초안 모두 게임이 읽지 않는다. 테이블 로더는 폴더를 훑지 않고 프리팹의 TextAsset 참조만 읽는다(Assets/Script/Table/Mission/table_missionbase.cs:5,12) — _WL813b_* 를 참조하는 table_* 는 없다. 실제 적용은 butler.xlsm 동기화 후 재익스포트가 선행돼야 한다.