Mermiyi kamera yerine silahtan çıkarmak, ancak nişangâh açısından doğru tutmak


14

Birinci şahıs oyunu üzerinde çalışıyorum ve bir sorunla karşılaştım. Oyunumda, oyuncunun silahının yanı sıra ekranın ortasında bir nişangâh var - şöyle:

enter image description here

İlk olarak, herhangi bir silah modeli oluşturulmadığını düşünelim. Daha sonra mermi ateşlemek kolaydır - mermiyi tam olarak oyuncunun "gözlerinin" olduğu yerde ortaya çıkarırsınız ve daha sonra oyuncunun baktığı yöne bağlı olarak hızı hesaplamak için trig'yi kullanırsınız.

Ama şimdi, silah modelini eklediğimizde ... sadece oyuncuların gözlerinin bulunduğu mermiyi üretemeyiz, silahın ucunda ortaya çıkmalıyız (değil mi?). Yani bunu yapıyorsunuz, ama sonra ... mermiyi nişangâhın işaret ettiği yere vuracak şekilde nasıl hareket ettiriyorsunuz?

Oyunumdaki merminin (aslında bir roket, bu durumda) hareketinin görülebileceği kadar yavaş hareket edeceğini unutmayın, bu nedenle merminin gözlemlenemeyecek kadar hızlı olması durumunda genellikle işe yarayacak bazı geçici çözümler işe yaramayacaktır. . Örneğin, eğer silahın ucundan çıkmış gibi görünecek şekilde yumurtlamadıysanız, oyuncu kesinlikle bunu fark edecektir.


1
Sorunuzun cevabı, Raycasting =)
Gray

Hepsi duman ve aynalar; işlenen mermilerin merminin gerçek yolu veya ışını ile ilgisi yoktur.
congusbongus

@congusbongus Demek istediğim, işlenen mermi merminin kendisinin matematiği ile tam olarak hizalanmış olmak zorunda değil, ama bunu bir dereceye kadar yapmazsanız kötü görünmeye başlar ve bu benim sıkıştığım yer .
Aaron

Yanıtlar:


20

Merkezden / retikülden dünyaya kameradan bir ışın çekin. Dünyanın neresine isabet ettiğini öğrenin. Mermi, silahın namlusundan, silahtan dışarıya çıkmak yerine o noktada ateşleyin.

Elleri ve silahı bu yöne doğru hareket ettirmek için hareket ettiren bonus puanlar, böylece mermi hala bir açıyla çıkmak yerine namludan dışarı ateş ediyor gibi görünüyor.

Animasyonu yaparsanız, mermiyi her zaman namludan çıkartabilirsiniz. Silahın nişangâhın hedeflediği noktayı makul sınırlar içinde göstermesini sağlamak için elinizden geleni yapın. Ayrıca, hem oyuncunun nişan almaya çalıştığı ekranın merkezini hem de silahın hedeflediği noktayı doğal olarak gösterecek şekilde iki nişangâh olması faydalıdır.

Veya animasyonu bitirdikten sonra silahın nişan alacağı tek bir nişangâh gösterebilir ve mermiyi, silahın şu anda animasyonunda hedeflediği yerden ziyade bu yönde ateşleyebilirsiniz. Bu şekilde nişangâh her zaman oyuncunun gerçekte ne vuracağını gösterir, ancak örneğin bir silah etrafında ateş edebileceğinizi iddia etmeyecektir, çünkü kamera silahın yapamayacağı bir şey görür.

Bunların hepsi gerçek oyunlarda kullanılmıştır. Tercih ettiğiniz, yaptığınız oyunun stiline, simülasyon ve hedeflediğiniz oyun arasındaki değişime, bunun çok oyunculu olup olmamasına vb.


Birçok oyun mermi için modeller bile kullanmaz, ancak bir çarpışmayı kontrol etmek için belirtildiği gibi bir ışın ateşler, yapabileceğiniz şey diğer oyunculara mevcut oyuncular görünümünde görünenlerden farklı bir silah modeli göstermek ve merminin bulunduğu yere hizalamaktır. manzaraları hedefleyen karakter ile ateş
Matthew Pigram

Counter-Strike Source bu yöntemi kullanıyor (görünümü, oyuncusu ve dünya modelleri var)
Matthew Pigram

-1

Nişangâhtan kurtulmaya ne dersin? Sonra mermiler, tıpkı gerçekte olduğu gibi, silahtan düz bir çizgide olabilir. Nişangahları hedeflemek, hedefi ve silahın namlusunu hizalayacağınız anlamına gelir (oyuncu modelinde eksi birkaç inç).


Birçok oyun böyle bir şey yaparken, bu oyunun temposunun ve dövüşünün tamamı üzerinde etkileri olan çok geniş bir tasarım kararıdır.
Katana314

Bana göre bu daha çok problemden kaçınmak ve aslında onu çözmek.
Aaron
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.