환영합니다
지난 강의에서 Texture Bombing 머티리얼 함수를 사용해서 타일링을
깨 보았고
Texture Bombing안에서 이 property(프로퍼티)들이 어떻게 동작하는지도 살펴보았습니다
기본적으로 이렇게 생긴 texture(텍스처)를 이용해 타일링을 깨는 것입니다
texture(텍스처)가 cell(세포)처럼 생겼기 때문에
Cell Bombing이라는 이름이 만들어 졌습니다
원본 texture(텍스처)를 이 texture(텍스처)와 혼합합니다 프로젝트로 돌아가면
여기까지 만들었습니다
지난 강의와 비교하면 타일링이 덜 눈에 띕니다
다른 방법을 추가해서 더 낫게 만들 수 있는데 Macro Variation이라고 합니다
이렇게 생긴 방법입니다
Macro Variation을 얻기 위해서는 이 노드들이 필요한데
직접 이 노드들을 만드는 대신에
제가 미리 준비해 두었습니다
이렇게 생긴 texture(텍스처)를 다른 스케일로 다르게 타일링을
합니다
이 texture(텍스처)들을 각기 다른 UV 스케일을 이용해서 혼합하여 macro variation을 제공합니다
연습을 통해 어떻게 동작하는지 알아봅시다
말씀 드렸듯이 정말로
미리 준비해 두었고 사용하려면
start content를 추가해야 합니다
그 노드들은 starter content 안에 있으므로
add(추가)로 가서 피처 또는 콘텐츠 팩 추가...를 선택하고 Content탭의 Starter Content를
선택합니다
프로젝트에 추가를 누릅니다
됐습니다
프로젝트에 starter content를 추가하셨으면 Materials 폴더로 가시면 여기 있는 머티리얼들에서
macro variation을 뽑아낼 수 있습니다
이 M_Metal_Gold이 macro variation을 사용하고 있을 테니 더블 클릭해서 열어주시면
여기 macro variation이 있습니다
우리가 복사해서 가져갈 노드들 이므로
선택하시고 MF_LandscapeMaterialProcess에 붙여넣을
것입니다
M_AutoLandscape로 돌아가면
Landscape Material(랜드스케이프 머티리얼)을 처리하는 머티리얼 함수가 있는데 더블 클릭해서
열고
이 안에 노드들을 붙여 넣겠습니다
됐습니다
노드는 가져왔는데 이제 어떻게 사용할까요 사용은
꽤 쉽습니다
원본 머티리얼로 가보면 출력을 base color(베이스 컬러)와
곱해서 macro variation을 제공하고 최종 출력을 Base Color에 연결합니다
우리도 똑같이 하겠습니다
머티리얼 함수로 돌아가서 선이 꼬이는 것을 피하기 위해 named reroute node(이름 경유 노드)를
사용하겠습니다 이 연결을 끊고
이 것이 최종 base color(베이스 컬러) 출력이므로 이 노드를 드래그 하고
named reroute node라고 입력하고 CachedBaseColorOutput라고 이름 짓습니다
좋습니다
이제 우리는 이 CachedBaseColorOutput을 여기에서 사용할 수 있고 이 출력과 곱해야
합니다
이 노드를 cache(캐시)합니다
다시 named reroute node(이름 경유 노드)를 사용합니다
named reroute node라고 입력하고 CachedMacroVariationOutput이라고 하겠습니다
이제 이 두 값을 곱할 수 있습니다
마우스 우클릭을 해서 CachedMacroVariationOutput을 선택하고 키보드의 m을 눌러
이 두 값을 곱하고 Base Color에 연결합니다
됐습니다
apply(적용)을 누르기 전에 macro variation을 사용하기 전입니다 apply(적용)을 누르면 이 것이
macro variation을 사용한 후 입니다
보시는 것처럼 Landscape(랜드스케이프)에 훌륭한 무작위 변화를 제공해서 타일링을 보다 덜 눈에 띄게
해줍니다
MF_LandscapeMaterialProcess로 돌아와서
macro variation을 위한 노드들 입니다
이 것들을 머티리얼 함수로 만들어서 어디든 사용하고 싶은 곳에서 사용할 수 있게
하겠습니다
그리고 머티리얼 인스턴스에서 boolean 파라미터를 이용해서 macro varaiation을 켜고 끌 수 있는
제어 능력을 만들도록 하겠습니다
이 것이 오늘의 연습 과제입니다
starter content에서 macro variation을 가져와서
content의 거의 모든 metal material에 있을 것입니다
저는 gold material에서 가져왔습니다
다른 머티리얼에서도 가져오실 수 있고 macro variation의 새 머티리얼 함수를 만드셔서
원하는 곳이면 어디서든 사용할 수 있게 하기기 바랍니다
다른 머티리얼에서 사용할 지도 모릅니다
MF_LandscapeMaterialProcess에서 새로 만든 머티리얼 함수를 사용하시기
바랍니다
이것을 사용하려면 base color(베이스 컬러) 출력과 직접 곱해야 한다는 것을 잊지 마십시오
더욱이 켜고 끌 수 있는 UseMacroVariation같은 boolean 파라미터를
만드시기 바랍니다
체크하면 macro variation을 사용하고 체크를 해제 하면 macro variation을 사용하지 않게
말입니다
어떻게 할 수 있을지 생각해 보시고 비디오를 멈추고 시도해 보시기 바랍니다
도움이 필요하시면 돌아오겠습니다
잘 돌아오셨습니다
macro variation을 머티리얼 함수를 이용해서 Landscape Material(랜드스케이프 머티리얼)에 잘 적용하셨습니까
어떻게 할 수 있는 지 보시겠습니다
우선 macro variation을 위한 새 폴더를 만들겠습니다
MaterialFunction폴더를 더블 클릭해서 열고
새 폴더를 만듭니다
MacroVariation으로 이름 짓고 TextureCellBombing과 같이
머티리얼 함수와 사용되는 texture(텍스처)가 같이 들어있게 하시기 바립니다
MF_LandscapeMaterialProcess로 가서
texture sample 노드들이 있는데
이 T_MacroVariation texture(텍스처)를 사용하고 있습니다
돋보기 버튼을 클릭해서 texture(텍스처)가 있는 곳으로 가서 MacroVariation 폴더로
옮기도록 하겠습니다
이 texture(텍스처)를 MacroVariation으로 드래그하고 여기로 이동을 선택합니다
좋습니다
셰이더를 컴파일하고 나면 MaterialFunction폴더에 들어 있는 것을 보실 수 있습니다
바로 새 머티리얼 함수를 만들도록 하겠습니다
머티리얼로 가서 머티리얼 함수를 선택합니다
MF_MacroVariation이라고 하고 더블 클릭해서 열겠습니다
최종 출력 Result를 MacroVariationOutput으로 이름 짓습니다
좋습니다
다음으로 할 일은 노드들을 복사 붙여 넣기 하는 것인데 이 머티리얼 함수안에 있습니다
MF_LandscapeMaterialProcess로 돌아가서
이 노드들을 전부 복사하고 이 MF_MacroVariation에 붙여 넣고 조금 정리하도록
하겠습니다
이 최종 출력을 이 macro variation 출력에 연결하고 이 texture(텍스처)를 사용하는 지 확인하시고
apply(적용)을 누릅니다
MF_LandscapeMaterialProcess로 돌아가서
이 노드들을 사용하는 대신에 머티리얼 함수를 사용할 수 있고 이 texture(텍스처)를
이동했기 때문에 나중에 starter content를 삭제할 수 있습니다
이 머티리얼 함수를 드래그 하면 보시는 것처럼 우리가 사용할 깔끔하고 간단한 출력 socket(소켓)만
있습니다
CachedMacroVariationOutput에 연결하고
창을 최대화 하겠습니다
이 노드들을 모두 삭제 하고 apply(적용)을 누른 후 Landscape Material(랜드스케이프 머티리얼)로 돌아가서
망가진 것이 없는지 확인합니다
좋습니다
다음은 켜고 끄는 기능을 추가하는 것입니다
MF_LandscapeMAterialProcess로 돌아가서
지금 이렇게 MacroVariationOutput을 이용하고 있습니다
base color(베이스 컬러) 출력과 곱해서 말입니다 켜고 끄는 기능을 만들기 위해서는
static switch(스태틱 스위치)를 사용해야 합니다
조건이 참일 경우, 여기의 값이 참일 경우 이 것이 최종 출력이
될 것이고
조건이 거짓일 경우 base color(베이스 컬러) 출력이 최종 출력이 될 것입니다
해보겠습니다
이 것을 거짓으로 연결하면 참은, 이제 우리는 named reroute node(이름 경유 노드)가 더 이상 필요하지 않습니다
이 것이 리터럴 머티리얼 함수이기 때문입니다
이 named reroute node(이름 경유 노드)를 지우고 이 핀을 끊겠습니다
이것도 끊겠습니다
조건이 참일 경우 이 base color(베이스 컬러) 출력과 macro variation 출력을 곱하기 위해
socket(소켓)A에 연결하고 이 것을 True에 연결하고 Base Color에 연결하고 그래프를
조금 정리합니다
좋습니다
다음 할 것은 값입니다
값으로는
boolean 입력이 필요하고 이 UseRotationVariation과 동일한 boolean 파라미터를 추가해야 합니다
이 것이 머티리얼 인스턴스에서 체크하는 기능을 만드는 법입니다
MF_LandscapeMaterialProcess로 돌아가서
function input을 추가하고 input static bool로 변경하고
UseMacroVariation으로 합니다
제가 잊어버리기 전에 Preview socket(소켓)에는 값이 필요합니다 아니면 오류 메시지가 발생합니다
최종 출력에는 아무런 영향도 없습니다
메시지를 없애기 위함일 뿐입니다
마우스 우클릭을 하고 static bool을 입력하고 Preview socket(소켓)에 연결하고
출력을 Value에 연결합니다
좋습니다
그리고 sort priority(정렬 우선순위)를 변경해야
합니다
몇 번이 되어야 할지 한 번 보도록 하겠습니다 이 macro variation이 tiling break와 밀접하게 연결되어 있기 때문인데
이 입력들 밑에 있었으면 하고 이 BaseColorTextureInput 위에 있었으면 좋겠습니다
이 sort priority(정렬 우선순위)는 6이고 이 것은 5입니다
여기에 번호가 필요하기 때문에
이 function input들을 빠르게 정리해 보도록 하겠습니다 5대신에
4가 되어야 합니다
좋습니다
이 CellBombTextureScale을 1에서 0으로 바꿨고
이제 0, 1, 2, 3, 4가 있으니 이 것이 5가 될 수 있습니다
sort priorty(정렬 우선순위)를 5로 바꾸고 apply(적용)을 누르고 M_AutoLandscape로 돌아가서
socket(소켓)이 하나 생겼는데 이 노드들을 내리고 마우스 우클릭을
하고
boolean 파라미터를 꺼내고 GrassLayer_UseMacroVariation으로 이름 짓고
디폴트 값을 참으로 주겠습니다
UseMacroVariation에 연결하고
제가 잊어버리기 전에 상응하는 그룹에 넣겠습니
이 GrassLayer_UseRotationVariation과 GrassLayer_BaseColorTexture 사이에 넣을 것이므로
sort priority(정렬 우선순위)가 3이고 이 것은 2이니
다른 숫자가 필요합니다
빠르게 숫자를 바꿔보도록 하겠습니다
sort priority(정렬 우선순위)를 3으로 바꿨고 이 base color texture는 3에서 4로
여기 안의 숫자들도 바꿨습니다
그리고 이 basic adjustment라는 이름이 좋지 않다는 것을 방금 알았습니다
GrassLayer_TilingAdjustment로 바꾸고 apply(적용)을 누르고 레벨로 돌아가면
boolean 파라미터가 하나 더 생겼습니다
UsedMacroVariation이고
체크를 하면 이렇게 보이고
체크를 해제 하면 이 것이 macro variation을 사용하지 않은 모습이고 이것이 macro variation을
사용한 모습입니다
보시는 것처럼 Landscape(랜드스케이프)에 훌륭한 무작위 변화를 제공해주고 타일링 도한 보다 덜 눈에 띄게
해주고 있습니다
이번 강의에서는 타일링을 깨는 데 macro variation을 이용해 보았습니다
starter content에서 macro variation을 가져와서 이 macro variation을 담고 있는
새 머티리얼 함수를 만들었습니다
이제 원한다면 우리가 만드는 거의 모든 머티리얼에 사용할 수 있습니다
잘 하셨습니다
다음 강의에서 뵙겠습니다