Animasyon için karışım ağacı vs durum makinesi ne zaman kullanılır?


13

Ben 3d animasyon karakterleri (Unity) ile ilk oyun yapma deneyimli bir oyun dev hobbiest Im ve harman ağaçları vs animasyon devlet makineleri ne zaman kullanılacağını anlamak için mücadele ediyorum. Her ikisini de kavramsal olarak anlıyorum ama hem Unity'den hem de diğer kaynaklardan bir dizi öğreticide karakter animasyonu için kullanılan karışım ağaçlarını ve animasyon durumu makinelerini gördüm. Birinin ne zaman / neden diğerinden daha iyi olduğundan emin değilim, birinin bana doğru yönü göstermesini umuyorum.

Benim oyunum bir 3. kişi aksiyon RPG a'la WoW veya KOTOR veya Mass Effect (farklı sistemler biliyorum ama perspektifler ve savaş stilleri yüksek düzeyde yakın). Saldırılara, bloklara, dövüşlere, ölümlere, yürüyüşe, koşmaya, zıplamaya, ateş etmeye vb.

Karakter hareketini akıcı tutmaya çalışırken hareket için kullanılan karışım ağaçlarını gördüm, ancak bu karışım ağacından bir saldırı durumuna nasıl geçileceğini anlamıyorum ve şimdiye kadar gördüğüm hiçbir şey hareketsiz kalmadı (saldırı yok) vb). Saldırı / ölüm / kaçma durumlarına hareket durumlarımdan karışım ağaçları yapmam gerekir mi? Sadece devlet makinelerini kullanarak daha fazla kontrole sahip miyim? Ben çok yaygın olan geçiş bloat nedeniyle devlet makineleri biraz temkinli ve karıştırma olmadan janky animasyon sıralaması için daha büyük bir potansiyel olduğundan şüpheleniyorum.

Unity karakter denetleyicisini kullanmayı ve sürmek için kendi mantık komut dosyalarını yazmayı planlıyorum. AI için yerleşik nav mesh ajanlarını kullanacağım. Karakter denetleyici animasyonları AI animasyonlarından farklı mı ele alınıyor?

Herhangi bir fikir hoş geldiniz daha olurdu!

Teşekkürler

Yanıtlar:


21

Birlik'teki Mecanim ile biraz çalıştım ve nasıl çalıştığını çok iyi anladığımı hissediyorum.

Dediğiniz gibi, karışım ağaçları neredeyse kesinlikle hareket etmenin yolu. Karışım ağaçları genellikle , nihai çıktıyı oluşturmak için animasyonları sürekli olarak karıştırmak istediğinizde kullanılır . Oyuncuya avatarın ne kadar hızlı çalıştığını kontrol etmek gibi.

Tüm tek eylemlerin , geçiş yapabileceğiniz bireysel bir durum olarak tutulması daha iyidir. Oyununuzun ne kadar yoğun olacağına bağlı olarak, başka bir animasyonun bitmesini beklemek zorunda kalmadan hızlı bir şekilde atlama, saldırı vb. Gitmek için Herhangi Bir Devleti bir kalkış noktası olarak kullanmayı düşünebilirsiniz .

Bir karışım ağacından koşarak harmanlamanın anahtarı geçişleri kullanmaktır . Unity'deki geçişi önizlerken bunun harika görünmesi için sihir yok, sadece dikkatli bir planlama ve ince ayar var. İşin çoğu başarılı geçişler için temel oluşturduğu için animatöre dayanır.

Geçiş yaparken akılda tutulması gereken bir şey, bunların dengesinin harika görünmesini ve oyuncuya beklenen geribildirimi bulmasıdır. Daha hızlı bir geçiş daha iyi görünebilir, ancak oyuncularınızın kontrolörü atmak istemesine neden olabilirken, hızlı bir geçişin oyun hissi için en iyi sonucu verdiğini görebilirsiniz.

Aşağıda, okların geçişlerin nasıl gittiğini gösteren biraz basit bir kurulum var. Geçişler, girme koşullarını temel alır ve animasyon bittiğinde veya belirli bir koşul gerçekleştiğinde çıkılır. Bu aynı zamanda bir devletin farklı koşullara bağlı olarak diğer çeşitli eyaletlere girebileceği anlamına gelir.

Durum Makinesi

Muhtemelen fark ettiğiniz şey, bunun hızlı bir şekilde büyük bir "spagetti" yığını olabileceğidir ve bu karmaşadan kaçınmanın bir yolu, yukarıdaki resimde de bulunan Herhangi Bir Durumu kullanmaktır .

Herhangi Devlet , herhangi bir zamanda herhangi bir şeyi içine geçişin mümkün olmanın yararı vardır. Geçişler animasyonu karıştırmak için hala kullanılabilir, ancak karanlıkta nasıl görüneceğine dair biraz daha çalışıyorsunuz. Kurulum sırasında çeşitli durumlardan / durumlarına önizleme yapmak mümkündür.

Bahsetmediğiniz bir şey , tüm silahlar için aynı animasyonu kullanırken karakterinizi yaralamak veya farklı bedenleri taşımak için üst gövdeyi geçersiz kılmak için son derece yararlı olabilecek Katmanlardır . Katmanlar da harmanlanır ve kademeli olarak ayarlanabilir, böylece örneğin bir karakter az çok yaralanabilir. Diğer bir örnek, diğer tüm animasyonları aynı tutarken bir karakterin kollarını havaya kaldırmak (karakter teslim olmuşsa veya başka bir şey) olabilir.

Ancak sağlam bir animasyon denetleyicisi kurmak 1 saatlik bir iş değildir. Bu biraz planlama gerektirir ve ben sadece iki saldırı, bir atlama, boşta ve bir yürüyüş / koşma karışım ağacı ile basit bir devlet makinesi kurmaya çalışmanızı teşvik edebilirim. Ayrıca Unity 5'te sunulan Davranışları komut dosyalarını kontrol etmek veya bunlarla etkileşim kurmak için son derece yararlı bulabilirsiniz .

Animasyonun durumdan duruma nasıl geçtiğini kontrol eden komut dosyaları aracılığıyla değiştirilen parametreler olduğu için AI'nın oynatıcı denetleyicisiyle aynı şekilde davranacağından% 99 eminim.

özet

  • Hareket için karışım ağaçları .
  • Devletler tek tanımlanmış eylemler veya basit döngü devletler için.
  • Bir atlama gibi bir dizi devleti organize etmek için alt durumlar .
  • Geçişler farklı durumları arasında karıştırma / geçiş halinde, (a durumu da, bir harman-ağacı olabilir).
  • Temel animasyonu geçersiz kılmak veya eklemek için katmanlar .

Bu nedenle, karışım ağaçlarını, parametre değerlerine göre de hareket eden genişletilmiş durumlar olarak düşünün.

Biraz uzun bir ramble, ama umarım konuya ışık tutuyor :)


Harika açıklamanız için teşekkürler, bu şimdi çok mantıklı
weichsem

Fantastik, yardımcı olmaktan mutluluk duyar :)
Morten Andersen
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.