Memindahkan objek adalah objek yang bergerak di satu atau lebih sumbu dalam ruang 3D.Menggunakan kekuatan bawaan dari mesin simulasi Roblox, Anda dapat membuat objek bergerak dan berinteraksi dengan lingkungan mereka dengan cara yang meniru perilaku fisik dunia nyata yang akrab dan intuitif bagi pemain, seperti gravitasi, aerodinamika, dan gesekan.
Menggunakan file Objek Bergerak.rbxl sebagai referensi, tutorial ini menjelaskan bagaimana kekuatan fisik mempengaruhi gerakan linier di Studio, dan menunjukkan berbagai teknik untuk memindahkan objek dari titik A ke titik B dalam pengalaman Anda dengan perilaku gerakan yang berbeda, termasuk panduan tentang:
- Menggunakan batas penggerak LinearVelocity untuk memindahkan seluruh assemblasi pada kecepatan linier konstan.
- Menggunakan PrismaticConstraint untuk membatasi kumpulan ke satu sumbu dan memindahkannya dengan kecepatan linier konstan relatif terhadap titik di ruang 3D.
- Menggunakan metode ApplyImpulse untuk memindahkan kumpulan dengan dorongan awal kekuatan sehingga kumpulan perlahan memperlambat seiring waktu.
Gerakan linier dan gaya fisik
Roblox Studio adalah mesin simulasi dunia nyata yang meniru perilaku fisik secara real time, jadi untuk memprediksi bagaimana objek bergerak secara linier dapat berperilaku dalam pengalaman, penting untuk memiliki pemahaman tingkat tinggi tentang bagaimana objek bergerak dalam kehidupan nyata dengan gerakan linier. Gerakan linier adalah gerakan di sepanjang sumbu. Misalnya, ketika blok memiliki gerakan linier, ia bergerak di sepanjang sumbu tertentu.

Gerakan linier tidak dapat ada tanpa kekuatan fisik eksternal yang mendorong atau menarik objek untuk bergerak.Menurut hukum gerakan pertama Newton , objek statis tetap statis dan objek bergerak tetap bergerak dengan kecepatan konstan kecuali mereka ditindas oleh kekuatan eksternal.Sebagai contoh, blok tetap tetap tetap tidak bergerak kecuali dorongan fisik seperti angin mendorongnya untuk bergerak.
Kekuatan adalah ukuran arah dan besarnya dorongan atau tarikan fisik yang menyebabkan objek mengubah kecepatan linier mereka di sepanjang sumbu.Perubahan kecepatan dikenal sebagai akselerasi .Konsep ini sangat penting bagi objek untuk bergerak di Studio; semakin banyak kekuatan yang Anda terapkan pada objek, semakin cepat mereka mempercepat.
Ini karena kekuatan harus lebih besar dari setiap kekuatan fisik yang mendorong kembali terhadap objek, seperti gravitasi atau gesekan.Sebagai contoh, jika Anda menempatkan blok di atas pelat logam, kekuatan fisik angin perlu mengatasi jumlah gesekan dari pelat logam untuk melanjutkan mempercepat blok.Jika kekuatan angin tidak jauh lebih besar dari gesekan dari pelat logam, blok mempercepat, hanya lebih lambat dari contoh sebelumnya.

Kecepatan linear adalah ukuran gerakan objek, atau seberapa cepat objek mengubah posisinya di sepanjang sumbu dalam jangka waktu tertentu.Studio mengukur kecepatan linier sesuai dengan berapa banyak stud yang bergerak per detik oleh objek.Paku adalah unit fisik utama Roblox untuk mengukur panjang, dan setiap paku setara dengan sekitar 28cm di dunia nyata.

Memahami kecepatan linier penting untuk merancang permainan dalam pengalaman Anda karena membantu Anda menentukan berapa banyak kekuatan yang Anda butuhkan untuk mencapai kecepatan tertentu untuk objek bergerak Anda.Sebagai contoh, ketika Anda ingin mendorong objek ke atas, penting untuk mempertimbangkan bagaimana Anda harus menyesuaikan kekuatan untuk mengatasi gravitasi di dalam lingkungan sehingga objek bergerak dengan akurat.
Bagian berikut melangkah lebih jauh ke dalam konsep ini saat Anda belajar cara memindahkan objek pada kecepatan konstan atau linier awal dengan kekuatan yang diperlukan untuk mengatasi setiap kekuatan fisik oposisional di dalam lingkungan.Saat Anda meninjau konsep fisika ini dengan teknik yang akan datang, Anda dapat lebih akurat memprediksi cara menyesuaikan nilai properti untuk mencapai perilaku gerakan linier ideal di Studio.
Menyimpan kecepatan linier konstan
Untuk objek untuk mencapai dan mempertahankan kecepatan linier konstan, ia membutuhkan kekuatan untuk mengatasi setiap kekuatan fisik yang menurunkan kecepatan linier objek, atau menyebabkan objek tetap diam.Sebagai contoh, jika Anda ingin objek memiliki kecepatan linier [0, 12, 0] di Studio, Anda membutuhkan cukup kekuatan untuk objek untuk mencapai dan mempertahankan 12 kancing per detik di sepanjang sumbu Y di lingkungannya.
Jumlah kekuatan yang diperlukan tidak hanya tergantung pada kekuatan fisik oposisional di dalam lingkungan itu sendiri, seperti gravitasi dan gesekan, tetapi juga pada objek itu sendiri.Sebagai contoh, jika Anda memiliki dua objek dengan bentuk yang sama yang bergerak di sumbu yang sama, objek dengan jumlah massa yang lebih besar membutuhkan lebih banyak kekuatan untuk mencapai akselerasi linier yang sama.
Subbagian berikut menggunakan assemblies berbagai bentuk dan ukuran untuk mengajarkan Anda cara memindahkan seluruh objek atau hanya sebagian dari objek pada kecepatan linier konstan.Saat Anda bereksperimen dengan nilai properti yang berbeda, Anda akan belajar cara memperkirakan jumlah maksimum kekuatan yang Anda butuhkan untuk kumpulan pengalaman Anda sendiri.
Gunakan batasan Kecepatan Linier
LinearVelocity objek adalah jenis batas penggerak yang menerapkan kekuatan pada seluruh assemblasi untuk menjaga kecepatan linier konstan.Dengan tidak mengunci posisi kumpulan ke sumbu selama gerakannya, kumpulan bebas berputar saat bertabrakan dengan objek lain di ruang 3D.Jenis gerakan ini menyebabkan skenario permainan mengejutkan yang lebih sulit diprediksi oleh pemain.
Untuk mulai memindahkan kumpulan, batasan LinearVelocity perlu tahu:
- Titik dan arah positif atau negatif untuk menerapkan kekuatan.
- Jumlah stud yang ingin Anda pindahkan per detik oleh kumpulan.
- Jumlah maksimum kekuatan yang dapat diterapkan mesin untuk montasi untuk mencapai kecepatan linier konstan.
Untuk menunjukkan proses ini, Anda akan mengkonfigurasi alas lily dengan lampiran yang merujuk pada batasan LinearVelocity kunci untuk memindahkan alas lily 15 stud per detik di sepanjang sumbu negatif X dunia pada kecepatan linier konstan.

Tambahkan lampir
Anda dapat menentukan titik untuk menerapkan kekuatan dengan menambahkan objek Attachment ke kumpulan, lalu mengkonfigurasi posisi lampiran di ruang 3D.Sampel Objek Bergerak pengalaman menempatkan lampiran di pusat lily pad sehingga batasan dapat memindahkan mesh dari lampiran di sepanjang sumbu tertentu.
Lampiran termasuk bantuan visual untuk membantu Anda memvisualisasikan sumbu gerakan mereka.Panah kuning menunjukkan sumbu utama lampiran, dan panah oranye menunjukkan sumbu sekunder lampiran.Meskipun tidak ada sumbu gerakan yang mempengaruhi gerakan pelat lily di langkah-langkah teknik ini, penting untuk memahami bantuan visual ini untuk referensi masa depan karena mereka dapat membantu Anda menentukan perilaku ideal untuk berbagai jenis batasan, seperti PrismaticConstraint di teknik berikutnya.

Untuk menambahkan lampir:
Di jendela Explorer , perluas folder LinearVelocityExample , lalu perluas model anaknya LilyPad_DIY .
Masukkan lampir ke dalam mesh Pad .
- Pasang mouse di atas mesh dan klik tombol ⊕. Menu konteks ditampilkan.
- Dari menu, sisipkan lampiran . Lampiran ditampilkan di tengah bagian.
- Ganti nama lampir menjadi MoveAttachment .
Konfigurasi batasan
Sekarang mesh Anda memiliki titik tetap untuk memindahkan alas lily, Anda dapat mengkonfigurasi properti kontraksi LinearVelocity untuk menentukan arah dan besaran kecepatan linier konstan, jumlah stud yang ingin Anda pindahkan per detik, dan jumlah maksimum kekuatan yang dapat diterapkan mesin untuk mencapai kecepatan linier konstan.
Pengalaman contoh Objek Bergerak menerapkan hingga 5000 Rowtons dari gaya konstan untuk memindahkan alas lily 15 kancing per detik di sepanjang sumbu negatif X dunia dengan kecepatan linier konstan.Rowtons adalah unit fisik utama Roblox untuk mengukur kekuatan.Untuk merujuk pada unit fisik Roblox dan bagaimana mereka dikonversi ke unit metrik, lihat Unit Roblox.
Untuk mengkonfigurasi batasan LinearVelocity :
(Opsi) Buat batasan terlihat di ruang 3D sehingga Anda dapat merujuk ke arah liniernya.
- Navigasikan ke tab Model di bilah alat, lalu bagian Batasan .
- Jika saat ini tidak diaktifkan, klik Detail Batasan untuk menampilkan bantuan visual batasan.
Masukkan batasan LinearVelocity ke dalam mesh Pad .
- Di jendela Explorer , gulir di atas mesh, lalu klik ikon ⊕. Menu konteks ditampilkan.
- Dari menu konteks, masukkan Kecepatan Linear .
Ambil lampiran mesh ke kondisi baru.
- Di jendela Explorer , pilih batasan.
- Di jendela Properti ,
- Tetapkan lampiran0 ke MoveAttachment .
- Tetapkan MaxForce ke 5000 untuk menerapkan hingga 5000 Rowtons dari gaya konstan untuk mencapai kecepatan linier target.
- Simpan RelativeTo ke Dunia untuk memindahkan alas lily relatif terhadap posisi dan orientasi dunia.
- Tetapkan Batas Kecepatan ke Garis untuk membatasi kekuatan di sepanjang garis dari lampiran.
- Tetapkan Arah Garis ke -1, 0, 0 untuk memindahkan alas lily di sepanjang sumbu negatif X dunia.Perhatikan bahwa jika Anda mengatur properti ini ke 1, 0, 0 lily pad akan bergerak di sepanjang sumbu positif X dunia.
- Tetapkan Kecepatan Garis ke 15 untuk memindahkan alas lily 15 kancing per detik.
Verifikasikan jumlah gaya yang Anda atur memindahkan mesh 15 kancing per detik di sepanjang sumbu negatif X dunia.
- Di bilah alat, navigasikan ke tab Tes .
- Pilih Jalankan dari mode playtest. Studio menyimulasikan pengalaman di posisi kamera saat ini tanpa avatar Anda di ruang 3D.
Gunakan batasan Prismatik terikat
PrismaticConstraint objek adalah jenis batasan mekanis yang membuat persambungan kaku antara dua lampiran, memungkinkan asambe-nya orang tua untuk bergerak di sepanjang satu sumbu relatif terhadap satu sama lain .Dengan mengunci posisi kedua assemblies ke satu sumbu, setiap assemblies hanya dapat berputar jika mereka berputar bersama-sama ke arah yang sama.
Jenis gerakan ini mengarah pada skenario permainan stabil yang lebih mudah diprediksi oleh pemain.Sebagai contoh, pengalaman sampel Objek Bergerak menggunakan objek PrismaticConstraint untuk memindahkan platform log yang dapat digunakan pemain untuk hati-hati melintasi sungai raksasa.
Ketika Anda mengatur PrismaticConstraint.ActuatorType ke Motor , batasan ini menerapkan kekuatan pada dua lampir dengan tujuan lampir mencapai dan mempertahankan kecepatan linier konstan.Jika Anda mengaitkan salah satu assemblasi orangtua lampiran, kekuatan terus memindahkan assemblasi yang tidak diikat pada kecepatan linier konstan sementara assemblasi yang diikat tetap diam.
Untuk mulai memindahkan kumpulan, batasan PrismaticConstraint perlu tahu:
- Titik dan arah positif atau negatif untuk menerapkan kekuatan.
- Jumlah stud yang ingin Anda pindahkan lampir per detik.
- Jumlah maksimum kekuatan yang dapat diterapkan mesin untuk lampiran dan kumpulan orangtuanya untuk mencapai kecepatan linier konstan.
Untuk menunjukkan proses ini, Anda akan mengkonfigurasi pengumpulan log dengan dua objek yang memiliki lampiran anak yang memindahkan log 40 kancing per detik di sepanjang sumbu negatif X dunia dengan kecepatan linier konstan.

Konfigurasi lampiran
Anda dapat menentukan arah untuk memindahkan objek tertentu dalam kumpulan dengan menambahkan dua objek Attachment ke kumpulan, kemudian mengkonfigurasi alineasi dan orientasi mereka di ruang 3D.Pengalaman sampel Objek Bergerak mengalinekan dua lampiran di sepanjang sumbu X dunia di dekat posisi di mana log yang tidak diikat tumpang dengan bagian yang diikat, dan atau mengarahkan sumbu utama masing-masing lampiran ke sumbu negatif X dunia.
Ketika Anda mengkonfigurasi batasan PrismaticConstraint Anda di bagian berikutnya, itu akan memindahkan log dalam kaitan ke bagian pelampung.Dengan kata lain, log akan bergerak menjauh dari bagian tetap yang tidak bisa bergerak karena diikat di ruang 3D.
Untuk mengkonfigurasi lampiran untuk kondisi prismatik:
Di jendela Explorer , perluas folder PrismaticConstraintExample , lalu perluas model anaknya Log_DIY .
Masukkan lampir ke dalam mesh Log .
- Pasang mouse di atas mesh dan klik tombol ⊕. Menu konteks ditampilkan.
- Dari menu, sisipkan lampiran . Lampiran ditampilkan di tengah bagian.
- Ganti nama lampir menjadi LogAttachment .
Menggunakan proses yang sama, masukkan lampir ke bagian Anchor , lalu ganti nama lampir AnchorAttachment .
Menggunakan alat Selector Pandangan sebagai referensi untuk koordinat dunia, putar LogAttachment dan AnchorAttachment sampai setiap sumbu utama lampiran menghadap sumbu negatif X dunia
Reposisikan AnchorAttachment sehingga kedua lampiran diatur pada sumbu X dunia.
Konfigurasi batasan
Sekarang lampiran Anda diatur pada sumbu yang sama dan menghadap arah yang sama yang Anda ingin log bergerak, Anda dapat mengkonfigurasi properti kontraksi PrismaticConstraint untuk menentukan apakah akan menerapkan konstan kecepatan linier target dalam arah positif atau negatif dari sumbu utama setiap lampiran, jumlah stud yang ingin lampiran bergerak per detik, dan jumlah maksimum kekuatan yang dapat diterapkan mesin untuk mencapai kecepatan linier konstan konstan.
Sementara Anda dapat memilih nilai berbeda untuk kasus penggunaan sendiri, pengalaman contoh Memindahkan Objek menerapkan hingga 50000 Rowtons dari gaya konstan untuk memindahkan lampiran 40 radian per detik di sepanjang sumbu negatif X dunia dengan kecepatan linier konstan.Namun, karena lampiran anker berada di objek yang diikat, hanya lampiran log yang bisa bergerak.
Untuk mengkonfigurasi batas prismatik:
Masukkan objek PrismaticConstraint ke dalam mesh Log .
- Di jendela Explorer , gulir di atas mesh, lalu klik ikon ⊕. Menu konteks ditampilkan.
- Dari menu konteks, masukkan Kontraksi Prismatik .
Atribusikan lampir log ke kondisi baru sehingga log bergerak dalam hubungan dengan bagian blok yang diikat.
- Di jendela Explorer , pilih batasan.
- Di jendela Properti ,
- Tetapkan Attachment0 ke AnchorAttachment .
- Tetapkan Attachment1 ke LogAttachment . Syarat tersebut ditampilkan di jendela pandang.
Di jendela Explorer , pilih batasan, lalu di jendela Properti,
- Atur Tipe Aktuator ke Motor . Lapangan properti baru ditampilkan.
- Tetapkan MotorMaxForce ke 50000 untuk menerapkan hingga 50000 Rowtons dari gaya konstan untuk mencapai kecepatan linier target.
- Tetapkan Kecepatan untuk 40 untuk memindahkan log 40 kancing per detik.
Verifikasi jumlah kekuatan yang Anda atur memindahkan log 40 kancing per detik di sepanjang sumbu negatif X dunia.
- Di bilah alat, navigasikan ke tab Tes .
- Pilih Jalankan dari mode playtest. Studio menyimulasikan pengalaman di posisi kamera saat ini tanpa avatar Anda di ruang 3D.
Terapkan gaya linier awal
Cara lain untuk mengubah kecepatan linier objek adalah dengan menerapkan impuls kekuatan.Setelah dorongan kekuatan, objek juga memperlambat sampai menjadi statis jika ada kekuatan oposisional seperti gesekan, atau tetap bergerak dengan kecepatan linier konstan jika tidak ada kekuatan oposisional.
Teknik ini berguna untuk memindahkan objek setelah peristiwa permainan signifikan, seperti ledakan atau tabrakan yang berdampak, karena memberikan umpan balik instan kepada pemain.Untuk menunjukkan, bagian berikut menunjukkan cara meluncurkan karakter pemain ke atas menuju langit saat mereka bertabrakan dengan pad lompat dengan dorongan awal yang dapat Anda sesuaikan dengan nilai baru untuk memenuhi persyaratan permainan Anda.
Gunakan ApplyImpulse
Metode ApplyImpulse menerapkan kekuatan pada seluruh assemblasi untuk mendapatkan kecepatan linier awal sebelum memperlambat ke berhenti saat ada kekuatan oposisi.Untuk mulai memindahkan kumpulan, metode perlu tahu:
- Kumpulan untuk dipindahkan.
- Sumbu untuk menerapkan kekuatan untuk mencapai kecepatan linier awal.
- Jumlah kekuatan untuk diterapkan pada setiap sumbu.
Anda dapat mendefinisikan semua nilai ini dalam skrip.Sebagai contoh, skrip sampel mendefinisikan pengumpulan untuk bergerak sebagai objek karakter pemain Humanoid , kemudian menerapkan dorongan kekuatan yang 2500 detik Rowton untuk meluncurkan pemain ke atas di sumbu positif Y dunia.Perhatikan bahwa karakter pemain memiliki jumlah massa yang berbeda, jadi Anda mungkin perlu meningkatkan dan menyeimbangkan kekuatan ini untuk meluncurkan setiap pemain tanpa meluncurkan karakter pemain dengan jumlah massa yang lebih kecil terlalu tinggi.
Untuk memindahkan kumpulan menggunakan ApplyImpulse :
Di jendela Explorer , perluas folder ApplyImpulseExample , lalu perluas model anaknya JumpPad_DIY .
Masukkan skrip ke bagian JumpPad .
- Pasang mouse di atas bagian dan klik tombol ⊕. Menu konteks ditampilkan.
- Dari menu, masukkan Skrip . Lampiran ditampilkan di tengah bagian.
- Ganti nama skrip menjadi JumpScript .
Ganti kode default dengan kode berikut:
local volume = script.Parentlocal function onTouched(other)local impulse = Vector3.new(0, 2500, 0)local character = other.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and other.Name == "LeftFoot" thenother:ApplyImpulse(impulse)endendvolume.Touched:Connect(onTouched)