61 lines
9.1 KiB
Markdown
61 lines
9.1 KiB
Markdown
# 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 로 풍 입히기 / 지금 기준으로 나머지 채우기).
|