환영합니다
지난 강의에서는 코멘트 작성의 중요성과 사용되는 값들을
적어둠으로써 우리가 했던 작업들을 잘 기억할 수 있고 배운 내용을 상기할 수도 있습니다
이번 강의에서는 조금 더 복잡한 머티리얼을 생성해 우리가 배운 것들을 전부
적용시켜 보겠습니다
이것을 이번 강의에서 만들어 볼 것입니다
복잡해 보이지만 전부 우리가 배운 노드들과
배운 지식들을 활용해 이번 과제도
이행할 수 있습니다
우선 이 Fireball(파이어볼)을 분석해 봅시다
머티리얼을 생성하기 위해서는 텍스처가 필요할 것입니다
불길 텍스처가 필요합니다
다행히도 Starter Content(시작용 콘텐츠)에 포함되어 있습니다
그러니 이 부분은 문제 없습니다
다음은 이 머티리얼을 사용하게 될 mesh(메시)인데 이 부분은 꽤 간단합니다
그냥 Sphere(구)를 드래그해온 다음 머티리얼을 적용시키면 됩니다
그리고 마지막은 조금 어려울 수 있는데 그래도 여러분은
잘 해낼 수 있을 것이며 그것이 오늘의 과제가 될 예정입니다
여러분의 과제는 Starter Content(시작용 콘텐츠)에 있는 텍스처를 사용할 것인데
T_Fire_Tiled라는 이름이고
이 Fireball(파이어볼)을 만들기 위해 사용할 것입니다
그리고 여러분이 보시는 것과 비슷한 머티리얼을 생성해보시기 바랍니다
제가 했던 것과 완전히 똑같이 하는 것은 불가능하니 걱정마시기 바랍니다
하지만 최대한 비슷하게 만들도록 노력해 보시고 어떻게 할 수 있을지 잘 생각해 보시기 바랍니다
필요한 노드들은 전부 이전 강의들에서 다뤘던
노드들입니다
아직 설명드리지 않는 노드가 하나 있긴 한데 그것은 마무리 작업에서 필요한 것이며
다른 노드들을 마무리할 때 필요합니다
잘 따라하실 수 있을 것입니다
준비가 되셨다면 먼저 이 머티리얼을 구현해보시고
준비가 안 되셨다면 제가 힌트를 조금 드리겠습니다
먼저 어떻게 불길을 움직이게 할 것인지 그리고 어느 방향으로 움직일지부터
생각해 보시기 바랍니다
그리고 가장 중요한 것은 어떤 노드들이 필요하느냐 입니다
일단 Fireball(파이어볼)로 돌아가서 5초 정도 멈출 테니 여러분은 그걸
참고하셔서 만들어 보시기 바랍니다
스스로 시도해 보시고 지금까지의 강의들에서 배운 내용들을
활용하셔야 합니다
재밌는 작업이 될 것입니다
그럼 여기서 5초 멈춰둘 테니 뭔가 문제가 생기면 다시 돌아오시면 됩니다
이제 영상을 멈추고 직접 시도해 보세요
좋습니다
어떠셨나요?
최대한 비슷하게 이 효과를 내는 것에 성공하셨나요? 문제 없으셨나요?
걱정하지 않으셔도 됩니다
같이 해보겠습니다
만약 성공적으로 만들어 내셨다면 잘하셨습니다
비슷하다면 서로의 방법을 비교해 봅시다
먼저 머티리얼을 생성하고 이름은 M_FireBall로 하겠습니다
끝입니다
더블 클릭으로 머티리얼을 열어줍니다
그리고 우선 텍스처가 필요해 보입니다
Texutre Sample(텍스처 샘플) 노드를 불러오겠습니다
제가 샘플할 텍스처는 T_Fire_Tiled입니다
Starter Content(시작용 콘텐츠) 안에 있으며 RGB를 Base Color(베이스 컬러)에 플러그해줍니다
기억하고 계실 거라고 생각하겠습니다
Base Color(베이스 컬러)에는 3Floats가 필요하고 일단 Fireball(파이어볼)이 생겼습니다
아직 아주 좋아 보이지는 않지만 곧 수정할 것이니 일단 적용시킵니다
이제 Place Actor(액터 배치)에 가보겠습니다
mesh(메시)가 필요한데 지금은 Sphere(구)가 필요합니다
좋습니다
Sphere(구)를 끌어와서 "지저분한 플랫폼" 옆에 정렬합니다
여기서 머티리얼을 M_FireBall로 바꿔주겠습니다
좋습니다, Fireball(파이어볼)이 생겼습니다
다음 단계는 불길이 움직이도록 하는 것입니다
최근 강의들을 상기해보면 텍스처를 움직이게 하기 위해 필요한
노드들이 있었습니다
UV를 움직여야 하므로 여기에 필요한 노드가 있습니다
바로 Panner입니다
그러니 불러온 다음 이걸 UV 소켓에 플러그하고 Speed X를 바꿔줍니다
다시 떠올려보면 불길은 수평으로 움직였으며
제가 보여드린 예시에서 수직으로도 움직였습니다
두 방향으로 전부 움직이며 일단 수평 축을 따라 움직이게 하려면
Speed X에 값을 주고 적용합니다
그러면 불의 텍스처가 움직이긴 하지만 아직도 아주 좋아 보이지는 않습니다
그 이유는 이 색을 Emissive Color(이미시브 컬러)에 플러그해줘야 하기 때문입니다
그렇게 하면 이미 꽤 괜찮은 결과가 보입니다
좋습니다
이제야 불길처럼 보입니다
적용시키겠습니다
이제 불길이 움직이긴 하지만 여전히 인위적입니다
원본 예시를 보면 불길이 수평으로도 움직이고
수직으로도 움직입니다
어떻게 할 수 있을까요?
그러기 위해서는 당연하게도 방향 샘플이 하나 더 필요합니다
그래서 이 Texture Sample 노드와 Panner 노드를 복제하고
플러그해주는데 이번엔 수평이 아닌 수직으로 움직이게 할 것입니다
예를 들어 0.2 정도 값을 넣어 봅시다
그러면 이제 이 두 Texture Sample 노드들을 합치기 위해선 어떻게 할까요?
이 기능은 나중에도 자주 쓰이게 될 기능입니다
언제든 두 색의 값을 합쳐서 Base Color(베이스 컬러)의 RGB로
플러그하여 여기에 보이는 것을 반영합니다
이 두 색의 값을 합치고 싶을 때, 그러니까 이 RGB 값이나
이 소켓에서 나오는 값들을 합치고 싶을 땐 Multiply 노드를 사용해야 하니 단축키로 불러와 주겠습니다
M을 눌러서 불러온다는 것을 기억하실 거라고 생각하겠습니다
그리고 Multiply 노드를 사용해 두 값들을 합칠 수 있습니다
그래서 이 두 RGB를 Multiply 노드에 플러그하고 또 그걸 Emissive Color(이미시브 컬러)에 플러그합니다
RGB 출력 값을 Base Color(베이스 컬러)뿐 아니라 Emissive Color(이미시브 컬러)에도 사용하는 것입니다
그러면 바로 이 머티리얼들이 복잡해진 것 같아 보이는데 그렇지 않습니다
단순히 이 텍스처들을 두 개의 다른 방향으로 움직이는 것 뿐이며 결과적으로 복잡해 보이는 연출이
보이는 것입니다
계속 분석해 봅시다
이 불길 텍스처에는 문제가 있습니다
우선 너무 어두워 보이고 우리가 원하는 것은 밝은 느낌입니다
그 뜻은 여기의 출력 값을 바꿔야 한다는 것입니다
RGB 값에 플러그할 때 사실은 3Constant, 즉 3Floats를 플러그하는 것입니다
그 Float들을 키울 수 있다면 색의 Brightness(밝기)도 키울 수 있을 것입니다
이 규칙은 Base Color(베이스 컬러)와 Emissive Color(이미시브 컬러)에 둘 다 적용됩니다
값을 올리면 각 Brightness(밝기)도 증가하는 것입니다
Base Color(베이스 컬러)를 먼저 해봅시다
새로운 Multiply 노드를 기존 Multiply에 플러그 하고
이걸 Base Color(베이스 컬러)에 플러그합니다
지금은 1로 곱하는 것이니 딱히 의미가 없습니다
하지만 예를 들어 3으로 값을 올리고 Multiply에 플러그하자마자
Fireball(파이어볼)에 즉각적인 변화가 보입니다
30으로 바꿔볼 수도 있는데 그러면 너무 밝아 보입니다
다시 3으로 바꿔주겠습니다
좋습니다
Emissive Color(이미시브 컬러)도 증가시키고 싶습니다
이 값을 바로 Emissive Color(이미시브 컬러)에 플러그하면 안 되는 것일까요?
Emissive Color(이미시브 컬러)와 Base Color(베이스 컬러)에서의 Brightness(밝기)를 따로
관리하고 싶기 때문입니다
그래서 마찬가지로 Multiply 노드로 값을 올려주겠습니다
그리고 이 소켓에 플러그되는 값이 이 색의 Brightness(밝기)를 제어할 것입니다
Emissive(이미시브)는 5 정도의 값을 넣고 소켓에 플러그한 다음
Emissive Color(이미시브 컬러)에 플러그하겠습니다
그러면 바로 불길이 더 밝아진 것이 보이고 점점 좋아지고 있습니다
하지만 어떻게 더 보완할 수 있을까요?
그건 Panner 노드를 사용해 할 수 있습니다
좌표들을 다뤄보는 것입니다
각 텍스처의 타일링을 바꿀 수 있습니다
Speed(속력), 즉 얼마나 빨리 움직일지를 바꿀 수 있습니다
일단 첫 번째 것부터 시작해보겠습니다
Panner 노드는 Texture Coordinate(텍스처 좌표)를 필요로 합니다
그러니 Texture Coordinate(텍스처 좌표) 노드를 불러와줍니다
여기 값들을 바꾸진 않을 것입니다
그러니 Speed X를 다시 0으로 바꾸겠습니다
그러면 움직임이 멈췄습니다
이제 Texture Coordinate(텍스처 좌표) 차례입니다
이걸 Coordinate(좌표)로 바로 플러그하면 아무 의미도 없습니다
Multiply를 사용해야 한다는 것을 기억하시기를 바랍니다
이제 여기서 텍스처의 타일링 횟수를 제어할 수 있는데 축들을 따로
제어하고 싶다면
컴포넌트 마스크가 필요합니다
이것도 지난 강의들에서 다뤘었습니다
하지만 여기선 U와 V를 전부 묶어야 하니 일단 2 값을 넣어주겠습니다
지금은 두 번씩 타일링이 되지만 이걸 Panner 노드에 다시 플러그해줍시다 그리고 Time(시간)은
불길이 얼마나 빨리 움직이는지를 다룹니다
그래서 Time(시간) 노드를 불러와서 이 수평 불길을 위한 값을 넣어줍니다
전보다 두 배 더 빠르게 움직이도록 해보겠습니다
1Float을 불러와서 2를 넣어주고 플러그할 것입니다
이제 모든 시간은 전보다 두 배 더 빠르게 움직입니다
수평 축을 따라 움직여야 할까요, 수직 축을 따라 움직여야 할까요?
이 경우에는 수평 축입니다
그러므로 Speed X만 바꿔주겠습니다
여기에 마우스를 올려보면 Vector2가 필요하다고 적혀있습니다
이 vector를 여기에 플러그하면 따로 제어할 수 없습니다
그러면 나중에 파라미터로 변환할 수 없습니다
그래서 제가 할 것은
Speed X가 될 Constant1Vector를 불러와서
0.2라는 값을 주고 또 다른 Constant1Vector를 불러와 이번엔
0을 넣겠습니다
이건 Speed Y가 될 것이며 이 두 vector를 Append로 합쳐주겠습니다
이제 여기서의 출력은 Vector2가 되고 이걸 Speed(속력)에 연결해 줍니다
다시 불길이 움직이기 시작했습니다
Speed(속력)가 조금 빠른 것 같으니 0.8로 줄여보겠습니다
이런 식으로 보입니다
1.1도 괜찮을 것 같습니다
여기서 하는 건 여러분의 심미적 취향입니다
그렇다면 수직 불길은 어떻게 해야 할까요?
같은 작업을 반복하면 됩니다
Texture Coordinate(텍스처 좌표) 노드를 불러와서 이번에는 수직 축을
3번 타일링하게 하고 이 값을 Panner에 플러그합니다
변형을 조금 주었습니다
그리고 Speed(속력)는 괜찮은 것 같으니
Time(시간)과 Speed(속력)는 건들지 않겠습니다
Speed(속력)를 바꾸고 싶긴 하지만 이번에는 수직 축에서 다뤄보고 싶습니다
Speed(속력)에 0.3을 넣어주고 이걸 Speed(속력)에 플러그합니다
이 여러 노드들로 불길의 텍스처를 더 유동적으로 다룰 수 있게 되었습니다
다시 돌아가보면 제가 보여드린 원본과 꽤 흡사해졌습니다
이제 머티리얼 그래프가 더 복잡해졌고 이 파이어볼은
블링크를 하지 않는다는 문제도 있습니다 블링크라 함은 Brightness(밝기)가 랜덤으로 바뀌는 것을 말합니다
어떨 때는 밝아졌다가 어떨 때는 어두워지는 그런 연출을 다음 강의에서 다뤄보겠습니다
이번 강의에서는 Multiply 노드를 사용해 Brightness(밝기)와 색, 그리고 그 출력 값을 조절하는 방법을
배웠습니다 .
직접 활용해 보기도 했습니다
이제 Multiply를 사용해 두 개의 다른 RGB 값을 합칠 수 있습니다
그 두 텍스처 샘플들을 기억하시나요?
Panner 노드와 UV나 Speed(속력)를 조정함으로써 불길 머티리얼을 생성하여
불길을 움직이도록 만들어봤습니다
좋습니다
다음 강의에서 뵙겠습니다