환영합니다. 지난 강의에서 성공적으로 높이 마크스에 무작위성을 추가했습니다
더 구체적으로 높이 마스크의 테두리에 무작위정을 제공하고
경사 마스크와 높이 마스크의 조합을 통해 이를 수행했습니다
지금 우리의 Landscape(랜드스케이프) 머티리얼의 모습이며 진행하기 전에
몇 가지 문제를 고치려고 합니다
문제점을 보기 위해 먼저 scene(씬)을 둘러봐야 합니다
그러기 위해 content pack(컨텐츠 팩)을 추가합니다. 삼인칭 시점 컨텐츠 팩입니다
그러기 위해 추가 버튼을 누르고 Add Feature or Content Pack을 선택합니다 여기서 블루프린트의 Third Person(삼인칭)을
선택하고 Add to Project를 클릭합니다
컨텐츠 팩을 불러온 후
프로젝트의 폴더 조직을 정리하기 위해 몇 가지를 옮깁니다
그러기 위해 File에 들어가 Save All을 선택합니다. 컨텐츠 팩을 임포트하면 Characters라는 폴더와
LevelPrototyping이라는 폴더도 임포트됩니다
이 두 폴더를 ThirdPerson 폴더로 옮깁니다. 그러기 위해 Move Here를 선택합니다
좋습니다
옮긴 후에도 아직 Character 폴더가 있는데 간혹 이와 같은 일이 발생할 것입니다
폴더가 비어있는 것을 확인하면 오른쪽 마우스를 클릭해서
Fix Up Redirectors in Folder를 선택하시고 다시 이 폴더를 선택한 후 삭제를 선택하시면 됩니다
그런 후에도 폴더가 여전히 있을 수 있습니다
이런 일이 발생한다면
폴더 익스플로러에서 수동으로 삭제하셔야 합니다
즉, 프로젝트가 위치한 곳에서 Content 폴더에 들어가 이 폴더를
삭제하셔야 합니다
그렇게 삭제하시면 됩니다
자, 그러면 이제 컨텐츠 팩이 생겼습니다
기본 언리얼 마네킹을 사용하여 scene(씬)을 걸어 다녀보겠습니다
그러기 위해 World Setting으로 들어갑니다
그러면 GameMode Override가 보이실 겁니다
현재는 None으로 설정되어 있습니다
마네킹을 조종하기 위해서 Game Mode를 None에서
BP_ThirdPersonGameMode로 변경해야 합니다
이 Game Mode에서 직접 마네킹을 spawn(스폰, 생성)하고 컨트롤러와
기타 여러가지를 관리해 마네킹을 직접 조종할 수 있도록 합니다
좋습니다
이제 재생 버튼을 클릭하면 배경에 돌아다닐 수 있게 됩니다
그래서 지금 재생 버튼을 눌러줄 것입니다
보시다시피 기본 마네킹이 스폰 되었고 이제 이 마네킹을 통해 Landscape(랜드스케이프)를
걸어 다닐 수 있게 됩니다
첫 번째로 눈에 띄는 것은 배경이 과도하게 노출되었다는 것입니다
노출이 다소 높은데 고치기 상당히 쉽습니다
그러기 위해 PostProcessVolume을 선택하고 Details를 클릭합니다
'exposure'라고 검색하면 현재 12로 설정되어 있는 것이 보입니다
11 또는 11.5 정도로 낮추고 재생 버튼을 다시 클릭합니다
아직도 노출이 높은 것 같아 더 낮춰 봅니다
좋습니다
저는 11로 설정했습니다
제가 보기에는 기존보다 괜찮아 보인다고 생각하는데
나중에 값을 언제든지 다시 조절할 수 있습니다
다음에 보일 것으로 생각되는 것은 경사 레이어의 Scale(스케일, 비율/크기)입니다
정확히 말하자면 경사 레이어의 스케일이 완전히 틀리다는 것입니다
이 스케일 때문에 과하게 흐릿합니다
경사 레이어라고 할 수도 없습니다
Material 폴더의 AutoLandscapeMaterial 폴더에 들어가서 머티리얼 인스턴스를 열어주면 문제가 생긴 이유를 볼 수 있습니다
스케일이 어색한 이유는 Triplanar 프로젝션 때문이며 기존에
텍스처 스케일을 0.02로 설정했는데 0.1로 올립니다. 이제 마네킹을 사용해서 보시면
스케일이 조금 더 자연스러워진 것이 보입니다
그러나 스케일을 올리면 산의 경사에 심각한 타일링 현상이 보입니다
그래서 경사로 날아 올라갑니다
보시다시피 심각한 타일링 현상이 일어나고 있습니다. 이를 없애기 위해 텍스처 스케일을
줄여야 합니다
그러나 이 문제를 해결하면 바닥 쪽에도 스케일 문제가 생깁니다
그러면 경사 레이어가 다시 흐릿해지면서 스케일이 다시 어긋나게 됩니다
그러면 어떻게 고칠 수 있을까요?
지금 이것이 스케일 문제이며 이를 없애기 위해 triplanar 텍스처의 스케을 줄여야 하는 것을
알고 있습니다
그러나 그렇게 하면 산의 경사에 심각한 타일링 현상이 일어납니다
따라서 예술 팀원이 이런 문제점을 제시하면 기술 예술 담당자인 여러분이
이런 문제를 해결해야 합니다
고민 끝에 두 개의 해결책을 생각해 냅니다
첫 번째 해결책은 BlendMaterialAttributes 노드를 사용하여 두 가지 방법을 혼합하는 것입니다
첫 번째 방법은 Texture Bombed Slope이고 두번째는 Triplanar Slope입니다
이와 같은 방법으로 레이어에 두 가지 스케일을 넣을 수 있게 됩니다. Texture Bombed Slope는
타일링을 효과적으로 부수기에 좋기 때문에
스케일이 큰 머티리얼에 사용하고 Triplanar Slope는
기본 설정으로 유지하고 Alpha 소켓의 값은 하이트 마스크를 사용하시면 됩니다
그 후 여기에서 마스크를 조절하실 수 있습니다
예를 들어 마스크 시작점 또는
폴오프를 설정할 수 있습니다
이런 절차를 거치면 새로운 경사 레이어가 생깁니다.
이 해결책을 실행하기 위해 M_AutoLandscape으로 들어가서
경사 레이어가 위치한 곳으로 간 후 더블 클릭하여 열어주어야 합니다
여기가 경사 레이어를 위한 두 수단입니다
첫 번째가 Triplanar이고 두 번째가 Texture Bombing이며 모든 절차를
이 곳에서 실행하실 수 있습니다
두 번째 해결책은 Lerp 노드를 사용하는 것입니다
스케일 문제이므로 두 스케일을 블렌드하기 위해 Lerp 노드를 손쉽게 사용하실 수 있습니다
낮은 바닥 쪽에 있는 머티리얼은 높은 위치에 있는
머티리얼과 다른 스케일이어도 괜찮습니다. Alpha 소켓의 값은
첫 번째 해결책과 마찬가지로 하이트 마스크여도 됩니다
여기에서 약간의 조절을 하실 수 있고 이제 새로운 경사 라이어가 생깁니다.
이 해결책을 실행하기 위해 이 머티리얼 함수로 들어가서 텍스처 스케일이
즉, triplanar 텍스처 스케일이 어떻게 사용되는지 보고 Lerp 노드를 사용해 이 두 스케일을 블렌딩 합니다
그러나 이를 위해서 기존의 머티리얼 함수를 수정해야 합니다. 예를 들어 함수 input을 추가하거나
함수 input을 삭제할 수도 있습니다
따라서 이 문제를 해결하기 위해 이와 같은 두 가지 해결책이 있습니다
여러분은 어떤 것을 선택하실 건가요?
다시 오신 것을 환영합니다
문제를 성공적으로 해결하셨나요?
어떤 방법을 사용하셨나요?
여러분이 예상하신 대로 작동하였나요?
작업하는 것이 흥미로웠기를 바랍니다
저는 첫 번째 방법을 선택할 것이며 Texture bombing을 통해 텍스처의 스케일을
더 쉽게 조절할 수 있다고 생각하기 때문입니다
머티리얼 그래프로 돌아가서 M_AutoLandscape으로 들어갑니다. 현재
경사 레이어에 있고 접혀진 노드가 있습니다
더블 클릭하여 열어줍니다
먼저 이 출력물을 cache(캐시)합니다
이것이 triplanar입니다
Name Rerout 노드를 사용할 것인데 이름은 CachedTriplanarSlope라고 지정합니다
두 번째에도 Name Reroute 노드를 사용합니다
이 노드는 CachedTextureBombedSlope라고 이름을 정합니다
이제 두 방법 모두에 Name Reroute이 적용되었습니다
다음으로 이 둘을 결합해야 합니다
이를 위해 BlendMaterialAttributes 사용할 것이고 소켓 A의 머티리얼로
TextureBombedSlope을 연결하는데 낮은 바닥과 관련된 것입니다
소켓 B는 triplanar slope가 될 것이므로 소켓 B에 연결합니다
Alpha 소켓에는
하이트 마스크를 연결합니다
그러기 위해 MaterialFunction 폴더로 들어가서 MF_HeightMask를 가져옵니다
이 머티리얼 함수에는 이 두 파라미터가 필요하고 이를 True 소켓에
연결하면 Texture Bombing 방법의 파라미터가 보일 것이어서
그룹이 상당히 복잡해집니다
따라서 두 파라미터를 새로 만드는 대신에 스칼라 4 파라미터를 다시 사용합니다
그러기 위해 4 키를 계속 누르고 왼쪽 마우스를 클릭해 불러옵니다
파라미터로 전환해주면 파라미터가 사라진 것을 보이실 겁니다
사실 사라진 것은 아니고 버그로 추정됩니다
자동으로 기본 그래프로 옮겨지는데 다시 옮기기 위해서 선택하고 자른 후
경사 노드로 옮겨줘야 합니다
그러기 위해 Ctrl+X를 눌러주고 경사 레이어로 돌아가서 파라미터를 붙여줍니다
이름은 TriplanrAdjustment로 지정합니다
첫 번째 값은 R 채널이며 TriplanarStartHeight라고 부릅니다
두 번째는 TriplanarMaskFallOff입니다
세 번째는 triplanar 테두리 선명도를 직접 조정할 수 있도록
이름을 TriplanarEdgeBlendSharpness로 합니다
마지막은 이 triplanar 텍스처 스케일이므로
이름을 TriplanarTextureScale로 합니다
좋습니다
시작 높이는 0으로 설정합니다
이 값은 나중에 머티리얼 인스턴스에서 조절할 수 있습니다. 폴오프의 기본 값은
500으로 설정하고 테두리 블렌드 선명도는
기본 값을 15로 설정하고 triplanar 텍스처 스케일은
기본 값을 0.02로 설정합니다. 그 후 각각 맞는 그룹에 넣습니다
그러므로 이 부분은 경사 레이어에 넣고 UseTriplanar 밑에 넣고 싶으므로
이 수치는 0으로 설정합니다. 이제 시작 높이는 시작 높이와 마스크 폴오프는
마스크 폴오프와 연결합니다.테두리 블렌드 선명도에는 Name Reroute 노드를 사용합니다
이름은 CachedEdgeBlendSharpness로 합니다. 그리고 이것은
CachedTriplanarTextureScale이라고 합니다
이 두 파라미터 대신에 이 두 Name Reroute 노드를 사용합니다
따라서 테두리 블렌드 선명도와 텍스처 스케일 노드를 불러옵니다
이제 마지막으로 Alpha 소켓에 연결합니다
UseTriplanr를 사용할 경우 True 소켓에 연결해 줍니다
UseTriplanr를 사용하지 않는 경우에는 CachedTextureBombedSlope가
False로 연결됩니다. 그래프를 정돈하기 위해 이 노드들을 살짝 옆으로
옮겨 줍니다
좋습니다
Apply를 누르고 다시 작업물로 돌아갑니다
이제 MI_AutoLandscape에서 열어줍니다
이제 TriplanrAdjustments에 대한 권한을 바꿔줘야 할 것 같습니다
지금은 CellBombTextureScale 밑에 있습니다
분류 순위를 변경할 예정입니다
이 부분은 -1에서 -2로 바꾸고 이 부분은 0에서 -1으로 변경합니다
이렇게 하면 제가 원하는 순서로 바뀌었을 것이므로 Apply를 누릅니다
다시 MI_AutoLandscpae으로 돌아갑니다
좋습니다
이제 TriplanrAdjustment를 조절할 수 있습니다
시작 높이는 간단하게 눈 마스크의 값을 복사하고 붙일 것입니다
여기 시작 높이에 붙이고 보이실지 모르겠으나
여기 이 두 방식을 블렌딩하고 있습니다
시작 높이를 조절하면
위 쪽에는 triplanar를 사용하고 밑에 부분은 texture bombing을 사용하고 있습니다
높이를 약간 조절합니다
보이실 거라고 생각합니다
지금 눈에 거슬리는 전환이 보이실 것인데, 폴오프를 높여서 없앨 수 있습니다
그래서 이것을 2000으로 높이면
더 이상 눈에 띄는 테두리가 보이지 않습니다
이제 높이를 이와 같이 살짝 내릴 것입니다
여기 밑에 보이는 경사는 texture bombing을 사용합니다
Texture bombing으로 타일링을 조절할 수 있습니다
예를 들어, 텍스처 스케일을 0.2로 높이고 더 부수고 싶은 경우
여기 RandomOffsetVariation을 조절하면 됩니다. 예시로 1.5로 바꾸고 RotatioVariation을
조절할 수도 있습니다. 여기서는 1.2로 바꿀 것입니다
이제 더 이상 경사에 문제가 없을 것입니다
다시 재생버튼을 눌러줍니다
보시다시피 훨씬 자연스러운 경사가 보일 것입니다
지금까지 풍경 머티리얼의 대부분을 완성했다고 볼 수 있습니다
지금 무엇을 만드셨는지 잘 모르는 경우 Select Mode로 들어가서
Landscape Mode로 바꾸고 Sculpt 툴을 선택합니다
이 잔디 머티리얼을 사용하는 부분으로 이동합니다
여기 잔디를 올리면 경사가 생기는 것을 보실 수 있습니다
풍경에 자동으로 적용되는 것입니다
다른 부분을 올리면 여기에도 자동화가 되는 것을 보실 수 있습니다
경사 레이어가 새로 만들어진 풍경에 적용되는 것입니다
이것이 Auto Landscape(자동 랜드스케이프) 머티리얼의 최고 장점입니다
이 풍경 머티리얼을 평평한 풍경에 적용하고 완전히 수동으로
만들고 싶다면 이와 같이 머티리얼이 자동으로 적용되는데 높이와
각도에 따라 다르게 적용됩니다
그리고 높이가 적당하게 올라가면 눈도 자동으로 생성됩니다
이와 별개로 가장 최고인 점은 여러분이 작동하는 원리를 아신다는 것입니다
모두 어떻게 작동하는지 아시는 겁니다
이번 강의에서 경사 레이어와 하이트 마스크를 블렌드했습니다
보신 것과 같이 다양한 머티리얼을 블렌드하기 위해 수많은 방법이 있습니다
원하는 결과물을 정확하게 아는 한 창의적으로 작업하실 수 있습니다
고생하셨습니다
다음 강의에서 뵙겠습니다