본문 바로가기
툰렌더링 공부

기사 #1

by IX. 2022. 7. 5.

7.6

지금까지 한 걸 정리해보자.

타요.하나를 제작했을 때 주사기의 맷캡텍스처가 요상하게 나와서 '아.맷캡이 만능이 아니구나...'싶었는데, 스무싱이 잘못설정돼 있었다. 가로로 놓쳐진 물건에도 멋진 모양을 보여준다. 여전히 쓸만해 보인다. 

하지만 비중이 높을 경우 너무 이미지가 어지럽지는 않을지 최종적으로 테스트해볼만한 모델이 필요하다. 때문에 이번 작품은 '철'이 많이 등장해야 한다. 그렇다면 역시 갑옷만한 것이 없다. 

 

뜻하지 않게 알게 된 SDF는 놀라운 결과를 보여줬다. 이로서 UV를 직선으로 펴는 강박에서는 벗어날 수 있다. 게다가 알파맵에 대한 기대감을 커지게 했다. 때문에 이번작은 알파도 적극활용해볼 수 있어야 한다. 이를 표현하기엔 역시 곱슬머리가 좋아보인다.

 

그렇기 때문에 이번 작품은 '곱슬머리를 한 기사'가 좋겠다. 디자인에 착수하기 전에 전에 만든 메타휴먼을 손보자.

하나 제작당시 폴리곤이 많이 부족한 느낌이었으므로, 이번엔 넉넉히.

 

이제 컨셉을 그려보자.

오늘은 늦었으니 내일.

7.7

컨셉을 그린다.

양산형 MMORPG에서 흔히 보는 K-기사

 

모델링 시작.

아휴..정신없어...

 

7.8

일단 모델링 완료.

좌우 뒤집기 전 폴리곤이 2만개정도이니, 다 끝나면 25000개쯤 될 것 같다. 딱 좋은 수준이다.

7.11

 

https://twitter.com/KoKoRoBoUZu/status/1545712793571115008?s=20&t=SoPq3wkcEZzb84HMtx-CUg 

 

트위터에서 즐기는 心優しき坊主 [INFINITYBULLET ]

“普通の技術 以前質問されたアニメ・マンガ口について いわゆる横顔のときに口がほっぺた部分に描かれてる日本漫画特有のアレです 原理は超カンタンで口の中に口(?)を作って透過すれば

twitter.com

https://twitter.com/KoKoRoBoUZu/status/1545719165213818882?s=20&t=SoPq3wkcEZzb84HMtx-CUg 

 

트위터에서 즐기는 心優しき坊主 [INFINITYBULLET ]

“@kajiwaramanga こんなですよー とは言え 私自身が ” 横顔時にほっぺに口がある派 ” ではないので技術的にできるよという一例です”

twitter.com

주말에 지인이 던져준 링크. 우마무스메의 기술 문서에서 입을 과장해서 표현하는 스케일&오프셋 기술이 뭘까 궁금했었는데, 아. 이게 아닐까!? 라는 생각이 들었다.

 

예상으로는 여러모로 좋다. 일단 입부근의 폴리곤이 고정됨으로서 셰이프키 데이터가 확 줄어든다. 입모양만들기도 훨씬 자유롭다. 단점은 매트리얼을 분리해야 하므로 드로우콜이 늘어난다는 점 정도. 

 

어쨌거나 이걸 실험해보려면 메쉬구조를 바꿔야 한다. 기존과 동작방식이 완전히 다르고, 스텐실 버퍼에 대해서도 추가학습이 필요해서 '한 번 해볼까'란 가벼운 마음으로 접근할 수는 없을 것 같다. 요다의 말처럼 하냐? 안하냐?의 선택지만 있다. 그럼 해야지! 

 

UV를 펴다가 중복되는 부분을 겹치기가 너무 귀찮아서 애드온을 알아봤다. UVPackMaster3라는 애드온인데 기계가 뭐 잘 펴봤자 얼마나 잘 펴겠어...싶었지만, 오 맙소사. 내가 지금까지 왜 이걸 손으로 펴고 있었지?

진짜 인간미 없이 잘 펴준다. 감탄. 또 감탄.

사용하기 마냥 쉬운 애드온은 아니다. 하지만 돈값한다. 블렌더 본체보다 비싼 애드온!

https://blendermarket.com/products/uvpackmaster

 

Uvpackmaster 3

UV Packmaster 3 is an efficient and fully-featured UV packing engine available for Blender. It is probably the most efficient UV packer out there in terms of packing on CPU but it also provides a Cuda accelerated variant of the algorithm.

blendermarket.com

이것과 SquareMaster를 혼용하면 UV를 펴는 것이 꽤 쉬워진다. 무엇보다, 잘 펼 수 있다. 

반나절을 연구한 최적화된 작업루트를 적어두자.

 

1. 부분별로 펴기. 안펴도 되는 부분은 아래로, 펴야 되는 부분은 위로, 겹쳐야 하는 부분도 겹치게.

2. 모든 오브젝트를 잡고 Lock Overlapping을 체크. 겹친 부분은 하나의 Island로 인식된다.

3. 완전히 대칭이 아닌 부분만 겹친 Island끼리는 오버랩처리 되지 않으므로 그룹핑한다. - Lock Group.

4. Packing Option - Normalize Island를 체크 후 1차 Pack. 모든 Island의 크기가 비슷해지진다.

5. 100%가 아닌 좀 줄이고 싶은 부분(발바닥, 방패뒷면등)은 수동으로 크기를 줄인다.

6. Normalize Island를 체크해제 후, Heuristic Search를 5초정도주고 최종 Pack.

 

 

어휴.. 폴리곤 많으니 샤프선 지정도 한나절 걸린다. 모델링 완료

 

7.12

트위터에서 봤던 투과형 입표현을 구현하려면 별도의 셰이더를 만들어야 한다.

하지만 블렌더의 InFront기능을 이용하면 간략하게나마 살펴볼 수가 있다.

확실히 제작이 자유롭지만,

 

꼼수인만큼 모든 각도를 커버할 수는 없다.

그런데 표정제작이 매우 쉽다! 

데이터가 분리되니 관리도 쉬워질 것 같다. 채택하기로 하자.

 

머리카락 스프링본 한 번에 설정할 때 사용하는 스크립트. 매번 기존 파일뒤져서 가져오는 게 귀찮아서 저장

import bpy

for bone in bpy.context.selected_pose_bones:
    bone.sb_bone_spring = True
    bone.sb_bone_rot = True
    bone.sb_stiffness = 0.5
    bone.sb_damp = 0.6

 

헤어 테스트.

미묘하다...생각보다 판때기 느낌이 많이 난다.

 

지인의 조언을 듣고 볼륨감을 수정. 한결나아졌다.

그나저나 컷아웃이 생각보다 깨끗하게 잘 뚫린다[....]

SDF까지도 필요없겠는걸...

아웃라인과 함께 테스트.으와... 명암이 엉망이다.

 

머리카락 SDF테스트. SDF는 그 특성상 텍스처압축을 사용하면 안된다. 그런데 이렇게 되면 그냥 압축된 큰 텍스처와 별반 차이가 없다. 오히려 압축을 하면 우글쭈글 해지는 결과를 가져온다[....]

이것이 메모리에 끼치는 영향을 조사해봤더니, 오마이갓... 압축된 2048한 장과 비압축 1024는 그 차이가 엄청나다. 그냥 큰 2048을 쓰는 게 훨씬 더 효과적이다. 

 

아...  참을 수 없는 촌스러움.

맷캡이 생각보단 수용할만한 느낌?