AD

프로그램 [셰이더] 아티스트 사용 가이드

캐니_
2022-01-08 19:10:33 12565 17 6

이 게시글은 [셰이더] 당신의 버추얼이 어색할 수밖에 없는 이유에서 배포한 셰이더를 활용하여 개발을 진행할 아티스트분들께서, 새로운 셰이더에 대한 R&D 시간을 단축하기 위해 작성되는 게시글입니다. 셰이더 자체에 대한 소개를 원하시면, 스트리머를 대상으로 작성된 게시글을 읽어주세요.


※ 이 셰이더는 유니티 2019.4.29f1 빌드를 기준으로 제작되었으며, 이보다 낮은 버전의 유니티는 지원하지 않습니다.



a725e84c3943bd1316ac2c173cc04bd6.png들어가기 전에


단도직입적으로 말해, 이 셰이더는 기존에 많이 사용되고 있는 MToon(VRM 기본 제공), Unity-chan toon shader보다 헌저히 많은 기능을 갖고 있는 셰이더입니다. 달리 말하면, 해당 두 셰이더보다 사용 방법을 학습하기가 어렵다는 의미입니다. 위 두 셰이더들은 배경 지식이 없는 사람이어도 조금만 다뤄보면 익힐 수 있지만, 이 셰이더는 카툰 렌더링에 대한 이해가 없는 사람은 아예 익히는 것 자체가 거의 불가능합니다.


어느 정도 난이도냐면, 현재 유니티 에셋스토어에서 가장 기능이 풍부한 카툰 셰이더는 RealToon 셰이더입니다. RealToon 셰이더는 이미 실무에서도 카툰 셰이더 개발을 위한 베이스로 많이 사용되고 있고, 이를 이용해 만들어진 게임도 여럿 있습니다. 지금 여러분들이 보고 계신 셰이더는 RealToon 셰이더에 비교가 가능한 수준이며, 버추얼에 완전히 특화시켜 제작된 셰이더라 버추얼 캐릭터를 만들기 위한 목적으로 가정했을 때, 해당 셰이더를 압도하는 수준의 셰이더입니다. 심지어 RealToon은 오랜 기간 사용되어 왔기에 사용자 경험이 쌓여 있지만, 이 셰이더는 그렇지도 못 해요. 달려드실 거라면, 작정하고 달려드셔야 합니다.


따라서, 이 게시글을 읽고 계신 분이 스트리머거나, 실무를 뛰어본 적 없는 아티스트 지망생, 특히 카툰 렌더링이나 복잡한 셰이더를 다뤄본 적이 없는 아티스트라면, 불필요하게 시간 낭비 하지 않도록 뒤로 가기를 누르실 것을 강력하게 권장합니다.



아, 그리고 프로그래머 지망생 중, 이 셰이더에 관심 갖는 사람이 분명 발생할 거라 생각하는데요.

이 셰이더는 최대한 많은 기능, 그리고 최적화. 이 두 키워드를 핵심으로 갖고 제작한 셰이더라, 퍼뮤테이션 갯수가 해~양 단위입니다. 폴리싱 직전에 몇 개의 퍼뮤테이션을 제거해서 최대 1만 배 정도 차이가 날 수 있겠지만, 마지막으로 측정했을 때 퍼뮤테이션 갯수가 20양 개였습니다. 로직은 당연히 말도 안 되는 수준의 매크로로 점철된 상태라, 컨텍스트가 없는 상태에서 이해하기에 상당히 어렵습니다. 이 셰이더보다는, 다른 자료를 찾아보실 것을 강력하게 권장합니다.




a725e84c3943bd1316ac2c173cc04bd6.png\기본적인 셰이더 구성


앞 문단에서 신신당부를 했기에, 여기서부터는 이 셰이더를 이해할 수 있는 아티스트만 남았다고 생각하고 진행하겠습니다.


이 셰이더는 기본적으로 앰비언트+디퓨즈+스페큘러를 사용해 렌더링을 진행하는 Non-PBR 방식을 다소 변형한 로직을 베이스로 하되, 여기에 카툰을 위한 여러 기능과 더불어 각종 퀄리티 증진을 위한 기능이 덧붙여진 셰이더입니다.


c101cd60e1d76d4d646fc06980bbdb11.png

작업하는 데 있어 다른 셰이더들과 다른 점이 몇 가지 있는데, 우선 이 셰이더는 총 4개의 메인 셰이더 파일로 구성됩니다.

CannyToon 셰이더를 선택한 뒤, 머티리얼 세팅을 진행하시면 현재 설정된 파라미터에 의해 자동으로 최적의 셰이더 파일을 선택하게끔 되어있습니다. 이에 따라 사용 중인 셰이더 파일이 계속 변경될 수 있지만, 신경 쓰지 않으셔도 됩니다.


50e8d230fe7c8510afb9f0ff4f55c47a.png

다른 셰이더의 인스펙터에서 보기 어려운 UI가 몇 가지 있습니다.

첫째로, 이 셰이더는 모든 것을 풀어버리면 기능이 과도하게 많아 스크롤이 감당 불가능한 수준이 됩니다.

따라서 모든 기능은 탭별로 정리가 되어있으며, 이에 따라 상단에 탭 버튼이 존재합니다.

왼쪽부터 순서대로 General, Lighting/Cartoon settings, Diffuse, Specular, Out/In lines, Debugging입니다.

각 탭 버튼을 포함한 모든 기능은 마우스를 갖다 대면 어떤 기능인지에 대한 설명이 나옵니다.



두 번째는, 일부 리스트 선택형 UI는 인스펙터 크기에 맞춰 각 목록을 풀어 버튼으로 보여주는 기능이 있습니다.

반응형 웹과 유사한 방식인데, 아무래도 인스펙터가 어느 정도 사이즈가 있을 때 조금 더 가독성이 좋습니다.

이렇게 풀리는 선택형 UI는 라디오버튼과 같이 하나만 선택할 수 있는 형태도 있고, 체크박스처럼 다중 선택 항목도 있습니다.



마지막으로, 색상을 지정하는 대부분의 메소드는 다른 셰이더들과 다른 UI가 적용되어 있습니다.

사용할 색상 바리에이션의 갯수를 0~3개 사이에서 지정할 수 있으며, 0개인 경우 컬러 사용 안 함(순수 텍스처 이용), 1개인 경우 일반적인 컬러 프로퍼티가 나타나며, 2~3개는 그라데이션입니다. 이 때, 색상의 갯수는 피벗 갯수와 동일합니다.




피벗이 2개인 경우 양 끝점에 피벗이 위치하며, contrast 조절을 통해 그라데이션 변화 정도를 제어할 수 있습니다.


피벗이 3개인 경우, 움직일 수 있는 두 개의 피벗과 오른쪽 끝점에 피벗이 위치하며, 마찬가지로 피벗과 피벗 사이는 contrast를 통해 조절할 수 있습니다.


모든 그라데이션 색상 편집에 대해, 각 연산에 사용된 펙터를 기준으로 좌측~우측 [0-1]입니다.




a725e84c3943bd1316ac2c173cc04bd6.png\셰이더 세팅 - 라이팅 / 카툰 세팅


beee185b2f4bb01504f53d3ea54713d6.png


각 탭에 어떤 기능이 있는지 소개드릴 텐데, 카툰 셰이더의 핵심 기능 중 하나인 라이팅 탭부터 시작하겠습니다.

아무래도 가장 많이 방문하는 탭이 될 거니까요.


먼저, 중간의 Lighting 항목입니다. 이 항목에서는 들어온 빛에 대한 처리를 어떻게 할 건지를 정의합니다.

a0c1f73a19d6d4cf59554381452c9542.png

제공되는 타입은 3가지가 있습니다.

  • Standard lighting : 일반적인 PBR에서 사용하는 방식과 동일합니다.
  • Pitch adjustment : 라이팅 벡터를 분석하여 머티리얼별로 벡터의 pitch를 고정합니다. 이를 이용해, 동일한 라이팅 소스에서 얼굴과 몸통에 적용되는 lighting direction을 달리 할 수 있습니다. 통상적으로 얼굴은 몸통에 비해, 조금 더 수평으로 제공되는 편이 카툰에서는 자연스럽게 보이며, 이를 위해 고퀄리티 컨텐츠에서는 얼굴을 위한 빛을 따로 두지만, 그것을 할 수 없는 버추얼에서 이를 대체할 수 있도록 제공됩니다.


Light mask는 한 두 문장으로 짧게 요약할 수 있는 수준의 무언가가 아니여서, 참고자료로 대체합니다.

302f40f5a317d37917417be6585db5f9.png

언리얼 서밋 2021에서 제패니메이션풍 카툰 렌더링을 구현한 내용의 발표 자료입니다.

30분 4초부터 33분 20초까지 보시면 됩니다.


868c4780e2f5ec852b365ab40311332e.png

이처럼 부드럽게 생성되는 그림자 마스크를 가로로 순서대로 배치한 뒤

e2ad1765cadee0786f51c94e96617841.png

  • Mask offset : 제작한 마스크와 실제 의도한 라이팅 각도가 맞지 않는 경우를 위한 오프셋
  • Is mask inversed? : 마스크가 역방향으로 제작된 경우 체크
  • Num frame : 몇 개의 프레임으로 제작된 마스크인지 입력


0c2159c405722d6406712bf40f62e24b.png

추가로, Light mask는 X/Y/Z 세 개의 축 중 하나를 선택하도록 되어있습니다.


이는 사용하신 모델링 툴에 따라 좌표계가 다르게 지정되기 때문이고, 통상적으로 Y 혹은 Z axis를 선택하시면 됩니다.

제작하시는 매쉬에 맞춰 지정하시면 되고, 라이팅과 매쉬를 각각 가로로 회전시켰을 때 마스크가 정상적으로 반응하지 않으면 다른 축을 시도해보시면 됩니다.



라이팅 항목에 있는 다른 프로퍼티에 대한 설명은 다음과 같습니다.

  • Light clamping : 체크할 경우 LDR, 체크하지 않을 경우 HDR로 계산됩니다. (HDR로 계산할 경우, 향후 톤매핑이 없으면 깨질 수 있습니다.)
  • Recv shadow : 0이면 해당 머티리얼을 다른 오브젝트의 영향을 받아 발생하는 그림자를 그리지 않습니다.
  • Intensity : 라이팅 강도에 대한 제어에 사용됩니다. 머리카락에 가려진 목 뒤와 같이 강제로 더 어둡게 그려야 하는 곳 등에 마스킹하는 용도로 사용하시면 됩니다.
  • Indirect intensity : 간접광 강도입니다. 라이트맵이나 라이트프로브가 없는 경우, 간접광은 앰비언트 컬러로 대체됩니다.




5fd17130b3b4f5b7527451154b9cc3e9.png

다음은 카툰 라이팅 세팅 부분입니다.

032358aa51da6710b94e87b6312bc268.png 이 항목은 Shade Shift 기능과, Hardness로 나누어 설명해야 하는데, Hardness는 카툰 렌더링 셰이더에서 기본적으로 제공되는 라이팅 하드니스 제어 기능입니다.


그리고 Shade Shift는 계산된 Diffuse factor에 오프셋을 주는 기능입니다. 텍스처를 등록하지 않을 경우 이미지처럼 모든 영역에 대해 오프셋이 적용되고, 텍스처가 있을 경우 검은색 마스크 영역과 흰색 마스크 영역에 대해 각각의 오프셋을 지정할 수 있습니다.


이를 이용해, 목이나 긴 머리 안쪽과 같이 더 쉽게 그림자가 져야 하는 부분이 다른 부위를 처리할 수 있습니다. 물론, 반대로 더 그림자가 잘 안 져야 하는 부분도 동일하게 처리할 수 있습니다.



be675e29ee9d3661571349381c798a02.png

Toon ramp (LUT) 이 기능 자체에 대한 설명은 생략하겠습니다. 이 기능에 대한 설명이 필요하면 이 게시글에서 산정한 기본 배경 지식을 갖추지 못한 상태이므로, 해당 셰이더를 원활하게 다루실 수 없습니다.


일반적인 툰 램프 텍스처와 함께 1D/2D 설정과 Level이 추가되어 있는데, 각각의 의미는 다음과 같습니다.

  • 1D인 경우 일반적인 LUT을 사용하며, 2D인 경우 Y축은 View direction과 Normal vector의 내적입니다. 즉, 림라이트를 떠올렸을 때 림라이트가 그려지는 물체 외곽 영역은 텍스처의 상단 픽셀 라인을 따르고, 림라이트가 그려지지 않는 물체 내부 영역은 텍스처의 하단 픽셀 라인을 따릅니다.
  • 포토샵의 레벨 기능을 생각하면 이해가 쉽습니다. 카툰 렌더링 특성 상, 일반적인 LUT를 사용하면 라이팅이 변하지 않는 순수 검은색 영역과 순수 흰색 영역이 길게 이어질 수 있습니다. 이 경우 불필요한 픽셀 데이터가 적재될 수 있는데, 예를 들어 0.4~0.6 영역만 변화한다고 가정했을 때, 좌측과 우측으로 검은색과 흰색을 길게 늘어뜨리는 대신 레벨을 0.4~0.6으로 지정하고 0.4~0.6 영역만을 대상으로 하는 LUT를 입력으로 넣으시면 됩니다. 이러면 해상도 대비 유효 데이터가 늘어나므로, 여러 이점을 챙길 수 있습니다.



Additional light settings은 기본 Directional light 이외에 추가로 영향을 주는 각종 라이팅이 있을 때, LUT과 ShadeShift에 대한 연산 방식을 오버라이딩 할 수 있도록 제공되는 기능입니다. 즉, ForwardAdd에서 오버라이딩하여 사용하는 변수라는 차이를 제외하면 모든 게 동일합니다.


9b798e327ac91daecae37946a2cb8ab1.png

이미시브는 알고 계신 그것과 동일하고, 림라이트가 두 종류 제공됩니다.

Additive rim은 일반적으로 림라이트 하면 떠올리는 그 것과 동일한 것입니다.

Overwrite rim은, 일반적으로 사용되는 림라이트의 블랜딩 로직을 반투명 블랜딩으로 변경하여, 기존 색상을 덮어쓰도록 변경한 림라이팅입니다. 이를 통해, 기존 색상보다 더 어두워지는 림라이트의 처리가 가능합니다.



a725e84c3943bd1316ac2c173cc04bd6.png\셰이더 세팅 - 디퓨즈


d9f94f249a35bd0dc5ec11165e14bb1b.png


셰이더에서 제공하는 디퓨즈는 크게 세 영역으로 나뉩니다. 일반적으로 디퓨즈 연산을 통해 발생하는 밝은 영역과 어두운 영역 외에, 선택적으로 추가할 수 있는 Mid shadow 영역이 존재합니다.


여기서 메인 텍스처와 메인 컬러는 모든 매쉬 전역에 사용되며, Shadow area와 Mid shadow area에는 메인 텍스처와 각 영역에 대한 텍스처를 블랜딩한 결과가 렌더링됩니다. 특히, 메인 텍스처의 Tiling, Offset 세팅은 노멀을 제외한 모든 항목에서 공유합니다.


a6c1088a0681fafac976531d24bc10c0.png

굳이 블랜딩이라고 표현하는 것은, 실제로 일반적으로 많이 사용되는 옵션들 외에도 여러분들이 포토샵을 비롯한 2D 페인팅 툴에서 보시던 블랜딩 모드가 구현되어 있기 때문입니다. 각 옵션들은 모두 퍼뮤테이션화 되어 있으므로, 사용하지 않는 기능은 모두 연산에서 제거됩니다.



5117374e0475e256501f35b76a7b0634.png

기본적으로 디퓨즈에 사용할 로직은 Standard diffuse 탭에서 결정합니다.

Disable : 디퓨즈 사용 안 함. 이 경우, 어두운 영역에 대한 계산은 다른 유니티의 개별 기능들에 의해 결정됩니다. (그림자 등)

Basic : Lambert를 사용하며, 하단의 추가 옵션이 없습니다.

Advanced : Burley를 사용하며, 모든 옵션이 활성화됩니다.



Simplify texture color와 Pivot based color는 각각 과도하게 다채로운 텍스처 색상을 다소 눌러주는 효과, 그리고 로컬 좌표에서 구 모양으로 색상을 강제로 추가하는 효과인데, 아티스트가 없는 환경에서 프로그래머가 사용하기 위해 추가된 기능들이라 생략하겠습니다.

 




a725e84c3943bd1316ac2c173cc04bd6.png\셰이더 세팅 - 스페큘러


스페큘러는 크게 두 가지 메소드로 나뉩니다. 각 메소드는 토글 형식으로, 필요에 따라 한쪽만 사용하거나, 두 개 모두 켜거나 끌 수 있습니다.

ad102bbfb87491cc03a09f88d20ee968.png

Standard 방식의 스페큘러는 GGX를 활용하는 전형적인 스페큘러입니다.

단순 GGX로는 카툰 느낌을 살리기에 어려움이 있으므로 별도의 카툰 세팅이 제공되며, 라이팅 탭에서 입력하신 카툰 세팅과 합산하여 적용됩니다.


UV follow light : 라이팅이 움직임에 따라 텍스처의 UV가 라이팅을 따라가는 방향으로 이동합니다. 스페큘러 텍스처를 마스크 텍스처로 사용하실 경우, 이 값을 지정하여 움직임에 따라 하이라이트 위치가 조금씩 바뀌도록 할 수 있습니다.


UV follow camera : 이 값이 1일 경우, UV 매핑 방식은 일반적인 UV 매핑 방식에서 매트캡과 동일한 방식으로 변경됩니다.



689ef50537dba1ad8f324b1a9f773e52.png

Standard specular에서는 실제 스페큘러 계산에 사용할 로직을 선택하실 수 있습니다.

  • Isotropic : 유니티와 언리얼 등 다양한 게임엔진에서 디폴트로 사용하는 GGX를 사용합니다.
  • Anisotropic : X축과 Y축에 대한 러프니스를 별도로 지정할 수 있는 Anisotropic GGX를 사용합니다. 일반 GGX보다 무거우므로, Anisotropic 기능이 필요없다면 Isotropic을 사용하시면 됩니다.
  • Anisotropic + mask : Anisotropic mask를 이용하여 최대 수준의 스페큘러를 계산합니다.

여기는 뭐... 이게 무슨 의미인지 모르겠으면 그냥 Isotropic으로 두고 쓰시면 됩니다.


국내에서 Anisotropic은 영화/영상 업계에서 극실사를 추구할 때나 사용되던 거고, 게임 쪽에서는 거의 사용되지 않았기도 하고... 카툰 렌더링에서는 헤어 쪽이 아닌 이상에야 큰 의미가 없어서 활용성이 높진 않아요. 그리고 이게 뭔지 아시는 분이라면, 어디에 써야 하는지도 아시리라 생각합니다.



69f1bf76430d1efc8d46a31641659aa4.png

Rim 모드는 길게 설명할 필요는 없어 보이기에 짧게 줄이겠습니다.

림라이트와 동일한 연산을 한 뒤, 이걸 스페큘러로 취급하겠다. 라고 보시면 됩니다.

일반적인 림라이트처럼 플러스 값으로 파라미터를 세팅하면 물체의 외곽선 부위에 스페큘러가 잡힐 거고, 반대로 마이너스 값으로 설정하면 물체 외곽선만 빼고 스페큘러가 잡히겠지요?


Standard와 Rim을 혼용할 경우, 각 모드의 계산 결과를 곱한 결과가 사용됩니다.





a725e84c3943bd1316ac2c173cc04bd6.png\셰이더 세팅 - General


중요도 순으로 많이 다루실 법한 기능을 먼저 다루다보니 돌고 돌아 이제서야 등장한 첫 탭입니다.


c8b911de8f87626ff6daefce7bb7d707.png

Rendering mode는 유니티 스탠다드 셰이더의 그것입니다. Opaque / Cutout / Fade / Transparent 중 하나를 선택하실 수 있습니다.

Rendering mode에 따라 렌더 큐가 자동으로 설정되는데, Overlay를 선택하시면 오버레이 큐로 강제됩니다.


Cull mode는 일반적으로 Front는 건드실 일이 없을거고, Back으로 두시면 일반적인 후면 컬링, Off면 더블 사이드 렌더링입니다.


Viewspace offset은 생소하실 수 있는 내용인데, 먼저 이미지로 보시면 이해가 빠를 듯 하네요.

d0fd7ce145a23864b6d8040114cd8f3c.png

눈썹 부분을 보시면 됩니다. 좌측은 Viewspace offset 4, 우측은 0(기본값)입니다.

Viewspace offset은 매쉬의 렌더링 위치나 외관을 손대지 않고, 카메라 방향으로의 오프셋을 속여 다른 매쉬보다 더 앞에 있는 것처럼 처리하거나, 혹은 반대로 더 멀리 있도록 처리하는 기능입니다.

이미지에서는 눈썹 부분만 별도의 머티리얼로 분리한 뒤, Viewspace offset을 이용해 머리카락보다 눈썹이 더 앞쪽에 그려지도록 처리한 결과입니다.

기존 많이 사용하던 앞머리에 투명도를 주는 방식은 얼굴의 색상과 앞머리의 색상이 블랜딩되므로 원하는 색상을 도출하기 쉽지 않고, 반투명을 사용한다는 것 자체가 어느 정도의 퀄리티 감소를 감안하게 되는 단점이 있습니다. 하지만 이 방식을 사용하면 헤어를 Opaque혹은 Cutoff로 유지할 수 있으므로, 더 나은 퀄리티를 이끌어내기에 용이합니다.


e7806e6739a08d6d866435bf02e26201.png

노멀맵은 일반적인 노멀맵과 동일한데, 스케일이 제공됩니다.

45f6b56356468544d293315fe53024a7.png

이 중, Bump scale (2)은 스페큘러에서 사용하는 범프맵 스케일과 나머지 연산에서 사용할 스케일값을 달리하고 싶을 때 설정하실 수 있는 값입니다.



bb1a32482a19a3109de11fcb89f525cf.png

다음은 Soft normal인데... 일단 기능의 개요는 여기서 보시는 걸 권장합니다. 법선이라는 단어로 검색하시면 노멀 벡터를 단순화된 다른 매시를 이용해 더 간단한 형태로 뭉개버리는 기능이 나오는데, 원래는 이걸 모델 제작 단계에서 작업하셔야 하지만, 여의치 않은 경우를 위해 셰이더 단에서 제공하는 기능입니다.


직접 이 값을 편집하기는 쉽지 않기 때문에, 별도의 스크립트가 제공됩니다.

fe1e9297371cd2ebedd1f3fd206905bb.png

95066ad0d9b05507cd3137e115536a19.png

  1. 편집 대상 매쉬에다 자식 오브젝트를 하나 만들고, SoftNormalWrapper를 추가합니다.
  2. 타겟 머티리얼을 편집하고자 하는 대상 머티리얼로 세팅하시면, 머티리얼 값에 맞춰 파라미터들이 자동으로 세팅됩니다.
  3. 메소드는 구, 캡슐(X/Y/Z/커스텀 트랜스폼)으로 크게 2종이 제공됩니다.

ff9dafbd51bb81441accd9a950a7b3bd.pngCapsule Height와 Radius를 조절하시면 위 이미지처럼 노란색으로 노멀 벡터를 근사할 매쉬가 보입니다. 일반적인 게임 오브젝트 조절하듯 조절하신 뒤, Softness를 이용해 얼마나 부드럽게 만들지 입력합니다.

편집이 완료되면, SoftNormalWrapper를 삭제합니다.


499670156fd4a7b732985f14fb955ca2.png

편집 중에는 머티리얼에서 Debugging 탭에 있는 World normal 뷰를 켜시면 조금 더 간편하게 편집할 수 있습니다.



b819065b1b0c1027fd52ea28bc215f93.png

이 기능들에 대해선 짧게 치고 가겠습니다. UV Animation = 포지션과 로테이션 모두 처리 가능한 페너입니다. 매트캡은 매트캡이고, 테셀레이션은 모르면 쓰지 마세요. 아무리 버추얼용이라 단 하나만 렌더링하면 된다 해도 상당히 무겁습니다.


생소할만한 기능으로, 테셀레이션에 Smoothing이 있습니다.

이건 유니티 HDRP를 써보셨거나, 영화영상쪽 3D 툴 써보셨으면 보셨을 법한 기능인데, 이미지로 설명 대체하겠습니다.





a725e84c3943bd1316ac2c173cc04bd6.png\셰이더 세팅 - Outline/Inline



91cab435c64948fc3d5a0d078464ccfa.png


일단, 인라인은 라인 그리기에 더 용이하도록 세팅을 잡아두긴 했지만 기본적으로 Overwrite rim과 동일합니다.

아주 깔끔한 인라인을 원한다면, 모토무라 라인을 사용하시는 걸 권장합니다.


아웃라인은 일반적인 카툰 렌더링에서 사용하는, 뷰스페이스 오프셋을 활용한 스크린스페이스 아웃라인입니다. 다만, 블랜딩 메소드를 자유롭게 정의할 수 있으므로 다양한 색상이 마구잡이로 뒤섞인 머티리얼도 무난하게 어울리는 색상의 아웃라인을 줄 수 있다는 점 정도의 차이가 있겠네요.



a725e84c3943bd1316ac2c173cc04bd6.png\디버깅 뷰


9387f5b20fd964ce93863810ef4bb6a0.png


기능이 원체 많은 만큼, 의도치 않은 결과물로 렌더링이 됐을 때 어떤 기능이 원인이 되었는지 파악하기가 쉽지 않은 셰이더입니다. 이를 더 쉽게 트래킹할 수 있도록, 디버깅 뷰를 지원합니다.

적절히 활용하시면 원하는 결과물에 도달하기 까지의 과정이 대폭 단축될 수 있으니, 활용해보시면 좋을 것 같네요.







각 주요 기능들에 대한 대략적인 개요를 나열식으로 설명을 해두긴 했지만, 이마저도 이해에 어려움이 있을 것이라는 건 인지하고 있습니다.


혹시라도 세팅 중 어려움이 있으신 분들께서는 https://open.kakao.com/o/syX5j92b로 문의주시면 빠른 대응 가능합니다.

단, 애초에 이 게시글의 타겟층 자체가 카툰 렌더링 관련 지식을 알고 있고, 그 기반에서의 개발이 가능하신 분이기에, 관련 지식이 부족한 분에 대해서는 요청이 와도 지원이 제공되지 않을 수 있습니다. 카툰 렌더링 자체가 굉장히 큰 하나의 영역인데, 이걸 처음부터 다 알려줄 순 없잖아요?


기준선을 정의하자면, 일반적인 VR챗 캐릭터의 카툰 렌더링 셰이더 활용하는 걸 두고, 이걸 카툰 렌더링 기술을 써서 개발했다고 할 때... "그것도 카툰 렌더링 맞긴 맞는데..."와 함께 답답함이 밀려오시는 수준 밑으로는 지원 없다고 보시면 됩니다.



이 셰이더 개발 완료하고 정말 많은 고민을 했습니다. 배포를 할까, 말까.

카툰 렌더링 관련 지식이 겉핥기 식으로만 있는 사람에게 이 셰이더가 쥐어지면, 이건 기존의 퀄리티 떨어지는 셰이더들보다도 더 못한 셰이더가 됩니다. 써먹을 수 있는 기능은 동일한데, 다른 쓸데없는 고급 기능이 많이 붙어 있어서 보기 불편하거든요.

그런데 제가 지금까지 봐왔던, 스트리밍 시장에 뛰어든 아티스트 중에는, 이런 기능을 활용할 수 있는 사람이 없었습니다. 단 한 명도 못 봤어요. 오히려 MToon과 유니티짱툰셰이더마저도 제대로 다루지 못해서 Unlit과 다를 바 없는 셰이더 결과물을 쓰는 케이스를 더 많이 봤습니다.

애초에 아티스트 입장에선 시장 자체가 직업의 맥락으로서 덤벼드는 시장이 아니라, 본인이 최종 목표로 두는 시장에 취직하기 전에 잠깐 용돈벌이로 거쳐가는 시장이다보니 취준생 수준에 머무르는 사람이 많아서 그렇겠죠. 이 셰이더는 실무 난이도 입장에서 봐도 꽤나 빡센 셰이더입니다.


이 셰이더를 쓸 수 있는 아티스트가 트위치에 뛰어든 아티스트... 지망생? 들의 목록에서 살펴볼 때, 많아야 세 명 정도밖에 안 될 거예요. 그러한 분들께서 작업하실 때, MToon과 유니티짱툰셰이더의 한계에 부딪혀 작업이 어려웠던 부분들에 대해 날개가 달리길 기원해봅니다.

후원댓글 6
댓글 6개  
이전 댓글 더 보기
이 글에 댓글을 달 권한이 없습니다. 로그인해 보세요.
AD
방송하기프로그램채팅/봇업데이트
0
방송하기
OBS 인코더 X264 vs NVENC 화질비교 영상 [3]
아줌마여기
02-15
1
02-15
4
02-14
4
방송하기
LG 인터넷 사건 해결법...? 제기준입니다 [6]
노재혁은유망주
02-10
2
02-05
0
방송하기
실시간 자막 [1]
hebron37
01-31
8
업데이트
디스코드 가이드 - 기능설명 [3]
네오캣짱
01-26
25
방송하기
트위치 패널(귀여움) [27]
뉴몬1
01-18
»
01-08
12
방송하기
오디오 트랙분리 재생 [1]
김당근티비
01-04
2
업데이트
Discord 연말 Snowsgiving 이벤트 [2]
네오캣짱
12-08
7
방송하기
NVIDIA GeForce Hotfix v496.98 Driver [3]
그_아가
11-27
14
채팅/봇
디스코드 봇 정책 변경사항 [1]
네오캣짱
11-20
4
프로그램
NVIDIA GeForce Hotfix v496.84 Driver [3]
그_아가
11-18
12
11-08
7
업데이트
NVIDIA GeForce Hotfix v496.61 Driver [13]
로즈우
10-30
인기글 글 쓰기