Da [Skin]¶
Các giàn điều khiển này triển khai một hệ thống linh hoạt để dàn dựng bề mặt da bằng cách sử dụng nhiều dây chuyền xương B-Bone tương tác với nhau. Hệ thống này được phát triển làm nền tảng cho một giàn điều khiển khuôn mặt Rigify mô-đun mới. Dưới đây là những ý tưởng chính của hệ thống:
- Dây Chuyền Xương-Dẻo Tổng Quát [Generic B-Bone Chain]
Một trong những ý tưởng cốt lõi của hệ thống là hầu hết quá trình biến dạng phải được thực hiện thông qua một dây chuyền giàn điều khiển B-Bone tiêu chuẩn và có hiệu lực mạnh mẽ. Các dây chuyền này hỗ trợ các hành xử cao cấp, thông qua việc tương tác với các thành phần khác của giàn điều khiển. Việc làm này trái ngược với việc sử dụng nhiều giàn điều khiển phạm vi đặc thù, và mỗi giàn điều khiển lại tạo ra dây chuyền biến dạng riêng của mình.
Bản triển khai này cung cấp hai phiên bản của giàn điều khiển dây chuyền: skin.basic_chain (da.dây chuyền_cơ bản) nhằm chỉ gắn các B-Bones vào các điều khiển, mà không cho thêm bất kỳ hiệu ứng tự động hóa nào vào chính bản thân các điều khiển đó. Ngoài ra, giàn điều khiển skin.stretchy_chain (da.dây chuyền_kéo giãn) còn thực hiện việc nội suy sự chuyển động của các đầu cuối (và điều khiển giữa nếu cần) sang các điều khiển khác trong dây chuyền nữa.
- Tự Động Hợp Nhất Điều Khiển [Automatic Control Merging]
Phần biến dạng của hệ thống bao gồm các dây chuyền của một hoặc nhiều B-Bones kết nối các điểm điều khiển (nút). Mỗi khi các điều khiển của hai dây chuyền chồng gối lên nhau hoàn toàn, thì chúng sẽ tự động được hợp nhất lại làm một.
Đối với mỗi điều khiển được hợp nhất làm một thì một trong các dây chuyền sẽ được lựa chọn làm dây chuyền chủ, dựa trên các yếu tố thuật toán phỏng đoán như độ sâu của phụ huynh so với gốc, sự hiện diện của các dấu hiệu đối xứng .T/.B, .L/.R, và thậm chí dùng cả thứ tự bảng chữ cái như phương án cuối cùng vậy. Chúng ta có thể vượt quyền thiết lập này bằng một cài đặt ưu tiên rõ ràng, trong trường hợp hệ thống phỏng đoán sai.
Chủ sở hữu và các đối tượng phụ huynh của nó sẽ xác định các thiết lập tự động bổ sung để áp dụng cho điều khiển. Một trường hợp đặc biệt là nếu một đối tượng điều khiển được hợp nhất với các đối tượng đối xứng .T/.B hoặc .L/.R của nó (xác định hoàn toàn dựa trên tên gọi) thì các thiết lập tự động từ toàn bộ các đối tượng anh em đối xứng của chủ sở hữu sẽ được tính trung bình.
- Các Điều Khiển Phụ Huynh [Parent Controllers]
Thay vì chỉ đơn thuần sử dụng xương giàn điều khiển siêu phụ huynh (ORG) làm đối tượng phụ huynh cho các điều khiển và cơ chế dây chuyền, hệ thống mới này sẽ bao gồm một giao diện dành cho các giàn điều khiển phụ huynh. Giao diện này cung cấp rõ ràng các xương phụ huynh và sinh tạo ra các cơ chế tự động hóa điều khiển phụ huynh cho các điều khiển dây chuyền con cái của chúng thông qua phương pháp kế thừa từ cơ sở phù hợp và viết đè các phương thức.
Việc làm này cho phép triển khai các giàn điều khiển có khả năng tích hợp và quản lý các dây chuyền con cái một cách thông minh, nhằm bổ sung các tính năng tự động hóa chuyên biệt cho các khu vực cụ thể. Hệ thống da cơ bản bao gồm một ví dụ đơn giản là giàn điều khiển skin.transform.basic (da.biến hóa.cơ bản), có chức năng dịch chuyển các điểm điều khiển con cái theo biến hóa của xương điều khiển.
- Dàn Dựng Tùy Chỉnh [Custom Rigging]
Cuối cùng, hệ thống mới cũng cung cấp những phương thức tích hợp với các quy trình tự động hóa tùy chỉnh được gắn trực tiếp vào giàn điều khiển siêu thông qua hai thành phần giàn điều khiển bổ sung.
Giàn điều khiển skin.anchor (da.neo chốt) tạo ra một điểm điều khiển duy nhất với sự kế thừa các ràng buộc và những cái khác, tương tự như giàn basic.super_copy (cơ bản.sao_chép_siêu). Bên cạnh đó, nó còn tích hợp vào hệ thống da dưới dạng một dây chuyền, có độ dài bằng 0 với mức ưu tiên cao nhất. Việc làm này cho phép vượt quyền tính cách hành xử thông thường, bằng cách cung cấp một điểm điều khiển, do người dùng toàn quyền khống chế, và là cái mà các dây chuyền khác sẽ tự động bám vào.
Ngược lại, giàn điều khiển skin.glue (da.dính) sẽ tự động gắn vào bộ điều khiển được sinh tạo tại vị trí của nó (nếu không có bộ điều khiển nào thì sẽ xảy ra lỗi). Nó có thể được sử dụng để đọc vị trí của bộ điều khiển, từ hệ thống dàn dựng tùy chỉnh trong giàn điều khiển siêu, hoặc để chèn các ràng buộc vào xương điều khiển. Ngoài ra, nó còn có thể phát hiện bộ điều khiển ở phần đuôi của xương dính và sử dụng bộ điều khiển đó làm mục tiêu cho các ràng buộc, nhờ đó sao chép các biến hóa giữa các bộ điều khiển.
skin.basic_chain [da.dây chuyền_cơ bản]¶
Đây là giàn điều khiển dây chuyền cơ bản, giúp kết nối các bộ điều khiển với các B-Bones, song không bổ sung bất kỳ tính năng tự động hóa nào cho chính bản thân các bộ điều khiển đó.
Khi các bộ điều khiển chỉ được di chuyển không thôi, thì các dây chuyền sẽ hoạt động như khi sử dụng các tay cầm tự động tiêu chuẩn; song, hành động xoay chiều, và (nếu được bật), hành động thay đổi tỷ lệ các bộ điều khiển, sẽ điều chỉnh kết quả.
- Số Phân Đoạn Xương-Dẻo [B-Bone Segments]
Chỉ định số phân đoạn cần sử dụng. Nếu đặt giá trị này là 1 thì toàn bộ các tính năng cao cấp sẽ bị vô hiệu hóa, và các điểm chỉ được cầu nối với nhau bằng xương Kéo Giãn Tới mà thôi.
- Hội Nhập Xoay Chiều và Tỷ Lệ của Phụ Huynh [Merge Parent Rotation and Scale]
Tính năng này có thể được bật, hòng cho phép dây chuyền phản hồi với các thay đổi về xoay chiều và đổi tỷ lệ, do các đối tượng phụ huynh của các điều khiển thuộc các dây chuyền khác gây ra, mà điều khiển của dây chuyền này đã được hợp nhất vào.
- Sử Dụng Tỷ Lệ của Tay Cầm [Use Handle Scale]
Cho phép sử dụng thang điều khiển để điều chỉnh tỷ lệ và/hoặc hiệu ứng chuyển động chậm rãi, mượt mà của B-Bone.
- Kết Nối với Đối Xứng [Connect With Mirror]
Xác định xem các đầu của dây chuyền có nên được kết nối mượt mà khi hợp nhất các điều khiển với các đối tượng đối xứng tương ứng của chúng (.T/.B, .L/.R) hay không. Tùy chọn có liên quan phải được bật trên cả hai dây chuyền thì cái này mới hoạt động.
- Kết Nối các Đầu Xứng Khớp [Connect Matching Ends]
Chỉ định xem đầu dây chuyền có nên kết nối với đầu đối diện của dây chuyền khác hay không, khi hợp nhất các điều khiển. Do đó tạo thành một dây chuyền mịn màng liên tục theo cùng một hướng. Các tùy chọn liên quan phải được kích hoạt trên cả hai dây chuyền.
- Làm Sắc Nhọn Góc [Sharpen Corner]
Xác định xem hệ thống có nên tạo ra một cơ chế để hình thành một góc nhọn tại đầu nối tương ứng hay không, tùy thuộc vào góc được tạo ra bởi các điểm điều khiển liền kề. Khi góc điều khiển trở nên nhọn hơn giá trị đã chỉ định thì độ mềm mại, chậm rãi, sẽ bắt đầu giảm từ 1 xuống 0.
- Định Hướng (Orientation)
Quy định rằng các điều khiển phải được định hướng theo hướng của xương đã lựa chọn, thay vì được căn chỉnh theo dây chuyền xương.
- Sao Chép Sang cái được Chọn (Copy To Selected)
Sao chép vào các giàn điều khiển đã lựa chọn có cùng tùy chọn. Nhờ đó, bạn có thể lựa chọn các xương một cách tùy ý, mà không cần ấn định các giá trị không cần thiết.
- Quyền Ưu Tiên của Chuỗi [Chain Priority]
Cho phép vượt quyền được sử dụng để lựa chọn chủ sở hữu chính khi hợp nhất các điều khiển.
skin.stretchy_chain [da.dây chuyền_kéo giãn]¶
Giàn điều khiển này mở rộng dây chuyền cơ bản với tính năng tự động hóa giúp lan truyền chuyển động của đầu và đuôi, cũng như bộ điều khiển ở giữa (nếu có) tới các bộ điều khiển khác. Việc làm này dẫn đến việc kéo giãn toàn bộ dây chuyền khi di chuyển một trong các đầu, thay vì chỉ các B-Bones liền kề mà thôi.
- Vị Trí của Điều Khiển Giữa [Middle Control Position]
Xác định vị trí của điều khiển giữa nội trong dây chuyền; tắt đi khi là 0.
- Suy Giảm Dần [Falloff]
Xác định các đường cong suy giảm dần ảnh hưởng của các điều khiển đầu, giữa và cuối. Giá trị 0 cho kết quả suy giảm tuyến tính, giá trị tăng dần sẽ mở rộng phạm vi ảnh hưởng, còn giá trị -10 sẽ vô hiệu hóa hoàn toàn sự lan truyền ảnh hưởng từ điều khiển đó.
- Suy Giảm Dần Hình Cầu [Spherical Falloff]
Nhấn các nút bật/tắt để thay đổi hình dạng của đường cong suy giảm dần, từ một đường cong lũy thừa, ở mức suy giảm dần 1 tạo ra hình parabol \(1 - x^{2^f}\), đến một đường cong tạo ra hình tròn \((1 - x^{2^f})^{2^{-f}}\).
- Suy Giảm Dần Dọc theo Đường Cong Dây Chuyền [Falloff Along Chain Curve]
Tính toán đường cong suy giảm dọc theo chiều dài của dây chuyền, thay vì phóng chiếu lên đường thẳng nối điểm đầu và điểm cuối của dây chuyền.
- Lan Truyền Độ Xoắn [Propagate Twist]
Xác định xem độ xoắn của dây chuyền có nên được lan truyền đến các điểm điều khiển nằm giữa các điểm điều khiển chính hay không.
- Lan Truyền Tỷ Lệ [Propagate Scale]
Xác định xem có nên lan truyền tỷ lệ vuông góc của dây chuyền đến các điểm điều khiển nằm giữa các điều khiển chính hay không.
- Lan Truyền tới các Điều Khiển [Propagate to Controls]
Cho phép các dây chuyền khác nhìn thấy độ xoắn và tỷ lệ lan truyền thông qua 'Hội Nhập Xoay Chiều và Tỷ Lệ của Phụ Huynh' khi các điều khiển của chúng được hợp nhất vào dây chuyền này, thay vì nó hoàn toàn là cục bộ trong dây chuyền này mà thôi.
- Các Tầng Lớp Điều Khiển Chính [Primary Control Layers]
Tùy chọn chỉ định tập hợp xương cho các điều khiển đầu kết thúc.
- Các Tầng Lớp Điều Khiển Thứ Cấp [Secondary Control Layers]
Cho phép chỉ định bộ sưu tập xương cho điều khiển ở giữa, nếu cần, song hoàn trở lại 'Các Tầng Lớp Điều Khiển Chính' nếu không được đặt.
Các điều khiển chính có tính năng suy giảm dần hoạt động, sẽ tự động được áp dụng hiệu ứng 'Hội Nhập Xoay Chiều và Tỷ Lệ của Phụ Huynh' cho riêng chúng mà thôi.
skin.anchor [da.neo chốt]¶
Giàn điều khiển này hoạt động tương tự như một dây chuyền có độ dài bằng 0, với mức độ ưu tiên cao nhất, đảm bảo rằng nó sẽ trở thành chủ sở hữu, khi hợp nhất các điều khiển với các dây chuyền khác. Và cũng cho phép bạn đưa tác động tự động hóa tùy chỉnh vào hệ thống da bọc.
Toàn bộ các ràng buộc trên giàn điều khiển siêu đều được di chuyển sang đối tượng điều khiển vừa kiến tạo xong.
- Sinh Tạo Xương Biến Dạng [Generate Deform Bone]
Kiến tạo một xương biến dạng đặt làm con cái của điều khiển.
- Ỉm Điều Khiển [Suppress Control]
Biến đối tượng điều khiển thành một xương cơ chế ẩn để ẩn giấu nó đi khỏi người dùng.
- Kiểu Thành Tố Điều Khiển [Widget Type]
Lựa chọn xem thành tố điều khiển nào sẽ sinh tạo cho điều khiển.
- Tái Liên Kết các Ràng Buộc [Relink Constraints]
Hoạt động tương tự như trong basic.raw_copy (cơ_bản.bản_sao_thô), ngoại trừ việc toàn bộ các ràng buộc đều được chuyển từ ORG sang xương điều khiển.
- Định Hướng (Orientation)
Xác định xương được sử dụng để định hướng đối tượng điều khiển, tương tự như các dây chuyền khác.
skin.glue [da.dính]¶
Giàn điều khiển này có khái niệm tương tự như skin.anchor (da.neo chốt), song, thay vì vượt quyền các điều khiển, nó được sử dụng để đọc hoặc điều chỉnh trạng thái của các điều khiển do các giàn điều khiển khác tạo ra. Đầu xương phải chồng lên một thanh điều khiển của một giàn điều khiển da khác.
Giàn điều khiển thiết lập xương ORG để đọc trạng thái của điều khiển, đồng thời di chuyển toàn bộ các ràng buộc ban đầu được áp dụng trên xương đó sang điều khiển.
- Chế Độ Dính [Glue Mode]
Chỉ định phương pháp kết nối xương ORG với điều khiển da.
- Con Cái của Điều Khiển [Child Of Control]
Biến xương ORG thành con cái của xương điều khiển.
- Phản Chiếu Đối Xứng của Điều Khiển [Mirror Of Control]
Làm cho xương ORG trở thành anh em của điều khiển với một ràng buộc Sao Chép Biến Hóa từ điều khiển. Kết quả biến hóa không gian cục bộ cũng giống như không gian cục bộ của điều khiển.
- Phản Chiếu Đối Xứng với Phụ Huynh [Mirror With Parents]
Gắn xương ORG vào hệ thống phụ huynh tự động mà một bộ điều khiển do giàn dính sở hữu lẽ ra sẽ có, đồng thời khiến nó đi theo điều khiển thực. Việc này bao gồm cả chuyển động trực tiếp của điều khiển lẫn chuyển động do các quan hệ phụ huynh truyền xuống, và chuyển chúng thành biến hóa trong không gian cục bộ của xương.
- Cầu Nối Biến Dạng [Deformation Bridge]
Ngoài việc cho thêm các ràng buộc dính vào điều khiển, giàn này còn hoạt động như một dây chuyền biến dạng cơ bản với chỉ một phân đoạn xương. Việc làm này hữu ích khi cần phải cầu nối một cặp điều khiển bằng cả cơ chế dính và một xương biến dạng.
- Tái Liên Kết các Ràng Buộc [Relink Constraints]
Hoạt động tương tự như trong basic.raw_copy (cơ_bản.bản_sao_thô), ngoại trừ việc toàn bộ các ràng buộc đều được chuyển từ ORG sang xương điều khiển.
- Sử Dụng Mục Tiêu ở Đuôi [Use Tail Target]
Tái liên kết TARGET, hoặc bất kỳ ràng buộc nào có xương đích để trống, và không có chi tiết kỹ thuật về tái liên kết, để chúng tham chiếu điều khiển nằm tại đuôi của xương dính.
- Mục Tiêu Cục Bộ Bao Gồm các Phụ Huynh [Target Local With Parents]
Chuyển đổi mục tiêu đuôi để hoạt động tương tự như 'Phản Chiếu Đối Xứng với Phụ Huynh'.
- Thêm Ràng Buộc [Add Constraint]
Cho phép thêm một ràng buộc dính thông thường với 'Ảnh Hưởng' cụ thể, như thể nó ở đầu ngăn xếp ràng buộc xương ORG.
skin.transform.basic [da.biến hóa.cơ bản]¶
Giàn điều khiển này cung cấp điều khiển phụ huynh (parent con cáitroller) đơn giản, sử dụng tính năng dịch chuyển, xoay chiều hoặc đổi tỷ lệ thông thường để sửa đổi vị trí, song không sử dụng định hướng hoặc tỷ lệ của các điều khiển dây chuyền con cái của nó.
- Sinh Tạo Điều Khiển [Generate Control]
Xác định xem có sinh tạo ra một điều khiển hữu hình hay sử dụng phép biến hóa của xương ORG như một phần của quá trình thiết lập giàn điều khiển phức tạp và cụ thể hơn.