SLIM (Mô hình tương tác nhẹ có thể mở rộng) là một hệ thống tối ưu hóa tự động tạo ra các đại diện nhẹ, tối ưu hóa của Models và hình đại diện nền tảng bằng cách sử dụng chuyển mã trên đám mây (chuyển đổi tài sản thành các định dạng hiệu quả hơn). Khi được kích hoạt, SLIM kết hợp nhiều phần thành ít lệnh vẽ hơn (các lệnh kết xuất được gửi đến GPU) và tạo ra nhiều cấp độ chi tiết, cho phép động cơ chọn lựa đại diện tốt nhất dựa trên khoảng cách, khả năng thiết bị và tài nguyên có sẵn.


SLIM cung cấp ba lợi ích chính:
- Chất lượng hình ảnh— Các mô hình ở xa xuất hiện chi tiết hơn so với hệ thống cấp độ chi tiết mô hình truyền thống, duy trì độ trung thực gần hơn với bản gốc.
- Chuyển tiếp nhất quán— Tất cả các phần trong một mô hình chuyển đổi cấp độ chi tiết đồng thời, loại bỏ các chuyển tiếp theo phần gây khó chịu.
- Hiệu suất— Các lưới tổng hợp giảm đáng kể số lệnh vẽ, số lượng tam giác và mức sử dụng bộ nhớ, cho phép các cảnh phong phú hơn trên tất cả các cấp độ thiết bị.
Khám phá SLIM trong các trò chơi đã phát hành này:


Điều kiện tiên quyết
SLIM yêu cầu các điều kiện sau:
- StreamingEnabled phải được kích hoạt trên đối tượng Workspace. Xem thêm thuộc tính phát trực tuyến cho các cài đặt liên quan được khuyến nghị.
- Nơi đặt phải được lưu vào Roblox (không phải tệp .rbxl cục bộ), vì SLIM sử dụng chuyển mã đám mây để tạo ra các tài sản tối ưu hóa. Nếu bạn đang thử nghiệm cục bộ, hãy xuất bản nơi đặt và sau đó kích hoạt SLIM.
- Team Create phải được kích hoạt cho trò chơi, vì SLIM phụ thuộc vào các thuộc tính liên quan để tạo tài sản đám mây.
Hành vi kỹ thuật
Khi bạn xuất bản hoặc thử nghiệm một trò chơi với các mô hình được kích hoạt SLIM, động cơ sẽ tải dữ liệu mô hình lên một dịch vụ đám mây tạo ra các lưới tổng hợp tối ưu hóa với nhiều cấp độ chi tiết. Tại thời điểm chạy, các khách hàng sẽ lấy những tài sản này từ CDN và động cơ sẽ chọn cấp độ chi tiết phù hợp dựa trên khoảng cách và khả năng thiết bị, phân loại mỗi mô hình SLIM vào các vùng kết xuất dựa trên khoảng cách từ camera:

| Phạm vi | Hành vi |
|---|---|
| Các phiên bản đầy đủ được phát trực tuyến; kết xuất theo phần truyền thống. | |
| Các phiên bản đầy đủ được phát trực tuyến, nhưng động cơ kết xuất lưới tổng hợp SLIM khi hiệu quả hơn. | |
| Các phiên bản được phát trực tuyến ra (chỉ có một chỗ giữ tối thiểu tồn tại trong DataModel, không phải toàn bộ cấu trúc mô hình), kết xuất lưới tổng hợp SLIM. | |
| Chỗ giữ tối thiểu trong DataModel, không được kết xuất. |
SLIM cho mô hình
SLIM hoạt động tốt nhất trên các mô hình đại diện cho hình học thế giới tĩnh — các tòa nhà, đồ vật, phương tiện, đặc điểm địa hình và các đối tượng môi trường khác không thay đổi trong/đến thời gian chạy. Việc thêm hoặc xóa các phần, thay đổi vật liệu hoặc sửa đổi hình học trong thời gian chạy sẽ ngăn SLIM kết xuất mô hình đúng cách. Xem cấu trúc mô hình để biết hướng dẫn về cấu trúc mô hình chung và giới hạn để biết danh sách đầy đủ các loại trừ.
Để kích hoạt SLIM trên một mô hình, hãy đặt thuộc tính LevelOfDetail của nó thành SLIM trong cửa sổ Thuộc tính.

Khi SLIM được đặt trên một mô hình, động cơ:
- Tuần tự hóa các thuộc tính liên quan đến kết xuất của mô hình (hình học, vật liệu, kết cấu, biến đổi) thành một đại diện gọn nhẹ. Các loại thể hiện được hỗ trợ trong mô hình bao gồm Part, MeshPart, Decal, Texture, SurfaceAppearance, PartOperation, NegateOperation, và SpecialMesh.
- Tải dữ liệu này lên dịch vụ chuyển mã đám mây khi xuất bản hoặc chơi lần đầu.
- Dịch vụ đám mây tạo ra một lưới tổng hợp với nhiều cấp độ chi tiết, loại bỏ hình học nội bộ ẩn và tối ưu hóa kết cấu.
- Tại thời điểm chạy, các khách hàng lấy tài sản SLIM tối ưu hóa và kết xuất nó khi động cơ phát trực tuyến mô hình gốc hoặc khi SLIM hiệu quả hơn so với mô hình đầy đủ.
Nếu trò chơi của bạn sử dụng cài đặt truyền thống StreamingMesh cho Model.LevelOfDetail, bạn có thể chuyển đổi từng mô hình bằng cách chọn chúng và thay đổi thuộc tính trong cửa sổ Thuộc tính, hoặc bạn có thể chuyển đổi hàng loạt nhiều mô hình cùng một lúc bằng cách sử dụng một kịch bản như sau trong Command Bar. Lưu ý rằng một số mô hình đã hoạt động với StreamingMesh có thể cần điều chỉnh cho SLIM, đặc biệt là những mô hình có các phần chồng chéo hoặc cấu trúc PartOperation phức tạp.
for _, descendant in workspace:GetDescendants() do
if descendant:IsA("Model") and descendant.LevelOfDetail ==
Enum.ModelLevelOfDetail.StreamingMesh then
descendant.LevelOfDetail = Enum.ModelLevelOfDetail.SLIM
end
endSLIM cho hình đại diện
Các hình đại diện nền tảng bên ngoài khu vực đang được phát trực tuyến không hiển thị theo mặc định. Kích hoạt hình đại diện SLIM kết xuất các nhân vật người chơi rig tiêu chuẩn — bất kể số lượng phụ kiện hoặc lớp quần áo mà họ có — dưới dạng các hình đại diện nhẹ, hoạt hình duy trì độ trung thực hình ảnh với chi phí kết xuất thấp hơn.


Thuộc tính SLIM chính cho hình đại diện là Workspace.EnableSLIMAvatars nên được đặt thành Enabled trong cửa sổ Thuộc tính, cùng với LevelOfDetail được đặt thành SLIM trên các mô hình thế giới không phải hình đại diện của bạn.

Với EnableSLIMAvatars được kích hoạt, động cơ:
- Kết xuất một phiên bản SLIM khi một mô hình hình đại diện thực tế phát trực tuyến ra.
- Hoán đổi giữa các đại diện SLIM và độ phân giải đầy đủ dựa trên tài nguyên có sẵn, ngay cả bên trong bán kính phát trực tuyến.
- Giới hạn hoạt ảnh SLIM dựa trên tầm quan trọng của cảnh và băng thông có sẵn.
Khác với SLIM mô hình mà bạn có thể kiểm tra một mình bằng cách di chuyển xa khỏi một mô hình cho đến khi nó phát trực tuyến ra, hình đại diện SLIM yêu cầu nhiều người chơi trong trò chơi để quan sát. Sử dụng một trong các chế độ kiểm tra này để kiểm tra hình đại diện SLIM:
- Kiểm tra Nhóm — Tham gia với bạn bè hoặc tài khoản thay thế để xem hình đại diện SLIM ở khoảng cách.
- Máy chủ và Khách Hàng — Khởi động hai hoặc nhiều cửa sổ khách hàng mà mỗi khách hàng hiển thị các bản sao hình đại diện mà những khách hàng khác kết xuất dưới dạng SLIM khi ở xa.
Lưu ý rằng hình đại diện phải đã được chuyển mã trong một trò chơi được kích hoạt SLIM trước khi chúng xuất hiện dưới dạng SLIM. Nếu hình đại diện không được kết xuất dưới dạng SLIM trong bài kiểm tra đầu tiên của bạn, hãy tham gia lại trò chơi sau một lúc để cho phép việc chuyển mã hoàn tất.
Giới hạn
| Giới hạn | Chi tiết |
|---|---|
| Yêu cầu phát trực tuyến | SLIM chỉ hoạt động với StreamingEnabled được đặt thành true. Nếu không có phát trực tuyến, các mô hình đủ điều kiện SLIM sẽ quay lại kết xuất cấp độ chi tiết truyền thống. |
| Chỉ mô hình tĩnh | SLIM mô hình không hỗ trợ các mô hình được sửa đổi trong thời gian chạy (các phần được thêm/xóa, thuộc tính thay đổi) hoặc các mô hình phát hoạt ảnh. |
| Thể hiện Humanoid | Động cơ loại trừ các mô hình chứa Humanoid khỏi xử lý SLIM mô hình tĩnh. Sử dụng hình đại diện SLIM cho các nhân vật người chơi hoạt hình. |
| Giới hạn hình đại diện | Hình đại diện SLIM chỉ hỗ trợ các nhân vật người chơi rig tiêu chuẩn R15. Các rig R6, NPC và hình đại diện có tỷ lệ tùy chỉnh sẽ quay lại kết xuất mặc định. |
| Phụ thuộc vào đám mây | Dịch vụ đám mây tạo ra và lưu trữ các tài sản SLIM trên CDN. Kiểm tra ngoại tuyến hoặc cục bộ mà không có nơi đã xuất bản sẽ không tạo ra kết quả SLIM. |
| Mô hình tỷ lệ bằng không | Động cơ loại trừ các mô hình có Scale bằng 0 khỏi xử lý SLIM. |
| Khả năng nền tảng | Trên các nền tảng mà SLIM chưa được hỗ trợ, các mô hình được đặt thành SLIM sẽ quay lại Disabled. |
Khắc phục sự cố
- Xác minh rằng StreamingEnabled là true.
- Xác nhận rằng nơi đặt đã được xuất bản lên Roblox và Team Create đã được kích hoạt.
- Kiểm tra rằng LevelOfDetail được đặt thành SLIM cho mô hình.
- Chờ 1–2 phút sau khi xuất bản lần đầu để hoàn tất việc chuyển mã đám mây, sau đó tham gia lại.
- Đảm bảo mô hình không chứa một thể hiện Humanoid.
Các thể hiện PartOperation cho mô hình rắn (hợp nhất, giao nhau, phủ định) có thể không kết xuất đúng trong một số mô hình SLIM. Nếu một hợp nhất xuất hiện bị thiếu hoặc bị biến dạng trong đại diện SLIM, hãy thử tách PartOperation bị ảnh hưởng thành mô hình riêng của nó hoặc đơn giản hóa thao tác CSG.
Z-fighting có thể xảy ra khi các phần trong mô hình gốc có các mặt chồng chéo hoặc đồng phẳng. Để giải quyết:
- Di chuyển các phần chồng chéo ra xa nhau một chút (ngay cả 0.01 studs cũng đủ).
- Tránh các bề mặt hoàn toàn phẳng giữa các phần liền kề trong cùng một mô hình.
SLIM tái tạo lại các ánh xạ UV (cách kết cấu được chiếu lên các bề mặt 3D) trong quá trình chuyển mã. Các vật liệu mặc định của Roblox có thể hiển thị các mẫu lát hơi khác so với bản gốc. Để giảm thiểu:
- Sử dụng kết cấu tùy chỉnh qua SurfaceAppearance cho các bề mặt quan trọng.
- Nhóm các phần có liên quan về mặt hình ảnh vào cùng một mô hình để đảm bảo kết cấu nhất quán.
- Xác minh rằng Workspace.EnableSLIMAvatars được đặt thành Enabled.
- Thử nghiệm với nhiều khách hàng sử dụng chế độ kiểm tra Máy chủ và Khách Hàng (cần ít nhất 2 khách hàng).
- Đảm bảo hình đại diện sử dụng rig R15 tiêu chuẩn mà không có tỷ lệ tùy chỉnh.
- Xác nhận rằng trò chơi không sửa đổi hình đại diện sau sự kiện Player.CharacterAppearanceLoaded.
Các hoạt ảnh toàn thân hoặc ngón tay có thể đôi khi hiển thị các hiện tượng hình ảnh do thời gian sao chép xương. Đây là một vấn đề đã biết đang được cải thiện. Nếu vấn đề nghiêm trọng, hãy xác minh rằng các kịch bản hoạt ảnh không sửa đổi các biến đổi xương bên ngoài quy trình hoạt ảnh tiêu chuẩn.
Bảng thống kê kết xuất có thể báo cáo số lượng tam giác không chính xác khi hình đại diện SLIM được kích hoạt. Đây là một lỗi báo cáo đã biết và không ảnh hưởng đến hiệu suất kết xuất thực tế.