메뉴 건너뛰기

조회 수 194 추천 수 0 댓글 0


Honeycam 2022-03-10 12-12-24.gif1.5 MB

 

원래는 스파인의 Slot별 SetColor()가 유니티 기본 사양 컬러 블렌딩인 Multiply로 동작한다.

하지만 Hue-Shift 스타일 색상 변경을 원하는 관계로 셰이더를 고쳐서 써야했다.

 

Spine URP 셰이더 패키지의 Shaders/include/Spine-Sprite-ForwardPass-URP.hlsl 파일에서

 

LightweightFragmentBlinnPhongSimplified 함수의

half4 diffuse = texDiffuseAlpha * vertexColor; 이 부분이 텍스쳐의 기본 색상과 염색 색상을 Multiply 하고 있길래

half4 diffuse = adjustHueOfColor(texDiffuseAlpha, vertexColor); 요렇게 수정하고

 

 

 

그 위에다가 아래의 함수들을 추가해 주었다.

 

float3 rgb2hsv(float3 c)
{
  float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
  float4 p = lerp(float4(c.bg, K.wz), float4(c.gb, K.xy), step(c.b, c.g));
  float4 q = lerp(float4(p.xyw, c.r), float4(c.r, p.yzx), step(p.x, c.r));

  float d = q.x - min(q.w, q.y);
  float e = 1.0e-10;
  return float3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}

float3 hsv2rgb(float3 c)
{
  c = float3(c.x, clamp(c.yz, 0.0, 1.0));
  float4 K = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
  float3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www);
  return c.z * lerp(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}

inline half4 adjustHueOfColor(half4 color, half4 _value)
{
   float3 hsv = rgb2hsv(color.rgb);
   //hsv.x = _value.x; // sets it to the target hue
   hsv.x += _value.x; // or use this line instead to add a hue-shift to it
   hsv.y *= _value.y;
   hsv.z *= _value.z;
   color.rgb = hsv2rgb(hsv);
   return color;
}

 

 

 

물론 내가 한 건 별로 없고 스파인 개발자가 대부분 알려줌

http://ko.esotericsoftware.com/forum/Slot-SetColor-in-different-blend-mode-17216?p=75550#p75550

 

나는 아직 셰이더질은 제대로 못 한다네~

 


엮인글

사진 및 파일 첨부

여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.

파일 용량 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
33 게임 터렛 관절 무-빙- file 조루나 2021.07.23 257
32 게임 한붓 그리기 경우의 수 계산 file 조루나 2021.10.20 244
31 게임 유니티 URP에 쓸 투명 원 쇼크 웨이브 file 조루나 2021.12.27 218
» 게임 유니티 Spine 셰이더 고쳐서 부위별 Hue-Shift 적용시키기 원래는 스파인의 Slot별 SetColor()가 유니티 기본 사양 컬러 블렌딩인 Multiply로 동작한다. 하지만 Hue-Shift 스타일 색상 변경을 원하는 관계로 셰이더를 고쳐... file 조루나 2022.03.10 194
29 게임 Shader를 적용 시킨 UI에 ZWrite가 On 되어 있으면 안되나? file 조루나 2022.03.29 150
28 게임 배경 하늘 경계선이 마음에 안 들어서 그래디언트 추가 file 조루나 2022.03.31 158
27 비주얼 크기의 1~5 나타내는 액체용기 픽토그램 file 조루나 2022.04.07 138
26 게임 유니티 스파인 슬롯에 HSL 색상 변경(=포토샵 Colorize) 3 file 조루나 2022.05.13 302
25 게임 앱 이름에 따라 프레임이 다르게 나온다... file 조루나 2022.06.21 145
24 게임 유니티 컬러 스페이스와 스파인 HSL 색 변경의 역습 file 조루나 2022.07.06 327
23 게임 유니티 2D(2.5D) 타일 에셋 - Super Tilemap Editor file 조루나 2022.07.06 156
22 게임 파티클 메쉬와 Optimize Mesh Data의 저주 file 조루나 2022.07.14 142
21 비주얼 블렌더 맛보기 1 file 조루나 2022.07.21 193
20 게임 스파인 텍스쳐 런타임 색칠하기 file 조루나 2022.09.02 141
19 게임 Unity 2020에서 Spine 3.6 Runtime이 AtlasAsset을 제대로 Import하지 못 할 때 file 조루나 2022.09.20 166
18 게임 미소녀 뱀파이어 서바이버즈를 만들자! - 캐릭터 몸에 마법 문신 넣기 file 조루나 2022.10.06 257
17 게임 에셋 Super Tilemap Editor가 바닥면 Collider를 만들어주지 않아 file 조루나 2022.10.27 156
16 게임 유니티 transform 참조의 문제 file 조루나 2022.11.10 202
15 게임 세 가지 셀 셰이딩 에셋의 단순 프레임 비교 file 조루나 2023.02.03 180
14 게임 유니티 모바일에서 VideoPlayer로 영상 재생하면 자꾸 멈춘다. 조루나 2023.02.23 173
Board Pagination Prev 1 2 3 Next
/ 3