환영합니다
지난 강의에서는 Panner 노드가 무엇이며 시스템 내부에서 어떤 일들을 처리해주는지 배웠습니다
어떤 수학 계산이 이루어지는지 알아보았습니다
그 전 강의에서 배웠던 것 또한 사실 수학이었습니다
거기서 사용한 모든 노드들을 이 작은 노드 안에서 처리해주는 것이며
어떠한 텍스처를 움직일 때 시간을 아낄 수 있습니다
이번 강의에서는 머티리얼 인스턴스에 대해 설명해 보겠습니다
머티리얼 인스턴스란 무엇일까요?
지난 강의들을 상기해보면 머티리얼 그래프 내에서 무언갈 바꾸고 싶을 때마다
이 안의 속성이나 값을 바꾸고
적용시키고 저장했습니다
그리고 다시 밖으로 나갑니다
그리고 바뀐 것들을 확인해 줍니다 이렇게 간단한 머티리얼을 만들 땐 그렇게 해도 괜찮습니다
하지만 복잡한 것을 만들 때는 시간이 더 많이 소요될 것입니다
그래서 머티리얼 인스턴스가 필요한 것입니다
이 속성들을 더 빠르게 바꿀 수 있도록 도와줍니다
이제
에디터로 돌아왔습니다
지난 강의에서 진행한 부분입니다
두 줄의 화살표가 있는데 우리가 원하는 것이 아닙니다
한 줄만 있었으면 좋겠습니다
머티리얼 인스턴스 없이 바꾸려면 머티리얼을 더블 클릭해서
그래프로 들어가 줍니다
이 노드들을 옆으로 이동하여 방해되지 않도록 하겠습니다
자 두 줄의 화살표가 있는데
한 줄로 바꾸고 싶으니 제가 바꿔야 할 부분은
타일링을 제어하는 부분이고 Texture Coordinate(텍스처 좌표) 노드 안입니다
다시 U의 타일링을 1으로 바꿔주겠습니다
V 타일링도
1로 바꿔줍니다
적용하고 저장합니다
다시 밖으로 나갑니다
이제 한 줄의 화살표가 있습니다
설명했듯이 이 과정을 머티리얼 인스턴스로 더 빠르게 작업할 수 있습니다
일단 하나를 만들어 보겠습니다
생각보다 간단합니다
머티리얼에서 우클릭을 하여 Create Material Instance (머티리얼 인스턴스 생성)을 선택하고
언리얼의 이름 규약을 따라
MI는 Material Instance의 약자이며 MI_MovingArrow라고 지어주겠습니다
여기서는 머티리얼을 M_MovingArrow에서 MI_MovingArrow로 바꿔주겠습니다
속성들을 더 빠르게 바꾸기 위해서 원래의 머티리얼이 아닌
머티리얼 인스턴스가 필요합니다
머티리얼 인스턴스를 이 안에 드래그 해주면 바뀌는 것이 없습니다
아직 아무것도 하지 않았기 때문입니다
더블 클릭으로 머티리얼 인스턴스를 열어줍니다
많은 것이 들어있지 않으며 곧 추가할 예정입니다
다시 움직이는 화살표로 돌아와서
머티리얼 인스턴스로 더 빠르게 속성을 바꿀 수 있는 이유는
바꾸고 싶은 값을 머티리얼 인스턴스에 노출시킨 다음 거기서 조정하기 때문입니다
어떻게 할 수 있을까요?
예를 들어 이제 Speed(속력), 즉 얼마나 빨리 화살표가 움직이는지를 바꾸고 싶습니다
그리고 이것이 Speed(속력)를 제어하는 값입니다
하지만 이것을 이제 머티리얼 그래프 밖에서 조정하고 싶습니다
우클릭을 하고 Convert to Parameter(파라미터로 변환)을 선택합니다
Moving Speed(이동 속력)라고 이름을 지어주고 적용시켜준 다음 머티리얼 인스턴스로 갑니다
이제 Moving Speed(이동 속력)가 여기 보이며 선택해주겠습니다
그러면 값을 수정할 수 있습니다
그러면 한 번 10으로 바꿔보겠습니다
이제 화살표가 매우 빠르게 움직이는 게 보입니다
다시 1, 아니 2로 바꿔보겠습니다
좋습니다
머티리얼 인스턴스의 위력입니다
속성들을 더 빠르게 바꿀 수 있도록 도와줍니다
그리고 바로 오늘의 과제로 연결됩니다
여러분의 과제는 조정하고 싶은 입력 값들을 파라미터로 변환하는 것입니다
타일링도 머티리얼 그래프 밖에서 조정하고 싶으니 그것도 파라미터로 변환해볼 수 있습니다
어떻게 했는지 기억해두시기 바랍니다
사용해야 할 노드들도 기억하셔야 합니다
그리고 그걸 지저분한 플랫폼에도 적용시켜 보길 바랍니다
아직 기억하고 계신가요?
어쩌면 여기서
노이즈 텍스처를 조정하여 표면을 다르게 제어해볼 수도 있습니다
UV 타일링도 여기서 제어하고 싶은데 어떻게 할 수 있을까요?
그리고 머티리얼 그래프 밖에서 파라미터들을 다뤄보면서
그것에 익숙해지길 바랍니다
이제 영상을 멈추고 시도해 보다가 문제가 생기면
돌아오셔도 됩니다
어떠셨나요?
성공적으로 지저분한 플랫폼의 머티리얼 인스턴스를 생성하셨나요?
걱정 마세요, 같이 해봅시다
문제가 있었어도 괜찮으니 일단 움직이는 화살표부터 마무리해봅시다
여기서 Moving Speed(이동 속력) 말고도 타일링도 제어하고 싶습니다
몇 개의 줄이 출력되는지를 제어하고 싶은데 그러기 위해서는
아직 기억하시나요?
Multiply 노드를 사용해 여기에 값을 넣어줍니다
단일 Float을 파라미터로 변환하는 데에 두 가지 방법이 있습니다
첫 번째는 느린 방법인데 숫자 1을 꾹 누르면서 좌클릭을 하여 값을 불러옵니다
이 기본 값으로 2를 넣어주겠습니다
Texture Coordinate(텍스처 좌표) 노드로 값을 곱하면 UV가 어떻게 타일링되는지 제어할 수 있습니다
그리고 이걸 Texture Coordinate(텍스처 좌표)에 플러그해주겠습니다
바로 두 줄의 화살표가 보이고 이걸 파라미터로 변환하여 이름은
UV Tile로 하겠습니다
적용하고 머티리얼 인스턴스에 돌아오면 여기서 값을 조정할 수 있습니다
한 줄로 바꾸든 세 줄로 바꾸든
여기서 바꿀 수 있습니다
제가 설명했듯이 이건 단일 파라미터를 추가하는 느린 방식이었습니다
더 빠른 방법을 보여드리기 위해 이건 지우겠습니다
더 빠른 방법은 S를 꾹 누르고 좌클릭으로 단일 Float를 불러옵니다
그리고 자동으로 파라미터로 변환시켜줍니다
방금 우리가 했던 과정과 똑같습니다
UV Tile Faster이라고 이름을 지어주고 기본 값으로
1을 넣어줍니다
Multiply에 플러그합니다
다시 머티리얼 인스턴스로 돌아갑니다
바로 UV Tile Faster가 보입니다
두 줄로 바꾸든 다섯 줄로 바꾸든
크게 상관이 없습니다
여러분이 원하는대로 바꾸면 됩니다
값을 극단적으로 바꿔볼 수도 있습니다
아무튼 다시 1로 바꿔주겠습니다
그럼 이제 지저분한 플랫폼을 작업해보겠습니다
그래프 밖에서 지저분한 표면이 어떻게 보일지에 대한 직접적인 제어를 하고 싶습니다
그래서 이것에서 머티리얼 인스턴스를 생성해줍니다
이름을 M_FirstMaterial에서 M_DirtyPlatform으로 바꿔줍니다
이제 두 가지 방법이 있습니다
느린 방법은
우클릭을 하고 Rename을 고르거나 단축키를 사용하실 수 있습니다
좌클릭을 하고 F2를 누르면 됩니다
M_DirtyPlatform이라고 지어주겠습니다
좋습니다
그 다음에 그걸로 머티리얼 인스턴스를 생성할 것이며 이름은
MI_DirtyPlatform입니다
좋습니다
거의 비어있습니다
아직 조정하고 싶은 값들을 노출시키지 않았기 때문입니다
그러니 다시 머티리얼 그래프로 돌아가 줍니다
생각해 봅시다
여기서 바꾸고 싶은 값들은 무엇인가요?
여려분이 표면에 어떤 변화를 주고 싶은지에 따라 달렸습니다
예를 들어 U와 V가 타일링 하는 것을 바꾸고 싶다고 해봅시다
그러면 이 값을 파라미터로 변환해야 합니다
이 노드가 하는 역할을 기억하시나요?
R 채널을 마스킹해내어 U 채널을 값에 곱하면
U의 타일링을 제어할 수 있습니다
그래서 이건 U Tile이라고 이름 지어주고 이건 V 타일링을 제어합니다
그래서 이것도 V Tile이라고 바꿔주고 적용합니다
머티리얼 인스턴스로 돌아가 보겠습니다
여기 값들이 보이지만 아직도 플랫폼에는 머티리얼 인스턴스가 지정되지 않았습니다
그래서 여기에 값을 바꿔도 변화가 일어나지 않습니다
그건 플랫폼이 이 머티리얼 인스턴스를 사용하고 있지 않기 때문입니다
그러니 플랫폼으로 가서 여기서 머티리얼을 머티리얼 인스턴스로 바꿔줍니다
그리고 머티리얼 인스턴스에서
이제 여기서 값들을 바꿀 수 있습니다
U 타일은 1, V 타일은 2로 하겠습니다
바로 플랫폼에 변화가 생겼습니다
여기서 바꿀 수 있는 값들이 더 있습니다
그리고 여기 Lerp 노드로 Roughness(러프니스)를 제어했습니다
완전히 반사적인 0과 완전히 거친 1 사이에서 Lerp합니다
이것들을 파라미터로 변환할 수 있습니다
그리고 그것이 이 표면이 어떻게 보이는지를 제어할 것입니다
그리고 그건 여러분이 직접 해볼 수 있도록 두겠습니다
여러분이 어떻게 하고 싶은지에 달렸습니다
이번 강의에서는 머티리얼 인스턴스의 위력과 그것으로
어떻게 머티리얼 그래프에서 노출된 값들을 수정하는지 배워보았습니다
머티리얼 인스턴스를 사용하면 얼마나 빠르게 머티리얼을 수정할 수 있는지도 살펴 보았습니다
좋습니다
오늘 배운 내용을 앞으로도 많이 활용하게 될 것입니다
다음 강의에서 뵙겠습니다