※ 현재 학습 중인 내용이므로 아직 완전하지 않은 내용일 수 있습니다.
내용에 대해서 피드백을 주시면 관련 내용 보완하여 작성하겠습니다.
이번 포스팅에서는 머티리얼 값 연산을 조회할 수 있는 방법에 대해서 작성하였습니다.
0. 언리얼 연산의 문제점에 대해서 알아보자!
언리얼에서는 주로 값 연산을 통해서 표현을 하게 됩니다.
그런데 여러분.. 문제가 있습니다. 현재 이 노드들의 최종 출력값은 과연 몇일까요?
바로바로 암산하고 생각하기 어렵습니다 ㅠㅠ
이렇듯 언리얼에서 연산을 복잡하게 꼬고 꼬아서 하다 보면
이게 지금 값이 몇인지 이해할 수가 없는 경우가 점점 많아집니다 😢😢😢😢
그래서 노드의 출력 값을 조회하는 방법, DebugValue 함수를 가져와봤습니다.
1. DebugScalaValue, DebugFloat2Value, DebugFloat3Value, DebugFloat4Value,
그래서 현재 값이 몇인지 알려주는 함수, DebugValue에 대해서 알아보겠습니다.
이 중에서 오늘 다루어볼 것은 총 4가지로, DebugScalaValue, DebugFloat2Value, DebugFloat3Value, DebugFloat4Value, 함수로 값을 조회해 볼 거에요.
그럼 하나하나 자세히 뜯어보겠습니다!
1-1) DebugScalaValue 함수
Scala 자료형 조회에 사용되는 머티리얼 함수입니다.
이 함수가 기본으로, 아래 나타나는 Float2, Float3, Float4는 모두 이 함수를 연속으로 출력하는 함수들입니다.
입력 핀 이름 (Input Pin Name) | 설명(Description) | 기본 값(Default Value) |
Number(S) | 숫자로 나타내고 싶은 노드를 연결합니다. | 128.5 |
MaximumNumberOfDigits(S) | 소수점 이하 텍스트의 개수를 설정합니다. | 8, 소수점 이하 7자리까지 표현함. |
UVs(V2) | 텍스트가 표시될 UV좌표를 설정합니다. | TexCoordinate(UV) |
DebugTextLocation RG_UpperRight BA_LowerLeft(V4) |
디버그 텍스트의 전체 출력 영역의 설정 R:왼 ~ B:오른쪽, G:위 ~ A: 아래 |
0, 0.35, 1. 0.65 |
출력 핀 이름 (Output Pin Name) | 설명(Description) |
Result | 값에 따른 출력 결과를 보여줍니다. |
1-2) DebugFloat2Value 함수
Float2 자료형 조회에 사용되는 머티리얼 함수입니다.
여기서 정수 0은 값 조회시에 출력되지 않습니다.
입력 핀 이름 (Input Pin Name) | 설명(Description) | 기본 값(Default Value) |
Number(V2) | 숫자로 나타내고 싶은 노드를 연결합니다. | 1.0 , 2.0 |
MaximumNumberOfDigits(S) | 소수점 이하 텍스트의 개수를 설정합니다. | 5, 소수점 이하 4자리까지 표현함. |
UVs(V2) | 텍스트가 표시될 UV좌표를 설정합니다. | TexCoordinate(UV) |
DebugTextLocation RG_UpperRight BA_LowerLeft(V4) |
디버그 텍스트의 전체 출력 영역의 설정 R:왼 ~ B:오른쪽, G:위 ~ A: 아래 |
0.3, 0.3, 0.7, 0.7 (상하 여백 0.3, 좌우 여백 0.3) |
Component Spacing(V4) | 디버그 텍스트 한 줄의 영역을 설정함. R:왼 ~ B:오른쪽, G:위 ~ A: 아래 |
0 , 0.35 , 1.0 , 0.65 |
출력 핀 이름 (Output Pin Name) | 설명(Description) |
ColorCodedOutput | 값에 따른 출력 결과를 채널 색상으로 보여줍니다. |
GreyScaleOutput | 값에 따른 출력 결과를 흑백으로 보여줍니다. |
1-3) DebugFloat3Value 함수
Float3 자료형 조회에 사용되는 머티리얼 함수입니다.
여기서도 정수 0은 값 조회시에 출력되지 않습니다.
입력 핀 이름 (Input Pin Name) | 설명(Description) | 기본 값(Default Value) |
Number(V3) | 숫자로 나타내고 싶은 노드를 연결합니다. | 1.0 , 2.0, 3.0 |
MaximumNumberOfDigits(S) | 소수점 이하 텍스트의 개수를 설정합니다. | 5, 소수점 이하 4자리까지 표현함. |
UVs(V2) | 텍스트가 표시될 UV좌표를 설정합니다. | TexCoordinate(UV) |
DebugTextLocation RG_UpperRight BA_LowerLeft(V4) |
디버그 텍스트의 전체 출력 영역의 설정 R:왼 ~ B:오른쪽, G:위 ~ A: 아래 |
0.3, 0.3, 0.7, 0.7 (상하 여백 0.3, 좌우 여백 0.3) |
Component Spacing(V4) | 디버그 텍스트 한 줄의 영역을 설정함. R:왼 ~ B:오른쪽, G:위 ~ A: 아래 |
0 , 0.35 , 1.0 , 0.65 |
출력 핀 이름 (Output Pin Name) | 설명(Description) |
ColorCodedOutput | 값에 따른 출력 결과를 채널 색상으로 보여줍니다. |
GreyScaleOutput | 값에 따른 출력 결과를 흑백으로 보여줍니다. |
1-4) DebugFloat4Value 함수
Float4 자료형 조회에 사용되는 머티리얼 함수입니다.
여기서도 정수 0은 값 조회시에 출력되지 않습니다.
입력 핀 이름 (Input Pin Name) | 설명(Description) | 기본 값(Default Value) |
Number(V4) | 숫자로 나타내고 싶은 노드를 연결합니다. | 1.0 , 2.0, 3.0 , 4.0 |
MaximumNumberOfDigits(S) | 소수점 이하 텍스트의 개수를 설정합니다. | 5, 소수점 이하 4자리까지 표현함. |
UVs(V2) | 텍스트가 표시될 UV좌표를 설정합니다. | TexCoordinate(UV) |
DebugTextLocation RG_UpperRight BA_LowerLeft(V4) |
디버그 텍스트의 전체 출력 영역의 설정 R:왼 ~ B:오른쪽, G:위 ~ A: 아래 |
0.3, 0.3, 0.7, 0.7 (상하 여백 0.3, 좌우 여백 0.3) |
Component Spacing(V4) | 디버그 텍스트 한 줄의 영역을 설정함. R:왼 ~ B:오른쪽, G:위 ~ A: 아래 |
0 , 0.35 , 1.0 , 0.65 |
출력 핀 이름 (Output Pin Name) | 설명(Description) |
ColorCodedOutput | 값에 따른 출력 결과를 채널 색상으로 보여줍니다. |
GreyScaleOutput | 값에 따른 출력 결과를 흑백으로 보여줍니다. |
2. 연산 시의 사용법
이제 이 노드를 가지고, 값을 조회해보겠습니다.
0번의 노드 이미지에서, DebugScalaValue를 연결하고 난 후에,
마우스 오른쪽 버튼 → 노드 미리보기 시작(Start Previewing Node)를 클릭해 주세요.
이렇게 값을 조회할 수 있습니다. 조회하면 1.0000009가 나오는데요.
맨 마지막 숫자는 부동소수점 때문에 나타나는 연산 오류이므로 크게 신경쓰지 않으셔도 괜찮습니다.
Number 입력 핀의 값을 바꿔서 적용하여 중간 값도 조회하면서
현재 연산 값이 왜 이렇게 되는지 계산을 확인하는 과정으로 사용하시면 되겠습니다.
이렇게 오늘은 DebugValue 함수로 원하는 값을 조회하는 법에 대해서 다루어 보았습니다~!
그러나 UV값의 경우에는 이러한 방법으로 값을 알 수는 없는데요..
UV값의 조회를 하는 방법, PlotFunctionOnGraph 함수에 대해서 파헤쳐 보겠습니다!
다음 포스팅을 기대해 주세요!
'Unreal5로 UI만들어보기 > 0) Material 다루기' 카테고리의 다른 글
13. 파라미터와 인스턴스로 모서리가 둥근 사각형 패널 만들기 (4) | 2023.03.10 |
---|---|
12. 출력과 테스트 (3) PlotFunctionOnGraph로 값 조회하기 (0) | 2023.03.09 |
10-1. 머티리얼 함수 (1) : UVMasking 함수 제작과 순서 (0) | 2023.03.06 |
9. 그래픽 요소 만들기 (1) 그라디언트와 IF로 도형 그리기 (0) | 2023.03.03 |
8. 텍스쳐 다루기 (2) 텍스쳐 회전(Rotate) 구현하기 (0) | 2023.03.02 |