환영합니다
지난 강의에서 스페큘러와 macro variation의 조절 기능을 만들었고
GetMaterialAttributes 노드의 사용법도 알아보았습니다
머티리얼전체 출력에서 어떻게 개별 attributes(어트리뷰트)를 얻을 수 있는지도 알아보았습니다
우리의 Landscape Material(랜드스케이프 머티리얼)의 모습입니다
아직까지 한 겹의 grass layer(레이어)만 있습니다
하지만 좋은, 온전히 기능하는 Landscape Material(랜드스케이프 머티리얼)은 여러 layer(레이어)가 있어야 합니다
이번 강의에서 더 많은 layer(레이어)를 추가하기 시작할 것입니다 다른 layer(레이어)를 추가하기 전에
해결해야 할 두 가지 문제가 있습니다
첫 번째는 이 파라미터 세트가 하나 더 필요하다는 것입니다
현재는 하나만 있는데 전부 grass layer(레이어)용 입니다
두 번째 layer(레이어)로는 흙 layer(레이어)를 추가할 것이므로 05-SoilLayer가 필요합니다
게다가 여러 머티리얼이 최종 출력을 지날 수 방법을 찾아야 합니다
지금까지는 socket(소켓)이 하나 뿐이고 하나의 머티리얼만이 최종 출력을 지날 수 있었습니다
하나를 더 추가하면 여러 layer(레이어)가 지날 수 있는 방법을 찾아야 합니다
이 문제를 하나씩 해결해 보겠습니다
프로젝트로 돌아와서 M_AutoLandscape를
더블 클릭하여 열고 파라미터 세트부터 추가해 보겠습니다
이 것이 우리가 풀 layer(레이어)를 처리한 것인데 흙 layer(레이어)를 추가하려고 하므로
다른 이름으로 된 이 모든 파라미터들이 필요하다는 뜻입니다
흙 layer(레이어)의 TilingAdjustment, BaseColorTexture, Normal(노멀), ORD에
BaseColorAdjustment까지 필요합니다
이 MF_LandscapeMaterialProcess를 복제하여 파라미터의 두 번째 세트를 처리하겠습니다
두 번째 layer(레이어)를 처리하려면 이 것이 필요하고 어떤 FunctionInput이 필요한지 살펴보겠습니다
첫 번째는 CellBombTextureScale입니다
이 입력은 global parameter(글로벌 파라미터)였으면 좋겠습니다
그러니까 파라미터를 변경하면 모든 layer(레이어)가 영향을 받는 것입니다
물론 개별 제어를 추가할 수 있고
개별 파라미터로 CellBombTextureScale을 조절할 수 있지만 저는 그렇게 하지 않을
것입니다
이 파라미터를 복사 붙여 넣기 하는 대신에 named reroute node(이름 경유 노드)를 사용합니다
이 핀을 드래그하고 named reroute node를 입력합니다
CachedCellBombTextureScale이라고 하겠습니다
socket(소켓)에 파라미터를 직접 연결하기 보다 named reroute node(이름 경유 노드)를 사용하고
CellBombTextureScale에 연결합니다
됐습니다
이 두 노드는 바깥으로 빼내고
comment(코멘트)를 달겠습니다
CellBombTextureScale이라고
두 번째 layer(레이어)로 내려 가서
cache(캐시)된 노드를 꺼내고 CellBombTextureScale에 연결합니다
이 다른 입력들은 이름과 그룹만 다를 뿐
거의 동일할 것이므로
socket(소켓)에 하나 하나 다시 연결하지 않고 복사 붙여 넣기 할 수 있는
방법이 있습니다
이 머티리얼 함수를 선택하고 이 노드들을 선택합니다
socket(소켓)에 파라미터를 다시 연결하지 않아도 되도록 전체를
복제합니다
Ctrl+D를 누르고 이 것을 삭제한 후 named reroute node(이름 경유 노드)를
socket(소켓)에 연결합니다
좋습니다
두 번째 layer(레이어)이고 파라미터의 이름을 바꿔야 합니다
두 번째 layer(레이어)는 soil layer(레이어)이므로
이름을 GrassLayer에서 SoilLayer로 바꾸고 맞는 그룹에 넣을 것입니다
05-SoilLayer가 되어야 합니다
sort priority(정렬 우선순위)는 건드리지 않아도 됩니다
모든 것이 grass layer(레이어)와 똑같아야 합니다
그 말은 파라미터 하나 하나 해야 한다는 뜻입니다
두 번째의 GrassLayer_UseRotationVariation는
SoilLayer를 복사해서 이 파라미터에 붙여 넣고 이 이름을
04에서 05로 바꿉니다
이러면 오늘의 미니 과제가 됩니다
여러분의 Landscape Material(랜드스케이프 머티리얼)에 파라미터의 두 번째 세트를 추가하시기 바랍니다
이 것이 Landscape Material(랜드스케이프 머티리얼)의 두 번째 layer(레이어)가 됩니다
파라미터들에 상응하는 이름으로 모두 바꾸시기 바랍니다
두 번째 layer(레이어)는 soil layer(레이어)이므로
이름을 grass layer 에서 soil layer로 바꿔야 합니다
그룹 또한 바꾸는 것을 잊지 마십시오
04-GrassLayer만 있는데 새로운 그룹이 필요합니다
그러니 05-SoilLayer가 되어야 합니다
다 마치고 apply(적용)을 눌러도 머티리얼 인스턴스에서 파라미터들을 여전히 볼 수 없을 것입니다
그 이유는 최종 출력에 연결할 방법을 찾아야 하기 때문입니다
이 미니 과제 이후에 해보겠습니다
지금은 이 문제 먼저 해결해 보겠습니다 비디오를 멈추고 직접 해보십시오
잘 돌아오셨습니다
이름과 그룹을 모두 바꾸셨나요
해 보도록 하겠습니다
이름과 그룹을 계속 바꿔야 합니다
그리고 이 파라미터를 더 이상 쓰지 않는 다는 것을 깨달았습니다
이 풀 layer(레이어)는 macro variation을 사용합니다
macro variation을 개별 layer(레이어)가 아니라 전체 Landscape Material(랜드스케이프 머티리얼) 위에 사용하기 때문입니다
이 잉여 파라미터는 지우겠습니다
계속 하겠습니다
이름을 계속 바꾸겠습니다
그리고 여러분이 제가 같은 것을 계속 복사 붙여넣기 하는 것을 보시는 것은 의미가 없는 것
같습니다
그러므로 시간을 빨리 감도록 하겠습니다
좋습니다
다 끝난 것 같습니다
모든 파라미터의 이름과 상응하는 그룹 이름으로 모두 바꿨습니다
이제 apply(적용)을 누르고
머티리얼 인스턴스로 돌아가면
새로 만든 파라미터들이 보이지 않는데 이 파라미터 세트가
최종 출력으로 들어가는 법을 찾아야 합니다
M_AutoLandscape로 돌아가서 이 첫 번째 layer(레이어)부터 cache(캐시)하겠습니다
이 핀을 드래그 하고 named reroute node(이름 경유 노드)를 사용합니다
CachedSoilLayer라고 하고
첫 번째도 named reroute node(이름 경유 노드)를 사용합니다
CachedGrassLayer라고 하겠습니다
이 것이 첫 번째 layer(레이어)이고
이 핀을 끊겠습니다
이 노드들을 조금 옮기고 CachedGrassLayer에 연결합니다
하나의 머티리얼 입력만 받는 socket(소켓)이 하나만 있는데 우리는 두 개가 있습니다
CachedGrassLayer와 CachedSoilLayer가 있습니다
변형 가능한 머티리얼들을 어떻게 최종 출력으로 보내겠습니까
landscape layer blend 노드를 사용해야만 합니다
이 노드는 Landscape Material(랜드스케이프 머티리얼)을 만드는 목적으로 특별히 만들어졌습니다
이 노드를 사용하면 다른 layer(레이어)들을 Landscape Material(랜드스케이프 머티리얼)에 연결할 수 있습니다
어떻게 사용하는지 보시겠습니다
프로젝트로 돌아와서
LandscapeLayerBlend를 꺼내겠습니다
바로 보입니다
꺼내겠습니다
지금은 출력 socket(소켓) 하나만 있고 다른 layer(레이어)들을 하나의 머티리얼로
출력할 것입니다
그리고 이 socket(소켓)에 연결하겠습니다
좋습니다
입력으로는 layer(레이어)를 몇 개 추가해야 합니다
add element(요소 추가) 버튼을 누르면
layer(레이어)가 하나 추가됩니다
첫 번째 layer(레이어)는 AutoLandscapeMaterial이라고 하겠습니다
첫 번째 layer(레이어)는 우리 Landscape(랜드스케이프)에 자동적으로 적용되는데
이 것이 Auto Landscape Material(자동 랜드스케이프 머티리얼)이 되고 요소를 또 추가합니다
이 요소는 GrassMaterial이라고 부릅니다
우리의 풀 layer(레이어)가 될 것이고
세 번째로 SoilMaterial이라고 이름 짓습니다
좋습니다
이 CachedGrassLayer를 Layer GrassMaterial에 연결하고 CachedSoilLayer는 Layer SoilMaterial에 연결합니다
layer.
한 가지 주의해야 할 것은 다른 layer(레이어)들의
이름을 지을 때
공백이 있으면 안됩니다
공백이 있으면 landscape mode(랜드스케이프 모드)에서 사용하려고 할 때 안보일 수 있습니다
그러니 조심하십시오 이름에 공백은 없어야 합니다
첫 번째 layer(레이어)인 이 Auto Landscape Material(자동 랜드스케이프 머티리얼)은 지금은 이 CachedGrassLayer를 쓰고
socket(소켓)에 연결합니다
우리의 Landscape Material(랜드스케이프 머티리얼)에 자동화가 많은 것을 알고 있지만 나중에
처리할 것입니다
그래프를 조금 정리하겠습니다
apply(적용)을 누르고 landscape(랜드스케이프를 눌러
모든 것이 완전히 검은색이 된 것을 보실 수 있는데 정상입니다 왜냐하면 layer(레이어)들을 적용한 후에
landscape layer blend 노드를 사용하고 나서 상응하는 layer info(레이어 정보)를 만들어야
ladnscape(랜드스케이프)가 어떤 머티리얼을 사용해야 하는지 알 수 있기 때문입니다
만드시려면 landscape mode(랜드스케이프 모드)로 가서 페인트 모드로 들어가면
다른 layer(레이어)들을 여기서 보실 수 있습니다
그런데 어떤 이유인지 저처럼 아무 layer(레이어)도 보이지 않으신다면
이 언리얼 엔진의 버그 같은데 고치려면 수동으로 머티리얼을 새로고침을
해주어야 합니다
이 MI_AutoLandscape를 더블 클릭해서 열고
머티리얼을 새로고침하는 것은 사실 쉽습니다
이 textrue(텍스처)들을 다시 설정해 주시면 됩니다
예를 들어 오른쪽에 있는 이 아이콘을 클릭하면 base color(베이스 컬러) texture(텍스처)를 디폴트로 초기화하는데
저장을 누르고 Base Color Texture(베이스 컬러 텍스처)가 있는 경로로 가서 texture(텍스처)를 다시 할당하고
저장을 누르면
이제 layer(레이어)들이 보입니다
왜 이런 문제가 발생하는 지는 모르겠지만 이렇게 고칠 수 있습니다
이 layer(레이어)들이 보이지 않으면 texture(텍스처)를 다시 할당하고 저장하십시오
그럼 layer(레이어)가 다시 보일 것입니다
좋습니다 다음으로 해야 할 것은 layer info(레이어 정보)를 만들어야 하는데 제법
쉽습니다
이 create layer info(레이어 정보 추가) 버튼을 눌러서 Weight-Blended Layer(웨이트 블렌딩된 레이어)를 선택합니다
그러면 새로 만든 layer info(레이어 정보)를 어디에 저장할 지를 묻습니다
그리고 이 폴더가 자동으로 만들어질 것입니다
그냥 기본 장소에 만들겠습니다
이제 Landscape Material(랜드스케이프 머티리얼)이 돌아온 것을 보실 수 있습니다
이 것의 좋은 점은 다른 layer(레이어)를 페인트할 수 있는 기능도 생겼다는 것입니다
이 레이어 정보 추가 버튼을 누르고 Weight-Blended Layer(웨이트 블렌딩된 레이어)를 선택하고 저장하면
이제 grass layer(레이어)를 페인트 할 수 있는 기능이 생겼는데 grass layer(레이어)는 디폴트 layer(레이어) 이므로
Landscape(랜드스케이프) 전체에 이미 자동으로 적용되었습니다
grass layer(레이어)를 Auto Landscape Material(자동 랜드스케이프 머티리얼)에 연결했다는 것을 기억하십시오 그리고 soil layer(레이어)도 페인트할 수
있습니다
레이어 정보 추가 버튼을 누르고 Weight-Blended Layer(웨이트 블렌딩된 레이어)를 선택하고 저장하면
이제 MI_AutoLandscape 머티리얼 인스턴스로 가시면
이 새로운 파라미터들이 생겼습니다
이 디폴트 texture(텍스처)들을 바꿔서 soil texture(텍스처)를 사용해 보겠습니다
추가 버튼을 누르고 퀵셀 콘텐츠 추가 버튼을 누릅니다
soil layer(레이어), soil 머티리얼 몇 개를 이미 다운로드 받았습니다
자유롭게 선택하십시오
이미 해보셨으니 Quixel Bridge(퀵셀 브리지)에서 원하시는 에셋을 어떻게 고르는지 아실 것입니다
저는 이 dry soil groud를 프로젝트에 추가하고 이 texture(텍스처)들을
이 텍스처 파라미터들에 할당하겠습니다
base color(베이스 컬러)는 base color로 노멀은 normal로
ORD는 ORD로
이제 soil 머티리얼로 돌아가면
이제 soil을 페이트 할 수 있습니다
layer(레이어)를 선택해 두고 마우스 좌클릭을 누르고 있으면
보시는것처럼 Landscape(랜드스케이프)위에 이 layer(레이어)를 칠할 수 있습니다
오늘의 연습 과제로 이어집니다
landscape layer blend에 다른 layer(레이어)들을 연결해 보십시오
landscape layer blend 노드를 사용해야 한다는 것을 기억하십시오
layer(레이어)에 이름을 지을 때 공백은 사용하지 마시고 Auto Landscape(자동 랜드스케이프) layer(레이어)를 위한
자리는 남겨두십시오
현재 저는 grass layer(레이어)를 Auto Landscape Material(자동 랜드스케이프 머티리얼)로 사용하고 있습니다
나중에 이 socket(소켓)에 더 많은 머티리얼을 추가하고 혼합할 것인데
지금은 그냥 grass layer(레이어)를 디폴트 입력으로 사용하시기 바랍니다
그리고 landscape paint mode(랜드스케이프 페인트 모드)에서 레이어 정보를 만드시기 바랍니다
landscape layer blend를 사용하고 나서 어떤 이유인지 landscape paint mode(랜드스케이프 페인트 모드)에서 layer(레이어)가 보이지
않으면
texture(텍스처)를 재할당하고 저장 버튼을 눌러서 수동으로 머티리얼 인스턴스를
새로고침 해주시면 될 것입니다
비디오를 멈추고 직접 해보시기 바랍니다
잘 돌아오셨습니다
다른 layer info(레이어 정보)를 만드시고 Landscape(랜드스케이프)에 layer(레이어)를
칠해보셨나요
Landscape Material(랜드스케이프 머티리얼)에 다수의 layer(레이어)를 넣는 법입니다
풀 머티리얼과 흙, 눈도 가능합니다
여러분이 Landscape(랜드스케이프)에 무엇을 원하시는 지에 달려있습니다
원하는 만큼 layer(레이어)를 추가할 수 있습니다
이번 강의에서 landscape layer blend 노드를 사용해 보았고 다른 layer(레이어)를 칠할 수 있는
기능도 다뤄보았습니다
잘 하셨습니다
이제 Landscape Material(랜드스케이프 머티리얼)에 layer(레이어)가 하나 더 생겼습니다
다음 강의에서 뵙겠습니다