[TIL] 2026-05-15 | 최종 팀 프로젝트 1 - 프로토타입 기획서

2026. 5. 15. 22:44·언리얼 게임개발

1. 게임 개요

게임 소개

컨셉 및 레퍼런스

  • 게임 이름: NeoSanctum
  • 배경 분위기: 미래형 전투 또는 포스트 아포칼립스
  • 전투 스타일: 근접 + 원거리를 두루 사용하는 3인칭 액션
  • 조작 느낌: 구르기 / 대쉬를 활용한 소울라이크적 회피감
  • 인원: 최대 4인 협동 멀티플레이 (캐릭터 중복 선택 허용)
우리 게임 요소 레퍼런스 게임 참고 포인트
파츠 시스템 사이버펑크 2077 부위별 파츠 장착으로 능력 강화
엘리트 처치 → 증강 선택 Hades 챔버 클리어마다 3선택지 중 1개 선택
레벨업 증강 선택 LOL 경험치 획득, 레벨업 시 3선택지 중 1개 선택
전설 등급 메커니즘 변형 건파이어 리본 캐릭터 전용 어센션으로 플레이 스타일 변형
영구 강화 시스템 Shape of Dreams 런 종료 후 스킬 트리 해금 구조

핵심 재미

NeoSanctum의 루프 구조

NeoSanctum은 3개의 중첩된 루프로 구성된다.

┌─────────────────────────────────────────────────────┐
│  MACRO LOOP (메타 루프)  ─  아웃 런 / 거점           │
│  ┌───────────────────────────────────────────────┐  │
│  │  MID LOOP (런 루프)  ─  스테이지 진행          │  │
│  │  ┌─────────────────────────────────────────┐  │  │
│  │  │  MICRO LOOP (전투 루프)  ─  룸 전투      │  │  │
│  │  └─────────────────────────────────────────┘  │  │
│  └───────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────┘

MICRO LOOP — 전투 루프 (룸 단위, 수십 초)

"지금 이 싸움이 재밌는가?"

핵심 동사(Core Verb): 조준하고 → 회피하고 → 쏜다

[행동]  이동 / 조준 / 사격 / 구르기(UGA_Dodge)
   ↓
[도전]  적의 공격 패턴 / 체력 압박 / 쿨타임 관리
   ↓
[보상]  적 처치 피드백 (히트 리액션, 카메라 쉐이크)
        경험치, 재화 드랍 / 엘리트, 보스 처치 시 → 증강 선택 트리거
   ↓
[반복]  다음 적 / 다음 룸으로 이동
요소 내용
핵심 행동 이동 + 구르기(회피) + 사격 / 스킬 사용
즉각 피드백 히트 스캔 / 투사체 명중 반응, 크리티컬 오버레이 HUD
즉각 보상 처치 효과음 / 파티클, 골드 획득, 체력 회복 아이템
긴장 요소 쿨타임, 실드/체력 압박, 다중 적 처리

MID LOOP — 런 루프 (스테이지 단위, 수십 분)

"이번 런의 빌드를 어떻게 가져갈 것인가?"

[거점 출발]
   → 캐릭터 선택 + 파츠 장착 (파츠 기술자 해금 후)
   ↓
[스테이지 진입]
   → 룸 전투 반복 (MICRO LOOP)
   ↓
[분기 선택]
   → 레벨업 / 엘리트,보스 처치 → UAugmentInstance 증강 선택(노말/고급/희귀/전설)
   → 보물상자 오픈 → 증강 선택 or 골드 획득
   → NPC 상점 → UPartItemInstance 파츠 구매 / 업그레이드 / 리롤
   ↓
[보스 처치]
   → 다음 스테이지 진행 또는 런 클리어
   ↓
[결과]
   → 클리어 or 전멸 → 거점 귀환
요소 내용
핵심 선택 증강 조합 / 파츠 선택 / 골드 운용
단기 보상 증강 스택 강화, 파츠 장착으로 즉각 능력 변화
긴장 요소 등급에 따른 증강 등장 확률 , 리롤 비용, 체력 관리
변동성 매 런마다 다른 증강 조합 → 다른 빌드 경험

증강 선택이 런 루프의 핵심인 이유

처음 픽한 증강
   → 이후 선택지를 보는 시야가 달라진다
   → 조합을 고려한 2번째, 3번째 픽
   → 전설 증강 등장 시 빌드 방향 전환
   → "이번 런은 어떤 빌드로 완성됐는가?"

Current Augment List UI를 선택창에 함께 표시하여
현재 보유 증강과 새 선택지의 시너지를 플레이어가 직접 판단하도록 유도한다.


MACRO LOOP — 메타 루프 (세션 단위, 장기)

"런이 끝나도 내 캐릭터는 성장해 있는가?"

[런 종료 (클리어 or 전멸)]
   → 스킬 재화 / 공통 재화 획득
   → FNPCUnlockData (NPC 구출 진행도) 저장
   ↓
[거점 귀환 — 아웃 런]
   → 공통 영구 스킬트리 강화 (공통 재화 소모)
   → 캐릭터 스킬트리 강화 (스킬 재화 소모)
   → NPC 구출로 거점 기능 해금
     ├── 파츠 기술자 구출 → 런 시작 시 파츠 장착 가능
     ├── 전투 교관 구출 → 캐릭터 스킬트리 해금
     └── 동료 NPC 구출 → 동료 AI 기능 업그레이드
   ↓
[다음 런 출발]
   → 강화된 스탯 + 새로운 파츠 조합으로 이전보다 유리한 출발
요소 내용
핵심 선택 어느 캐릭터 / 스킬트리에 재화를 투자할 것인가
장기 보상 스킬트리 강화 누적 → 다음 런이 더 유리해지는 성장감
콘텐츠 해금 NPC 구출 → 거점 기능 확장 → 런 경험 자체가 넓어짐
동기 유지 전멸해도 재화는 남는다 → "이번 런이 헛되지 않았다"는 감각

3개 루프의 관계

MICRO LOOP 결과물       →  MID LOOP에 영향
──────────────────────────────────────────
처치 → 골드 획득        →  파츠 구매 / 업그레이드 / 리롤 비용
레벨업, 보스 엘리트 처치 →  증강 선택 트리거
보스 처치               →  다음 스테이지 진입

MID LOOP 결과물         →  MACRO LOOP에 영향
──────────────────────────────────────────
스테이지 클리어          →  스킬 재화 n개 보장 획득
런 종료 (클리어/전멸)    →  영구 재화 획득
NPC 구출 달성           →  FNPCUnlockData 저장 → 거점 해금

MACRO LOOP 결과물       →  다음 MICRO/MID LOOP에 영향
──────────────────────────────────────────
스킬트리 강화            →  캐릭터 기본 스탯 상향
거점 해금               →  런 시작 조건 확장 (파츠 장착 등)
펫 기능 업그레이드       →  ANSHelperCharacter 전투 보조 강화

루프별 플레이어 동기

루프 시간 단위 핵심 질문 동기 원천
MICRO 수십 초 이 적을 어떻게 잡을까? 전투 조작감 / 즉각 피드백
MID 수십 분 어떤 빌드로 런을 완성할까? 빌드 다양성 / 선택의 긴장감
MACRO 수 시간~장기 내 캐릭터를 어떻게 키울까? 영구 성장 / 콘텐츠 해금

루프 설계 원칙

1. 핵심 동사는 그 자체로 재밌어야 한다

UGA_Dodge(구르기)와 UGA_RangerShoot(사격)은 스킬트리나 증강 없이도
빈 방에서 반복해도 재밌는 느낌이어야 한다.
모든 상위 루프는 이 기반 위에서만 의미를 가진다.

2. 모든 선택은 다음 선택을 만들어야 한다

첫 증강 선택이 두 번째 선택의 맥락을 만들고,
파츠 선택이 빌드의 완성도를 바꾸며,
스킬트리 투자가 다음 런의 캐릭터 선택에 영향을 준다.
선택은 독립된 이벤트가 아니라 연쇄 반응이어야 한다.

3. 전멸은 실패가 아니라 루프의 일부다

런이 전멸로 끝나도 재화와 NPC 구출 진행도는 유지된다.
"이번 런에서 무엇을 배웠고, 무엇을 얻었는가"가
다음 런 출발의 동기가 된다.

4. 루프 간 피드백은 즉각적이고 가시적이어야 한다

스킬트리 강화 후 다음 런에서 수치 변화가 체감되어야 하고,
증강 선택 후 전투 느낌의 변화가 바로 느껴져야 한다.
보상의 효과가 지연되거나 불명확하면 루프가 끊긴다.


용어 정리

용어 설명
런
  • 인 런
  • 아웃 런
런 : 여러 개의 스테이지로 구성된 게임 플레이 단계
  • 인 런 : 게임 플레이 단계
  • 아웃 런 : 정비 및 거점 단계
스테이지 스테이지 : 여러 개의 룸으로 구성된 게임 플레이 맵
룸 룸 : 스테이지를 구성하는 게임 플레이 구역
영구 재화
  • 공통 재화
  • 기술 재화
영구 재화 : 인 런에서 획득하여 아웃 런에서 사용 가능한 저장되는 재화
  • 공통 재화 : 공통 스킬트리를 강화하기 위해 사용하는 재화
  • 스킬 재화: 캐릭터 스킬트리를 강화하기 위해 사용하는 재화
임시 재화 임시 재화 : 인 런에서 획득하여 사용하는 휘발성 재화
스킬트리
  • 공통 스킬트리
  • 캐릭터 스킬트리

스킬트리 : 인 런 불변 수치 강화
  • 공통 스킬트리 : 공통 재화 사용 강화, 스킬 당 사용 재화량 증가
  • 캐릭터 스킬트리 : 기술 재화 사용 강화, 캐릭터 당 사용 재화량 증가
파츠 파츠 : 아웃 런 선택, 인 런 가변 수치 강화
증강 증강 : 인 런 무작위 등장 수치 및 기믹 강화

 


2. 전체 게임 플로우

 

거점 출발
  → 캐릭터 선택 (중복 허용)
  → 아웃 런 스킬트리, 파츠, Companion 적용 (해금 시)
  → 스테이지 진입
      → 목표 수행
      → 레벨 업, 엘리트 처치, 보스 처치 → 강화 선택 (증강)
      → 보물상자 오픈 → 강화 선택 or 골드 획득
      → 상호작용 NPC → 파츠 업그레이드, 옵션 리롤 / 유저 부활 / 상점
      → 보스 처치 → 다음 스테이지 진행
  → 클리어 또는 전멸
  → 거점 귀환
      → 영구 재화 저장
      → 플레이 기록 저장
      → NPC 구출 진행도 저장
  → 다시 출발 (런 반복)

3. 프로토타입 개발 범위 (1~2주)

프로토타입 개발 리스트

항목 관련 클래스 내용
캐릭터 이동    
+ 구르기/대쉬 NSBaseCharacter, UGA_Dodge 조작감 검증
캐릭터 애니메이션    
기초 세팅 NSBaseCharacter 상하체 분리 + 모션 매칭 플러그인
원거리 전투 1종 UGA_RangerShoot / Rocket / Grenade 전투 재미 검증
GAS 구조 세팅 UNSAbilitySystemComponent, UNSBaseAttributeSet ASC · 어트리뷰트 · Input 분리
일반 몬스터 (단순 추적) ANSRushEnemy, ANSGroundAIController 전투 상대 최소 구현
몬스터 데이터 구조 UNSEnemyDataAsset, UNSMonsterAttributeSet DataAsset 기반 Enemy 데이터 관리
리슨 서버 2인 연결 ANSRunGameMode 멀티플레이 가능성 조기 검증
게임루프 ANSOutGameMode → ANSRunGameMode 타이틀 → 거점 → 런 →거점 복귀
흐름 정립 이용호  
동료 AI 기초 구조 ANSHelperCharacter, ANSHelperController BB + BT + Perception 세팅
UI 매니저 기초 세팅 UI Manager, HUD, Augmentation UI UI 뼈대 구축
기본 HUD 작동 이영웅  
레벨 기초 배치 L_HideOut, L_CanyonPlay 거점 + Canyon 기본 구성
증강 시스템 기초 구조 UAugmentInstance, UAugmentDefinition Instance / Definition 구조

프로토타입 검증 목표

프로토타입 단계(1~2주)에서는 MICRO LOOP의 재미를 최우선으로 검증한다.

검증 항목 기준
이동 + 구르기 조작감 "회피가 쾌감 있는가?"
원거리 사격 피드백 "맞히는 느낌이 있는가?"
적 AI 반응 (ANSRushEnemy) "싸울 만한 상대인가?"

4. Game Core

클래스 구조

ANSGameInstance

ANSOutGameMode ────────── ANSRunGameMode ────── StageManager
    └── ANSOutGameState         └── ANSRunGameState    └── ANSPlayerState

ANSPlayerController

ANSOutGameMode (거점 GameMode)

  • 거점(아웃 런) 전용 GameMode
  • ANSOutGameState로 거점 상태 관리
  • NPC 구출 진행도 동기화: 각 클라이언트가 본인 ANSPlayerController의 진행도 기준으로 문 머티리얼을 로컬 변경 (초록 / 빨강)
게스트 거점 진입
→ 본인 로컬 SaveGame 로드
→ NPC 진행도를 서버(ANSPlayerController)에 동기화
→ 각 클라이언트에서 본인 ANSPlayerController의 진행도 기준으로
  문 머티리얼 로컬 변경 (초록 / 빨강)
→ 세션 종료 시 각자 로컬에 개별 저장
조건 문 색상 상호작용
본인이 해당 NPC 구출 완료 🟢 초록 홀로그램 가능
본인이 해당 NPC 미구출 🔴 빨간 홀로그램 불가

ANSRunGameMode (런 GameMode)

  • 런(인 런) 전용 GameMode
  • ANSRunGameState로 런 진행 상태 관리
  • 큰 규칙(스테이지 진행, 클리어/전멸 판정)은 RunGameMode 자체에서 처리
  • 스테이지 내 강화, 상호작용 처리는 StageManager를 별도로 두어 관리
  • ANSPlayerState로 플레이어별 런 내 상태 관리

ANSPlayerController

  • 거점 / 런 양쪽에서 공통으로 사용
  • NPC 구출 진행도 등 개인 데이터 보유 및 서버 동기화 담당

5. In Run Upgrade

클래스 구조

UAugmentationComponent                   
└── UAugmentInstance                  
    └── UAugmentDefinition      

 UPartsEquipmentComponent
 ├── UPartsInventoryComponent
 │     └── UPartItemInstance
 └── UPartDefinition

 UShopComponent
 └── UShopDefinition

증강 시스템 (UAugmentationComponent)

① 레벨업/ 엘리트 or 보스 처치 → 증강 선택

  • 4명이 각자 독립적으로 선택 (개인별 별도 UI)
  • UAugmentInstance: 런 중 보유한 증강 인스턴스
  • UAugmentDefinition: 증강 효과 정의 데이터
  • DT기반 + 스킬트리 강화 수치에 의한 가변 확률 적용
등급 내용 예시
노말 기본 수치 소폭 강화 공격력 + x%
고급 패널티/리턴 방식 강화 체력 - x%, 공격력 + y%
희귀 조건 만족 스택형 강화 적 적중시 공격력 + x% (최대 n스택, 지속시간 m초)
전설 캐릭터 스킬 매커니즘 변화 원거리 - 기본 공격 - x% 확률로 나선 미사일 발사

전설 등급 추가 예시

캐릭터 효과 예시
Warrior (근접형) 대쉬 후 공격이 범위 데미지로 변함 / 근접 처치 시 쿨타임 즉시 초기화
Ranger (원거리형) 투사체가 적을 관통 / 스킬 사용 시 분열 투사체 추가 발사
Engineer (엔지니어) 포탑 2개 동시 설치 가능 / 포탑 파괴 시 폭발 데미지 발생

② 보물상자 → 증강 선택 or 임시 재화 획득

항목 내용
결과 종류 강화 선택지 3개 or 임시 재화 획득 (랜덤)
등급 구성 노말 / 고급 위주 (희귀 낮은 확률)
역할 탐험 보상 성격 — 전투 없이 강화 / 골드 획득 가능

파츠 시스템 (UPartsEquipmentComponent)

  • UPartsInventoryComponent: 런 중 보유 파츠 인벤토리 관리
  • UPartItemInstance: 장착된 파츠 인스턴스
  • UPartDefinition: 파츠 효과 정의 데이터
  • UShopComponent / UShopDefinition: NPC 상점 구성 및 표시 데이터

파츠 장착 규칙

  • 런 내 NPC 상점에서 골드로 구매, 랜덤 3개 표시 → 1개 선택 구매 / 리롤 가능 (골드 소모)
  • 부위별 1개만 장착 가능
  • 아웃 런 단계에서 파츠 1개 장착하고 출발 (파츠 기술자 NPC 해금 후)
  • 등급 시각화: 머티리얼 변경 + 나이아가라 이펙트로 등급 표현
장착 부위 효과 예시
다리 파츠 2단 점프 / 대쉬 횟수 증가
손 파츠 치명타 확률 상한 증가 / 기본 멀티 히트 확률(더블 샷)
몸통 파츠 최대 체력 1로 + 체력 1당 실드 x% / 최대 체력 x% 이하 시 n% 회복(쿨타임 m초)

6. Character/Input

클래스 구조

NSBaseCharacter
├── DT_(캐릭터 타입)        ← DataTable 기반 캐릭터 정보 주입
├── NS 기타 컴포넌트들
└── NSCombatComponent

[Input]
NSInputComponent (EnhancedInputComponent)
└── Player Controller ─────→ NSInputConfig
                                 ├── Native Input  (이동, 구르기, 달리기 등)
                                 └── Ability Input (스킬 태그 기반)

캐릭터 공통 설계 방침

  • 모든 캐릭터는 NSBaseCharacter 단일 베이스에서 어빌리티만 다르게 적용하여 구현
  • 캐릭터 정보는 DataAsset(DA_BaseCharacter 등)에서 관리하고 캐릭터 에셋에 주입하는 방식
  • 인풋: Lyra 프로젝트 방식 채용
    • Native Input: 이동, 달리기, 점프, 구르기 등 코드 직접 처리
    • Ability Input: 스킬은 태그 기반으로 NSInputConfig에서 관리
    • 어빌리티를 추가할 때 코드 수정 없이 NSInputConfig에 태그를 추가하여 확장 가능
  • 상하체 분리 + 모션 매칭 플러그인 사용으로 이동 중 사격 지원
  • 원거리형의 경우 HitScan / Projectile 방식으로 공격 구현이 나뉠 수 있음

캐릭터 종류

Ranger (원거리형) ✅ 프로토타입 구현

구분 항목 내용 관련 GA
MVP 좌클릭 (기본 공격) 돌격소총 발사 UGA_RangerShoot
MVP 우클릭 (직업 특성) 나선 로켓 UGA_RangerRocket
MVP Q (액티브 스킬) 수류탄 투척 UGA_RangerGrenade
도전 E (액티브 스킬) 연사 속도 및 재장전 속도 증가 버프 추후 추가

Engineer (엔지니어형) ✅ MVP 구현

구분 항목 내용
MVP 좌클릭 (기본 공격) 못 샷건 발사
MVP 우클릭 (직업 특성) 포탑 1점사 락온
MVP Q (액티브 스킬) 포탑 설치
도전 E (액티브 스킬) 포탑 및 자신의 발사 속도 증가

Warrior (근접형) ⚠️ 확장 단계 구현

구분 항목 내용
도전 좌클릭 (기본 공격) x단 콤보 공격
도전 우클릭 (직업 특성) 추후 기획
도전 Q (액티브 스킬) 플리커 (쿨타임 + 2~3회 연속 돌진)
도전 E (액티브 스킬) 튕기는 방패 던지기

 


7. Companion/ AI

클래스 구조

ANSBaseAICharacter
└── ANSHelperCharacter
      ├── UpGradeComponent
      ├── Attribute set (UNSCompanionAttributeSet)
      └── (미정 슬롯)

ANSBaseAIController
└── ANSHelperController

동료 AI (펫) 개요

  • 런 시작 시 기본 펫 지급 (말만 가능한 상태)
  • NPC 구출 후 UpGradeComponent를 통해 펫 기능 업그레이드
    (몬스터헌터 아이루 스타일 목표)
  • 싱글플레이 대응 협동 AI 역할
  • ANSHelperController가 ANSHelperCharacter를 제어

AI 구조 방침

  • ANSBaseAIController 기반 BB + BT + Perception 구조 사용
  • UpGradeComponent: 펫 업그레이드 기능 관리, GAS AttributeSet과 연동
  • Perception: 시각 처리 우선, 추후 사운드 관련 재논의

8. Enemy/ AI

캐릭터 클래스 구조

ANSEnemyCharacterBase ──Has Reference──→ UNSEnemyDataAsset
│  Owns
├── UNSEnemyCombatComponent
├── UNSEnemyStateComponent
└── UNSEnemyTargetComponent
      │  Inherit
      ├── ANSGroundEnemyBase                      ANSBossEnemyBase
      │     │  Inherit                             │  Owns
      │     ├── ANSRushEnemy                       ├── UNSBossPatternComponent
      │     └── ANSShootEnemy                      ├── UNSBossPhaseComponent
      │                                            └── UNSBossAggroComponent
      └── ANSFlyingEnemyBase                             │  Inherit
            │  Inherit                                  ANSBossEnemy
            ├── ANSEliteRushEnemy
            └── ANSSuicideEnemy

AI 컨트롤러 클래스 구조

ANSEnemyAIControllerBase
│  Owns
├── UBlackboardComponent
├── UBehaviorTreeComponent
└── UAIPerceptionComponent
      │  Inherit
      ├── ANSGroundAIController
      ├── ANSFlyingAIController
      └── ANSBossAIConroller

몬스터 구성

종류 클래스 구현 단계 비고
근거리 일반 ANSRushEnemy ✅ 프로토타입 단순 추적 및 근접 공격
원거리 일반 ANSShootEnemy ✅ MVP 원거리 투사체 공격
엘리트 근거리 ANSEliteRushEnemy ✅ MVP 처치 시 증강 선택 트리거
자폭형 (비행) ANSSuicideEnemy 확장 근접 자폭
보스 ANSBossEnemy ✅ MVP (1마리) 페이즈 설계 / 확장 시 최대 3마리

컴포넌트 역할

컴포넌트 역할
UNSEnemyCombatComponent 공격 가능 여부 / 추적 여부 관리
UNSEnemyStateComponent AI 상태 구분 (대기 / 전투 / 사망)
UNSEnemyTargetComponent 플레이어 인식을 단계별로 구분
UNSBossPatternComponent 보스 공격 패턴 관리
UNSBossPhaseComponent 보스 페이즈 전환 관리
UNSBossAggroComponent 보스 어그로 대상 관리
- UNSEnemyDataAsset: DataAsset 기반 Enemy 스탯 / 행동 데이터 외부 관리  
- Perception: 시각 처리 우선, 추후 사운드 관련 재논의  

 


9. GAS

전체 클래스 구조

【Ability System Component】
UNSAbilitySystemComponent

【Attribute Set】
UNSBaseAttributeSet
├── UNSPlayerAttributeSet ──→ UNSPlayerState
├── UNSMonsterAttributeSet ──→ ANSEnemyCharacterBase
└── UNSCompanionAttributeSet

【Gameplay Ability】
UGA_SkillBase
├── UGA_RangerShoot
├── UGA_RangerRocket
├── UGA_RangerGrenade
└── UGA_Dodge

【Gameplay Effect】
GE_InstantDamage ──Uses──→ UGEC_DamageExecution
GE_SkillCooldown
GE_DodgeInvincible

【Gameplay Tag】
NSGameplayTags_Input
NSGameplayTags_Ability
NSGameplayTags_State
NSGameplayTags_Effect
NSGameplayTags_Cue
NSGameplayTags_Event

Ability System Component

  • UNSAbilitySystemComponent: 커스텀 ASC
  • 인게임 증강 시스템에 의해 캐릭터 메커니즘이 바뀌는 것을 고려하여 커스텀 구현
  • 캐릭터 기본 어빌리티 동적 교체를 위해 DA 어빌리티 설계, 파츠 장착 시 GA 변경 대응

Attribute Set

UNSBaseAttributeSet (공통 베이스)

공통 속성을 Base에 구현하고, 독립적인 요소만 하위 클래스에서 추가 부여

Attribute 타입 설명
MaxHealth Float 최대 체력
CurrentHealth Float 현재 체력
AttackPower Float 공격력
Defense Float 방어력
MoveSpeed Float 이동 속도

UNSPlayerAttributeSet (캐릭터 전용)

UNSBaseAttributeSet 상속 → UNSPlayerState에서 관리

Attribute 타입 설명
ShieldRegenRate Float 실드 초당 재생량
ShieldRegenDelay Float 실드 회복 시작 대기 시간
MaxShield Float 최대 실드
CurrentShield Float 현재 실드
CriticalChance Float 치명타 발생 확률
CriticalDamage Float 치명타 피해량
ActionSpeed Float 공격 속도 / 발사 속도 / 재장전 속도

UNSCompanionAttributeSet (동료 AI 전용)

UNSBaseAttributeSet 상속

Attribute 타입 설명
ActionSpeed Float 행동 속도
UpgradeLevel Float 펫 업그레이드 레벨

UNSMonsterAttributeSet (몬스터 전용)

UNSBaseAttributeSet 상속 → ANSEnemyCharacterBase에서 관리

Attribute 타입 설명
DetectionRange Float 탐지 범위
AggroRange Float 어그로 전환 범위

Gameplay Ability

클래스 대상 구현 단계 설명
UGA_SkillBase 공통 베이스 — 모든 GA의 부모 클래스
UGA_RangerShoot Ranger ✅ 프로토타입 돌격소총 발사
UGA_RangerRocket Ranger ✅ 프로토타입 나선 로켓
UGA_RangerGrenade Ranger ✅ 프로토타입 수류탄 투척
UGA_Dodge 공통 ✅ 프로토타입 구르기 / 대쉬 + 무적 프레임

Gameplay Effect

클래스 설명
GE_InstantDamage 즉시 데미지 적용. UGEC_DamageExecution을 통해 계산
UGEC_DamageExecution 데미지 계산 실행 클래스 (공격력, 방어력, 치명타 등 반영)
GE_SkillCooldown 스킬 쿨타임 적용
GE_DodgeInvincible 구르기 중 무적 상태 적용

Gameplay Tag

태그 네임스페이스 용도
NSGameplayTags_Input Native / Ability 입력 태그 구분
NSGameplayTags_Ability 어빌리티 식별 태그
NSGameplayTags_State AI / 캐릭터 상태 태그 (대기, 전투, 사망 등)
NSGameplayTags_Effect GE 적용 식별 태그
NSGameplayTags_Cue 시각/사운드 연출 Cue 태그
NSGameplayTags_Event 어빌리티 간 이벤트 전달 태그

10. Data

클래스 구조

DataTable
├── DT_Parts          ← 파츠 목록, 부위, 등급, 효과 수치
└── DT_Argument       ← 증강 목록, 등급별 확률

DataAsset
├── DA_BaseCharacter
├── DA_RangerCharacter
├── DA_EngineerCharacter
└── DA_WarriorCharacter

UNSEnemyDataAsset  ← Enemy 스탯 / 행동 데이터 (Enemy 클래스에서 Has Reference)

DataTable 구조

DataTable 내용
DT_Parts 파츠 목록, 부위, 등급, 효과 수치
DT_Argument 증강 목록, 등급별 확률, 효과 정의

DataAsset 구조

DataAsset 관리 데이터 비고
DA_BaseCharacter 공통 캐릭터 기본 스탯, 어빌리티 목록 베이스 정의
DA_RangerCharacter Ranger 전용 스탯 / 스킬 참조 DA_BaseCharacter 기반
DA_EngineerCharacter Engineer 전용 스탯 / 스킬 참조 DA_BaseCharacter 기반
DA_WarriorCharacter Warrior 전용 스탯 / 스킬 참조 DA_BaseCharacter 기반
UNSEnemyDataAsset 몬스터 스탯, AI 행동 데이터 참조 Enemy 클래스에서 Has Reference

11. UI

클래스 구조 (Common UI 방식)

UI Manager (UI 매니저)
├── HUD
│     ├── Goods (재화)
│     ├── HP/Shield (체력/실드)
│     ├── Crosshair (조준점)
│     └── Interaction (상호작용)
│
├── Main (메인)
│
├── InGame (인게임)
│     ├── Parts Inventory (파츠 인벤토리)
│     └── Augmentation (증강)
│           ├── Current Augment List (현재 증강 목록)
│           └── Random Choice Cards (랜덤 선택 카드)
│
└── Check (확인)
      ├── Title (타이틀)
      └── Result (결과창)

UI Manager

  • Common UI 방식으로 모든 UI 통합 관리
  • HUD / Main / InGame / Check 4개 카테고리로 분류

HUD (실시간 요소)

UI 요소 설명
Goods (재화) 현재 보유 임시 재화 실시간 표시
HP/Shield (체력/실드) 실시간 Attribute 반영
Crosshair (조준점) 실시간 업데이트, 상황에 따른 조준점 변화
Interaction (상호작용) 상호작용 가능 오브젝트 근접 시 표시

InGame UI

Parts Inventory (파츠 인벤토리)

  • 부위별 슬롯 표시, 파츠 등급 머티리얼 시각화
  • NPC 상점 연동 (랜덤 3개 표시 / 리롤 버튼)

Augmentation (증강 선택)

  • 레벨업 / 엘리트 처치 / 보스 처치 / 보물상자 오픈 시 등장
  • Current Augment List: 현재 보유 증강 목록을 선택 단계에서 함께 표시 (조합 판단력 향상)
  • Random Choice Cards: 랜덤 증강 선택 카드 3장 표시
  • 등급별 색상 구분 (노말 / 고급 / 희귀), 4인 각자 독립 UI

Check UI

UI 설명
Title (타이틀) 게임 시작 / 세션 참가 화면
Result (결과창) 런 클리어 / 전멸 결과 표시

12. Level Design

C++ 클래스 구조

SpawnerBase                           PropBase ──── AttributeSet(?)
├── EnemySpawner                      ├── ActivatableProp (폭발통 등 상호작용)
│     └── BossSpawner                 └── DestructibleProp (파괴시 재화 드랍)
└── ProbSpawner
클래스 역할
SpawnerBase 스포너 공통 베이스
EnemySpawner 일반 / 엘리트 Enemy 스폰
BossSpawner 보스 Enemy 스폰
ProbSpawner Prop 오브젝트 스폰
ActivatableProp 활성화 가능한 Prop (폭발통 등)
DestructibleProp 파괴 시 재화 드랍 (Chaos Destruction 적용)

Editor 레벨 구조

L_Title     L_HideOut(거점)     L_Transition     L_Test

                  L_CanyonPlay ◄── BP_CanyonGenerator (PCG)
                  │
                  ├── L_CanyonSpawn       (플레이어 스폰 구역)
                  ├── L_CanyonBoss        (보스전 구역)
                  ├── L_CanyonShelter     (쉘터 - 전투 없음, 구출/업그레이드)
                  ├── L_CanyonAisle       (스테이지 간 연결 통로)
                  │
                  ├── L_Canyon1
                  ├── L_Canyon2
                  ├── L_Canyon3
                  └── L_Canyon4 (...)

레벨 설명

레벨 설명
L_Title 타이틀 / 세션 생성 및 참가 화면
L_HideOut 거점(아웃 런) 맵. 약 60m x 40m 대칭 구조, SF/실내 테마
L_Transition Seamless Travel 대응 전환 레벨
L_Test 기능 테스트 전용 레벨
L_CanyonPlay Canyon 스테이지 메인 레벨. BP_CanyonGenerator(PCG)로 룸 생성
L_CanyonSpawn 플레이어 스폰 구역
L_CanyonBoss 보스전 구역
L_CanyonShelter 전투 없는 쉘터 (구출 및 업그레이드 가능)
L_CanyonAisle 스테이지 간 연결 통로 (동굴 형식, 다음 스테이지 미노출)
L_Canyon1~4(...) 전투 룸 (PCG 기반 확장)

거점 (L_HideOut)

  • 맵 크기: 약 60m x 40m
  • 구조: 대칭형 구조
  • 테마: SF / 거점 / 실내
  • 플레이어 수: 1~4명 (Co-op)

NPC 구출 → 거점 해금 구조

구출 NPC 해금 콘텐츠
파츠 기술자 런 내 파츠 상점 활성화
전투 교관 캐릭터 스킬트리 해금
펫 NPC 펫 기능 해금
(추가 NPC) 추후 기획

홀로그램 입구 시스템

상태 색상 상호작용
본인이 해당 NPC 구출 완료 🟢 녹색 홀로그램 가능
본인이 해당 NPC 미구출 🔴 빨간색 홀로그램 불가

13. 저장 시스템

클래스 구조

UNSLocalDataManager
└── UNSSaveGame
      └── FNPCUnlockData     ← NPC 구출 진행도

저장 방침

  • 방식: UNSSaveGame 기반 로컬 저장, UNSLocalDataManager가 세이브/로드 전체 관리
  • 저장 시점: 런 종료 시 (클리어 or 전멸) + 거점 귀환 시
  • 추후 레포지토리 패턴으로 변경 검토
  • 비동기 로드: 거점 / 인게임 상황에 따라 필요한 데이터만 로드
저장 데이터 클래스 내용
NPC 구출 진행도 FNPCUnlockData 개인별 로컬 저장
공통 영구 스킬트리 강화 수치 UNSSaveGame 개인별 로컬 저장
캐릭터 스킬트리 강화 수치 UNSSaveGame 개인별 로컬 저장
스킬 조각 보유량 UNSSaveGame 개인별 로컬 저장
해금된 캐릭터 목록 UNSSaveGame 개인별 로컬 저장

 


 

반응형

'언리얼 게임개발' 카테고리의 다른 글

[TIL] 2026-05-21 | 최종 팀 프로젝트 3 - 전투 맵 디자인 및 NavMesh 설정  (1) 2026.05.21
[TIL] 2026-05-20 | 최종 팀 프로젝트 2 - 기획서 마일스톤 단위로 분리  (1) 2026.05.20
[TIL] 2026-04-29 | AI를 활용한 나만의 3D 게임 캐릭터 만들기 2 (Kawaii Physics를 활용한 머리카락 물리 적용)  (0) 2026.04.29
[TIL] 2026-04-27 | AI를 활용한 나만의 3D 게임 캐릭터 만들기 1 (Meshy AI 6, Hunyuan 3D, AccuRig, Gemini)  (0) 2026.04.27
[팀 프로젝트 회고] 2026-04-24 | 팀 프로젝트 회고  (0) 2026.04.27
'언리얼 게임개발' 카테고리의 다른 글
  • [TIL] 2026-05-21 | 최종 팀 프로젝트 3 - 전투 맵 디자인 및 NavMesh 설정
  • [TIL] 2026-05-20 | 최종 팀 프로젝트 2 - 기획서 마일스톤 단위로 분리
  • [TIL] 2026-04-29 | AI를 활용한 나만의 3D 게임 캐릭터 만들기 2 (Kawaii Physics를 활용한 머리카락 물리 적용)
  • [TIL] 2026-04-27 | AI를 활용한 나만의 3D 게임 캐릭터 만들기 1 (Meshy AI 6, Hunyuan 3D, AccuRig, Gemini)
개발근육체육관원
개발근육체육관원
개발 근육 단련 체육관 입니다.
  • 개발근육체육관원
    개발근육체육관
    개발근육체육관원
  • 전체
    오늘
    어제
    • 분류 전체보기 (24)
      • 언리얼 게임개발 (13)
      • AlgorithmCodekata (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Til
    AlgorithmCodekata
    c++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
개발근육체육관원
[TIL] 2026-05-15 | 최종 팀 프로젝트 1 - 프로토타입 기획서
상단으로

티스토리툴바