CubePart: Trình tạo 3D có thể điều khiển từng phần với từ vựng mở
Xây dựng các tài sản sẵn sàng cho trò chơi

Các mô hình tạo hình 3D hiện đại có thể tạo ra các đối tượng 3D đẹp mắt và phức tạp từ các lời nhắc văn bản, nhưng đối với một nhà phát triển trò chơi, một mô hình 3D nguyên khối không hữu ích. Ví dụ, một chiếc xe hơi cần phải có thể lái được. Các bánh xe cần phải quay riêng biệt, các cửa cần phải mở được và đèn pha cần phải bật được.
Hiện tại, các nghệ sĩ 3D phải tự tay chia nhỏ các mô hình được tạo ra và đặt tên cho các bộ phận — một quy trình không hiệu quả khi mở rộng quy mô. Đột phá của chúng tôi là CubePart: khung công nghệ AI tạo hình 3D đầu tiên cho phép tạo lưới 3D với từ vựng mở và khả năng kiểm soát từng bộ phận. CubePart tạo ra một bộ lưới đã lắp ráp, riêng biệt, chức năng và được gắn nhãn chính xác, đáp ứng ngay lập tức các yêu cầu lập trình của nhà phát triển.
CubePart mở rộng khái niệm về các lược đồ cố định mà chúng tôi đã giới thiệu với 4D Generation để trao quyền cho người sáng tạo xác định danh sách các bộ phận mà một đối tượng nên được chia thành. Bộ lưới được tạo ra bởi CubePart có thể được đưa thẳng vào công cụ trò chơi và có thể được điều khiển bằng hoạt hình, vật lý và tập lệnh trò chơi mà không cần dọn dẹp thủ công. Chúng tôi đã công bố nghiên cứu về CubePart trên arXiv và cập nhật kho lưu trữ mã nguồn mở Cube để hỗ trợ việc tạo ra các phần có thể điều khiển được. Vào cuối năm nay, chúng tôi sẽ trình bày những phát hiện của mình tại SIGGRAPH.
Sơ đồ: Hợp đồng API cho tài sản 3D tương tác
Trên Roblox, hành vi tương tác được triển khai trong các tập lệnh hoạt động trên các bộ phận — các phần con cụ thể, được đặt tên của một tài sản. Ngay cả các tài sản tương tự cũng có thể yêu cầu các bộ phận hoàn toàn khác nhau tùy thuộc vào trò chơi hoặc tình huống. Một hệ thống phân loại cố định sẽ hạn chế sự sáng tạo và chức năng, vì vậy CubePart cung cấp hai đầu vào:
- Một lời nhắc văn bản toàn cục mô tả đối tượng trông như thế nào: ví dụ: "một chiếc xe đua theo chủ đề sứa".
- Một danh sách cụ thể, mở rộng các phần bắt buộc được gọi là schema: ví dụ: "bánh xe trước bên trái", "bánh xe trước bên phải", "bánh xe sau bên trái", "bánh xe sau bên phải", "súng", "đèn pha", "ống xả", "thân xe".
Schema là hợp đồng API giữa tài sản và mã trò chơi, và CubePart cho phép người sáng tạo tạo ra các tài sản tuân thủ hợp đồng này. Kiểm soát từ vựng mở này cho phép CubePart nắm bắt sự đa dạng của các tài sản và trải nghiệm Roblox.
Tạo ra theo hai giai đoạn
CubePart là kiến trúc khuếch tán hai giai đoạn được xây dựng trên biểu diễn hình dạng tiềm ẩn VecSet.
Trong các hình minh họa dưới đây, người dùng nhập hai lời nhắc.
- Lời nhắc văn bản chung: "Một xe kéo có đặc điểm hoạt hình."
- Cấu trúc: “cabin”, “khung gầm”, “bánh xe”, “đèn báo trên nóc”, “bộ phận kéo”.
Giai đoạn 1 chịu trách nhiệm xác định hình dạng cơ bản của đối tượng (một xe kéo có đặc điểm hoạt hình). Giai đoạn này tạo ra một tiềm ẩn duy nhất cho toàn bộ đối tượng bằng cách sử dụng kiến trúc MMDiT với bộ mã hóa văn bản Qwen-VL, được huấn luyện trên khoảng 4,7 triệu cặp lưới-văn bản. Đây là giai đoạn cần nhiều dữ liệu: Áp dụng ngôn ngữ từ vựng mở vào hình học 3D là phần khó nhất của 3D tạo ra, và nó đòi hỏi một tập hợp dữ liệu lớn, đa dạng để hoạt động tốt. Chúng tôi cũng tinh chỉnh Giai đoạn 1 để nhận biết lược đồ.



Bộ dữ liệu và quy trình VLM của chúng tôi
Để huấn luyện CubePart, chúng tôi đã tạo ra một bộ dữ liệu gồm hơn 460.000 tài sản — lớn hơn 11 lần so với các bộ dữ liệu công khai trước đây1 — và 2,02 triệu bộ phận. Thay vì gắn nhãn thủ công, chúng tôi đã xây dựng một quy trình tự động bằng cách sử dụng các mô hình thị giác-ngôn ngữ (VLM).
Quy trình này hiển thị hàng nghìn mô hình 3D từ nhiều góc độ bằng cách tiếp cận kết hợp: một hình ảnh có kết cấu (để cung cấp bối cảnh ngữ nghĩa) và một hình ảnh có màu cho từng bộ phận (để theo dõi ranh giới chính xác). Cả hai đều được đánh dấu bằng các điểm đánh dấu có số thứ tự giống nhau, giúp VLM có một "cái nắm" có thể truy cập bằng văn bản để suy luận trong không gian 3D và nhóm cũng như đặt tên cho từng bộ phận.
Không giống như các bộ dữ liệu được công bố trước đây, trong đó mọi bánh xe trên một chiếc xe đều chỉ được gắn nhãn đơn giản là "bánh xe", bộ dữ liệu của chúng tôi dạy AI cách phân biệt không gian (ví dụ: phân biệt "bánh xe trước bên trái" với "bánh xe sau bên phải"). Độ chính xác trong việc khớp nối này chính xác là điều mà các công cụ trò chơi đang tìm kiếm.
Những gì CubePart mở ra và những gì tiếp theo
CubePart cho phép các nhà sáng tạo tạo ra các tài sản phù hợp với mã gameplay của họ và có khả năng tương thích trực tiếp với các quy trình làm việc hiện có về hoạt hình, vật lý và kịch bản. CubePart cũng có thể phân tách các lưới mô hình hiện có của nghệ sĩ sang một lược đồ mới, điều này hữu ích cho việc nâng cấp các tài sản cũ, không chỉ tạo ra các tài sản mới.
Vẫn còn nhiều việc phải làm. CubePart xử lý việc phân tách vật thể cứng, nhưng chúng tôi cũng đang nghiên cứu trọng số đỉnh có da cho biến dạng nhân vật hữu cơ. Cơ chế chú ý giữa các phần giúp giảm đáng kể sự trùng lặp nhưng chưa loại bỏ hoàn toàn. Khả năng suy luận không gian — "trước trái" so với "sau phải" — vẫn còn nhiều tiềm năng cải thiện.
Chúng tôi coi việc tạo ra dựa trên lược đồ là bước giúp 3D tạo ra trở nên hữu ích trên một nền tảng mà mọi tài sản đều tham gia vào mô phỏng. Sắp tới, công nghệ này sẽ được cung cấp cho các nhà sáng tạo Roblox trực tiếp trong Roblox Studio.



