애니메이션 심화편 3D 캐릭터 매핑
안녕하세요
Maya 모델링 강의를 맡게 된 윤승한이라고 합니다
쉐이딩 과정은 거의 대부분 텍스처를 활용하고 있습니다
애니메이션 업계에서의 텍스처 제작은
과거 포토샵 위주로 사용했습니다만 요즘에는
고퀄리티의 텍스처 판매 사이트의 활용은 물론이고
강력한 텍스처 제작 프로그램인
서브스턴스 페인터가 업계 표준이 되었습니다
서브스턴스 페인터는 포토샵과 달리
3D 디스플레이에서 직접 작업이 가능하며
다양한 재질의 머티리얼을 기본으로 제공하고 있습니다
그리고 한 번에 컬러, 러프니스, 노멀 텍스처를
제작과 생성까지 해주기 때문에
애니메이션 업계뿐 아니라
게임을 포함한 여러 영상 업체에서도
애용하는 프로그램입니다
다만 본 영상은 Maya의 기능을 알아보는 시간이기 때문에
여기서는 언급만 해드리고
강좌에서는 레드시프트의 기본 쉐이더와
무료 사이트에서 구할 수 있는 텍스처로 진행을 하겠습니다
이번 차시의 학습 목표는 UV 정리와
텍스처를 이용한 다양한 질감 표현하기입니다
학습 내용으로는
첫 번째, 효율적으로 UV를 펼치고 정리하기
두 번째, 쉐이더를 통해 질감 표현하기입니다
효율적으로 UV를 펼치고 정리하기
쉐이딩 작업은 회색의 폴리곤 덩어리를
좀 더 사실적으로 색과 질감을 입혀주는 과정입니다
주로 텍스처를 이용하지만
애니메이션의 스타일에 따라 텍스처를 사용하지 않고
컬러링만으로 작업을 하는 경우도 많습니다
우리는 컬러와 텍스처를 이용한 쉐이딩을 할 예정이고
쉐이딩에 들어가기 앞서
먼저 모델링의 UV를 펴줘야 합니다
UV를 펼 때는 특별한 기술은 필요하지 않고
몇 가지 주의사항만 알아두시면 될 듯합니다
참고로 본 강의는 Maya의 기본 기능들은
숙지하고 있다는 전제하에 진행이 됩니다
기본 기능을 넘어서 작업 요령 위주로
강의를 진행하고 있다는 점 유의하시기 바랍니다
첫 번째 UV 작업 시 유의해야 할 점입니다
UV를 절개할 때는 안 보이는 부분 위주로 절개할 것입니다
Maya에서 제공되는 기본 오브젝트는
원래 생성될 때부터 UV가 펼쳐져 있습니다
여기서 주의 깊게 보셔야 할 부분이 있습니다
UV와 버텍스는 서로 대응되지만
반드시 UV가 버텍스의 숫자와 일치하지 않는다는 겁니다
이곳을 보시면
버텍스를 하나 선택하면
3D 디스플레이상에서는 버텍스는 하나가 존재하지만
이것을 UV 에디터 창으로 보시면
UV 점은 두 개가 존재하고 있다는 겁니다
이 UV는 3D의 오브젝트가
펼쳐지는 과정에서 분리되어 있는 부분입니다
마치 지구본과 세계지도와 같이 말이죠
이 따로 떨어진 부분의 엣지를
이렇게 떨어져 있는 부분의 엣지를 심이라고 부릅니다
이거, 이거입니다
이곳에 텍스처를 적용해 보도록 하겠습니다
하이퍼 쉐이더에서 Maya의 Lambert를 검색하고
체커 파일을 불러왔습니다
체커 파일은 간단히 말씀드려서
이렇게 일괄적인 사각형의 형태가 나열되어 있고
페이스의 늘어짐이나 맞물리는 부분을 확인하기 위해
번호나 사각형 형태로
말 그대로 체커 모양으로 제작된 파일을 말합니다
심 부분을 보시면
심 부분이 텍스처가 서로 맞물리지 않고
전혀 다른 텍스처로 연결되어 있다는 것을 알 수 있습니다
이런 장면은 실제 영상에서 아주 눈에 띄는 부분이라
반드시 수정이 되어야 합니다
가급적 UV의 심을 안 보이는 곳에서 절개하면
이런 부분이 눈에 띄는 확률은 줄어들 것입니다
예를 들어 의상을 만들 때 이런 경우가 있습니다
여기 2개의 옷이 있습니다
이 사이에 차이점은 거의 없습니다
다만 옆에 옷감에 봉제 흔적을 넣어뒀을 뿐입니다
좌측의 옷에는 봉제 흔적이 없지만
오른쪽에는 봉제 흔적을 모델링으로 넣었습니다
UV 에디터로 확인해 보면
UV는 앞면과 뒷면, 서로 두 면으로 나누었고
UV 부분은 서로 떨어져 있습니다
그래서 3D 디스플레이상으로 확인해 보면
옷감이 서로 맞물려 있는 곳이 어색하게 보입니다
마치 그림이 잘려 있는 듯한 느낌이 나옵니다
이런 경우 해법은 아예 봉제선을 모델링으로 만들고
모델링의 안 보이는 엣지 부분을 심으로 만들어 버리면
모델링도 좀 더 디테일하게 표현이 되고
완성도가 높아 보이게 될 것입니다
그리고 어색한 부분도 많이 없어지게 됩니다
모든 모델링의 심의 위치는 가급적
앞면보다는 뒷면을, 윗면보다는 아랫면을
드러난 부분보다는 숨어있는 엣지 위주로
절개해 주시면 좋습니다
두 번째는 UV 절개의 최소화입니다
위에 내용과 통하는 부분이 있지만
절개면이 많을수록 그 부분이 눈에 띌 확률이
그만큼 많아진다는 겁니다
UV를 펼친다는 것은 3D를 2D로 만든다는 뜻이고
이 과정에서 어쩔 수 없이 왜곡이 일어나기 마련입니다
왜곡이 일어나게 되면 그 부분의 텍스처의 해상도와
모양에 심각한 영향을 미치기 때문에
적당한 곳에서 UV를 절개해야 됩니다
괜히 엉뚱한 눈에 잘 보이는 이런 곳
특별한 이유 없이 관절이라고 해서 이 부분이
텍스처가 절개될 이유는 없습니다
가운데나 이렇게 눈에 잘 보이는 곳에서
아무런 이유 없이 절개하면
텍스처가 어긋난 모습을 많이 볼 수 있게 될 겁니다
주로 캐릭터나 의상 같은 경우는
큰 관절에서 절개해 줍니다
목, 어깨, 허리, 손, 발 등과 같이 절개를 진행합니다
세 번째 UV 창에서 빈 공간의 최소화입니다
텍스처 한 장 한 장이 모두 렌더링 될 때
시간을 증가시키는 이유가 될 수 있습니다
되도록 어셋의 최적화를 위해
UV 쉘 공간과 빈 공간을 최소화하여 만들어야 합니다
지금 제가 선택하는 부분들이 모두 UV 쉘입니다
하지만 UV 옆에 이런 빈 공간들은
아무런 의미가 없는 용량에 낭비되는 공간입니다
만약 근소한 차이로 공간이 모자를 때
약간의 편법으로 일부 UV 쉘의 크기를 줄입니다
단, 줄여도 눈에 별로 띄지 않는 곳을
줄이는 것이 좋습니다
예를 들어 입안, 옷 속의 부분들
신발 바닥 같은 부분들이 그렇습니다
또 공간을 확보할 수 있는 경우
UV 쉘을 직선화 시켜서 펴는 방법도 좋습니다
목에 있는 소매 부분을 보면
사실 이걸 그대로 펴게 되면
이런 곡선의 형태가 나옵니다
이 부분들을 지금은 공간이 어느 정도 많이 남아서
이런 식으로 놓으면 좋지만
만약 공간이 없을 때는
이 부분을 직선화 시켜서 배치하면 좋습니다
단, 직선화 시킬 때는 약간의 작업이 필요합니다
저 같은 경우는 스트레이트 쉘 명령어를 자주 이용하는데요
한 번에 스트레이트가 안될 때는
여러 번 쪼개서 작업을 하시는 게 편하실 겁니다
세 번째, 3D 디스플레이에서의 방향성과
UV 에디터에서의 방향성을 서로 맞추는 것이 좋습니다
이건 강제적인 것은 아니지만
이렇게 해야 텍스처 작업이 좀 더 쉬워질 것입니다
무슨 뜻인지 설명해 보면
어깨는 위쪽을 향하고 있습니다
좌측 어깨도 위쪽을 향하고 있습니다
UV 쉘에서도 서로 같은 방향을 향하게끔
배치하는 것이 좋습니다
몸통의 쉘 부분도 목부분이 위쪽을 향하고 있고
등에 있는 부분도 목부분이 위쪽을 향하고 있습니다
그렇다면 UV 에디터에서도 쉘의 방향을
서로 같은 방향으로 향하게 해주시는 것이 좋습니다
이러한 방향성은 텍스처의 패턴을
고려하면서 배치해야 됩니다
서로 같은 종류의 UV 쉘이 서로 다른 방향이라면
또 한 번의 추가 작업이 생길 수도 있습니다
예를 들어 한쪽 팔을 가로 모양으로 놓았다고 가정해 봅시다
그렇다면 실제 렌더링 되었을 때 모습은
이 텍스처의 패턴은 세로 방향으로 되어 있고
팔에서의 텍스처 패턴도 세로 방향으로 되어 있습니다
하지만 아까 가로 모양으로 배치한 팔 쪽은
가로 모양으로 텍스처가 연결되어 있습니다
이렇게 된다면 추후에 포토샵이라든지 서브스턴스 페인터로
다시 텍스처 작업을 진행해야 됩니다
위에 세 가지 사항을 유의하시면
UV 작업을 진행하시면서
나중에 다시 수정해야 될 일들이 줄어들 것입니다
그럼 지금부터 모델링으로
UV 작업을 진행해 보도록 하겠습니다
지금 보시는 장면은
귀 부분의 형태가 머리와 붙어 있으면
심하게 왜곡이 될 것 같아서 따로 잘라줬습니다
자를 때는 역시 눈에 안 보이는 부분이나
모서리 위주로 잘라주시는 것이 좋습니다
처음 UV를 확인하시면 UV의 연결이
엉망으로 꼬여 있는 것을 보실 수 있을 겁니다
이럴 때에는 그냥 UV 메뉴에
Planar 혹은 Normal Based Projection을 쏴주시고
하나씩 심을 만들어 나가는 방식이 편합니다
UV 작업을 진행하면서
모델링 할 때 미처 보지 못했던
잘못된 부분을 발견하실 수도 있습니다
실무에서 급한 상황에 폴리곤 모델링까지만 진행이 되고
바로 Rigging을 넘기는 경우가 있습니다
애니메이션이 진행될 때 모델링 팀에서는
텍스처를 제작하여 렌더링 직전에 합치는 방식입니다
조금 위험한 방식이지만 급할 때는 종종 쓰곤 합니다
이럴 때 모델링 직후 바로 넘기지 마시고
UV 작업까지 하시고 넘기시길 추천드립니다
UV 작업 시에 은근히 잘못된 모델링 부분들을
발견하는 경우가 있기 때문입니다
공간의 효율적인 활용을 위해
가급적 직선 위주로 UV를 펼쳤습니다
약간의 텍스처 왜곡이 생길 수 있지만
눈에 잘 안 띄기 때문에 직선 형태로 펼쳤습니다
모델링이 복제된 상태라면
버텍스 넘버가 같기 때문에
Transfer Attribute를 통해
UV를 복제하실 수 있습니다
겨드랑이, 다리 안쪽, 발바닥 등
안 보이는 부분 위주로 절개하였습니다
이 캐릭터는 텍스처가 모두 들어가진 않지만
실무에서는 추후 텍스처가 들어가는 상황이 생길 수 있습니다
예를 들어 몸에 더티 맵이 들어갈 경우
혹은 낙서 같은 것이 들어갈 경우가 생길 수도 있습니다
그렇기 때문에 이런 식으로 꼼꼼하게 UV를
작업해 주시는 것이 좋습니다
폴리곤이 앞면과 뒷면이 있는 것처럼
UV쉘도 앞면과 뒷면이 있습니다
UV 창에서 4번 키를 눌러 확인이 가능하고
붉은색으로 표시되었다면 뒷면인 상태인 겁니다
뒷면이 보인다고 해서
엄청난 문제가 생기는 것은 아니지만
가급적 모두 앞면으로 펴주셔야 합니다
노멀 맵이 적용될 때 뒤집어서 적용이 되면
그 부분만 다른 부위와 다르게
명암이 들어갈 수 있습니다
공간이 남는다면 눈, 코, 입, 얼굴, 손
포인트가 되는 곳 위주로
약간 확대시켜서 배치해 주는 것이 좋습니다
얼굴과 손 부분은 카메라가 많이 잡히는
매우 중요한 부분입니다
텍스처의 디테일을 위해서
공간이 남는 경우에 한하여 키워주시면 됩니다
어느 정도 UV작업이 됐다 싶으시면
체커 맵을 이용하여 확인하면서 마무리합니다
쉐이더를 통한 질감 표현하기
UV 작업을 마치고
이제 본격적인 쉐이딩에 들어가기 앞서
간단히 쉐이더에 대해 말씀드리겠습니다
예전 초창기에는 각 재질별로 쉐이더가 따로 존재했었습니다
기본 쉐이더, 플라스틱, 금속, 스킨, 유리 등등 말이죠
하지만 요즘에는 하나의 쉐이더로
많은 재질을 표현할 수 있습니다
특히 PBR 기반의 렌더 시스템이 도입된 이후로
하나의 정립된 스탠다드 쉐이더가 존재하게 되었습니다
참고로 PBR이란 Physically Based Rendering의 약자로
실제 빛의 반사가 물리적으로 어떻게 이루어지는가를
시뮬레이션해서 렌더링을 하는 방식입니다
쉽게 말해 진짜 세계에서 빛의 반사를
구현해냈다고 생각하시면 됩니다
다시 돌아와 비단 레드시프트뿐만 아니라
V-Ray, Arnold 등 모든 렌더러들은
스탠다드 쉐이더를 하나씩 갖고 있습니다
하이퍼 쉐이더를 열어보시고
이 밑에 부분에 레드시프트 쉐이더 쪽을 살펴보시면
여기 빛나고 있는 머티리얼이 하나 있습니다
만약 이 부분이 보이지 않는다면
Windows - Settings/Preferences - Plug-in Manager
redshift4maya 이 부분이 활성화되어 있는지 확인해 보시기 바랍니다
이 머티리얼을 살펴보시면
레드시프트 머티리얼이라고 적혀있습니다
제일 많이 쓰이는 쉐이더로써
이 쉐이더에 대해 알아보도록 하겠습니다
잠시 간단한 이미지로 살펴보자면
우리는 태양빛의 가시광선을
인간이 느끼기에 가장 흰색에 가까운 색이라고 느끼고
여기 설명에서도 흰색이라고 가정을 하겠습니다
이 흰색의 광선을 프리즘으로 분석하면
여러 색으로 분화됩니다
우리가 흔히 알고 있는 무지개색
빨주노초파남보로 말이죠
태양이 있고 빛을 반사하는 오브젝트가 있습니다
그리고 그 빛을 수용하는 우리의 눈이 있습니다
여러 색을 내포하고 있는 빛이
물체의 표면에 따라 부딪히게 됩니다
그 순간 빛은 여러 가지 경로로 반사하게 됩니다
우선 가장 먼저 빛의 일부는 물체가 흡수해 버립니다
한창 인터넷에서 유행했던 것 중에
반타블랙이라는 것이 있습니다
이 경우에는 빛의 99.9%를 흡수하여
이 부분만 비현실적으로 뻥 뚫려있는 듯한 느낌을 주는데
빛의 흡수의 좋은 예라고 할 수 있습니다
그리고 빛의 일부는 표면에서 그대로 반사되어버립니다
이것이 Reflection입니다
태양으로부터 받은 색의 일부는
흰색 그대로 반사하여 우리 눈으로 들어옵니다
표면의 질감이 매끄러울수록
발광체의 형태를 그대로 느끼실 수 있습니다
표면이 거칠수록 Reflection은 뿌연 형태로 느껴집니다
빛의 산란으로 우리는 표면의 거친 정도를
눈으로 느낄 수 있는 것입니다
이것을 글로시니스 혹은 러프니스로 표현을 하고
물체의 재질감을 표현하는 데 매우 중요한 요소입니다
레드시프트의 머티리얼로 보면
Reflection 항목이 있습니다
컬러는 보통 화이트로 둡니다
금속성 같은 재질이 아닌 일반적인 재질이라면
대부분 화이트에 가까운 색으로 빛을 반사합니다
만약 강도를 줄이고 싶으시다면
Weight를 줄이시면 됩니다
밑에 러프니스는 말 그대로 거친 정도를 뜻합니다
그러므로 수치가 높아질수록
반사되는 빛이 뿌옇게 변하고
낮아질수록 반사되는 발광체가
선명하게 보이게 될 것입니다
여기 주목해서 보셔야 할 것이 있는데
Fresnel Type입니다
Fresnel은 물체가 빛을 반사할 때
관찰자와 물체 표면의 각도에 따라
반사도가 달라지는 개념입니다
그림에서 살펴보시면
시선과 물체 표면의 노멀 방향과의 각도가
0부터 90도까지 되어있습니다
그래프의 왼쪽이 반사도
밑에는 표면의 노멀 방향과 눈과의 각도입니다
눈의 시선으로 봐서
빛이 물체에 부딪혀서 눈으로 들어올 때
이 각도가 0도라고 하면 이 0도는 이쪽이고
여기서는 물체 노멀 방향과의 눈 시선 방향 각도가
90도가 이루어지기 때문에 이쪽을 뜻합니다
보시는 바와 같이 0도에서는 반사도가 낮게 나오는데
90도로 가면 갈수록 반사도가 급격하게 올라갑니다
마치 이 이미지와 같이 말이죠
금속을 제외한 거의 모든 물체는
그래프와 같이 완만한 곡선으로 증가합니다
즉 구의 형태를 가정했을 때
가장자리 부분이 더 밝게 반사시킨다는 겁니다
다시 Maya로 돌아와
일반적인 재질 같은 경우는
Fresnel Type의 IOR을 사용하지만
금속의 경우에는 여기 보시면 Metalness를 설정합니다
금속의 IOR 같은 경우는 비금속과는 조금 다릅니다
그래프를 보시다시피
처음부터 강한 반사도가 이루어지다가
이쯤에서 반사도가 떨어집니다
그러다가 다시 90도에 가까울수록
급격하게 오르는 모습을 볼 수 있습니다
이러한 특이한 반사도를 표현하기 위해
일반적인 IOR 타입을 이용하기보다는
Metalness라는 타입을 따로 만들어 설정해 놓은 겁니다
Metalness의 강도를
0이라고 하면 비금속을 뜻하는 것이고
이것이 1이면 금속을 의미합니다
그렇다면 이 중간값들은 무엇일까요?
금속이면 금속이고 비금속이면 비금속인데
혼란을 느끼실 수도 있습니다
이렇게 생각해 봅니다
순수한 철에 우리가 페인트를 칠한다고 가정합니다
페인트는 플라스틱과 같은 IOR을 가졌고
페인트를 칠하면 페인트에 비금속의 느낌이 있지만
얇게 칠하게 된다면 밑에 금속의 느낌이
어느 정도 드러날 겁니다
다시 한번 더 칠하게 되면
금속의 느낌은 약간만 남게 되고
페인트의 느낌이 강하게 남을 것입니다
한 겹 더 칠한다면 이제 금속의 느낌은 전혀 없고
페인트의 느낌만 강하게 남을 것입니다
이 항목은 그렇게 금속과 비금속의
중간 과정을 표현하기 위해
슬라이더 형태로 있는 거라고 보시면 되겠습니다
시간의 풍파로 페인트의 코팅이
군데군데 벗겨지거나 해진 느낌을 낼 때는
이곳에 텍스처를 연결하여 사용하면
효과적으로 표현할 수 있을 것입니다
다시 빛의 반사 경로에 돌아와 빛의 일부는
태양의 빨주노초파남보의 파장 중에
특정 부분의 파장만 반사하고
일부는 흡수해 버립니다
이때 반사하는 빛의 파장이 색을 결정하는 것입니다
우리가 느끼기에 물체의 색은
색 자체를 고유의 성질로서 갖고 있다고 생각합니다
이를 좀 더 깊이 분석하여 말하자면
물체의 색이라는 것은 고유의 특성에 따라
특정 파장의 빛을 반사하는 것일 뿐입니다
이를 우리는 Diffuse라고 하고
Diffuse 컬러로 물체의 컬러를 표현할 수 있습니다
Diffuse 역시 쉐이딩 할 때
가장 중요하게 작용하는 부분입니다
Maya로 돌아와 Diffuse 항목
이곳에서 컬러를 지정할 수 있습니다
때에 따라서는 텍스처를 연결시킬 수도 있습니다
Weight 값은 기본적으로 1이고
잘 건드리지 않는 설정입니다
밑에 러프니스는 표면의 거친 정도에 따라
Diffuse의 느낌도 변화하는데
주로 벨벳 같은 소재를 표현할 때 씁니다
다음 빛의 일부는 표면을 뚫고 들어가
물체 속에서 반사 작용을 하게 됩니다
물체를 확대해 보면 수많은 입자들이 존재합니다
그 중 생물의 피부 같은 경우
대부분 물로 채워져 있고
빛은 이를 투과하여 피부 깊이까지 도달하게 됩니다
이 빛은 내부에서 수많은 입자들과 충돌하여
다시 피부 밖으로 나오게 되는데
우리는 이를 Subsurface Scattering이라고 부릅니다
이런 성질은 주로 생물과 같이
빛이 어느 정도 투과할 수 있는 성질의 물체에 많이 쓰입니다
Maya에서 살펴보겠습니다
Subsurface Scattering은 이 부분에서 확인할 수 있는데
좌측의 오브젝트는 총량을 1로 설정했습니다
그리고 우측의 오브젝트는 기본값인 0으로 설정했습니다
Subsurface Scattering의 총량이 1이라는 뜻은
Subsurface Scattering을 최대로 활성화했다는 뜻이고
렌더를 걸어보겠습니다
렌더 된 결과를 보시면
Subsurface Scattering의 특징을 확인할 수 있는데요
빛이 여러 번 산란 운동을 하기 때문에
다양한 방향에서 반사를 하게 되고
그림자 또한 그런 이유로 경계선이 흐릿해지거나
물체의 컬러에 섞여서 표현되기도 합니다
이쪽을 보시면 오른쪽 오브젝트에 비해서
어두운 부분이 좀 더 부드럽게 퍼져 있고
내부에 살짝 컬러 값이 섞여들어 있습니다
그림자를 더 잘 확인하기 위해서
이 위에 물체를 올려보고
다시 렌더링을 걸어보겠습니다
다시 렌더 결과를 보시면
그림자의 표현이 좀 더 확연하게 차이가 나는데요
빛이 내부에서 반사되어서 나오기 때문에
그림자가 더 옅어지고
블러링 된듯한 느낌을 보실 수 있을 겁니다
인간의 피부 같은 경우는
피부의 겉면과 안쪽의 구성 재질이 달라지기 때문에
겉과 속의 컬러도 달라지는데요
그 속 부분의 컬러를
여기 레이어에서 컬러를 바꿀 수 있습니다
눈에 잘 띄기 위해 레드로 설정하겠습니다
다시 렌더를 걸어보겠습니다
렌더 결과가 나왔지만 샘플링 값이 낮기 때문에
약간 지저분하게 나왔는데요
샘플링 값을 조정하고 다시 걸어보겠습니다
샘플링 값을 조정하고 다시 렌더를 걸었는데요
그림자의 어두운 부분을 보시면
레드의 느낌이 나온다는 것을 알 수 있습니다
이 부분은 직접적인 빛이 닿지 않는 부분이고
주위의 빛들이 들어와서
내부에서 반사되어서 나오기 때문에
내부에 있는 레드 컬러를 갖고 반사되기 때문에
레드의 느낌이 나오는 것입니다
이러한 복잡한 피부의 느낌은
여기 더 많은 레이어를 통해
더 정교하게 수정을 할 수도 있습니다
이 수치들에 대한 정확한 정답은 없고
개인에 따라 혹은 스튜디오 내부 매뉴얼에 따라
달라질 수 있습니다
다음 빛의 이동으로 돌아와서
빛의 일부는 물체를 뚫고
반대쪽으로 나올 수도 있습니다
이러한 경우를 Backscattering이라고도 하는데
렌더러에 따라 이를 따로 지정하는 경우도 있고
Subsurface Multi Scattering에서
레이어를 추가하면서 제작하는 방식도 있는데
결국 같은 것을 의미하는 겁니다
다시 Maya로 들어와 간단한 테스트를 해보겠습니다
여기 간단한 오브젝트가 있습니다
저는 일단 오브젝트에 빛을
뒤에서 강하게 비추도록 하겠습니다
렌더를 건 결과물이 나왔습니다
이 오브젝트에 저는 일부러
색의 구분을 명확하게 하기 위해서
Subsurface Scattering 레이어에 붉은색을 추가했습니다
하지만 여기 보시면
오른쪽 부분만 살짝 붉은색이 보일 뿐
전체적으로 원래 색깔인 청록색이 유지되고 있습니다
여기 보시면 오브젝트의 두께를 서로 다르게 줬습니다
왜 그런지 아시나요?
두께가 얇을수록 빛의 투과가 더 쉽고
투과되는 동안에 컬러가 더 많이 보이는 겁니다
두꺼운 부분은 붉은색의 부분이 현저히 적고
얇은 부분은 뒤에서 들어오는 빛이
두께가 얇기 때문에 붉은색을 머금고 나오기 때문에
붉은색의 빛이 더 강하게 느낌이 드는 겁니다
여기까지 빛의 운동의 대략적인 설명이었고
다시 Maya로 와서
또 다른 중요한 부분을 설명해 보겠습니다
여기 Overall에 범프 맵이 있습니다
이 슬롯에는 두 가지 텍스처를 적용시킬 수 있는데
범프 맵과 노멀 맵입니다
범프 맵과 노멀 맵 모두
실제 모델링의 변형은 일어나지 않고
렌더링 이미지로만 밝고 어두움을 묘사할 뿐
일종의 눈속임이라고 봐도 될 듯합니다
둘 간의 차이를 간단히 설명해 드리자면
범프 맵은 맵의 밸류 값
즉 화이트와 블랙 그리고 그 중간값으로
표면의 높낮이를 묘사하는 맵입니다
화이트부터 블랙까지 값을 요구하므로
텍스처 맵은 그레이 스케일로 만들어지며
그레이 스케일은 하나의 채널만 갖고 있습니다
하나의 채널만 사용하기에
표면이 올라가고 내려오는 정도로만 묘사가 되며
그 퀄리티는 노멀 맵보다 떨어집니다
노멀 맵은 말 그대로 표면의 노멀
즉 방향성을 표현한 겁니다
레드, 그린, 블루 세 가지의 채널이
각각 X축, Y축, Z축을 표현한 것이며
세 가지의 채널이기에 빛의 방향에 따라
명암의 변화가 좀 더 사실적으로 보입니다
레드시프트에서는 범프, 노멀에 대한
자체 노드가 생성됩니다
노멀 맵을 끌고 들어와 여기서 놔주시면
자동으로 텍스처 노드가 생성이 되고
이 부분에 미들 클릭으로 텍스처를 집어넣으면
노멀 노드가 생성이 됩니다
다시 여기서 Tangent Space Normal을 선택해주시고
값은 1로 합니다
그리고 노멀 맵의 Color Space 값을 Raw로 합니다
실습에 들어가기 앞서
마지막으로 하나 더 말씀드리고 싶은 것은
sRGB와 리니어 타입의 텍스처입니다
이 부분은 너무 깊이 들어가면
설명이 길어지니 짧게 말씀드리면
텍스처를 이용할 때
JPG 혹은 PNG 형식의 텍스처에만 해당되는 것입니다
컬러 부분과 관계되는 것은 텍스처 Attribute에
sRGB를 설정해주시고
나머지 수치에 대한 부분이 필요한 것은 리니어 방식으로
여기서는 Raw 방식입니다 Raw로 선택을 하겠습니다
여기서 말한 수치에 대한 것이 무엇이냐면
쉽게 말해 러프니스, 메탈리스, 노멀 맵, 범프 맵 등입니다
러프니스 항목에 거친 정도의 수치를 입력하기 위해
러프니스 맵을 적용한 것이고
금속의 정도에 대한 수치를 표현하기 위해
메탈리스 맵을 적용한 것입니다
표면에 묘사 중에 돌출 혹은
방향성의 수치를 표현하기 위해
범프 혹은 노멀 맵을 적용한 것입니다
이 맵들은 눈으로 보기에 색으로 표현이 되어 있지만
사실 Maya에서 요구하는 것은 이 색이 아니라
각 채널들의 색의 수치를 말합니다
0부터 255 다시 말해 블랙부터 화이트까지의 수치를
입력시키기 위해 텍스처화 시켜서 적용한 것들입니다
이러한 성질의 항목은 Raw로 선택하여 연결하시고
컬러와 관계된 부분 즉
Diffuse 컬러, Reflection 컬러
그리고 여기서 설명은 안 했지만 Refraction 컬러
그리고 Tint 컬러까지 이 부분인데
이 부분에 연결되는 텍스처는
sRGB로 설정해 주시면 됩니다
의외로 이 부분이 안 지켜지는 경우가 많은데
이러한 작업들은 다른 3D 프로그램이나
언리얼 등에서도 똑같이 적용되는 중요한 부분이므로
꼭 숙지하셔야 합니다
특히 Maya에서 이 노멀 맵에 sRGB가 적용된다면
형태의 변화가 심하게 왜곡돼서 나타날 것입니다
그럼 간단히 곰 형태에
쉐이딩 작업을 진행해 보도록 하겠습니다
재질에 들어가기에 앞서
몇 가지 준비할 게 있습니다
컬러 지정을 위한 디자인을 옆에 두겠습니다
바닥에 Plane을 반드시 깔아줘야 합니다
왜냐하면 바닥을 통해서 간접광을
캐릭터에게 쏠 수 있기 때문입니다
만약에 저 바닥이 없다면
밑에 면은 그냥 거멓게 나올 뿐입니다
라이트 세팅을 위해
기준이 될 수 있는 오브젝트를 생성했습니다
블랙, 중간값의 그레이, 화이트
그리고 크롬 재질을 설치했습니다
오브젝트들은 라이트의 강도를 조절할 수 있는
기준이 될 것입니다
본격적인 재질에 들어가는데
기본적으로 모두 플라스틱 재질로 적용할 것입니다
모자는 다음 시간에 알아볼 Xgen을 사용하여
털 모자를 만들 계획이지만
일단 밑바탕은 플라스틱으로 했습니다
방울은 금속 재질입니다
플라스틱과 금속 모두 컬러와 러프니스만으로도
쉽게 만들어낼 수 있는 재질입니다
리본 같은 경우는 패브릭입니다
패브릭은 정교한 패턴이 있어야만
천 느낌을 만들 수 있기 때문에
컬러 맵, 러프니스 맵, 노멀 맵을 사용하겠습니다
모두 무료 텍스처 사이트에서 다운받았습니다
세 텍스처 모두 적용할 때
sRGB와 Raw 방식을 철저히 지켜주시기 바랍니다
이렇게 세 가지 맵만으로는
패브릭 재질을 구현하기 어려울 것 같습니다
그래서 Reflection에 Sheen이라는 항목을 추가했습니다
이 항목에 Weight 값을 주면
Fresnel 느낌이 강하게 살아납니다
본인의 옷을 잘 관찰하시면 가장자리 부분에
Fresnel이 보이는 것을 확인할 수 있습니다
바로 그 효과를 주는 기능입니다
눈, 코, 입은 광택이 사는 플라스틱 재질입니다
이상으로 쉐이딩 작업은 여기까지 마치겠습니다
이번 차시에서 학습한 내용을 정리하도록 하겠습니다
첫 번째, UV 정리 과정에 대해 알아보았습니다
두 번째, 텍스처를 통해 각종 쉐이더를
제작하는 방법에 대해 알아보았습니다
쉐이딩의 과정은 회색의 볼품없는 폴리곤 덩어리를
생명력 있는 캐릭터로 변모하는 과정이라고 생각합니다
쉐이딩에 자신 없는 분들을 많이 봤는데요
앞서 말씀드렸다시피
서브스턴스 페인터를 포함해 메가 스캔과
여러 텍스처 판매 사이트를 활용하면
좀 더 손쉽고 수준 높은 쉐이딩 작업이 가능합니다
쉐이딩의 설정과 구성은 스튜디오에 따라 다를 수 있습니다
다만 이번 강좌에서 알려드린 내용을 기본으로 알고 있다면
새로운 내용을 접할 때 많은 도움이 되실 거라 생각합니다
여기까지 오시느라 수고하셨습니다
효율적으로 UV를 펼치고 정리하기
쉐이딩 작업 : 회색의 폴리곤 덩어리를 사실적으로 색과 질감을 입혀주는 과정
UV 절개 시 안 보이는 부분 위주로 절개
체커 파일: 페이스의 늘어짐이나 맞물리는 부분을 확인하기 위한 번호 또는 사각형 형태의 파일
모든 모델링의 심 위치는 뒷면, 아랫면, 숨어있는 엣지 위주로 절개함
UV 절개의 최소화 : 절개면이 많을수록 눈에 띄는 확률이 높아지기 때문에 왜곡이 일어나는 경우
해당 부분의 텍스처 해상도와 모양에 심각한 영향을 미침
UV 창에서 빈 공간의 최소화
각각의 텍스처들이 모두 렌더링 될 때 시간을 증가시키는 이유가 됨
애셋의 최적화를 위해 UV쉘 공간과 빈 공간을 최소화하여 만들어야 함
3D 디스플레이와 UV 에디터의 방향성 맞추기
UV쉘에서 서로 같은 방향으로 향하도록 배치해야 함
UV 에디터에서도 쉘의 방향을 서로 같은 방향으로 향하게 함
서로 같은 종류의 UV쉘이 서로 다른 방향일 경우 추가 작업이 필요함
모델링으로 UV 작업 진행하기
UV 작업 진행 시 모델링할 때 보지 못했던 오류를 발견할 수 있음
쉐이더를 통한 질감 표현하기
PBR(Physically Based Rendering)
PBR 기반의 렌더 시스템 도입 후 하나의 정립된 스탠다드 쉐이더가 존재하게 됨
실제 빛의 반사가 물리적으로 어떻게 이루어지는가를 시뮬레이션해서 렌더링함
Fresnel Type : 물체가 빛을 반사할 때 관찰자와 물체 표면의 각도에 따라 반사도가 달라진다는 것임
0도에서는 반사도가 낮으며 각도가 높아질수록 반사도가 급격히 올라감
Metalness 강도가 0이면 비금속, 1이면 금속을 의미함
범프 맵과 노멀 맵
범프 맵: 맵의 밸류 값이며, 화이트와 블랙 중간 값으로 표면 높낮이를 묘사하는 맵
노멀 맵: 표면의 방향성을 표현한 것으로, 세 가지 채널로 빛의 방향에 따라 명암의 묘사가 변화함