블루프린트 클래스 계층구조
상위 클래스에서 하위 클래스로 내려올수록 점점 구체화된다.
- Object : 블루프린트에 최상위 계층
- Actor : 씬(레벨)에 배치될 수 있는 최상위 클래스
- Pawn : 조작할 수 있는 액터
- Character : 물리적인 이동이 가능
※Component : 구성요소, 부품
- Actor Component : 액터가 가지는 구성요소, 단순 수치(데이터)를 가진다
- Scene Component : Transform(위치)를 가진다
- Controller
- Player Controller : 게임을 하는 플레이어라고 볼 수 있음. Controller는 기본적으로 하나만 존재.
Player가 조작할 Pawn을 선택하는 느낌.
※Posses : 소유, 점유하다. 언리얼엔진에서 빙의한다는 말로 번역되있음.
따라서 플레이어가 조작할 대상(Pawn)에 빙의하여 조작한다는 느낌이다.
블루프린트 클래스를 통해 액터(Actor) 만들어보기
콘텐츠 브라우저1 창에서 우클릭 - 목록에 있는 블루프린트 클래스를 눌러준다.
여기서 블루프린트 클래스라고 하는데, 이 클래스는 C++에서 우리가 사용했던 class와 같다고 보면 된다.
블루프린트 클래스를 누른 뒤 나온 부모 클래스 선택 창에서 우리가 이번에 만들어 볼 Actor를 선택한다.
이번엔 BP_Cube라는 이름으로 지었다. 확장자나 따로 붙는 내용이 없기 때문에, 다른 에셋들과 이름이 겹치는 것을 방지해주기 위해서 접두어를 붙여주는 작명방식을 사용하는 것이 좋다.
우리가 만든 BP_Cube에셋을 살펴보기 전에 먼저 에셋 에디터가 실행되는 위치를 바꿔줄 것이다.
편집 - 에디터 개인설정을 통해서 위와같은 창이 뜨면, 일반 / 외형 탭에서 에셋 에디터 실행위치를 Main Window로
바꿔줄 것이다.
New Window는 새창에 띄우고, Cotent Browser는 콘텐츠 브라우저 창에 띄운다는 것이라 잘 쓰이지는 않는다고 한다.
이제 아까 만든 BP_Cube를 더블클릭하면 Main Window에 BP_Cube창이 만들어지면서 클래스 디폴트 탭이 보인다.
스크립트나 변수가 없는 액터는 저렇게 블루프린트 전용 데이터로 기본값만 표시가 될텐데, 세부사항을 보기위해
풀 블루프린터 에디터 열기를 눌러준다.
풀 블루프린트 화면 알아보기
- 컴포넌트 : 컴포넌트를 추가 및 제거
- 내 블루프린트 : 블루프린트로 만든 클래스의 변수, 함수 등등을 확인하고 편집할 수 있음
- 뷰포트 : 시각적으로 어떤 형태를 나타내고 있는지 보고 조정할 수 있다. 기본적으로 흰 구체가 보이는데,
이는 현재 아무 것도 없다는 것이다. 흰 구체는 중심을 나타내고 있다고 보면 된다.
무언가 볼 수 있게 만들어 보기 위해서 컴포넌트를 추가할 것이다.
컴포넌트에서 컴포넌트 추가 - Static Mesh를 추가해준다.
Cube로 이름을 변경해줬다. 컴포넌트를 추가하면 DefaultSceneRoot 컴포넌트의 자식으로 추가가 된 것을 볼 수 있다.
기본적으로 트랜스폼을 담고 있는 SceneComponent가 생성이 되어있는 것인데, Static Mesh를 추가해주었으므로
Cube를 클릭 후 DefaultSceneRoot의 위에 드래그 앤 드롭해주면 Cube(Static Mesh Component)가 새로운
Root Component로 바뀌게 된다.
이후에 뷰포트와 디테일을 보면 뷰포트에서는 흰 구체가 사라졌고, 디테일 / 트랜스폼에서는 스케일만 보인다.
Static Mesh Component를 만들어두고 아직 Static Mesh를 연결해주지 않아서 그렇기 때문이다.
따라서 먼저 외형을 만들어줄 것이다.
이제 우리가 만들었던 BP_Cube가 보있는 콘텐츠 브라우저1이 보일 것이다.
콘텐츠 브라우저1에서 우측 하단에 뷰 옵션 - 엔진 콘텐츠 표시를 체크해준다.
1. 소스패널을 눌러 소스패널을 표시하고
2. 엔진 콘텐츠를 클릭해준 뒤
3. BasicShapes 폴더를 들어간다.
스태틱 메시인 Cube를 사용하기 위해서 콘텐츠 폴더로 Cube를 옮겨주는데,
중요한 것은 여기서 꼭! 복사로 옮겨주어야 한다는 것이다.
엔진 콘텐츠의 폴더 안에 있는 것은 엔진 공용이라서 이동해버리면 찾을 수 없어지기 때문이다.
다시 BP_Cube의 풀 블루프린트 화면으로 돌아와서 아까 가져왔던 Cube StaticMesh를 Static Mesh 칸에 넣어준다.
이후에 아무것도 없는 뷰 포트에서 Cube가 보이는 것을 볼 수 있다.
※StaticMesh : 기본적으로 삼각형들이 모여서 물체가 만들어지는데, 삼각형들이 모여서 그물처럼 보인다.
그래서 Mesh(그물)이라고 하는데, Static은 정적이라는 뜻으로 변화가 없는 물체를 말한다.
언리얼엔진4에서는 렌더링에서 PBR 기법을 사용한다.
PBR(Physics Based Rendering) : 물리 기반 렌더링
이제 BP_Cube에 머티리얼을 추가해주기 위해서 콘텐츠 브라우저1로 돌아간다.
우클릭 - 바로 보이는 머티리얼을 추가해주면 된다. 이름은 M_Cube로 변경해주었다.
그 후, 만들어진 M_Cube를 더블클릭하여 M_Cube의 에셋 에디터를 열어준다.
머티리얼 에셋 에디터 화면 살펴보기
BaseColor로 이름 변경을 해준다. 핀 5개가 보일텐데 바로 RGBW를 뜻한다.
원하는 핀과 저렇게 직접 연결하여서 색상을 바꿔주면 뷰포트의 머티리얼의 색상이 바뀌는 것을 볼 수 있다.
그런데 여기서 다른 핀으로 바꿔도 색이 그대로인 것을 볼 수있다.
Color는 float4로 RGBW의 값을 받는데, 하나의 색상만 받아와도 다른 모든 RGB의 값이 동일하게 바뀌기 때문이다.
이번에는 ScalarParamter를 추가해준 뒤, Metallic으로 이름을 변경해준다.
그리고 바로 M_Cube 리스트에서 이름이 같은 Metallic에 핀을 연결해줄 것이다.
Metallic끼리 핀을 연결해준 다음, Metallic의 디테일 창에서 Default Value를 통해 머티리얼의 광택효과를 나타낼 수 있다.
금속과 같은 효과를 나타낸다고 생각하면 된다.
마찬가지로 Roughness(거칠기의 정도)를 추가해줄 것이다.
ScalarParamter를 추가해주고, Roughness로 이름을 변경한다. 같은 이름의 러프니스에 핀을 연결해주면, 뷰포트에서
바로 머티리얼이 변하는 것을 볼 수 있다.
디테일 창을 살펴보면 Default Value가 0.0으로 되어있는데, 이는 거칠기가 0인 완전히 매끈하다는 것을 뜻하므로,
1.0으로 값을 변경해주면 반사되지 않는 흰 구체로 되돌아온다.
지금까지 물질의 속성을 기반으로 수치를 조절하면서 표현하는 것을 PBR(Physics Based Rendering) 방식을 알아보았다.
이렇게 만든 머티리얼을 BP_Cube의 머티리얼에 넣어주도록 하겠다.
추가해주면 뷰포트에서 Cube의 상태가 바로 변하는 것을 미리 볼 수 있다.
플레이 화면에서 확인하기
마지막으로 콘텐츠 브라우저1에서 완성한 BP_Cube를 뷰포트 화면에 드래그하여 놓으면,
우리가 만들었던 광택이 나면서 매끈한 머티리얼의 Cube를 직접 볼 수 있다!!
'언리얼엔진' 카테고리의 다른 글
6. Asset / Character 살펴보기 (0) | 2023.05.06 |
---|---|
5. Construction Script / 이벤트 / 함수 / 매크로 / 와일드카드 (0) | 2023.05.03 |
4. 블루프린트 함수 디테일 (0) | 2023.05.03 |
3. 블루프린트 변수 / 함수 / 구조체 (0) | 2023.05.02 |
1. 언리얼엔진 설치 및 기능 알아보기 (0) | 2023.04.30 |