환영합니다 지난 강의에서 우리는 Landscape Material(랜드스케이프 머티리얼)에 ORD map을 추가하여
마침내 Landscape Material(랜드스케이프 머티리얼)의 첫 layer(레이어)를 완성했습니다
우리의 Landscape Material(랜드스케이프 머티리얼)의 모습이고 landscape material instance(랜드스케이프 머티리얼 인스턴스)의
모습입니다
보시는 것처럼 많은 property(프로퍼티)들을 조절할 수 있고 타일링과 base color(베이스 컬러) 및
기타 디테일 조절이 가능합니다 다음으로 넘어가기 전에
property(프로퍼티)들의 제어를 더 추가하려고 합니다
제어 기능이 없는 property(프로퍼티)가 2개 있습니다
스페큘러와 macro variation입니다
지금까지는 이 UseBaseColorAsSpecular 파라미터를 이용해서 스페큘러를 켤 수 있었고
끄게 되면
Landscape(랜드스케이프)는 이런 모습이 되고 키게 되면 이런 모습이 됩니다
이제 값들에 대한 제어도 갖고 싶습니다
지금까지 이 layer(레이어)의 값은 괜찮아 보였지만 layer(레이어)를 더 추가하면 값들이 좀
벗어날 수도 있습니다
그러므로 값들에 대한 제어 기능을 만들려고 합니다
더블 클릭해서 M_AutoLandscape에 들어가서 더블 클릭으로 MF_LandscapeMaterialProcess에
들어갑니다
우리는 스페큘러의 값을 이렇게 처리하고 있습니다
Base Color Texture(베이스 컬러 텍스처) RGB출력의 레드 채널을 사용하고 값을 0과 0.5 사이로
clamp(범위 제한)을 하였습니다
머티리얼 인스턴스에서 조건을 체크해서 UseBaseColorAsSpecular가 참일 경우
값이 최종 출력이 됩니다
그 밖에 스페큘러의 세기 또한 간단한 방법으로 조절하려고 합니다
키보드의 L을 눌러 socket(소켓) B에 연결합니다 이 것이 최대 스페큘러값이 되고
socket(소켓)A는 0의 값을 주겠습니다
socket(소켓) A에 연결하면
이 것이 최소 스페큘러값이 됩니다
스페큘러가 전혀 없는 상태입니다
Alpha socket(소켓)에는 스페큘러의 양을 조절하는 또 다른 FunctionInput을 추가할 것입니다
조건을 체크할 경우 또 다른 FunctionInput을 가지는데
스페큘러의 세기를 조절하는 또 다른 파라미터입니다
값이 1이면 스페큘러를 온전히 사용하고 값이 0이면 스페큘러를 전혀 사용하지 않을 것이며
여러분이 맡아서 하실 수 있으실 것입니다
주 연습 과제는 스페큘러를 조절하기 위한 또 다른 함수 입력을 추가하는 것입니다
좀 더 구체적으로 세기를 조절합니다 제가 했던것 처럼
Lerp 노드를 사용하고 이 함수 입력을 Alpha socket(소켓)에 연결하고 값이 1일 때는
스페큘러를 최대로 해서 base color(베이스 컬러)를 사용하고 값이 0일 때는
전혀 아무 것도 안합니다
base color adjustment의 Alpha 채널을 사용해서 값을 조절하시기 바랍니다
base color adjustment의 파라미터를 생각해보시면 Alpha 채널을 아직 사용하지 않았는 데
싱글 파라미터이므로 base color adjustment의 Alpha 채널을 그냥 사용해도 됩니다
조절을 위한 파라미터를 만들지 않아도 됩니다
함수 입력과 파라미터를 정리하는 것을 잊지 마십시오
비디오를 멈추고 직접 해보시고 도움이 필요하면 돌아오시기 바랍니다
잘 돌아오셨습니다
스페큘러 세기의 조절 기능을 잘 추가하셨습니까
여러분이 하시기에 충분히 쉬웠기를 바랍니다
어떻게 할 수 있을지 보도록 하겠습니다
그래프를 조금 정리하겠습니다
여기에 Lerp노드를 사용하고 있는데
socket(소켓) B 안의 값은 Base Color Texture(베이스 컬러 텍스처)에서
나오고 있고 socket(소켓) A 안의 값은 0입니다
Alpha socket(소켓)에는 FunctionInput을 사용합니다
이 FunctionInput을 드래그해서 Vector 3에서 input scalar로 바꾸고 Alpha socket(소켓)에
연결합니다
출력을 True에 연결하고 그래프를 조금 정리합니다
sort priority(정렬 우선순위)차례입니다
이 FunctionInput이 이 것들 아래에 있으면 좋겠고 다른 것이 14를 사용 중일 것이므로
운을 시험해 보겠습니다
sort priority(정렬 우선순위)를 13으로 설정해서 이 FunctionIinput이 이 FunctionInput아래로
설정되면 좋겠습니다
항상 되는 것은 아닙니다
이 번에는 되기를 바라면서 그냥 입력해 보겠습니다
13.Use Base Color as Specular amount를 입력하고 apply(적용)을 누릅니다
Landscape Material(랜드스케이프 머티리얼)로 돌아가는데 운이 좋았나 봅니다
이 소켓이 UseBaseColorAsSpecularAmout 밑에 있습니다
GrassLayer_BaseColorAdjustment로 가서
Alpha 채널을 BaseColorAsSpecularAmount로 변경하고 이 것을
이 socket(소켓)에 연결하고 apply(적용)을 누른 후 머티리얼 인스턴스로 돌아가 테스트 해 보겠습니다
현재 값은 1입니다
base color(베이스 컬러)를 스페큘러로 모두 사용하고 있습니다
이 것을 0으로 바꾸면 스페큘러값이 0이 됩니다
이 것을 1로 바꾸면 base color(베이스 컬러)를 스페큘러로 온전히 사용합니다
됐습니다 좋습니다
다음으로 조절하고 싶은 것은 macro variation입니다 스페큘러와 동일하게
우리의 제어는 이 효과를 크고 끌 수 밖에 없습니다
이 값의, 이 세기의 제어권은 없습니다
그러면 이 layer(레이어)에서는 macro variation이 괜찮아 보일지 모르지만 layer(레이어)를 더 추가 할수록
세기를 조금 낮추고 싶을 것입니다
MF_LandscapeMaterialProcess로 돌아가서
macro variation이 어떻게 처리되는 지 보겠습니다
이 MF_MacroVariation을 사용하고 base color(베이스 컬러)출력을 직접 곱한 뒤
사용할 지 안 할 지를 boolean 파라미터를 사용해서 조절합니다
Landscape Material(랜드스케이프 머티리얼)의 싱글 layer(레이어)에 macro variation을 사용하는 대신에
이 macro variation을 Auto Landscape Material(자동 랜드스케이프 머티리얼)전체에 적용하고 싶은데 이유를 보여드리겠습니다
이 macro variation이라는 머티리얼 함수를 안으로 드래그 해서
이 M_AutoLandscape로 가져옵니다
이 macro variation을 이 머티리얼 함수안에서 쓰는 대신 이 Landscape Material(랜드스케이프 머티리얼)에
사용하고 싶습니다
이 값과 이 Landscape Material(랜드스케이프 머티리얼)의 base color(베이스 컬러)와 직접 곱하고 싶습니다
어떻게 해야 할까요
보시는 것처럼 socket(소켓)은 하나 밖에 없고 사용할 수 있는 base color(베이스 컬러)도 없습니다
전체 머티리얼츨력에서 base color(베이스 컬러)를 얻기 위해서는
GetMaterialAttirbutes 노드를 사용해야 합니다
지금까지는 set material attributes만 사용해왔습니다
이 노드를 사용해서
이제 이 개별적인 attribute(어트리뷰트)들을 머티리얼에 지정할 수 있고 머티리얼 전체를 출력할 수도 있습니다
이제 이 머티리얼 전체를 얻었으니 개별적인 material attribute(머티리얼 어트리뷰트)를 얻을 수도 있고 다시 설정할 수도
있습니다
조금 헷갈리신다는 것 잘 알고 있습니다
어떻게 되는 것인지 빠르게 보여드리도록 하겠습니다
프로젝트로 돌아와서 GetMaterialAttribute 노드를 꺼내겠습니다
이 입력 socket(소켓)은 머티리얼이 연결됩니다
MF_LandscapeMaterialProcess는 머티리얼을 출력하고 있습니다
그러니 이 둘을 연결하고 여기서 머티리얼 전체를 출력하므로 최종 출력에
직접 연결할 수 있습니다
이제 이 노드를 클릭하고 add element(요소 추가)를 누릅니다
개별 attribute(어트리뷰트)에 접근할 수 있고 값과 macro variation을 곱할 수 있습니다
이렇게 하면 Landscape Material(랜드스케이프 머티리얼) 전체에 macro variation을 깔 수 있습니다
그러나 이렇게 설정하고 끝난다면 아무런 변화도 보지 못합니다
왜냐하면 material attribute(머티리얼 어트리뷰트)를 얻은 후 설정 또한 해주어야 하기 때문입니다
그러므로 SetMaterialAttributes를 꺼내고 이 것을 이 socket(소켓)에 연결하고
최종 출력에 연결합니다
material attributes(머티리얼 어트리뷰트)를 얻은 후 어떤 작업을 했기 때문에 최종 결과를 최종 출력에
적용해야 합니다
그러므로 다시 설정해야 합니다
이 추가 버튼을 클릭해서 Base Color를 노출 시키면 이제 base color(베이스 컬러)를 다시 설정할 수 있습니다
최종 변화를 머티리얼 전체에 적용하는 유일한 방법입니다
좋습니다
GetMaterialAttributes를 이용해서 개별 material attribute(머티리얼 어트리뷰트)에 접근해 보았습니다
그런데 여기 macro variation으로 무엇을 하려는 걸까요
MF_LandscapeMaterialProcess와 동일하게
Multiply 노드를 사용해서 base color(베이스 컬러)와 곱하고
분명히 켜고 끄는 기능도 있어야 합니다
그러나 세기 또한 조절하고 싶습니다
그러므로 스페큘러와 동일합니다
Lerp 노드를 이용하면 됩니다
마지막 출력을 Base Color와 곱할 것이고 Alpha socket(소켓)의 값이
1이면 이 macro variation을 온전히 출력할 것이고
Alpha socket(소켓)의 값을 떨어뜨리면 1을 출력할 것입니다
base color(베이스 컬러)와 1을 곱하면 아무런 변화도 일어나지 않습니다
이러한 방법을 사용하면 macro variation의 양을 줄일 수 있습니다
이제 여기서 부터 어떻게 하셔야 할지 잘 아실 겁니다
연습 과제는 macro variation을 Landscape Material(랜드스케이프 머티리얼)로 옮깁니다
더 이상 이 작업을 처리하는 머티리얼 함수에서 할 필요가 없습니다
Landscape Material(랜드스케이프 머티리얼)에서 할 수 있습니다
GetMaterialAttributes를 이용해서 MF_LandscapeMaterialProcess에서 base color(베이스 컬러)를 얻습니다
제가 했던 것처럼
최종 결과를 출력하기 전에 SetMaterialAttributes를 사용하는 것을 잊지 마시기 바랍니다 그리고
macro variation을 Landscape Material(랜드스케이프 머티리얼) 전체에 추가하시기 바랍니다
사용자에게 세기의 조절 기능을 주는 것을 잊지 마십시오
Lerp 노드를 사용해서 macro variation의 세기를 조절할 수 있는지 해보시기 바랍니다 비디오를 멈추고 직접 한 번 해보시기
바랍니다
도움이 필요하시면 돌아오겠습니다
어떠셨나요
macro variation 세기의 조절 기능을 추가하셨나요
어떻게 할 수 있는지 보겠습니다
우선 macro variation을 옮기겠습니다
지우도록 하겠습니다
이 노드들을 지우고 FunctionInput도 지웁니다 예를
클릭하고
이 base color(베이스 컬러) 출력을 이 socket(소켓)에 연결하고 comment(코멘트)는 지우고 apply(적용)을 누릅니다
Landscape Material(랜드스케이프 머티리얼)로 돌아가면
macro variation이 절대 있어서는 안됩니다 M_AutoLandscape으로 돌아가서
이 macro variation을 전체 Landscape(랜드스케이프)에 적용해 보겠습니다
키보드의 m을 눌러 Multiply 노드를 꺼내고
base color(베이스 컬러)를 macro variation과 곱할 것이고 이 것의 최종 출력은
named reroute node(이름 경유 노드)를 사용할 것입니다 CachedBaseColorOutput으로 이름 짓고
macro variation 세기를 조절하려면 Alpha socket(소켓)에 파라미터가 필요합니다
키보드의 s를 눌러 파라미터를 꺼냅니다
MacroVariationStrength라고 하고 디폴트 값을 0.8로 합니다
그리고 slider max(슬라이더 최대)를 1로 바꿔서 이 값이 1을 넘지 못하게 하고 Alpha socket(소켓)에
연결합니다
잊어버리기 전에 그룹에 넣겠습니다 03-TilingBreak에 넣고
sort priority(정렬 우선순위)는
3으로 하겠습니다
좋습니다
이렇게 macro variation의 세기에 대한 조절 기능을 만들었습니다
하지만 켜고 끄는 것도 원합니다
이를 위해서는 스위치 파라미터가 필요합니다
스위치 파라미터를 꺼내고
UseMacroVariation이라고 하겠습니다
03-TilingBreak 그룹에 넣고 sort priority(정렬 우선순위)를
2로 바꿉니다 디폴트 값을 참으로 주고 아래로 조금 내립니다
머티리얼 인스턴스에서 체크했을 때 이 것이 최종 출력이 되어야 합니다
이 것이 체크 해제 되었다면 기본 base color(베이스 컬러) 출력이 최종 출력이 됩니다
그러기 위해서, 선이 얽히는 것을 막기 위해 named reroute node(이름 경유 노드)를 하나 더 사용합니다
CachedDefaultBaseColorOutput으로 하겠습니다
좋습니다
그리고 이 노드를 바로 사용합니다 socket(소켓) A에 연결하고 복제한 다음
False socket(소켓)에 연결합니다
이렇게 macro variation이 완성되었습니다
Macro Variation Process라고 빠르게 comment(코멘트)를 달고
최종 출력을 Base Color socket(소켓)에 연결하는 것을 잊지 마십시오 이 노드들을
조금 옮긴 후 apply(적용)을 누르면 이제 macro variation이 돌아왔습니다
더욱이 세기에 대한 조절도 가능합니다
이 값을 0으로 바꾸면 macro variation을 사용하지 않고
1로 바꾸면 macro variation을 온전히 사용하며 이 값을 줄여서
macro variation의 세기를 조절할 수 있습니다
이번 강의에서 단순히 켜고 끄는 것 보다 스페큘러와 macro variation의 제어를 더 많이 추가했습니다
off.
이제 세기도 조절 가능하고
GetMaterialAttributes 노드도 살펴보았고 머티리얼 전체 출력에서
어떻게 개별 material attributes(머티리얼 어트리뷰트)를 얻는지도 알아보았습니다
잘 하셨습니다
다음 강의에서 뵙겠습니다