Siła grawitacji w grach FPS

11

W naszej grze ustawiamy przyspieszenie ziemskie na odpowiednią wartość 9,8 m / s ^ 2. Choć fizycznie poprawny, bardziej przypomina poruszanie się po Księżycu. Czuje się dobrze przy wartości 16 m / s ^ 2. Czy ktoś jeszcze tego doświadczył? Czy to tylko dlatego, że nie mamy rozmycia ruchu lub dźwięku, aby dać pozorne wrażenie prędkości? Czy można ustawić tylko 16 m / s ^ 2, jeśli wydaje się to właściwe?

Hannesh
źródło
Nawiasem mówiąc, dobre pytanie, bardzo często się to zdarza, wiele osób zakłada, że ​​muszą zmienić grawitację, gdy się z tym spotkają
Brandon
Coś, co wydaje się być przyjęte - czy twoje masy obiektów są prawidłowe?
DrDeth
5
masa nie powinna być brana pod uwagę, chyba że symulujesz planety. Marmur spada z takim samym przyspieszeniem jak kula do kręgli, ignorując opór wiatru
brandon
2
Czy Twoja prędkość skoku jest również realistyczna? Jeśli masz 9,8 m / s ^ 2 grawitacji, ale człowiek, który skacze 100 razy wyżej, grawitacja będzie bardzo błędna. Czy jesteś pewien, że stosujesz przyspieszenie we właściwej skali czasowej?
Gregory Avery-Weir

Odpowiedzi:

12

Możliwe, że Twoja waga jest wyłączona. Jeśli patrzysz na cegłę i wydaje się, że spada wolniej niż powinna, możesz po prostu skalować ją większą niż cegła. Miałem ten problem podczas pracy z silnikiem physX. Cała moja scena była około 3 razy za duża, więc zmniejszyłem ją i zadziałało.

Jeśli 16 wydaje się lepsze niż 9,8, ale chcesz użyć 9,8. Wystarczy pomnożyć rozmiar spadającego obiektu o 0,61. Który powinien przeskalować go do miejsca, w którym 9,8 daje pożądany efekt.

Edycja: aby to naprawić. Zrobiłem przedmiot, który powinien mieć 1 metr wysokości. Skaluję go, aż wydaje się, że spada z odpowiednią prędkością. Niezależnie od tego, jakie jednostki świata są porównywane z nową skalą, otrzymuję moją nową skalę jednostkową. Przykład. Jeśli obiekt został przeskalowany do 0,14, oznacza to 1 metr w świecie gry. Utwórz obiekt linijki o wysokości .14, a kiedy projektujesz poziom, będziesz mógł użyć tej linijki do prawidłowego skalowania wszystkiego. To sprawi, że wszystko będzie wyglądało, jakby spadało poprawnie przy 9,8 m / ss.

brandon
źródło
To nie brzmi dobrze. Jeśli używasz spójnych jednostek, obiekt o wysokości 1 metra powinien spaść na ziemię w 0,45 sekundy. Skalowanie całej sceny nie powinno mieć znaczenia. Być może źle komunikowałeś swoją skalę czasu silnikowi fizyki.
Kasper
5
Nie mówię o wysokości, na którą ją upuszczasz. Mówię o skalowaniu samego obiektu. Jeśli jesteś mężczyzną o długości 100 stóp i skaczesz na 20% swojego wzrostu. Zajmie ci to dłużej i poczujesz się jak na Księżycu. Z drugiej strony, jeśli jesteś człowiekiem o wysokości 6 stóp i skoczysz na 20% swojej wysokości, skoczysz znacznie niżej i znacznie szybciej uderzysz o ziemię. To zdecydowanie problem skali.
brandon
2

Powiedziałbym, że idź z tym, co czujesz i gra dobrze. Byłoby jednak lepiej, gdybyś używał poprawnej wartości - jeśli tylko tak, to Ty lub inni programiści nie macie chwili WTF, kiedy ponownie odwiedzicie kod 6 miesięcy później.

Nie zapominaj, że twoja implementacja fizyki będzie tylko przybliżeniem realnego świata i że czasami zbliżenie rzeczy do rzeczywistości jest zbyt blisko, co uniemożliwia grę. W twojej symulacji może być także coś innego, co jest „wyłączone”. Sprawdź to również dwukrotnie.

Ponad kilka lat temu byłem zaangażowany w symulator śmigłowca, a klient chciał, aby sterowanie było „realistyczne”. Nie powiodło się, ponieważ było niemożliwe do odtworzenia. Uproszczenie kontroli sprawiło, że gra jest grywalna.

ChrisF
źródło
1

Modelując wszystko w systemie metrycznym, zauważyłem również, że grawitacja jest o wiele za słaba w odniesieniu do skoku gracza (w platformówce). Podobnie jak „na Księżycu”, „galaretce”, „za dużo fizyki”, za mało „arkadowy”. Z drugiej strony gracze w grach regularnie mogą również skakać na dużą, nierealistyczną wysokość.

TLDR: wysoka grawitacja wydaje się bardzo szybka i zręcznościowa, realistyczna grawitacja czasami może nie dać pożądanego doświadczenia w grze.

Jonas Bötel
źródło