Rigging Maya là gì

Giới thiệu về Skinning và 3D Animation

Giới thiệu về Hoạt hình 3D

Hoạt ảnh chỉ là một mô tả về những thay đổi dọc theo dòng thời gian. Đối với một đối tượng 3D, chủ yếu có ba cách để biến đổi lưới tam giác của nó để tạo hoạt ảnh:

[1] Hoạt ảnh thông qua các phép biến đổi affine , thường là cứng nhắc . Với các phép biến đổi cứng nhắc, chúng ta có thể di chuyển hoặc xoay một nhân vật. Với một biến đổi affine chung chung hơn, chúng ta cũng có thể chia tỷ lệ ký tự lên hoặc xuống. Xem ví dụ bên dưới.

Biến đổi liên kết

[2] Hoạt hình qua các bộ xương , gắn liền với nhân vật. Các biến đổi cứng nhắc [đôi khi có cả tỷ lệ] được áp dụng cho mỗi chi. Chúng tôi sẽ giới thiệu khái niệm lột da ở phần sau, chìa khóa để hiểu cách thức hoạt động của phương pháp này.

Biến đổi bộ xương

[3] Hoạt ảnh thông qua biến đổi lưới, nghĩa là, di chuyển từng đỉnh của lưới riêng biệt và lưu giữ vị trí mới của nó hoặc bằng cách mô tả sự thay đổi của nó thông qua các chức năng đặc biệt. Trong phần mềm tạo mô hình 3D như Maya, bạn có thể tạo các hình dạng này bằng cách sử dụng một thứ gọi là Blend Shapes . Kiểm tra hướng dẫn này: Cách tạo hoạt ảnh cho một nhân vật bằng Blend Shapes . Tại Metail, chúng tôi biến hình đại diện của mình dựa trên một mô hình tham số mà chúng tôi đào tạo từ cơ sở dữ liệu gồm hàng nghìn bức ảnh quét người thực, vì vậy hình thái của chúng tôi được mô tả dưới dạng eigenvectors.

Biến đổi nhân vật

Một tệp hoạt ảnh chỉ đơn giản là lưu trữ các biến đổi khác nhau cho một vài khung hình chính . Bạn có thể coi keyframe như một bức ảnh chụp nhanh về thời gian. Ví dụ, tại thời điểm 0, tôi đang đứng và tại thời điểm 1 giây, tôi bắt đầu quỳ xuống. Hai giây sau, tôi có thể hoàn toàn ngồi xuống. Khi hoạt ảnh phát, chúng ta chỉ cần nội suy các phép biến đổi để tìm ra vị trí của mọi thứ giữa các khung hình chính đó.

Trong bài đăng trên blog này, chúng tôi sẽ tập trung vào hoạt hình xương. Để làm được điều đó, chúng tôi sẽ xem xét khái niệm về phép biến đổi không gian, và sau đó giới thiệu skinning, công cụ chính để biến đổi một lưới có khung.

Biến đổi không gian

Trong một bài đăng trên blog khác , chúng tôi đã xem xét ngắn gọn cách kết xuất hoạt động và đăng một con số để tóm tắt tất cả các biến đổi không gian được áp dụng cho một đối tượng 3D trước khi nó được hiển thị trên màn hình. Đây là hình tương tự, với một bước bổ sung để tính toán các phép biến đổi khớp trong cái mà chúng ta có thể gọi là không gian khớp :

Biến đổi không gian và khớp

Một phép biến đổi trong 3D thường được biểu diễn bằng một ma trận 4 × 4, chỉ chứa tỷ lệ, xoay và dịch, cho đến khi đạt đến không gian clip . Không gian clip đại diện cho những gì máy ảnh nhìn thấy, vì vậy ma trận biến đổi của nó cũng chứa một phép biến đổi phối cảnh. Kết quả được chuẩn hóa thành một khối đơn vị. Nếu bạn chuyển đổi trục ngang [x] và trục dọc [y] của khối lập phương đơn vị đó thành tọa độ pixel, bạn sẽ hạ cánh trong không gian màn hình , về cơ bản đó là những gì bạn thấy trên màn hình.

Ví dụ, chúng ta hãy tưởng tượng một họa sĩ hoạt hình đang làm việc cho bộ phim Antman tiếp theo. Bạn có thể nghĩ về người hoạt họa như một người múa rối:

  • di chuyển các chi của Antman để đưa anh ta vào một tư thế nhất định, trong không gian chung;
  • lặp lại quá trình đó cho một số khung hình chính của hoạt ảnh, có thể là đi bộ hoặc bay;
  • nếu Antman bây giờ cần trở nên nhỏ bé, chúng ta chỉ có thể áp dụng một phép chuyển đổi tỷ lệ trong không gian mô hình để giảm kích thước của nhân vật hoạt hình;
  • để cuối cùng đặt Antman lên trên bánh nướng nhỏ trong một cảnh bếp, trong không gian thế giới.

Tạo bộ xương

Rigging

Bộ xương thường được tạo ra bởi một nghệ sĩ trong một quá trình được gọi là gian lận . Một giàn khoan chỉ là một loạt các khớp nối được sử dụng để mô tả hoạt ảnh. Bạn có thể coi khớp là một điểm neo đặt xung quanh điểm uốn hoặc xoắn trên cơ thể, ví dụ như khuỷu tay. Bởi vì hệ thống mô tả một hệ thống phân cấp của các khớp thông qua các kết nối của chúng, nên một khớp kế thừa các biến đổi của cha mẹ chúng. Vì vậy, nếu bạn vặn đùi sang phải, bàn chân của bạn sẽ hướng sang phải.

Hình minh họa về sự gian lận của lưới

Một giàn hoặc khung xương rất cơ bản chỉ chứa các vị trí khớp và hệ thống phân cấp của chúng, nhưng bạn cũng có thể có định hướng, điều này có thể hữu ích để thể hiện sự xoắn của các chi dọc theo trục chính xác. Thông thường, chúng tôi sử dụng thuật ngữ xương thay thế cho thuật ngữ khớp . Đó là bởi vì, như chúng ta sẽ thấy trong phần lột da, chúng ta sẽ chỉ cần một ma trận duy nhất cho mỗi khớp hoặc xương để tính toán vị trí đỉnh cuối cùng. Nhưng trong phần mềm mô hình 3D, thông thường xương không chỉ là một ma trận biến đổi, mà là cấu trúc kết nối hai khớp. Vì vậy, nếu bạn có một khớp ở vai và một khớp khác ở khuỷu tay, thì xương vai là phần kết nối vai với khuỷu tay. Do đó, bạn có thể mô tả xương về vị trí bắt đầu, chiều dài và khả năng xoay.

Một giàn khoan tốt là gì?

Không có một cách duy nhất để cố định một đối tượng. Hình minh họa dưới đây cho thấy các giàn có thể có cho một quả cầu.

Giàn của một quả cầu

Đây là tất cả các giàn "tốt", tùy thuộc vào loại hoạt ảnh mà chúng tôi đang nhắm mục tiêu. Ví dụ, nếu chúng ta muốn tạo hoạt ảnh của một blog đang di chuyển về phía trước, có thể sử dụng bất kỳ thiết bị nào trong hai giàn đầu tiên. Cái thứ hai tách cơ thể theo trái và phải, vì vậy, đốm màu đầu tiên có thể di chuyển một bên của cơ thể và sau đó là bên kia. Giàn thứ ba trông giống như bộ xương của một người. Điều đó có nghĩa là chúng tôi có thể tạo hoạt ảnh của một người được nhắm mục tiêu đến hình cầu đó. Nếu chúng ta có một hoạt ảnh đi bộ, nó sẽ giống như một người đang ở bên trong đốm màu và cố gắng tiến về phía trước.

Chú ý rằng các khớp không cần phải ở bên trong cơ thể. Ví dụ cuối cùng ở trên có thể được sử dụng để mô hình một đốm màu chuyển động trông giống như một con sao biển. Các khớp có thể là những suy nghĩ như những sợi dây kéo lưới từ bên ngoài.

Tranh cân

Cho đến thời điểm này, không có gì sẽ di chuyển trên màn hình. Hệ thống này được sử dụng để xác định khái niệm về cách chúng ta muốn mọi thứ được tạo hình hoặc hoạt hình sau này. Nhưng để đối tượng thực sự thay đổi, nghệ sĩ cần vẽ mỗi đỉnh của lưới với một trọng lượng . Trọng lượng là một số từ 0 đến 1 liên quan đến một khớp cụ thể. Bạn có thể có nhiều hơn 1 trọng số cho mỗi đỉnh và tổng của tất cả chúng phải bằng một. Những gì mỗi trọng lượng đang nói là bao nhiêu mỗi khớp đóng góp hoặc ảnh hưởng đến mỗi đỉnh. Đối với ví dụ về hình cầu trước, chúng ta có thể vẽ hình cầu theo nhiều cách khác nhau:

Bức tranh khối lượng của một quả cầu

Trong 2 ví dụ đầu tiên, nếu bạn kéo khớp liên kết với vùng màu đỏ, chỉ vùng màu đỏ đó sẽ di chuyển. Nếu bạn kéo cả hai khớp theo hướng ngược nhau, quả cầu của bạn sẽ căng ra như bột nhào.

Sơn trọng lượng thường được biểu diễn dưới dạng bản đồ nhiệt trong phần mềm mô hình 3D. Khi bạn chọn một khớp ở chế độ sơn trọng lượng, bạn sẽ thấy màu đỏ các đỉnh có 1 là trọng lượng cho khớp đó và màu xanh lam nơi có trọng lượng bằng 0. Dưới đây, bạn có thể xem ví dụ về cánh tay của một trong các hình đại diện của chúng tôi:

Trọng lượng đỉnh của vai

Trong ví dụ, tôi đã chọn khớp vai. Vì toàn bộ màu đỏ, cánh tay trên chỉ bị ảnh hưởng bởi những thay đổi đối với khớp này. Tuy nhiên, nách xuất hiện màu xanh do không chỉ bị ảnh hưởng bởi sự thay đổi của khớp vai mà còn do sự biến đổi của khớp cổ. Lưu ý rằng nếu tôi uốn cong vai, cẳng tay cũng sẽ di chuyển, mặc dù nó có màu xanh lam [trọng lượng bằng 0]. Điều này là do khớp khuỷu tay thừa hưởng các biến đổi từ khớp vai, như đã giải thích trước đó. Các đỉnh của cẳng tay chỉ cần liên kết với khớp khuỷu tay [xương cẳng tay].

Lột da

Pha trộn tuyến tính

Skinning, còn được gọi là pha trộn đỉnh, bao bọc, hoặc biến dạng khung xương-không gian con, là quá trình biến đổi các vị trí đỉnh lưới theo giàn mà chúng ta đã tạo trước đó. Phương trình lột da phổ biến nhất là sự pha trộn tuyến tính được mô tả dưới đây:

Phương trình lột da

Mỗi đỉnh của lưới được chuyển thành không gian chung, thông qua ma trận liên kết. Sau đó, bạn áp dụng phép biến đổi khớp cho thời điểm cụ thể đó. Điều đó sẽ chuyển đổi trở lại không gian mô hình. Bạn áp dụng trọng lượng cho khớp đó và tính tổng hoạt động tương tự cho tất cả các khớp ảnh hưởng đến đỉnh đã cho đó. [Tôi đang sử dụng cùng một danh pháp như trong Kết xuất thời gian thực [1]]

Đây là một ví dụ về uốn và xoắn của cánh tay mà tôi đã trình bày trước đó:

Bẻ cong và vặn cánh tay

Tạo tác lột da

Phương trình pha trộn tuyến tính không quan tâm đến việc bảo toàn thể tích. Nó chỉ đơn giản là nội suy các vị trí đỉnh mới dựa trên một tổng có trọng số. Điều đó có nghĩa là nếu bạn uốn cong vai quá nhiều, vùng gần khớp có thể bị phồng lên :

Phồng tạo tác

Tương tự, nếu bạn vặn vai quá nhiều, bạn sẽ tạo ra thứ mà nó thường được gọi là hiện vật bọc kẹo :

Tạo tác kẹo bọc

Có những lựa chọn thay thế cho sự pha trộn đỉnh tuyến tính để giải quyết những vấn đề đó. Kiểm tra khóa học SIGGRAPH 2014, Skinning: Biến dạng hình dạng thời gian thực . Một trong những lựa chọn thay thế là sử dụng quaternion kép. Đây là minh họa từ khóa học SIGGRAPH đó:

Lột da bằng cách sử dụng quaternion kép

Sửa chữa đồ tạo tác bằng các khớp nối phụ

Một cách tiếp cận phổ biến khác để giải quyết các hiện vật lột da là bằng cách thêm các khớp bổ sung, vì vậy chúng tôi có thể chia các vòng quay giữa các khớp. Ví dụ, nếu chúng ta muốn xoay cẳng tay 180 độ, chúng ta có thể thêm một khớp nối giữa khuỷu tay và cổ tay, và tách phần xoắn giữa hai khớp. Khớp khuỷu tay có thể xoay 90 độ, và giữa cẳng tay có thể xoay 90 độ nữa, vì vậy khi chạm tới bàn tay, chúng ta đã vặn 180 độ rồi. Xem hình minh họa bên dưới:

Xoắn cẳng tay với khớp phụ

Bạn phải cẩn thận với những khớp phụ này. Cái mà tôi đã mô tả ở trên chỉ được sử dụng để vặn. Chúng ta có thể uốn cong cánh tay của mình từ khuỷu tay, nhưng không phải từ giữa cẳng tay. Nếu bạn sử dụng chúng để uốn cong, bạn có thể tạo ra những cánh tay trông giống như cánh tay cao su. Xem bên dưới:

Uốn khớp chỉ xoắn

Tài nguyên

Ngoài phần mềm tạo mô hình 3D như Maya [của Autodesk] hoặc Blender [Mã nguồn mở], tôi khuyên bạn nên xem qua mixamo của Adobe - đó là một dịch vụ web cho phép bạn tải lên một lưới [hình người], sau đó nó sẽ tự động thiết bị cho bạn . Có một số bộ xương để bạn lựa chọn và phần mềm sẽ tự động tách lưới cho bạn [tức là chỉ định trọng lượng phù hợp]. Bạn cũng có thể thử nhiều hoạt ảnh được tham số hóa từ cùng một trang web.

ảnh chụp màn hình mixamo

Phương trình lột da khá đơn giản nên không phức tạp khi bạn tự thực hiện. Tôi đã tạo một Trình xem mô hình dựa trên WebGL cho phép bạn xem các khung hình chính trong hoạt ảnh. Tôi đã tiếp tục phát triển nó ở đây tại Metail để chúng tôi có thể làm những việc như hình dung tất cả các trọng lượng lột da đồng thời, thay vì sử dụng bản đồ nhiệt cho mỗi khớp. Đầu ra trông như thế này,

Tất cả các trọng lượng lột da cùng một lúc

Điều này rất quan trọng đối với chúng tôi để chúng tôi có thể thấy ranh giới của các vùng da khác nhau kết thúc ở đâu đối với bất kỳ hình dạng cơ thể tùy ý nào mà chúng tôi tạo ra. Chúng tôi cũng có thể sử dụng nó để so sánh trực quan các giải pháp lột da tự động khác với của chúng tôi. Bạn có thể xem bên dưới so sánh trực quan giải pháp gian lận tự động Mixamo của Adobe [trái] với kết quả của chúng tôi [phải], sử dụng cùng một bản quét 3D làm đầu vào:

Hình dung về trọng lượng giàn khoan và lột da, so sánh kết quả Mixamo [trái] với của chúng tôi [phải]

Tóm lược

Hoạt ảnh khung xương chỉ là một bước chuyển đổi không gian bổ sung trong quy trình kết xuất của bạn. Về mặt toán học, nó chỉ là nhiều phép nhân ma trận hơn để di chuyển từ không gian này sang không gian khác. Trong hoạt ảnh, các ma trận này sẽ thay đổi theo thời gian. Tuy nhiên, việc tạo ra các hình ảnh động tốt bao gồm một quá trình nghệ thuật không nhất thiết phải tương ứng với giải phẫu người thật. Ví dụ: để ngăn chặn những thứ như hiện vật bọc kẹo, chúng tôi có thể tạo thêm các khớp nối trong khung xương của chúng tôi để phân phối xoắn.

Tại Metail, chúng tôi tạo hình đại diện 3D với các hình dạng cơ thể tùy ý, được biến đổi dựa trên mô hình toán học sử dụng số đo băng của người dùng làm đầu vào. Hình đại diện kết quả có một bộ xương có thể được tạo ra. Hình đại diện được tạo ra bằng cách sử dụng phương pháp lột da được thảo luận ở đây.

Người giới thiệu

[1] Tomas Akenine-Möller, Eric Haines, Naty Hoffman. Kết xuất thời gian thực, phiên bản thứ ba . AK Peters, 2008.

Được xuất bản lần đầu tại //tech.metail.com vào ngày 17 tháng 6 năm 2019.

Video liên quan

Chủ Đề