환영합니다
이 강의에서는 첫 머티리얼 혹은 "지저분한 플랫폼"과 "움직이는 화살표" 만들기를 시작해보겠습니다
그러기 위해서는 이렇게 생긴 Plate(플레이트)를 현재 레벨에 생성하는 법을
알아봅시다
3가지가 필요합니다
첫 번째는 큐브입니다
물론 기초적인 메시도 필요할 것입니다
두 번째로는 Color(컬러)인데 대강 사진 속 색입니다
마지막으로는 더러워 보이도록 연출하는 것입니다
이 세 가지 단계를 끝내야 큐브가 생기고 이런 식으로 생긴 Plate(플레이트)가 완성됩니다
그러면 하나씩 시작해보겠습니다
좋습니다
다시 돌아와보면 거의 비어있는 레벨이 보입니다
우선 큐브를 월드에 넣어주겠습니다
그리고 Place Actors의 Shapes로 가보겠습니다
여기서 큐브를 고를 수 있습니다
월드로 드래그한 후 알맞은 크기로 조정하겠습니다
R을 눌러 크기를 조정할 것인데 X축 조금, Y축도 조금 조정해줍니다
좋습니다
모양이 좋아 보입니다
Plate(플레이트)로 쓰기에 충분합니다
첫 번째 단계가 완성된 것 같습니다
다음 단계는 Color(컬러)인데 어떻게 우리 레벨 속 도형에 색을 할당할까요?
지금부터 머티리얼의 개입이 필요합니다
우선 폴더를 생성할 것입니다
우클릭을 눌러 New Folder를 선택합니다
이름은 Materials이라고 지어주고 더블 클릭으로 열어줍니다
첫 번째 머티리얼을 생성해볼 것입니다
그럼 Materials의 Material로 가서 M_FirstMaterial이라고 이름을 짓겠습니다
M을 사용하는 이유는 언리얼의 이름 규약을 따르기 때문입니다
M은 Material의 약자이며 더블 클릭으로 열어보겠습니다
거의 비어있는 상태고 여기 다양한 Socket(소켓)들이 보입니다
종종 사람들은 이 Socket(소켓)을 어려워 하지만 제가 장담하는데 여러분은 배울수록 쉽게 느낄 것이고
이것으로 큐브에 색을 입히는 것 또한 쉽게 다룰 수 있을 것입니다
일단 Base Color(베이스 컬러)부터 시작을 해야할 것 같습니다
Base Color(베이스 컬러)에 무언가를 플러그해야 하며 여기서 바로 데이터 종류들이 사용됩니다
데이터 종류는 매우 중요한 개념입니다
머티리얼 그래프를 잘 습득하고 싶을 때 이 개념은 종종 소홀히 여겨질 때가 있습니다
이를 자세히 살펴보고 왜 중요한 것인지 알아보도록 하겠습니다
머티리얼 그래프에는 3가지 기본 데이터 종류가 있으며 우리가 해야 할 일 중에서
가장 중요한 일이라고 할 수 있습니다
첫 번째는 Constant1Vector 또는 1Float입니다
하나의 값만 갖습니다
두 번째는 Constant2Vector 혹은 2Floats라고 불립니다
두 개의 값이 있으며 마지막 데이터 종류는 Constant3Vector 또는 3Floats 입니다
이는 가장 중요한 세 가지의 기본 데이터 종류들입니다
그리고 Constant2Vector를 자세히 보면 R과 G가 있지만
R과 G는 교환이 가능하며 어떤 Socket(소켓)을 플러그하는지에 따라 달렸습니다
만약 이것을 Base Color 소켓에 플러그 한다면
이 세 알파벳은 각각 레드 채널, 그린 채널, 블루 채널을 의미하는데
그래서 만약 이것을 Position Socket(포지션 소켓)에 플러그하면 이것들은 각 X, Y와 Z를 의미하는데
무슨 소켓에 플러그하는지에 따라 달라질 것입니다
그리고 이 데이터는 항상 레드와 그린 채널을 의미하지 는 않습니다
꼭 기억하셔야 합니다
세 가지의 기본 데이터 종류를 알고 난 다음 굉장히 중요한 개념입니다
그러면 다음 질문은 각 Socket(소켓)에 필요한 데이터 종류가 무엇이냐는 것입니다
Base Color(베이스 컬러)부터 살펴보겠습니다
Base Color(베이스 컬러)는 데이터 종류를 필요로 합니다
모든 Socket(소켓)이 저마다 특정한 데이터 종류를 필요로 합니다
올바른 데이터 종류를 플러그하는 것이 첫 번째 단계입니다
멋진 머티리얼을 생성하고 싶다면 Base Color(베이스 컬러)에는 Constant3Vector가 필요합니다
즉, RGB를 필요로 하는 것입니다
그리고 여기서 3Vector를 베이스 컬러 R, G, B에 플러그하면 각 레드, 그린, 블루 채널을
의미합니다
꼭 기억하시기 바랍니다
하지만 항상 그런 것은 아닙니다
다른 것을 의미할 수도 있는데 예를 들어 X, Y, Z입니다
좋습니다
이제 Base Color 소켓이 Constant3Vector를 필요로 한다는 것을 알았으니 직접 해봅시다
우클릭을 눌러서 constant를 입력합니다
그러면 바로 Constant3Vector가 보입니다
엔터를 눌러 선택하고 이것을 Base Color(베이스 컬러)에 플러그 할 수 있으며 언제든 여기를 더블 클릭하면
기본적으로 여기서 무엇을 고르든 이 값들은
바뀌지 않습니다
선택한 색의 변화를 실시간으로 미리 보고 싶다면
이 채널들에 값을 먼저 부여해야 합니다
그러면 일단 레드부터 부여해보겠습니다
이제 색을 바꿀 수 있습니다
여기에 보랏빛의 색을 주고 Apply을 누른 다음 레벨로 돌아가서
그걸 이 큐브에 할당해 주도록 하겠습니다
여기에 머티리얼 섹션이 보이는데 이것을 Element 0로 할당해 보겠습니다
이제 큐브에 색을 입혔으며 새로운 과제가 생겼습니다
과제는 바로 큐브를 월드 안에 넣고 올바른 사이즈로 조정하는 것입니다
그 과정에서 Base Color(베이스 컬러)에 올바른 값을 플러그하셔야 합니다
Socket(소켓)에 필요한 데이터 종류를 기억하시기를 바랍니다
그리고 마지막으로는 큐브에 머티리얼을 할당하는 것입니다
이제 영상을 멈추고 직접 시도해 보시기 바랍니다
어떠셨나요?
성공적으로 큐브에 머티리얼을 할당했나요?
다시 해봅시다
이렇게 또 다른 큐브를 이 레벨에 드래그해주고
X축을 조금 조정해주겠습니다
앞으로 조금 이동 시켜줍니다
X, Z, Y축을 조금씩 줄여주겠습니다
그리고 또 다른 머티리얼을 생성할 것입니다
이 머티리얼은 M_SecondMaterial이라고 부를 것이며 엔터 더블클릭으로
열어줍니다
Base Color(베이스 컬러)에 데이터 입력이 필요합니다
Constant3Vector가 필요할 때마다, 이를 위한 2가지 방법이 있습니다
첫 번째는 우클릭으로 Constant를 입력해서 찾는 것입니다
또는 키보드에서 숫자 3키를 꾹 누르고 좌클릭을 하면
이것이 vector를 가져오는 단축키입니다
Constant1Vector와도 동일합니다
키보드에서 숫자 1키를 꾹 눌러서 Constant1Vector, 1 Float를
부르거나
Constant2Vector는 숫자 2키를 꾹 누른 다음 좌클릭으로 부를 수 있습니다
이제 색을 할당하고 싶으므로 먼저 이 세 채널에 값을 부여하여 색을 바꿔보겠습니다
이 큐브에는 푸른빛의 색을 줄 것이며 이를 Base Color(베이스 컬러)에 플러그하고 Apply를 클릭 후
레벨로 돌아가서 이 머티리얼을 이 큐브에 할당해 줍니다
머티리얼 밑에 있는 Element 0 섹션에 드래그하면
파란색 큐브가 생겼습니다
데이터 종류에 대해 더 설명하자면, 이런 일이 생길 수도 있고 안 생길 수도 있지만
만약 Socket(소켓)에 잘못된 데이터 종류를 플러그하면 어떻게 될까요?
Base Color 소켓은 Constant3Vector를 필요로 한다고 했습니다만
만약 Constant2나 Constant1 Vector를 플러그하면 무슨 일이 생길까요?
한 번 살펴봅시다
먼저 이 색에 빨간색이 있도록 바꾸겠습니다
레드 채널에 1이라는 값을 주고 블루 채널은 0을 부여합니다
그리고 이 Constant1Vector의 값을 1로 바꾸고 이를 Base Color(베이스 컬러)에 플러그 합니다
좋습니다
그러면 이제 잘못된 데이터 종류가 플러그됐음에도 머티리얼이 여전히
Y 색을 주고 있습니다
그럼 이 Constant2Vector에 레드 채널 값을 1이라고 부여하고
Base Color(베이스 컬러)에 플러그하면
이제 빨간색을 띄웁니다
어떻게 된 것일까요?
분명 Base Color 소켓은 Constant3Vector이 필요하다고 했습니다
하지만 왜 성공적인 결과를 얻는 것일까요?
그것은 엔진과 연관이 있으며 엔진이 시스템 내부에서 해주는 일입니다
기본적으로 Base Color 소켓은 Constant3Vector를 필요로 합니다
하지만 Constant1Vector, 즉 하나의 값을 플러그하면, 엔진은 자동적으로 블루와 그린 채널에
값을 할당합니다
1으로 플러그하는 것은 Constant3Vector로 레드, 그린, 블루 채널
세 가지에 플러그하는 것과 동일합니다
그러니 이 두 결과가 동일한 것입니다
그리고 Constant2Vector의 경우 레드 채널에만 값을 할당했습니다
그러니 기본적으로 이것은 3Vector의 레드 채널에 1, 그린에 0
블루에 0로 할당하여 플러그한 것과 동일한 것입니다
그러므로 잘못된 데이터 종류를 플러그해도 언리얼 엔진이 이 입력들을 고쳐줍니다
하지만 고칠 수 있는 상황에서만 그렇습니다
종종 데이터 종류가 고쳐질 수 없을 땐 수동적으로
직접 고쳐야 합니다
머티리얼 그래프 내에서 오류를 발견했다면 어떤 데이터 종류들이
Socket(소켓)에 들어가고 있는지부터 확인해야 합니다 이 강의에서는 머티리얼 그래프 내 기본 데이터 종류들에 대해
다뤄보았습니다
데이터를 처리하기 위해 엔진이 하는 일에 대해서도 다뤘습니다
Socket(소켓)에 잘못된 데이터 종류를 플러그해도 가능한 상황에는 엔진이 고쳐줄 것입니다
그리고
Object(오브젝트)에 머티리얼을 할당하는 법에 대해서도 배웠습니다
아주 좋습니다
순조롭게 진행되고 있으니 다음 강의에서 뵙겠습니다