Gameplay Framework | Level Types | Open Level | 상속 관계 | Actor 배치

김여울·2025년 5월 19일
0

내일배움캠프

목록 보기
1/114
post-thumbnail

📍 Unreal 게임개발종합반 1주차발종합반 1주차 5강, 7강

게임의 뼈대 역할을 하는 Gameplay Framework의 주요 요소들을 정리했고, 레벨의 종류별로 구현 가능한 기능들도 살펴보았다. 게임을 플레이할 때 자연스럽게 이어지는 맵들이 사실은 레벨 전환으로 구성되어 있다는 점도 알게 되었다. 또한, 액터를 배치하는 다양한 방법과 헷갈렸던 클래스 간 상속 관계도 다시 한번 정리했다.


Gameplay Framework

📎Epic Games Developer

구성 요소역할 및 설명
액터 (Actor)게임 내 배치·스폰 가능한 기본 오브젝트, 컴포넌트 포함 가능
카메라 & 플레이어 컨트롤러플레이어 시점 관리, 카메라 조작 및 위치·방향 계산
폰 (Pawn) & 캐릭터 (Character)플레이어/AI가 조종하는 물리적 존재, 캐릭터는 이동 기능 포함
* 각 컨트롤러는 하나의 폰만 제어
컨트롤러 (Controller)폰 동작 제어(Possess), 플레이어 컨트롤러와 AI 컨트롤러로 구분
게임모드 (GameMode)게임 프레임워크의 베이스, 게임 규칙 정의, 서버에만 인스턴스화, 클라이언트에는 존재 안 함
게임플레이 타이머일정 시간 후 이벤트 실행하는 비동기 콜백 (그 함수가 따로 실행되도록 예약 )
모듈형 게임플레이 플러그인독립형 기능 관리로 코드 구조 깔끔하게 유지
UI & HUD플레이어에게 게임 정보 제공 및 상호작용 지원

Level Types

Persistent Level

  • 항상 존재하는 메인 레벨
  • 게임이 실행되는 동안 기본으로 계속 로드되어 있는 큰 맵
  • Streaming Level을 여러 레이어로 쌓아 올림

Streaming Level

  • Persistent Level 위에 레이어처럼 쌓이거나 분리된 구역을 동적으로 로드/언로드함
  • 필요할 때마다 불러와서 덧붙임 ➡ 프로크리에이트 레이어 같은 느낌!
  • 기능별로 나눔 (지형, 조명, 머티리얼 등)

🧩 예시

  • P : 큰 오픈월드 게임에서 한 지역(퍼시스턴트 레벨)은 항상 켜져 있음
  • S : 플레이어가 다른 지역으로 가면 그때 스트리밍 레벨이 불러와져서 새로운 지형이나 건물 등이 나타나는 방식

레벨 생성하기

  • Persistent level

    • 파일 > 새 레벨
  • Streaming Level

    🌀 기본 레벨 vs 빈 레벨 차이

    항목설명용도
    기본 레벨기본 환경(바닥, 조명, 하늘 등) 세팅 포함빠르게 시작하고 싶은 경우, 초보자용
    빈 레벨아무것도 없는 빈 상태완전히 새로 만들거나 맞춤 설정 원할 때
  • Streaming Level 비활성화
    ▶ SubLevel에 큐브를 배치한 후 해당 레벨을 비활성화하면 화면에서 큐브가 사라진다.

액터 배색

▶레벨별로 액터의 색상을 다르게 설정할 수 있다

스트리밍 방법 변경

  • 항상 로드됨
    • Persistent Level과 같이 항상 로드되어 있는 상태
  • 블루프린트
    - 호출될 때만 로드 ➡ 레벨 블루 프린트에서 호출 가능
    - Load Stream Level


Open Level

  • 레벨 전환
    ▶ Duration으로 설정한 3초 뒤에 레벨이 전환된다

상속 관계

클래스명설명
Actor가장 기본이 되는 부모 클래스
🔻
PawnActor를 상속, 플레이어나 AI가 조종할 수 있는 오브젝트
🔻
CharacterPawn을 상속, 걷기/뛰기 같은 움직임 기능이 기본 내장된 캐릭터

  • 상속 구조에 따른 기능
    • Actor
      • 가장 상위 조상 클래스
      • 기본적인 기능만 지님
    • Character
      • 가장 하위 자손 클래스
      • 기능이 더 많고 구체적

  • 조종 vs 움직임
    • Pawn
      • 플레이어나 AI가 ‘조종’할 수 있는 대상이야.
      • 본 Pawn은 움직임 구현이 따로 없어서 스스로 움직이지 않음
      • 움직임은 직접 코딩하거나 컴포넌트를 추가해야 함
    • Character
      • Pawn을 상속받은 클래스 + Character Movement Component가 기본으로 포함
        ➡ 걷기, 뛰기, 점프 등 기본적인 움직임 기능 가능함

❓ 왜 Character는 걷기 · 뛰기 · 점프가 가능한가

  • Character Movement Component
    ➡ 캐릭터의 점프, 걷기, 달리기 같은 움직임을 물리적으로 처리해 주는 컴포넌트
  • ⚠️ 애니메이션은 따로 만들어야 함
  • 실제 캐릭터가 움직이는 모양새는 애니메이션 블루프린트에서 설정해서 연결해줘야 한다

🌀 캐릭터 움직임 처리 과정

용어역할 및 설명
Input Mapping Context플레이어 입력(키보드, 마우스, 게임패드 버튼 등)을 게임 내 행동(액션)으로 연결하는 설정
Input Action특정 입력에 대응하는 행동 단위, 예: ‘점프’, ‘앞으로 걷기’ 같은 명령
Character Movement Component캐릭터의 걷기, 뛰기, 점프 등 물리적 움직임과 상태 변화를 처리하는 시스템 컴포넌트
Blend Space여러 애니메이션을 상황에 맞게 부드럽게 섞어 자연스러운 캐릭터 움직임을 만드는 애니메이션 시스템 도구

1️⃣ 플레이어가 키(스페이스바)를 누른다
2️⃣ Input Mapping Context 에서 ‘스페이스바’ 입력을 ‘Jump’ Input Action과 연결한다
3️⃣ Character Movement Component 가 ‘점프’ 동작을 물리적으로 실행한다
4️⃣ Blend Space 가 움직임 애니메이션을 자연스럽게 보여준다

Actor를 배치하는 방법

  • 메인 툴바에서 액터 배치하기
  • 콘텐츠 드로어에서 드래그하기
  • 레벨에서 액터 선택 후 Ctrl + C, Ctrl + V
  • 레벨에서 액터 선택 후 Alt 키 누른 상태에서 이동
  • 레벨 블루프린트에서 Spawn Actor from Class 사용
    • 게임이 시작되면(Event BeginPlay) Make Transform 에 설정한 위치로 Actor(Class) 부름

🔑 F8 - 플레이 상태 유지하면서 에디터 화면 수정 가능

💭

이전에 들었던 종합게임개발반 강의를 다시 듣고 TIL로 정리해두면 나중에 필요한 부분을 더 쉽게 찾을 수 있을 것 같다. 4월에 들을 땐 따라가기에 급급했지만, 지금은 용어도 엔진도 어느 정도 익숙해져서 정리하기 훨씬 수월하다. 이렇게 정리하다 보니 아직 완벽히 이해하지 못한 부분도 많았지만 이참에 다시 정리할 수 있어 좋았다.

0개의 댓글