Objek berputar adalah objek yang berputar pada satu atau lebih sumbu dalam ruang 3D. Dengan menggunakan kekuatan bawaan dari mesin simulasi Roblox, Anda dapat membuat objek berputar dan berinteraksi dengan lingkungan mereka dengan cara yang mensimulasikan perilaku fisik dunia nyata yang familiar dan intuitif bagi pemain, seperti gravitasi, aerodinamika, dan gesekan.
Menggunakan file Spinning Objects .rbxl sebagai referensi, tutorial ini menjelaskan bagaimana gaya fisika mempengaruhi gerakan sudut di Studio, dan menunjukkan berbagai teknik untuk memutar objek dalam pengalaman Anda dengan perilaku pemutaran yang berbeda, termasuk petunjuk tentang:
- Menggunakan AngularVelocity penghalang pemindah untuk memutar seluruh rakitan dengan kecepatan sudut konstan.
- Menggunakan HingeConstraint penghalang mekanis untuk memutar bagian di dalam rakitan dengan kecepatan sudut konstan sementara sisa rakitan tetap diam.
- Menggunakan metode ApplyAngularImpulse untuk memutar rakitan dengan dorongan awal gaya sudut sehingga rakitan melambat seiring waktu.
Gerakan sudut dan gaya fisik
Roblox Studio adalah mesin simulasi dunia nyata yang mensimulasikan perilaku fisik secara real-time, jadi untuk memprediksi perilaku objek berputar dalam pengalaman, penting untuk memiliki pemahaman tingkat tinggi tentang bagaimana objek berputar dalam kehidupan nyata dengan gerakan sudut.
Gerakan sudut, atau gerakan rotasi, adalah pergerakan di sekitar titik tetap atau sumbu. Misalnya, ketika sebuah baling-baling memiliki gerakan sudut, ia berputar di sekitar sumbu rotasinya di tengah baling-baling tersebut.

Gerakan sudut tidak dapat ada tanpa gaya fisik eksternal yang mendorong atau menarik objek untuk berputar. Menurut hukum gerak pertama Newton, objek diam tetap diam dan objek yang bergerak tetap bergerak dengan kecepatan konstan kecuali jika terpengaruh oleh gaya eksternal. Misalnya, sebuah baling-baling yang diam akan tetap diam kecuali gaya fisik seperti angin mendorongnya untuk berputar.
Torsi adalah ukuran gaya fisik yang menyebabkan objek berputar, dan bertanggung jawab untuk objek mendapatkan percepatan sudut. Konsep ini sangat penting untuk objek berputar di Studio; semakin banyak torsi yang Anda terapkan pada objek, semakin cepat mereka dapat mempercepat.
Ini karena torsi harus lebih besar dari gaya fisik arah yang mendorong kembali terhadap objek, seperti gravitasi atau gesekan. Misalnya, jika Anda meletakkan baling-baling di dalam tanah, gaya fisik dari angin perlu mengatasi jumlah gesekan dari tanah untuk melanjutkan mempercepat baling-baling yang berputar. Jika gaya angin tidak jauh lebih besar dari gesekan dari tanah, baling-baling akan mempercepat, hanya saja lebih lambat daripada contoh sebelumnya.

Kecepatan sudut adalah ukuran dari laju rotasi suatu objek, atau seberapa cepat objek berputar di sekitar titik tetap atau sumbu selama periode waktu. Studio mengukur kecepatan sudut sesuai berapa banyak radian yang diputar objek per detik. Ada 2π radian (6.283) dalam satu putaran, jadi untuk suatu objek melakukan satu putaran penuh per detik, ia harus memiliki cukup torsi untuk berputar sekitar 6 radian. Memahami kecepatan sudut penting untuk merancang gameplay dalam pengalaman Anda karena ini membantu Anda menentukan berapa banyak torsi yang Anda butuhkan untuk mencapai percepatan tertentu untuk objek berputar Anda.
Bagian berikut menyelam lebih dalam ke dalam konsep-konsep ini saat Anda belajar bagaimana cara memutar objek dengan kecepatan sudut konstan atau awal dengan torsi yang diperlukan untuk mengatasi gaya fisik yang berlawanan dalam lingkungan. Saat Anda meninjau konsep-konsep fisika ini dengan teknik yang akan datang, Anda dapat lebih akurat memprediksi bagaimana menyesuaikan nilai properti untuk mencapai setiap perilaku berputar yang ideal di Studio.
Pertahankan gaya sudut konstan
Agar sebuah objek mencapai dan mempertahankan kecepatan sudut konstan, ia membutuhkan gaya sudut untuk mengatasi gaya fisik yang berlawanan yang dapat mengurangi kecepatan sudut objek, atau menyebabkan objek tetap diam. Misalnya, jika Anda ingin objek memiliki kecepatan sudut [0, 12, 0] di Studio, Anda perlu cukup torsi untuk objek mencapai dan mempertahankan 12 radian per detik di sepanjang sumbu Y di dalam lingkungannya, atau sekitar dua putaran penuh per detik.
Jumlah torsi yang Anda terapkan pada objek Anda tidak hanya bergantung pada gaya fisik yang berlawanan di dalam lingkungan itu sendiri, seperti gravitasi dan gesekan, tetapi juga pada objek itu sendiri. Misalnya, jika Anda memiliki dua objek dengan bentuk yang sama yang berputar pada sumbu yang sama, objek yang lebih besar dengan momen inersia yang lebih besar memerlukan lebih banyak torsi untuk mencapai percepatan sudut yang sama.
Subbagian berikut menggunakan rakitan dengan bentuk dan ukuran yang berbeda untuk mengajarkan Anda bagaimana cara memutar baik seluruh objek atau hanya sebagian dari objek. Saat Anda bereksperimen dengan nilai properti yang berbeda, Anda akan belajar bagaimana memperkirakan jumlah maksimum torsi yang Anda butuhkan untuk rakitan dalam pengalaman Anda sendiri.
Gunakan pembatas AngularVelocity
Objek AngularVelocity adalah jenis penghalang pemindah yang menerapkan torsi pada seluruh rakitan untuk mempertahankan kecepatan sudut konstan. Untuk mulai memutar rakitan, penghalang AngularVelocity perlu mengetahui:
- Titik dan arah positif atau negatif untuk menerapkan gaya sudut.
- Jumlah radian yang Anda inginkan agar rakitan berputar per detik.
- Jumlah maksimum torsi yang dapat diterapkan mesin agar rakitan mencapai kecepatan sudut konstan.
Untuk mendemonstrasikan proses ini, Anda akan menambahkan sebuah blok ke workspace Anda dengan sebuah lampiran yang akan dirujuk oleh penghalang AngularVelocity untuk memutar blok 6 radian per detik di sepanjang sumbu Y dunia dengan kecepatan sudut konstan, atau sekitar satu putaran penuh.

Tambahkan lampiran
Anda dapat menentukan titik tetap untuk memutar rakitan dengan menambahkan objek Attachment ke rakitan, kemudian mengkonfigurasi posisi lampiran dalam ruang 3D. Pengalaman contoh Spinning Objects menempatkan lampiran di pusat sebuah bagian blok sehingga penghalang dapat memutar bagian tersebut berlawanan arah jarum jam di sekitar pusatnya sendiri.
Lampiran mencakup alat visual untuk membantu Anda memvisualisasikan sumbu rotasinya. Panah kuning menunjukkan sumbu utama lampiran, dan panah oranye menunjukkan sumbu sekunder lampiran. Sementara tidak ada sumbu rotasi yang mempengaruhi rotasi blok dalam langkah-langkah teknik ini, penting untuk memahami alat visual ini untuk referensi di masa depan karena ini dapat membantu Anda menentukan perilaku ideal untuk berbagai jenis penghalang, seperti HingeConstraint di teknik berikutnya.

Untuk menambahkan lampiran:
Di jendela Explorer, masukkan sebuah bagian blok ke dalam Workspace.

Masukkan sebuah lampiran ke bagian baru.
- Di jendela Explorer, arahkan kursor ke bagian tersebut dan klik tombol ⊕. Menu kontekstual muncul.
- Dari menu, masukkan Lampiran. Lampiran muncul di tengah bagian.
- Ubah nama lampiran menjadi SpinAttachment.

Konfigurasi penghalang
Sekarang agar blok Anda memiliki titik tetap untuk memutar blok, Anda dapat mengkonfigurasi properti dari penghalang AngularVelocity untuk menentukan arah rotasi, sumbu atau sumbu yang diterapkan untuk mencapai kecepatan sudut konstan, jumlah radian yang Anda inginkan agar blok berputar per detik, dan jumlah maksimum torsi yang dapat diterapkan mesin untuk memungkinkan blok mencapai kecepatan sudut konstan.
Pengalaman contoh Spinning Objects menerapkan hingga 1000 Rowton-studs gaya sudut konstan untuk memutar blok 6 radian per detik di sepanjang sumbu Y dunia dengan kecepatan sudut konstan. Rowton-studs adalah unit fisik utama Roblox untuk mengukur torsi. Untuk merujuk unit fisik Roblox dan bagaimana mereka dikonversi ke unit metrik, lihat Roblox Units.
Untuk mengkonfigurasi penghalang AngularVelocity:
Agar penghalang terlihat dalam viewport sehingga Anda dapat merujuk arah rotasinya, aktifkan Tampilkan Detail Penghalang dari menu Tampilan Studio.
Masukkan penghalang AngularVelocity ke bagian.
- Di jendela Explorer, arahkan kursor ke bagian, lalu klik ikon ⊕. Menu kontekstual muncul.
- Dari menu kontekstual, masukkan AngularVelocity. Alat visual penghalang akan muncul di tengah bagian.
Tetapkan lampiran bagian ke penghalang baru.
- Di jendela Explorer, pilih penghalang tersebut.
- Di jendela Properties,
- Atur Attachment0 ke SpinAttachment.
- Atur AngularVelocity ke 0, 6, 0 untuk memutar bagian 6 radian per detik di sepanjang sumbu Y. Perhatikan bahwa jika Anda mengatur properti ini ke 0, -6, 0, blok akan berputar searah jarum jam.
- Atur MaxTorque ke 1000 untuk menerapkan hingga 1000 Rowton-studs gaya sudut konstan per detik untuk mencapai kecepatan sudut target.
- Biarkan RelativeTo sebagai World untuk memutar blok relatif terhadap posisi dan orientasi dunia.

Verifikasi jumlah torsi yang Anda atur memutar blok 6 radian per detik di sepanjang sumbu Y dunia.
Pilih mode simulasi Run dari menu dropdown mezzanine dan klik tombol Play untuk memulai. Studio mensimulasikan pengalaman di posisi kamera saat ini tanpa avatar Anda dalam ruang 3D.

Anda mungkin perlu menyesuaikan torsi Anda tergantung pada skala blok Anda dan gaya fisik yang berlawanan di lingkungan Anda. Misalnya, properti penghalang AngularVelocity dalam pengalaman contoh ini bekerja untuk bagian blok dengan ukuran default 4, 1, 2 di atas platform datar dengan material plastik, dan lingkungan dengan gravitasi preset klasik.
Namun, jika blok Anda berukuran lebih besar dan berada di terrain rumput, Anda perlu meningkatkan properti AngularVelocity.MaxTorque Anda karena gaya sudut perlu mengatasi baik massa blok dan gesekan dari lingkungan. Misalnya, bagian blok besar yang empat kali lipat ukuran bagian contoh memerlukan setidaknya 300000 Rowton-studs gaya sudut konstan untuk mencapai kecepatan sudut yang ditetapkan!
Gunakan penghalang HingeConstraint
Objek HingeConstraint adalah jenis penghalang mekanis yang memungkinkan dua lampiran berputar di sekitar satu sumbu, membatasi lampiran pada posisi yang sama dan sumbu utama mereka dalam arah yang sama. Ketika Anda mengatur HingeConstraint.ActuatorType ke Motor, penghalang ini menerapkan torsi pada kedua lampiran dengan tujuan agar lampiran mencapai dan mempertahankan kecepatan sudut konstan.
Lebih jauh lagi, ketika Anda menempatkan lampiran ke dalam sebuah rakitan dengan dua objek, objek-objek tersebut terkunci bersama dan mencoba berputar bersama sesuai dengan sumbu utama lampiran yang tetap. Jika Anda menambatkan salah satu objek ini, gaya sudut terus memutar objek lain pada kecepatan sudut konstan sementara sisa rakitan tetap diam.
Misalnya, untuk mulai memutar objek tertentu dalam rakitan, penghalang HingeConstraint perlu mengetahui:
- Posisi di mana Anda ingin lampiran saling tumpang tindih.
- Titik dan arah positif atau negatif untuk menerapkan gaya sudut.
- Jumlah radian yang Anda inginkan lampiran untuk berputar per detik.
- Jumlah maksimum torsi yang dapat diterapkan mesin untuk lampiran mencapai kecepatan sudut konstan.
Untuk mendemonstrasikan proses ini, Anda akan menambahkan rakitan baling-baling dengan dua objek ke workspace Anda dengan lampiran di kedua objek yang dirujuk oleh penghalang HingeConstraint untuk memutar baling-baling 3 radian per detik (sekitar setengah putaran penuh per detik) di sepanjang sumbu Y dengan kecepatan sudut konstan sementara dasar baling-baling tetap diam.

Dapatkan aset baling-baling
Creator Store adalah tab dari Toolbox yang dapat Anda gunakan untuk menemukan semua aset yang dibuat oleh Roblox dan komunitas Roblox untuk digunakan dalam proyek Anda, termasuk model, gambar, mesh, audio, plugin, video, dan aset font. Anda dapat menggunakan Creator Store untuk menambahkan aset individual atau perpustakaan aset langsung ke dalam pengalaman yang terbuka.
Tutorial ini merujuk pada model baling-baling yang dapat Anda gunakan saat Anda meniru setiap langkah teknik HingeConstraint untuk memutar objek. Untuk mendapatkan aset baling-baling ini dari inventaris Anda ke dalam pengalaman Anda:
Tambahkan baling-baling ke inventaris Anda.
- Navigasikan ke halaman detail aset di Creator Store.
- Di sudut kanan atas, klik tombol Dapatkan Model. Aset baling-baling sekarang berada di inventaris Anda, dan Anda dapat menggunakannya kembali di proyek mana pun di platform.
Di Studio, navigasikan ke tab Home, lalu klik tombol Toolbox. Jendela Toolbox terbuka.

Di jendela Toolbox, klik tab Inventaris. Sortir Model Saya ditampilkan.

Klik ubin Baling-baling. Model ditampilkan di viewport Anda.

Konfigurasi lampiran
Anda dapat menentukan baik posisi di mana Anda ingin lampiran tumpang tindih dan arah gerakan rotasi untuk memutar objek tertentu dalam rakitan dengan menambahkan dua objek Attachment ke rakitan, lalu mengkonfigurasi penyelarasan dan orientasi mereka dalam ruang 3D.
Pengalaman contoh Spinning Objects menyelaraskan dua lampiran dekat posisi di mana baling-baling yang tidak terikat tumpang tindih dengan dasar yang terikat, dan mengorientasikan sumbu utama rotasinya ke atas sehingga mereka berputar berlawanan arah jarum jam. Lampiran dasar tidak dapat berputar dalam contoh ini karena dasarnya terikat.
Untuk mengkonfigurasi lampiran untuk penghalang hinge:
Masukkan objek Attachment ke Head dan Base.
- Di jendela Explorer, arahkan kursor ke Head dan klik tombol ⊕. Menu kontekstual muncul.
- Dari menu, masukkan Lampiran.
- Ulangi proses ini untuk Base.
- Ubah nama kedua lampiran menjadi HeadAttachment dan BaseAttachment, masing-masing.

Putar HeadAttachment dan BaseAttachment sehingga sumbu utama masing-masing lampiran mengarah ke atas di sumbu Y. Ini memberi tahu Studio untuk memutar lampiran berlawanan arah jarum jam.

Pindahkan BaseAttachment ke bagian atas Base, dan HeadAttachment ke tepi bawah Baling-baling. Ini memberi tahu Studio di mana menghubungkan engsel itu sendiri, dan menumpuk kedua lampiran di waktu jalan.

Konfigurasi penghalang
Sekarang bahwa lampiran Anda memiliki posisi untuk tumpang tindih dan arah gerakan rotasi, Anda dapat mengkonfigurasi properti dari penghalang HingeConstraint untuk menentukan jumlah radian yang Anda inginkan lampiran berputar per detik, dan jumlah maksimum torsi yang dapat diterapkan mesin untuk memungkinkan lampiran mencapai kecepatan sudut konstan.
Sama seperti teknik sebelumnya, pengalaman contoh Spinning Objects menerapkan hingga 1000 Rowton-studs gaya sudut konstan untuk memutar lampiran 3 radian per detik di sepanjang sumbu Y dengan kecepatan sudut konstan. Namun, karena lampiran dasar berada dalam objek yang terikat, hanya lampiran baling-baling yang dapat berputar.
Untuk mengkonfigurasi penghalang engsel:
Masukkan objek HingeConstraint ke Head.
- Di jendela Explorer, arahkan kursor ke Head, lalu klik ikon ⊕. Menu kontekstual muncul.
- Dari menu kontekstual, masukkan HingeConstraint.
Tetapkan lampiran baling-baling ke penghalang baru agar baling-baling berputar berkaitan dengan dasar yang terikat.
- Di jendela Explorer, pilih penghalang tersebut.
- Di jendela Properties,
- Atur Attachment0 ke BaseAttachment.
- Atur Attachment1 ke HeadAttachment. Engsel akan ditampilkan di viewport.

Di jendela Explorer, pilih penghalang tersebut, lalu di jendela Properties,
- Atur ActuatorType ke Motor. Bidang properti baru akan muncul.
- Atur MotorMaxTorque ke 1000 untuk menerapkan hingga 1000 Rowton-studs gaya sudut konstan untuk mencapai kecepatan sudut target.
- Atur AngularVelocity ke 3 untuk memutar kepala baling-baling 3 radian per detik.

Verifikasi jumlah torsi yang Anda atur memutar baling-baling 3 radian per detik di sepanjang sumbu Y.
Pilih mode simulasi Run dari menu dropdown mezzanine dan klik tombol Play untuk memulai. Studio mensimulasikan pengalaman di posisi kamera saat ini tanpa avatar Anda dalam ruang 3D.

Terapkan gaya sudut awal
Cara lain untuk mengubah kecepatan sudut objek adalah dengan menerapkan impuls gaya sudut. Setelah impuls gaya sudut, objek akan memperlambat sampai berhenti jika ada gaya yang bertentangan seperti gesekan, atau tetap bergerak dengan kecepatan konstan jika tidak ada gaya yang bertentangan.
Teknik ini berguna untuk memutar objek setelah peristiwa gameplay atau cuaca yang signifikan, seperti hembusan angin kencang, karena memberikan umpan balik instan kepada pemain. Untuk mendemonstrasikan, subbagian berikut mengajarkan Anda bagaimana cara memutar rakitan dengan gaya sudut acak awal yang dapat Anda sesuaikan dengan nilai baru untuk memenuhi persyaratan gameplay Anda sendiri.
Gunakan ApplyAngularImpulse
Metode ApplyAngularImpulse menerapkan torsi pada seluruh rakitan untuk mendapatkan kecepatan sudut awal sebelum melambat hingga berhenti. Untuk mulai memutar rakitan, metode ini perlu mengetahui:
- Rakitan yang akan diputar.
- Sumbu untuk menerapkan torsi untuk mencapai kecepatan sudut awal.
- Jumlah torsi yang akan diterapkan ke setiap sumbu.
Anda dapat mendefinisikan semua nilai ini dalam skrip. Misalnya, skrip contoh mendefinisikan rakitan untuk diputar sebagai induk dari skrip, kemudian menerapkan impuls acak gaya sudut antara 0 dan 100 Rowton-studs pada sumbu Y.
Untuk memutar rakitan menggunakan ApplyAngularImpulse:
Masukkan bagian bola ke dalam Workspace. Contoh ini menggunakan bola dengan MaterialVariant sehingga Anda dapat dengan jelas memvisualisasikan pergerakan bola.

Masukkan skrip ke bagian baru.
- Di jendela Explorer, arahkan kursor ke bagian dan klik tombol ⊕. Menu kontekstual muncul.
- Dari menu, masukkan Skrip.
Gantilah kode default dengan kode berikut:
local part = script.Parentlocal impulse = Vector3.new(0, math.random(0, 100), 0)part:ApplyAngularImpulse(impulse)