# DS-전투분석 저장소 던전 스토커즈(DungeonStalkers) 전투 시스템 종합 분석 저장소입니다. ## 프로젝트 개요 ### 목적 본 프로젝트는 언리얼 엔진 5.5.4 기반의 던전 스토커즈 전투 시스템을 체계적으로 분석하고 문서화하여 다음 목표를 달성합니다: - **밸런스 분석**: 10명 스토커의 전투 능력 비교 및 밸런스 검증 - **시스템 문서화**: Gameplay Ability System 기반 전투 로직 상세 분석 - **정기 모니터링**: 패치/업데이트 시 변경사항 추적 및 영향도 분석 - **팀 공유**: 기획자, 프로그래머, QA가 공통으로 참고할 수 있는 기술 문서 ### 분석 대상 - **10명의 스토커**: Hilda, Urud, Nave, Baran, Rio, Clad, Rene, Sinobu, Lian, Cazimord - **전투 시스템 요소**: - 기본 공격 타이밍 및 피해 배율 - 스킬 시스템 (Gameplay Ability System) - 캔슬 메커니즘 (Activation Order Group + ANS_SkillCancel_C) - 애니메이션 노티파이 시스템 - 캐릭터 스탯 및 속성 ## 분석 방법론 ### 1. 데이터 추출 (Unreal → JSON) 언리얼 에디터의 커스텀 익스포터를 사용하여 게임 에셋을 JSON 형식으로 변환합니다. ``` Unreal Engine Assets → Custom Exporter → JSON Files ``` **익스포트 대상**: - `DataTable` → DT_CharacterStat, DT_Skill, DT_CharacterAbility 등 - `AnimMontage` → 모든 캐릭터 애니메이션 몽타주 - `Blueprint` → GA_* (Gameplay Ability) 블루프린트 - `CurveTable` → 각종 커브 데이터 **익스포트 방법**: 1. 언리얼 에디터에서 Content Browser 열기 2. 분석할 에셋 선택 3. 우클릭 → `Export to JSON` (커스텀 익스포터) 4. 출력 폴더에 JSON 파일 생성 ### 2. LLM 기반 분석 생성된 JSON 파일을 Claude (LLM)에 입력하여 자동 분석합니다. **분석 프로세스**: ``` JSON Files → Claude Code → Analysis Document ↓ Python Scripts (보조 분석) ``` **LLM의 역할**: - 대용량 JSON 데이터 파싱 및 패턴 인식 - 스토커별 데이터 비교 분석 - 전투 로직 추론 및 시스템 메커니즘 분석 - Markdown 형식의 기술 문서 자동 생성 **장점**: - 수작업 대비 100배 이상 빠른 분석 속도 - 일관된 형식의 문서 생성 - 복잡한 크로스 레퍼런스 추적 자동화 ### 3. 검증 및 문서화 분석 결과를 검토하고 최종 문서를 생성합니다. --- ## v2 분석 프로세스 (2025-10 업데이트) ### 프로세스 개요 v2 시스템은 JSON 원본에서 밸런스 리포트까지 **4단계 자동화 파이프라인**입니다. ``` [원본 JSON] → 01단계 → 02단계 → 03단계 → 04단계 기본데이터 DPS계산 역할비교 밸런스티어 ``` ### 🔥 v2.1 주요 업데이트 (2025-10-28) **Game Changer 발견!** #### 1. 콤보 캔슬 시스템 발견 - `ANS_DisableBlockingState_C` 노티파이로 평타 조기 캔슬 가능 - **클라드**: 평타 시간 56% 단축 → **평타 DPS 1위** (125.5) - **힐다**: 19% 단축, 탱커 최고 DPS (107.3) - **바란**: 19% 단축, 중상위권 (90.4) #### 2. 바란 궁극기 시전시간 정정 - DT_Skill 10초 → **실제 1.29초** (AN_SimpleSendEvent 시점) - 10초는 최대 홀딩 시간 (타이밍 조절 가능) - 스크립트 자동 감지 및 오버라이드 #### 3. 15초 버스트 시나리오 확대 - 기존 10초 → **15초**로 확대 (궁극기 지속시간 반영) - 레네 궁극기 실전 필수 (흡혈 생존력) - 종합 티어표 3개 시나리오 통합 평가 ### 4단계 구성 #### 01단계: 스토커별 기본 데이터 - **목적**: JSON에서 10명 스토커 정보 추출 및 검증 - **출력**: `01_스토커별_기본데이터_v2.md` - **도구**: `분석도구/v2/` (extract → validate → generate) #### 02단계: DPS 시나리오 비교분석 - **목적**: 3개 시나리오 DPS 계산 (평타, 로테이션, 버스트) - **출력**: `02_DPS_시나리오_비교분석_v2.md` - **도구**: `calculate_dps_scenarios_v2.py` #### 03단계: 역할별 차별화 - **목적**: 5개 역할군 비교 (전사, 원거리, 마법사, 암살자, 서포터) - **출력**: `03_역할별_차별화_v2.md` #### 04단계: 밸런스 티어 및 개선안 - **목적**: OP/S+/S/A/B 티어 평가 및 밸런스 개선안 - **출력**: `04_밸런스_티어_및_개선안_v2.md` ### 실행 방법 **전체 프로세스**: ```bash # 1단계: 기본 데이터 추출 및 검증 cd 분석도구/v2 python extract_stalker_data_v2.py python validate_stalker_data.py python generate_stalker_docs_v2.py # 2단계: DPS 계산 python calculate_dps_scenarios_v2.py # 3~4단계: 추후 구현 예정 ``` **출력 구조**: ``` 분석결과/YYYYMMDD_HHMMSS_v2/ ├── 01_스토커별_기본데이터_v2.md ├── 02_DPS_시나리오_비교분석_v2.md ├── 03_역할별_차별화_v2.md ├── 04_밸런스_티어_및_개선안_v2.md ├── intermediate_data.json ├── validated_data.json └── 검증_리포트.md ``` ### 상세 문서 - [ARCHITECTURE.md](ARCHITECTURE.md) - v2 프로세스 완전 상세 가이드 (알고리즘, 체크리스트 포함) --- ## 폴더 구조 ``` DS-전투분석_저장소/ ├── README.md # 본 문서 ├── ARCHITECTURE.md # 기술 아키텍처 (v2 프로세스 상세) │ ├── 분석결과/ # 분석 결과물 │ ├── 20251024_000515/ # 기존 분석 (참고용) │ └── YYYYMMDD_HHMMSS_v2/ # v2 분석 결과 │ ├── 01_스토커별_기본데이터_v2.md │ ├── 02_DPS_시나리오_비교분석_v2.md │ ├── 03_역할별_차별화_v2.md │ ├── 04_밸런스_티어_및_개선안_v2.md │ ├── intermediate_data.json │ ├── validated_data.json │ └── 검증_리포트.md │ ├── 원본데이터/ # JSON 원본 데이터 │ ├── DataTable.json │ ├── AnimMontage.json │ ├── Blueprint.json │ └── CurveTable.json │ └── 분석도구/ # Python 분석 스크립트 ├── v2/ # v2 자동화 도구 │ ├── extract_stalker_data_v2.py │ ├── validate_stalker_data.py │ ├── generate_stalker_docs_v2.py │ ├── calculate_dps_scenarios_v2.py # 개발 예정 │ └── config.py └── utils/ # 유틸리티 스크립트 └── ... ``` ## 정기 분석 수행 가이드 새로운 분석을 수행하려면 다음 단계를 따르세요. ### Step 1: JSON 데이터 익스포트 **언리얼 에디터에서 수행**: ``` 1. Content Browser에서 다음 폴더들을 선택: - /Game/Blueprints/DataTable/ - /Game/_Art/_Character/PC/*/AnimMontage/ - /Game/Blueprints/Abilities/GA_Skill_*/ 2. 우클릭 → Export to JSON 3. 출력 폴더 선택: DS-전투밸런스_분석자료/[오늘날짜]/ 예: DS-전투밸런스_분석자료/20251024_153000/ 4. 익스포트 완료 확인: ✓ DataTable.json ✓ AnimMontage.json ✓ Blueprint.json ✓ CurveTable.json ``` ### Step 2: LLM 분석 실행 **Claude Code 사용**: 1. Claude Code CLI 실행 2. 다음 프롬프트 입력: ``` "DS-전투밸런스_분석자료/[날짜]/" 폴더의 JSON 파일들을 분석하여 전투 시스템 종합 분석 문서를 작성해주세요. 분석 항목: - 10명 스토커별 기본 공격 타이밍 및 피해 배율 - 스킬별 Activation Order Group 값 - 애니메이션 캔슬 윈도우 (ANS_SkillCancel_C) - 캐릭터 스탯 비교 이전 분석 문서를 참고하여 동일한 형식으로 작성하고, 변경사항이 있다면 별도로 표시해주세요. ``` 3. 생성된 문서를 검토하고 수정 ### Step 3: 결과 저장 ```bash # 새 폴더 생성 mkdir -p 분석결과/[날짜] # 분석 문서 저장 # Claude가 생성한 문서를 분석결과/[날짜]/DS-전투시스템_종합분석.md로 저장 # (선택) 원본 JSON 샘플 저장 # 주요 에셋 몇 개만 추출하여 원본데이터/[날짜]/에 저장 ``` ### Step 4: 변경사항 추적 **이전 분석과 비교**: ```bash # diff 도구로 변경 확인 diff 분석결과/20251023/DS-전투시스템_종합분석.md \ 분석결과/20251024/DS-전투시스템_종합분석.md ``` **주요 확인 사항**: - ActivationOrderGroup 변경 (밸런스 조정) - 기본 공격 타이밍 변경 (애니메이션 수정) - AddNormalAttackPer 변경 (피해 배율 조정) - 새로운 스킬 추가/삭제 ## 분석 도구 사용법 ### 1. 스킬 캔슬 윈도우 추출 ```bash python 분석도구/extract_skill_cancel_windows.py \ 원본데이터/20251023/AnimMontage.json ``` **출력 예시**: ``` AM_PC_Hilda_B_Skill_SwordStrike 캔슬 구간: 1.300s ~ 1.800s (지속: 0.500s) ``` ### 2. 캐릭터 스탯 분석 ```bash python 분석도구/analyze_character_stats.py \ 원본데이터/20251023/DataTable.json ``` **출력 예시**: ``` 이름 직업 STR DEX INT CON WIS 힐다 전사 20 15 10 20 10 우르드 원거리 15 20 10 15 15 ``` ### 3. Activation Order Group 추출 ```bash python 분석도구/extract_activation_order_groups.py \ 원본데이터/20251023/Blueprint.json ``` **출력 예시**: ``` Hilda: Group 4: Bash, SwordStrike Group 0: BloodMoon_Active, SteelBlocking ``` ## 최신 분석 결과 **날짜**: 2025-10-27 (v2.1) **분석 문서**: `분석결과/20251027_200151_v2/` **주요 발견 (v2.1)**: - **평타 DPS 1위**: 클라드 (125.5) - 콤보 캔슬로 137% 증가! - **30초 로테이션 1위**: 레네 (158.88) - 소환수 독립 DPS - **15초 버스트 1위**: 카지모르드 (165.1) - Parrying + 궁극기 - **종합 S티어**: 시노부, 레네 (모든 시나리오 안정적 상위권) - **밸런스 개선 필요**: 리안, 우르드 (재장전/충전 페널티 과다) ## 기술 스택 - **게임 엔진**: Unreal Engine 5.5.4 - **에셋 익스포터**: Custom Unreal Editor Plugin - **분석 LLM**: Claude 3.5 Sonnet (Claude Code) - **보조 분석**: Python 3.x - **문서 형식**: Markdown ## 참고 자료 ### 내부 문서 - [DS-전투시스템_종합분석.md](분석결과/20251023/DS-전투시스템_종합분석.md) - 최신 분석 결과 - [CLAUDE.md](../CLAUDE.md) - 프로젝트 전체 개요 ### 외부 참고 - [Unreal Engine Gameplay Ability System](https://docs.unrealengine.com/5.5/en-US/gameplay-ability-system-for-unreal-engine/) - [Animation Notify System](https://docs.unrealengine.com/5.5/en-US/animation-notifies-in-unreal-engine/) ## 팀원 기여 분석 결과에 피드백이나 추가 분석 요청이 있으시면: 1. 이슈 등록 (Git Issue) 2. 또는 디스코드 공식 커뮤니티에 공유 --- **마지막 업데이트**: 2025-10-28 (v2.1) **담당자**: AI-assisted Analysis Team ## 변경 이력 ### v2.1 (2025-10-28) - **콤보 캔슬 시스템 발견** (ANS_DisableBlockingState_C) - 바란 궁극기 시전시간 정정 (10초 → 1.29초) - 15초 버스트 시나리오로 확대 (10초 → 15초) - 종합 티어표 3개 시나리오 통합 평가 - 밸런스 개선 제안 (리안, 우르드, 네이브) ### v2.0 (2025-10-27) - 4단계 자동화 파이프라인 구축 - 01~02단계 문서 생성 완료 - 소환수 독립 DPS 계산 (레네) - DoT 시스템 분석 (Poison, Burn, Bleed)