Mesin status Editor Grafik

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

Sebuah mesin status menggabungkan node animasi menjadi status yang dinamai, seperti Diam, Berjalan, Berlari, dan Melompat. Mesin ini memainkan status aktif dan bertransisi ke status lain ketika kondisi transisi dievaluasi menjadi true. Gunakan mesin status untuk mendefinisikan animasi mana yang dapat mengikuti satu sama lain tanpa menulis logika transisi dalam Luau.

Setiap status terhubung ke input pada mesin status. Sebuah status dapat berupa klip, node campuran, atau mesin status lainnya. Mesin status mengeluarkan pose animasi aktif atau campuran antara dua pose jika bertransisi, yang Anda hubungkan ke node berikutnya dalam grafik.

Prasyarat

Sebelum Anda membuat mesin status, kenali diri Anda dengan Editor Grafik Animasi, termasuk cara membukanya dan membuat grafik animasi.

Buat mesin status

Contoh berikut menggunakan tiga status dari JumpFallLandRunExample: Lokomosi, Jatuh, dan LandIdle. Karakter bergerak normal, beralih ke animasi jatuh saat berada di udara, dan memainkan animasi pendaratan sebelum kembali ke lokomosi. Langkah-langkah ini fokus pada mesin status; mulai dengan node animasi untuk lokomosi, jatuh, dan pendaratan.

  1. Di Editor Grafik, klik kanan dan pilih Sisipkan Node ⟩ Mesin Status.

    Menu konteks Editor Grafik dengan submenu Sisipkan Node terbuka dan Mesin Status dipilih.
  2. Pada node mesin status, klik Buka. Di tampilan Mesin Status, gunakan Buat Status untuk menambahkan tiga status bernama Lokomosi, Jatuh, dan LandIdle.

    Tampilan Mesin Status dengan tombol Buat Status dan node Status Masuk dan Any.
  3. Klik Kembali ke Grafik dan hubungkan node animasi Anda ke input mesin status yang sesuai:

    • Lokomosi: Hubungkan animasi lokomosi Anda. Grafik referensi menggunakan Blend1DNode bernama IdleRunBlend untuk mencampur animasi diam dan berlari berdasarkan Speed.
    • Jatuh: Hubungkan klip jatuh ClipNode dan atur Mode Putar ke Enum.AnimationNodePlayMode|OnceAndHold, sehingga ia mempertahankan pose akhirnya sampai karakter mendarat.
    • LandIdle: Hubungkan klip pendaratan dan atur Mode Putar ke Enum.AnimationNodePlayMode|OnceAndHold, sehingga ia dapat menyelesaikan dan bertransisi kembali ke lokomosi.

    Hubungkan output mesin status ke input Pose dari Output Grafik.

    Node IdleRunBlend, Jatuh, dan LandIdle terhubung ke input Lokomosi, Jatuh, dan LandIdle dari node Mesin Status, yang outputnya terhubung ke Output Grafik.
  4. Buka tampilan Mesin Status lagi dan seret transisi dari (Entry) ke Lokomosi. Mesin status mulai dalam status ini saat grafik dimulai.

    Node Entry terhubung ke status Lokomosi.
  5. Tambahkan parameter grafik Boolean bernama Grounded dan atur ke true. Parameter ini menunjukkan apakah karakter berada di tanah.

  6. Tambahkan transisi berikut dengan menyeret koneksi dari status sumber ke status tujuan, lalu konfigurasikan setiap transisi:

    • Lokomosi ke Jatuh: Atur Tunggu Untuk ke Ekspresi, Ekspresi ke not Grounded, dan Panjang ke 0.2 detik. Animasi jatuh dimulai ketika karakter meninggalkan tanah.
    • Jatuh ke LandIdle: Atur Tunggu Untuk ke Ekspresi, Ekspresi ke Grounded, dan Panjang ke 0.1 detik. Animasi pendaratan dimulai ketika karakter menyentuh tanah.
    • LandIdle ke Lokomosi: Atur Tunggu Untuk ke Selesai, Ketika ke Enum.AnimationNodeTransitionWhen|BeforeFinished, dan Panjang ke 0.2 detik. Mesin status mulai mencampur kembali ke lokomosi selama 0.2 detik terakhir dari animasi pendaratan.
    Pengaturan transisi untuk LandIdle ke Lokomosi, dengan Panjang diatur ke 0.2, Kurva ke Linear, Tunggu Untuk ke Selesai, dan Ketika ke Sebelum Selesai.
  7. Biarkan Kurva sebagai default (Linear) untuk ketiga transisi. Prabaca grafik dan ubah Grounded ke false untuk masuk ke Jatuh, lalu kembali ke true untuk memainkan LandIdle dan kembali ke Lokomosi.

  8. Perbarui Grounded dari kode permainan Anda saat karakter meninggalkan dan menyentuh tanah. Jika campuran lokomosi Anda menggunakan Speed, perbarui parameter itu saat karakter bergerak. Untuk alur kerja parameter, lihat integrasi API.

  9. Perluas mesin status dengan melompat dan status pendaratan tambahan untuk membuat grafik gerakan penuh. JumpFallLandRunExample mencakup lompatan terpisah untuk berdiri dan berlari, ditambah pendaratan yang berbeda berdasarkan gerakan dan kecepatan jatuh.

Properti mesin status

Properti node mesin status

Input
  • State1...StateN: Node animasi yang mendefinisikan setiap status. Nama status harus cocok dengan nama input ke node mesin status.
Properti
PropertiJenisDeskripsi
EntryStateObjectValueSebuah ObjectValue yang Value mengarah ke AnimationNodeDefinition untuk status yang aktif saat grafik dimulai.
Data acara
  • Penanganan Acara: Acara dari status aktif diteruskan dengan bobot mereka tidak berubah.
  • Emisi Acara: Hanya meneruskan acara dari status aktif. Selama transisi, emisi acara mengikuti aturan acara global.

Properti transisi

Sebuah transisi memiliki satu atau lebih status sumber, sebuah status tujuan, dan sebuah kondisi. Ketika status aktif cocok dengan status sumber, mesin status memeriksa kondisi. Ia mencampur ke status tujuan ketika kondisi dievaluasi menjadi true.

Tunggu Untuk menentukan UI kondisi transisi. Pilih Ekspresi (Enum.AnimationNodeWaitFor|Trigger) untuk menampilkan kotak Ekspresi. Sebuah Ekspresi dapat merujuk parameter grafik boolean secara langsung, seperti ShouldJump, atau mengevaluasi sebuah kondisi, seperti Speed >= 12. Pilih Selesai (Enum.AnimationNodeWaitFor|Finished) untuk menampilkan dropdown Ketika.

Jika lebih dari satu transisi memiliki Ekspresi yang benar, mesin status mengevaluasi transisi dengan nilai Prioritas tertinggi terlebih dahulu. Ketika prioritas sama, ia memilih satu transisi secara acak. Tetapkan prioritas yang berbeda untuk transisi yang bersaing agar hasilnya dapat diprediksi.

PropertiJenisDeskripsi
DariObjectValueSebuah ObjectValue yang Value mengarah ke AnimationNodeDefinition untuk status yang dapat memulai transisi. Biarkan properti ini tidak diatur untuk transisi (Any).
KeObjectValueSebuah ObjectValue yang Value mengarah ke AnimationNodeDefinition untuk status tujuan.
TungguUntukEnum.AnimationNodeWaitForMenentukan UI kondisi transisi mana yang muncul. Enum.AnimationNodeWaitFor|Trigger menampilkan kotak Ekspresi. Enum.AnimationNodeWaitFor|Finished menampilkan dropdown Ketika.
KetikaEnum.AnimationNodeTransitionWhenTersedia ketika Tunggu Untuk adalah Selesai. Pilih Enum.AnimationNodeTransitionWhen|Finished untuk memulai setelah status sumber selesai, atau Enum.AnimationNodeTransitionWhen|BeforeFinished untuk memulai pencampuran satu Durasi sebelum status sumber selesai.
EkspresiStringTersedia ketika Tunggu Untuk adalah Ekspresi. Sebuah parameter grafik boolean atau ekspresi yang, ketika dievaluasi menjadi true, memulai transisi. Lihat Ekspresi untuk apa yang didukung.
PrioritasNumberUrutan yang digunakan ketika lebih dari satu Ekspresi benar. Nilai yang lebih tinggi memiliki prioritas. Nilai yang valid berkisar dari 0 hingga 65.535.
DurasiNumberWaktu, dalam detik, untuk mencampur ke status tujuan. Defaultnya adalah 0.15 detik.
KurvaEnum.PoseEasingStylePemudahan yang digunakan selama pencampuran. Hanya Linear dan CubicV2 yang didukung. Defaultnya adalah Linear.
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.