Chương 2: KỸ THUẬT ĐIỀU KHIỂN TƯƠNG TÁC-CONTROL NHÂN VẬT
2.3. Kỹ thuật rigging xương cho điều khiển nhân vật tương tác-Control
23
Rigging còn được gọi là hoạt hình khung xương, một kỹ thuật để xác định phạm vi hành động và cử chỉ của nhân vật mô hình 3D. Các nghệ nhân làm rigging thực hiện kỹ thuật này bằng cách sử dụng một loạt các xương liên kết với nhau. Điểm quan trọng nhất bạn nên xem xét là rigging không phải là một tính năng duy nhất chỉ dành cho mô hình người. Dưới đây là hình ảnh mô tả công đoạn rigging mô hình nhân vật [7,8,13].
Hình 2.10. Rigging xương nhân vật
Để xây dựng rigging xương cho nhân vật chuyển động 3D, thực hiện quy trình 4 bước:
Bước 1: Đầu tiên được gọi là mesh (mô hình lưới nhân vật). Bắt đầu xây dựng một loạt khung xương đại diện cho khung xương của nhân vật (hình học đa giác). Sau đó, tạo và thiết lập các xương và khớp thể hiện như một phần ứng của mô hình. Sau đó, lớp da nối với xương.
Bước 2: Tạo bộ điều khiển cho nhân vật. Để kiểm soát hiệu ứng của mọi phần chuyển động của mô hình và giúp hiểu chức năng của bộ điều khiển, chúng đại diện cho các hình dạng, cấu trúc hình học khác nhau. Một số hình dạng này được xác định:
Hình cầu sử dụng phục vụ cho việc quay và dịch mô hình. Sử dụng nó cho phần trung tâm, tay và chân của các mô hình. Khối lập phương dùng để dịch các điều khiển. Hình cầu phục vụ cho chuyển động quay. Nó được sử dụng hầu hết thời gian cho cổ, xương chậu và thân mình.
Hình thang phục vụ cho các khớp. Nó được sử dụng hầu hết thời gian cho đầu gối và khuỷu tay.
Sau khi đã hoàn thành quá trình thiết kế khung xương, nhân vật rigger sẽ thêm các kiểu chuyển động và cử chỉ khuôn mặt vào mô hình. Mối quan hệ giữa các xương trong mọi chuyển động đều có thứ bậc, giống như mối quan hệ cha
24
mẹ – con cái. Nếu muốn di chuyển vai của nhân vật mô hình 3D, thì bàn tay và xương cẳng tay của nhân vật đó cũng di chuyển.
Bước 3: Thực hiện các khớp nối khác với khớp mà chúng ta đã đề cập ở bước 1). Các khớp nối xác định giới hạn của mô hình trong chuyển động, và một điểm quan trọng khác trong bước này là weight painting. Sự tương tác của mọi phần của mô hình 3D phụ thuộc vào quy mô trọng lượng. Trọng lượng của một bộ phận ảnh hưởng đến xương trong chuyển động.
Các chương trình phần mềm đều có chế độ weight painting tự động như Blender.
Chúng được thiết kế dựa trên lý thuyết này rằng các nhân vật đều tuân theo cùng một mẫu giới hạn của bộ xương. Mặc dù, để quá trình rigging hoàn hảo, cần phải điều chỉnh trọng lượng của từng xương.
Bước 4: Chuyển tiếp và Chuyển động học nghịch đảo. Như đã nói ở trên, mối quan hệ giữa các xương có thứ bậc. Có nghĩa là hành động ở các phần trên của một mô hình cũng ảnh hưởng đến các vùng dưới, được gọi là chuyển tiếp động học. Mặt khác, nếu các phần dưới được chuyển động độc lập với các phần trên, nó được gọi là chuyển động nghịch đảo. Quá trình tạo hoạt ảnh có thể đơn giản hơn bằng Thuật toán điều khiển ngược IK (Inverse kinematics) [24,25,26,27,28].
Hình 2.11. Tạo khung xương nhân vật
Dưới đây là một số những công đoạn chi tiết để thực hiện rigging xương cho mô hình nhân vật 3D ứng với các bộ phận, từng phần trên cơ sở con người ảo. Cụ thể:
Công đoạn dựng xương:
Khung xương là hệ thống phân cấp các khớp xương cơ bản cho phép diễn hoạt các đối tượng. Mỗi khung xương đều có các khớp cha và khớp con và một khớp gốc. Các khớp cha là các khớp gồm các khớp bên dưới chúng (khớp con) trong hệ thống phân cấp của bộ xương. Như khớp khuỷu tay là cha của khớp cổ
25
tay và đồng thời cũng là con của khớp vai. Khớp gốc là khớp đầu tiên hoặc khớp trên cùng trong hệ thống phân cấp của khung xương.
Cách tạo xương:
Cấu tạo của xương: Một khung xương cơ bản bao gồm 2 thành phần:
Khớp (Joint): Là nơi hai hoặc nhiều xương liên kết với nhau. Khi một xương được gắn với một khớp, chuyển động của xương sẽ được điều khiển bởi chuyển động quay và di chuyển của khớp đó.
Xương (Bone): Là phần cứng nối tiếp khớp, được điều khiển bởi sự di chuyển và quay của khớp.
Đầu gối là một khớp (khớp gối), còn xương ống chân là xương.
Hình 2.12. Cấu tạo khung xương
Giữa các khớp trong một hệ thống xương có mối liên kết với nhau, mối liên kết đó được gọi là liên kết cha – con (hay quan hệ cha - con), liên kết này cho phép điều khiển hệ thống xương bằng cách di chuyển hoặc xoay khớp xương cha hoặc các khớp xương con.
Khi khớp xương cha di chuyển hoặc xoay thì các khớp xương con sẽ di chuyển hoặc xoay theo. Trong hình 2.12, khớp Joint 1 là cha của khớp Joint 2 và Joint 2 là cha của khớp Joint 3. Khi Joint 1 di chuyển hoặc xoay thì các khớp và xương của Joint 2 và Joint 3 đều di chuyển hoặc xoay theo. Khớp Joint 3 chỉ có thể xoay xung quanh Joint 2 và Joint 2 xoay xung quanh Joint 1.
26
Sử dụng phần mềm Maya để tạo xương:
Chuyển Menu Set thành Ringging
Hình 2.13. Các tuỳ chọn của menu set, Skeleton
Để thay đổi kích thước của khớp: Vào Window- Settings/Preference- Preference- Kinematics và thay đổi thông số Joint Size. Hoặc vào Display- Animation- Joint Size.
Để thiết lập quan hệ cha con giữa các xương có 2 cách:
Tạo xương cha, sau đó đến các xương con tiếp theo
Với 2 khớp xương độc lập, chọn xương con sau đó nhấn giữ phím Shift sau đó chọn xương cha, rồi nhấn phím P trên bàn phím.
Xây dựng khung xương cho nhân vật:
Hình 2.14. Xây dựng khung xương cho nhân vật
Khung xương được cấu thành từ nhiều nút liên kết và thường bắt đầu từ nút gốc. Đối với khung xương của cơ thể người, nút gốc này thường được đặt là nút khớp hông. Xây dựng khung khương cho nhân vật là quá trình đặt và định hướng các khớp vào mô hình nhân vật để tạo ra một hệ thống xương có thể sử dụng để điều chỉnh, biến dạng mô hình nhân vật phục vụ cho quá trình tạo chuyển động cho nhân vật hoạt hình.
27
Tuỳ thuộc vào mỗi mô hình nhân vật, cần đặt các khớp xương ở vị trí gần đúng với vị trí giải phẫu khớp xương của nhân vật trong thực tế. Nếu tạo khung xương cho mô hình nhân vật người hai chân, cần đặt các khớp ở tất cả các điểm chính của khớp trong mô hình của nó (ở các vị trí: vai, đầu gối, khuỷu tay, cột sống, ...). Hãy bắt đầu bằng việc xây dựng khung xương cho nhân vật người dưới đây.
Tạo xương hông cho nhân vật:
Trước tiên, cần đặt mô hình nhân vật ở giữa khung hình, sau đó bắt đầu công việc tạo xương và khớp cho hai chân. Để thực hiện chính xác công việc này, cần phải hiểu được hệ thống trật tự "Cha-con" giữa các khớp xương và tạo theo đúng trật tự này. Đối với xương chân, bắt đầu từ khớp hông, rồi đến khớp gối và tiếp tục cho đến hết chân.
Để bắt đầu quá trình tạo các khung xương hông, thực hiện các bước sau:
Chuyển sang khung hình bên (Side View) và vào Skeleton chọn Create Joints.
Bắt đầu click chuột trái (Click giữ chuột không nhả chuột ra) và di chuyển chuột ở hông, và sau đó click vào vị trí đầu gối, và tiếp tục di chuyển đến vị trí mong muốn.
Tiếp tục tạo tất cả 5 khớp theo như hình 4-5 dưới đây. Lưu ý khớp gối cần hơi gập lại một chút vì sẽ cần sử dụng tư thế đó cho chuyển động của chân sau này. Đổi tên các khớp từ trên xuống dưới tương ứng với từng vị trí của xương:
X_Hong_T; X_Dau-goi_T; X_Mat_ca_T; X_Cau_T; X_Ngon_T như Hình 4-5 bên dưới.
Hình 2.15. Tạo các khớp xương của chân T
Khớp hông giờ sẽ là xương cha của toàn bộ hệ thống xương này. Nếu di chuyển khớp hông thì toàn bộ xương và khớp chân di chuyển theo. Chuyển sang khung hình Front View. Chọn khớp hông và di chuyển theo trục X đến giữa chân
28
trái, các khớp khác cũng di chuyển theo. Sau đó, tiếp tục đưa từng khớp vào đúng vị trí của khớp đó trên mô hình:
Hình 2.16. Điều chỉnh vị trí của xương
Khi hoàn chỉnh xong xương chân trái, chọn khớp X_Hong_T (đây là điểm xương cha của chân trái) Vào Skeleton- Mirror Joints (Vào hình vuông tùy chọn bên tay phải) chọn trục YZ tạo một bản sao của xương chân phải đối xứng qua trục, điều chỉnh tên của xương từ "_T" thành "_P" . Kết quả sẽ được xương chân phải:
Hình 2.17. Thao tác với hộp thoại Mirror Joint Options và Nhân bản xương chân trái thành phải
Tạo xương cột sống cho nhân vật:
Chuyển giao diện làm việc sang khung hình Side View và làm tương tự đối với xương chân, tạo ra 8 khớp cho cột sống: Khớp thứ nhất bắt đầu tại vị trí cao hơn khớp hông một chút và kết thúc khớp cuối ở đỉnh đầu.
Hình 2.18. Tạo xương cột sống
29
Đổi tên cho các vị trí xương từ dưới lên: X_Goc; X_Eo; X_Lung; X_Nguc;
X_Uc; X_Co_duoi; X_Co_tren; X_Dinh_dau.
Hiện tại bộ xương đang bị tách rời 3 phần, tiếp theo sẽ nối chúng lại với nhau. Điểm gốc của toàn bộ hệ thống xương chính là khớp xương dưới cùng của cột sống, vì thế nó được đặt tên là X_Goc.
Hình 2.19. Xương hông và xương gốc; Nối xương hông vào xương gốc Tạo xương cho cánh tay và bàn tay:
Cách thực hiện tương tự như tạo xương chân.
Hình 2.20. Xương cánh tay nhìn từ mặt bên (front view); Xương cánh tay từ khung nhìn trên (Top View)
Đổi tên các khớp thành: X_Quai_xanh_T; X_Vai_T; X_Cui_tro T;
X_Xoay_tay_T; X_Co_tay_T; X_Ban_tay T;
Tạo xương bàn tay:
Cách thực hiện tương tự như trên, sau khi tạo xong các xương nối các khớp lại theo nguyên lý Cha - con (Parent).
Hình 2.21. Bộ xương bàn tay
30
Đổi tên cho các khớp theo thứ tự các ngón tay (X_Ngon_cai_T;
X_Ngon_cai1_T; X_Ngon_cai2_T; X_Ngon_cai3_T…) cho các khớp của từng ngón tay.
Chọn khớp X_Quai_xanh_T đây là khớp gốc của cánh tay vào Skeleton- Mirror Joint và copy nhân bản xương tay trái thành xương tay phải tương tự xương chân trên. Chọn khớp khớp X_Quai_xanh_T phải nhấn giữ phím shift chọn thêm khớp X_uc rồi nhấn p để chúng nối lại với nhau. (Lúc này X_Uc đã trở thành khớp cha của X_Quai_xanh_T) tương tự với X_Quai_xanh_P.
Hình 2.22. Bộ khớp xương