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
번호 분류 제목 글쓴이 날짜 추천
406634 일반 요즘 주로 비호감인 아바타 메리노 2 비호감갤러 2020-04-30 0
406633 일반 난 갠적으로 천원좌 호감가고 좋아하는데.. ㅇㅇ 14 ㅇㅇ 175.223 2020-04-30 0
406632 일반 이거 처음 할때만해도 아바타 편견 그딴거없었는데 5 전자강시 167.179 2020-04-30 1
406631 일반 그래서 서로 똥고에 박으면 무슨느낌임 5 딜런 2020-04-30 0
406630 일반 브붕이만화 2 컵밥 2020-04-30 0
406629 일반 쓰는새끼들이 나대는 아바타는 비호감됨 2 비호감갤러 2020-04-30 0
406628 일반 어떤말인지 들어봐! 9 느그집 2020-04-30 0
406627 일반 관짝밈 아바타 어디서 구할수있냐? ㅇㅇ 125.139 2020-04-30 0
406626 일반 차렷충이 VRC를 즐기는방법 6 ㅇㅇ 2020-04-30 0
406625 일반 퍼지 <- 저는 이 아바타는 중립기어 안박고 대차게 까는데 6 전자강시 121.185 2020-04-30 0
406624 일반 퍼지보면 좆같아진게 저새끼가 촉발점임 1 비호감갤러 2020-04-30 0
406623 일반 저런애들은 대체로 진짜 뭔가 본인이 '특별한줄' 알아. 3 전자강시 121.185 2020-04-30 3
406622 일반 진짜 퍼지중엔 정상이 없구나 1 ㅇㅇ 223.39 2020-04-30 0
406621 일반 귀여운 퍼지 보고가 5 토라카츠 2020-04-30 1
406620 일반 아까 신작 혜자라 느껴지는 이유 3 ㅇㅇ 223.38 2020-04-30 0
406619 일반 이제 튜토리얼월드는 펜있는 화본역 그 이상도 이하도아니네 3 카이카미 2020-04-30 0
406618 일반 천원좌 목소리 좋던데 2 ㅇㅇ 211.36 2020-04-30 0
406617 일반 이게임에서 멀쩡한 사람 찾는 내가 병신이지 3 비호감갤러 2020-04-30 0
406616 일반 vket정보보려고 존나 오랜만에 갤왔는데 1 ㅇㅇ 211.36 2020-04-30 0
406615 일반 <2주년>d클방 사진두고 셀카찍음 ㅎ 3 느그집 2020-04-30 0
406614 일반 30대아저씨가ebs인강보는시대 3 마피뇽 2020-04-30 0
406613 일반 여자사람 친구 만들고 싶다 1 비호감갤러 2020-04-30 0
406612 일반 로포리 살까 생각중 4 ㅇㅇ 106.102 2020-04-30 0
406611 일반 속보 [ 행성, 천원 지지해... ] ㅇㅇ 125.129 2020-04-30 0
406610 일반 천원님 저는 님 응원합니다 힘내세요 7 전자강시 211.231 2020-04-30 0
406609 일반 브얄챗 음지에 춤 잘추는사람들 많네 1 ㅇㅇ 223.39 2020-04-30 0
406608 일반 나는 왜이렇게 상상력이 부족할까 메리노 2020-04-30 0
406607 일반 념글 정독하고 왔는데 ㅇㅇ 202.168 2020-04-30 0
406606 일반 가만 생각해보면 천원 쟤가 뭘 잘못했나싶음 9 전자강시 211.231 2020-04-30 0
406605 질문 리미 아바타 디스크립터 대응하는 선택지가 안보이는데 어쩌냐 ㅇㅇ 116.124 2020-04-30 0
406604 일반 신작 귀엽네 5 ㅇㅇ 223.38 2020-04-30 2
406603 질문 유튜브 안나오는건 그냥 방법이 없는건가요? 1 ㅇㅇ 211.208 2020-04-30 0
406602 일반 하... 담배 끊어야되는데 4 블프 2020-04-30 0
406601 일반 천원좌는 념글제조기네 ㅋㅋ 25 토라카츠 2020-04-30 5
406600 일반 인워 엔겜 봤더니 가슴이 웅장해진다.. 5 비호감갤러 2020-04-30 0
406599 일반 유우코 개씨발련 존나 토막질해서 단고기라고 전통시장에 속여 팔고싶네 4 ㅇㅇ 104.129 2020-04-30 0
406598 일반 메리노 5천엔 너무비싼거같다 2 ㅇㅇ 175.201 2020-04-30 0
406597 일반 아기 아ㅏㅏㅏㅏㅏ냐 2020-04-30 0
406596 일반 그래도 메리노는 귀엽다 2 메리노 2020-04-30 0
406595 일반 오늘 킹크랩 먹고왔어 9 다히냥 2020-04-30 0
념글 삭제글 갤러리 랭킹