이번 게스트 포스팅에서는 사쿠라 래빗(@Sakura_Rabbiter)이 아트 제작에 접근하는 방식을 공유하고 Unity에서 사실적인 캐릭터를 제작하는 데 필요한 팁을 이야기합니다.
최근 들어 시간적 여유가 생겨서 캐릭터 제작에 관한 글을 써 보면 어떨까 하는 생각이 들었습니다. 여러 캐릭터를 최근에 연달아 제작했기 때문에 전체 제작 프로세스에 상당히 익숙해져 있는 상태입니다. 세계관의 아트 디자인이나 캐릭터 배경, 캐릭터 구현 기술 등에 대해 말하는 것이 아닙니다. 그런 주제를 다루는 글은 수없이 많기 때문에 여기서는 언급하지 않을 예정입니다.
그렇다면 무슨 주제가 남아 있을까요? 고심한 끝에 Unity 에디터에서 사실적인 캐릭터를 제작하는 방법에 대해 글을 써 보기로 했습니다.
제가 왜 이런 주제를 떠올렸는지 궁금하실 겁니다. 왜냐하면 바로 제가 이 기술을 처음부터 익히느라 힘겨운 과정을 거쳤기 때문입니다. 여러분이 제 실수를 본보기 삼아 작업에서 오류를 줄일 수 있기를 바라며 이 글을 씁니다.
그럼 시작해 보겠습니다.
캐릭터 모델 구현 프로세스에는 보통 다음 단계가 필요합니다.
총 15가지 단계입니다. 프로세스가 복잡해 보일 수 있지만 캐릭터 디자인 관점에서 이 모든 요소와 디테일이 게임 엔진에서 캐릭터가 최종적으로 표현되는 방식에 영향을 미칩니다. 따라서 최종 제품에서 원하는 효과를 구현하려면 이렇게 많은 단계가 필요합니다. 전체 프로세스에는 오랜 시간이 소요되며 모든 단계가 매우 중요하고 특정한 순서로 완료되어야 합니다. 어떤 단계를 제대로 완료하지 않거나 절차를 무시하려 한다면 최종 결과물이 직접적인 영향을 받을 것입니다.
먼저 아트 제작의 예비 준비 작업을 살펴보겠습니다. 위에서 이야기한 15단계는 다음의 주요 4단계로 요약할 수 있습니다.
원본 드로잉 → 모델링 → 애니메이션 → 렌더링
훨씬 더 간단하죠? 이제 본론으로 들어가겠습니다. 제가 직접 겪으며 배울 수 있었던 내용이 여러분의 프로젝트에도 유용하길 바랍니다.
시작하기 전에 먼저 몇 가지 체크포인트를 설정해야 합니다. 버텍스 수, 맵 크기, 뼈대 개수 등 일반적인 항목은 차치하고, 다음과 같은 부분에 집중해 보겠습니다.
이러한 체크포인트를 숙지했다면 이제 구현할 단계입니다. 다음과 같은 방법으로 시작합니다.
캐릭터 제작 프로세스를 원활하게 진행하려면 첫 단계인 원본 드로잉에는 매우 신중하게 임해야 합니다. 이 단계를 사전에 제대로 완료하지 못하면 후속 단계에서 구조나 효과에 그 영향이 미치게 됩니다. 이어질 작업을 손쉽게 진행하려면 다음과 같은 내용에 유의해 드로잉을 진행하세요.
이러한 부문을 주의하며 그리면 후속 단계에서 작업을 간소화할 수 있습니다.
팁: 신체 드로잉에서 3D 모델링 소프트웨어를 사용하면 프로세스에 도움이 됩니다. 효율성을 개선할 수 있을 뿐 아니라 구조 및 원근 관계를 올바르게 정립할 수 있습니다. |
모델링에도 동일한 규칙이 적용되며 다음 단계를 고려해야 합니다. 모델링을 적절하게 처리하는 것은 필수이며, UV 매핑, 에지 배포, 머티리얼 분류 같은 요소도 사전에 계획해야 합니다. 렌더링을 진행하기 전에 애니메이션 프로세스를 거쳐야 하므로 모델링은 가장 중요한 부분입니다. 렌더링에서 문제가 발생하면 모델링 및 애니메이션 프로세스를 다시 작업해야 합니다.
모델을 제작할 때 재작업을 피하는 최고의 방법은 후속 단계를 고려하고 사전에 계획을 세우는 것입니다.
팁: ZBrush 또는 기타 소프트웨어에서 하이 폴리곤 모델을 드로우할 때 미세한 디테일 텍스처를 포함할 필요는 없습니다. 직접 베이킹을 통해 맵으로 만들어진 후에는 해상도 제한 때문에 디테일의 효과가 상당히 저하됩니다. 이러한 디테일은 셰이더에서 Mask ID를 사용해 분리하고 Detail Map을 통해 추가해야 합니다. 메인 맵에 포함하지 않도록 주의하세요. |
셰이더에서 디테일을 직접 추가하는 방법이 권장됩니다.
모델 리깅 시 모델을 원래대로 보존하려면 파일을 .obj 포맷으로 하나씩 익스포트한 다음 애니메이션 소프트웨어로 임포트하는 것이 바람직합니다. 그런 다음 모델의 노멀 방향, 파일 레이어, 셰이더 할당을 확인해 문제가 있는지 파악합니다. 문제가 없다면 모델 리깅으로 넘어가면 됩니다.
뼈대 위치는 관절의 자연스러운 움직임을 좌우하므로 모델 리깅에서 핵심적인 역할을 합니다. 다시 강조하자면 상당히 중요합니다. 스킨 가중치는 문제가 없지만 뼈대 위치가 잘못되었다면 문제가 발생합니다.
팁: 뒤쪽 가운데에 있는 볼기뼈를 예시로 사용하겠습니다. 자연스러운 움직임을 구현하려면 뼈대 위치가 정확해야 합니다. 그렇지 않으면 모션 캡처 기기를 사용하거나 다른 애니메이션에 적용할 때 애니메이션이 변형됩니다. |
이제 작업의 거의 마지막 단계에 왔습니다. 그렇지만 아직 마음을 놓기는 이릅니다. 제작 프로세스에서 다음과 같은 여러 문제를 고려해야 합니다.
이제 엔진을 사용하기 전에 필요한 모든 예비 작업을 완료했습니다. 다음은 모델 맵의 전체 세트를 Unity로 임포트하고 사전에 작업한 모든 내용을 병합해야 합니다.
팁: 스킨 가중치를 작업할 때 스키닝 소프트웨어와 엔진을 전환하며 효과를 테스트할 수 있습니다. 캐릭터가 애니메이션화되면 문제를 더 쉽게 식별할 수 있습니다. 아래 예시 이미지를 참조하세요. 캐릭터가 움직일 때 어깨뼈가 특정 각도에 도달하면 글리치(glitch)가 생기는 것을 볼 수 있습니다. 버텍스 가중치가 충분히 매끄럽지 않기 때문에 이런 현상이 발생합니다. |
앞에서 설정한 체크포인트 덕분에 구현 프로세스가 간소해졌습니다.
모델 제작 프로세스에서 머티리얼을 이미 분류했으므로 셰이더의 경우 분리된 컴포넌트의 머티리얼을 독립적으로 설정하거나 생성하면 됩니다. 인체 골격 표준을 사전에 설정해 둘 것이므로 애니메이션 단계에서 Unity의 휴머노이드를 직접 사용할 수 있습니다. 이렇게 하면 애니메이션 작업에서 많은 시간이 절약됩니다.
워크로드를 더 줄이기 위해 모션 캡처를 적용할 수도 있습니다. 제작한 블렌드 셰이프가 ARKit 명명 규칙을 충족한다면 얼굴 모션을 직접 캡처하고 얼굴 블렌드 셰이프의 애니메이션을 제작할 수도 있습니다.
팁: 리깅을 위해 Advanced Skeleton을 사용하는 경우 Unity로 임포트할 때 캐릭터의 어깨뼈 및 어깨 노드 정렬이 잘못될 가능성이 높습니다. 휴머노이드 인터페이스에서 수동으로 조정해 이 문제를 해결합니다. |
여기까지입니다. 요약하자면 원본 드로잉, 모델링, 애니메이션, 렌더링에 이르는 전체 캐릭터 제작 프로세스에서 결과 지향적 접근 방식을 사용하며 원하는 결과물을 구현하기 위한 단계를 결정해 놓는 것이 좋습니다. 그리고 다음 작업과 현재 단계에서 무엇을 주의하며 진행할지 알 수 있도록 전체 제작 프로세스를 완전히 이해하고 있어야 합니다.
제 게시물이 유용하다면 공유해 주세요.
/ / /
(^_^) Sakura Rabbit 樱花兔
사쿠라 래빗의 캐릭터 아트는 유니티에서 발행한 전자책 집중 탐구 가이드: Unity 고급 시각 효과 제작(영문)의 표지를 장식했으며 여기에서 무료로 읽어 보실 수 있습니다. 사쿠라 래빗에 대한 자세한 내용은 Twitter, Instagram, YouTube 그리고 이 글이 처음 게재된 FanBox 페이지를 참조하세요. Made with Unity 개발자들의 더 많은 블로그 게시물은 여기에서 확인하세요. Unity 전문 지식을 커뮤니티와 공유하고 싶다면 7월 11일까지 유나이트 2023 Call for Proposals에 제출하시기 바랍니다.