언리얼 적응하기 #1
2021. 6. 29. 00:50ㆍStudy/Unreal
- 해당 스크립트는 이득우의 언리얼 C++ 게임 개발의 정석을 참고하였습니다.
- 언리얼 엔진의 콘텐츠를 구성하는 핵심 요소를 학습하고, 필수적인 문법요소를 훑어본다.
- 그중에서도 액터와 컴포넌트에 대해서 다뤄본다.
- 언리얼 콘텐츠의 구성 요소
- 월드 : 게임 콘텐츠를 구성하기 위한 필수적인 환경
- 뷰포트 윈도우에 보이는 작업 공간을 월드라 부른다.
- 월드의 구성요소
- 공간 : 가상 세계를 구성하는 3차원의 영역. 물체는 월드의 어딘가에 존재해야 하는데, 이를 위해 Transform 이라는 구조체를 제공한다.
- 시간 : 가상 세계에서 흐르는 시간. 현실 세계와 동일하게 흘러가지만, 스케일을 조절할 수 있다.
- 물리 : 배치된 물체에 작용하는 물리적인 환경. 예를 들면 중력이 있다. 이를 위해서는 물체에게 Collision 정보가 있어야한다.
- 렌더링 : 엔진이 제공하는 시각적인 기능. 빛과 이에 반응하는 Material로 구성되어 있음.
- 액터 : 콘텐츠를 구성하기 위한 최소 단위의 물체
- 다양한 액터들의 목록은 월드 아웃라이너에서 확인 가능하다.
- 액터의 속성은 디테일 윈도우에서 확인 가능하다.
- 액터의 요소
- 이름 : 액터에 부여된 명칭. 같은 이름을 가질 수 있다.
- 유형 : 액터의 역할. 프로그래밍 관점에서는 Class 이름이 된다.
- Transform : 액터는 반드시 월드에 존재해야 하므로, 항상 Transform이 부여된다. --> 존재하기 위한 필수요소
- Property : 액터에 설정된 속성 값. 같은 유형을 가진 액터를 속성 값에 따라 다른 행동을 하게 할 수 있다.
- Game Logic : Blueprint / C++ 언어를 지원하며 프로그래밍 코드를 뜻함.
- 액터의 기능
- 시각적 기능 : 플레이어에게 어떻게 보여질 것인가?
- 물리적 기능 : 액터의 이동 / 액터들 간의 상호 작용
- 움직임 : 액터가 어떤 움직임을 가질 것인가?
- 레벨 : 액터들의 집합
- 뷰포트에서 액터를 이동하고 붙이고 속성을 설정하는 등의 행위를 레벨을 설계한다고 한다.
- 이를 설계대로 잘 동작하는지 테스트하는 과정은 플레이를 통하여 알 수 있다.
- 컴포넌트 : 액터를 설계할 때 다양한 경우에 대처하기 위해 기능을 규격화하고 액터가 이를 조립할 수 있도록 설계했는데, 이러한 규격화된 기능을 컴포넌트라고 한다.
- 주요 컴포넌트
- StaticMesh Component : 애니메이션이 없는 모델링 에셋인 스태틱메시를 사용하여 시각적 기능과 물리적 기능을 제공 (애니메이션이 없기 때문에 보통 움직임을 제공하지 않음) . 주로 배경에 사용.
- SkeletalMesh Component : 애니메이션 정보가 있는 모델링 에셋은 스켈레탈 메시를 사용하여 시각적 기능, 물리적 기능, 애니메이션을 제공. 주로 캐릭터에 사용함.
- Collision Component : 구/박스/캡슐로 지정한 영역에 물리적인 기능을 설정하기 위해 제공하는 모듈. 시각적 기능 X
- Camera Component : 가상 세계에서 보여지는 상황을 모니터에 출력해주는 모듈
- Audio Component : 가상 세계에서 소리를 발생시키는데 사용하는 모듈
- Particle System Component : 파티클 시스템으로 설계된 이펙트를 화면에 보여주기 위한 모듈
- Light Component : 물체에 광원효과를 부여하는 모듈
- Movement Component : 물체에 특정한 움직임을 부여하는 기능
- 애니메이션과 Movement는 다른 것을 의미하는 것인가? (SkeletalMesh = StaticMesh + Movement) ?
- 액터는 여러 개의 컴포넌트를 가질 수 있다.
- 액터는 반드시 대표하는 하나의 컴포넌트를 지정해야 하고, 이를 Root Component라 한다.
- 주요 컴포넌트
- 월드 : 게임 콘텐츠를 구성하기 위한 필수적인 환경
- 액터의 설계
- 하나의 액터는 여러 개의 컴포넌트를 가질 수 있으므로, 분수라는 Actor가 있을 경우
- 분수대는 분수대의 본체와 물로 구성한다.
- 충돌과 비주얼을 담당하는 본체는 StaticMesh Component, 비주얼을 담당하는 물은 StaticMesh Component
- 액터가 해당 컴포넌트 클래스 정보를 참조할 수 있도록 헤더파일을 수정해준다.
- 언리얼 실행 환경에서 객체를 자동으로 관리하기 위해서는 UPROPERTY 매크로를 사용한다.
- UPROPERTY
- 언리얼 오브젝트에서만 사용할 수 있다.
- 언리얼 오브젝트란 언리얼 실행 환경에 의해 관리되는 C++ 객체
- 언리얼 오브젝트가 되기 위햐서는 필수 매크로와 규칙을 따라야 한다.
- UCLASS / GENERATED_BODY
- 접두사 U(컴포넌트 클래스)/A(액터 클래스) - ex) AFountain , UStaticMeshComponent
- generated.h
- 모듈명_API 클래스명
- UPROPERTY
'Study > Unreal' 카테고리의 다른 글
유니티에서 언리얼 - 용어 (0) | 2020.10.14 |
---|---|
Unity 에서 Unreal (0) | 2020.05.31 |