257 lines
7.4 KiB
Markdown
257 lines
7.4 KiB
Markdown
# 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. 검증 및 문서화
|
|
|
|
분석 결과를 검토하고 최종 문서를 생성합니다.
|
|
|
|
## 폴더 구조
|
|
|
|
```
|
|
DS-전투분석_저장소/
|
|
├── README.md # 본 문서
|
|
│
|
|
├── 분석결과/ # 분석 결과물
|
|
│ └── 20251023/ # 날짜별 분석
|
|
│ └── DS-전투시스템_종합분석.md
|
|
│
|
|
├── 원본데이터/ # JSON 원본 데이터 (샘플)
|
|
│ └── 20251023/
|
|
│ ├── 샘플_DataTable.json
|
|
│ ├── 샘플_AnimMontage.json
|
|
│ └── 샘플_Blueprint.json
|
|
│
|
|
└── 분석도구/ # Python 분석 스크립트
|
|
├── extract_skill_cancel_windows.py
|
|
├── analyze_character_stats.py
|
|
└── extract_activation_order_groups.py
|
|
```
|
|
|
|
## 정기 분석 수행 가이드
|
|
|
|
새로운 분석을 수행하려면 다음 단계를 따르세요.
|
|
|
|
### 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-23
|
|
**분석 문서**: [분석결과/20251023/DS-전투시스템_종합분석.md](분석결과/20251023/DS-전투시스템_종합분석.md)
|
|
|
|
**주요 발견**:
|
|
- **공격 속도 1위**: Rio (3.867s)
|
|
- **가장 높은 피해**: Baran, Clad (평타 +30~50%)
|
|
- **궁극기 보유**: Nave, Baran, Sinobu, Cazimord (4명만)
|
|
- **가장 다양한 우선순위**: Cazimord (Group 0, 2, 3, 4, 9 모두 사용)
|
|
|
|
## 기술 스택
|
|
|
|
- **게임 엔진**: 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-23
|
|
**담당자**: AI-assisted Analysis Team
|