아들과 2인 개발 모음
Search
건조기 몬스터 1.0
블렌더를 사용해서 건조기 몬스터의 모델링, 리깅, 아이들 애니메이션, UV 언래핑, 텍스쳐링을 해봤습니다. 몇 년 전에 Udemy에서 블렌더 강의를 들으면서 만져본 것이 전부라, 예전 기억을 되살리며 블렌더 2.8을 배우느라 엄청나게 헤맸습니다. 어떻게든 완성한 것이 신기하기도 하면서, 오히려 예전보다 블렌더에 대한 이해가 깊어진 것 같아서 성장한 느낌을 받았습니다. 블렌더 초보라서 다른 분들께 도움이 될만한 정보를 드리지는 못할 것 같고, 헤맸던 부분에 대해서 간략히 정리해보겠습니다.
우선 원화를 보시죠. AD(아드)님이 그려준 건조기 몬스터입니다. 원화의 느낌을 잘 살린 것 같은가요?
이전 글을 보신 분들은 툰 셰이딩을 사용하지 않는 점을 눈치채셨을 텐데요. 결론만 말하면 퀄러티가 별로입니다.
원화의 느낌을 살리기 위해서 색연필 셰이딩이나 툰 셰이딩이 필요할 것으로 생각했는데, 생각보다 기본 PBR 셰이더의 느낌이 나쁘지 않습니다. 모델링을 잘하지 못해서 건조기 바디가 살짝 울퉁불퉁한 느낌이 나는 것이 오히려 클레이로 만든 느낌을 주면서, 단순한 텍스쳐와 함께 원화의 귀여운 느낌을 잘 살려주는 것 같습니다.
단계별로 가장 헤맸던 것들을 몇 가지 살펴보겠습니다.
모델링
모델링에서 제일 헤맨 부분은 평면과 원기둥을 합치는 일이었습니다. 처음에는 그냥 Boolean Modifier를 써서 붙여버렸는데, 페이스가 영 예쁘지 않게 나와서 웨이트 페인팅이나 텍스쳐링을 제대로 할 수 없는 수준이었습니다. 그래서 접점의 버텍스 숫자에 맞게 평면을 쪼개서 잘 맞춰줬습니다. 버텍스가 중첩되는 부분은 거리 기준으로 버텍스를 머지해주었습니다. (Alt + M > By Distance) 예전에는 Remove Duplicates라는 메뉴가 있었는데 2.8에서는 이것을 쓰라고 하더군요.
평면과 원기둥이 만드는 부분의 페이스 정리
리깅
사실 제일 걱정했던 부분이 리깅입니다. 몇 년 전에도 어찌어찌 따라 해서 한 번 해본 적이 있지만 정말 뭐가 뭔지 너무나 헷갈리고 헤맸던 기억이 있어서요.
그런데 이번에는 그렇게 헤매지도 않았고 헷갈리지도 않았습니다. 아마도 아래 튜토리얼의 영향이 큰 것 같습니다. 짧게는 몇십 초에서 길어야 몇 분 정도 안에 뚝딱뚝딱 설명하는 모습이 EBS의 밥 로스 아저씨가 연상됩니다. 그렇게, 리깅도 참 쉽게 되었네요.
리깅에서 제일 큰 실수를 한 것은 본의 Roll 값을 제대로 확인하지 않은 상태에서 리깅과 애니메이션 제작을 진행해버린 일입니다. 블렌더에서는 정상으로 잘 나오지만 유니티에서는 참혹한 결과로 이어졌습니다.
잘못된 리깅의 결과
웨이트 페인팅도 아주 어려웠는데, 이건 딱히 해결책을 찾지 못하고 그냥 열심히 했네요. 나중에 알게 된 플러그인이 있어서 다음에는 이걸 한 번 써볼 계획입니다.
UV 언래핑
UV 언래핑에서 최고의 난관은 6개의 팔에 같은 UV를 매핑하는 일이었습니다. 이 방법을 찾는 데만 정말 많은 시간을 쓴 것 같네요. 결국에 해결한 방법은 블렌더에 내장된 Magic UV 플러그인입니다! 이 플러그인을 설치하면 페이스를 선택한 다음에 UV를 Copy/Paste 할 수 있습니다. 간혹가다 페이스 한두 개가 엉뚱한 곳에 가있는 때도 있는데, 자석 툴을 켠다음에 옮겨주면 쉽게 수정할 수 있습니다.
유니티와 블렌더
유니티와 블렌더를 함께 사용할 때 첫 번째 고민거리는 좌표계입니다. 유니티는 Y가 up, Z가 forward이지만 블렌더는 Z가 up, X가 forward입니다. 흔히 말하는 왼손 좌표계, 오른손 좌표계의 이슈입니다. 이건 단순히 모델을 이리저리 돌려서 해결되는 문제가 아니지요. 오른손용 고무장갑을 이리저리 돌린다고 왼손용 고무장갑이 되지 않는 것과 같습니다. 장갑의 안과 밖을 뒤집어야 왼손에 낄 수 있게 됩니다.
잘 아는 것처럼 말하고 있지만, 저도 매번 헷갈려서 아래와 같이 x, y, z, -x, -y, -z를 써 넣은 텍스쳐를 매핑한 다음에 블렌더와 유니티에서 비교해보았습니다.
제가 선택한 방법은 블렌더에서 모델링을 할 때부터 오브젝트를 유니티 기준으로 돌려서 모델링을 하는 방법입니다. 오브젝트를 Y up, Z forward가 되도록 돌려둔 다음에, 그 상태에서 에디트 모드에 들어가서 모델링을 했습니다. 생각보다 편하고 리깅에도 아무런 문제가 없습니다. (위의 로테이션은 Apply 하지 않습니다.)
또 하나의 고민거리는 임포트 방식입니다. 유니티에서는 .blender 파일을 인식해서 마치 fbx처럼 보여줍니다. 단점은 PC에 블렌더가 설치되어 있어야 한다는 점과 블렌더의 익스포트 옵션들을 쓸 수 없다는 것이죠. 장점은 fbx로 익스포트해서 넣는 것보다 작업 플로우가 간단하고 빠릅니다. .blender 파일을 별도로 버전 관리를 하지 않아도 되는 것도 편하고요. 2인 개발이지만 유니티를 만지는 사람은 사실상 저 혼자이기 때문에 .blender 파일을 유니티에 바로 넣어서 쓰는 방식을 선택했습니다.
블렌더 이야기는 이 정도입니다. 아래는 이런 우여곡절을 거쳐서 완성된 건조기 몬스터 1.0 입니다!
건조기 몬스터 1.0
마치며..
단계마다 이렇게 블로그 포스트를 남기는 게 시간을 잡아먹는 일이라서 포스트를 작성할 때마다, 그리고 이 글을 쓰면서도 쓸까 말까 망설였습니다. 이 글을 쓰지 않으면 개발 속도를 더 낼 수 있으니까요.
그런데도 이렇게 포스트를 쓰고 있는 이유는 각 단계가 끝날 때마다 작은 마무리의 의식을 갖기 위해서입니다. 스크럼에서 스프린트가 끝날 때마다 데모와 회고를 진행하는 것처럼 말이죠. 이 포스팅은 여러분께 결과를 보여드리고 잘한 것과 못한 것을 짚어보는 하나의 작은 의식인 것 같습니다. 그렇게 응원을 받으며 잠깐 쉬어가는 시간을 두는 것이 장기적으로는 더 멀리 갈 수 있는 에너지가 되어 주겠죠?