환영합니다
지난 강의에서는 사인파로 Brightness(밝기)를 조절하는 방법을 배웠습니다
머티리얼 그래프에서 음수 값을 사용하지 않는 이유와
0과 1 사이의 값을 Saturate하여 고정시키는 방법도 배웠습니다
사인의 기본 출력 값이 1과 -1 사이이기 때문입니다
이번 강의에서는 사인파의 문제를 고쳐보겠습니다
왜냐하면 0과 1로 값을 고정해놓으면 공이 완전히 검정색이 되기도 하기 떄문입니다
우리가 원하는 결과가 아니므로 고치기 위해서는
사인의 값을 바꿔야 하는데 값을 바꿀 때 무엇을 바꾸는지 확실히 알아야 합니다
사인파로 바꿀 수 있는 값들이 많기 때문입니다
수평과 수직 축을 보면 두 값이 있습니다
수평 쪽은 Time(시간)입니다
시간이 얼마나 빠르게 흐르는지를 의미합니다
만약에 그 값을 다른 값, 예를 들어 2로 곱하면 사인파는
더 빨라질 것입니다
이를 위한 전문적인 용어가 있는데 바로 frequency(주파수)입니다
시간의 Speed(속력)를 키우면 시간을 더 빠르게 흐르게 하는 것이라고 이해하시면 됩니다
예를 들어 값이 0.5일 때 1을 도달하는데 만약 2를 곱해주면
0.25일 때 1에 도달하는 것입니다
그러므로 피크(최고점)는 이 밑으로 내려오며 더 빽뺵한 파장이 생기는 것입니다
Time(시간)도 다뤄봅시다
Multiply 노드를 사용할 것인데 이것은 불길의 블링크 속도를 제어하는 것입니다
1Float, 즉 Constant1Vector로 2를 곱해주기 위해 이걸 Time(시간)에 플러그하고
Time(시간)은 Multiply 노드와 플러그하여 사인에 출력합니다
그러면 불길이 원래보다 더 빠르게 블링크하는 것이 보입니다
좋습니다
너무 빠르기 때문에 다시 원래의 Time(시간) 값으로 되돌려 놓겠습니다
수평 축, 즉 Time(시간)을 키움으로써 사인의 값을 바꿀 수 있습니다
하지만 우리가 바꾸고 싶은 값은 출력 값입니다
Time(시간)에 플러그하고 나서 사인의 원래 출력 값은 1과 -1 사이의 값입니다
그리고 음수 값을 원치 않으므로 Saturate 노드로 고정시킵니다
그리고 보셨다시피 Time(시간)을 Float와 곱해서 시간의 흐름 속도를 바꿨습니다
불길의 블링크 속도가
이전의
두 배 빨라졌으며 이곳의 출력 값을 바꾸진 않습니다
이 값을 살펴봅시다
1부터 0 사이 범위의 Float입니다
이 값이 익숙해야 하는 이유는 "지저분한 플랫폼"을 만들 때 사용했으며
이것과 깊은 연관이 있는 노드가 있기 때문입니다
기억이 나시길 바랍니다
그건 바로 Lerp 노드입니다
Alpha 소켓에 값을 플러그하는 것은 이것의 최종 출력 값에 영향을 줄 수 있습니다
하지만 어떻게 할 수 있을까요?
기억하시나요?
그것이 바로 오늘의 과제입니다
여러분의 과제는 사인과 Lerp를 합쳐서 파이어볼이 검정색으로 되지 않도록 하는 것입니다
그럼 영상을 멈추고 도전해 보시기 바랍니다
어떠셨나요?
사인의 값과 Lerp를 성공적으로 합치셨나요?
어떻게 하는지 같이 살펴봅시다
Lerp 노드를 빠르게 불러오겠습니다
이제 Saturate의 출력 값이 1에서 0 범위라는 것을 알고 있습니다
이 값을 Alpha에 플러그하고 만약 값이 0이면 A를 출력하고
값이 1이면 B를 출력할 것입니다 그리고 우리가 원하는 결과는
Fireball(파이어볼)이 검정색이 되지 않는 것이며 이 출력 값이 0이 되지 않도록 하는 것입니다
일단 이 값을 만들어서 1로 만들어줍니다
그리고 사인파가 0일 때의 값이 0을 출력하지 않길 원합니다
0.5 정도의 값을 주겠습니다
죄송합니다 지금 부분은 추가 녹화입니다
여기에 작은 실수가 있었습니다
Lerp 노드에 사인 값을 넣어주고 있습니다
원래는 값이 0일 때 A를 출력해야 하니 이미 여기 0으로 해놨고
사인이 1일 때는 B를 출력해야합니다, 이경우에는 0.5입니다
그럼 다시 원래 녹화본으로 돌아가보겠습니다
이제 이것의 출력 값은 0.5와 1 사이이며 이걸로 각 Base Color(베이스 컬러)와 Emissive Color(이미시브 컬러)에
Multiply 해줍니다
이제 불길이 블링크되며 완전히 검정색이 되지 않습니다
하지만 0.5는 변화가 눈에 띄지 않으니 0.1로 바꿔보겠습니다
적용하고 밖으로 나가 불길의 블링크를 확인해 볼 수 있습니다
많은 작업이 이루어졌습니다
Time(시간) 노드로 사인파에 영향을 주고 0과 1 사이의 값을 고정했습니다
그리고 여기서 0.5로 Multiply 해줍니다
저는 하지 않았지만 여러분은 하셔도 됩니다
그렇게 하면 시간을 더 느리게 하는 것이며 최종 출력 값을 1과 0.5 사이로 고정하는 것입니다
그 효과 하나를 위해 많은 노드들이 사용되었습니다
그러면 언리얼에서 우리에게
내부적으로 해줄 수 있는 것은 없을까요?
Sine_Remapped라는 노드가 있습니다
Sine_Remapped는 위에 했던 내용을 담은 노드인데
하나의 노드로 값을 바로 출력해낼 수 있습니다
Value 1(값 1)은 A, Value 2(값 2)는 B에 플러그한 값입니다
Sine Phase는 Time(시간) 입니다
이 노드를 대신 사용하고 이 출력 값으로 두 색을 조정할 것입니다
첫 번째 값은 1입니다
두 번째 값은 0.2로 하고 나서 이걸 Value 1(값 1)에 플러그하고
이건 Value 2(값 2)에 플러그하고 사인파와 마찬가지로 이 노드는 Time(시간) 노드를 필요로 합니다
그러니 Sine Phase에 플러그해주고 이 최종 출력 값을 B로 플러그합니다
이 밑에서 한 것과 동일한 작업을 언리얼이 대신 해주는 것입니다
이 모든 노드 작업을 직접 할 필요가 없는 것입니다
하지만 과정이 생각 안 나신다면 이런 과정이었다는 걸 기억하시기 바랍니다
그래프를 조금 정리했으니 값을 파라미터로 변환해보겠습니다
그래야 머티리얼 인스턴스에서 조정할 수 있습니다
이 두 노드들을 조정하고 싶으니 이름은
Max(최대)
Brightness(밝기)로 하겠습니다
MaxBlickingBrightness(블링크최대밝기)도 상관없습니다
이건 Min_Brightness(최소밝기)로 하겠습니다
이 값은 0이 되면 안 된다는 걸 염두에 두셔야 합니다
그리고 Time(시간)을 제어하기 위한 값도 사용할 수 있습니다
노드들을 조금 옮겨서 공간을 만들고 Scalar Parameter(스칼라 파라미터)를
불러옵니다
이름은 Blinking Speed(블링크스피드)로 하겠습니다
그리고 이걸 Time(시간)과 Multiply해주고 최종 출력 값을 이 사인파에 플러그합니다
그럼 기본 값을 주지 않았기 때문에 아직 불길이 블링크하지 않습니다
하지만 0.5라는 값을 주고
적용시킨 다음 Content Browser(콘텐츠 브라우저)로 돌아가 보겠습니다
이것의 머티리얼 인스턴스도 생성해보겠습니다
MI_FireBall이라 지어주고 조정할 수 있도록 Fireball(파이어볼)에 할당해줍니다
이제 조정할 수 있는 값들이 다 여기 있습니다
Blinking Speed(블링크스피드)를 제어할 수 있습니다
예를 들어 아주 극단적으로 5로 바꿔보겠습니다
디스코 같은 느낌이 나기 때문에 도로 0.5로 바꿔주고 Color Bightness(색 밝기)는
건들지 않겠습니다
Emissive(이미시브)는
15로 바꿔보면 불길이 더 밝아집니다
이번 강의에서는 사인에서의 값들을 다루는 법을 배워봤습니다
수평 축의 Time(시간)을 조정하면 파장의 주파수를 제어할 수 있는데
즉 값이 얼마나 빨리 도달하는 지를 제어하는 것입니다
그리고 Sine_Remapped의 사용법과 그 노드 뒤에 있는
작업들에 대해서도 알아보았고 그 노드 없이 수작업으로 할 수 있는 방법도 다뤘습니다
이제부터는 어떤 방식이든 배운 것을 활용해 이 시간차 효과를
만들 수 있습니다
잘하셨습니다