Наработался прототип в котором не так мало фичей и не так много багов. Он на самом деле был готов ещё в середине праздников, я забэкапил его и стал дорабатывать (и полезли регрессии) потому что есть моменты из категории "кто на ком стоял" из-за чего на низких скоростях невозможно проехать через угол.
Хуллы стандартные, рельс несолидный, набирается патч-треками. Цветные маркеры (красный и синий) показывают точки касания ногами, по смыслу они должны быть на фиксированном расстоянии в любой ситуации.
Прикольно, мне нравится. Вот только немного углы стремают. Может интерполяцию какую сделать?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
В оригинальной игре Фримен ездил по рельсам на вагончике. Но после пандемии БлакМезе урезали бюджет и поэтому сотрудники добираются на работу самостоятельно бегая по рельсам.
Дядя Миша писал: В оригинальной игре Фримен ездил по рельсам на вагончике. Но после пандемии БлакМезе урезали бюджет и поэтому сотрудники добираются на работу самостоятельно бегая по рельсам.
там же ток
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Прикольно, мне нравится. Вот только немного углы стремают. Может интерполяцию какую сделать?
Обе ноги должны трейсить рельсу, поэтому yaw и питч сразу задаются. Остается разве что рассчитывать сплайн на лету и тогда все будет плавно, но ящитаю это излишество.
Добавлено 12-01-2024 в 21:49:
Цитата:
Дядя Миша писал: В оригинальной игре Фримен ездил по рельсам на вагончике. Но после пандемии БлакМезе урезали бюджет и поэтому сотрудники добираются на работу самостоятельно бегая по рельсам.
Кстати по патч-трекам на с0а0 тоже ездит. Но не переходит на следующий уровень почему-то. Там поинтер на игрока чтоли исчезает при ченджлевеле?
Когда я рельсу делал то для захвата на высоких скоростях пытался по-умному, например увеличивал радиус цилиндра-триггера пропорционально скорости. И триггер вроде и отрабатывал, а вроде и не вовремя. Я заметил что при скоростях выше 300 юнитов там начиналась погрешность в том, где игрок остановится, и она доходила до 20-30 юнитов. Т.е. в коде все ок а по факту игрок остановился на рельсе не ногами а жопой.
Добавлено 10-06-2024 в 10:09:
При том что тест у него происходит именно по точке в ногах.
По-умному - это трейсить триггер трассой по форме объекта. Но тогда вся система меняется. И так можно поймать только момент пересечения.
А потом надо ещё как-то отслеживать нахождение внутри триггера и выход из него. Делать это с помощью одной лишь функции Touch очень неудобно - она вызывается каждый когда, в котором считается что объект внутри триггера. Тут по смыслу больше бы подошёл механизм двух эвентов StartTouch и EndTouch. Ну или Enter\Leave как в спиритовском trigger_inout.
Но это переделывать всю физику.
Триггеры в этом плане вообще вещь ненадёжная, я бы замерял расстояние от ног игрока до путей, и если оно маленькое уже понятно что игрок залез на рельсу. А так пока триггеры распердолятся игрок уже в другом месте будет. К тому же это уже можно делать и покадрово, а не по тактам физики что повысит точность. Ну а отписку сделать или клавишей прыжок или превышением по велосити.
Добавлено 10-06-2024 в 12:23:
Цитата:
Дядя Миша писал: Тут по смыслу больше бы подошёл механизм двух эвентов StartTouch и EndTouch. Ну или Enter\Leave как в спиритовском trigger_inout.
Но это переделывать всю физику.
В юнити кстати есть такая штука OnTriggerEnter и OnTriggerExit
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: В юнити кстати есть такая штука OnTriggerEnter и OnTriggerExit
Это тоже очень неудобно. Надо где-то хранить переменную, что объект в триггере. А где её хранить - решительно непонятно. Потому что возможна ситуация, когда объект сразу в нескольких триггерах и одновременно ситуация, когда в одном триггере - несколько объектов.
То есть, если делать по нормальному - это далеко не такое уж и простое дело. Вызывать Touch каждый кадр намного проще.
Дядя Миша писал: Потому что возможна ситуация, когда объект сразу в нескольких триггерах и одновременно ситуация, когда в одном триггере - несколько объектов.
А в чём проблема? Ну сделай проверку на конкретный коллайдер и всё (в юнити у каждого коллайдера есть свой объект и компонент). Есть похожая система с трассой кстати, с помощью неё можно управлять физикой очень тонко.
Цитата:
Дядя Миша писал: А где её хранить - решительно непонятно.
Нужно сначала определиться что делает сам триггер и кого он ожидает. Если у нас например несколько триггеров с один и тем же кодом нужно делать проверку тогда если игрок внутри хоть одного из них либо вообще отсуствует в каком либо. Я помню когда то сталкивался с подобным случаем, вроде работало без нареканий.
По идее лучше конечно хранить в самом триггере и фильтровать там же, а уже объектам отправлять эвенты.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Триггеры в этом плане вообще вещь ненадёжная, я бы замерял расстояние от ног игрока до путей, и если оно маленькое уже понятно что игрок залез на рельсу. А так пока триггеры распердолятся игрок уже в другом месте будет. К тому же это уже можно делать и покадрово, а не по тактам физики что повысит точность. Ну а отписку сделать или клавишей прыжок или превышением по велосити.
Добавлено 10-06-2024 в 12:23:
В юнити кстати есть такая штука OnTriggerEnter и OnTriggerExit