Гравітаційна сила в іграх від першої особи


11

У нашій грі ми встановлюємо прискорення за рахунок сили тяжіння на відповідне значення 9,8 м / с ^ 2. Хоча фізично правильно, він більше схожий на переміщення по Місяці. Він відчуває себе прямо під значенням 16 м / с ^ 2. Хтось ще переживав це? Це тільки тому, що у нас немає розмитості руху або звуку, щоб дати видиме відчуття швидкості? Чи добре це просто встановити його на 16 м / с ^ 2, якщо він відчуває себе правильно?


Добре питання, до речі, дуже поширене, щоб побачити це, багато людей припускають, що їм доведеться змінити гравітацію, коли стикаються з цим
брендон

Щось, начебто, припускалося - чи правильні ваші маси об’єктів?
DrDeth

5
масу не слід враховувати, якщо ви не імітуєте планети. Мармур падає з тим же прискоренням, що і куля для боулінгу, ігноруючи опір вітру
брендон

2
Чи реальна також ваша швидкість стрибка? Якщо у вас сила тяжіння 9,8 м / с ^ 2, але людина, яка стрибає на 100 разів вище, гравітація почуватиметься дуже неправильно. Також ви впевнені, що ви застосовуєте прискорення у відповідний часовий масштаб?
Григорій Ейвері-Вейр

Відповіді:


12

Можливо, ваша шкала вимкнена. Якщо ви дивитесь на цеглу і вона, здається, падає повільніше, ніж належить, можливо, ви просто масштабуєте її більше, ніж цегла. У мене була ця проблема, коли я працював двигуном PhysX. Уся моя сцена була приблизно в 3 рази занадто великою, тому я її зменшив і це спрацювало.

Якщо 16 здається краще 9,8, але ви хочете використовувати 9,8. Просто помножте розмір об'єкта, що падає, на 0,61. Що має масштабувати його до того, де 9,8 дає бажаний ефект.

Редагувати: щоб виправити це. Я зробив предмет, який повинен бути висотою 1 метр. Я масштабую її до тих пір, поки, здається, впаде з потрібною швидкістю. Що б не порівняли світові одиниці з новою шкалою, це дає мені нову шкалу одиниць. Приклад. Якщо об'єкт масштабували до 0,14, то це представляє 1 метр у ігровому світі. Зробіть об'єкт лінійки висотою .14, і коли ви проектуєте рівень, ви зможете використовувати його лінійкою, щоб правильно все масштабувати. Це призведе до того, що все виглядає так, що воно падає правильно зі швидкістю 9,8 м / с.


Це не звучить правильно. Якщо ви використовуєте послідовні одиниці, об’єкт висотою 1 метр повинен упасти на землю за 0,45 секунди. Масштабування всієї сцени не має значення. Можливо, ви неправильно передавали свій часовий графік своєму двигуну фізики.
Каспер

5
Я не говорю про висоту, на яку ви її опускаєте. Я говорю про масштабування самого об’єкта. Якщо ви 100 футовий чоловік, і ви стрибаєте на 20% свого зросту. Це займе у вас більше часу і відчуєш себе на місяці. Інша сторона - якщо ви 6-футовий чоловік і стрибаєте на 20% своєї висоти, ви стрибнете набагато нижче і швидше вдаритеся об землю. Це, безумовно, масштабна проблема.
Брендон

2

Я б сказав, що виходите з будь-яким почуттям і граєте правильно. Однак було б краще, якщо ви використовували правильне значення - якщо тільки так, у вас або інших розробників немає моменту WTF, коли ви переглядаєте код через 6 місяців вниз.

Не забувайте, що ваша фізична реалізація лише коли-небудь стане наближенням до реального світу, і що іноді наближення речей "занадто близько" до реальності робить гру неможливою. Також у вашому моделюванні може бути щось інше, що "вимкнено". Перевірити це також.

Більше декількох років тому я займався вертолітним тренажером, і клієнт хотів, щоб управління було "реалістичним". Це не вдалося, тому що це було неможливо. Полегшення управління зробило гру граючою.


1

Моделюючи все в метричній системі, я також зауважив, що гравітація відчуває себе занадто слабкою щодо стрибків гравця (у платформері). Начебто "на Місяці", "желе", "занадто багато фінік", недостатньо "аркада". З іншого боку, гравці в іграх також регулярно можуть стрибати на велику нереальну висоту.

TLDR: висока гравітація відчуває дуже швидкий темп і аркада, реалістична гравітація іноді може не дати бажаного ігрового досвіду.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.