이펙트아카데미 특강/외주/커뮤니티
언리얼5 - 커스텀 노드: UV 스케일 및 이동(Scale & Translate) 직접 만들기
사용 기본코드
// Apply scaling to A
float2 scaledA = UV * Float4.xy; // Scale using B.xy
// Apply translation to scaledA
float2 transformedA = scaledA + Float4.zw; // Translate using B.zw
// Output the transformed UV coordinates
return transformedA;
주제 : UE5에서 사용자 정의 UV 노드 생성 (UV 스케일 및 이동)
문제 제기 : UE5에는 UV 좌표를 이동(Translate)시키는 기본 노드가 없다는 점을 발견하여, 이를 해결하기 위해 커스텀 노드를 제작함.
핵심 해결책 : UE 머티리얼 에디터의 `Custom` 노드를 활용하여 HLSL 코드를 직접 작성 및 적용.
1. 커스텀 노드 코드 및 원리
작성된 코드는 UV 좌표에 스케일과 이동을 동시에 적용하는 기능을 수행합니다.
???? HLSL 코드
hlsl
// Apply scaling to A
float2 scaledA = UV Float4.xy; // Scale using B.xy
// Apply translation to scaledA
float2 transformedA = scaledA + Float4.zw; // Translate using B.zw
// Output the transformed UV coordinates
return transformedA;
???? 작동 원리
`UV`: 입력으로 들어오는 기본 UV 좌표(float2).
`Float4`: 스케일과 이동 값을 포함하는 4차원 벡터(float4).
`Float4.xy`: UV 스케일 값 (U 스케일, V 스케일)으로 사용.
`Float4.zw`: UV 이동(Translate) 값 (U 이동, V 이동)으로 사용.
프로세스: 기본 UV 좌표에 `Float4.xy`를 곱하여 스케일을 적용한 후, 여기에 `Float4.zw`를 더하여 이동을 적용합니다.
-----
2. UE 머티리얼 에디터 적용 방법
1. `Custom` 노드 추가: UE 머티리얼 그래프에 `Custom` 노드를 배치합니다.
2. 코드 붙여넣기: 노드의 기본 코드를 지우고 위에서 작성한 HLSL 코드를 붙여넣습니다.
3. 입력 및 출력 설정:
Inputs (입력): 코드에 사용된 변수 이름인 `UV` (UV 좌표)와 `Float4` (4차원 벡터 제어값)로 설정합니다.
Output (출력): 결과로 변환된 UV 좌표를 출력합니다.
4. 노드 연결: `Float4` 입력에는 `Color` 노드나 `AppendMany` 노드를 연결하여 4개의 채널(RGBA)에 스케일 및 이동 값을 할당합니다.
5. 노드 이름 지정: 노드에 `UV 스케일링 변위` (UV 스케일/이동)와 같이 적절한 이름을 지정하여 재사용성을 높입니다.
-----
3. 기타 논의 및 의견
UV 이동의 대안: 댓글에서 다른 사용자가 중앙점 이동의 경우 내장 노드에 2차원 벡터를 추가하는 방식(기본 UV - 0.5*2 + 2차원 벡터)으로도 이동이 가능하다고 지적했고, 작성자 역시 이를 인정하며 이전에 UE를 오래 접하지 않아 생각하지 못했다고 밝혔습니다.
Panner 노드: UV 흐름(애니메이션)에 대해서는 `Panner` 노드라는 기본 노드가 존재한다고 언급했습니다.
변수명 변경 시 유의사항: `Float4` 노드의 이름을 변경할 경우, 코드에서 원래 변수(예: RGBA)를 인식하지 못하고 오류가 발생할 수 있으므로, `AppendMany` 등의 노드를 사용하여 변수명을 일치시키는 연결 방식을 사용해야 함을 설명했습니다.
에반 언리얼5 이펙트 그룹과정[12월 시작] : https://cafe.naver.com/unrealfx/20727
KUPAFX Stylized 유니티 이펙트 취업과정 : https://cafe.naver.com/unrealfx/21249
트리키 언리얼+후디니 활용 게임 VFX 연출과정 : https://cafe.naver.com/unrealfx/25629
max님의 쌩기초 메쉬활용 이펙트과정 1달특강 : https://cafe.naver.com/unrealfx/24469
eVan텍스쳐 단품과정 : https://cafe.naver.com/unrealfx/24468
rak 유니티 UI연출이펙트 : https://gamefx.co.kr/bbs/page.php?hid=Rak_intro