Esnek, kırılabilir bir pizza peyniri malzemesi nasıl oluşturabilirim?


21

Gerçekçi pizzalar oluşturmak ve kullanıcının onunla etkileşime girmesini sağlamak istiyorum.

İstediğim:

pizza bir dilim kaldırdı

Ne yarattım:

işlenmiş pizza ekran görüntüsü, bir dilim eksik

Blender'da pizza modelini (8 parça) yarattım, sonra Unity'ye aktardım. Bir parça pizza çok yapay görünmektedir, çünkü çoğunlukla "katı üçgen" dir.

Kullanıcı bir parçayı hareket ettirdiğinde peynirin gerilmesini ve parçalanmasını nasıl sağlayabilirim?


1
Daha iyi modeller, daha iyi dokular ve daha iyi gölgelendiriciler. Kadar basit.
API-Beast

Peynirin gerilmesini ve kırılmasını mı istiyorsun? Hangi yönün daha gerçekçi olmak istediğinize dair daha spesifik olsaydı, bu sorunun kapsamını daraltmaya yardımcı olur.
MichaelHouse

2
@ Byte56, modeli, dokuları ve gölgeleri geliştirerek pizza kalitesini artırabileceğimi biliyorum, ancak peynirle ilgileniyorum. Evet, gerilebilir ve kırılabilir olmasını istiyorum. Gerçek peynir gibi.
Peter Burenkov

6
Şahsen, gerçek zamanlı kumaş simülasyonuna bir bakarım ve parametreleri ince ayarlayarak kumaştan peynire ne kadar uzağa gidebileceğinizi görürdüm. Pizzanın peynir katmanını ayrı bir ağ olarak kullanırdım ve deformasyonları hesaplamak için bir yay / kütle modeli kullanırdım. Ayrıca daha önce bez sistemlerini de gördüm, bu da peynirinizi de istediğiniz gibi, kumaşı sökmenizi sağlar. Bunu, bahar / kütle modelinin düğümlerine uygulanan kuvvete dayanan katı peynir dokusundan yapışmış / yırtık peynir dokusuyla harmanlayan bir gölgelendirici ile birleştirin ve size oldukça temiz bir sonuç vermelidir.
Invor

Sadece şeytanın avukatını burada oynamak için, bu tür bir animasyona ihtiyacınız olduğuna emin misiniz ? Kulağa garip gelmenin garip geldiğini biliyorum, ama daha önce verilmiş olan cevaplardan görmelisin, bu hedeflediğin oldukça karmaşık bir etkidir. Açıkçası oyuna bağlı (Pizza yapımı simülatörü yapıp yapmadığınızı bilmiyorum [Birine iyi para ödeyecek insanları tanıyorum]), ancak bu işe koyacağınız işi kendinize sormalısınız gerçekten çabanızı haklı çıkarmak için yeterince ekler. Çok zamanınız olsa bile, başka bir yere adamak uzun vadede daha fazla ödeyebilir ...
Selali Adobor

Yanıtlar:


28

Basit Yol

Bitişik dilimleri birbirine bağlayan bir dörtlü ekleyin. Bunu, delikler ile tamamlanmış, güzel, erimiş bir peynir dokusu ile dokulayın. Dilim uzaklaştıkça dörtlü doğal olarak gerilir ve böylece doku gerilir ve eğilir.

Ara vermeyecek olmasına rağmen, bu makul görünmeli. Burada ne yapmalı o dokuyu animasyonlu yapmak. Dörtlü alanı (veya yalnızca dilimler arasındaki mesafeyi) zamana bağlı olarak animasyonda yineleyin. Daha fazla çekildikçe, animasyonun ilerlemesi nedeniyle daha fazla delik ortaya çıkacaktır.

Sonunda bir mesafe eşiğine çarpıldığında, dörtlüyü ikiye bölün, biraz daraltmak ve takılmayı gösteren animasyonu oynatmaya devam etmek için iki dörtlüleri eklenmiş dilimlerinin yönünde programlı olarak daraltın. Sonunda animasyonu dondur.

Biraz daha fazla dinamik için, bir fizik motorundaki bir bağlantıyı kullanarak dörtlü iki dilime takabilirsiniz.

Zor yol

Yumuşak vücutlu bir fizik motoru kullanın veya bir tane yazın. Dilimler arasında bir bez bölümü tanımlayın ve peynir ile dokulayın. Fizik motorunun, malzemenin gerilme ve kopma dinamiklerini modellemesine izin verin.

Bu çok daha yoğun, fakat daha genel olarak uygulanabilir bir yöntemdir. Aynı zamanda çok kontrol edilemeyebilir ama genel olarak daha zorlayıcı bir etki olabilir.


3
İlk yaklaşımı kesinlikle öneririm.
14'te

6
En azından birkaç saat harcamak için ilk yaklaşımı denemek için birkaç saat harcayın (kolayca birden fazla dörtlü kullanabilirsiniz) - bir kaç ay önce bir fizik motoru yazarken ...
corsiKa

3
Bu yüzden sonucu görmek için aç! Lütfen bitirdiğinizde bizi güncelleyin.
John Moses

2
Bir an için "Yumuşak vücutlu bir peynir motoru kullan" okudum ve insanların bir şey için motor yazacağını düşündüm.
Thomas

2
Birlik, gerilmeyi ve yırtılmayı destekleyen yerleşik bir fizik motoruna sahiptir, böylece zor yol o kadar zor olmayabilir. Her ne kadar çok daha hesaplamalı olarak pahalı olacak.
Ethan Worley

2

Önceden ayarlanmış bir animasyon kullanma:

Bu nedenle, pizza yırtılmasını simüle eden iyi bir iş yapabilen yumuşak gövdeler ve kumaş gibi özelliklere sahip olan Maya / Blender gibi bir 3D modelleme yazılımında hazır animasyon oluşturun. Hem pizza dokusunu hem de model animasyonunu Unity'ye dışa aktarın (muhtemelen .obj modelleri kümesi gibi).

Model animasyonu, Unity'ye üçlü kafes olarak yükleyebileceğiniz birçok üçgen ile gerilmiş ve parçalanmış peyniri temsil edecektir. Her biri farklı pizza pozisyonlarındaki peynirli pizzayı temsil eden birçok örgü halini oluştururlar. Kullanıcının pizza dilimini nereye konumlandırdığına bağlı olarak, bu 'mesh durumuna' atlar ve bu üçgenleri görüntülersiniz.

Elbette birkaç sorun var. Kullanıcı etkileşimi biraz sınırlıdır. Peynir biraz yırtılmışsa, o peynir alanı için 'untorn' durumuna geri dönemezsiniz. Ön ayar animasyonu dilim 1'i ve ardından 2'yi kaldırırsa, kullanıcı dilimleri bu sırayla çıkarmak zorunda kalır. Dışa aktarılan verilerin boyutu, ağın ne kadar granül olduğuna ve yırtılma animasyonunun ne kadar sürdüğüne bağlı olarak oldukça büyük olabilir.

Ancak, önceden belirlenmiş animasyonu oluştururken model sanatçı iyi bir iş çıkarsa çok gerçekçi görünebilir. Ve yumuşak bir vücut simülatörü uygulamak zorunda değilsiniz.

Birliğin Kullanımı:

Ancak ilgilendiğiniz durumlarda Unity, kendi Skinned kumaş ve Interactive kumaş bileşenlerini uygular . İnteraktif bez yırtılmayı destekler. Ama son zamanlarda kontrol ettiklerim için destek sadece birkaç platformla sınırlı.

Seni kullanarak:

Sonunda, her zaman kendi yumuşak vücut simülatörünüzü uygulayabilirsiniz. İşte oldukça popüler olan örnek bir araştırma makalesi. Çok eğlenceli :). İyi şanslar.


1

@ originalDaemon'un cevapları iyi! Bir orta yol olduğunu düşünüyorum edebilir birinci yaklaşıma göre daha iyi sonuç almak ve (belki de "Sert Yolu" yaklaşımı aksine) çaba makul miktarda alacaktır.

Benim önerdiğim de aslında "web" peynirini modellemek, bana sarkıt gibi görünüyor. Birkaç parça esnek peynir modeli. Bunları rastgele olarak lezzetlilik üçgeninin kenarlarına yerleştirin ve onları 0'a ölçeklendirin y-axisve üçgen, compadreslerinden çıkarıldığında, onları yavaşça y ekseninde gereken boyuta getirin.

yÜçgeni hafifçe çekmeyi planlıyorsanız, bunun yerine başka bir eksen seçmeniz gerekebilir . Her iki durumda da, düz bir doku çok daha kolay ve düşük maliyetli olsa da, peynirin modellenmesi, bir doku da işe yarasa da yakın çekim için daha gerçekçi olabileceğini hissediyorum. Bir doku seçerseniz, daha gerçekçi bir his elde etmek için belki birden fazla katman kullanın. Ayrıca, çekimdeki pizzanın sıcaklığını vurgulamak için belki biraz buhar eklemeyi de unutmayın.

Benim dikkatimi çeken bir diğer şey ise acılığın şu anda sadece bir doku olduğu. Mevcut modele modellemeyi ya da o alanda bazı detaylar eklemeyi düşünürdüm. Ekstra gerçekçilik için esnek peynirle aşağı kaymasını sağlayabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.