언리얼 엔진 4와의 첫 시간


첫 프로젝트 생성

  • 언리얼 프로젝트 브라우저로 새 프로젝트를 만들 때 선택할 수 있는 옵션을 알아보고, 강좌에서 사용할 새 프로젝트를 만들어 봅시다.


삼인칭 템플릿을 사용해서 에디터에서 기본 프로젝트를 실행.

우측 상단 ‘플레이’ 클릭 => 에디터의 현재 프로젝트를 플레이 한다.

뷰포트 내부를 클릭하면 마우스가 사라지면서 카메라를 이동.

빠져 나올 때는 esc !!

에디터에서 뭔가를 옮기려면 => 마우스 오른쪽 버튼 혹은 왼쪽 버튼.

오른쪽 카메라 + WASD ==> 자유 이동 카메라 !!

F를 누르면 focus !!

작은 트랜스폼 위젯을 클릭하고 드래그하면 옮길 수 있음.

rotate and scale 을 통해 축을 이동 + 크기 조정

그 옆 버튼은 local. 아이템 기준으로 이동할 수 있음

스태틱 메시만이 배치 가능함.

material 은 그냥 말 그대로 재질 ..


추가 에셋을 활용한 작업

  • 에디터에 포함된 다양한 시스템으로 기존 리소스와 외부 리소스를 프로젝트에 추가하는 방법을 알아봅니다.


추가/임포트 탭에서 여러가지 항목을 가져올 수 있다.

마켓플레이스에서 여러 에셋들을 가져올 수 있다. 고퀄리티 무료 에셋이 상당히 많다 !!


첫 레벨 제작

  • 기본 에셋으로 레벨을 만들고 씬을 구성합니다.


레벨을 아무 템플릿 형식 없이 생성하면 월드 아웃라이너에도 아무것도 존재하지 않는다.

라이트도, 메시도 없다.

최상위 폴더에서 floor 을 검색해서 뷰포트에 추가해보자.

물론 필터를 통해 스태틱 메시만을 추가해야 한다.

floor 을 추가하면, 아무것도 보이지 않을 것이다. 뷰포트 좌측 상단 라이팅 탭을 수정하면 아이템이 보인다.

그러나 이 방법보다는, 액터 배치 탭에서 라이트 - 디렉셔널 라이트를 뷰포트에 드래그 하자.

디테일 탭에서 우리가 추가한 디렉셔널 라이트가 어떤 속성을 갖고 있는지 확인 할 수 있다.

우리가 원하는 스태틱 메시를 복사하려면 어떻게 해야 될까?

간단하게 생각하면 그냥 ctrl c 하면 되는 거 아닌가. 싶었지만

언리얼 엔진 뷰포트에선 이 방법이 더 편리하다.

Alt 키를 누르고 뷰포트 내 스태틱 메시의 축을 이동시키면 좀 더 디테일한 복제가 가능해진다.

우측 상단에서 스냅을 100으로 설정하면 네 번 움직일 때마다 400씩 움직인다 !!

디폴트 캐릭터는 플레이어 스타트나 카메라 위치에 스폰 된다.

Basic 탭에 플레이어 스타트 항목이 있다. 플레이어 시작 위치를 나타내는 블루 프린트다.

비주얼 이펙트 탭에 있는 스카이 애트모스피어 => 월드의 가장 윗부분이나 대기를 나타낸다.

월드에 드래그 앤 드롭해도 아무 일도 안 일어남..

E 를 누르면 객체를 회전 할 수 있음.

비주얼 이펙트에 있는 스카이 애트머스피어는 디렉셔널 라이트의 디테일 탭에서 직접 수정해줘야 상호작용을 한다.. !!


비주얼 작업

  • 기존 씬과 라이팅 구성을 살펴보고 엔진에서 라이팅이 작동하는 방식의 기초를 알아봅니다.


주요 밝기는 월드 아웃라이너 탭에 있는 디렉셔널 라이팅이 제어한다.

씬에 라이트가 얼마나 들어오는지 제어한다.

광원 ==> 태양을 모방한다.

Light Source 내에 있는 Intensity 의 lux 값을 높이거나 낮추면 전체적 광원이 올라가거나 사라진다.

SkyLight 의 Intensity Scale을 낮추면 레벨의 대부분 라이팅이 사라진다.

이걸 낮춰도 Emissive Lighting 을 갖고 있으면 전체적 광원이 없어도 볼 수 있다.

SkyLight ==> 어두운 곳의 밝기.

앰비언트 라이트이다. 그림자 속 라이팅이다. 직사광선 X

어두운 곳으로 가면 라이트가 밝아지고 밝은 곳으로 가면 라이트가 어두워진다.

이를 자동 노출이나 시각 순응이라고 한다.

월드 아웃라이너의 ‘PostProcessVolume’ Lens 탭에서 최소 밝기와 최대 밝기를 조정 가능.

Light Source 내에 있는 Light Shaft 탭에서 Occlusion 과 Bloom 설정 가능 !!

Lighting Mobility 의 유형과 그 의미

모빌리티는 씬에서 라이팅이 어떻게 쓰이는지를 결정.

무버블 ==> 완전히 동적

모든 것에 그림자가 생기고 실시간으로 라이팅이 적용되며 퍼포먼스를 가장 많이 소모한다.

스태틱을 이용하면 게임에서 실시간으로 변경이 불가능하다. 그러나 렌더링은 가장 빠르다..


블루프린트

  • 블루프린트를 열어서 살펴보며 그 구조와 용도를 알아봅니다.


객체를 클릭하고 디테일 탭에서 블루프린트 편집을 할 수 있다.

Learning Kit 내에 있는 버튼을 캐릭터가 밟으면 불이 들어오며 버튼이 내려간다.

전부 블루프린트가 제어하는 로직이다.

블루프린트 노드는 프라이머리 노드를 바탕으로 왼쪽에서 오른쪽으로 실행됨.

input setting 이 잘못됐다면 노란색으로 WARNING 문구가 뜸 ..

편집 - 프로젝트 편집에서 ‘맵 & 모드’ 와 ‘입력’ 이 중요하다. ==> 일부 게임 프레임워크와 언리얼 엔진의 유용한 기능을 설정하기 때문.


오류 수정 하는 방법 :

  • 블루프린트에 LookRight 이벤트를 새로 생성한 뒤 컴파일 한다.

image


  • 입력 세팅에서 Axis 항목에 TurnLight + Mouse X

image

image

블루프린트에서 Alt를 누르면 연결을 해제한다. ^^


결론

  • 강좌에서 배운 내용을 복습하고 문서와 학습 리소스를 통해 배울 수 있는 콘셉트를 더 소개합니다.


프로젝트에 있는 모든 에셋을 볼 수 있는 창 : Contents Browser

에디터에서 추가할 수 있는 라이트 액터 목록을 볼 수 있는 건 어떤 패널인가 : 액터 배치

레벨의 전반적인 라이트 역할을 하고 섀도에 색을 추가할 수 있는 건 어떤 라이트 액터인가 : 스카이라이트

블루프린터로 작업을 할 때는 한 인스턴스를 변경하면 같은 레벨의 다른 모든 인스턴스도 영향을 받는가 : False




언리얼 엔진 소개


에디터 기초 소개

  • 에디터의 모든 구성 요소와 각각의 목적 및 기능에 대해 배워 봅니다.


이 시리즈에서는 에디터의 기본 사항을 살펴보게된다.

  • Overview
  • Viewport
  • World Outliner
  • Details
  • Panel
  • Modes Panel
  • Content Browser
  • Main Toolbar


에디터 기초 개요

  • 에디터의 UI 및 레이아웃을 살펴 봅니다. 튜토리얼 및 문서 이용과 그 외 에디터를 활용한 작업에서 필수적인 요소에 대해 배워 봅니다.


메인 뷰포트에서 현재 진행 중인 작업을 볼 수 있다.

패널을 여러 위치로 세팅할 수 있다.


뷰포트

  • 뷰포트가 정확히 무엇인지, 그리고 프로젝트 작업에서 뷰포트를 가장 잘 활용하는 방법에 대해 배워 봅니다.


뷰포트는 월드를 바라보는 뷰를 나타낸다.

모든 항목을 눈으로 보면서 편집 할 수 있다.

왼쪽 상단 뷰 포트 옵션에선 FOV를 효율적으로 맞출 수 있다.

레이아웃 세팅에서 뷰포트의 개수를 변경할 수 있다.

또한 원근, 라이팅, 표시 등의 세팅 역시 있다.

게임 뷰에서는 게임에서 프로젝트가 실제로 보여지는 뷰를 제공한다.

블룸이 과도하다 => 포스트프로세싱 에서 블룸을 해제

세팅은 뷰 모드에서 독립적으로 실행됨

오른쪽 상단 세팅에는 아이템을 작업하는 방법이 관리된다.

W, E, R 키를 사용하여 툴을 바꾸거나 스페이스 바를 사용하여 옆에 있는 툴로 토글할 수 있다.

스냅을 월드 뷰와 로컬 뷰로 설정 가능.

기본적으로 세팅은 그리드 스냅으로 되어있다.

오른쪽 상단 세팅에서 카메라의 속도 역시 조정 가능.


월드 아웃라이너

  • 월드 아웃라이너는 레벨 속 모든 항목들의 계층구조로써, 항목의 선택, 검색, 삭제, 부모자손 관계 생성, 그룹 설정, 그리고 표시 및 숨김 기능을 위한 툴을 제공합니다.


월드를 구성하는 액터가 포함되어 있는 패널이다.

월드 아웃라이너는 오른쪽 상단에 있다.

월드 아웃라이너 블루프린트에 객체를 넣으면 자손으로 종속되어 부모-자손 관계가 성립되어 같이 이동하게 된다.

상단에서 특정 아이템 Type 를 검색할 수 있다.

Ctrl G 를 하면 그룹으로 지정된다. 그룹으로 지정된 아이템들은 동시에 작업이 가능하다.


디테일 패널

  • 디테일 패널에서는 현재 선택된 항목과 컴포넌트, 그리고 그 프로퍼티를 표시합니다. 디테일 패널에서는 프로퍼티 값을 변경하고, 컴포넌트를 추가하고, 선택된 항목을 블루프린트로 변경할 수 있습니다. 또한 다수의 디테일 패널을 사용하여 항목간의 프로퍼티를 서로 맞춰볼 수 있습니다.


디테일 패널은 레벨 내부에서 선택한 오브젝트의 세부 정보, 세팅, 옵션을 보여주는 패널이다.

오브젝트를 구성하는 컴포넌트와 프로퍼티를 보여준다.

상단에서는 아이템의 이름을 바꿀 수 있다.

블루프린트로 추가하면 여러 요소가 포함된 하나의 오브젝트를 만들 수 있다.

스태틱 메시마다 옵션이 다르다.

옵션 하나가 플레이 도중 어떤지 확인하려면 프레이 도중 숨겨진 프로퍼티 표시를 활성화 해야 한다.

프로퍼티 매트릭스에서 액터 간 공통적으로 사용되는 옵션을 한 번에 변경할 수 있다.

디테일 패널은 4개까지 늘릴 수 있다.

오른쪽 상단 자물쇠 버튼을 통해 동시에 다른 아이템들을 비교 가능.


씬은 게임 안에서 볼 때만 실행되는 파티클 이펙트가 있습니다. 파티클 이펙트 실행을 확인하는 가장 빠른 방법은 무엇인가요? : 에디터를 실시간 모드로 실행하면 전체 씬을 실행할 필요 없이 여러가지 방법으로 씬을 확인할 수 있다. (G키를 눌러 게임 뷰로 들어감)

씬을 만들었는데 미리 설정한 앵글 여러 지점에서 빠르게 확인하고 싶습니다. 언리얼 엔진의 어떤 단축키가 가장 적합할까요? : 언리얼 엔진에는 공간 내 특정 카메라 위치를 기록해 주는 단축키가 있다. (북마크)

씬에 있는 오브젝트의 위치, 회전, 스케일 값을 수동 입력해야 하는데, 어디서 해야 할까요? : 디테일 패널


모드 패널

  • 모드 패널에서는 항목 배치에 사용하는 배치 모드를 비롯해 다양한 작업 모드들을 사용할 수 있습니다. 특정 모드에 있을 경우 다른 패널에서 사용할 수 있는 선택지에 영향을 미칩니다.


모드 패널은 왼쪽 상단에 있으며 Window => modes 로 접근 가능.

Place 모드에서는 월드로 아이템을 배치 가능.

Shift + 1 을 통해 모드에 접근 가능


콘텐츠 브라우저

  • 콘텐츠 브라우저는 지오메트리와 텍스쳐 등의 모든 콘텐츠를 표시 및 정리해줍니다. 콘텐츠 브라우저는 콘텐츠를 폴더 안에 정리해주며 특정 콘텐츠에 필터를 적용할 수도 있습니다. 콘텐츠 브라우저는 최대 4개까지 열 수 있습니다.


프로젝트 내 콘텐츠 폴더에 있는 파일을 시각적으로 표현해줌.

콘텐츠 브라우저는 최대 4개까지 추가 가능하다.

필터를 설정해놓으면 토글을 통해서 조정이 가능하다.

뷰 옵션을 통해 콘텐츠 브라우저를 보는 방법을 바꿀 수 있다. 보통은 타일 옵션이 일반적.

Sclale 은 썸네일 크기를 조절한다.

컬렉션이라는 바로가기 아이콘을 만들어서 에셋을 더 쉽게 관리할 수 있다.

정적 컬렉션 혹은 동적 컬렉션을 선택할 수 있다.

콘텐츠 브라우저에는 저장 장치의 파일 구조와 에셋이 비슷하게 표시된다.

아이템을 유지 관리하고, 정렬하고, 필터링하고, 저장한 뒤 프로젝트에서 사용하게 된다.


메인 툴바

  • 메인 툴바는 프로젝트 및 그 설정에 빠르게 액세스할 수 있도록 해 주며 라이팅과 내비게이션 등의 변경 사항을 만들 수 있는 능력을 제공합니다. 또한 프로젝트를 빠르게 플레이 테스트해볼 수 있는 수단도 제공합니다.


기본 옵션 => Save Current, Souce Control, Content, Marketplace, Settings, Blueprints, Cinematics, Build, Play, Launch

레벨 저장 버튼을 누르면 맵을 디스크로 저장한다.

언리얼 엔진은 깃도 지원한다.

엔진 퀄리티 세팅의 변경 내용은 에디터에만 영향을 주지, 최종 제품 자체에는 전혀 영향을 주지 않는다.

빌드 버튼을 클릭하면 엔진에서 모든 항목을 빌드한다. 자신이 원하는 개별 부분의 항목만 빌드할 수도 있다.

Standalone Game 은 독립형 게임으로 실행된다.

Multiplayer Options 에서 멀티 플레이어 수를 조절할 수도 있다. + 서버 포트도 역시 편집 가능


에디터 기초 마무리

  • 이전 영상에서는 에디터를 커스터마이징하고 초기화 하는 방법과 뷰포트에서 스냅과 내비게이션을 사용하는 방법, 월드 아웃라이너의 항목들로 작업을 하는 방법, 디테일 패널에서 프로퍼티를 미세조정하는 방법, 배치 모드로 오브젝트를 배치하는 방법, 그리고 콘텐츠 브라우저로 콘텐츠를 정리하는 방법에 대해 배워보았습니다.


라이팅을 사용하지 않은 상태에서 레벨이 어떤지 확인하고 싶은데, 어떻게 할까요? : 라이팅 제외 뷰 모드를 선택한다.

씬 안에 있는 다수의 액터를 쉽게 선택하고 싶습니다. 에디터 어디에서 할 수 있을까요? : 월드 아웃라이너


세팅 개요 소개

  • 에디터에서 사용할 수 있는 다양한 세팅들을 살펴 보고 그 중에서도 중요한 세팅들을 짚어 보겠습니다.


이 과정에서 다룰 주제는 에디터 개인 설정이다. 이 기능에 대한 정의와, 유용하게 사용할 수 있는 기능을 알아본다.

프로젝트 세팅을 왜 사용하는지, 월드 세팅이 왜 필요한지 또 어떤 세팅이 오버라이드 되는지를 알아본다.


에디터 개인설정

  • 에디터 개인설정 창에서는 에디터의 작동 방식과 관련된 개인설정을 구성합니다. 여기서는 색이나 단축키처럼 보다 널리 사용되는 개인설정에 대해 살펴보겠습니다.


Edit - Editor Preferences

Set as Default 를 클릭해야만 수정한 값이 디폴트 값으로 설정된다.

General - Performance 섹션에서 Use Less CPU within in Background 체크 박스를 해제하자.

딱히 중요한 내용은 아니다. 내 입맛에 맞게끔 커스터마이징 해주자.


프로젝트 세팅

  • 프로젝트 세팅 창에는 프로젝트에 따른 세팅이 존재합니다. 모드, 맵, 랜더링 옵션을 설정하고, 효과를 적용하고, 특정 플랫폼을 위한 최적화를 해 봅시다.


Collision 세팅에는 몇 가지 기본 Preset 이 제공 된다.

ActionMappings or AxisMappings 를 조정해줘야 Input 설정이 제대로 작동한다.

Platforms 설정에서 Android 나 iOS 를 지원할 것인지 정할 수 있다.


게임 모드를 오버라이드하여 전체 프로젝트에 적용하고 싶습니다. 어디서 할 수 있을까요? : 프로젝트 세팅


월드 세팅

  • 월스 세팅으로는 수직 레벨, 중력, 그리고 라이트 설정 등 현재 레벨 전체를 구성하는 설정을 덮어쓸 수 있습니다.


이 창에서는 현재 작업 중인 레벨 고유의 세팅을 조정 혹은 오버라이드 할 수 있다.

Kill Z 에서 Z 는 세로 축을 의미한다.

Physics 섹션에서 중력을 조절할 수 있다.


세팅 개요 마무리

  • 지금까지 무엇을 배웠고, 또 앞으로는 무엇을 할 수 있을까요?


Editor Preferences : Appearance of the Graph Editors Options when Playing in Editor Editor Options

Project Settings : Project Information Maps and Modes Input Rendering

World Settings : Override Game Mode Gravity Lightmass


프로젝트에 독립 게임 모드가 필요한 메뉴에 쓸 레벨이 있습니다. 에디터 어디서 이 게임 모드를 설정할까요? : 월드 세팅

에디터를 실행하면 어떤 맵 파일을 로드하도록 프로젝트를 구성해야 합니다. 프로젝트 세팅에서 수정해야 할까요? : 거기 있는 맵 & 모드 세팅에서 설정합니다.

개발 도중, 플랫폼을 추가하기로 결정했습니다. 프로젝트에 플랫폼을 쉽게 추가할 수 있는 곳은 어디일까요? : 프로젝트 세팅



image



언리얼 엔진 4 용어 정리


그냥 까먹을까봐 올려두는 ,,


Project 프로젝트

프로젝트란 각각의 게임을 이루는 콘텐츠와 코드 전부가 들어있는 독립적인 유닛으로, 디스크상의 디렉터리 세트와 일치합니다.


Objects 오브젝트

언리얼 엔진의 기본 구성 요소를 Object, 오브젝트라 하며, 거기에는 게임 애셋에 대한 본질적인 “내부적” 함수성이 다수 포함됩니다.


Classes 클래스

Class 란 언리얼 엔진 게임 제작에 사용되는 특정 액터 또는 오브젝트의 작동방식 및 프로퍼티를 정의합니다. 클래스는 계층구조식으로 되어있어, 부모 클래스를 상속받은 클래스는 그 정보를 자손에게 물려줄 수 있습니다.


Actors 액터

Actor 란 레벨에 배치할 수 있는 오브젝트를 말합니다. 액터는 이동, 회전, 스케일과 같은 3D 트랜스폼을 지원하는 범용 클래스입니다. 액터는 게임플레이 코드(C++ 또는 블루프린트)를 통해 생성 및 소멸 가능합니다. C++ 에서 AActor 는 모든 액터의 베이스 클래스입니다.


Components 컴포넌트

Component 는 액터에 추가시킬 수 있는 함수성 조각으로, 컴포넌트는 독립적으로 존재할 수는 없지만, 액터에 추가시키면 자립적인 함수성 조각으로, 액터에 포함시켜야 하며, 그 자체로 존재할 수는 없습니다.


Pawns 폰

Pawn 이란 Actor 의 서브클래스로, 게임내 아바타 또는 페르소나 역할을 하며, 게임에서의 캐릭터를 예로 들 수 있습니다. 폰은 플레이어 또는 플레이 불가능한 캐릭터(NPC) 형태로 게임의 AI 제어를 받을 수 있습니다.


Brushes 브러시

Brush 브러시는 레벨 지오메트리 (다른말로 BSP) 및 게임플레이 볼륨을 정의하기 위해 레벨에 배치하는 3D 볼륨을 말합니다. 전형적으로 BSP 브러시를 사용하여 게임플레이 테스트용 레벨 프로토타입 또는 기본적인 윤곽 작업을 하게 됩니다.



게임 디자이너를 위한 블루프린트 및 게임플레이


강좌 소개

  • 강좌를 소개합니다. 디버깅부터 빠른 변수 수정, 블루프린트에서 여닫을 수 있는 문 제작까지 다룹니다.


What I Will Learn

  • The role of a Gameplay Designer in a team working with Unreal
  • Change variables at runtime
  • Debugging your work
  • Setting up input for your project
  • Setting up a parent blueprint
  • Creating Child Blueprint to build on the logic of the parent
  • Basics to Sounds and Particles
  • Utilizing a Post Process Effect
  • How to use timelines
  • The basics of UMG


게임플레이 디자이너란?

  • 게임플레이 디자이너의 역할과 신입에게 요구되는 역량을 알아봅니다.


블루프린트는 새 게임플레이 프로토타입을 만들거나 프로그래머가 이미 만들 걸 반복잡업 할 때 유용한 툴이다.


일인칭 플레이어 캐릭터

  • 무브먼트 변수를 조작하기 전에 기존 플레이어 캐릭터 블루프린트를 살펴봅니다.


일인칭 플레이어 캐릭터 블루프린트에 대해 알아보자.

Most common variables:

  • Boolean : True or false value (bool)
  • Integer : Whole number value (소수점 이하 값 가질 수 없음)
  • Float : Number value with a decimal (소수점 이하 값 가질 수 있음)
  • Vector : Set of three numbers (X, Y, and Z) (액터의 월드 내 위치를 나타내고, X,Y,Z는 게임 월드의 차원을 뜻한다.)

원하는 아이템을 선택한 후 Ctrl + B 를 누르면 콘텐츠 브라우저에서 해당 에셋으로 이동한다. 액터를 찾을 때 유용한 단축키 !!


image

(1인칭 캐릭터의 블루프린트)


image

(좌클릭 시 발생하는 Sound의 Volume이 너무 커서 1.0에서 0.1로 줄여주었다!!)


image

(해당 에셋의 뷰포트)


movement Component는 우리 눈에 보이진 않지만 수많은 로직이 내포되어 있다.

예를 들어 jump를 입력하면, 이 Component 내의 함수가 호출되는 것이다.


Max Walk Speed 의 값을 1000 으로, Jump Z Velocity 의 값을 1000으로 바꿔보자.

사실 굳이 블루프린트를 통해 값을 변경할 필요는 없다. 그냥 콘텐츠 브라우저 내에서도 디테일 패널을 통해 movement 로직을 변경할 수 있다!!


컴포넌트 변수 변경하기

  • 게임 시작 시 활성화되는 편집 가능 변수를 추가합니다. 코드에 코멘트를 달면서 마무리합니다.



image




image


ThirdPersonCharacter 의 블루프린트 클래스 내에 있는 뷰포트에서 CapsuleComponent 를 조정해줌 → 캐릭터의 발이 땅 속으로 꺼지는 오류 해결.


Cinematic Sequencer 내에서 캐릭터 객체에 애니메이션 부여 가능.


Static mesh 를 캐릭터의 하위 클래스에 부여 불가능 → 블루프린트 생성 및 컴파일 후 부여 가능.


퀵셀 브릿지 내에 있는 나나이트 에셋 이용


combat system

Categories:

Updated:

Leave a comment