1. Blend Mode
https://docs.unrealengine.com/4.26/ko/RenderingAndGraphics/Materials/MaterialProperties/BlendModes/
1) Opaque : 불투명. 금속 등 빛이 투과되지 않는 재질
2) Masked : 해당 머테리얼이 적용된 부분만 표현됨
경계부분을 보면 거칠거칠한데, 마스크는 중간값이 없기 때문임
0 or 1 이다
3) Translucent : 반투명
중간값이 존재하여 부드러운 표현이 가능함
랜더링 계산식
(SrcColor x SrcAlpha) + (BGColor x (1 - SrcAlpha)) = FinalColor
- SrcColor : 빛의 색상 (RGB)
- SrcAlpha : 빛의 양
- 1 - SrcAlpha : 빛의 양이 반전된 것
블랙을 표현할 수 있음 (값이 0에 가까워 질수록)
4) Addictive : 말 그대로 "더해지는" 계산임
배경맵에 계속해서 빛이 더해짐
랜더링 계산식
SrcColor + BGColor = FinalColor
블랙을 표현할 수 없음
0의 값을 자동으로 투명하게 처리됨
2. Shading Model
보통 Unlit 을 많이 사용함
불, 스파크 등 발광하는 요소가 많기 떄문
3. Base Material Node
각 채널들을 살펴보자
1) Base Color
머터리얼 본질의 색
2) Metallic (0~1)
금속 재질 표현
3) Specular (0~1)
반사 정도
(Roughness 채널이 연결되어 있어야 함)
4) Roughness (0~1)
표면의 거친 정도
0 : 매끄러움 (0일 수록 반사정도가 표현이 잘 됨)
0.2
1 : 거칠함
5) Emissive Color
Base 컬러 외에, 추가적인 색을 쓰고 싶을 때 쓰는 채널
큰 값이 입력되면 더 밝은 빛을 출력함 (RGB + 빛의 양)
EX. Multiply 노드 사용해 x100 을 했을 때
6) Opacity
Blend Mode 에서 Additive 활성화시 Opacity 채널 활성화됨
Opacity 에 채널값을 연결해주면 0에 가까운 부분(검정)은 투명해지고, 1에 가까운 부분은 불투명해진다.
4. Material Editor
1) Input, Output, Pin
노드에는 인풋과 아웃풋이 존재
그를 연결시켜주는 부분을 핀이라고 함
2) 코멘트
- 개별 코멘트
Details 에서 수정
- 그룹 코멘트
여러 노드를 선택한 뒤 단축키 C
그룹핑됨
코멘트를 달아주거나 한 번에 이동시킬 수 있음
3) 단축키
(1) 1, 2, 3, 4 + MLB
각각 1, 2, 3, 4 vector 채널 노드
(2) T + MLB
Texture Sample 노드
(3) A + MLB
Add 노드
(4) M + MLB
Multiply 노드
(5) E + MLB
파워 노드
(6) S + MLB
스칼라 파라미터 노드
(7) D + MLB
Divide 노드
(8) U + MLB
Texture Coodinator
UV 를 관리함
(9) P + MLB
텍스쳐 오프셋을 자동으로 시켜주는 노드
(10) Shift + C
컴포넌트 마스크 노드
채널 분리
필요 채널만 활성화 시킬 수 있음
(11) Alt + Pin 클릭
다른 node 와의 연결 해제
(12) L + MLB
linear interpolate Node
4. Node
0) 색깔
- 파란색 노드 : function
1) Append Node
채널을 합쳐주는 노드
- Input : vector 두개
- Output : Input vector 채널 수를 합한 개수의 채널을 가지는 vector
output은 2 flow vector
output은 4 flow vector
2) Add Node
3) Multiply Node
4) Subtract Node
5) Divide Node
A / B
6) Power Node
거듭제곱
어두운 부분은 더 어두워지고, 밝은 부분의 영역이 좁아진다 (완전히 1이 아닌 경우 값이 계속 작아짐)
exp 가 5 인 경우
7) Clamp Node
최댓값과 최솟값의 바운더리를 정해주는 노드
Min 보다 작은 값은 Min 값으로, Max 보다 큰 값은 Max 값으로 대체됨
8) Texturecoord Node
Texture 의 타일링 조절, 매시의 UV 인덱스 저장, 메시의 UV 좌표를 이용
- UTiling : 가로 반복 횟수
- VTiling : 세로 반복 횟수
두 값이 모두 1이면 본연의 텍스처가 적용됨
노이즈 텍스처를 조금 더 밀도 높게 만들 수 있음
=> Seamless 텍스처 라고도 함 (경계가 없는 텍스처)
- Coordinate Index
UV 채널을 조절함
9) Lerp Node
linear interpolate Node
두 인풋값을 블렌딩해주는 노드 (텍스처, 칼라, ...)
- Alpha : 블렌딩 되는 양을 조절
0에 가까울 수록 A input, 1에 가까울 수록 B input
10) Desaturation Node
- 1에 가까울 수록 채도가 적어짐 (흑백)
- 마이너스 값을 주게 되면 채도가 올라감
11) SphereMask
구 형태의 마스크 텍스처를 생성함
- A : 대상이 되는 포지션
- B : Sphere 의 중심값
- Radius : 원의 크기
- Hardness : edge 경계선의 hardness. 값이 클 수록 원이 더 선명해짐
12) Panner
UV 애니메이션을 지정하여 텍스처가 움직이도록 함
루프형태의 이펙트를 만들 때 많이 씀
13) Particle Color
머터리얼과 파티클 컬러를 연동
항상 연산 노드와 연결됨
나이아가라 시스템에서 파티클의 색깔을 조절해주는 창이 있음
만약 머터리얼에서 Particle Color 와 텍스처가 연결되어 있지 않다면,
이 창에서 값을 바꿔도 제대로 적용되지 않음
(Alpha 값을 연결시켜 주지 않으면 A 값을 바꿔도 반영되지 않는다)
14) Dynamic Parameter
나이아가라 시스템에서 파라미터를 변경하여 텍스처의 위치 등을 변경하고 싶을 때 사용
머터리얼 에디터에서 설정한 이름과 동일한 이름의 파라미터들이 존재함
지금 같은 경우는 V offset 을 변경시킬 수 있도록 연결해뒀으므로 다음과 같은 결과가 나옴
15) Time
계속해서 수가 커짐
16) Frac
소수점 부분의 수치만 가져옴
- Time 과 Frac 을 이용한 애니메이션
V 방향으로 좌표가 계속 이동하는 모습
17) VectorToRadialValue
방사형 UV
- U방향
한 바퀴를 도는 방향성 - V방향
센터 - 외곽까지의 거리를 나타냄
18) Depth Fade
바닥 (or 다른 오브젝트?) 등과 머터리얼이 닿을 때 알파값이 자연스럽게 줄어들도록 함
Opacity 에 연결해서 사용
19) TransformVector
노말 텍스쳐의 탄젠트 스페이스를 World Space 의 버텍스(?)로 변환
20) BumpOffset
머터리얼이 보고 있는 방향쪽으로 튀어나와 보이게(양수) 혹은 들어가 보이게(음수) 착시효과를 줌
5. 노말맵으로 왜곡 효과 주기
Multiply 이 커질 수록 왜곡의 정도가 커짐
Frac 적용
1) How?
- 디폴트 uv
u 방향은 빨간색, v 방향은 초록색 - 노말 맵 텍스처
캐릭터 등의 표면을 보다 사실적으로 나타내기 위해서는, 일반적으로 vertex 를 많이 써서 표현한다.
하지만 게임 같은 경우 최적화가 매우 중요하기 때문에 더 많은 폴리곤을 쓸 수 없는 상황이 있을 수 있다.
때문에 노말 맵 등을 사용해 텍스처를 왜곡하여, vertex 를 더 많이 쓰지 않고도 실감나는 표현을 가능하게 할 수 있다. - 노말 맵 텍스처에 마스크를 적용
R, G 만 가져오기 때문에 이와 같은 텍스처가 만들어짐- B 채널만 존재
Depth 만 표현되는 느낌 - B, G
Righting 을 받은 듯한 굴곡 표현 (V 방향) - R, G, B
U 방향의 굴곡까지 표현 -> x, y, z 방향의 모든 표현이 들어가 있는 빛의 계산 - R, G 마스크를 적용 한 텍스처
이 Noise Offset 을 기존 uv offset 에 add 해줌으로써 원 offset 의 색상들이 이 모양대로 "밀리며" 형태가 만들어짐
- B 채널만 존재
2) Why?
왜 노말맵을 사용해야 하는가?
- 일반 텍스처를 가지고 왜곡 효과를 주었을 때의 결과
일반 텍스처를 마스크 노드에 연결했을 때의 결과값은 다음과 같다.
- R 채널, G 채널
일반 텍스처는 R 채널과 G 채널의 값이 같아 흑백으로 보이는 것임
따라서 이를 ADD 로 적용시키게 되면 텍스처가 이동하게 되어버림 - 반면 노말맵은
- R 채널
x축 표현 - G 채널
y축 표현
이렇게 각 채널에서의
모양이 다르다. 상반된 값을 가진다.
- R 채널, G 채널
- 그 이유는
- 텍스처의 모양이 대각선으로 움직이며 가운데에서 벗어나게 된다
'Game Effect' 카테고리의 다른 글
Unreal Engine Game Effect 기초 3 (0) | 2024.11.22 |
---|---|
Unreal Engine Game Effect 기초 2 (0) | 2024.11.22 |
Unreal Engine Game Effect 용어 (0) | 2024.11.22 |