본문 바로가기
프로젝트A

앨리스 모델링 #3

by IX. 2023/09/21 10:49:46

9.21

왼쪽 갑옷의 노말이 깨지는 것은 미러 후 노말이 정돈되지 않아서이다.

이제 셰이더를 정리해야 한다.

별도의 마스크맵을 쓰지 않기 위해 며칠간 구상을 했고, 다음과 같은 결론을 얻었다.

앨리스를 구성하는 데 필요한 머티리얼은 총 9개이다. 아이고 복잡해.

  • 고체(Solid)
  • 노말맵을 사용한 고체(SolidBump)
  • 피부(Skin)
  • 얼굴(Face)
  • 눈(Eye)
  • 눈썹(Brow)
  • 입(Mouth)
  • 머리카락(Hair)
  • 외곽선(Outline)

기본은 물론 솔리드이다. 조명에 의한 빛과 어둠이 계산되고 이것이 아웃라인을 제외한 다른 셰이더에 동일하게 영향을 끼친다. 완전히 같지는 않겠지만 엔진을 켜지 않아도 블렌더에서 최종결과물을 최대한 비슷하게 확인할 수 있어야 한다.

 

솔리드 텍스처는 컬러맵 1장만 사용한다. 나머지 마스크맵은 버텍스 컬러로 처리한다. 

하지만 종류가 많으니 나름대로 짱구를 굴려봤다. 채널은 3개뿐이지만, 노말처럼 중간을 0.5로 두고 양쪽으로 값을 쓴다면 최대 6개까지 포함할 수 있다.

  • R채널
    • (-) 이미시브
    • (+) 레드 마스크
  • G채널
    • (-) 셰도우
    • (+) 하이라이트
  • B채널
    • (-) 약맷캡
    • (+) 강맷캡

그런데 그 전에....

갑옷 앞판에 있는 문양이 넘나 안예뻐서 계속 거슬린다. 이것만 수정하고 가자(...)

대충한 작업은 언젠간 다시 하게 된다는 새삼스러운 교훈.

일단 스케치를 하고.

필요한 애드온 기능 :

  • 회전 복사 ( 이건 또 왜 없지?!)

노말을 뽑아 적용해서 완료.

시간날 때 미뤄왔던 애드온 기능을 정리해서 추가해두자.

9.21

오늘의 블렌더 팁 - Lerp는 Mix라는 노드와 같다.(오진영 땡큐)

 

맷캡 셰이더를 처리하던 중, 맷캡이 솔리드와 붙어있는 상태가 너무 번거롭다는 생각이 들었다.

차라리 셰이더를 떼는 게 낫지 않을까? 

어차피 현재도 솔리드범프로 구분되고 있으니, 그냥 맷캡을 하나의 셰이더로 분리시키는 쪽이 어떨까.

게다가 그렇게 되면 버텍스 컬러 채널이 남게 되니, 좀 더 유연하게 채널을 사용할 수 있다.

 

맷캡으로 하이라이트를 대신하고 하이라이트 채널을 지운다.

그러면 솔리드 셰이더는 3개의 채널만 있으면 충분해진다.

  • R채널 - 빨간 명암
  • G채널 - 그림자 가중치
  • B채널 - 이미시브

그렇기 위해선 먼저 솔리드 머티리얼의 노드정리를 해야 한다.

이로서 솔리드 머티리얼의 파라메터는 2개면 된다!

정리가 끝나지 못한 상태로 타임오버. 나머지는 내일 해보자.

강도와 빛의 강도등을 조절할 수 있게 설계한다.

....

솔리드를 기반으로 한 맷캡 셰이더. 파라메터가 2개 더 많다.

맷캡은 원래 물체의 반사를 싸게 쓰려고 고안된 기술이지만, NPR에선 반사를 완전히 대체한다. 

덕분에 내부는 많이 복잡해졌다.

기본적인 맷캡은 다소 심심한 느낌.

반사비율과 빛을 극적으로 하면 좀 더 반짝이는 철 느낌을 낼 수 있다.

겉보기엔 화려하지만 과유불급이다. 아주 좁은 영역에만 간간히 써야 한다.

컬러맵과 맷캡의 UV가 달라 머티리얼을 달리 할당하면 색이 변하는 이슈가 있었다.

UV를 가득차게 펴는 예전이라면 이를 어쩔 수 없는 일로 치부했겠지만, 파레트 형태의 매핑을 쓰고 있기 때문에 이를 보완할 수 있어 보인다. 

맷캡용 컬러맵에도 같은 파레트를 넣어두면 된다. 파레트가 추가될 때 업데이트가 조금 귀찮겠지만.

크리즈에 강한 맷캡을 적용했더니 매우 인상적인 결과를 보여준다. 폴리곤으로 짜길 잘했다.

9.23

크리즈를 잡고, 미러를 합친 후 노말을 교정한다. 뭐 겉보기로는 달라진 게 전혀 없어보인다.

피부 셰이더도 정리하며 새로 만들었다. 맷캡보다는 아니지만, 은근히 어려웠던 작업.

R채널은 홍조등의 붉은 색조를 추가한다.

G채널은 솔리드처럼 그림자를 맡고,

B채널은 하이라이트를 추가한다.

맷캡은 움직여야 티가 난다.

큰부분은 됐으나 작은부분의 처리들이 남았다.....아직도 많이 남았다.

  • 헤어의 엔젤링이 고르지가 않다. UV를 수정해야 한다.
  • 헤어 셰이더 역시 정리대상이다. 공유하고 있는 함수들이 꽤 있기 때문에 충돌이 없나 살피고, 버텍스 컬러 처리부를 추가해야 한다.
    • R채널은 앤젤링 표현여부
    • B채널은 그림자 표현여부
  • 몇몇 메쉬들은 윤곽선을 만들었을 때 충분한 간격이 없어 파묻히는 현상이 있다. 메쉬를 띄워주자.
  • 알바디의 가슴뼈부분의 골이 너무 깊게 파여 있어 그림자가 예쁘지가 않다.수정해둘 것
  • 스킨 셰이더 버텍스 채널은 미리 칠해두자.
  • 얼굴 셰이더 따로 만들고 텍스처 새로 그리자.
    • R채널은 홍조 표현
    • G채널은 그림자 표현
    • B채널은 그늘 마스크. 이 표현은 색을 변경할 수 있게 해야 한다. 파랗게 질리는 표현등에 필요하다.
  • 눈의 셰이더도 새로운 표준에 맞게 개량해두자. 

폴리곤은 약 12만개정도(웃음)

 

9.24

Skin셰이더를 정리하고, 이를 파생시켜 Face셰이더를 만든다.

얼굴 그늘 같은 연출은 자주쓰진 않지만 언젠가 한 번은 쓸 것 같다. 일단 만들어 두자.

정리만 하다가 타임오버. 

얼굴이 매우 복잡해서 데이터를 당겨올 수가 없다.

그냥 메쉬를 누드에 붙여넣는 편이 효과적이다.

 

9.25

얼굴 그림자 처리를 했을 때 아무래도 흰자가 너무 하얀 것이 부자연스러워서 흰자를 조금 어둡게 보이는 처리를 추가했다. 또한 이렇게 낯빛이 변할 땐 아무래도 복잡하기보단 심플한 눈이 좀 더 어울리기 때문에 이것도 같이 처리.

덕분에 가뜩이나 복잡했던 눈셰이더는 더 복잡해졌다.

컨트롤러에서 조절할 수 있게 해두면 편할 것이다.

누드에 마스킹을 해두면 추후에 편하다. 어느정도 된 것 같으니 이제 다시 앨리스로 넘어가자.

9.26

...라고 생각했는데 아직 할 게 남았다.

헤어셰이더를 정리해야 한다.

솔리드라면 그림자 색을 분리하지 않고 공용을 쓰겠지만, 헤어는 특별히 분리해서 쓴다.그게 더 예쁘다.

하지만 앤젤링은 그냥 머리색을 따라간다. 생각보다 분리한다고 딱히 예쁘지가 않다.

입셰이더는 알파를 써야 해서 베이스 셰이딩 부분만 표준으로 바꾸고 그대로 사용한다. 하지만 테스트할 것이 하나 있다.

현재의 입은 낭비가 심한 편이다. 이중텍스처를 쓰던 시절, 매핑의 늘어짐때문에 가장자리에 여유가 좀 필요했다.

지금이라면 어떨까.

오..성공이다. 클램프로 짤라도 아무런 문제가 없다.

매핑을 2배로 줄여도 같은 해상도에 2배많은 입모양을 그릴 수가 있다.

그런데 왜 중앙에 안찍히는지는 모르겠다.

중앙에 안찍히는 건 그냥 uv가 중앙이 아니라서였다(...)

가끔 가로로 긴 입이 존재하고, 실제폴리곤도 가로로 기니까 4x8의 그리드로 총 32개의 표정을 만들 수 있다.

16개는 좀 적고, 64개는 너무 많았는데, 딱 좋은 수준이다.

입은 아직 리스트가 없으니 자세한 내용은 나중에 그려넣기로 하자.

이제야 모든 걸 정리했다.