Skip to content

yaminsu5674/TheControl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🎮 프로젝트 시연

image

🔧 핵심 구현 기술

1. 데이터 기반 시나리오 및 대사 관리

  • 데이터테이블과 구조체를 활용하여 코드 수정 없이 데이터 자산 교체만으로 대사 흐름과 시나리오 연출을 동적으로 제어하는 구조를 설계했습니다.

2. WidgetManager 기반 통합 UI 관리

  • PlayerController의 멤버로 위젯 매니저를 구현하여 선택 창, 대화 창, 페이드 효과 등 모든 UI의 생성과 제거를 관리했습니다.
  • ZOrder를 활용해 스토리, HUD, 대사, 설정 등 UI 레이어 간의 계층 구조를 명확히 분리하여 렌더링 간섭을 차단했습니다.

3. 인터페이스 기반 AI 제어 및 성능 최적화

  • 상속과 인터페이스를 결합하여 AI 군집의 공통 기동 로직을 규격화하고 개별 유닛의 동작 확장이 용이한 클래스 구조를 설계했습니다.
  • 대규모 유닛 관리를 위해 비해비어트리 대신 C++ 코드를 통한 직접 제어 방식을 채택하여 최적화된 이동 및 사격 로직을 구현했습니다.

4. 라인트레이스 기반 전투 시스템

  • 발사체를 매번 생성하는 대신 라인트레이스 방식을 채택하여 즉각적이고 정확한 피격 판정이 이루어지는 전투 시스템을 개발했습니다.

🚀 트러블 슈팅

1. 대규모 AI 환경에서의 애니메이션 시각적 결함 해결

  • 문제 상황: - 약 50명 이상의 대규모 AI가 한 화면에 등장할 때 성능 최적화를 위한 엔진의 자동 애니메이션 생략 시스템이 작동했습니다.
    • 이 과정에서 AI가 사망하는 핵심 순간에도 애니메이션 틱이 강제로 중단되어 캐릭터가 비정상적으로 굳은 채 멈춰있는 시각적 결함이 발생했습니다.
  • 해결 방안: - 성능과 비주얼의 균형을 위해 평상시에는 가시성 기반 최적화 옵션을 유지하되, 사망 상태(Dead) 진입 시점에만 VisibilityBasedAnimTickOption을 AlwaysTickPoseAndRefreshBones로 동적 변경했습니다.
    • 사망 연출이 완료된 후에는 해당 메시의 틱을 완전히 비활성화(SetComponentTickEnabled)하여 불필요한 연산 비용을 즉시 회수하도록 설계했습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors