Sistem elastis — MRTK2
MRTK hadir dengan sistem simulasi elastis yang mencakup berbagai subkelas yang dapat diperluas dan fleksibel, menawarkan pengikatan untuk pegas kuaternion 4 dimensi, pegas volume 3 dimensi, dan sistem pegas linier sederhana.
Saat ini komponen MRTK berikut yang mendukung manajer elastis dapat memanfaatkan fungsionalitas elastis:
Manajer elastis
Proses manajer elastis melewati transformasi dan memberi mereka umpan ke dalam sistem elastis.
Mengaktifkan elastis untuk komponen kustom dapat dicapai dengan dua langkah:
- Memanggil metode Inisialisasi pada awal manipulasi, memperbarui sistem dengan transformasi host saat ini.
- Mengkueri ApplyHostTransform setiap kali perhitungan elastis harus dilakukan pada transformasi target yang diperbarui.
Perhatikan bahwa elastis akan terus mensimulasikan setelah manipulasi berakhir (melalui perulangan pembaruan manajer elastis). Untuk memblokir perilaku, pembaruan otomatis elastis EnableElasticsUpdate dapat diatur ke false.
Secara default, komponen manajer elastis, ketika ditambahkan ke objek game, tidak akan mengaktifkan elastis untuk jenis transformasi apa pun.
Bidang Manipulation types using elastic feedback
perlu diaktifkan untuk jenis transformasi tertentu untuk membuat konfigurasi dan jangkauan elastis untuk jenis yang dipilih.
Konfigurasi elastis
Mirip dengan konfigurasi kontrol terikat, manajer elastis dilengkapi dengan sekumpulan objek konfigurasi yang dapat disimpan sebagai objek yang dapat ditulis dan dibagikan antara instans atau prefab yang berbeda. Konfigurasi dapat dibagikan dan ditautkan baik sebagai file aset yang dapat ditulis individual atau aset skrip berlapis di dalam prefab. Konfigurasi lebih lanjut juga dapat didefinisikan langsung pada instans tanpa menautkan ke aset eksternal atau berlapis yang dapat ditulis.
Inspektur manajer elastis akan menunjukkan apakah konfigurasi dibagikan atau di-inlin sebagai bagian dari instans saat ini dengan menampilkan pesan di pemeriksa properti. Selain itu, instans bersama tidak akan dapat diedit langsung di jendela properti manajer elastis itu sendiri, tetapi sebaliknya aset yang ditautkannya harus langsung dimodifikasi untuk menghindari perubahan yang tidak disengaja pada konfigurasi bersama.
Manajer Elastics menawarkan opsi objek konfigurasi untuk jenis transformasi berikut, masing-masing diwakili oleh objek konfigurasi elastis:
- Elastis Terjemahan
- Rotasi Elastis
- Menskalakan Elastis
Objek konfigurasi elastis
Konfigurasi elastis mendefinisikan properti untuk sistem diferensial osilator harmonik yang dilembabkan. Properti berikut dapat disesuaikan tetapi sudah dilengkapi dengan sekumpulan default di MRTK:
- Massa: massa elemen osilator yang disimulasikan.
- HandK: tangan pegas konstan.
- EndK: akhiri batas konstanta musim semi.
- SnapK: snap point spring constant.
- Seret: faktor seret/peredam, proporsional dengan kecepatan.
Tingkat elastis
Pengaturan jangkauan elastis bervariasi tergantung pada jenis manipulasi. Terjemahan dan skala diwakili oleh tingkat elastis volume dan rotasi diwakili oleh tingkat elastis kuaternion.
Tingkat elastis volume
Tingkat volume mendefinisikan ruang tiga dimensi di mana osilator harmonik yang lembab bebas bergerak.
- StretchBounds: mewakili batas bawah ruang elastis.
- UseBounds: apakah batas peregangan harus dihormati oleh sistem. Jika true, ketika iterasi posisi target saat ini berada di luar batas peregangan, gaya akhir akan diterapkan.
- SnapPoints: menunjuk ke dalam ruang tempat sistem akan memposisikan.
- RepeatSnapPoints: mengulangi titik snap ke tak terbatas. Titik rekam jepret yang ada akan berfungsi sebagai modulo di mana titik snap aktual dipetakan ke kelipatan bilangan bulat terdekat dari setiap titik jepret.
- SnapRadius: jarak di mana titik rekam jepret mulai memaksa pegas.
Tingkat elastis kuaternion
Batas kuaternion menentukan ruang rotasi empat dimensi di mana osilator harmonik yang dilembabkan bebas untuk diputar.
- SnapPoints: sudut euler yang akan diposisikan sistem.
- RepeatSnapPoints: mengulangi titik snap. Titik rekam jepret yang ada akan berfungsi sebagai modulo di mana titik snap aktual dipetakan ke kelipatan bilangan bulat terdekat dari setiap titik jepret.
- SnapRadius: sudut busur di mana titik rekam jepret mulai memaksa pegas dalam derajat euler.
Contoh adegan elastis
Anda dapat menemukan contoh konfigurasi elastis di ElasticSystemExample
adegan.