Önceki başlık :: Sonraki başlık |
Yazar |
Mesaj |
DoganBir
Kayıt: Mar 24, 2003 Mesajlar: 305 Nereden: İstanbul
|
Tarih: Sat May 28, 2005 1:35 pm Mesaj konusu: Karakterimin animasyon sonrasındaki pozisyonu |
|
|
max de modelleyip animasyon verilmiş bir karakterim var. Yürüme aniamsyonu yapıyor. Animasyonun bittiği noktadaki kooordinatları nasıl alabilirim.
Not: DirectX 9 kullanıyorum. |
|
Başa dön |
|
|
huzeyfecoskun
Kayıt: Dec 29, 2003 Mesajlar: 174 Nereden: Ankara
|
Tarih: Sat May 28, 2005 2:57 pm Mesaj konusu: CEVAP |
|
|
Aslında öle bir animasyonda şunu kullanıyorlar.
Model olduğu yerde yürüyor onun gitmesi gereken mesafeyi sen position dan değiştiriyorsun,senin modelin herhalde animasyonda ilerliyor e program içinde sende onu ilerletince başlangıca döndüğünde model oyun içinde geri dönüyor.Bunu halletmenin en iyi yolu modeli yerinde yürütmektir animasyonu öle yapman daha mantıklı
iyi çalışmalar... |
|
Başa dön |
|
|
DoganBir
Kayıt: Mar 24, 2003 Mesajlar: 305 Nereden: İstanbul
|
Tarih: Sat May 28, 2005 3:42 pm Mesaj konusu: |
|
|
Öncelikle Teşekkür ederim.
bizde o yöntemi kullanmaya karar verdik. Şimdiki sorunumuz ise 3ds max de olduğu yerde yürüyebilen bir animasyon yapabilmek. Bizim yaptığımız modellerdeki geçişler belli oluyor. Bunu daha iyi yapabilmek için bir yöntem var mı. (Max'deki foot kısmından adımlar ekleyerek yapıyoruz) |
|
Başa dön |
|
|
GameRealist
Kayıt: Oct 08, 2004 Mesajlar: 220 Nereden: Ankara
|
Tarih: Sat May 28, 2005 5:08 pm Mesaj konusu: |
|
|
bir hareketi ard arda oynattığında başa sardığı anlaşılıyorsa en baştaki pozisyonu en sona aynen uygulaman lazım ki bununla da bitmez. animation curve editör kullanarak animasyon eğrilerini de uygun biçimde düzenlemelisin. yani animasyon eğrilerini düzenleyerek sert bir geçiş uygulamalısın...
bunun için bir döküman zaten yazdım. onu okursan sana bu animasyon eğrileri konusunda yardımcı olabilir...iyi günler... |
|
Başa dön |
|
|
Nomax
Kayıt: Jan 24, 2003 Mesajlar: 1134 Nereden: Bakırköyden.Yeni taşındık da...
|
Tarih: Sat May 28, 2005 10:35 pm Mesaj konusu: |
|
|
Kod ile "transition" ekleyebilirsin son frame ile ilk frame arasına böylece akıcı yani "smooth" bir geçiş olur... |
|
Başa dön |
|
|
huzeyfecoskun
Kayıt: Dec 29, 2003 Mesajlar: 174 Nereden: Ankara
|
Tarih: Sun May 29, 2005 12:41 am Mesaj konusu: KOD |
|
|
walla geçiş animasyonlarında arkadşımın dedği gibi curve editor kullanırsa koda ihtiyacı kalmaz....
iyi çalışmalar... |
|
Başa dön |
|
|
CemilKara
Kayıt: May 18, 2005 Mesajlar: 41 Nereden: Ankara
|
Tarih: Mon May 30, 2005 12:46 pm Mesaj konusu: |
|
|
ben eski sisteminizi kullanmanızı öneririm, çok daha sağlıklı ve doğal gözüküyor. yeni yeri bulmak için gidilen mesafeyi ister kullandığın editörden, ister de elle bulabilirsin. |
|
Başa dön |
|
|
CemilKara
Kayıt: May 18, 2005 Mesajlar: 41 Nereden: Ankara
|
Tarih: Mon May 30, 2005 12:53 pm Mesaj konusu: |
|
|
tabii bu iş kullanılan formata da bağlı, format içine veya external olarak(ayrı dosya) bir ekleme yaparsan gidiş uzaklıklarını tutarsın, her seferinde o kadar uzaklığı, gidilen ile test edersin.
yerinde saymanın fake leri var, millet genelde o yüzden kullanıyor(kolaya kaçma). mesela adamı durdurman gerektiğinde direkt durduruyorsun ama diğer türde yeni yeri eklemen gerekiyor, yoksa kendi matrisine kayıverir model.
günümüz profesyonel oyunlarında animasyon modelin kendi içinde ilerlemesi ile yapılıyor...
not: koordinat almak için ben kemikleri kullanıyorum. baz kemiği var modelimin, -aynı zamanda modelin position nını da veriyor/ayarlıyor- onu kontrol ediyorum. |
|
Başa dön |
|
|
MD-C
Kayıt: Feb 26, 2003 Mesajlar: 1258 Nereden: Dünya.Türkiye(54)
|
Tarih: Mon May 30, 2005 7:18 pm Mesaj konusu: |
|
|
Daha önce söylendiğini gibi, aslında Oyuncuyu temsil eden modellerde yüreme işleminde katedilen yol gerçekte editör içinden yapılmaz, çünkü bu oyun içinde etkileşimi kısıtlar yada zora sokar, doğrusu; karakter yürüyormuş gibi olduğu yerde sayar! ve sonra onu uygulama içinde döndürürsün, itirirsin veya gerersin, böylece posizyonlarla ve çarpışma testi için konum bilgileriyle başın belaya girmez. Karakterin bu durumda aptal tavırlarla animasyonu sergilememeside modellemeyi yapan kişinin yeteneğine kalmış... |
|
Başa dön |
|
|
CemilKara
Kayıt: May 18, 2005 Mesajlar: 41 Nereden: Ankara
|
Tarih: Mon May 30, 2005 8:01 pm Mesaj konusu: |
|
|
MD-C demiş ki: |
Daha önce söylendiğini gibi, aslında Oyuncuyu temsil eden modellerde yüreme işleminde katedilen yol gerçekte editör içinden yapılmaz, çünkü bu oyun içinde etkileşimi kısıtlar yada zora sokar, doğrusu; karakter yürüyormuş gibi olduğu yerde sayar! ve sonra onu uygulama içinde döndürürsün, itirirsin veya gerersin, böylece posizyonlarla ve çarpışma testi için konum bilgileriyle başın belaya girmez. Karakterin bu durumda aptal tavırlarla animasyonu sergilememeside modellemeyi yapan kişinin yeteneğine kalmış... |
çok yanlış yargılarda bulunmuşsun..
artık her karede yeni pozisyon belirlemek için matris çarpmalara girmiyor programcılar, her anim devirinde yapıyorlar o işlemi. collision için ne zararı olduğunu anlamadım. günümüzde kim eski basit fake sistemleri kullanıyor ki collision için?
başının belaya girdiği tek yer deviri düzgün tamamlattırmak, bu ise normalde her kare için yapılan basit bir pozisyonlamadan başka bişey değil. yani modelist her kare için yerine oturtma yapacağına program bir kere yapacak. yani 30 kare için başın 30 yerine 1 kere belaya girecek.
ve "sakalımız yok ki" meselesine girersek: dediğim yöntem iyi bişey olmasa idi doom3 de kullanılmazdı. |
|
Başa dön |
|
|
MD-C
Kayıt: Feb 26, 2003 Mesajlar: 1258 Nereden: Dünya.Türkiye(54)
|
Tarih: Mon May 30, 2005 8:32 pm Mesaj konusu: |
|
|
CemilKara demiş ki: |
günümüz profesyonel oyunlarında animasyon modelin kendi içinde ilerlemesi ile yapılıyor.... |
Doğru animasyon! fakat bu söz, etkileşimle reaksiyona girdiğinde,
"modelin kendi içinde ilerlemesi ile yapılıyor" sözcüğü, ısıya dönüşür ve kaybolur! |
|
Başa dön |
|
|
ardamardar
Kayıt: Mar 03, 2005 Mesajlar: 24
|
Tarih: Wed Jun 01, 2005 10:31 am Mesaj konusu: |
|
|
Cemil Kara
Nerden duydun bilmiyorum, bi link verirsen anlarız belki ama doom 3 te olsun diğer tüm oyunlarda olsun gameplay sırasında öyle bişey kullanıldığını sanmıyorum, belki cutscene lerde kullanılmış olabilir. çünkü örneğin yürüme döngüsü sırasında collusion detection yapmak için döngünün bitmesini beklersen bi aksiyon oyununda olmaması gereken kopukluklar yaratırsın. üstelik modelin duvarın içine geçer orda yürür bir süre (döngü bitene kadar). bir yürüme döngüsünün 24 kare olduğunu varsayarsak yaklaşık 1 saniyelik aralarla collusion detection yapmak bence kimsenin uygulamicağı bi metod.
Cutscenelerde bu yapılabilir. hatta yapılması gerekiyor. nedeni de IK zinciri (ters kinematik). Eğer karakter animasyonu eklenecekse, bu döngüden çoğu zaman bağımsız oluyor. bazen cutscene içinde de bazı döngüler kullanıldığı oluyor (Star wars Jedi academy mesela). bu bissürü tasarruf sağlıyor çünkü. ama eğer döngü dışı bir animasyon yapılacaksa senin dediğin sistem kullanılıyo olabilir.
Oyun animasyonları çoğu zaman döngülerden oluşuyor ve detectionları bir bounding box ya da küre tarafından yapılıyor. |
|
Başa dön |
|
|
deniz Site Yöneticisi
Kayıt: Sep 14, 2002 Mesajlar: 838 Nereden: Ankara
|
Tarih: Wed Jun 01, 2005 10:39 am Mesaj konusu: |
|
|
Ben bu "yürüyen karakterin pozisyonunun animasyon sırasında değiştirilmesi" olayını half-life (1) modellerini incelerken görmüştüm.. Yürüme ve koşma animasyonları sırasında model olduğu yerde durmak yerine animasyon döngüsünü tamamlayana kadar ileriye doğru hareket ediyor.. garip. neye yaradığını anlayamamıştım.. hatta bunu convert ederken bu ilerlemeyi durduracak ekstra bişiler yazmak durumunda da kalmıştım.. incelemek isteyen asker ve bilimadamı modellerine bakabilir. |
|
Başa dön |
|
|
CemilKara
Kayıt: May 18, 2005 Mesajlar: 41 Nereden: Ankara
|
Tarih: Wed Jun 01, 2005 11:03 am Mesaj konusu: |
|
|
nerden varıyorsunuz collision hatası olacağına? ne gerek var ki local kordinatların sıfır çevresinde olmasına? yani ben modeli orjinde değil de kenarında çizince collision test edemeyecekmiyim? şahan tiplemelerindeki adam gibi "ilerleyin yaw!!" diye bağırmaktan başka bişey gelmiyor aklıma.
bu arada deniz doğru söylüyor hl de de belirttiğim sistem kullanılıyor.
MD-C nin aklına bikaç şey takılmış konu hakkında, pm yazdı, işte olduğu gibi mesajı ve cevabım:
Alıntı: |
MD-C demiş ki: |
Bu durumda şu soruları yöneltiyorum:
Soru 1: Animasyon, modelleyicinin gücü yettiği yere kadar yaptığı yüreme hareketinin sonuna geldiğinde, devam işlemi nasıl olacak? Translate(YürümeBaşlangıcı+ModelİçinTanımlananYürümeMesafesi) ???
Soru 2: Oyuncu bir yere dönmek isterse ne olacak? Bu işlemi yapmak şu problemi ortaya çıkarır: Animasyonun sıfır noktası karakterin yürümeye başladığı konum olduğundan, bu noktaya bir Rotate uygulandığında, dönüş bir noktanın etrafında olduğu gibi oluşacaktır. Tabi bu durumu engelleyebiliriz, karakterin yürüdüğü yerde dönüş yapmak istenen konumu 0 alır ve döndürürüz, eee bu durumda; durduğu yerde yürüyormuş gibi modellemeden ne farkı var?
Soru 3: Yürüme değilde, eğilme hareketi yapmak isteyen bir oyuncu, yürümenin herhangi bir yerinde eğilmek isteyince, eğilme işlemi karakterin ilk başladığı yere çekilipmi yapılacak (Eeee çünkü karakter yürümeye ordan başladı ve 10 metre kadar gitti ve ben eğilmek istedim ???) Tabi bu durumda aşılır ama; ek bilgi ve hesaplamalarla + Matrix transmisyonlarıyla... |
sorunları anlıyorum, ama biraz düşününce çok da zor çözümleri olmadığını görmelisin. keşke foruma yazsaydın, başkalarının da aklına aynı sorular gelmiş olabilir, neyse..
kendi kullandığım yöntemden cevapları vereyim:
ilk soruda cevabı verdin, zaten modelin ne kadar gittiğini ben baz bone ile tutuyorum, her an modeli animasyon bitmese de istediğim yere getiriyorum yani. burada tek fark matrix çarpımı yerine vektör toplamı yapıyor olmam ki bu çok daha hızlı bir şey.
state değiştiğinde bu işlem ya otomatik olur, yani dönüş olacağında model baz kemiğe otomatik gelir, ya da benim yapığım gibi baz kemik ile dönüşüm matrisleri uygulanır(sadece dönüşte kullaılır, anim değişmelerinde yani eğilip kalkma, zıplamaya başlama veya durma gibi bir hale geçildiğinde ana kemik position ile modelin global position ı toplanır ve devam edilir) quaternion kullanınca dönüşüm için 2. yol daha kolay geliyor.
baz kemik olmazsa ilgili animasyon için gidilecek yol dosya formatı içinde veya dışında tutulur, gilen ile karşılaştırılarak aynı işlemler yapılabilir.
istenirse model sürekli baz kemiğe çekilir ve yerinde sayma işlemi yapılmış olur(task periyodunu yüksek tutmayınca animasyon kesik gözüküyor)(zaten modelistin editor içinden yapacağı da bu olur, program içinden yapılırsa çok sık değişim olmuyorsa performans boş yere düşer) , bundan sonra eski tas eski hamam ile döner, eğilir, kalkar...
*baz kemik yerine ilk/son vertex, isimli grup.. gibi sheyler de kullanılabilir. yeter ki modelin gidişine doğru ayak uyduruyor olsun.. |
sanırım mesajını izinsiz yayınlamama bişey demez. yürüme kendi içinde olursa çok az da olsa performans kazancı yanı sıra, benim için daha önemlisi animasyonda doğallık sağlanıyor.
ardamardar bence alakasız şeyleri birbirine bağlamışsın:
Alıntı: |
örneğin yürüme döngüsü sırasında collusion detection yapmak için döngünün bitmesini beklersen bi aksiyon oyununda olmaması gereken kopukluklar yaratırsın. üstelik modelin duvarın içine geçer orda yürür bir süre (döngü bitene kadar). |
ayrıca eğer oobb veya bs kullanılacaksa kolaylık olması açısından baz kemiğim ile hallederim yapacaklarımı. |
|
Başa dön |
|
|
deniz Site Yöneticisi
Kayıt: Sep 14, 2002 Mesajlar: 838 Nereden: Ankara
|
Tarih: Wed Jun 01, 2005 12:59 pm Mesaj konusu: |
|
|
Alıntı: |
CemilKara:
sanırım mesajını izinsiz yayınlamama bişey demez. yürüme kendi içinde olursa çok az da olsa performans kazancı yanı sıra, benim için daha önemlisi animasyonda doğallık sağlanıyor.
|
performans kazancını bir kenara bırakırsak, "animasyonda doğallık sağlama" olayını anlayamadım, biraz daha açıklarmısın? hl modellerinin bu şekilde anime ettirilmiş olması hep kafamı karıştırmıştır, hazır birisini bulmuşken aklımdaki soru işaretlerine cevap arıyorum |
|
Başa dön |
|
|
|