dwu osiowy pojazd

Pytania i problemy dotyczące fizyki i logiki w BGE.
Awatar użytkownika
janek
Posty: 237
Rejestracja: 19 lip 2012, 14:23
Lokalizacja: Gdańsk

dwu osiowy pojazd

Postautor: janek » 28 lut 2014, 15:19

Witam

Dość długo nie było mnie na forum ( z powodów szkolnych) ale już jestem :P

Ostatnio po tym jak Moguri z BA naprawił bugi w Vehicle Wrapper (V.W) link >http://blenderartists.org/forum/archive/index.php/t-313625.html
Zacząłem budować szablon dwuosiowego pojazdu (czyli typowego ciągnika). Były to dwa dwukołowe pojazdy połączone Rigid B.Joint'em (V.W) 2+2 (przód i tył)
Pomysł się udał ale z defektem. Przednia koła które odpowiadają za sterowanie pojazdem mają tak jakby ograniczone integrowanie w całość. Możliwe że zmniejszone tarcie. I nie skręcają pojazdem tak jak powinny (coś jakby jechały po lodzie).
Próbowałem pozmieniać parametry tarcia,sprężystości itp w skrypcie ale to nic nie dało. Później próbowałem dociążyć przód pojazdu bo myślałem że może koła nie trzymają się ziemi ale to też nic nie dało.
Próbowałem też zrobić system pchania czyli wspomaganie siłowe przodu ale efekt i tak mizerny a poza tym mało realny.
Nie mam już sił i pomysłów na to :cry: Byłbym wdzięczny za jakąkolwiek pomoc.

link do blenda
http://www.mediafire.com/download/wjsa2yrr7wmjls2/tractor_2axis.blend

Nersael
Posty: 34
Rejestracja: 10 sty 2014, 16:56

Re: dwu osiowy pojazd

Postautor: Nersael » 28 lut 2014, 19:07

Ja może za bardzo nie pomogę w temacie wrapowania pojazdu bo się na tym nie znam.
Ale jeśli nie zależy ci na ułamkach wydajności to zaproponowałbym zrobienie tego trochę inaczej.
Ja stworzyłem zawieszenie pojazdu na taki prosty chłopski rozum:

potrzebne jest koło, zwrotnica, pojazd, amortyzator i "box" sterujący.
wszystko łączę rigid body oprócz box do pojazdu, już mówię jak

box sterujący jest sparentowany do pojazdu, po czym ustawiam mu akcje obrotu od 10 do 110 a środek na 60 (kiedyś robiłem od 0 do 100 ale blęder przy 0 miał czasem problem z obliczeniami, w zasadzie to python)

połączenia rigid body:

- amortyzator sztywno do pojazu

- koło do zwrotnicy (koło może się kręcić tak ja na koło przystało w jednej osi, chyba że pojazd jest uszkodzony)

- zwrotnica do pojazdu tak aby mogła się obracać w osi Z i poruszać w osi Z

- zwrotnica do box sterującego tylko zablokowana w obrocie Z

później odległość miedzy zwrotnicą a amortyzatorem wykorzystuję do zrobienia sprężystości i amortyzacji (kiedyś był tutorial na forum jak zrobić amortyzator)

Jakby ktoś był zainteresowany robieniem pojazdu w ten sposób to może jakiś tutorial zrobię, ale muszę tu powiedzieć że jest różnica, przynajmniej u mnie jednego procenta wydajności w porównaniu z vehicle wrapper a moim sposobem.

Ja postanowiłem robić to w ten sposób bo mogę sobie pobierać prędkość z kół i przekazywać ją do strzałki prędkościomierza i obliczać obroty silnika, nie wspomnę, że można robić "palenie gumy" co jak mi się wydaje, podkreślę wydaję, że nie można za pomocą vehicle wrapper zrobić, odpadania kół, podmieniania siatki koła tak żeby jechał na feldze.

W sumie to można ten sposób zobaczyć w grze work and drive, którą jest do pobrania na forum. U podstaw nic się nie zmieniło ale od czasu kiedy tamtą grę zrobiłem wprowadziłem wiele ulepszeń działania zawieszenia.

Awatar użytkownika
janek
Posty: 237
Rejestracja: 19 lip 2012, 14:23
Lokalizacja: Gdańsk

Re: dwu osiowy pojazd

Postautor: janek » 28 lut 2014, 20:27

Pamiętam jak kombinowałem jeszcze niedawno z robieniem pojazdu na łączeniach rigid body. Wszystko pięknie dopóki nie zaczęło się skręcać i przyspieszać (gdzieś powyżej 40 km/h na oko) Koła nie wytrzymywały siły odśrodkowej i zaczynały się "przeginać".
Jestem ciekaw czy profesjonalne amortyzatory pochłonęły by tą siłe :? Można by też pokusić się o lekką rozzbieżność kół tak jak na rysunku:
Obrazek
Ale jakby nie patrzeć system chodził nawet ładnie, oczywiście z małą prędkością. Wszystkim sterowało bezpośrednio WSAD na kołach.

Trochę pograłem w twoją gre ale niestety nie udało mi się zarobić na ten piękny wózek co ponoć ma Vmax 160 :D Co najwyżęj otworzyłem drzwi i maske :ugeek:
Ramie koparki odmówiło posłuszeństwa i nic nie mogłem zrobić (testowałem na 2.66)
A szkoda bo chętnie przetestowałbym ten model jazdy :cry: Jakbyś wrzucił jakiś pliczek... :oops:


Swoją drogą też mam tu stare demo swojego modelu. W całości symulowany tylko przez fizykę bez pythona. Zrobiony na zakład z kolegą któremu udowodniłem że da się zrobić model jazdy bez programmingu 8-)
http://www.mediafire.com/download/fxi9y66en29i80t/VehicleSuspensionSteer.blend
edit:
Przypomniał mi się bug. Nie wykręcaj kół bardziej niż 70' stopni bo nie ustawiłem blokady i źle to może potem wyglądać :P

Nersael
Posty: 34
Rejestracja: 10 sty 2014, 16:56

Re: dwu osiowy pojazd

Postautor: Nersael » 28 lut 2014, 23:58

Teraz przez weekend raczej nie dam rady zrobić fajnego projektu pokazującego wszystkie wady i zalety tego rozwiązania, ale jak uruchomisz grę(plik blend) to przy skrypcie "menu_New_Game" w wierszu 23 wystarczy zmienić ilość pieniędzy. Po uruchomieniu gry i kliknięciu new game mamy kasy ile wpisaliśmy. Bez problemu kupisz pojazd, z tego co pamiętam to zielony będzie miał prawie łyse opony i będzie się ślizgał, ale po wymianie w warsztacie pojedzie jak po sznurku, ten czerwony ma automatyczną skrzynie biegów, ale aby jechać do tyłu trzeba wbić R, nie tak jak w większości, że trzymając hamulec pojedzie do tyłu.

Jakbyś chciał to na tygodniu zrobię tutorial jak krok po kroku zrobić taki pojazd.

Awatar użytkownika
janek
Posty: 237
Rejestracja: 19 lip 2012, 14:23
Lokalizacja: Gdańsk

Re: dwu osiowy pojazd

Postautor: janek » 01 mar 2014, 12:18

No jestem pod wrażeniem zachowania się zawieszenia pod taką prędkością i nawet driftować się da :D Koła trzymają się prosto nawierzchni
pomimo dużego kąta skrętu przy dużej prędkości (120 na zegarach ). Chyba lepszy model jazdy niż Beuraki ;)
Tak się rozpędziłem że w drzewo przywaliłem i poduszka wyleciała :lol:
Szkoda że tylko 2 przełożenia w przód. Aż się prosi wrzucić tu 4-ke. Ja w swoim ursusie zrobiłem 8+4 XD ale że dochodził reduktor (zółw i zająć) to jest 16+8. Wszystkim sterowała przesunięta parabola dla każdego biegu. Można by zrobić lepszą funkcje ale to zawsze można zmienić :P

Jakbyś chciał to na tygodniu zrobię tutorial jak krok po kroku zrobić taki pojazd.

Super by było :D
Taki tutorial bardzo przydałby się na tromanie. Wreszcie jakiś porządny model jazdy na bge :)

Nersael
Posty: 34
Rejestracja: 10 sty 2014, 16:56

Re: dwu osiowy pojazd

Postautor: Nersael » 05 mar 2014, 13:54

Bardzo przepraszam, że nie zrobiłem tutoriala, ale brak czasu.
Przygotowałem jednak plik blend z dokładnym opisem jak co działa i opisem skryptów. Wszystko jest bardzo uproszczone i można to bez problemu rozbudować na własne potrzeby.

link do pliku
http://dysk.onet.pl/link/mOn1r

W zasadzie to jakby ktoś chciał to może na forum napisać jak i co można w tym udoskonalić.

Awatar użytkownika
janek
Posty: 237
Rejestracja: 19 lip 2012, 14:23
Lokalizacja: Gdańsk

Re: dwu osiowy pojazd

Postautor: janek » 05 mar 2014, 21:58

Bardzo przepraszam, że nie zrobiłem tutoriala, ale brak czasu.

Spoko ;) Chyba każdego to już kiedyś niestety dotknęło :cry:

Model dosyć rozbudowany ale myślę że dam rade go odszyfrować i instrukcja w blendzie też się przyda :)
Co narazie również z braku czasu będę go rozkładał na czynniki pierwsze i adaptował dopiero w weekend.
A co zdążyłem zauważyć to że jest tu potrzebny dyferencjał i parę bajerów ale tu już wiesz... Bo wersja
zgodnie z opisem okrojona i w sumie dobrze. Bo potem łatwiej to zrozumieć.

Pozdrawiam.

Awatar użytkownika
pawianek
Posty: 61
Rejestracja: 03 sty 2013, 21:20

Re: dwu osiowy pojazd

Postautor: pawianek » 10 mar 2014, 20:26

Wielkie dzięki za plik blend. jest genialny :)
Jeśli zechcemy możemy stworzyć wiele wspaniałych i dobrych rzeczy :)

Awatar użytkownika
pawianek
Posty: 61
Rejestracja: 03 sty 2013, 21:20

Re: dwu osiowy pojazd

Postautor: pawianek » 13 mar 2014, 18:17

Ja właśnie rozpracowuje ten wspaniały plik blen. i mam pytanko, czy moglibyście mi wytłumaczyć jak dokładnie działa funkcja PhysicsConstraints.createConstraint(), bo szukałem w API i znalazłem inną funkcje bge.constraints.createConstraint() i czy to jest to samo ? :?
Jeśli zechcemy możemy stworzyć wiele wspaniałych i dobrych rzeczy :)

Awatar użytkownika
janek
Posty: 237
Rejestracja: 19 lip 2012, 14:23
Lokalizacja: Gdańsk

Re: dwu osiowy pojazd

Postautor: janek » 14 mar 2014, 15:51

pawianek pisze:Ja właśnie rozpracowuje ten wspaniały plik blen. i mam pytanko, czy moglibyście mi wytłumaczyć jak dokładnie działa funkcja PhysicsConstraints.createConstraint(), bo szukałem w API i znalazłem inną funkcje bge.constraints.createConstraint() i czy to jest to samo ? :?


Tak, ogółem to jest to samo. Jedno tyczy się drugiego.
Tylko wywołane jest przez inne biblioteki*.

Kod: Zaznacz cały

import bge

Kod: Zaznacz cały

import PhysicsConstraints


edit:
Raczej powinieneś też zobaczyć to na wykresie tabeli "show framerate and profile". Jeżeli dobrze pamietam to w starej wersji obciążało odpowiednio zdefiniowany wykres "physics" albo "logic".

BTW.
Udało mi się rozpracować model. Dodałem pare bajerów między innymi skrzynie biegów. Pracuje teraz nad wajchą zmiany biegów, tzn:
Zrobię ręczną zmianę biegów za pomocą myszy i kursora. Może się wydawać ciężkie do zrobienia ale ja lubie wyzwania :D I już mam plan jak to zrobić :) Dam blenda jak skończe.


Wróć do „Fizyka i logika”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość