BurningTimesAi/공유/대화로그/FirstRising/2026-10-01.md

61 lines
9.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# FR 대화로그 2026-10-01 — BT47 아이템 드랍 시스템 초안 · BT48 아이템 드랍 · 아이템 · 능력치 시스템 구현
## BT47-FirstRising — 아이템 드랍 시스템 초안 설계 (PD 확정 → v1 기준)
**원문 요지**: 디아블로식 등급 아이템 드랍. 등급 10 · 부위 8(무기 · 보조 장비 · 갑옷 · 벨트 · 장갑 · 부츠 · 반지 · 목걸이) · 고정 스텟 + 랜덤 옵션 · 몬스터 레벨이 드랍 범위 결정 · 획득 찬스가 상위 등급 확률 증가. 전투 능력치 41종(공격 19 · 방어 12 · 보조 10) 첨부. 기존 능력치 시스템 변경 규모 병렬 점검. 방어력 공식 제안. PPT 문서화.
**PD 결정(전부 확정, 시간순)**
- 신성 = 거리 구분 없이 모든 타격에 얹히는 방어 무시 순수 피해(일반 최종 피해 × %, 치명타와 함께 커짐). 회피 · 막기 · 보호막은 신성도 막음. 몬스터 신성은 보류.
- 방어력 공식: 잔몹 · 보스 별도 상한 없음, 로그형 단일 곡선 `R = Rmax × (1 − e^(−(방어력÷피해)/s))`. 큰 한 방에 방어력이 거의 안 듣는 점 인지하고 "우선 이대로". 손잡이는 GlobalValue 에서 PD 조절.
- 공격 속도 = 무기별 발동 공격 쿨타임 · 스킬 쿨타임 = 액티브 스킬 전부(분리). 기본 공격 사거리 = 무기 스킬 사거리 증감.
- 피해 증가량 = 최종 피해 곱% · 공격 증가량 = 공격력 수치 %. 관통 = 공격력 × 관통% 를 방어력만 무시하고 가산. 고정 피해 · 고정 피해 감소 = 최종 연산 뒤 정수 가감. 막기 = 모든 부위 · 확률 · 50% · 고정 피해 앞.
- 모든 스킬 레벨 = 로비 스킬 레벨 가산, 상한 테이블 최대 +99, 선형 외삽. 획득량은 경험치 · 골드 · 아이템 셋 분리.
- 반지 1 · 목걸이 1. 보조 장비 8종(방패 · 화살통 · 마법책 · 단검 · 투척 무기 · 오브 · 보조 무기 · 없음=양손 취급 +25%, 옵션 없음). 허용 무기 표 그대로. 특정 무기는 보조 슬롯 잠금(양손 컨셉).
- 등급은 성능 차이만(세트 별도). 모든 아이템은 고정1 하나 + 랜덤 옵션은 부위별 옵션 풀. 고정1 능력치도 풀에 나올 수 있되 값은 고정1 의 50% 상한. 물리/마법 → 근접/원거리 대체. 풀은 현행 유지 후 조정.
- 몬스터 방어력 적용 안 함(1 고정). 투사체 발사 형태는 전부 원거리 판정.
**산출물**: `공유/기획/FirstRising/시스템기획/2026-10-01_FR_아이템드랍시스템_초안_v0.md`(§7 에 확정 목록) · `…_초안_v0.pptx`(21장) · `tools/build_item_drop_v0.py`.
## BT48-FirstRising — 아이템 드랍 · 아이템 · 능력치 시스템 구현
**원문 요지**: "위 기획 변경 사항을 반영해서 멈추지 말고 아이템 드랍 시스템 및 아이템 시스템, 능력치 시스템 구현을 진행. 작업 목표: 디아블로 스타일의 아이템 파밍 시스템 구현 및 검증. 필드에 몬스터를 처치 시 아이템이 드랍되고, 인벤토리에 습득한 아이템의 옵션을 확인할 수 있어야. 완료까지 중단 없이 자율 반복."
**결과(실측 · 2026-10-01 02:24 검증 Play 2차 · 에디터 로그 오류 0)**
- 처치 → 드롭 → 습득 → 인벤토리 → 정보 창 → 장착 → 능력치 반영이 한 줄로 동작한다.
- 시험 드롭 8부위 8개 습득 · 옵션 생성(등급별 개수 · 부위 풀 · 고정1 50% 상한) · 저장(LocalPlayer.txt) · 다음 Play 에서 유지.
- 8부위 동시 장착(반지 · 보조 장비 · 목걸이가 서로 밀어내지 않음). 방어력 5 → 155, 생명력 510 → 1187(계산) / 617 → 1543(캐릭터), 공격력 52 → 76.
- 엔티티 반영: DefenceComponent(방어력 155 · s 0.5 · Rmax 0.8 · 저항 · 고정 피해 감소 5), HealthComponent(관통 11% · 고정 피해 4 · 원거리/스킬 피해 12%/8% · 무기 거리 태그).
- 확률 모의(잔몹 300 · 정예 100 · 보스 5): 9 · 32 · 15 드롭(기대 9 · 25 · 15). 실전(임시 100%): 처치 14 → 드롭 14 → 걸어가 습득 13.
- 정보 창: 이름 `[전설] 목걸이 Lv18` · 능력치 칸 `+16%` · 설명 칸 `고정 생명력 +16% / · 신성 저항 +4% / …`. 바닥 표시는 등급 색 기둥 + 한글 이름표(부위 · 등급 · Lv).
- 시험으로 생긴 아이템 21개는 저장 파일에서 걷어내고 장착을 원래 활(id 1)로 되돌렸다(백업 세션 scratchpad `save_backup_1001`). GlobalValue 의 임시 100% 는 3% 로 원복 · 자산 dirty 아님 확인.
**만든 것(FR · 작업 트리 · 미커밋)** — 새 스크립트 8(BT_Visual) · 자산 2(`Resources/BT/GlobalValue.asset` · `ItemDatabase.asset`) · 원본 수정 9곳(날짜 · 이유 주석). 목록은 인수인계서 §2.
**보류(스킬 시스템 수정 필요 · 값은 저장 · 합산되나 적용 안 됨)**: 공격 속도(무기 공격 쿨타임 분리 · Q20) · 기본 공격 사거리 · 투사체 수 · 범위 공격 데미지 · 모든 스킬 레벨(+99 외삽) · 상태이상 저항 · 흡혈 효과 · 경험치/골드 획득량 · 조건부 옵션(7등급↑ 풀 섞기) · 양손 무기 슬롯 잠금 · 보조 장비 ↔ 무기 허용 검사(드롭 때만 걸러지고 장착 때는 검사 없음).
**남은 이슈**
- 반지 · 보조 장비는 원본 ItemTable 에 정의가 없어 목걸이 정의(아이콘 · 이름)를 빌린다. 장비 창(ItemPageUI)의 장착 슬롯이 원본 부위 기준이라 반지 · 보조 장비가 목걸이 슬롯 자리에 겹쳐 보일 수 있다(미확인).
- 등급 틀(아이콘)은 원본 6종뿐이라 1~10 을 가까운 것으로 맞췄다.
- 드롭 기둥의 등급 색이 화면에서 옅다(URP Unlit `_BaseColor` · `_Color` 둘 다 넣었으나 셰이더 단계 999 영향 가능) — 미확인.
- 몬스터 레벨 = 구역 레벨 표(TVLootDrops.areaLevels, 기본 Lobby=1)로만 정한다. 다른 필드 열쇠별 레벨은 PD 가 인스펙터에서 넣는다.
- Play 중 에디터가 재질 3개(ModularAura07 · Golem RocksBack LOD2 · Rooftiles_Shiny)를 덧건드렸다 — 내 변경 아님, 건드리지 않는다.
## BT48 후속 (10-01 09:28 지시 → 22:59 완료 · FR `bt/work` `dc45353d72` push)
**원문 요지**: ① 기본 드랍률 10% 내외로 ② 드랍된 아이템이 여전히 예전 옵션 시스템을 쓰는 것 같다 → 바뀐 옵션 시스템 적용, 인벤토리의 기존 아이템도 동일하게 수정 ③ 활 공격의 기본 투사체 수 1 · 마무리되면 푸시.
**결과(실측 · 3차 검증 Play 22:56 · 에디터 로그 오류 0)**
- ① 일반 몬스터 드롭 3% → 10%(코드 기본값 + GlobalValue 자산). 실전 처치 25 → 드롭 3.
- ② 원인: 정보 창 '등급 스킬' 줄 목록과 능력치 합산이 예전 등급 옵션(ItemOptionTable)을 그대로 쓰고 있었다. 새 장비는 줄 목록에 랜덤 옵션을 한 줄씩 보이고 예전 옵션은 표시 · 적용하지 않는다. 예전 장비는 로비 진입 때 한 번 변환(`TVItemGenerator.ConvertLegacy` · 등급 6단계 → 1·3·4·5·6·7 · 아이템 레벨 = 캐릭터 레벨 · 옵션 새로 굴림) — PD 저장의 장비 2개 변환 확인.
- ③ 무기 스킬 테이블 5종의 활 행 SpawnCount → 1(파일당 24행) · 테이블 프리팹 4종 다시 굽기(GradeWeaponSkillTable 은 프리팹 없음). 활을 든 상태의 실행 중 확인은 못 했다(검증 때 장착 무기가 1026) — 구운 프리팹의 활 블록 값 1 은 확인.
- 시험 중 주운 아이템 1개는 저장에서 걷어냈다. 변환된 장비 2개 + PD 가 주운 1개는 그대로.
**사고**: 09:28 에 에디터가 Play 중인 것을 PD 플레이로 판단해 13시간 넘게 대기 보고만 반복했다. PD 지적 "지시했으면 플레이를 중단하고 즉시 진행" → 메모리 `feedback_stop_play_when_instructed.md`.
## 아이콘 생성 시험 (10-01 · ComfyUI · 결정 대기)
- PD 질문: ComfyUI 에 Claude 연동이 됐는가 → 내 연동은 API 호출이라 워크플로우에 노드가 없다. Claude 노드(제휴 · 커스텀)는 반대 방향(ComfyUI → Claude API)이고 키가 필요 → PD 가 노드 제거, "그림을 직접 보고 다듬는 반복"으로 진행하기로.
- civitai 143301 "Game Icon Institute anfg v3"(SD1.5 LoRA · 트리거 `game icon institute, game icon, ahfg` · 강도 0.6): 방어구 · 장신구 · 방패 · 오브는 사이트 풍에 가깝고 투명 배경(InspyrenetRembg) 정상. 무기(둔기 · 활 · 지팡이) · 화살통은 실패. 긴 문장 프롬프트는 풍이 빠진다. 권장 기반(Game Icon Institute v3.0 SD1.5)은 PC 에 없어 difconsistency 로 대체.
- `gameIconInstitute_v4XL`(SDXL)은 그 LoRA 와 못 쓴다. 스타일 태그 4종 중 xieshi(사실풍 · 회색 배경) · 3dicon(점토풍)을 시험.
- 산출물: `공유/기획/FirstRising/아이템/gii_site/`(고른 14종 투명 PNG · 시트) · `gii_trial/` · 스크립트 `comfy_gii_trial.py` · `comfy_gii_xl.py` · `comfy_gii_site.py`. FR 프로젝트에는 넣지 않음.
- 결정 대기: 다음 방향(권장 기반 체크포인트 내려받기 / 실패 4종을 XL 로 형태 잡고 LoRA 로 풍 입히기 / 지금 기준으로 나머지 채우기).