Unreal Engine

Unreal이란 무엇인가?

programmer-faust 2025. 4. 29. 18:26

1.Unreal Engine

  • 게임엔진이란?
    • 게임을 개발할 때 필요한 기능들을 모아놓은 통합 소프트웨어 프레임워크
    • 게임엔진을 이용해 그래픽, 물리, 소리, 애니메이션, 인공지능 등의 다양한 요소를 빠르고 효율적으로 구현할 수 있도록 함.
  • Unreal Engine의 주요 기능
    1. 렌더링엔진
      • 실시간 레이 트레이싱
      • 나나이트
      • 루멘
      • 리얼 타임 렌더링
    2. 블루프린트 - 비주얼 스트립팅
      • 프로그래밍 지식이 없어도 게임플레이 요소, 로직 등을 제작할 수 있는 Unreal Engine의 고유 코딩 언어
      • 노드 기반 인터페이스를 사용하여 스크립트를 생성 및 편집할 수 있음
      • 텍스트 기반 프로그래밍 언어(C++)에 능숙하지 않은 유저의 경우에 개발 프로세스를 크게 간소화 할 수 있는 장점이 있음
      • 위와 같은 시각적 특성 덕분에 게임 로직을 쉽게 구축 가능
      • 개발 초기 단계부터 빠르게 프로토 타입을 제작하기 좋
    3. 물리엔진
      • 에픽게임즈에서 개발한 카오스 물리엔진
        • 단순 충돌 계산부터 파괴, 천 시뮬레이션, 차량 물리, 리지드바디 역학등의 고급 물리기능 제공
      • Rigid body Dynamics(강체 역학)
        • 오브젝트 간 충돌, 중력, 회전, 마찰 등을 계산
        • 박스, 구, 캡슐 등 기본 콜리전 형태 제공
        • 실제 물리와 유사한 운동을 구현가능
      • Chaos Destruction(파괴 시스템)
        • 벽, 건물, 바위 등을 현실감 있게 부서지게 할 수 있음
        • 클러스터(Cluster) 시스템으로 구조물이 부분적으로 또는 전체적으로 파괴됨
        • 실시간 파괴, 프랙처(Fracture) 편집기를 제공함
      • Chaos Cloth(천 시뮬레이션)
        • 캐릭터의 옷, 커튼, 깃발 등 부드러운 물체를 자연스럽게 시뮬레이션 가능함
        • 캐릭터와 충돌하거나 바람에 반응하도록 설정 가능함
      • Chaos Vehicles(차량 물리)
        • 바퀴 회전, 접지력, 서스펜션 등을 현실감있게 구현 가능하게 함
      • Chaos Niagara Physics Fields(물리 필드)
        • 폭발, 중력장, 바람 등 외부 힘을 시뮬레이션할 수 있는 필드 기반 시스템
        • 파티클 시스템(Niagara)과 연동되어 다양한 물리 기반 VFX 구현이 가능함
      • Geometry Collections(구조물 시뮬레이션)
        • 하나의 메쉬를 여러파편으로 나눠 실시간 파괴 시뮬레이션이 가능함
        • 게임 내 건물 무너짐, 돌 부서짐등의 구현에 필수요소
  • Unreal의 장점과 단점
    • 장점
      1. 최고 수준의 그래픽 품질 - 나나이트와 루멘 등 최신 렌더링 기술로 영화급 비주얼을 구현 가능함
      2. 강력한 내장 툴셋 - 블루프린트, 시퀀서, 메타휴먼 등으로 개발자가 직접 리소스를 만들고 관리할 수 있음
      3. C++ 기반과 블루프린트 - 고급 개발자용 코딩과 비프로그래머용 비주얼 스크립팅 모두 지원
      4. 멀티플랫폼 지원 - PC, 콘솔, 모바일, VR/AR, 클라우드 게임 등 다양한 환경에서 실행 가능
      5. 시네마틱 툴 지원 - 시퀀서, 카메라 기능이 탁월해 영화 및 애니메이션에도 활용 가능함
      6. 무료 사용 가능 - 수익이 일정기준 넘지 않으로 무료로 상업적인 이용 가능
      7. 오픈소스에 가가운 소스코드 접근 - GitHub에서 전체 엔진 소스를 열람 및 수정 가능
    • 단점
      1. 학습 곡선이 가파름 - 기능이 많고 복잡하여 초보자에게 진입장벽이 높음
      2. 엔진 자체 용량이 큼 - 기본 설치만 해도 수십 기가바이트, 고사양 PC 요구
      3. 모바일/경량 프로젝트에는 과함 - 고성능이 장점이지만, 간단한 2D게임엔 오히려 비효율적일 수 있음
      4. C++ 기반의 복잡성 - 고급 기능 구현시에는 메모리 관리 등 C++ 특유의 어려움이 있음
      5. 빠른 업데이트와 호환성 이슈 - 버전 간 기능 변경이 커서 프로젝트 이전 시 문제가 생기기도 함
  • Unreal Engine으로 제작된 대표적인 게임과 해당 게임내의 Unreal의 역할
    1. 배틀그라운드
      • 대규모 오픈월드 맵 로딩, 멀티플레이어 최적화, 총기 물리 및 반동 구현
      • 언리얼 엔진 4기반으로 제작되어 안정성 및 성능 튜닝이 핵심 
    2. 포트나이트
      • 실시간 멀티플레이 구현, 맵 편집 도구, 라이브 이벤트 시스템 구축
      • 루멘, 나나이트 기반의 차세대 비주얼 테스트 무대
      • 특징: Unreal Engine을 개발한 에픽게임즈가 직접 만든 대표 게임이자 기술의 시연장임

2.게임씬의 개념

  • 게임씬이 의미하는 것과 게임씬이 게임의 구성요소에서 어떤 역할을 하는지
    • 게임씬 - 게임 내에서 특정 상황이나 화면을 독립적으로 정의한 단위 공간 또는 로직 묶음
      • 게임 오브젝트, 렌더링 요소, 로직 등의 요소들을 포함하고 있음
    • 게임 씬의 역할
      1. 게임의 흐름을 구분하여 게임의 시작과 전개 종료를 구분하여 개발 및 관리가 용이함
      2. 리소스를 최적화 하여 필요한 오브젝트, 사운드와 코드만 씬에 포함되므로 메모리 사용량을 최소화함
      3. 독립적인 테스트가 가능하여 버그 테스트 및 디버깅이 수월하도록 함
      4. 사용자 경험 설계를 통해 씬 전환 애니메이션, UI배치 등을 통해 자연스러운 게임 흐름을 구현할 수 있음
  • Unreal Engine에서 사용하는 주요 게임씬 구성요소와 역할
    1. 액터(Actor)
      • 씬의 구조를 정의하고, 컴포넌트와 함께 게임의 로직과 동작을 담당함
    2. 컴포넌트(Component)
      • 렌더링, 물리, 충돌, AI 애니메이션 등 다양한 기능을 수행하며, 액터의 동작을 결정함
    3. 맵(Map)
      • 씬의 구조를 정의하고, 액터와 컴포넌트의 위치, 배치, 상호 작용을 결정함