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
번호 분류 제목 글쓴이 날짜 추천
319909 일반 초3때 왕따 당한적 있음 kawaimomo 2019-11-23 0
319908 질문 puzzle island v1.2 해 본 사람.. 27 dd 182.209 2019-11-23 0
319907 일반 화본역 설문조사 결과 버기 대 우솝 버기 우승 2 ㅁㄴㅇㄹ 175.122 2019-11-23 0
319906 일반 브챗하는새끼들 최소 왕따한번은 당한듯 1 김꽁초 2019-11-23 0
319905 일반 치킨 5 레레땅 2019-11-23 0
319904 일반 ㄹㅇ 브쳇에 편한인생 산놈 없음 3 ㅇㅇ 183.108 2019-11-23 0
319903 일반 브쳇은 잠시 접을거임 7 kawaimomo 2019-11-23 0
319902 일반 클로버 몸체 업데이트 했어 4 ㅇㅇ 2019-11-23 0
319901 일반 엠생교류회는 못열었지만 엠생대회는... 7 느그집 2019-11-23 0
319900 일반 갤뭔떡밥임 ㅇㅇ 180.228 2019-11-23 0
319899 일반 앰생 교류회 의미 없음 2 ㅇㅇ 210.95 2019-11-23 6
319898 일반 아근데 본인 엠생맞음 7 kawaimomo 2019-11-23 0
319897 일반 갤럼들 4 solis_ 2019-11-23 0
319896 일반 Olphis EscapeGame3 비번 아시는분 도와주십셔;; ㅁㄴㅇ 121.154 2019-11-23 0
319895 일반 앰생참가한애들 념글 다 올려주고 싶다 ㅇㅇ 2019-11-23 0
319894 일반 인생썰은 풀자면 2 묵언소녀 2019-11-23 0
319893 일반 잘자 다들 좋은꿈꿔 4 수화통역사_Cotorl 2019-11-23 0
319892 일반 나 돌아갈래 잇췌 2019-11-23 0
319891 일반 내인생썰txt 12 kawaimomo 2019-11-23 3
319890 일반 리프트 cv1 블투 이어폰 연결 간단한가요? 11 2019-11-23 0
319889 일반 념글간 최 장문 앰생새끼 통장잔고가 9만6천원찍힌이유 ㅇㅇ 211.36 2019-11-23 0
319888 일반 엘슘 앱솔 두손검 22성 팔아봐여~ 3 ㅇㅇ 27.163 2019-11-23 0
319887 강좌/정보 꿀팁 대공개 ㅇㅇ 45.41 2019-11-23 0
319886 일반 mr 터치패드 됐다가 안됐다가 그러는데 18 ㅇㅇ 223.62 2019-11-23 0
319885 일반 이런겜이나 하는게 진짜 씹덕새끼들이지 ㅋㅋ 1 ㅇㅇ 39.7 2019-11-23 0
319884 질문 맞아 나도 애니메 질문좀하자 6 김꽁초 2019-11-23 0
319883 일반 윾니티설치가 99퍼에서 멈췄네 DIM 2019-11-23 0
319882 일반 병신 씹덕새끼들 ㅋㅋㅋㅋㅋ 2 ㅇㅇ 106.246 2019-11-23 0
319881 일반 유니티 오버라이드 질문좀.. 눌러도 안되.. 16 ㄴㅁㅇㅇ 72.141 2019-11-23 0
319880 일반 나도 여장하는데 사진인증간다 2 김꽁초 2019-11-23 0
319879 일반 밀크 아이트래킹은 성공했는데, 다이나믹본 적용 문제 ㅠㅠ 3 ㅇㅇ 175.197 2019-11-23 0
319878 일반 이게 가능한가?? 3 어흑마이갓 2019-11-23 0
319877 일반 귀여운 라무네 1 계절을안고서 2019-11-23 1
319876 일반 ㅋㅋ 전 금수저임 3 DIM 2019-11-23 0
319875 일반 린즈이쁨 왜린즈안함 2019-11-23 0
319874 일반 나도 한 엠생 하는데 2 ㅇㅇ 2019-11-23 0
319873 일반 앰생인생보러 자위하러 왔더니 앰생인생이 없냐 2 ㅇㅇ 2019-11-23 0
319872 일반 업소느낌 나서 좋은데요 4 ㅇㅇ 183.108 2019-11-23 0
319871 일반 오랫만에 원령공주 보는데 브갤놈들 많이 나옴 2 아루라테 2019-11-23 0
319870 일반 님들 어케다들 일본어를 할줄아는거임? 5 ㅇㅇ 39.7 2019-11-23 0
념글 삭제글 갤러리 랭킹