Önceki başlık :: Sonraki başlık |
Yazar |
Mesaj |
Nomax
![](modules/Forums/images/avatars/galeri04/234.gif)
Kayıt: Jan 24, 2003 Mesajlar: 1134 Nereden: Bakırköyden.Yeni taşındık da...
|
Tarih: Sat Nov 05, 2005 10:38 pm Mesaj konusu: Kelle, kol, bacak koparmak |
|
|
Diyelim ki oyunumuzda kemik bazlı animasyon sistemi var ve bunlara bağlı olarak bölgelere göre hasar belirledik.Mesela kafaya atanmış kemiğe(bone) vurulunca headshot oluyor ve yüksek zarar veriliyor.Peki diyelim ki son vuruş belirli bir bölgeye yapıldı, örneğin kafa, nasıl kopması sağlanabilir? |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
vmeydaneri
![](modules/Forums/images/avatars/galeri01/119.gif)
Kayıt: Dec 08, 2004 Mesajlar: 583 Nereden: Ankara
|
Tarih: Sat Nov 05, 2005 10:46 pm Mesaj konusu: |
|
|
bunun icin soyle bisi yapabilirsin mesala o modelin 4 tane turu olur.
4. tane cizim yani
1.durum normal hareketler
2.Durum Kafasina ates edildiginde kafasi olmayan hali //ve dokulara kan efekti olan
3.Durum karnina ates edildiginde karni parcalanmis olan bir model tabiki yine farkli bir doku.
4.Durumda mesala sadece bir bacagi kopmus hali olabilir. //gene doku farkli
soyle olur
1. Durum hic bir saldiri yokken normal modeli ciz
saldiri oldu ve kafasina mermi geldigini saptadin ve kafasi kopmasi gerek
once 2. modeli yani kafasi olmayan modeli ekrana basicaksin ve kafasi olan modeli ekrandan kaldiracaksin ve sadece kafa modeli(kopan parca) olan halinide ekrana kafanin buldugu pozisyondan merminin hiz vektoru yonunde firlatacaksin..
Boyle yaparsan bu hissi verirsin..
Quake3 de Tek tek modelleri birlestiriyorlardi MD3 de fakat MD2 de benim dedigim bu yontemi kulaniyorlar... |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
Nomax
![](modules/Forums/images/avatars/galeri04/234.gif)
Kayıt: Jan 24, 2003 Mesajlar: 1134 Nereden: Bakırköyden.Yeni taşındık da...
|
Tarih: Sat Nov 05, 2005 11:45 pm Mesaj konusu: |
|
|
Peki profosyonel oyunlarda nasıl hallediliyor bu olay? Mesela soldier of fortune veya Blade of darkness'da? |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
son1431
![](modules/Forums/images/avatars/galeri07/537.gif)
Kayıt: Jan 15, 2003 Mesajlar: 82 Nereden: Balıkesir
|
Tarih: Sun Nov 06, 2005 12:49 am Mesaj konusu: |
|
|
Ben kendi oyunumda karakterin her bir uzulunu kafa,kol,bacak, gövde hatta gövdeyide kendi içerisinde 4 kısımda oyunuma import ediyorum ve merminin nereye geldiğini bilmek zaten bu işlemden sonra kolay. Ama sen karakteri tek seferde çizdiriyorsan şöyle yapabilirsin karakter import edildiğinde herbir poligon için bir gllist ve glloadname ile import edersin ve "Z" değerine göre karakterin canının daha fazla azalmasını sağlayabilirsin. Yani "Z" değeri arttıkça (karakterin kafa kısmına yaklaştıkça) darbeler daha fazla enerji götürür. Tabi programlama dili kullanıyorsan. Hazır oyun motorlarında nasıl olur bilemem. Çalışmalarında başarılar. |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
Nomax
![](modules/Forums/images/avatars/galeri04/234.gif)
Kayıt: Jan 24, 2003 Mesajlar: 1134 Nereden: Bakırköyden.Yeni taşındık da...
|
Tarih: Sun Nov 06, 2005 1:12 am Mesaj konusu: |
|
|
Bölgeye göre güç azalması değil benim yapamadığım.Kılıç savrulduğunda kafanın kopup vücuttan ayrı bir parça olarak gitmesi. |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
madprogrammer
![](modules/Forums/images/avatars/galeri05/353.gif)
Kayıt: Jun 10, 2004 Mesajlar: 290 Nereden: İstanbul // Üsküdar
|
Tarih: Sun Nov 06, 2005 12:11 pm Mesaj konusu: |
|
|
bak şimdi her objeyi (kafa, kol, bacak, ...) tek dosyada toplarsın fakat bunlar ayrı ayrı submesh'ler olur yani birbirinden bağımsız objeler ve sen bunlara normal haldeyken kemik matrislerini bağlarsın yani kemik matrislerine göre hareket ederler ilişkili olduğu kemiğin matrislerine göre ardından kafadan vurulunca bu model, kafayı bağlı olduğu kemikten koparırsın ve uygulanacak değerleri yer çekimi kurşun hızı gibi değerlerle değiştirirsin bu durumda kafa hem gerçekçi hareket eder hem de ayrı ayrı her durumu saklamaktan az yer kaplar hem ram'de hem de hdd'de ve üstelik ondan da daha gerçekçi olur. |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
son1431
![](modules/Forums/images/avatars/galeri07/537.gif)
Kayıt: Jan 15, 2003 Mesajlar: 82 Nereden: Balıkesir
|
Tarih: Sun Nov 06, 2005 1:18 pm Mesaj konusu: |
|
|
Anlatamadım herhalde. Şimdi "Z" değeri kafa bölgsinde (boyundan sonra) 15 birim civarında olsun. Yani darbe "Z" değeri 15 ve yukarısında bir yere yapılmış ise kafaya yapılmış bir darbedir. Kafanın kopması olayıda bundan sonra basit. Çizim yaptırılırken "Z" değeri 15birimden fazla olanların çizimi bir daha yapılmaz. böylece kafa kopmuş izlenimi verirsin. Eğer darbe 10birim - 15 birim arasında olursa karnı deşilir vs.. vs.. Tabi sen yinede kolay olması açısından ilk bahsettiğim gibi yapabilirsin yani her uzulu ayrı ayrı çizdirirsin. Kafaya alınan bir darbede kafa parçalanır ve çizimi yapılmaz böylece kafa dağılmış izlenimi verebilirsin. Darbe anında birde güzel efekt verirsen mükemmel olur sanırım. Çalışmalarında başarılar. |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
stroma
![](modules/Forums/images/avatars/galeri02/025.gif)
Kayıt: Mar 31, 2003 Mesajlar: 169
|
Tarih: Sun Nov 06, 2005 2:30 pm Mesaj konusu: |
|
|
of of off.. biraz düşünüp de cevap verin. biraz da okuyarak bakın sorunun başında ne yazıyor:
Alıntı: |
Diyelim ki oyunumuzda kemik bazlı animasyon sistemi var |
yani kemik kullanın diyor ne o öyle ayrı submesh veya xyz ler..
vmeydaneri ninkiler hariç söylenenler gereksiz ve eksik işlemlerle dolu. cevap yazarken "heralde böyle olursa, böyle olur o zaman şöyle olur" diye cevap veriyorsunuz ama uygulamada ortaya çıkacak pek çok hatayı atlıyorsunuz.
neyse... sanırım anlaşıldım. |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
DG
![](modules/Forums/images/avatars/galeri01/023.gif)
Kayıt: Mar 06, 2004 Mesajlar: 351 Nereden: Eskişehir
|
Tarih: Sun Nov 06, 2005 3:11 pm Mesaj konusu: |
|
|
Model formatına bağlı submesh, xyz vs.. vs.. olmaz diye bir şey yok. Yalnız eğer submesh yapıp buna hiyerarşi eklersen, bu sefer model normal halindeyken vertex blending yapmak zor olur. Büyük ihtimal gövde, kol, bacak ayrı ayrı kapalı submeshler yapılıp köklerinin olduğu yerde bir kemik (baş kökü için; boyun kemiği) varmış gibi hareket etmek gerekir. Varmış gibi hareketten kastım vertexler için kemik ağırlıklarının hiyerarşik olarak kestirilmesi.
Yok eğer kemik yapısında ise: örneğin bacak koptu, o zaman ağaçta bacağın başladığı dalı bulup, onu ağaçtan koparıp o dalı yeni bir ağaç olarak tanımlamalısın. Uygulamada Allah kolaylık versin
Bence vertex blending pek derdin değil ise hiyerarşik submesh kullan. Q3 modelleri -birbirlerine taglarla tutturulmuş- üç tane parçadan oluşuyor mesela ve gerekli düzenlemelerle rahatlıkla kopartılabilinir.
Anlattığım yöntemlerin ikisi de hemen hemen aynı kapıya çıkıyor gibi.
Kolay gelsin |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
son1431
![](modules/Forums/images/avatars/galeri07/537.gif)
Kayıt: Jan 15, 2003 Mesajlar: 82 Nereden: Balıkesir
|
Tarih: Sun Nov 06, 2005 5:58 pm Mesaj konusu: |
|
|
stroma demiş ki: |
of of off.. biraz düşünüp de cevap verin. biraz da okuyarak bakın sorunun başında ne yazıyor:
Alıntı: |
Diyelim ki oyunumuzda kemik bazlı animasyon sistemi var |
yani kemik kullanın diyor ne o öyle ayrı submesh veya xyz ler..
vmeydaneri ninkiler hariç söylenenler gereksiz ve eksik işlemlerle dolu. cevap yazarken "heralde böyle olursa, böyle olur o zaman şöyle olur" diye cevap veriyorsunuz ama uygulamada ortaya çıkacak pek çok hatayı atlıyorsunuz.
neyse... sanırım anlaşıldım. |
Kardeşim benim söylemek istediğim yöntemini değiştirebilirsin ve yazdıklarım size 2 yöntem önerisidir. Bunu anlamakda senin için bukadar zor olmamalı bence. Bir işi illaki tek bir yöntemle yaparız diye bir kanun yok. Nomax bu işi böyle yaparken bunlarıda yapabilirsin anlamına geliyor. İnşallah bukadar açıklama yeterli gelir. Yazımın başında okursan "ben kendi oyunumda..." diye başlamışım. Nomaxın oyununda şöyle yapılmalıdır diye başlamamışım. Polemik yaratmak heveslisi olmayın. Burada bilgilerimizi paylaşıyoruz. Eğer seninde bir fikrin varsa ama yanlış ama doğru söyle. Bundanda birşeyler öğrenebiliriz. Çalışmalarınızda başarılar. |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
stroma
![](modules/Forums/images/avatars/galeri02/025.gif)
Kayıt: Mar 31, 2003 Mesajlar: 169
|
Tarih: Sun Nov 06, 2005 10:58 pm Mesaj konusu: |
|
|
bahsettiğin yöntemi anlamıyor değilim hatta kullandım da. ama pek çok eksiği var ve kafa koparmak için yetersiz. bunu görebilmelisin.Polemik yaratmak heveslisi değilim. sadece verilen cevaplar biraz eksik ve hataları var dedim. ve diyelim ki elimde vertex var ben Z konumuna bakacam peki kelle kopartırken adamın eli-ayağı havadaysa ne yapacaksın eldeki-koldaki vertexleri de mi sileceksin? hadi sildin nasıl kapatacaksın a.çık uçları? ve yeni kaplama koordinatı oluşturman gerekecekse(damaged kaplama ayrı ise) ne yapacaksın??
kısacası dediğin yöntem başlıktaki sorunun cevabı değil ve kemikli değil vertex anim li modellerde kullanılıyor, md2 gibi.. kopartmak için değil damage hesapları için kullanılıyor. (o tarz formatlarda zaten kopartmak için tek mantıklı yol ayrı modeller oluşturmak) zaten kemikli sistemde yerden uzaklık almaya gerek yok, kemiklerde uzaklık alıp daha doğru bir damage sistemi geliştirilir..zaten başıl sahibi de belirtmiş:
Alıntı: |
Bölgeye göre güç azalması değil benim yapamadığım.Kılıç savrulduğunda kafanın kopup vücuttan ayrı bir parça olarak gitmesi. |
--------
diğer yani med in dediğini ise kæle bile almayacağım her kemiği submesh yapmış demor..
--------
polemik yaratmamak için ( ??? ) bu konuya başka cevap da yazmayacağımı şimdiden söyliim. çünkü anlaşılan cevap alınmış... |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
DG
![](modules/Forums/images/avatars/galeri01/023.gif)
Kayıt: Mar 06, 2004 Mesajlar: 351 Nereden: Eskişehir
|
Tarih: Sun Nov 06, 2005 11:31 pm Mesaj konusu: |
|
|
Günümüz oyunlarında çok ilginç örnekler var bu konularda:
BloodRayne 2 - Karakterin kafasını uçurabildiğimiz gibi karakteri diklemesine ortadan ikiye de ayırabiliyoruz.
Half Life 2 - Zombilerin yarılışını görmüşsünüzdür. Testere bıçağı nereden fırlatılmışsa oradan yarılıyorlar. Çok güzel bir hiyerarşi var.
-------------------------
Meydaneri'nin söylediği metodu doğru anlamışsam, çok çok kısıtlayıcı. Mesela modelin kafası, kolları, bacakları ayrı ayrı kopabilsin ve model simetrik olmasın. Kombinatif olarak artıyor model sayısı
Modeller:
* sağ kol
* sol kol
* sağ bacak
* sol bacak
* kafa
* sağlam model
* kafası olmayan model
* kafası ve sağ kolu olmayan model
* ....
* sağ kolu olmayan model
* ....
Bu çok kısıtlayıcı. Modelleme açısından değil bellek gereksinimleri açısından.
Halbuki hepsi aynı model... |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
vmeydaneri
![](modules/Forums/images/avatars/galeri01/119.gif)
Kayıt: Dec 08, 2004 Mesajlar: 583 Nereden: Ankara
|
Tarih: Sun Nov 06, 2005 11:43 pm Mesaj konusu: |
|
|
Bu soyledigim benim uydurdugum bisi degil Quake 2 de bu uygulaniyor ...
ve bu olayda 2-3 model felan oluyor yani cok asiri bir parcalanma efekti olmuyor ..
Tabi bunu gunumuz teklonojisi ile kiyaslarsak daha fazlasini , daha rahat bir bicimde yapabilirsin(yani fazla model kulanmadan tek modelde haledebilirsin) fakat bu seferde ileri derece matematik isin icine girer ....
arkadasimiz ilk soruda nasil yapabilirim demis bende quake 2 deki mantigi anlattim ..
ileri sevye seyler yapilabilir sonucta yontem cok hatta kendin bile gelistirebilirsin... |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
MD-C
![](modules/Forums/images/avatars/galeri02/078.gif)
Kayıt: Feb 26, 2003 Mesajlar: 1258 Nereden: Dünya.Türkiye(54)
|
Tarih: Sun Nov 06, 2005 11:47 pm Mesaj konusu: |
|
|
Olay basit, madem Kemik Sistemin zaten var... Senin yapman gereken; alınan darbe sonrası, kafayı kontol eden kemiği gerçek olarak düşürmek, bunuda iki şekilde yaparsın: Ya bir fizik motoru kullanıp real-time kelleyi uçurursun yada önceden animasyonlanmış birşeyi oynatırsın... |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
Nomax
![](modules/Forums/images/avatars/galeri04/234.gif)
Kayıt: Jan 24, 2003 Mesajlar: 1134 Nereden: Bakırköyden.Yeni taşındık da...
|
Tarih: Mon Nov 07, 2005 12:02 am Mesaj konusu: |
|
|
MD-C demiş ki: |
Olay basit, madem Kemik Sistemin zaten var... Senin yapman gereken; alınan darbe sonrası, kafayı kontol eden kemiği gerçek olarak düşürmek, bunuda iki şekilde yaparsın: Ya bir fizik motoru kullanıp real-time kelleyi uçurursun yada önceden animasyonlanmış birşeyi oynatırsın... |
Kafayı kontrol eden kemiği gerçek olarak düşürmek diyorsun fakat bu sefer de vertexler bağlı kalacak ve kafa uçtuğunda boyun uzicak peşinden gidecek, yani kopmayacak, öyle değil mi? |
|
Başa dön |
|
![](themes/DeepBlue/forums/images/spacer.gif) |
|