본문 바로가기
Unity Shader Graph

Unity Shader Graph : Time 노드

by kimswong 2023. 3. 8.
반응형

 Unity shader graph의 Input > Basic > Time 노드는 시간과 연관된 값을 추출합니다.

 맨 위의 'Time' 은 일정하게 증가하는 값입니다. 두 번째 'Sine Time' 은 sine 그래프 값입니다.일정한 속도로 -1 에서 1 사이 값을 반복적으로 출력합니다. 마찬가지로 'Cosine Time'은 cosine 그래프 값입니다. 'Delta Time'은 프레임 시간 값입니다.

 

 

 

 

 Trigonometrical > Sine, Cosine 노드는 Input(x)를 임의로 정할 수 있는 노드입니다. 따라서 Sine이나 Cosine 노드의 Input에 Time을 넣으면  Time 노드의 'Sine Time', 'Cosine Time'과 같은 결과를 얻을 수 있습니다.

 

 

 

 

 

 

Time 노드로 Ring 애니메이션 제작

 

Unlit Shader Graph를 하나 생성합니다.

 

 

 

  1. Time 노드의 'Sine Time' 을 Remap 노드의 'In'에 연결합니다.
  2. Remap 노드의 'Out'을 Elipse 노드의 'Width'와 'Height'에 입력합니다.
  3. Remap 노드의 'Out'을 Subtract 노드의 'A'에 입력하고 링의 두께가 될 값을 입력합니다.
  4. Subtract의 'Out'을 또 다른 Elipse의 'Width'와 'Height'에 입력합니다.
  5. 두 Elipse를 Subtract로 빼면 커졌다 작아졌다를 반복하는 일정한 두께의 링을 결과로 얻을 수 있습니다.
  6. 결과를 Base Color와 Alpha에 적용합니다.
 - Remap 노드는 데이터의 범위를 보간해 주는 역할을 합니다. 'Sine Time'은 -1 과 1 사이의 값이므로 그대로 Elipse에 입력하면 지름이 음수가 되므로, 값을 양수로 보간해줍니다.

 - Shader Graph는 기본적으로 Object Space로 세팅되어 있어 링의 두께는 셰이더가 적용되는 오브젝트의 크기에 비례합니다.

 

 

'Sine Time' 외에도, Sawtooth Wave, Square Wave 노드 등을 이용해 다른 결과를 얻을 수 있습니다.

 

 

반응형

'Unity Shader Graph' 카테고리의 다른 글

Unity Shader Graph : Position 노드  (2) 2023.03.08
Unity Shader Graph : 행렬  (0) 2023.02.22