
Breakdown: Stylized Hand-Painted Fantasy Priest Character Made With ZBrush & Substance 3D
Matthieu Lemoule Duparc dẫn chúng ta vào hậu trường quá trình tạo ra nhân vật game-ready Moon Priest theo phong cách hand-painted, chia sẻ quá trình thực hiện của anh ấy từ sculpt trong ZBrush đến tạo texture trong Substance 3D Painter và render trong Unreal Engine 5.

Introduction
Xin chào mọi người! Tôi tên là Matthieu Lemoule Duparc, một họa sĩ nhân vật 3D sống tại Bordeaux, Pháp. Tôi muốn chia sẻ với các bạn quá trình tạo nên nhân vật Moon Priest của tôi!
Giống như nhiều người trong số chúng ta, tôi là một người thực sự yêu thích nghệ thuật, hội hoạ, game và phim ảnh. Tôi đã khám phá ra 3D art trong những năm đầu đại học khi tôi được giới thiệu về phần mềm Maya. Từ khoảng khắc đó, tôi nhận ra rằng mình đã tìm thấy công cụ sáng tạo tuyệt vời. Tôi luôn thích làm việc với nhiều phương tiện khác nhau, chẳng hạn như vẽ, sơn, xây dựng bằng LEGO hoặc thậm chí chơi Minecraft để thổi hồn vào những câu chuyện của mình và thể hiện sự sáng tạo. Vì vậy, việc khám phá 3D art thực sự thú vị đối với tôi!
Sau này trong quá trình học tập, tôi đã khám phá ra ZBrush và Substance 3D Painter, và một niềm đam mê mới đã nảy nở trong tôi. Sau đó, sau 3 năm học đại học, tôi vào trường Artside và khám phá ra game art thực sự là gì. Kể từ đó, tôi quyết định dành phần lớn thời gian của mình để học 3D character art. Ở đây, tôi đã gặp rất nhiều người và bạn bè tuyệt vời, những người luôn thúc đẩy tôi lên đỉnh cao để sáng tạo ngày càng nhiều hơn, tốt hơn và tốt hơn nữa. Nhờ họ, hành trình này và phần này của cuộc đời tôi đã trở thành một khoảng thời gian thực sự hoành tráng và bổ ích!
Sau hai năm học tại Artside, tôi đã làm việc với tư cách là 3D Character Artist trong ngành công nghiệp game trong gần hai năm nay. Tôi đã có cơ hội làm việc tại các studio độc lập cho các dự án thú vị chưa được phát hành. Thôi, nói về bản thân mình đủ rồi; hãy nói về Moon Priest!

References
Dự án này bắt đầu cách đây gần một năm (vâng, khá lâu). Tôi muốn dành thời gian cho dự án này. Tôi thực sự muốn làm việc mà không có áp lực, để thử nghiệm và và học các quy trình mới như rigging hay animation, nhưng cũng để áp dụng một số kỹ năng mà tôi thích. Mục đích chính là tôi muốn nhân vật này hoàn toàn trở thành game-ready, bao gồm rigging, animation và tất nhiên là cả topology và texture.
Vì thế, tôi quyết định chọn một concept art từ HaoYu Xu, một hoạ sĩ tuyệt vời:

Điều đầu tiên tôi làm là thu thập một số tài liệu tham khảo và tìm một mục tiêu nghệ thuật (artistic target). Tôi muốn có một mục tiêu để không bị lạc lối trong suốt dự án, đặc biệt là vì dự án này sẽ thuộc về một kế hoạch dài hạn.
Thứ hai, tôi muốn tạo ra thứ gì đó theo phong cách stylized và hand-painted, nhưng tôi cũng thích thử quy trình làm việc PBR. Tôi luôn thấy các tác phẩm 3D của Wayfinder thực sự truyền cảm hứng, đặc biệt là cách họ render với hand-painted texture. Đồng thời, Fortiche Production đã thế hiện một cách xuất sắc trong bộ phim Arcane của họ; nó truyền cảm hứng rất nhiều trong quá trình tạo texture của tôi.
Tôi cũng đã tập hợp một số tác phẩm của các hoạ sĩ thực sự truyền cảm hứng cho tôi, như Aleksander Ladosha vì sự sáng tạo và đa dạng mà anh ấy có thể mang lại cho các dự án của mình hoặc Francisque Facon vì kỹ năng vẽ 3D điên rồ của anh ấy. Tôi cũng được truyền cảm hứng rất nhiều bởi các tác phẩm của Fred Arsenault vì cách tiếp cận của anh ấy đối với các mô hình game-ready và tối ưu hoá (optimization).

Tôi cũng đã thu thập được rất nhiều tài liệu tham khảo về giải phẫu, rất cần thiết cho character art. Chúng có thể là ảnh, tác phẩm 2D hoặc thậm chí là tác phẩm điêu khắc 3D. Chỉ cần đảm bảo rằng những tài nguyên này đáng tin cậy!
Ví dụ, tôi đã được truyền cảm hứng rất nhiều từ tác phẩm của Mark Lambert, đặc biệt là cách mà Mark cách điệu giải phẫu và sự năng động trong điệu bộ của nhân vật. Tôi cũng thêm một số tài liệu tham khảo thực tế mà có thể hữu ích cho quá trình tạo texture.
Sculpting
Sculpt là một trong những công đoạn yêu thích của tôi. Đối với việc modeling và sculpting, tôi thực hiện tất cả ở trong ZBrush. Đầu tiên, tôi phải blockout tất cả các yếu tố tạo nên nhân vật. Tôi xử lý giải phẫu (anatomy) trước với những hình dạng đơn giản và lượng lưới thấp (low-resolution topology). Tôi cố gắng tránh việc tăng DynaMesh quá cao. Ở giai đoạn này, tôi nghĩ rằng điều quan trọng là phải làm việc với khối có lượng lưới thấp để kiếm soát tốt hình dáng tổng thể và dễ dàng làm việc trên cấp độ chi tiết đầu tiên của nhân vật mà không cần nghĩ đến các chi tiết nhỏ.

Ở bước này, tôi chủ yếu sử dụng Move, MoveTopological và ClayBuildup Brushes. Ngoài ra, tôi thích tách các bộ phận giải phẫu thành nhiều phần, việc này cho phép tôi di chuyển chúng dễ dàng hơn bằng transform tool.
Khi đã hài lòng với đường giải phẫu đầu tiên, tôi block out các thành phần của nhân vật. Một lần nữa, tôi cố gắng giữ độ phân giải thấp nhất có thể, nhưng đối với một số thành phần, tôi quyết định bắt đầu DynaMesh một số bộ phận organic.

Một mẹo hay mà tôi có thể chia sẻ ở giai đoạn này là thường xuyên kiểm tra hình bóng (silhouette) của model ở góc trên bên trái màn hình trong ZBrush. Điều quan trọng là phải nhận ra danh tính của nhân vật của bạn chỉ bằng góc nhìn này. Hình bóng càng mạnh, nhân vật của bạn sẽ càng hiệu quả.

Khi tôi cảm thấy hình bóng và các yếu tố của model đã phù hợp với concept art, tôi đã sẵn sàng chuyển sang giai đoạn lên chi tiết!
Đối với hầu hết các thành phần, ngoại trừ các bộ phận organic, tôi thường thực hiện theo các bước sau cho quy trình của mình:

Lúc đầu, tôi dùng ZModeler và cọ Move. Cọ Move rất hữu ích để di chuyển các vertice trên model low-poly để tạo ra hình dạng chính xác mà tôi muốn. Sau đó, tôi polygroup by normal, làm sạch các group này bằng cọ ZModeler và crease viền của polygroup. Nó cho phép tôi thêm dynamic subdivision và do đó, tôi có bản preview trước về diện mạo của model trước khi apply. Điều tốt là với tính năng này, tôi có thể làm việc trên khối low-poly và preview được diện mạo high-poly, do đó không làm hỏng quy trình làm việc. Tôi thực hiện điều này cho tất cả các khối cần được sculpt.
Khi tôi đã hài lòng với diện mạo tổng thể của những mảnh ghép đó, tôi apply subdivision và bắt đầu sculpt! Một việc tốt cần làm sau khi apply subdivision là đảm bảo rằng model low-poly có sự phân chia polygon đồng nhất trên toàn bộ geometry. Nếu không, bạn có thể sẽ có một số khu vực phân bổ poly kém trên lưới của mình. Điều này sẽ buộc bạn phải đẩy qua đẩy lại subdivision level và có mật độ polygon cao trên model của mình. Để tránh điều đó, tôi thường lưu lại lịch sử tại bước apply subdivision, sau đó Zremesh model để có topology tốt và project lại thông tin bề mặt trước đó lên khối có lưới mới. Bằng cách này, tôi có thể tiết kiệm hàng triệu polygon trên toàn bộ nhân vật.
Để sculpt chi tiết, tôi có xu hướng sử dụng cọ TrimDynamic và Clay để tả các chi tiết hư hại ở phần viền. Để làm mịn và tạo mặt cắt, tôi sử dụng cọ HPolish và Flattenedge từ gói Orb Brushes của Michael Viciente. Tôi thích sử dụng mask lasso và cọ Move để thêm biến thể trên các bề mặt lớn. Đối với hầu hết các vết nứt của mình, tôi sử dụng Orb_slash_curve Brush và ClipCurve cho các vết nứt lớn, việc thường liên quan đến việc làm biến dạng khối (shape deformation). Ngoài ra, tôi còn sử dụng cọ ClayBuildup và DamStandard cho các chi tiết khác.


Retopology & UVs
Thời điểm cho retopology đã đến! Mục tiêu ở đây là tạo ra một game-ready và rig/anim-ready model với ngân sách trung bình. Vì vậy, tôi đã đặt cho mình một polygon budget với khoảng 50k triangles cho toàn bộ nhân vật cùng phụ kiện.
Đối với phần này, tôi nghĩ cần phải sử dụng tài liệu tham khảo thay vì chỉ vẽ polygon lung tung. Hầu hết thời gian, tôi muốn có sự phân bổ polygon đồng đều trên toàn bộ model, đặc biệt là trên các phần sẽ bị biến dạng trong quá trình animation. Trên các bộ phận không bị biến dạng, tôi muốn ưu tiên tối ưu hoá hơn bằng cách sử dụng nhiều triangles hơn.
Ngoài ra, trong quá trình này, tôi lại tập trung nhiều vào hình bóng một lần nữa, vì vậy tôi chú ý nhiều đến việc không để cho polygon bước trên đường viền lưới. Để làm như vậy, tôi đã tăng mật độ của các hình tròn.


Ở đây, hầu hết công đoạn retopology được thực hiện trong Blender với add-on RetopoFlow. Đây là một công cụ rất trực quan, bạn có thể vẽ và chơi với các vertices bằng bút và máy tính bảng, rất thoải mái. Đối với vũ khí, tôi đã thực hiện retopology với CozyBlanket trên iPad khi tôi đang trên tàu trong chuyến du lịch. Đây là một giải pháp tốt, cung cấp nhiều khả năng tuyệt vời.
Để thực hiện UV unwrapping, tôi nghĩ về những phần UV mà có thể được mirror bằng cách chỉ retopology cho một bên. Việc này rất hữu ích để tiết kiệm thời gian và không gian UV. Các face màu cam được select là các topology mà tôi đã mirror.

Tôi thực hiện tất cả UV seam trong Blender, sau đó tôi import model vào RizomUV và thực hiện unwrapping và packing trong đó. Lý do cho những lựa chọn đó là vì Blender cung cấp sự thoải mái cho việc chọn và chỉnh sửa các UV seam. Đối với RizomUV, thuật toán unwrapping của nó là một trong những thuật toán tốt nhất mà bạn có thể tìm thấy. Nó cũng cung cấp nhiều tính năng tuyệt vời cho việc packing.

Về phân phối UV, khuôn mặt phải nằm trong một ô UV để có độ phân giải tốt hơn. Mặc dù tôi không có kế hoạch để tạo ra một shader chuyên biệt cho do hoặc mắt, nhưng tôi đã tập hợp tất cả các thành phần trên đầu vào cùng một ô UV, trừ bộ tóc. Phần còn lại của cơ thể sẽ nằm trên một ô khác.
Bản đồ 4k sẽ đủ cho toàn bộ cơ thể về mặt độ phân giải. Vì tôi sẽ không làm noise, grain hoặc dirt lên texture, nên tôi không phải mang map có độ phân giải quá mức vào model. Đối với các bộ phận khác, tôi xếp tất cả chúng vào một map 4k. Bằng cách đó, toàn bộ nhân vật sẽ vừa với pixel map 2x4096², vậy là cũng đã tối ưu hoá khá tốt.

Phần đặc biệt nhất mà tôi phải thực hiện là vật liệu trong suốt. Moon Priest có một chiếc áo choàng, cái mà tôi quyết định xử lý bằng độ trong suốt, vì vậy tôi phải tạo một translucent shader trong Unreal Engine 5. Tôi đã tập hợp chiếc áo choàng bằng eye specular mesh, cái mà tôi đã tạo trên một topology riêng biệt thay vì tròng mắt, vì vậy tôi có thể mirror đôi mắt bằng non-mirror specular.

Texturing
Tôi quyết định thực hiện toàn bộ texture trong Substance 3D Painter. Lý do là tôi có thể dùng các công cụ procedural texture generator tool trong suốt quá trình làm. Nhưng trước đó, tôi cần bake high-poly model vào low-poly mesh để có các tấm map: normal, AO, thickness, curvature, world space normal, và vertex color map. Để làm điều đó, tôi sử dụng Marmoset Toolbag.
Sau khi thêm những thứ này vào Substance 3D Painter, tôi đã tách tất cả các loại chất liệu khác nhau thành nhiều folder layer, chẳng hạn như fabric, skin, gold,... Làm như vậy cho phép tôi có một không gian làm việc sạch sẽ và rất trực quan., điều này rất quan trọng để tránh lãng phí thời gian tìm kiếm các layer. Sau đó, tôi tạo mask từ tất cả các folder này để cô lập tất cả các màu sắc và chất liệu. Tôi thích sử dụng vertex color làm input cho color selector generator vào mask. Nếu cần tôi sẽ làm sạch chúng với một lớp sơn sublayer hoặc filter để làm cho nó mịn hơn.

Để làm cơ sở cho lớp sơn của mình, tôi đã tạo ra smart material. Nó là một công cụ mà tôi đặt vào trong mỗi folder mà tôi đã đề cập để blockout màu và khối lượng (volume). Nó bao gồm một lớp fill layer làm nền, tham chiếu đến material color. Một lớp tô sáng fill layer ở trên và dưới. Một curvature layer và một AO layer. Tất cả những layer này đều sử dụng một anchor point đặt trong lớp fill layer đầu tiên. Bằng cách đó, công cụ này có thể được tái sử dụng mà không cần tác động vào màu của mỗi layer. Nếu muốn, tôi luôn có thể điều chỉnh mask generator để tuỳ chỉnh tốt hơn.
Bây giờ, thời gian tô màu đã đến! Để làm điều đó, tôi đã sử dụng cọ Knife trong Substance 3D Painter. Tôi đã thêm một lớp paint layer lên trên lớp smart material trước đó và tô dọc theo model trong 3D viewport. Ở công đoạn này, công cụ tốt nhất của bạn là thời gian và các tài liệu tham khảo đẹp.


Khi phần base color đã xong, tôi phải trích xuất (extract) thông tin về roughness. Để làm được như vậy cũng khá đơn giản. Tôi lấy thông tin màu và biến nó thành trắng đen bằng một passthrough paint layer, gắn HSL Perceptive filter vào đó và đẩy saturation slider về 0. Việc này biến base color của tôi thành màu xám. Sau đó tôi đặt một anchor point lên trên và gắn nó vào giá trị roughness của một layer khác. Bạn cũng có thể điều chỉnh giá trị màu xám này bắng một sublayer level hoặc contrast light để có được kết quả mong đợi.
Tôi cũng thêm một số thông tin về metalness để tạo ánh kim cho các bộ phận kim loại. Đối với metalness, không cần độ gradient, chỉ có các giá trị xám. Tôi thích thêm một chút vào tóc hoặc một số loại vải để làm nó sống động hơn cho phần render.

Lighting
Đối với công đoạn này, tôi render nhân vật của mình bằng Unreal Engine 5. Như tôi đã nói, chủ đề chính của dự án đó là tạo ra một nhân vật game-ready. Vì vậy, sau khi nhân vật được rig và diễn hoạt, tôi đã import nó vào trong engine. Việc rigging và animation được thực hiện trong Blender. Vì tôi không phải là người chuyên rig hoặc là animator, tôi sẽ không bình luận về những phần đó.
Tôi quyết định tạo PBR shading cho Moon Priest. Vì vậy, một phiên bản không đánh đèn của nhân vật là không đủ. Nhưng vì tôi đã dành nhiều thời gian để tô màu nhân vật của mình, nên tôi muốn làm nổi bật màu sắc. Tôi cũng muốn thấy normal và reflection nhờ vào map roughness. Đầu tiên, tôi tạo một thiết lập ánh sáng rất đơn giản, 3-point lighting với Key light, Fill và Rim light. Chúng ta có thể nói là tại thời điểm này tôi đã blockout khối ánh sáng.

Sau đó, tôi tạo ra master shader. Để làm nổi bật map albedo càng nhiều càng tốt, tôi đưa map này vào phần base color và emissive của shader với công suất 30%. Bằng cách đó, emissive sẽ không đè lên thông tin về ánh sáng và roughness.
Để tuỳ chỉnh nhiều hơn, tôi đã thêm node CheapContrast vào albedo. Một Multiply và một Add node kết hợp với các tham số để input cho Roughness giúp tinh chỉnh độ bóng và độ tương phản trên các bộ phận cần thiết. Và một tham số Multiply vào map Metalness và AO để làm tương tự. Shader này cực kỳ đơn giản, nhưng nó hoạt động tốt.

Đối với outline shader, tôi đã tìm kiếm rất nhiều trên internet để tìm ra hướng dẫn hoàn hảo cho dự án của mình. Tôi đã tìm thấy hướng dẫn của Even Bohl về outline shader. Mời bạn xem thử nếu bạn tò mò. Anh ấy chắc chắn sẽ mô tả về nó tốt hơn tôi!
Bây giờ tôi đã có shader tốt và có blockout ánh sáng đẹp, tôi nghĩ sẽ thật tuyệt nếu có một custom ground và sky sphere. Tôi đã tạo một UV sphere đơn giản trong Blender, đảo ngược normal và scale nó to ra để làm sky giả trong Unreal Engine 5. Sau đó, tôi tạo một gradient map trong Photoshop mà tôi đưa vào một shader không có đèn (unlit shader) trong Unreal với một số node cho phép tôi tuỳ chỉnh trực tiếp trong engine.


Mặt đất là một tấm plane đơn giản mà tôi đã vẽ gạch sandstone trong Photoshop. Tôi đã trích xuất greyscale từ bản vẽ để có roughness và sử dụng nó trong Substance 3D Painter như height map để export ra normal map. Sau đó, tôi đã có tất cả các map mà tôi cần cho PBR. Tôi đã sao chép chất liệu chính của nhân vật và tinh chỉnh nó một chút, và thế là tôi có mặt đất.


Sau khi hoàn thiện chất liệu và shader, tôi có thể tăng cường và cải thiện ánh sáng bằng cách thêm đèn vào những khu vực cần chiếu sáng.

Et voilà! Moon Priest cuối cùng đã hoàn thành!
Conclusion
Để kết luận, tôi có thể nói rằng tôi cảm thấy mình đã cải thiện kỹ năng sau dự án này. Tôi đã học được nhiều điều mới. Tôi thực sự dành thời gian cho nhân vật này, vì vậy điều đó cho phép tôi khám phá và thử nghiệm rất nhiều! Ví dụ, việc rigging mất gần một tuần làm việc. Đó là một cuộc đấu tranh thực sự và là một khoảng thời gian đau đớn, nhưng cần phải mắc lỗi để hiểu rõ quá trình này. Tóm lại, toàn bộ dự án mất hơn một tháng để hoàn thành, trải dài trong nhiều tháng.
Lời khuyên tôi có thể dành cho người mới bắt đầu là hãy luôn ở bên những người có thể cho bạn phản hồi về tác phẩm của bạn. Đó có thể là bạn bè, chuyên gia hoặc thậm chí là một số người không phải là hoạ sĩ. Điều rất quan trọng là phải lùi lại một bước về tác phẩm nghệ thuật của bạn và chấp nhận những lời phê bình về nó. Bởi vì hầu hết thời gian, các phản hồi đều mang tính xây dựng và sẽ đưa bạn lên đỉnh cao.
Nguồn : https://80.lv/
Tài Huỳnh of Tự Học 3D Online