Taene's
[UE5] 게임 제작 기초 본문
< 게임 콘텐츠의 구조 >
월드(World)
- 게임 콘텐츠를 담기 위해 제공되는 가상의 공간
- 월드는 시간, 트랜스폼, 틱을 서비스로 제공한다.
- 월드 세팅이라는 콘텐츠 제작을 위한 기본 환경 설정을 제공한다.
- 월드의 기본 단위는 액터(Actor)로 정의되며, 액터 클래스는 언제나 접두사 A를 사용한다.
- 월드의 역할
- 게임 콘텐츠를 담는 공간 ( Transform )
- 게임 콘텐츠의 진행 ( Tick )
- 게임 흐름을 위한 시간 ( Time )
- 기본 환경 설정 ( World Setting )
- 월드의 단위 구성 요소 ( Actor )
게임 모드(Game Mode)
- 게임 규칙을 지정하고 게임을 판정하는 최고 관리자 액터 ( 형태가 없다. )
- 언리얼 엔진에서 하나의 게임에는 반드시 하나의 게임 모드만 존재한다.
- 게임 모드에서 입장할 사용자의 규격을 지정할 수 있다.
- 멀티 플레이어 게임에서 판정을 처리하는 절대적 권위의 심판이다.
- 게임 모드의 역할
- 플레이어 입장 관리
- 게임의 최종 승패 관리
- 게임의 규칙 관리
- 게임 데이터 검증 ( 멀티 플레이 게임 )
기믹(Gimmick)
- 게임 진행을 위한 이벤트를 발생시키는 사물 액터
- 주로 이벤트 발생을 위한 충돌 영역을 설정하는데, 이를 트리거(Trigger)라고 한다.
- 트리거를 통해 캐릭터와 상호 작용하고, 월드에 액터를 스폰해 콘텐츠를 전개한다.
- 기믹의 역할
- 월드 내 사물과 상호 작용을 수행
- 지정된 조건을 만족하면 이벤트를 발생
- 월드에 물체를 스폰(Spawn)시킬 수 있음
플레이어(Player)
- 게임에 입장한 사용자 액터 ( 형태가 없다. )
- 게임 모드의 로그인을 통해 사용자가 게임 월드에 입장하면 플레이어가 생성된다.
- 싱글 플레이 게임에는 0번이라는 특수한 id가 플레이어에게 설정된다.
- 사용자와의 최종 커뮤니케이션을 담당한다. ( 예) 입력 장치의 해석, 화면 장치로의 출력 )
- 플레이어의 역할
- 게임에 입장한 사용자와의 1:1 대응
- 사용자의 현재 상태 및 데이터를 관리
- 필요시 사용자 입력의 1차 처리
- 사용자 화면에 대응하는 카메라 관리
- 사용자 화면에 나타나는 HUD UI 관리
폰(Pawn)
- 형태가 없는 액터인 플레이어가 빙의해서 조종하는 액터
- 길찾기를 사용할 수 있으며, 기믹 및 다른 폰과 상호 작용한다.
- 폰 중에서 인간형 폰을 별도로 캐릭터라고 지칭한다.
- 폰의 역할
- 빙의(Possess)를 통해 플레이어와 연결
- 사용자 입력의 실제 처리
- 사용자 화면에 대응되는 카메라 설정
- 기믹과의 상호 작용
- 현재 상태에 적합한 애니메이션 재생
< 게임 제작 규칙 >
프로젝트 소스코드 폴더 규칙 - 게임플레이를 구성하는 요소별 폴더 제작 및 관리
- Game: 게임 모드와 게임 설정에 관련된 클래스
- Gimmick: 기믹 배경 물체에 관련된 클래스
- Player: 플레이어에 관련된 클래스
- Input: 플레이어 입력에 관련된 클래스
- Character: 기본 캐릭터와 PC 및 NPC에 관련된 클래스
- Action: 캐릭터 액션에 관련된 클래스
- Item: 캐릭터 아이템에 관련된 클래스
- Stat: 캐릭터 스탯에 관련된 클래스
- AI: NPC 인공지능에 관련된 클래스
- UI: UI에 관련된 클래스
- Physics: 물리 충돌체 설정에 관련된 전처리기
- Interface: 인터페이스 클래스를 모아둔 폴더
클래스 생성 규칙
- 모든 클래스는 프로젝트명의 약자의 접두사로 시작함 ( 예) ArenaBattle - AB 접두사 )
- 폴더마다 다른 폴더와의 의존성을 최소화
- 다른 폴더의 클래스에 접근할 때 가급적 인터페이스를 통해 접근
- 헤더 경로를 찾기 쉽도록 모듈.Build.cs 파일에 모듈의 폴더를 인클루드 경로에 설정
- PublicIncludePaths.AddRange( new string[] { "모듈이름" }); // 추가
- 가급적이면 다른 폴더의 헤더를 직접 참조하지 않도록 구성함
'Unreal5 > Gameplay Framework' 카테고리의 다른 글
[Character] 캐릭터 제작 (1) | 2024.07.23 |
---|---|
[UE5] 액터(Actor)와 컴포넌트(Component) (0) | 2024.07.23 |