Streaming instance

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Dalam streaming instance di dalam permainan memungkinkan engine Roblox untuk memuat dan membongkar konten 3D dan instance terkait di Workspace secara dinamis. Ini dapat meningkatkan pengalaman pemain secara keseluruhan dalam beberapa cara, termasuk:

  • Waktu Bergabung Lebih Cepat
    — Pemain dapat mulai bermain di satu bagian dunia sementara bagian lainnya dimuat di latar belakang.
  • Efisiensi Memori
    — Permainan dapat dimainkan di perangkat dengan memori lebih sedikit karena konten dimuat secara dinamis. Dunia yang lebih imersif dan rinci dapat dimainkan di rentang perangkat yang lebih luas.
  • Kinerja yang Ditingkatkan
    — Frame rate dan kinerja yang lebih baik, karena server dapat menghabiskan lebih sedikit waktu dan bandwidth untuk menyinkronkan perubahan antara dunia dan pemain di dalamnya. Klien menghabiskan lebih sedikit waktu untuk memperbarui instance yang tidak relevan bagi pemain saat ini.
  • Tingkat Detail
    — Ketika dikonfigurasi, model yang jauh, avatar platform, dan terrain tetap terlihat meskipun tidak disiarkan ke klien, menjaga permainan tetap optimal tanpa sepenuhnya mengorbankan visual latar belakang.

Streaming instance dikendalikan melalui properti Workspace.StreamingEnabled, yang diaktifkan secara default untuk tempat baru yang dibuat di Studio. Properti ini tidak dapat diatur dalam skrip.

Jendela Properties dengan properti StreamingEnabled diaktifkan.

Perilaku teknis

Ruang lingkup

Logika dan fitur streaming berlaku secara eksklusif untuk instance yang merupakan keturunan dari Workspace, sementara instance yang disimpan dalam wadah lain seperti ReplicatedStorage dan ReplicatedFirst tidak memenuhi syarat untuk streaming. Misalnya, menempatkan model atomik di bawah ReplicatedStorage tidak menjamin replikasi atomik.

Streaming masuk

Ketika seorang pemain bergabung dengan permainan dengan streaming instance diaktifkan:

  1. Instance di Workspace direplikasi ke klien mengecualikan yang berikut:

    Models yang diatur ke Nonatomik (default) ketika Workspace.ModelStreamingBehavior diatur ke Improved

    Keturunan dari instance di atas

  2. Selama permainan, server dapat menyiarkan instance dalam kategori yang ditangguhkan di atas kepada klien berdasarkan properti streaming permainan, posisi pemain, kinerja perangkat klien, dan kondisi lainnya.

Streaming keluar

Selama permainan, klien dapat menghapus daerah dari BaseParts dari Workspace pemain berdasarkan perilaku yang diatur oleh Workspace.StreamOutBehavior. Proses dimulai dengan daerah yang paling jauh dari fokus replikasi dan bergerak lebih dekat, jika diperlukan. Daerah dalam jangkauan Workspace.StreamingMinRadius tidak pernah disiarkan keluar.

Perhatikan bahwa Model tanpa keturunan BasePart, seperti yang digunakan hanya sebagai "wadah" untuk instance non-BasePart seperti skrip, dibebaskan dari streaming keluar kecuali jika ia dibuat menjadi keturunan dari BasePart.

Perakitan

Perakitan fisik streaming masuk sebagai unit lengkap, termasuk Constraints dan Attachments yang terkait, membantu memastikan pembaruan fisika yang konsisten pada klien. Satu-satunya pengecualian adalah ketika perakitan di-anchored, dalam hal ini hanya BaseParts dalam jangkauan streaming yang disiarkan masuk bersama dengan Constraints dan Attachments yang terkait.

Perakitan tidak streaming keluar sampai semua BaseParts mereka memenuhi syarat untuk streaming keluar.

Properti streaming

Properti berikut mengontrol bagaimana streaming instance diterapkan ke permainan Anda. Semua properti ini tidak dapat diskrip dan harus diatur pada objek Workspace di Studio.

PropertiDeskripsi
EnableSLIMAvatarsMengontrol apakah model SLIM dihasilkan untuk karakter avatar dalam permainan. Ketika diaktifkan, avatar dirender menggunakan SLIM dengan cara yang sama seperti pengaturan Model.LevelOfDetail ke SLIM untuk model lainnya.
ModelStreamingBehaviorMengontrol bagaimana model Nonatomik (default) streaming masuk dan keluar.

DISARANKAN
Gunakan Improved untuk mengaktifkan streaming paling efisien untuk Models dengan keturunan BasePart.
StreamingIntegrityModePermainan mungkin berperilaku dengan cara yang tidak diinginkan jika seorang pemain bergerak ke dalam daerah dunia yang belum disiarkan kepada mereka. Properti ini menawarkan cara untuk menghindari situasi yang berpotensi bermasalah tersebut.

DISARANKAN
Gunakan PauseOutsideLoadedArea untuk menyeimbangkan integritas permainan tanpa menghentikan secara tidak perlu atau terlalu sering. Anda juga dapat kustomisasi layar jeda.
StreamingMinRadiusProperti ini menunjukkan jangkauan di sekitar fokus replikasi di mana instance streaming masuk dengan prioritas tertinggi. Harus berhati-hati ketika meningkatkan default, karena melakukannya akan memerlukan lebih banyak memori dan lebih banyak bandwidth server dengan mengorbankan komponen lainnya.

DISARANKAN
Gunakan default 64 untuk memaksimalkan seberapa banyak engine dapat mengurangi permainan untuk perangkat rendah.
StreamingTargetRadiusProperti ini mengontrol jarak maksimum dari fokus replikasi di mana instance streaming masuk. Perhatikan bahwa engine diizinkan untuk mempertahankan instance yang sebelumnya dimuat di luar jangkauan target, dengan mempertimbangkan memori.

Jangkauan StreamingTargetRadius yang lebih kecil mengurangi beban kerja server, karena server tidak akan streaming instance tambahan di luar nilai yang telah ditetapkan. Namun, jarak target juga jarak maksimum yang akan dapat dilihat pemain secara detail penuh permainan Anda, jadi Anda harus memilih nilai yang menciptakan keseimbangan yang baik antara keduanya.

DISARANKAN
Gunakan default 1024 untuk mencapai keseimbangan yang baik antara visibilitas bagi pemain di perangkat tinggi dan jejak memori yang wajar.
StreamOutBehaviorProperti ini mengatur perilaku streaming keluar sesuai dengan nilai Enum.StreamOutBehavior. Jika diatur ke LowMemory (default), klien hanya streaming keluar daerah di luar jangkauan minimum dalam situasi memori rendah. Jika diatur ke Opportunistic, daerah di luar StreamingTargetRadius dapat dihapus di klien bahkan ketika tidak ada tekanan memori (dalam mode ini, klien tidak pernah menghapus instance yang berada dalam jangkauan target, kecuali dalam situasi memori rendah).

DISARANKAN
Gunakan Opportunistic untuk memungkinkan klien mengumpulkan konten secara agresif, secara signifikan mengurangi penggunaan memori dan membantu mencegah kerusakan karena kehabisan memori.

Fokus replikasi

Secara default, streaming terjadi di sekitar PrimaryPart karakter pemain lokal, meskipun Anda dapat menentukan titik fokus replikasi yang berbeda melalui Player.ReplicationFocus.

Anda juga dapat menambah dan menghapus fokus replikasi tambahan melalui Player:AddReplicationFocus() dan Player:RemoveReplicationFocus() untuk secara dinamis mengaktifkan streaming di beberapa area permainan.

Simulasi fisika sisi klien, termasuk prediksi dan simulasi ulang ketika otoritas server diterapkan, hanya terjadi di area yang disiarkan, bahkan untuk instance yang dibuat secara lokal dan untuk instance Persistent. Jika Anda memiliki instance yang ingin Anda terus simulasikan meskipun jauh dari karakter, buat fokus replikasi tambahan di dekat instance tersebut.

Kontrol streaming model

Untuk menghindari masalah dengan streaming pada basis per-model dan meminimalkan penggunaan WaitForChild(), Anda dapat menyesuaikan bagaimana Models dan keturunannya streaming melalui properti ModelStreamingMode mereka.

Nonatomik

Secara default, model adalah Nonatomic dan mereka streaming masuk/keluar berdasarkan apakah Workspace.ModelStreamingBehavior diatur ke Legacy (default) atau Improved.

Legacy

Ketika Workspace.ModelStreamingBehavior diatur ke Legacy (default), wadah Model dan keturunan non-BasePart-nya seperti Scripts direplikasi ke klien saat pemain bergabung. Kemudian, ketika memenuhi syarat, keturunan BasePart model streaming masuk.

Ditingkatkan

Ketika Workspace.ModelStreamingBehavior diatur ke Improved, perilaku streaming model bervariasi tergantung pada apakah model tersebut mengandung keturunan BasePart atau tidak:

  • Model dengan keturunan BasePart streaming masuk hanya ketika satu dari keturunan BasePart-nya memenuhi syarat untuk streaming masuk. Pada saat itu, model dan keturunan BasePart yang memenuhi syarat streaming masuk, bersama dengan keturunan non-BasePart dari model tersebut.

    Ketika BasePart terakhir yang tersisa di model streaming keluar, model itu sendiri akan streaming keluar bersama dengannya.

  • Model yang tidak memiliki keturunan BasePart, seperti yang digunakan hanya sebagai "wadah" untuk instance non‑BasePart seperti skrip, akan direplikasi ke klien segera setelah pemain bergabung. Tipe model ini dibebaskan dari streaming keluar kecuali jika ia dibuat menjadi keturunan dari BasePart.

Atomik

Jika sebuah Model diatur ke Atomic, semua keturunan awalnya disiarkan bersama ketika keturunan BasePart memenuhi syarat untuk disiarkan masuk. Akibatnya, skrip sisi klien yang perlu mengakses instance di dalam model akan perlu menggunakan WaitForChild() pada model itu sendiri, tetapi tidak pada keturunan MeshPart atau Part karena mereka dikirim bersamaan dengan model.

Model atomik hanya streaming keluar ketika semua bagian keturunan memenuhi syarat untuk streaming keluar, pada titik mana seluruh model streaming keluar bersamaan.

Diagram yang menunjukkan streaming model Atomik bersama dengan anak-anaknya.

Persisten

Model Persistent tidak tunduk pada streaming normal masuk atau keluar. Mereka dikirim sebagai unit atomik lengkap segera setelah pemain bergabung dan sebelum peristiwa Workspace.PersistentLoaded dipicu. Model yang persisten dan keturunannya tidak pernah streaming keluar, tetapi untuk menangani streaming dengan aman dalam skrip sisi klien, Anda harus menunggu peristiwa PersistentLoaded dipicu.

Diagram yang menunjukkan streaming model Persisten bersama dengan anak-anaknya.

PersistenPerPlayer

Model yang diatur ke PersistentPerPlayer berperilaku sama seperti Persistent untuk pemain yang telah ditambahkan menggunakan Model:AddPersistentPlayer(). Untuk pemain lainnya, perilakunya sama dengan Atomic. Anda dapat mengubah model dari keberlangsungan pemain melalui Model:RemovePersistentPlayer().

Kustomisasi layar jeda

Asumsikan Workspace.StreamingIntegrityMode diatur ke nilai yang disarankan PauseOutsideLoadedArea, permainan akan berhenti jika pemain bergerak ke dalam daerah dunia yang belum disiarkan kepada mereka. Dalam kasus ini, properti Player.GameplayPaused menunjukkan keadaan jeda pemain saat ini yang dapat digunakan dengan koneksi GetPropertyChangedSignal() untuk menampilkan atau menyembunyikan GUI kustom.

LocalScript

local Players = game:GetService("Players")
local GuiService = game:GetService("GuiService")
local player = Players.LocalPlayer
-- Nonaktifkan modal jeda default
GuiService:SetGameplayPausedNotificationEnabled(false)
local function onPauseStateChanged()
if player.GameplayPaused then
-- Tampilkan GUI kustom
else
-- Sembunyikan GUI kustom
end
end
player:GetPropertyChangedSignal("GameplayPaused"):Connect(onPauseStateChanged)

Debugging runtime

Engine menyertakan beberapa panel debug yang dapat ditampilkan di layar yang dapat diaktifkan di sisi klien menggunakan pintasan keyboard. Untuk mengakses informasi debug streaming:

  1. Buka overlay debug Ringkasan Jaringan melalui ShiftCtrlF3 (Windows) atau ShiftF3 (Mac).

  2. Setelah overlay debug terbuka, tekan Shift1 berulang kali untuk beralih di antara panel yang tersedia. Panel keempat adalah tampilan debug Streaming yang menampilkan informasi runtime berguna:

    • Pengaturan streaming aktif
    • Daerah yang saat ini dimuat (streamed in)
    • Perilaku dan status streaming

Setelah diaktifkan, daerah yang disorot berwarna muncul di viewport 3D:

WarnaDeskripsi
Kurang dari StreamingMinRadius
Lebih besar dari atau sama dengan StreamingMinRadius dan kurang dari StreamingTargetRadius
Sama dengan StreamingTargetRadius
Lebih besar dari StreamingTargetRadius
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.