※ 현재 학습 중인 내용이므로 아직 완전하지 않은 내용일 수 있습니다.
내용에 대해서 피드백을 주시면 관련 내용 보완하여 작성하겠습니다.
이전 포스팅 에서 이어집니다.
10-1. 머티리얼 함수 (1) : UVMasking 함수 제작과 순서
※ 현재 학습 중인 내용이므로 아직 완전하지 않은 내용일 수 있습니다. 내용에 대해서 피드백을 주시면 관련 내용 보완하여 작성하겠습니다. 이번 포스팅에서는 머티리얼 함수에 대해서 정리
wdnote.tistory.com
함수로 효과를 마저 연동해 보겠습니다.
1. 머티리얼 함수로 정리하기
2-2) 이동(Translate) 기능 분화하기
위 방법과 같은 순서로 진행하겠습니다.
· 1단계 _구조 생각하기
이동 기능은 UV(Vector2)좌표에서 빼기(Subtract) 연산으로 좌표 위치를 설정합니다.
그러면 들어오는 입력은 UV, 빼기 연산값이 되겠죠.
정리하면 입력값(Input)은 2개, 출력값(Output)은 1개인 함수를 만들면 됩니다.
·2단계 _입력값과 출력값 생성
이름은 각각 UV, Translate로 짓고, 둘 다 Vector2값을 갖도록 만드시면 됩니다.
· 3단계 _입,출력값의 순서 설정
UV는 Sorting 0, Translate는 1로 설정합니다.
이 함수에서는 특히 순서가 중요합니다.
노드 입력 구조상 UV, 상수가 위아래로 배치되는 편이 보기 편하기 때문입니다.
읽기 편한 노드를 항상 고려해주세요.
· 4단계 _저장 및 확인
저장을 누르고, Translate 함수가 오른쪽과 같이 입력핀 2개와 출력 핀 1개를 표시한다면 완성된 것입니다.
· 5단계 _이전 노드 대체
현재까지 잘 따라오셨으면 위 모습처럼 되어 있을 것입니다.
이제 크기 기능을 분화하는 단계로 이동해 보겠습니다.
2-3) 크기(Scale) 기능 분화하기
크기 기능도 이동(Translate)기능과 구조상 다르지 않습니다.
같은 순서로 진행하겠습니다.
· 1단계 _구조 생각하기
마찬가지로 입력 값 2개와 출력 값 1개를 갖는 구조로 제작하시면 됩니다.
UV입력값과 곱하기(Multiply)연산할 값이 되겠죠.
· 2단계 _입력값과 출력값 생성
그럼 1단계에서 고민해준대로 구조를 맞춰 제작합시다.
그리고 이번에는 Scale 입력값 노드에 붙은 Preview 옵션을 활용해줄 건데요,
'미리보기값을 기본값으로 사용하기' (Use Preview Value as Default) 옵션을 체크해주면
사전 설정된 값을 기본값으로 설정해줄 수 있습니다.
기본 값의 유무는 노드에도 곧바로 반영되는데,
UV입력핀은 흰색인 반면, Scale 입력 핀은 회색인 걸 보실 수 있습니다.
만약 UV 입력핀에 UV값을 입력하지 않으면 '에러가 나타나게 되고',
Scale값은 연결된 값이 없더라도, 에러가 나타나지 않습니다.
기본값이 있기 때문에, 사전 설정된 값대로 자동으로 지정되기 때문입니다.
어떤 값이 필수적인 입력을 보여줘야 하는지에 따라서도 설정할 수 있으니
참조 바랍니다.
· 3단계 _입,출력값의 순서 설정
UV입력값은 0, Scale 입력값은 1로 설정하시면 됩니다.
· 4단계 _저장
저장하고 오른쪽과 같이 노드가 나타나는지 확인합시다.
· 5단계 _이전 노드 대체
현재까지 완성된 모습입니다.
다음은 회전 기능으로 넘어가겠습니다.
2-4) 회전(Rotate) 기능 분화하기
· 1단계 _구조 생각하기
회전 기능은 복잡해 보이지만, 이전 기능들과 같이
R채널과 G채널 입력을 받아서, 1개의 출력값으로 출력하는 노드 구성을 가지고 있습니다.
그럼 회전 노드들을 복사하고 MF_Rotate에 붙여 넣어 줍시다.
· 2단계 _입력값과 출력값 생성
입력값(input) R, 입력값(input) G를 생성하고 각각 Scala로 설정해 주세요.
그리고 위와 같은 형태로 만들어 주시면 됩니다.
· 3단계 _입,출력값의 순서 설정
R을 0, G를 1로 설정하되,
이번에는 미리보기값을 기본값으로 사용하기 (Use Preview Value as Default) 옵션을 선택하지 않습니다.
왜냐하면 R채널과 G채널 한 개라도 빠지면 에러가 나타나야 하기 때문입니다.
이 점을 유의해서 진행해 주세요.
· 4단계 _저장
저장하기를 누르고, R채널 입력핀과 G채널 입력핀이 흰색인 것을 확인해주시면 됩니다.
· 5단계 _이전 노드 대체
이렇게 이전 노드에서 머티리얼 함수로 정리된 모습을 보시면
코드가 상당히 깔끔해진 것을 확인하실 수 있습니다.
2. 내용 정리
이렇게 코드를 정리하고 활용해 보았는데,
이쯤에서 생각의 방향을 바꿔 보도록 하겠습니다.
머티리얼 함수 레퍼런스
각 디폴트 머티리얼 함수를 카테고리에 따라 정리한 레퍼런스 페이지입니다.
docs.unrealengine.com
이미 제작된 머티리얼 함수에는 어떤 것들이 있을까? 하고요.
노드 색이 파란색인 경우에는 전부 머티리얼 함수입니다.
위에 있는 목록에서 확인하실 수 있습니다.
함수를 불러오고 더블클릭하면 해당 내용을 확인할 수 있는데요,
그래서 해당 기능을 '읽고', '사용하고', '분해하고', '고치면서' 이해하는 게
가장 좋은 학습법이라 생각합니다.
본인이 해당 기능을 어떻게 제작하였는지 고민해보고
다른 기능들이 어떻게 구성되어 있는지 살펴보시길 권합니다.
그럼 다음 포스팅에서 뵙겠습니다.