환영합니다. 지난 강의에서 slope(경사) 레이어의 늘어남을 방지하기 위해 triplanar 프로젝션 방법을
성공적으로 사용했습니다
이 방법이 제공하는 많은 장점에도 불구하고 여러 번 텍스처를 투사해야 하기 때문에
감안해야 하는 점이 있다는 것에 주목해야 합니다
지금 현재 보이는 scene(씬)(scene)입니다
보시다시피 grass(그래스)가 있고 soil(토양) 레이어가 있고 경사 레이어가 있습니다
그리고 다음으로 산 정상에 눈을 넣고 싶습니다
더 잘 시각화하기 위해
이것이 제가 얻고 싶은 결과입니다
산 정상에 눈을 좀 추가하고 싶습니다
많은 Landscape(랜드스케이프) 머티리얼서 자주 볼 수 있습니다
그럼 어떻게 하면 이를 달성할 수 있을까요?
한번 생각해 봅시다
먼저 새로운 레이어, 새로운 경사 레이어를 추가해야 합니다
이 단계에 대해 이미 숙지하셨기를 바랍니다.
그리고 그 후에 눈을 봉우리, 봉우리에만 놓을 수 있는 방법을 찾아야 합니다
어떻게 할 수 있을까요?
경사 머티리얼을 참조하면 경사에 경사 레이어를 어떻게 넣었나요?
Mask(마스크)를 사용했고 눈에도 같은 작업을 해야 합니다
그러므로 마스크가 추가적으로 필요합니다
더 구체적으로, Height Mask(높이 마스크)가 필요합니다
잊어버리셨다면, 경사 마스크는 이렇게 생겼습니다
경사면에 흰색 값을 가짐으로써 경사면에 경사 레이어를 적용할 수 있습니다
높이 마스크의 경우
이것이 우리가 원하는 최종 결과입니다
그래서 산의 정상에만 흰색 값을 가짐으로써
산에 눈 레이어를 적용할 수 있습니다
이제 남은 질문은 이것을 어떻게 달성할 수 있느냐는 것입니다
경사 마스크와 같습니다
이 제품을 사용합니다
높이 마스크를 확보하기 위해 vertex normal(정점 법선)을 사용합니다
높이 마스크를 만들기 위해 새로운 노드를 사용해야 하는데 Absolute World Position(절대 월드 포지션)이라고 합니다
이 노드는 머티리얼을 사용하는 object(오브젝트)의 모든 픽셀의 월드 포지션 데이터를 출력합니다
따라서 오브젝트에 머티리얼을 적용한다면, 이 경우에는 랜드스케이프에 적용할 경우, 이 노드를 사용합니다
이 노드에 모든 픽셀의 월드 포지션 정보를 입력할 것이고
이렇게 높이 마스크를 만들 수 있습니다. 이제 평소와 마찬가지로
프로젝트로 돌아옵니다
더 잘 시각화하기 위해 예시 머티리얼을 만들어 보겠습니다
그래서 ExampleMaterial 폴더를 더블 클릭합니다
이를 위해서 새로운 폴더를 생성합니다
이름을 HeightMask로 지정하고 더블 클릭하여 열어줍니다
이제 새로운 머티리얼을 생성할 것입니다
이름은 M_HeightMask로 지정하고 머티리얼 인스턴스를
생성합니다
좋습니다
머티리얼 안으로 더블 클릭합니다
먼저 절대 월드 포지션 노드를 사용해야 합니다
마우스 오른쪽 버튼을 클릭 하고 'absolute world position'을 입력하면 노드를 찾을 수 없을 것입니다
따라서 노드를 사용하기 위해서는 'world position'을 입력해야 합니다
'absolute'을 입력하면 이 노드를 찾을 수 없을 것입니다
따라서 유의해야 합니다
이 노드가 오브젝트의 월드 포지션 정보를 출력한다는 것을 알고 있습니다
데이터를 받은 후에는 z값만 필요합니다
따라서 컴포넌트 마스크를 사용하여 B채널을 마스크합니다
따라서 이 경우, 절대 월드 포지션을 입력하면
이 mesh(메시)의 z값이 출력됩니다
그리고 이것을 Base Color(베이스 컬러) socket(소켓)에 연결합니다
이제 출력 결과를 볼 수 있습니다
마스크가 생성되었습니다
이제 Apply(적용)를 누른 후 scene(씬)으로 돌아갑니다
이를 시각화하기 위해 다른 메시를 끌고 옵니다
Shapes로 가서 큐브를 끌고 옵니다
크기를 조금 늘리고 큐브를 더 길게 만들 것입니다
따라서 z축으로 사이즈를 늘릴 것입니다
좋습니다
위로 조금 끌고 가겠습니다
좋습니다
이 정도면 우리가 원하는 수준입니다
이제 높이 마스크를 큐브에 적용합니다
아래로 스크롤하여 큐브에 할당합니다
마스크를 보려면 마스크를 올바른 위치로 offset(오프셋)해야 합니다
따라서 이 메시를 클릭하고 세부 정보 패널로 이동하면 여기가 큐브의 위치임을 알 수 있습니다
따라서 x축에는 이 값이, y축에는 이 값이, z축에는 이 값이 있습니다
그래서 이것이 시작 높이가 될 것이고 이것이 마스크를 보기 위해 사용할 수 있는 값입니다
그래서 더블 클릭하여 그래프 안으로 들어갑니다
마스크를 오프셋하려면 Subtract(빼기) 노드를 사용해야 합니다
이것을 볼 수 없는 이유는 기본으로 월드 원점에 있기 때문에
마스크를 큐브의 정확한 위치까지 들어 올려야 합니다
첫 번째 섹션에서 말한 것과 같이 언리얼에서 원점은 항상
왼쪽 상단에 있습니다
따라서 마스크를 올리려면 여기에서 값을 빼야 합니다
따라서 이것에 대해 스칼라 파라미터를 사용할 것입니다
이름은
HeightMaskStartHeight로 지정합니다
이제 이것을 B 소켓에 연결하고 그리고 이것은 베이스 컬러에 연결하고 적용을 클릭합니다
레벨로 다시 돌아가 더블 클릭하면 MI_HeightMask가 열립니다
이제 마스크 시작 위치를 제어하는 파라미터가 보일 것입니다
여기가 큐브의 z 값입니다
이 값을 복사하여 시작 높이에 붙힙니다
그러면 이제 마스크가 보이는 것을 확인할 수 있습니다
이 값은 pivot point(피벗 포인트)를 나타내는데 즉, 이 메시의 피벗 포인트의 위치 데이터입니다
그래서 지금 마스크가 피벗 포인트에서 정확히 시작되는 것을 보실 수 있습니다
값을 올리면 바로 마스크를 올릴 수 있습니다
값을 낮추면 마스크를 밑으로 내릴 수 있습니다
이와 같이 높이 마스크를 만들 수 있습니다
이와 더불어 falloff(폴오프)를 제어할 수 있습니다
방법은 상당히 간단합니다
머티리얼 그래프 안으로 다시 이동합니다
여기서 Divide(나누기)노드를 사용합니다
'divide'를 입력하고 이것을 소켓 A에 연결하고 이것을 베이스 컬러에 연결합니다
다른 파라미터를 생성할 것인데 이름은 'HeightMaskFallOff'라고 지정합니다
그리고 기본값을 1로 주고 이것을 소켓 B에 연결하고 적용을 누른 후 머티리얼
인스턴스로 돌아갑니다
이제 값을 예를 들어 1000으로 올린다면 여기에 폴오프가 잘 나타나는 것을 보실 수 있습니다
이는 카메라 depth fade(뎁스 페이드)와 같습니다
그래서 이제 페이드가 이 높이에서 시작할 것이고 완전히 흰색이 되기 위해서는 1000 유닛을 입력해야합니다
그래서 이렇게 멋진 폴오프 효과가 나타납니다
이는 높이 마스크를 생성하는데 상당히 도움이 됩니다
더 잘 시각화하기 위해 이 예시 머티리얼을 랜드스케이프에 배치할 것입니다
랜드스케이프를 선택한 후 이것을 높이 마스크에 끌고 옵니다
이런 결과가 나오는 것을 보실 수 있습니다
여기 검정 부분은 아무것도 넣지 않을 것이지만 흰색 부분에 눈 레이어를
적용할 수 있습니다
여기서 가장 좋은 점은 마스크를 위로 오프셋 할 수 있다는 것입니다
우리가 원하는 높이로 올릴 수 있는 것입니다
이 위치가 눈을 적용하는 부분이 됩니다
폴오프 범위를 예를 들어 3000으로 올리면 눈에 이와 같이 멋진 폴오프 효과가 적용됩니다
이와 같이 산봉우리에 눈을 적용할 수 있습니다
이제 과제를 할 시간입니다
먼저 높이 마스크에 대한 예시 머티리얼을 만들어 봅니다
그런 후 마스크를 조절하기 위한 파라미터를 만들어 봅니다
저와 동일하고 월드 포지션 노드를 사용해야 하고
그리고 시작 높이와 마스크 폴오프를 위한 두 가지 파라미터가 필요할 것입니다
scene(씬)에 따라 높이가 다를 수 있으니 저와 마찬가지로 큐브를 끌고 와서
시작 높이를 설정할 수 있습니다
그리고 큐브의 z값을 복사하여 파라미터에 붙여서
시작 높이를 조절할 수 있습니다
좋습니다
이제 영상을 잠시 멈추고 시도해보시기 바랍니다
다시 오신 것을 환영합니다
예시 머티리얼을 잘 만들어 보셨나요?
간단한 요약을 해보겠습니다
먼저 월드 포지션으로 z값 즉, z 정보를 마스크
아웃을 하고
빼기 노드를 사용해 마스크를 오프셋합니다
여기서 이 마스크는 색상 값에 영향을 받지 않는다는 것을 염두해야 합니다
위치 정보에 영향을 받습니다
따라서 이 파라미터를 사용해 시작 높이를 조절하여 마스크를 오프셋하고 다른
파라미터로
폴오프를 조절할 수 있습니다
이 마스크가 생기면 드디어 산봉우리에 눈 레이어를 적용할 수 있습니다
이제 다음 강의에서 이를 하는 방법을 알아보겠습니다
이 강의에서 성공적으로 높이 마스크를 생성하였고 절대 월드 포지션이라는 새로운 노드를 사용하여
원하는 목표 달성에 도움을 주었습니다
수고하셨습니다
다음 강의에서 뵙겠습니다