환영합니다
지난 강의에서는 마스터 머티리얼이 무엇이고 어떻게 언리얼 엔진이 Bridge(다리) 에셋마다
마스터 머티리얼을 사용하는지에 대해서도 다뤘습니다
테스팅을 위한 텍스처도 가져와보았습니다
이번 강의에서는 첫 마스터 머티리얼을 생성해보고 우리가 만든 머티리얼들에 대한
완전한 통제권을 갖는 법에 대해 살펴보겠습니다
에디터로 돌아와 줍니다
지난 강의에서 만든 새 레벨(층)이며 Materials 폴더의
Master Material 폴더에 지난 강의에서 가져온 텍스처들이 있습니다
우리가 사용할 수 있는 텍스처들이 많이 있고 이 섹션에서 하나씩 다뤄 볼
예정입니다
첫 번째로 사용해 볼 것은 Castle Brick(성 벽돌)이라는 것입니다
02_red_diff는
무슨 뜻일까요?
더블 클릭하여 열어보면 텍스처의 색감이 화려하다는 것을 볼 수 있습니다
diff의 의미는 diffuse(디퓨즈)의 약어입니다
Base Color(베이스 컬러)의 또 다른 단어입니다
Base Color(베이스 컬러)의 다른 이름들을 더 보게 될 것입니다
종종 Albedo(알베도)라고 표시될 때도 있습니다
diffuse(디퓨즈)든 Albedo(알베도)든 이 이름들을 보면 그저 그 텍스처가 Base Color(베이스 컬러)라는 것만
알면 됩니다
그러면 이제 이번 섹션의 첫 과제를 드리겠습니다
여러분의 과제는 머티리얼을 생성해 이 diffuse(디퓨즈) 텍스처를 Base Color(베이스 컬러)의 입력 값으로
사용하는 것입니다
그리고 생성한 머티리얼을 기반으로 머티리얼 인스턴스를 생성해 보시기 바랍니다
이 단계는 여러분이 충분히 할 수 있습니다
그 다음은 머티리얼 인스턴스를 생성한 새 레벨(층)의 floor(바닥)에 할당하는 것입니다
기본 값으로 floor(바닥)가 있으며 머티리얼 인스턴스를 그 floor(바닥)에 할당하고 다음 단계는
지난 섹션에서 배운 내용을 조금 복습해 보겠습니다
파라미터를 사용해 UV를 함께 타일해 볼 것입니다
파라미터를 생성하고 이 파라미터로 U와 V를 함께 타일시켜야 해야 합니다
잊지 않으셨기 바랍니다
그럼 필요한 것은 Texture Coordinate(텍스처 좌표)와 Multiply 노드 뿐입니다
이 힌트로 부족하다면 지난 섹션에서 만들어본 머티리얼들을
다시 살펴보시기 바랍니다
작성한 코멘트를 읽고 어떻게 작업했는지 보는 것입니다
코멘트가 꽤 유용할 것이며 어떤 것을 하고자 했는지 잘 상기시켜 줄 것입니다
그럼 영상을 멈추고 시도해 보시기 바랍니다
도움이 필요하면 돌아오셔도 됩니다
어떠셨나요?
UV를 타일링하는 파라미터를 성공적으로 생성하셨나요?
쉬운 작업이었기를 바랍니다
그러면 다시 함께 해봅시다
다시 Master Material 폴더로 돌아가겠습니다
우클릭을 하여 Materials의 Material을 선택하고 M_Master라고
지은 후 더블 클릭으로 열어줍니다
거의 비어있습니다
가장 먼저 할 것은 Base Color(베이스 컬러)를 해결하는 것입니다
우클릭을 한 후 texture sample을 입력합니다
저 diffuse(디퓨즈) 텍스처를 샘플하고 싶습니다
텍스처의 하위 메뉴에서 diffuse(디퓨즈)를 고르겠습니다
여기 바로 castle_brick_02_red-diff를 선택합니다
이걸 Base Color(베이스 컬러)에 연결하고 적용한 다음 프로젝트로 돌아가 이 프로젝트 기반의
머티리얼 인스턴스를 만들겠습니다
MI_Master 라고 이름을 짓고 머티리얼을 이 floor(바닥)에 할당하겠습니다
이 머티리얼 인스턴스를 머티리얼 섹션의 Element 0에 끌어다 놓겠습니다
그러면 floor(바닥)이 마스터 머티리얼을 사용하는 것이 보입니다
다음은 UV를 함께 타일하는 것입니다
다시 Master Material로 돌아가 보겠습니다
U와 V를 함께 타일하는 방법을 기억하고 계셔야 합니다
이 UV 소켓을 사용해야 합니다
우선 Texture Coordinate(텍스처 좌표) 노드를 불러와주고 UV를 함께 타일하기 위해 Multiply도 필요합니다
이 두 숫자들을 Multiply해야 합니다
그러므로 이 핀을 드래그해 Multiply 노드와 연결하고 숫자 1 키를
꾹 누릅니다
이제 이걸을 파라미터로 변환하기 위해 S를 꾹 누르고 좌클릭을 하여
스칼라 파라미터를 불러옵니다
이름은 UV Tile로 하고 기본 값 1로 Multiply에 연결한 다음
이것을 UV에 연결시키고 나서 적용을 하고 머티리얼 인스턴스로 돌아갑니다
이제 이 UV Tile이 준비됐습니다
이제 값을 올리면 UV를 조정하여 패턴이 작아지며 더 많이 반복되는
것이고
값을 줄이면 패턴은 작아지고 반복은 줄어듭니다
지난 섹션에서 다룬 내용이며 이것이 아직도 익숙하지 않으신다면
지난 섹션을 다시 복습하시기 바랍니다
모든 코멘트들을 읽어보거나 몇몇 머티리얼을 다시 작업해 보는 것도 좋은 생각입니다
이제 마스터 머티리얼에 Base Color(베이스 컬러)를 위한 텍스처도 있고 UV도 함께 타일할 수 있게 되었습니다
우리가 얻은 첫 통제권이지만 이걸로 충분하지 않습니다
제가 원하는 것은 완전한 UV의 컨트롤이며 그 뜻은 UV를 독립적으로 타일하고 싶기도 하고
UV를 독립적으로 오프셋하고 싶다는 것입니다
이 두 단계
이 두 컨트롤들이 바로 제가 원하던 UV의 제어권입니다
물론 Texture Coordinate(텍스처 좌표)와 컴포넌트 마스크가 필요합니다
이것도 지난 섹션에서 다룬 내용이지만 낯설게 들리신다면
지난 섹션으로 돌아가 배운 내용을 복습하시기 바랍니다
그래서 UV를 독립적으로 타일하기 위해서 이 두 노드들이 필요합니다
지난 섹션에서 이 노드들의 사용법에 대해서도 설명드렸었습니다
만약 여러분이 두 파라미터를 생성해 UV를 독립적으로 타일할 수 있을 것 같다면
영상을 멈추고 바로 시도해 보시기 바랍니다
2초 정도 멈춰보겠습니다
준비되셨다면 먼저 시작하셔도 됩니다
좋습니다 그럼 어떻게 UV를 독립적으로 타일하는지 같이 살펴보겠습니다
프로젝트로 돌아왔습니다
이 M_Master로 돌아옵니다
이 단일 파라미터로는 UV를 함께 타일할 수 밖에 없습니다
하지만 말씀드렸다시피 우리는 UV를 따로 제어하고 싶습니다
그러기 위해서는 U와 V를 분리시켜야 합니다
우클릭으로 컴포넌트 마스크를 불러옵니다
먼저 마스크할 채널은 U 채널이고
두 번째 채널은 V 채널입니다
역시 이 컴포넌트 마스크의 알파벳의 의미 또한 지난 섹션에서 설명드렸습니다
낯설게 들린다면 언제든 이전 내용을 참고하시기 바랍니다
Texture Coordinate(텍스처 좌표)를 컴포넌트 마스크의 레드 채널에 연결하고
V 채널도 마찬가지입니다 그리고 이 두 노드들에게 Multiply 노드가 필요합니다
그러므로 이 노드들을 비활성화시키고 Scalar Parameter(스칼라 파라미터)를 하나 더 불러옵니다
이름은 U Tile이라 하고 기본 값은 1로 하겠습니다
이건 V Tile이므로
이 노드를 복제해서 V Tile로 이름을 짓고 두 노드를 같이 Multiply 합니다
Multiply에 연결합니다
그리고 이 Multiply 노드를 이렇게 연결하는 건데 기억하고 계셨기를 바랍니다
그 다음에 이 Float들을 다시 합쳐야 하는데 UV가 2Floats를 필요로 하기 때문입니다
그러므로 Append 노드를 사용해 이 두 노드를 다시 연결하고 이것을
UV 소켓으로 연결한 다음 적용하고 MI_Master로 돌아갑니다
이제 U와 V 타일을 제어할 수 있습니다
이것을 조정하면 텍스처가 수평축에서만 변화합니다
반면 이 값을 올리면 텍스처가 수직축을 따라 변화합니다
다시 마스터 머티리얼로 돌아갑니다
UV를 타일하기 위해 많은 노드들이 사용됐습니다
그리고 언제든 더 간추릴 수 있다는 사실을 기억하셔야 합니다
이 모든 것을 하나의 노드에 담을 수 있는데 굳이 많은 노드를 사용할 필요 없습니다
그리고 저는 Constant4Vector를 말하는 것입니다
숫자 4 키를 꾹 눌러서 좌클릭으로 Constant4Vector를
불러옵니다
이걸 파라미터를 변환해주고 이름은
Advance UV Control로 합니다
지금까지는 Constant4Vector를 다뤄본 적이 없습니다
Constant 1, 2, 3 Vector들만 다뤘습니다
하지만 아시다시피 이 벡터들은 Float를 담은 값들을 갖고 있습니다
이 벡터는 네 개의 값을 R과 B 채널에
보관합니다
여기에 네 개의 값이 있는 것입니다
컴포넌트 마스크 노드로 UV를 두 번 사용해 따로 마스크하는 것보다
이것의 출력 값을 UV로 사용할 수 있습니다
지금부터 보여드리겠습니다
이 노드들을 연결 해제시킵니다
아직은 코멘트를 추가하고 싶지 않습니다
이 노드와 이 노드들도 다 비활성화합니다
그리고 빈 공간에 옮겨놓습니다
Constant4Vector의 장점은 이 단일 Float들을 하나의 노드에
담을 수 있다는 것입니다
이 채널의 역할을 구분하기 위해 이름을 지어줄 수 있습니다
왼쪽에서 드롭다운 메뉴로 가줍니다
Channel Names을 설정하는 곳이 보입니다
이름을 수정할 수 있습니다
이건 U Tile로 수정하고 이 그린 채널은 V Tile로 수정합니다
Constant4Vector의 또 다른 장점은 이 두 Float들을 바로 합칠 수 있다는 것
입니다
Append를 사용해 두 Float들을 합치고 Multiply 해주겠습니다
여기서 나오는 값과 Texture Coordinate(텍스처 좌표)에서 나오는 값을 UV에 연결하고 이것은 다시 UV에 플러그 합니다
이런 식으로 UV의 독립적인 제어가 가능한 것입니다
이 U Tile의 기본 값을 1로 하고 적용하겠습니다
다시 마스터 머티리얼로 돌아갑니다
이 Advance UV Control이 보이고 그걸 선택하면 두 Float가 있는 게 보입니다
그리고 U와 V를 따로 타일할 수 있는데 전에 했던 과정과 동일합니다
하지만 Constant4Vector를 사용하면
노드를 최대한 줄일 수 있으며 굳이 실용적이지 않은 방식을 사용할 이유가 없습니다
이제 UV를 독립적으로 타일할 수 있으니 다음 단계를 UV를 독립적으로 오프셋하는 것입니다
종종 U와 V가 정렬되어 있지 않아도 이를 오프셋하고 싶습니다
어떻게 하면 이들을 제어를 할 수 있을까요?
사실 이것도 전에 다룬 적 있는 내용입니다
"움직이는 화살표" 작업에서 다뤘습니다
화살표를 움직이게 하는 데 성공했습니다
Texture Coordinate(텍스처 좌표) 노드와 마스크 노드를 사용했고
또 사용했던 노드는 바로 Add 였습니다
만약 이 힌트가 충분했다면 바로 이것을 구현해보고
UV를 독립적으로 오프셋할 수 있는 파라미터도 생성할 수 있는지 시도해 보시기 바랍니다
여기서 2초 정도 멈추도록 하겠습니다
시작하시면 됩니다
준비가 되신 분들 시작해 보시기 바랍니다
좋습니다, 그럼 U와 V를 독립적으로 오프셋하는 방법에 대해 함께 살펴보겠습니다
U 타일과 V 타일처럼
더 쉬운 방법이 있습니다
하지만 늘 그렇듯 그렇지 않은 방식부터 보여드릴 것입니다
그럼 이 텍스처를 Texture Coordinate(텍스처 좌표) 노드로부터 비활성화합니다
먼저 제가 하고 싶은 것은 U와 V를 분리시키는 것이므로 컴포넌트 마스크가 필요합니다
이 핀을 끌어와 컴포넌트 마스크를 입력합니다
U 채널과 V 채널을 이런 식으로 마스크하겠습니다
이제 Multiply 노드를 사용할 수 없는데 그것 타일링을 위한 것이었기 때문입니다
오프셋을 위해서는 Add 노드가 필요합니다
Add 노드를 불러와서 이걸 Add에 연결합니다
파라미터를 하나 더 생성하기 위해 S를 꾹 누릅니다
U Offset이라 하고 Add 노드에 연결해 줍니다
기본 값은 0으로 하겠습니다
좋습니다
이걸 복제해서
이름을 V Offset으로 하고 Add 노드를 사용해 이 두 float들을 더하고
다시 두 노드들을 합쳐야 합니다
그러므로 이 Append 노드를 복제해서 두 Float들을 합쳐준 다음
UV 소켓에 연결하고 적용한 후 레벨로 돌아갑니다
이제 U와 V 오프셋을 위한 두 파라미터가 생겼습니다
이 값을 올리면 텍스처가 수평 축을 따라 이동하고
이 값을 올리면 텍스처가 수직 축으로 이동합니다
그러므로 UV를 독립적으로 제어가 가능한 것입니다
설명드렸듯이 더 쉬운 방법이 있으며 Constant4Vector를 파라미터로
변환하는 것입니다
이 두 값들만 사용하면 됩니다
아직 사용하지 않은 이 두 값이 있습니다
그러니 이 노드를 클릭한 후 채널 이름에서 블루 채널은
U Offset으로 수정하고 마찬가지로 단일 Float인 Alpha 채널도
V Offset이라고 이름을 바꿔줍니다 그리고 Append도 마찬가지로
일단 지저분해 보이므로 이 노드들을 전부 비활성화해주고
방해되지 않는 곳에 옮겨두겠습니다
좋습니다
U와 V 오프셋은 아직
Append 작업이 필요합니다
다시 하나로 합쳐야 합니다
그리고 예상하셨을 수도 있는데 UV 타일에서는 이것을 Texture Coordinate(텍스처 좌표)와 Multiply를 했지만
UV 오프셋의 경우는
Add가 필요합니다
그래서 이 핀을 끌어와 Add를 입력하고 이 결과와
Multiply의 결과를 Add해주고 이것을 다시 UV 소켓에 연결한 다음 적용합니다
다시 레벨(층)로 돌아가 머티리얼 인스턴스를 클릭합니다
이제 UV 타일과 UV 오프셋에 대한 제어가 가능하면
제가 원하던 완전한 제어입니다
이 위에 있는 노드들을 일일이 사용하는 것보다 단일 파라미터
즉, 단일 Constant4Vector 파라미터로 많은 노드들을 아낄 수 있었습니다
이 컨트롤에는 한 가지 문제가 있는데 바로 더 이상 UV 타일을 함께 제어하지는 못한다는 것입니다
그런 기능이 필요할 수도 있습니다
몇몇 텍스처에 말입니다
사실 이렇게 많은 UV 컨트롤은 필요 없으며 다음 강의에서 다뤄보도록 하겠습니다
이번 강의에서는 Constant4Vector의 도움으로 UV로 완전히 제어하는 방법에 대해 살펴보았습니다
그것을 사용해 많은 노드를 간추릴 수 있었습니다
수고하셨습니다
다음 강의에서 뵙겠습니다