Pengendali

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

Dalam Pustaka Pengendali Karakter (CCL), suatu instance dari ControllerManager menangani simulasi fisik karakter dan interaksinya dengan lingkungan. Ini mencakup beberapa perubahan yang disengaja dalam gerakan/perasaan yang dirancang untuk mengatasi ketidakkonsistenan Humanoid yang sudah ada, serta perbaikan fisik seperti gesekan tanah, kurva percepatan linier, dan pelestarian momentum linier dan angular yang realistis saat melompat.

Aktifkan CCL

CCL adalah opsional melalui jendela Pengaturan Avatar di Studio. Untuk mengaktifkannya:

  1. Dari tab Avatar, buka Pengaturan Avatar.

    Pengaturan Avatar ditunjukkan di toolbar Studio
  2. Pilih tab Gerakan di sisi kiri jendela dan, di bagian Kemampuan, pilih Perpustakaan Pengontrol Karakter.

    Tombol Perpustakaan Pengontrol Karakter di jendela Pengaturan Avatar
  3. Semua kemampuan standar seperti Berlari, Melompat, dan Memanjat diaktifkan secara default. Untuk menonaktifkan salah satunya saat runtime, hapus centang pada kotak terkait.

Struktur

Di bawah instance inti ControllerManager dalam model karakter, pengendali individu seperti GroundController dan AirController mendefinisikan bagaimana gerakan diterapkan pada karakter. Kemampuan kemudian berinteraksi dengan ControllerManager dan keturunannya untuk memodifikasi perilaku pengendali atau beralih antara pengendali.

Konfigurasi

Saat permainan Anda berjalan (atau melalui skrip yang berjalan dari ServerScriptService), Anda dapat bereksperimen dengan ControllerManager inti dan pengendali bawaan.

Waktu Jalan

Untuk bereksperimen dengan konfigurasi pengendali saat berjalan:

  1. Mulai pengujian permainan.

  2. Di Explorer, temukan model karakter dalam Workspace dan kemudian perluas pohon ControllerManager:

  3. Pilih baik ControllerManager atau salah satu keturunan pengendali dan, di jendela Properties, sesuaikan properti seperti yang dirangkum dalam tabel di bawah ini (perhatikan bahwa tabel ini tidak lengkap; silakan konsultasikan dokumentasi kelas API untuk opsi properti tambahan).

    PropertiDeskripsi
    BaseMoveSpeedKecepatan gerakan linier dasar yang digunakan oleh semua pengendali. Pengendali secara individual menyesuaikan kecepatan gerakan melalui properti MoveSpeedFactor mereka.
    BaseTurnSpeedKecepatan pemutaran dasar angular yang digunakan oleh semua pengendali untuk menyelaraskan karakter agar menghadap ke arah yang diinginkan. Beberapa pengendali secara individual menyesuaikan kecepatan putaran melalui properti TurnSpeedFactor mereka.
    UpDirectionVector3 yang menunjukkan vektor yang menghadap ke atas untuk ControllerManager.RootPart.

Skrip

Untuk mengatur konfigurasi pengendali untuk semua karakter melalui skrip:

  1. Buat Script baru di sisi server dalam ServerScriptService dan ganti namanya menjadi ControllerScript.

  2. Salin dan tempel kode berikut ke dalam skrip baru. Contoh ini meningkatkan kecepatan bergerak/mutar berbasis tanah dan menambahkan sedikit waktu percepatan dan perlambatan. Silakan sesuaikan properti lain seperti yang dijelaskan dalam tabel di atas atau untuk setiap kelas seperti yang didokumentasikan (ControllerManager; GroundController; AirController; ClimbController; SwimController).

    Skrip di ServerScriptService

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    local ControllerManager = character:FindFirstChildWhichIsA("ControllerManager")
    if ControllerManager then
    local GroundController = ControllerManager:FindFirstChild("GroundController")
    if GroundController then
    -- Gandakan kecepatan gerak dan putar
    GroundController.MoveSpeedFactor *= 2
    GroundController.TurnSpeedFactor *= 2
    -- Tambahkan sedikit percepatan dan perlambatan
    GroundController.AccelerationTime = 0.2
    GroundController.DecelerationTime = 0.4
    end
    end
    end
    local function onPlayerAdded(player)
    if player.Character then
    onCharacterAdded(player.Character)
    end
    player.CharacterAdded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.