SLIM (Ölçeklenebilir Hafif Etkileşimli Modeller), bulut tabanlı dönüştürme (varlıkları daha verimli formatlara dönüştürme) kullanarak Models ve platform avatarlarının hafif, optimize edilmiş temsillerini oluşturan otomatik bir optimizasyon sistemidir. Aktif hale getirildiğinde, SLIM birden fazla parçayı daha az çizim çağrısına (GPU'ya gönderilen render komutları) birleştirir ve çoklu detay seviyeleri oluşturur; bu sayede motor, mesafe, cihaz yetenekleri ve mevcut kaynaklara göre en iyi temsili akıllıca seçebilir.


SLIM üç ana fayda sağlar:
- Görsel kalite— Uzak modeller, eski model detay seviyesi sistemine göre daha ayrıntılı görünür ve orijinaline daha yakın bir sadakat korur.
- Tutarlı geçişler— Bir model içindeki tüm parçalar aynı anda detay seviyelerini değiştirir, bu da parçalar arası ani geçişleri ortadan kaldırır.
- Performans— Bileşik ağlar, çizim çağrılarını, üçgen sayılarını ve bellek kullanımını önemli ölçüde azaltır, bu da tüm cihaz katmanlarında daha zengin sahneler oluşturulmasını sağlar.
SLIM'i bu yayımlanmış oyunlarda keşfedin:


Ön koşullar
SLIM aşağıdakileri gerektirir:
- StreamingEnabled özelliği Workspace nesnesinde etkinleştirilmiş olmalıdır. İlgili önerilen ayarlar için akış özellikleri bölümüne de bakın.
- Yer, Roblox'a kaydedilmiş olmalıdır (yerel bir .rbxl dosyası değil), çünkü SLIM bulut dönüştürme kullanarak optimize edilmiş varlıklar oluşturur. Yerel olarak test ediyorsanız, yeri yayımlayın ve ardından SLIM'i etkinleştirin.
- Oyun için Takım Oluştur etkinleştirilmiş olmalıdır, çünkü SLIM bulut varlık oluşturma için ilişkili özelliklere dayanır.
Teknik davranış
SLIM etkinleştirilmiş modellerle bir oyunu yayımladığınızda veya test ettiğinizde, motor model verilerini bulut hizmetine yükler ve çoklu detay seviyeleri ile optimize edilmiş bileşik ağlar oluşturur. Çalışma zamanında, istemciler bu varlıkları CDN'den alır ve motor, mesafeye ve cihaz yeteneklerine göre uygun detay seviyesini seçer; her SLIM modelini kameradan uzaklığa göre render bölgelerine sınıflandırır:

| Mesafe | Veri Modeli Durumu | Render |
|---|---|---|
| Tam örnekler akışta. | Geleneksel parça parça renderleme. | |
| Tam örnekler akışta. | Motor, daha verimli olduğunda SLIM bileşenini renderler. | |
| Örnekler akıştan çıkarıldı. DataModel içinde yalnızca minimal bir yer tutucu vardır, tam model hiyerarşisi yoktur. | SLIM bileşen renderleme. | |
| DataModel içinde minimal yer tutucu. | Render edilmedi. |
SLIM modeller için
SLIM, statik dünya geometrisini temsil eden modellerde en iyi şekilde çalışır — binalar, nesneler, araçlar, arazi özellikleri ve çalışma zamanında değişmeyen diğer çevre nesneleri. Parçaları eklemek veya çıkarmak, malzemeleri değiştirmek veya çalışma zamanında geometrileri değiştirmek, SLIM'in modeli doğru bir şekilde render etmesini engeller. Genel model yapısı rehberi için model yapısı ve tam hariç tutma listesi için kısıtlamalar bölümüne bakın.
Bir modelde SLIM'i etkinleştirmek için, LevelOfDetail özelliğini Özellikler penceresinde SLIM olarak ayarlayın.

SLIM bir modelde ayarlandığında, motor:
- Modelin render ile ilgili özelliklerini (geometri, malzemeler, dokular, dönüşümler) kompakt bir temsile serileştirir. Model içindeki desteklenen örnek türleri Part, MeshPart, Decal, Texture, SurfaceAppearance, PartOperation, NegateOperation ve SpecialMesh'dir.
- Bu verileri ilk yayımlama veya oynatma sırasında bulut dönüştürme hizmetine yükler.
- Bulut hizmeti, gizli iç geometrileri kaldırarak ve dokuları optimize ederek çoklu detay seviyeleri ile bir bileşik ağ oluşturur.
- Çalışma zamanında, istemciler optimize edilmiş SLIM varlığını alır ve motor, orijinal modeli akıştan çıkardığında veya SLIM, tam modelden daha verimli olduğunda bunu render eder.
Eğer oyununuz Model.LevelOfDetail için eski StreamingMesh ayarını kullanıyorsa, bireysel modelleri seçip Özellikler penceresinde özelliği değiştirerek dönüştürebilirsiniz veya aşağıdaki gibi bir komut ile birden fazla modeli toplu olarak dönüştürebilirsiniz. StreamingMesh ile çalışan bazı modellerin SLIM için ayarlamalar gerektirebileceğini unutmayın, özellikle de üst üste binen parçalar veya karmaşık PartOperation hiyerarşileri olanlar.
for _, descendant in workspace:GetDescendants() do
if descendant:IsA("Model") and descendant.LevelOfDetail ==
Enum.ModelLevelOfDetail.StreamingMesh then
descendant.LevelOfDetail = Enum.ModelLevelOfDetail.SLIM
end
endSLIM avatarlar için
Akış alanının dışındaki platform avatarları varsayılan olarak görünmez. SLIM avatarları etkinleştirildiğinde, standart oyuncu karakterleri — sahip oldukları aksesuar veya kıyafet katmanlarının sayısına bakılmaksızın — hafif, animasyonlu yedekler olarak render edilir ve bu sayede render maliyetinin çok daha düşük bir kısmında görsel sadakati korur.


Avatarlar için ana SLIM'e özgü özellik Workspace.EnableSLIMAvatars olup, bu özellik Özellikler penceresinde Enabled olarak ayarlanmalıdır; ayrıca avatar olmayan dünya modellerinizde LevelOfDetail özelliği SLIM olarak ayarlanmalıdır.

EnableSLIMAvatars etkinleştirildiğinde, motor:
- Gerçek bir avatar modeli akıştan çıktığında SLIM versiyonunu render eder.
- Mevcut kaynaklara göre SLIM ve tam çözünürlüklü temsiller arasında geçiş yapar, akış yarıçapı içinde bile.
- Sahne önemine ve mevcut bant genişliğine göre SLIM animasyonlarını kısıtlar.
Model SLIM'den farklı olarak model SLIM yalnızca bir modelden uzaklaşarak test edilebilirken, SLIM avatarları gözlemlemek için oyunda birden fazla oyuncu gerektirir. SLIM avatarlarını test etmek için bu test modlarından birini kullanın:
- Takım Testi — Uzak mesafede SLIM avatarlarını görmek için arkadaşlarınızla veya alternatif hesaplarla katılın.
- Sunucu ve İstemciler — Her bir istemcinin diğerlerinin uzak mesafede SLIM olarak render ettiği avatar kopyalarını gösterdiği iki veya daha fazla istemci penceresi başlatın.
Avatarların SLIM olarak görünmesi için, SLIM etkinleştirilmiş bir oyunda dönüştürülmüş olmaları gerektiğini unutmayın. İlk testinizde avatarlar SLIM olarak render edilmiyorsa, dönüştürmenin tamamlanmasına izin vermek için bir süre bekleyip oyuna tekrar katılın.
Kısıtlamalar
| Kısıtlama | Ayrıntılar |
|---|---|
| Akış gereklidir | SLIM yalnızca StreamingEnabled özelliği true olarak ayarlandığında çalışır. Akış olmadan, SLIM'e uygun modeller geleneksel detay seviyesi renderlemeye geri döner. |
| Statik modeller yalnızca | Model SLIM çalışma zamanında değiştirilmiş (parçalar eklenmiş/çıkarılmış, özellikler değiştirilmiş) veya animasyon oynatan modelleri desteklemez. |
| İnsansı örnekler | Motor, statik model SLIM işleme sürecinden Humanoid içeren modelleri hariç tutar. Animasyonlu oyuncu karakterleri için SLIM avatarları kullanın. |
| Avatar kısıtlamaları | SLIM avatarları yalnızca R15 oyuncu karakterlerini destekler. R6 iskeletleri, NPC'ler ve özel oranlara sahip avatarlar varsayılan renderlemeye geri döner. |
| Bulut bağımlılığı | Bulut hizmeti SLIM varlıklarını CDN'de oluşturur ve depolar. Yayınlanmamış bir yer ile çevrimdışı veya yerel test, SLIM sonuçları üretmez. |
| Sıfır ölçekli modeller | Motor, Scale değeri 0 olan modelleri SLIM işleme sürecinden hariç tutar. |
| Platform kullanılabilirliği | SLIM'in henüz desteklenmediği platformlarda, SLIM olarak ayarlanan modeller Disabled olarak geri döner. |
Hata Ayıklama
SLIM modellerinin durumunu daha iyi anlamak için, Roblox, Geliştirici Konsolu içindeki DebugVisualizations ⟩ SlimTintMode açılır menüsünde birkaç hata ayıklama ton modu sunar. Bu menünün yalnızca oyunun Düzenle izinlerine sahip yaratıcılar için mevcut olduğunu unutmayın.

Seçilebilecek birden fazla ton modu vardır. Her modun renk eşlemeleri için Enum.SlimTintMode'a bakın.
LOD her ağı, mevcut detay seviyesi ile mavi-kırmızı ısı haritası kullanarak renklendirir. Mavi en düşük detayı, daha sıcak renkler ise daha yüksek detayı gösterir.
Ayrıca, Studio'da Görselleştirme Seçenekleri menüsünden bir ton modu seçerek SLIM hata ayıklama görselleştirmelerini görebilirsiniz:

LOD/DataModelState ton modlarına ek olarak, Studio TranscoderStatus ton modunu sunar. Düzenleme sırasında, yalnızca bu ton modu görselleştirme seçenekleri menüsünde mevcutken; oynatma sırasında tüm ton modları mevcuttur. Her durumun renk eşlemeleri için Enum.SlimTranscoderStatus'a bakın.
Sorun Giderme
- StreamingEnabled özelliğinin true olduğunu doğrulayın.
- Yerinin Roblox'a yayımlandığını ve Takım Oluştur özelliğinin etkin olduğunu onaylayın.
- Model için LevelOfDetail özelliğinin SLIM olarak ayarlandığını kontrol edin.
- Bulut dönüştürmenin tamamlanması için ilk yayımlamadan sonra 1-2 dakika bekleyin, ardından tekrar katılın.
- Modelin Humanoid örneği içermediğinden emin olun.
PartOperation örnekleri katı modelleme (birleşimler, kesişimler, inkarlar) bazı SLIM modellerinde doğru render edilmeyebilir. Eğer bir birleşim SLIM temsilinde kaybolmuş veya bozulmuş görünüyorsa, etkilenen PartOperation'ı kendi modeline ayırmayı veya CSG işlemini basitleştirmeyi deneyin.
Z-savaşması, orijinal modeldeki parçaların üst üste binen veya aynı düzlemdeki yüzeyleri olduğunda meydana gelebilir. Çözmek için:
- Üst üste binen parçaları biraz ayırın (hatta 0.01 stud yeterlidir).
- Aynı modeldeki bitişik parçalar arasında tamamen düz yüzeylerden kaçının.
SLIM, dönüştürme sırasında UV eşlemelerini (dokuların 3D yüzeylere nasıl projekte edildiği) yeniden oluşturur. Varsayılan Roblox malzemeleri, orijinaline göre biraz farklı döşeme desenleri gösterebilir. Bunu azaltmak için:
- Önemli yüzeyler için SurfaceAppearance aracılığıyla özel dokular kullanın.
- Görsel olarak ilişkili parçaları aynı modelde gruplayarak tutarlı dokulama sağlamak için.
- Workspace.EnableSLIMAvatars özelliğinin Enabled olarak ayarlandığını doğrulayın.
- Sunucu ve İstemciler test modunu kullanarak birden fazla istemci ile test edin (en az 2 istemci gereklidir).
- Oyunun avatarı Player.CharacterAppearanceLoaded olayından sonra değiştirmediğini onaylayın.
Tam vücut veya parmak animasyonları, bazen kemik çoğaltma zamanlaması nedeniyle görsel artefaktlar gösterebilir. Bu, aktif olarak geliştirilen bilinen bir sorundur. Sorun ciddi ise, animasyon betiklerinin standart animasyon boru hattı dışında kemik dönüşümlerini değiştirmediğinden emin olun.
Render istatistikleri paneli, SLIM avatarları etkinleştirildiğinde yanlış üçgen sayıları bildirebilir. Bu, bilinen bir raporlama hatasıdır ve gerçek renderleme performansını etkilemez.