Şimdi Ara

[YARDIM] Araç fiziği ve yapısı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
32
Cevap
0
Favori
675
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Selamlar Unity3D ile gerçeğe yakın araç oyunu geliştirmek istiyorum ama şuan marketteki menüsü saçma sapan olup oyun içinde bir araç bir ev değiştirip oyunu yayınlayan insanların oyunları gibi olsun istemiyorum. Oyundaki araçların tüm dış ve iç(aksam) parçalarının değiştirilmesi var kafamda bu konuda bir problem yok ve yapım aşımasındayım ama gerçek arabadaki Tork, HP, Dişli oranı .... gibi değerleri nasıl oyuna geçireceğimi bilemiyorum. Bu değerlerin gerçek hayatta araca nasıl etkilediğini ve oyun motorundaki motorTorque,brakeTorque değerine nasıl bir etki edeceğini araştırıyorum.

    Bu konuda yardım edebilecek kişiler arıyorum.
    Oyunda araç fonksiyonlarının debriyaj fren vites gibi kontrolleri yapacağım. Onun dışındaki tüm ayrıntıları yapmak istiyorum açıkcası gerçeğe yakınlığı benim için çok önemli. Basit olarak W & Yukarı oka bastığımızda motorTorqueyi yükseltmek yerine gerçek araçtaki olayların oyunda da olması gerekiyor. Tüm performans parçalarını sınıflandırıp her parça alışverişinde araca nasıl etki edeceğini bilen birilerine ihtiyacım var. O anlatacak ben koda dökeceğim açıkcası. Umarım kafamdakini anlatabilmişimdir. Teşekkürler







  • Oyunun kendi fiziğini kullanmayıp kendi fizik kurallarınızı mı uygulamayı düşünüyorsunuz?
  • Bu çok karmaşık bir konu. Yapılmış yarış simülasyonlarının kodlarından yararlanman en iyisi olur, ama bir kaç farklı önerim var. Ben arabaların çalışması hakkında pek bir şey bilmiyorum ama seninki gibi bir projem olsa şu seçeneklere bakardım:

    1. Arabanın çalışmasını öğrenip modelleme kodunu kendin yazabilirsin. Çeşitli kitaplar var. Türkçe kaynaklar için otomotiv mühendisliği bölümünün konuyla ilgili giriş kitaplarına bakabilirsin sanıyorum. İngilizce biliyorsan çok daha iyi olur, internette çok kaynak var. Örneğin bu kitap:https://gctbooks.files.wordpress.com/2016/02/automotive-engineering-fundamentals-by-richard-stone-and-jeffrey-k-ball.pdf Daha basit ve açıklayıcı kaynaklar da vardır büyük ihtimal.

    2. TORCS adlı yarış simülasyonunun kodlarını edinebilirsin. Buradan TORCS-1.3.4-src dosyasını indirip, WinRAR ile açıp, "modules/simu/simuv2" klasöründeki dosyaları inceleyebilirsin.

    3. MATLAB'de tam bir aracın Simulink modeli var:https://www.mathworks.com/help/physmod/sdl/ug/complete-car-model-and-simulation.html Belki bundan da yararlanabilirsin.

    Belki çok daha kolay yolları vardır, benim aklıma bunlar geldi. Temel mühendislik bilgisi şart. Otomotiv mühendisliği bölümünden birilerini bulabilirsen belki bitirme projesi olarak vs. yapabilirsiniz.


    Ek olarak şu kaynaklara da bakabilirsin, bunlar daha basit modeller, her şeyi hesaba katmıyorlar:
    http://ploobs.com.br/arquivos/2278
    http://www.asawicki.info/Mirror/Car%20Physics%20for%20Games/Car%20Physics%20for%20Games.html



    < Bu mesaj bu kişi tarafından değiştirildi ali2255 -- 28 Kasım 2016; 18:40:42 >




  • Tugrul_512bit kullanıcısına yanıt
    Yok. Misal W tuşuna basıldığında motorTorque = 500 dediğimde tekerler hareket ediyor yürümeye başlıyor araç ama oradaki 500 neyin 500ü? Normal hayatta böyle bir değer yok gaza dokunulduğunda devir artıyor vitese göre bir şeyler oluyor motora iletiliyor falan bu işlemleri koda dökmek istiyorum. Daha sonra oyundaki motorTorque birime iletip harekete sağlamak derdim. Level 1 araç 500, level 2 araç 600 motorTorqueye sahip olması benim için bir şey ifade etmiyor.
  • ali2255 kullanıcısına yanıt
    Linkleri inceleyeceğim sağolun. Konuyu otomobil kısmında paylaşsam anlayan birileri çıkar mı acaba ?

    < Bu ileti mini sürüm kullanılarak atıldı >
  • HolySound kullanıcısına yanıt
    Pek sanmıyorum ama şansını dene.

    Ayrıca Unity için şunu buldum:http://vehiclephysics.com

    Senin istediğin şey olabilir, modüler olmasından vs bahsediliyor.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • ali2255 kullanıcısına yanıt
    Bunun gibi evet ama bu hazır yazılmış asset storeda satılan paketin yardım dosyası içerik hakkında hiç bir bilgi vermiyor.
  • HolySound kullanıcısına yanıt
    Evet, dokümantasyonları bayağı eksik.
  • Kendi oyun ve fizik motorunu yapmak çok karmaşık bir iş üst düzey yazılım bilgisi gerekli. Ben hazir motorlar ile yola devam et derim.
    Eğer kendi motorunu yapcaksan yardımı olur
    https://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc12/Srisuchat/Thesis.pdf
  • Glukhovsky kullanıcısına yanıt
    Yok dostum yanlış anladın. Unity3D kullanacağım zaten onun fiziğini kullanacağım ama şimdi onda yapmam gerekenler basit; 4 tane Wheel Collider ekleyip bir adet de Rigidbody veriyorum rigidbodynin ağırlığını 1200 falan yapıyorum gerçek araç misali daha sonra hareket kısmını anlatayım sana. Araçın türü 4çeker ön yada arkadan çeker durumuna göre arkadaki yada önceki yada hepsinin kendi özelliği olan motorTorqueyi, şöyle anlatayım motorTorque = Input.Key('W') * 500 diyorum mesela araçta buna göre hızlanıyor oradaki 500 değerine göre hızlanıyor. Aracın türüne modeline göre o 500 değerini değiştiririm ama gerçeğe uygun değil. Benim istediğim o 500ü değiştirmek daha doğrusu gerçek hayattaki verileri oyundaki araca geçirip atıyorum dişli oranları motor gücü tork vites ecu turbo vb. bu değerlerin o anki klavye veya game pad tuşundan gelen değerle birlikte hesaplayıp daha sonra motorTorqueye bağlamak. Umarım anlatabilmişimdir. Böyle yapmamın sebebi oyundaki tüm iç ve dış parçalarının değiştirilecek olması gerçeğe yakın bir oyun yapmayı planlıyorum.




  • "atıyorum dişli oranları motor gücü tork vites ecu turbo vb. bu değerlerin o anki klavye veya game pad tuşundan gelen değerle birlikte hesaplayıp daha sonra motorTorqueye bağlamak."

    demişsin işte.

    motorTorque = Input.Key('W') * 500 diye yazmışsın neyi yapamadın anlamadım.


    motorTorque = Input.Key('W') * engineComponents olarak değiştireceksin.

    engineComponents = ecu * vites * turbo * dişli oranları vs. biçiminde tanımlayacaksın. boylece araç mevcut parçalara göre hızlanacak.

    yani bir motor component veri formulu bir denklem yazacaksın. o kadar.
  • quote:

    Orijinalden alıntı: Kaygerya

    "atıyorum dişli oranları motor gücü tork vites ecu turbo vb. bu değerlerin o anki klavye veya game pad tuşundan gelen değerle birlikte hesaplayıp daha sonra motorTorqueye bağlamak."

    demişsin işte.

    motorTorque = Input.Key('W') * 500 diye yazmışsın neyi yapamadın anlamadım.


    motorTorque = Input.Key('W') * engineComponents olarak değiştireceksin.

    engineComponents = ecu * vites * turbo * dişli oranları vs. biçiminde tanımlayacaksın. boylece araç mevcut parçalara göre hızlanacak.

    yani bir motor component veri formulu bir denklem yazacaksın. o kadar.

    fazla düz düşünmüşsün dostum her değer çarpılıyor mu acaba orada acaba hepsi sırasıyla çarpılmıyordur. Bide mesela direk bu değere mi etki ediyor o değerler kendi aralarında işlemleri var bence.




  • HolySound kullanıcısına yanıt
    Bence arkadaşın demek istediği, gerçeğe ne kadar yaklaşmaya çalışırsan çalış yine aynı şeyi elde edeceksin. "Ben sadece yapmış olmak içi yapıyorum" diyorsan okey ama başka türlü benzinin yanarken oluşturduğu karbondioksit miktarı, basıncı ve motor metalinin genleşme hacmine kadar gidersin. O da bilgisayar açısından gereksiz bir karmaşıklık katmanı ekler yazılımına. En gerçekçi yatış oyunlarından bile böyle handle etmektense farklı çözümlere yönetiyorlar. Sana tavsiyem; şu amda bildiğim kadarıyla dünyadaki o araçların mekaniklerini en detaylı düşünen oyun euro truck simulator. veya 18 wheels of steel miydi neydi. o tır oyunlarından biri. gerçekçiliği artırmak için senin gibi eklemeler yapmışlardı. bence bulabilirsen nasıl yaptıklarını bir incele.

    edit: çok yazım hatası var kusura bakmayın bilgisayara geçince düzenleyeceğim



    < Bu mesaj bu kişi tarafından değiştirildi KaramazovX -- 3 Aralık 2016; 11:26:08 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: HolySound


    quote:

    Orijinalden alıntı: Kaygerya

    "atıyorum dişli oranları motor gücü tork vites ecu turbo vb. bu değerlerin o anki klavye veya game pad tuşundan gelen değerle birlikte hesaplayıp daha sonra motorTorqueye bağlamak."

    demişsin işte.

    motorTorque = Input.Key('W') * 500 diye yazmışsın neyi yapamadın anlamadım.


    motorTorque = Input.Key('W') * engineComponents olarak değiştireceksin.

    engineComponents = ecu * vites * turbo * dişli oranları vs. biçiminde tanımlayacaksın. boylece araç mevcut parçalara göre hızlanacak.

    yani bir motor component veri formulu bir denklem yazacaksın. o kadar.

    fazla düz düşünmüşsün dostum her değer çarpılıyor mu acaba orada acaba hepsi sırasıyla çarpılmıyordur. Bide mesela direk bu değere mi etki ediyor o değerler kendi aralarında işlemleri var bence.

    Ben ornek olarak carptim. Iste senin oraya bir denklem yazman lazim. Her komponentin motoru nasil etkiledigini arastirarak o denklemi olusturman lazim.

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • quote:

    Orijinalden alıntı: Fulctrum

    Bence arkadaşın demek istediği, gerçeğe ne kadar yaklaşmaya çalışırsan çalış yine aynı şeyi elde edeceksin. "Ben sadece yapmış olmak içi yapıyorum" diyorsan okey ama başka türlü benzinin yanarken oluşturduğu karbondioksit miktarı, basıncı ve motor metalinin genleşme hacmine kadar gidersin. O da bilgisayar açısından gereksiz bir karmaşıklık katmanı ekler yazılımına. En gerçekçi yatış oyunlarından bile böyle handle etmektense farklı çözümlere yönetiyorlar. Sana tavsiyem; şu amda bildiğim kadarıyla dünyadaki o araçların mekaniklerini en detaylı düşünen oyun euro truck simulator. veya 18 wheels of steel miydi neydi. o tır oyunlarından biri. gerçekçiliği artırmak için senin gibi eklemeler yapmışlardı. bence bulabilirsen nasıl yaptıklarını bir incele.

    edit: çok yazım hatası var kusura bakmayın bilgisayara geçince düzenleyeceğim

    Live For Speed, city car driving falan var ama bunlar kapalı kaynakları bulmak zor. Açık kaynaklı yarış oyunlarıda hep c++ ile yazıldığı için birşey anlayamıyorum.




  • quote:

    Orijinalden alıntı: Kaygerya


    quote:

    Orijinalden alıntı: HolySound


    quote:

    Orijinalden alıntı: Kaygerya

    "atıyorum dişli oranları motor gücü tork vites ecu turbo vb. bu değerlerin o anki klavye veya game pad tuşundan gelen değerle birlikte hesaplayıp daha sonra motorTorqueye bağlamak."

    demişsin işte.

    motorTorque = Input.Key('W') * 500 diye yazmışsın neyi yapamadın anlamadım.


    motorTorque = Input.Key('W') * engineComponents olarak değiştireceksin.

    engineComponents = ecu * vites * turbo * dişli oranları vs. biçiminde tanımlayacaksın. boylece araç mevcut parçalara göre hızlanacak.

    yani bir motor component veri formulu bir denklem yazacaksın. o kadar.

    fazla düz düşünmüşsün dostum her değer çarpılıyor mu acaba orada acaba hepsi sırasıyla çarpılmıyordur. Bide mesela direk bu değere mi etki ediyor o değerler kendi aralarında işlemleri var bence.

    Ben ornek olarak carptim. Iste senin oraya bir denklem yazman lazim. Her komponentin motoru nasil etkiledigini arastirarak o denklemi olusturman lazim.



    Araştırdım çok ama yinede sadece mekanik olarak nasıl çalıştığını anlatan yazılar çıktı bu konuyuda bilen biri vardır diye açtım :/




  • quote:

    Orijinalden alıntı: HolySound


    quote:

    Orijinalden alıntı: Kaygerya


    quote:

    Orijinalden alıntı: HolySound


    quote:

    Orijinalden alıntı: Kaygerya

    "atıyorum dişli oranları motor gücü tork vites ecu turbo vb. bu değerlerin o anki klavye veya game pad tuşundan gelen değerle birlikte hesaplayıp daha sonra motorTorqueye bağlamak."

    demişsin işte.

    motorTorque = Input.Key('W') * 500 diye yazmışsın neyi yapamadın anlamadım.


    motorTorque = Input.Key('W') * engineComponents olarak değiştireceksin.

    engineComponents = ecu * vites * turbo * dişli oranları vs. biçiminde tanımlayacaksın. boylece araç mevcut parçalara göre hızlanacak.

    yani bir motor component veri formulu bir denklem yazacaksın. o kadar.

    fazla düz düşünmüşsün dostum her değer çarpılıyor mu acaba orada acaba hepsi sırasıyla çarpılmıyordur. Bide mesela direk bu değere mi etki ediyor o değerler kendi aralarında işlemleri var bence.

    Ben ornek olarak carptim. Iste senin oraya bir denklem yazman lazim. Her komponentin motoru nasil etkiledigini arastirarak o denklemi olusturman lazim.



    Araştırdım çok ama yinede sadece mekanik olarak nasıl çalıştığını anlatan yazılar çıktı bu konuyuda bilen biri vardır diye açtım :/

    http://www.paganx.org/tork-nedir-beygir-gucu-hizlanma-ve-disli-oranlari.html




  • daha yeni üzerinde çalıştğım bir konu. orta karar matematik ve newton fiziği bilmen, aracın mekanik aksamlarını bilmen ve tabiki programlama bilmen gerekli. bunu ileri seviye kaliteye taşımak ise gerçek anlamda multidisipliner mühendislik bilgisi istiyor.

    kendi çalışmam burada devam ediyor:

    https://forum.donanimhaber.com/arac-fizigi-calismam--129896723



    < Bu mesaj bu kişi tarafından değiştirildi Freakk -- 28 Kasım 2017; 18:12:50 >
  • Dostum Istedigin Arac paketini falan sec ben sana onu ucretsiz vereyim. Hem de su var asset store da cok kaliteli detayli kitler var. Sen en uygununu en gercekcisini bul bana linkini at.



    Bu benim yeni kurdugum ekibimizin discordu Sen de Oyun gelistirirken karsilastigin sorun, hata ve istwdigin fikir ve istekleri paylasmak icin ekip ariyorsan beklerim. :

    https://discord.gg/KMZ2xkh

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Unreal engine ile araç ayarlarını kurcalamıştım,

    Tork grafiği, hıza göre kontrol grafiği ve ne olduğunu anlamadığım bir sürü detaylı ayar daha vardı, bir bakın derim

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.