Saya bekerja dengan animasi di Unity dan sejauh ini saya hanya membuat empat (Atas Bawah Kiri dan Kanan) dan jendela animasi saya terlihat mengikuti ...
Masalahnya adalah jika saya bergerak ke atas, saya ingin pahlawan tetap mencari ke atas, tidak pergi ke 'netral idle' (atau bagaimanapun ia mulai), tetapi itu berarti saya memiliki 4 posisi siaga ... dan masing-masing dari mereka dapat beralih ke atas, bawah , Kiri atau Kanan dan mereka berjalan secara eksponensial dengan setiap tindakan tambahan ...
Yang membuat saya merasa seperti melakukan sesuatu yang salah ....
Apakah ada cara yang lebih baik untuk membuat transisi di antara tindakan yang berbeda?
Jawaban:
Anda dapat memecahkan masalah jenis ini dengan BlendTrees (secara umum ide bijak untuk sering mengandalkan pohon campuran). Blend tree adalah jenis keadaan multi-animasi yang didasarkan pada parameter (float) yang memutuskan animasi yang dikandungnya untuk saat ini aktif (atau sebagai alternatif animasi yang dihasilkan dapat merupakan perpaduan beberapa animasi). Bahkan ketika animasi tidak dicampur, tetapi ditukar, swap terjadi pertengahan animasi (yaitu jika animasi "keluar" adalah pada 35% yang baru dimainkan dari 35% ke depan). Dari "luar" semua ini disembunyikan seolah-olah itu satu negara / sederhana.
Misalnya Anda memiliki pohon campuran dengan 8 animasi sprite (idle dengan 4 arah utama dan 4 diagonal). Ada 2 parameter dalam pohon campuran ini - "horisontal" dan "vertikal". Dan berdasarkan 2 parameter tersebut pohon campuran akan memutuskan animasi apa yang akan diputar. Berdasarkan parameter "horizontal", pohon campuran akan memilih antara animasi kiri / kanan dan parameter "vertikal" akan menentukan animasi atas / bawah. Kemudian ketika digabungkan Anda akan memiliki semua 8 animasi dengan diagonal (itu adalah ide yang sama yang ada di belakang joypads / joystick).
Agak membingungkan, meskipun StackExchange tidak suka tautan, saya akan menautkan video contoh singkat yang saya buat. Perhatikan bagian kanan atas layar. Titik abu-abu adalah "negara" / animasi dan yang aktif adalah yang menutup ke titik merah. Seperti yang dikatakan di awal, itu bisa menjadi lebih kompleks dan setiap animasi memiliki pengaruh / kekuatan berdasarkan jaraknya ke titik merah, menghasilkan perpaduan antara beberapa animasi.
Dari luar hanya satu negara (pohon campuran) dan ketika Anda menerapkan konsep yang sama untuk berjalan dan menyerang, Anda hanya akan memiliki 3 negara yang terhubung.
Blend Trees dibuat dengan klik kanan pada area Animator kosong Create State -> From New Blend Tree. Dari sana semuanya ada di Inspektur. Dengan pohon campuran yang dipilih, Anda dapat memilih jenis pohon campuran (1D, 2D, dll.), Menambahkan animasi, memposisikannya (relatif terhadap nilai parameter) dan memilih parameter pengendalian.
Jika Anda ingin info lebih lanjut tentang Blend Trees berikutnya adalah video dari Unity - Unite 2016 dan Tutorial Unity .
sumber
Masalahnya di sini adalah Anda mencoba untuk mengikat semuanya daripada menggunakan pemicu untuk beralih di antara idle. Anda harus memilih animasi idle menggunakan kondisional if-else atau case-switch. Saya telah membuat diagram yang terlihat jauh lebih rapi (anggap salah satunya adalah case default):
Informasi tambahan:
Lihatlah Parameter Animasi tentang cara mengatur parameter agar animator mengenali, Menyatakan Mesin untuk menggabungkan animasi bersama, Menyatakan Perilaku Mesin untuk cara memeriksa variabel yang telah Anda tetapkan.
sumber