본문 바로가기
개발일지/Unreal&C++

[Unreal] 게임 플레이 프레임워크

by 쫌눈 2025. 3. 18.
728x90
반응형

 

게임 플레이 프레임 워크

  • 액터
    • 레벨에 배치하거나 스폰할 수 있는 오브젝트의 기본 클래스
    • 액터의 이동방식, 렌더링 방식을 제어하는데 사용할 수 있는 액터컴포넌트 컬렉션이 포함될 수 있다.
    • 플레이 도중 네트워크를 통해 프로퍼티 및 함수 호출의 리플리케이션 지원
  • 카메라
    • 플레이어가 월드를 보는 방식. 플레이어의 시점.
    • 플레이어가 월드를 보는 위치와 방향을 계산
  • 플레이어 컨트롤러
    • 카메라 클래스 지정
    • 카메라 액터 인스턴스화
    • 플레이어 혹은 AI가 제어할 수 있는 모든 액터의 베이스 클래스
    • 기본적으로 컨트롤러와 폰은 1:1대응관계
    • 컨트롤러는 하나의 폰만 제어가능
  • 컨트롤러
    • 폰(부모가 폰인 모든)클래스에 빙의하여 동작을 제어하는 비물리적인 액터
    • 플레이어 컨트롤러는 인간 플레이어가 폰을 제어하는데 사용.
    • AI컨트롤러는 자신이 제어하는 폰의 인공지능을 구현하는데 사용
    • Possess함수를 사용해 폰을 제어, UnPossess함수를 사용해 제어권 포기
  • 게임플레이 타이머
    • 일정 시간동안 이벤트를 트리거 하는 특정 함수 포인터에 대한 비동기 콜백 생성
  • 게임모드
    • 게임 프레임워크의 베이스
    • 레벨이 게임 플레이를 위해 초기화 될 때 AGameModeBase액터 인스턴스화
    • 게임의 규칙 설정
    • 서버에만 존재.
  • 게임기능 및 모듈형 게임 플레이
    • 개발자가 프로젝트에 독립형 기능을 만들 수 있도록 도와주는 플러그인
    • 프로젝트의 코드 베이스를 깔끔하고 읽기 쉽게 유지
    • 관련없는 기능간의 우발적인 상호작용이나 종속성 방지
  • 사용자 인터페이스(UI) 및 헤드업 디스플레이(HUD)
    • 플레이어에게 게임에 대한 정보 제공
    • 게임과 상호작용할 수 있도록 하는 방식(버튼 클릭 등)

 

 

프레임워크 클래스 관계

출처 : 언리얼 공식 홈페이지

위의 플로우차트는 핵심 게임 플레이 클래스가 서로 어떻게 연관되어있는지 보여준다.

게임은 GameMode(Server) GameState(Server,Client)로 구성되어 있고, 게임에 참여하는 Player는 PlayerController와 연관이 되어있다.

PlayerController에는 입력처리, HUD, 카메라 뷰 처리를 위한 CameraManager가 있고, PlayerController는 Pawn(Character)에 빙의(Possess)하여 위와같은 처리를 한다.

AIController는 입력을 AI로 처리하고, HUD, 카메라 뷰 처리는 필요없다. AIController도 Pawn에 빙의하여 정해진 입력대로 처리한다.

 

취소선으로 되어있는 부분은 아직 숙지가 필요한 부분

추후 숙지 완료 시 업데이트 예정

출처

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/gameplay-framework-in-unreal-engine?application_version=5.4

 

 

728x90
반응형