Örtmek: не в этот раз...
Очень мало времени получилось уделить на игру, тем не менее, что было сделано на годоте: на удивление рабочая физика прыжков и передвижения объектов. Для нее пришлось немного похитрить. Основной цилиндр героя типа CharacterBody3D, снабжался двумя шариками снизу и сверху типа AnimatableBody3D. Первое отвечает за основное передвижение по поверхностям и проверяет на земле ли мы, а второе двигает двигаемые объекты, которые находятся на слое «двигаемые объекты». Не гуглил, как вообще такое делается в других играх, решил делать свои велосипеды. Возможно, практичнее было бы использовать ноды с логикой работы наоборот. Интересно почитать как вы подобное решаете.
Так стало можно выламывать двери и запрыгивать на ящики, перемещать ящики чтобы перепрыгивать заборы и всякое такое. Подобный элемент взаимодействия с окружением мне всегда нравился и мне его часто не хватало во многих других играх. Большую часть времени отстраивал движение для плавности с одной стороны и более-менее хорошей скорости перемещения с другой. Прикрутил звуковые эффекты к падению и шагам. В общем сделал не так много, но можно будет использовать наработки в дальнейшем. Найдены удачные соотношения многих параметров.
Самое забавное в игре было наверно то, что она планировалась платформером в духе Dark Souls. С узкими клаустрофобными коридорами, лестницами и запутанностью. Но пока левелдизайн это штука, которая вызывает у меня гораздо меньше энтузиазма, чем разбор какой-то механической вещи или написание инструмента внутри редактора.
Но и инструменты для уровней на проект доделать не успел, что и стало основной проблемой. Что ж, будем дальше потихоньку двигаться в 3д физику ради нелинейного платформера и уровни с генерацией пространств.
- 12 августа 2024, 06:06
- 06
Если вспомнить какие-нибудь обучающие видео, то обычно используют один объект. С одной стороны, вроде удобнее, но в твоём варианте можно гибко настроить для каждых типов взаимодействия. Главное, следить, чтобы между ними конфликтов не было.
В игре Комната у тебя уже было такое. В чём отличия? Больше контроля?
Пока есть проблема со слишком сильной передачей импульса предметам. На большой скорости можно передвигаться спидран стратками аля халфлайф. Но в целом как работает мне нравится: если мы сбоку от предмета мы будем его толкать или двигать, но если мы находимся сверху RigidBody под нами будет работать как твердый объект. Думаю добавить костыль с небольшой силой вниз в точке, где стоим, если задерживаемся на месте долго, чтобы платформы в неустойчивом положении приходили в движение.
В комнате нельзя было ходить вверх, соответственно прыгать и так далее. Хехехе. Там герой был просто RigidBody, что делало передвижение достаточно вязким, и проверки земли в нем нет. А к текущему решению пришел еще через одну демку движения, где делал RigidBody, к которому были привязаны статичные коллизии на чек земли.