World Position 노드
현재 픽셀의 월드 스페이스 위치를 출력하는 표현식입니다.
개념 설명은 언리얼 문서가 정확하다.
일단 기본 노드만 연결시켜보았다.
큐브 좌표는 0,0,0 이다.
너무 밝아서 구분을 못하겠다.
베이스 컬러로 바꾸었다.
아직까지는 색을 보면 RGB값으로 보이지 않아서,
천천히 RGB값을 구해보았다.
X축 방향으로는 Red. Y축 방향으로는 Green. 이렇게 단색인 이유는
World Position의 값은(0~월드의 x값)으로 계속 늘어지만, 색이 표현하는 값은 (0~1)이 최대이기 때문이다.
쉽게 말해 World Position 노드는 그 위치에 해당하는 Position 값이다.
x,y,z 위치가 (10,0,0) 이라면 World Position 노드는 (10,0,0)을 반환한다.
(당연한 소리이지만, 난 헷갈렸다.)
알아보기
기본 큐브에 텍스쳐를 입혀보면서 알아보자.
기본 큐브는 X,Y,Z 축으로 100의 길이를 가지고 있어서, 조절해주는 연산이 필요하다.
테스트 중인 큐브의 position이 (0,0,0)이기 때문에,
World Position 노드는 (0,0,0)~(100,100,100)를 반환할 것이다.
큐브의 position이 (5,5,5)였다면,
World Position 노드는 (5,5,5)~(105,105,105)를 반환했을 것이다.
UV는 x,y 값을 가지므로, Mask 노드를 이용하여 x,y 값만 분리한다.
(0,0)~(100,100) 값에 0.01을 곱하여, (0,0)~(1,1) 값으로 만들어서 UV에 넣어주자.
ex) 0.1을 곱하면 (0~10) 값을 가지니까 텍스쳐가 한 줄에 10개씩 들어감.
설명하기 편하게 위에서 (0~100)까지라고 말했지만, 큐브의 피봇은 중간에 있기 때문에
(0~100)이 아니라 (-50~50)이었다. UV값도 (0,0)~(1,1)이 아니라 (-0.5,-0.5)~(0.5,0.5)였다.
0.5씩 더해서 (0,0)~(1,1) 값을 만들어주자.
텍스쳐가 뒤집힌 이유는 기본 큐브의 윗면 UV가 이렇게 되어있어서이다.
어떻게 사용할 지는 감이 잘 안 온다.
사용해보기
내가 위에서 기본 큐브로 테스트를 할 때, UV 값을 만들면서 RG 값만 마스킹해서 가져왔다.
그래서 큐브의 윗면만 제대로 되었다. 옆면은 UV가 제대로 안 먹혔다.
해결법으로 이 분 영상을 따라해보려고 노력했으나, 아직은 이해하기가 어렵다...
https://www.youtube.com/watch?v=8aYe54XrZYI
이 분은 감사하게도 영상 자료들을 Github에 업로드해주셔서 머터리얼 파일을 다운받아 사용해보았다.
오브젝트를 겹쳐놓아도 텍스쳐가 자연스럽게 이어진다 ㄷㄷ...
'기타 > Unreal' 카테고리의 다른 글
블루프린트 입문 1주차 (0) | 2021.02.01 |
---|---|
[Unreal BP] 입사각에 대한 반사각 구하기 (0) | 2021.01.27 |
[Unreal BP] Physics Handle을 이용해 오브젝트 Grab하기 (2) | 2021.01.21 |
[Material] Screen Position 노드 알아보기 (0) | 2021.01.21 |
[Unreal BP] 타임라인 노드로 간단한 애니메이션 만들기 (0) | 2021.01.20 |