Jump Feel
Важча гравітація на спуску і м'яке зависання на апексі — асиметрична дуга, яку ховає кожен хороший стрибок.
Приклади
Записано з інтерактивного демо нижче на цій сторінці.
Огляд
Чесна фізика дає стрибку симетричну параболу, а симетричні параболи відчуваються жахливо: підйом ще нічого, але спуск тягнеться вічно, і персонаж приземляється, як повітряна кулька. Майже кожен платформер, який ви любите, шахраює: гравітація 1× вгору і 1,5–3× вниз. Гравець ніколи не помічає брехні — він помічає лише, що стрибок «зібраний».
Друге шахрайство — апекс: на кілька кадрів навколо вершини дуги гравітацію пом'якшують. У цьому зависанні живуть рішення в повітрі — довернути на платформу, прицілити приземлення — і завдяки йому стрибок читається як поза, а не як розмазаний рух. Mario робить це з 1985 року; Celeste налаштовує покадрово.
Третє — обрізання стрибка: відпустили кнопку раніше — вертикальну швидкість зрізають (зазвичай удвічі чи більше), тож тап дає підскок, а утримання — повний стрибок. Разом три правила перетворюють одну кнопку на виразний інструмент — і жодне не коштує більше кількох рядків в оновленні гравітації.
Інтерактивне демо
Де застосовується
Найкращі практики
Варто
- ✓Множте гравітацію на 1,5–3×, щойно вертикальна швидкість повернула вниз, — швидке падіння і читається як вага.
- ✓Пом'якшуйте гравітацію у вузькому вікні швидкостей навколо апекса; у зависанні відбуваються рішення в повітрі.
- ✓Зрізайте висхідну швидкість на відпусканні кнопки, щоб тап і утримання давали чесно різні стрибки.
Не варто
- ✕Не тюнінгуйте стрибок сирими числами гравітації та швидкості — виводьте їх з дизайнерських величин: бажаної висоти і часу до апекса.
- ✕Не застосовуйте множник падіння на підйомі; подвоєна гравітація вгору просто робить стрибок слабким.
- ✕Не додавайте зависання на апексі у гру з повітряними ривками без перетестування — безкоштовний час у повітрі змінює кожне повітряне таймінгове вікно.
Поширені помилки
- ⚠Симетрична дуга в релізі — і плейтестери кажуть, що персонаж «плаває», не вміючи пояснити чому.
- ⚠Обрізання стрибка обнуленням швидкості замість масштабування — читається як удар об невидиму стелю.
- ⚠Множник падіння застосовується щокадру, включно із землею, — і персонаж прилипає до схилів та сходів ривками.
Реалізація
Встав це у свого ШІ-асистента (Cursor, Copilot, Claude), щоб додати ефект у проєкт.
Додай у мій проєкт ефект "Jump Feel": Важча гравітація на спуску і м'яке зависання на апексі — асиметрична дуга, яку ховає кожен хороший стрибок.
Як це працює: Чесна фізика дає стрибку симетричну параболу, а симетричні параболи відчуваються жахливо: підйом ще нічого, але спуск тягнеться вічно, і персонаж приземляється, як повітряна кулька. Майже кожен платформер, який ви любите, шахраює: гравітація 1× вгору і 1,5–3× вниз. Гравець ніколи не помічає брехні — він помічає лише, що стрибок «зібраний».
Рекомендації:
- Множте гравітацію на 1,5–3×, щойно вертикальна швидкість повернула вниз, — швидке падіння і читається як вага.
- Пом'якшуйте гравітацію у вузькому вікні швидкостей навколо апекса; у зависанні відбуваються рішення в повітрі.
- Зрізайте висхідну швидкість на відпусканні кнопки, щоб тап і утримання давали чесно різні стрибки.
Чого уникати:
- Не тюнінгуйте стрибок сирими числами гравітації та швидкості — виводьте їх з дизайнерських величин: бажаної висоти і часу до апекса.
- Не застосовуйте множник падіння на підйомі; подвоєна гравітація вгору просто робить стрибок слабким.
- Не додавайте зависання на апексі у гру з повітряними ривками без перетестування — безкоштовний час у повітрі змінює кожне повітряне таймінгове вікно.
Реалізуй ефект у тому рушії/стеку, який уже використовується в проєкті, і дотримуйся наявного стилю коду. Підключи його там, де це доречно.Джерела
Пов'язані ефекти
Coyote Time
Дозвіл стрибнути ще кілька кадрів після того, як персонаж зійшов з платформи.
Input Buffering
Запам'ятовування трохи раннього натискання і виконання його, щойно дія стане можливою.
Easing (Slow In / Slow Out)
Розгін на вході в рух і гальмування на виході замість сталої швидкості.
Коментарі
…