분류 전체보기 139

시스템 분석 (IPOF + 시스템 맵)

최근 재미있고 하고 있는 림버스 컴퍼니 시스템 분석1. 핵심 시스템 목록분석 대상 : 림버스 컴퍼니림버스 컴퍼니의 주요 시스템은 다음과 같다.전투 시스템 (합/코인 전투)인격 성장 시스템 (레벨, 동기화)E.G.O 시스템자원 획득 시스템거울던전 시스템스토리 진행 시스템가챠(추출) 시스템파티 편성 시스템상태이상 시스템시즌 및 패스 시스템2. IPOF 분해2-1. 전투 시스템 (Core)시스템 설명플레이어가 적과 전투하여 스토리 진행 및 각종 재화를 획득하는 핵심 시스템이다.항목내용Input플레이어의 인격 선택, 스킬 선택, E.G.O 사용Process1. 속도 계산 2. 타겟 지정 3. 합 발생 4. 코인 판정 5. 피해 계산 6. 상태이상 적용Output피해량, 적 처치, 전투 결과Feedback승리/패..

카테고리 없음 2026.06.01

오브젝트 풀링(Object Pooling)

오늘 배운 개념오브젝트 풀링(Object Pooling)은 자주 생성되고 삭제되는 객체를 미리 생성해두고 재사용하는 메모리 및 성능 최적화 기법이다.게임에서는 총알, 이펙트, 몬스터, UI 같은 객체가 반복적으로 생성되고 제거된다.이때 매번 Spawn과 Destroy를 반복하지 않고, 비활성화 후 다시 재사용하는 방식으로 동작한다.왜 사용하는가게임에서 객체 생성과 삭제는 생각보다 비용이 크다.객체를 생성할 때는:메모리 할당컴포넌트 초기화등록 처리등이 필요하다.삭제 시에도:메모리 정리참조 제거Garbage Collection 처리과정이 발생한다.이 작업이 반복되면 프레임 드랍이나 순간적인 렉(Stutter)이 발생할 수 있다.오브젝트 풀링은 이런 비용을 줄이기 위해 사용한다.어떤 문제를 해결하는가Spawn..

UE5 패키징 & 로딩 스크린

패키징 시 에디터 전용 헤더 오류문제fatal error C1083: Cannot open include file: 'SNegativeActionButton.h': No such file or directoryfatal error C1083: Cannot open include file: 'AssetSelection.h': No such file or directory원인SNegativeActionButton.h, AssetSelection.h 등은 에디터 전용 헤더다.에디터에서 플레이할 때는 멀쩡히 동작하지만, 패키징 시에는 에디터 모듈이 포함되지 않기 때문에 찾지 못해 빌드가 실패한다.해결해당 #include 줄을 제거한다. 실제로 사용 중인 코드라면 에디터 전용으로 분리한다.// 에디터에서만 사용하..

UE5 실시간 HUD 연동 & 로딩 화면 구현 TIL

실시간 HUD 연동목표AgentDataLogger 컴포넌트에서 수집하는 차량 데이터(속도, 조향각, 가속도, UTM 좌표 등)를 UMG 위젯에 실시간으로 표시구조 설계처음에는 AHUD 클래스를 사용하려 했으나, UE5 실무에서는 AHUD 를 거의 사용하지 않는다.현재 표준은 UUserWidget 단독으로 HUD를 처리하는 방식이다.또한 위젯에서 직접 FindComponentByClass 로 DataLogger를 찾는 방식보다,GameInstanceSubsystem 에 레퍼런스를 등록해두고 어디서든 꺼내쓰는 방식이 실무 표준이다.최종 구조:UAgentDataLogger (BeginPlay) └─ Subsystem에 자신을 RegisterUAgentLoggerSubsystem (GameInstance 수명)..

모바일 액션 RPG UI 설계 과제

화면 목록 정의1로고/스플래시 화면게임 시작 로딩2로그인 화면계정 로그인3서버 선택 화면접속 서버 선택4캐릭터 선택 화면캐릭터 선택/생성5메인 로비 화면게임 진입 전 허브6인게임 HUD실제 플레이 화면7인벤토리 화면장비/아이템 관리8캐릭터 정보 화면스탯/장비 확인9스킬 강화 화면스킬 업그레이드10상점 화면아이템 구매11퀘스트 화면진행 퀘스트 확인12우편함 화면보상 수령13설정 화면그래픽/사운드 설정14파티/매칭 화면멀티플레이 준비15결과 화면전투 종료 결과16게임 종료 팝업종료 여부 확인화면 흐름도[스플래시] ↓ 자동 로딩[로그인] ↓ 로그인 성공[서버 선택] ↓ 서버 선택 완료[캐릭터 선택] ├─ 캐릭터 생성 버튼 → [캐릭터 생성] └─ 게임 시작 버튼 → [메인 로비][메인 로비]..

카테고리 없음 2026.05.22

UE5 게임 시간 시스템 설계

목차왜 리팩터링이 필요했나SetTime: 증분 → 절대값UTickableWorldSubsystem으로 자동 시간 흐름레벨 전환 시 시간 유지 (GameInstance 연동)FTimeOfDay 구조체 + ETimeOfDay EnumDynamic Multicast Delegate로 블루프린트 바인딩전체 구조 정리추후 확장 포인트1. 왜 리팩터링이 필요했나처음 만든 TimeSubsystem은 동작은 했지만 구조적인 문제가 있었다.항목기존문제SetTime()증분값으로 AddActorLocalRotation매 호출마다 각도 누적 → 시간 지날수록 조명 각도 틀어짐자동 흐름없음외부에서 계속 SetTime 호출해야 함레벨 전환고려 없음WorldSubsystem은 레벨 전환 시 소멸 → 시간 초기화델리게이트DECLAR..

카테고리 없음 2026.05.21

SoundManagerSubsystem 개발 일지

날씨 효과음, UI 클릭음, 음성 안내 등 다양한 사운드를 한 곳에서 관리하는 서브시스템을 직접 구현했다.왜 만들었나프로젝트에서 사운드 재생이 여러 곳에 흩어져 있었다. 날씨가 바뀔 때 비 소리, 바람 소리를 동시에 제어해야 하고, 음성 안내는 새 안내가 오면 이전 것을 끊어야 하며, UI 클릭음은 그냥 단발성으로 쏘면 된다. 이걸 PlaySound2D 하나로 다 처리하다 보니 중복 재생, 볼륨 관리 불가 등의 문제가 생겼다.그래서 SoundManagerSubsystem 을 만들어 카테고리별로 관리하는 구조를 잡았다.왜 GameInstanceSubsystem인가처음엔 레벨에 Actor를 배치해서 관리하려 했는데, 레벨 전환 시 Actor가 소멸되면서 재생 중이던 환경음이 끊기는 문제가 생겼다.방식문제AA..

카테고리 없음 2026.05.20

차량 AI 카메라 무빙 + 사운드 구현기

오늘 한 것급정거 카메라 피드백, 브레이크 사운드, 엔진 사운드 구현했다.급정거 카메라 무빙 - 델리게이트 + Timeline구조C++에서 델리게이트 선언 → BTT에서 브로드캐스트 → 블루프린트에서 Timeline으로 카메라 이동C++ 추가// CityVehiclePawn.hDECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnEmergencyBrake, float, BrakeValue);UPROPERTY(BlueprintAssignable, Category="Camera")FOnEmergencyBrake OnEmergencyBrake;UFUNCTION(BlueprintCallable, Category="Camera")void TriggerEmergencyBrakeCame..

차량 AI 스플라인 추종 + 브레이크 등 + 헤드라이트 + 사이드미러 구현

언리얼 엔진에서 AI 차량이 스플라인 도로를 따라 자율주행하는 시스템을 만들면서 생긴 문제들을 해결했다.1. SplineFollower - 커브에서 감속이 안 되는 문제원인LateralFriction 값이 너무 높으면 곡률 기반 안전속도가 높게 계산돼서 브레이크 명령이 거의 안 나온다.안전속도 계산 공식:V_max = sqrt(LateralFriction × 980 × Radius)LateralFriction이 1.3이면 반경 1000cm 커브에서도 안전속도가 약 40km/h로 계산되기 때문에 차가 40km/h로 달려도 브레이크가 안 걸린다.해결Lateral Friction : 1.3 → 0.4Brake Preview Dist : 8000 → 6000Min Speed : 400 → 5002. 브레이크 등..

성장 테이블 설계

게임 기획 및 설정장르: 소울라이크 스타일의 하드코어 액션 RPG플랫폼: PC / Console (Steam, PlayStation 5)타겟 플레이어: 묵직한 타격감과 정교한 공방 컨트롤을 선호하며, 보스 패턴을 파훼하고 캐릭터를 성장시키는 데에서 성취감을 느끼는 20~30대 게이머설계 목표레벨업 목표 시간:초반 (Lv 1~10): 레벨당 10~20분 내외, 기본 시스템을 학습하며 빠른 성장의 재미를 체감하도록 유도중반 (Lv 11~20): 레벨당 40~60분 내외, 본격적인 장비 파밍과 빌드 최적화 요구후반 (Lv 21~30): 레벨당 90~120분 내외, 정교한 컨트롤과 상위 콘텐츠 반복 플레이 필요목표 TTK (Time To Kill) 범위:일반 몬스터/동레벨 표준 전투 기준 5초 ~ 25초 범위로..

기획 2026.05.18