VRChat 마이너 갤러리 저장소

제 목
강좌/정보 VRChat 유저를 위한 잡다한 Shader 강좌 <3>
글쓴이
포동포도
추천
13
댓글
9
원본 글 주소
https://gall.dcinside.com/vr/224722
  • 2019-07-18 14:59:21
 

==============================


오늘은 적지 않은 궁금증과 요청을 받았던

UnityChanToonShader(이하 UTS)에 대해 알아볼 텐데


UTS는 종류도 많고 워낙 그 양이 방대해서

스샷 20개 제한으로는 전부 설명을 못핧 것 같아

이번 편에는 아바타에 자주 쓰는 기능에 대해 설명하고

다음에는 자주 쓰지 않는

UTS 셰이더들의 기능을 더 자세히 쓸 예정이다.




UTS는 2.0.7 버전을 이용했다.

기존 에셋의 UTS를 삭제하고 다시 임포트 한 뒤

Toon폴더의 이름을 변경하는 것을 추천한다.

(Poiyomi Toon Shader와 충돌 가능성 있음)


http://unity-chan.com/download/releaseNote.php?id=UTS2_0





정보는 아래 링크를 토대로 작성했지만

나는 쉽게 풀어쓰거나 부족한 정보를 더해 설명했으므로

정확한 걸 원한다면 링크 타고 보는게 좋다.

https://github.com/unity3d-jp/UnityChanToonShaderVer2_Project/blob/master/Manual/UTS2_Manual_ja.md




내용이 많은 관계로 자주 쓰지 않아서

무시해도 될 법한 부분은 파란색 글씨로 표시했음.


==============================


1. Culling/Cull Mode





Culling에는 Off, Front, Back이 있다.

3가지 종류가 있으니 사진으로 비교해 봐야겠지?







외관상으로는 Cull Off와 Cull Back은 정상적으로 보이는데

Cull Back가 이상하게 보인다.


Cull Back은 앞을 날리고 뒷면을 보이게 하는 프론트 페이스 컬링이므로

나는 아바타의 앞을 보고 있지만

아바타의 마테리얼은 앞면이 삭제되고

뒷면만 남아 저렇게 보이는 것이다.


어디에 쓰이는지는 의문

즉, 안 쓰인다는거다.










멀쩡해보였던 Cull Off와 Cull Front를 비교해보자.

위쪽 사진은 아바타의 머리 내부를 본 사진이고

아래쪽 사진은 아바타의 치마를 본 사진이다.


3D에서는 렌더링 속도를 올리기 위해 앞면은 보여주고

뒷면은 보여주지 않는 기본적인 최적화 옵션이 있어

이 특성인 Cull Back은

대부분의 셰이더에서 자동으로 설정되는 옵션인데


사진을 다시 한 번 보면 Cull Back의 매시 앞면은 그려지고

매시 뒷면이 그려지지 않아 회색으로 보인다는 것을 알 수 있다.


반면에 Cull Off는

앞면과 뒷면을 모두 보여주는 방식(2-Side)이므로

머리 안, 치마 안에도 텍스쳐가 그려지게 된다.








==============================


2. 눈썹이나 눈이 머리카락을 뚫고 보이게 만들기






머리카락은 ~TransClipping_StencilMask,

웬만하면 앞 머리카락에만 쓰는게 좋다.

머리카락 전체에 StencilMask를 쓰게 되면

아바타를 위에서 아래로 내려다 봤을 때

눈썹이 보이게 되니까..


머리카락을 관통해 보이게 하고 싶은 부위(눈썹)는

~TransClipping_StencilOut 셰이더를 쓴다.







적용했더니 눈썹이 머리카락을 뚫고 보이게 된다.


이 방법은 눈썹과 앞머리 매시가 따로 분류되어 있어야 한다.

마테리얼 1개로 병합한 모델은 못한다는 이야기다.







==============================


3. 그나마 가벼운 UTS Shader?



번역된 사진에 나와 있듯이

쉽게 말하자면 Mobile은 조명 측면에서 성능을 저하시킨 셰이더

Toon_DoubleShadeWithFeather, Toon_ShadingGradeMap와 기능은 동일하다.


가볍게 만들려면 Shading설정만 하고

나머지 설정은 하나도 안 건드린 모바일 셰이더 쓰라는 이야기다.



==============================


4. Shading이 뭐에요?


음영 설정이라고 생각하면 된다.


이것은 이전 강좌글에서 UTS뿐만 아니라

한국에서 자주 쓰는 셰이더의 음영을 다루었으니

아래 링크를 보면 된다.


https://gall.dcinside.com/mgallery/board/view/?id=vr&no=218156&exception_mode=recommend&page=1







==============================


5. HightColor


이전 강좌 2편에서

하이라이트에 대해 설명했는데


여기서는 빛이 처음으로 닿는 부분이라고 간주하면 된다.

HightColor는 검은색이 기본인데

그 이외의 색을 지정하면 빛을 받는 부분이 그 색대로 빛난다.


아바타 바디보다는 머리카락에 쓰기도 한다.



HighColor: 색 지정

HighColor Power: 강도. 빛을 반사할 범위의 크기라고 봐도 좋다.

Specular Mode: 음영을 뚜렷하게 보이게 할 건지.


Color Blend Mode: Specular Mode가 활성화될 때 사용. 기본색에 HighColor를 더함.

ShadowMask on HighColor: ShadowMask영역에 HighColor를 더함.

HighColor Power on Shadow: ShadowMask영역에 더해진 HighColor의 강도


HighColorMask: HighColor의 영역을 텍스쳐로 정함. 흑백이미지를 쓴다는 점에서 Emission과 비슷하다.

HighColor Mask Level: HighColorMask의 강도






==============================


6. 아바타 외곽에 색을 입히는 RimLight


외곽선에 색을 입히는 방식.

퍼블릭에서 무기 주렁주렁 들고다니는 아바타 보면

야광색 총의 외곽선이 네온처럼 빛나는걸 볼 수 있다.

그게 RimLight를 사용한 예인데

무식하게 강도를 최대로 올려서 뿌슝빠슝하게 만든거다. 


강좌에서는 건전하게

아바타에 적당한 양의 RimLight를 넣어야 한다.



RimLight를 파란색으로 줬다.

찌찌 외곽과 허리 라인의 차이가 두드러진다.


단독으로 쓰기보다는 Shade음영을 잘 조절하여

아바타 외곽의 색과 RimLight의 색이 잘 어우러졌을 때

아바타가 자연스럽고 예뻐보이는 효과를 줄 수 있다.








RimLight Off/Active로 사용 여부를 판정


RimLight Color: 림라이트 색

RimLight Power: 림라이트 강도

RimLight Inside Mask: 림라이트가 칠해지지 않을 범위의 두께

RimLight FeatherOff: 자연스러운 음영의 림라이트를 해제할 것인가?


LightDirection Mask: 빛을 받는 부분만 RimLight를 활성화 한다.

LightDirection Mask level: 빛을 받는 부분에서 활성화 된 RimLight강도


Antipodean(Ap)_RimLight: 빛을 받는 반대 방향에서 RimLight를 활성화 한다.

Ap_RimLight Color; APRimLight의 색

Ap_RimLight Power: APRimLight의 강도

Ap_RimLight FeatherOff: APRimLight의 음영을 뚜렷하게 할 건지


RimLight Mask: 림라이트의 영역을 텍스쳐로 지정. 흑백 텍스쳐 사용.

RimLight Mask level: RimLight Mask의 강도







==============================


7. 라이팅을 미리 저장하는 Matcap



움짤의 아바타 모델을 자세히 보면

카메라 움직임에 따라 빛나는 부분이 변화하고

약간 매끈매끈한 느낌을 주기도 한다.





극단적인 예시.

왼쪽은 Matcap를 넣었고 오른쪽은 넣지 않았다.


Matcap에 텍스쳐를 넣으면 텍스쳐의

라이트 형태를 저장하여 내보내게 된다.

리얼타임 라이트나 라이트프로브 등의 연산 없이도

꽤 실사적인 빛반사 효과를 낼 수 있는 것이다.


Matcap텍스쳐는 가운데 동그란 원 형태에

배경은 투명해야하는 조건이 있다.








MatCap Sampler: 반사할 텍스쳐와 색을 지정함

Tiling: X축 x개, y축 y개의 텍스쳐 타일을 만듬.

Offset는 무시해도 좋다.


Blur Level of MatCap Sampler: MatCap의 흐림 강도

Color Blend Mode: Additive는 색이 섞이면 더 밝게, Multiply는 어둡게.

Scale MatCapUV: MapCap텍스쳐의 크기

Rotate MatCapUV: MapCap텍스쳐를 회전시킨다.


CameraRolling_Stabillizer: 깊이 방향을 시점으로 회전해도 MatCap를 고정시켜 달라지지 않게 만듬(?)

NormalMap for MatCap: Matcap에 노멀 맵 추가


NormalMap: 노멀 맵 텍스쳐 추가.

Rotate NormalMapUV: 노멀 맵 텍스쳐 회전

MatCap on Shadow: 그림자 영역을 Matcap로 가릴 건지

MatCap Power on Shadow: 그림자가있는 Matcap의 범위의 강도 조절

MatCap Projection Camera: 보는 방향에 따라 달라지던 MatCap를 고정시켜 달라지지 않게 만듬


Matcap Mask: Matcap의 영역을 텍스쳐로 지정함. 역시 흰색과 검은색으로.

Matcap Mask Level: Matcap Mask의 강도

Inverse MatcapMask: Matcap Mask를 반전 시킴







==============================


8. 빛나게 해 주는 Emissive(Emission)




Emissive: 흰색과 검은색으로 빛나게 할 영역과 색 지정. HDR지원


Emissive Animation: Poiyomi처럼 다이나믹한 빛 방출효과 활성화

Base Speed(Time): 실행되는 애니메이션의 시간 간격 조절. 단위는 초.

1 speed라면 1초, 2 speed라면 0.5초. 반비례 관계다.

Scroll U/X direction: U/X방향의 움직임 방향과 강도

Scroll V/Y direction: V/Y방향의 움직임 방향과 강도

Rotate around UV center::Base Speed가 1일 때 값이 1인 시계 방향으로 1회 돌아감.

스크롤 설정이 있다면 스크롤 후 회전.


PingPong Move for Base: 애니메이션 앞뒤의 방향으로 움직임

ColorShift with Time: 활성화하면 Emissive 텍스처에 Destination Color색상을 향해 바뀌는 색의 변화가 곱해짐.

Destination Color: 바뀌는 색상의 목적지. HDR 가능

ColorShift Speed (Time): 색상 변화의 간격. speed가 1이면 6초를 간격으로 색이 왔다갔다함.


ViewShift of Color: 활성화되면 전면에서 물체를 볼 때 정상적인 Emissive색이 나오고 외곽 부분은 ViewShift Color의 색이 나옴

ViewShift Color: ViewShift of Color의 색 지정







==============================


7. 외곽선 추가. Outline




Outline Mode: remove_style_tag;">Outline Width: 외곽선 두께

Outline Color: 외곽선 색


Blend BaseColor to Outline: 기본 텍스쳐와 외곽선의 색이 섞임.

Outline Sampler: 외곽선을 그릴 영역을 지정함. 흑백 이미지 사용


Offset Outline with Camera Z-axis: 카메라 거리에 따른 외곽선을 그릴 영역 지정하는 듯 함. 기본값은 0이고 커질수록 외곽선이 안보이게 될 수 있음.




어드밴스드 옵션 열었을 때

Farthest Distance to vanish: 외곽선이 소멸하기 시작하는 거리(?)

Nearest Distance to draw with Outline Width: 그리기 시작하는 가장 가까운 거리


Use Outline Texture: 외곽선에 텍스쳐를 쓸 건지의 여부

Outline Texture: 외곽선 텍스쳐 지정




==============================


8. 라이트 관리 탭



실시간 라이트가 관여할 영역 설정




==============================


9. 월드 라이트나 효과에 따른 변화에 대응하는 설정



GI Intensity: GI 라이트, 라이트 프로브에 대응하는 강도

Unlit Intensity: 빛이 없어도 빛날 강도. 기본적으로는 1, 1.5 이상일 경우 눈뽕 우려 있음.


SceneLights Hi-Cut Filter: 주변의 강한 강도의 빛이나 실시간 라이트에 대한 과도한 노출을 최소화 함, VRChat 사용자에게 권장되나 잘 적용되는 월드가 있고 되지 않는 월드가 있음. 포스트프로세싱의 Bloom이 이에 관여하는 것으로 보임.


Built-in Light Direction: 아바타 가상 조명의 위치 조정 여부

Offset X-Axis Direction: 왼쪽과 오른쪽으로 움직여 위치를 변경

Offset Y-Axis Direction Inverse: 위쪽과 아래쪽으로 움직여 위치를 변경

Z-Axis Direction: 앞 또는 뒤로 위치를 변경














Unlit 강도를 1.5로 했더니 Bloom에 의해 눈뽕을 일으키고 있다.









==============================


VRChat 유저를 위한 잡다한 Shader 강좌 - 기초와 아바타의 음영 설정

https://gall.dcinside.com/mgallery/board/view/?id=vr&no=218156&exception_mode=recommend&page=1



VRChat 유저를 위한 잡다한 Shader 강좌 - Standard Shader와 자주 쓰는 옵션

https://gall.dcinside.com/mgallery/board/view/?id=vr&no=219638&search_head=50&page=1


딜런 강좌는개추야 2019.07.18 15:01:22
으ㅡ음 2019.07.18 15:01:50
ㅇㅇ "외관상으로는 Cull Off와 Cull Back은 정상적으로 보이는데 Cull Back가 이상하게 보인다." 라고 써져있는데 Cull front 라고 수정 해주삼 175.114 2019.07.18 15:05:58
면요리좋아함 2019.07.18 15:06:48
포동포도 수정함 ㄳ 2019.07.18 15:09:12
ㅇㅇ 내 누드아바타에 matcap넣으면 행복쎅쓰가능? 221.165 2019.07.18 15:09:59
포동포도 가능은 하겠지; 그냥 갤러리에 돌아다니는 유난히 빛나는 빅찌지 아바타들은 matcap있다고 보면 된다 2019.07.18 15:11:23
Thinking 2019.07.18 15:21:42
포동포도 전체적으로 수정함 2019.07.18 15:33:38
번호 분류 제목 글쓴이 날짜 추천
224980 일반 나도 저사람은 딴갤에서 자주봤고한데 2 U_myo 2019-07-19 0
224979 일반 어제 쓰담교류회 무서웟던거 2 가끔입갤 2019-07-19 0
224978 일반 념글가면 후장자위함 17 kawaimomo 2019-07-19 21
224977 일반 자고깨니까 귀한곳에 누추한분이 ㅋㅋㅋㅋㅋㅋ 6 네로남불 2019-07-19 0
224976 일반 난 이겜 참잘즐기고있는데 7 2019-07-19 0
224975 일반 미친새끼들아 이겜하지말라고 3 Kcalb02 2019-07-19 1
224974 일반 브갤 대통합이누 1 꿀뚤 2019-07-19 0
224973 일반 태보교류회 보통 언제끝남? 3 가끔입갤 2019-07-19 0
224972 일반 자꾸 ㄷㄹ ㄷㄹ 하는데 2 차렷충아닌사람 2019-07-19 0
224971 일반 아니 게임도 안하면서 관리만 한다고 완장은 좀 1 바퀴드라곤 2019-07-19 1
224970 일반 골프맵가서 골프 한판 떙기실분 4 딜런 2019-07-19 0
224969 일반 ㄷㄹ이 ㅎㅅ보다 나은이유 4 ㅇㅇ 182.231 2019-07-19 5
224968 일반 몬스터 애너지 관련된 파일 없냐 2 ㅇㅇ 223.62 2019-07-19 0
224967 일반 부랠갤 파딱조건 6 kawaimomo 2019-07-19 0
224966 일반 요즘은 이겜 재미있는거 뭐 없냐 8 miko 223.62 2019-07-19 0
224965 일반 겜이라도 하고오던가 1 꿀뚤 2019-07-19 0
224964 일반 겜이라도 하고오던가 꿀뚤 2019-07-19 0
224963 일반 묵언풀트 35년차.. 3 차렷충아닌사람 2019-07-19 0
224962 일반 vr캐릭터 5 kawaimomo 2019-07-19 0
224961 일반 여름땀냄새어카냐 15 가끔입갤 2019-07-19 0
224960 일반 vrchat 깔면 화본역 가봐 3 면요리좋아함 2019-07-19 1
224959 일반 제가 파딱하면 잘할거같음 3 꿀뚤 2019-07-19 0
224958 일반 갤 데스건 없냐 2 베찐따 2019-07-19 0
224957 일반 나도 이런 집에서 살구싶따 5 딜런 2019-07-19 0
224956 일반 ㅎㅅ관해서 그런건데 12 포동포도 2019-07-19 3
224955 일반 주딱하고 합의봐왔음.. 16 행성 2019-07-19 3
224954 일반 하.. 검은연님 그립읍미다.. 10 차렷충아닌사람 2019-07-19 3
224953 일반 파딱 나주셈 9 카디아. 2019-07-19 3
224952 일반 행성보단 딜런이지 ㅋㅋㅋㅋㅋㅋ 3 ㅇㅇ 182.231 2019-07-19 2
224951 일반 진짜 저딴에 줄봐에 우리갤 대표 정신병자한테 완장주지 ㅋㅋㅋ 1 차렷충아닌사람 2019-07-19 1
224950 일반 적당히 관심줄테니까 딴곳가셈 1 꿀뚤 2019-07-19 1
224949 일반 주딱아 생각 잘 해 3 ㅇㅇ 110.70 2019-07-19 0
224948 일반 지금까지 VRchat 갤러리를 사랑해주신 여러분 감사합니다 6 tntnt 2019-07-19 1
224947 일반 근데 데스건의 정의가 6 가끔입갤 2019-07-19 0
224946 일반 그냥 파딱 시켜 2 ㅇㅇ 223.62 2019-07-19 0
224945 일반 아니 시발 ㅎㅅ은 또 왜 왔어 ㅇㅇ 110.70 2019-07-19 1
224944 일반 오늘 점심은 유부초밥! 딜런 2019-07-19 0
224943 일반 행성 쟤 정신병있잖아 3 ㅇㅇ 211.36 2019-07-19 0
224942 일반 재밌긴 할거같다 1 ㅇㅇ 223.39 2019-07-19 0
224941 일반 아 왤캐웃기지 ㅋㅋㅋ 6 꿀뚤 2019-07-19 0
념글 삭제글 갤러리 랭킹