Saya ingin membuat pizza realistis dan memungkinkan pengguna berinteraksi dengannya.
Apa yang saya inginkan:
Apa yang saya buat:
Saya membuat model pizza (8 buah) di Blender, lalu mengimpornya ke Unity. Sepotong pizza terlihat sangat artifisial, sebagian besar karena "segitiga kaku".
Bagaimana saya bisa membuat keju meregang dan pecah ketika pengguna menggerakkan sepotong?
Jawaban:
Cara Sederhana
Tambahkan quad yang menghubungkan irisan yang berdekatan satu sama lain. Tekstur ini dengan tekstur keju yang bagus, meleleh, lengkap dengan lubang. Saat irisan dipindahkan, quad secara alami akan diregangkan dan dengan demikian meregangkan dan memiringkan tekstur.
Ini harus terlihat masuk akal, meskipun tidak akan ada istirahat. Yang harus dilakukan di sini adalah menjadikan tekstur itu animasi. Iterate melalui animasi berdasarkan area paha depan (atau hanya jarak antara irisan) bukan waktu. Ketika semakin ditarik jauh lebih banyak lubang akan muncul karena animasi berkembang.
Akhirnya ketika ambang jarak dipukul, pisahkan kuad menjadi dua, secara program menyusutkan kedua paha depan ke arah irisan yang dilekatkan untuk mengecilkannya sedikit dan tetap mainkan animasi yang menunjukkan gertakan. Bekukan animasi di bagian akhir.
Untuk sedikit lebih banyak dinamika, Anda bisa menempelkan quad ke dua irisan menggunakan sambungan dalam mesin fisika.
Jalan yang Keras
Gunakan mesin fisika tubuh lunak atau tulis satu. Tentukan bagian kain di antara irisan dan tekstur dengan keju. Biarkan mesin fisika untuk memodelkan dinamika peregangan dan gertakan material.
Ini adalah metode yang jauh lebih intensif, tetapi lebih umum berlaku. Mungkin juga sangat tidak terkendali tetapi bisa menjadi efek yang lebih menarik secara keseluruhan.
sumber
Menggunakan animasi preset:
Jadi buat animasi prasetel dalam perangkat lunak pemodelan 3D seperti Maya / Blender yang memiliki fitur seperti tubuh dan kain lembut yang dapat melakukan pekerjaan dengan baik dalam mensimulasikan pizza sobek. Ekspor tekstur pizza DAN animasi model ke Unity (mungkin sebagai satu set model .jj atau semacamnya).
Model animasi akan mewakili keju yang diregangkan dan disobek menggunakan banyak segitiga, yang dapat Anda muat sebagai satu set tri-jerat ke dalam Unity. Mereka adalah kumpulan dari banyak negara mesh, masing-masing mewakili pizza keju pada posisi yang berbeda dari peregangan. Berdasarkan di mana pengguna memposisikan potongan pizza, Anda akan melompat ke 'keadaan mesh' dan menampilkan segitiga itu.
Tentu saja ada beberapa masalah. Interaksi pengguna agak terbatas. Jika keju sudah terkoyak sedikit, Anda tidak bisa kembali ke keadaan 'untorn' untuk area keju itu. Jika animasi preset menghapus irisan 1 dan kemudian 2, pengguna akan dipaksa untuk menghapus irisan dalam urutan itu. Ukuran data yang diekspor bisa menjadi sangat besar, berdasarkan pada seberapa granular mesh dan berapa lama animasi robek berlangsung.
Tapi itu bisa terlihat sangat realistis, jika artis model melakukan pekerjaan dengan baik ketika membuat animasi preset. Dan Anda tidak harus menerapkan simulator tubuh lunak.
Menggunakan Unity:
Tetapi jika Anda tertarik, Unity menerapkan kain sendiri dan komponen kain Interaktif . Kain interaktif mendukung sobekan. Tetapi dukungan untuk mereka dibatasi hanya untuk beberapa platform, terakhir saya periksa.
Menggunakan Anda:
Pada akhirnya, Anda selalu dapat menerapkan simulator tubuh lunak Anda sendiri. Inilah contoh makalah penelitian yang cukup populer. Sangat menyenangkan :). Semoga berhasil.
sumber
@ originalDaemon jawabannya bagus! Saya pikir ada jalan tengah yang mungkin mendapatkan hasil yang lebih baik daripada pendekatan pertama dan akan mengambil sejumlah upaya yang masuk akal (mungkin tidak seperti pendekatan "The Hard Way").
Apa yang saya sarankan adalah sebenarnya memodelkan keju "web", sepertinya banyak stalaktit bagi saya. Model beberapa potong keju melar. Secara acak posisikan mereka di tepi segitiga kelezatan dan skala mereka ke 0
y-axis
dan ketika segitiga dihapus dari kompadresnya, perlahan skala mereka pada sumbu y kembali ke ukuran yang diperlukan.Anda mungkin perlu memilih sumbu lain alih-alih
y
jika Anda berencana untuk menarik segitiga sedikit menjauh. Either way, saya merasa bahwa meskipun tekstur rata akan jauh lebih mudah dan hemat biaya, memodelkan keju bisa menjadi lebih realistis untuk close-up walaupun tekstur mungkin bekerja juga. Jika Anda memilih tekstur, mungkin gunakan lebih dari satu lapisan untuk mendapatkan nuansa yang lebih realistis. Juga jangan lupa menambahkan sedikit uap mungkin untuk menekankan panasnya pizza dalam bidikan.Hal lain yang saya perhatikan adalah tampaknya pepperoni hanya tekstur saat ini. Saya pasti akan mempertimbangkan memodelkannya atau menambahkan beberapa detail di area itu ke model yang ada. Anda bisa membuatnya meluncur ke bawah dengan keju melar untuk realisme ekstra.
sumber