사전캠프 QUEST1 - What is Unreal Engine?

베리투스·2025년 7월 17일

TIL: Today I Learned

목록 보기
1/93
post-thumbnail

ㅁ QUEST

1.Unreal Engine의 기본 개념과 역할에 대해 이해합니다.
2.게임씬(Game Scene)의 개념과 게임개발에서의 중요한 부분에 대해 알아봅니다.
3.Unreal Engine이 게임 산업에서 사용되는 사례를 찾아보고 탐구합니다.

1. Unreal Engine을 조사해요!

Unreal Engine이 무엇인지 간단히 설명하고, 게임 엔진으로서의 역할을 조사해요.

  • 게임 엔진이란 무엇인가요?
  • Unreal Engine의 주요 기능(그래픽 렌더링, 물리 엔진, 비주얼 스크립팅 등)을 간략하게 설명해주세요. 내가 하는 게임으로 예시를 들어주신다면 베스트 입니다!
  • Unreal의 장점과 단점은 무엇인가요?
  • Unreal Engine으로 제작된 대표적인 게임 2~3개를 조사하고, 해당 게임에서 Unreal이 어떤 역할을 했는지 분석하세요.

2. 게임씬(Game Scene)의 개념 탐구

  • 게임씬이 무엇을 의미하는지 정의하고, 게임씬이 게임의 구성 요소에서 어떤 역할을 하는지 설명해주세요.
  • Unreal Engine에서 사용하는 주요 게임씬 구성 요소(월드, 액터, 라이트, 카메라 등)를 조사하고, 각 요소의 역할을 간략하게 설명해주세요.

ㅁ Answer

1. Unreal Engine 조사

  • 언리얼 엔진은 에픽게임즈에서 개발한 실시간 3D 제작 도구이다. 게임 개발뿐만 아니라 영화, TV, 건축, 자동차, 시뮬레이션 등 다양한 분야에서 고품질의 3D 콘텐츠를 제작하는 데 사용되는 강력한 플랫폼이다.
  • 게임 엔진은 비디오 게임을 개발하는 데 필요한 핵심 소프트웨어 구성 요소들을 통합한 프레임워크이다. 게임의 그래픽, 물리, 사운드, 입력 처리, 인공지능 등 다양한 기능을 효율적으로 구현할 수 있도록 돕는다. 마치 건물을 짓기 위한 설계도와 도구들이 모여있는 작업장과 같다고 생각할 수 있다.
  • 그래픽 렌더링 (Graphic Rendering): 그래픽 렌더링은 언리얼 엔진에서 게임 속 환경, 캐릭터, 오브젝트 등을 시각적으로 표현하는 핵심 기능이다. 이 과정에서는 3D 모델에 텍스처와 조명, 그림자, 이펙트 등을 적용해 실제처럼 보이도록 만든다. 렌더링 파이프라인을 통해 지오메트리 처리, 셰이딩 계산, 포스트 프로세싱 효과 등이 순차적으로 이루어진다. 언리얼 엔진은 실시간 렌더링 기술을 통해 플레이어의 입력이나 카메라 움직임에 따라 즉각적으로 화면을 갱신할 수 있다. 고급 렌더링 기능으로는 레이트레이싱(ray tracing), 글로벌 일루미네이션(GI), Lumen 같은 기술이 있다.
  • 물리 엔진 : 게임 속에서 오브젝트들이 현실 세계의 물리 법칙(중력, 충돌, 마찰 등)에 따라 움직이도록 시뮬레이션하는 기능이다. 로스트아크에서 캐릭터가 보스의 공격에 맞아 넉백될 때 날아가는 모습, 건물 잔해가 무너지면서 흩어지는 파편들, 혹은 던전 내의 함정에 걸렸을 때 캐릭터가 물리적으로 반응하는 모습 등이 물리 엔진의 역할이다.
  • 비주얼 스크립팅 (Visual Scripting) - 블루프린트 (Blueprint):
    블루프린트는 코드를 직접 작성하지 않고, 시각적인 노드 기반 시스템을 통해 게임의 로직과 기능을 구현할 수 있는 Unreal Engine의 대표적인 기능이다.
    프로그래밍 지식이 부족한 아티스트나 디자이너도 이를 통해 게임 플레이를 구성할 수 있다. 예를 들어, 특정 퀘스트 완료 후 다음 스토리로 진행되거나, NPC가 대화를 시작하는 로직, 던전 내 오브젝트 클릭 시 숨겨진 길이 열리는 상호작용 등을 쉽게 구현할 수 있다.
    또한, 보스 몬스터의 특정 패턴이 발동했을 때 배경 음악이 바뀌거나, 특정 오브젝트가 파괴되면 버프가 적용되는 등 복잡한 게임 플레이 로직도 시각적으로 연결하여 구현할 수 있다.
  • 오디오 엔진 : 게임 내 모든 소리(배경음악, 효과음, 캐릭터 음성 등)를 관리하고 재생하는 기능이다.
  • 애니메이션 : 애니메이션은 캐릭터나 오브젝트의 움직임을 구현하는 기능이다. 스켈레탈 애니메이션, 블렌드 스페이스, 애니메이션 블루프린트 등 다양한 도구를 제공하여 복잡하고 자연스러운 움직임을 쉽게 만들 수 있도록 돕는다.
  • AI : 게임 캐릭터나 오브젝트가 자율적으로 판단하고 행동하도록 만드는 시스템이다. 행동 트리(Behavior Tree)를 사용하여 AI의 의사결정 과정을 시각적으로 설계할 수 있고, 내비게이션 메시(NavMesh)를 통해 AI가 게임 맵에서 길을 찾고 장애물을 피하면서 이동할 수 있도록 지원한다. 이 외에도 블랙보드(Blackboard)는 AI가 상황 정보를 저장하고 공유하는 데 사용되고 EQS(Environment Query System) 같은 고급 기능을 통해 환경 기반의 의사결정도 구현할 수 있다.
  • Unreal Engine의 장점:
    ㅇ 고품질 그래픽: 사실적이고 뛰어난 시각 효과를 구현하는 데 탁월하다. AAA급 게임 제작에 많이 사용된다.
    ㅇ 블루프린트: 코딩 지식 없이도 복잡한 게임 로직을 만들 수 있어서 개발 접근성이 높다.
    ㅇ 다양한 플랫폼 지원: PC, 콘솔, 모바일, VR/AR 등 다양한 플랫폼으로 게임을 출시할 수 있다.
    ㅇ 방대한 자료와 커뮤니티: 전 세계적으로 많은 사용자를 보유하고 있어서 온라인 학습 자료와 커뮤니티 지원이 활발하다.
    ㅇ 마켓플레이스: 에셋 (3D 모델, 애니메이션, 효과 등)을 사고팔 수 있는 마켓플레이스가 잘 구축되어 있어서 개발 시간을 단축할 수 있다.
  • Unreal Engine의 단점:
    ㅇ 높은 학습 난이도: 다양한 기능과 복잡성 때문에 초보자가 익숙해지기까지 시간이 오래 걸릴 수 있다.
    ㅇ 하드웨어 요구사항: 고품질 그래픽을 다루기 때문에 개발 PC의 사양이 높아야 한다.
    ㅇ 파일 크기: 제작되는 게임 파일의 크기가 비교적 커질 수 있다.
    ㅇ 경량 게임에 비효율적: 매우 캐주얼하거나 2D 게임 등 가벼운 게임을 만들 때는 Unity와 같은 다른 엔진이 더 효율적일 수 있다.
  • 배틀그라운드 (PUBG: Battlegrounds): 배틀그라운드는 광활한 오픈월드 맵에서 수많은 플레이어가 동시에 경쟁하는 배틀 로얄 장르의 게임이다. 언리얼 엔진의 뛰어난 그래픽 렌더링 기능은 현실감 넘치는 지형, 건물, 오브젝트를 구현하여 몰입감을 높였다. 또한, 복잡한 총기 반동, 차량 물리, 캐릭터 움직임 등 현실적인 물리 엔진은 게임 플레이의 전략적 깊이를 더했다. 대규모 멀티플레이어 환경을 위한 최적화와 안정성 확보에도 언리얼 엔진의 기능이 중요한 역할을 했다.
  • 포트나이트 (Fortnite): 포트나이트는 카툰풍의 그래픽과 독특한 건축 시스템이 특징이다. 언리얼 엔진의 블루프린트 기능은 개발자들이 빠르게 새로운 게임 모드나 아이템 기능을 구현하고 테스트하는 데 기여했다. 특히 실시간으로 건물을 짓고 파괴하는 독특한 물리 및 충돌 시스템은 언리얼 엔진의 강력한 렌더링 및 물리 엔진 덕분에 가능했다. 지속적인 업데이트와 다양한 플랫폼 지원 역시 언리얼 엔진의 유연성 덕분이다.
  • 로스트아크 (Lost Ark): 로스트아크는 언리얼 엔진의 뛰어난 그래픽 렌더링 기능으로 아크라시아 대륙의 광활하고 아름다운 필드, 디테일한 던전, 그리고 각 클래스의 화려한 스킬 이펙트들을 현실감 있게 구현하였다. 특히 수많은 오브젝트와 캐릭터가 동시에 존재하는 환경에서도 높은 프레임을 유지하며 플레이어에게 몰입감을 제공하는 데 언리얼 엔진의 최적화 기술이 큰 기여를 했다.

2. 게임씬(Game Scene)의 개념

  • 게임씬 (Game Scene): 게임 씬은 게임을 구성하는 특정 장면 또는 레벨의 단위이다. 게임 내에서 하나의 독립적인 환경과 그 안에 존재하는 모든 요소(캐릭터, 오브젝트, 빛, 카메라, 배경, UI 등)를 포함하는 컨테이너라고 할 수 있다. 예를 들어, 로스트아크에서 '루테란 성', '베른 남부', '아브렐슈드 레이드' 등이 각각 하나의 게임 씬이 될 수 있다.
  • 게임 구성 요소에서의 역할
    ㅇ 구조화: 게임을 논리적이고 관리 가능한 단위로 나눈다. 개발자는 각 씬을 개별적으로 작업하고 테스트할 수 있다.
    ㅇ 환경 제공: 플레이어가 상호작용할 수 있는 특정 공간과 분위기를 제공한다.
    콘텐츠 관리: 씬 내의 모든 게임 오브젝트와 리소스(모델, 텍스처, 사운드 등)를 관리하고 로드/언로드하는 역할을 한다.
    ㅇ 게임 진행: 플레이어가 한 씬에서 다른 씬으로 이동하면서 게임의 스토리가 진행되거나 새로운 도전 과제가 제시된다.
    ㅇ 성능 최적화: 한 씬에 너무 많은 요소를 로드하여 성능 저하가 발생하는 것을 방지하고, 필요한 요소만 로드하여 효율적인 게임 실행을 돕는다.
  • 월드 (World) : 언리얼 엔진에서 월드는 게임 레벨 및 씬의 컨텍스트 전체를 포함하는 상위 개념이다. 이는 게임 플레이가 이루어지는 3D 공간으로, 지형, 건물, 식물 등 환경적 요소와 그 안에 배치된 모든 액터(캐릭터, 오브젝트 등)를 포함하는 전체적인 컨테이너이다. 개발자는 이 레벨 안에서 모든 게임 콘텐츠를 배치하고 구성한다.
  • 액터 (Actor): 액터는 언리얼 엔진 월드에 배치될 수 있는 모든 오브젝트의 기본 클래스이다. 위치, 회전, 크기 등의 변형 정보와 함께 다양한 컴포넌트(메시, 콜리전, 오디오 등)를 가질 수 있다. 플레이어 캐릭터, NPC, 무기, 문, 스폰 지점 등 게임 씬에 존재하는 거의 모든 것이 액터이다.
  • 라이트 (Light): 게임 씬의 조명을 담당하는 요소이다. 빛의 방향, 색상, 강도 등을 조절하여 씬의 분위기를 만들고 시각적 사실감을 높인다. 태양광(Directional Light), 점 광원(Point Light), 스포트라이트(Spot Light) 등 다양한 종류가 있다.
  • 카메라 (Camera): 플레이어가 게임 월드를 보는 시점을 결정하는 요소이다. 카메라의 위치, 회전, 시야각 등을 설정하여 쿼터뷰(IsoMetric), 3인칭 시점, 시네마틱 장면 등 다양한 시각 효과를 연출한다.
  • 컴포넌트 (Component): 컴포넌트는 액터에 기능을 추가하는 모듈식 빌딩 블록이다. 액터는 하나 이상의 컴포넌트를 가질 수 있다. 예를 들어, 움직임을 담당하는 '움직임 컴포넌트', 시각적인 외형을 담당하는 '메시 컴포넌트', 소리를 내는 '오디오 컴포넌트' 등이 있다. 컴포넌트를 조합하여 액터의 다양한 행동과 외형을 정의한다.
  • 스태틱 메시 (Static Mesh): 월드에 배치되는 정적인 3D 모델이다. 움직이지 않는 오브젝트, 예를 들어 건물, 바위, 나무, 책상 등이 스태틱 메시로 구현된다.
  • 월드 세팅 (World Settings): 현재 씬에 대한 전반적인 설정 값을 관리한다. 게임 모드, 물리 설정, 내비게이션 메시 생성 옵션, 환경 설정(안개, 대기) 등 레벨 전체에 영향을 미치는 속성들을 제어한다.
  • 블루프린트 (Blueprint): 코딩 없이 노드 기반으로 게임 로직을 구현하는 비주얼 스크립팅 시스템이다. 액터에 기능을 부여하거나 특정 이벤트를 처리하는 데 사용된다.
profile
Shin Ji Yong // Unreal Engine 5 공부중입니다~

0개의 댓글