HLFX.Ru Forum
Показать все 14 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- Рельса для катания (https://hlfx.ru/forum/showthread.php?threadid=6067)


Отправлено Crystallize 12-01-2024 в 07:58:

Рельса для катания

Наработался прототип в котором не так мало фичей и не так много багов. Он на самом деле был готов ещё в середине праздников, я забэкапил его и стал дорабатывать (и полезли регрессии) потому что есть моменты из категории "кто на ком стоял" из-за чего на низких скоростях невозможно проехать через угол.
Хуллы стандартные, рельс несолидный, набирается патч-треками. Цветные маркеры (красный и синий) показывают точки касания ногами, по смыслу они должны быть на фиксированном расстоянии в любой ситуации.


Отправлено FiEctro 12-01-2024 в 08:04:

Прикольно, мне нравится. Вот только немного углы стремают. Может интерполяцию какую сделать?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 12-01-2024 в 10:11:

В оригинальной игре Фримен ездил по рельсам на вагончике. Но после пандемии БлакМезе урезали бюджет и поэтому сотрудники добираются на работу самостоятельно бегая по рельсам.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 12-01-2024 в 12:09:

Цитата:
Дядя Миша писал:
В оригинальной игре Фримен ездил по рельсам на вагончике. Но после пандемии БлакМезе урезали бюджет и поэтому сотрудники добираются на работу самостоятельно бегая по рельсам.


там же ток

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 12-01-2024 в 13:05:

Цитата:
FiEctro писал:
там же ток

Заряжает бодростью и энергией на весь день!

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 12-01-2024 в 14:49:

Цитата:
FiEctro писал:
Прикольно, мне нравится. Вот только немного углы стремают. Может интерполяцию какую сделать?

Обе ноги должны трейсить рельсу, поэтому yaw и питч сразу задаются. Остается разве что рассчитывать сплайн на лету и тогда все будет плавно, но ящитаю это излишество.

Добавлено 12-01-2024 в 21:49:

Цитата:
Дядя Миша писал:
В оригинальной игре Фримен ездил по рельсам на вагончике. Но после пандемии БлакМезе урезали бюджет и поэтому сотрудники добираются на работу самостоятельно бегая по рельсам.

Кстати по патч-трекам на с0а0 тоже ездит. Но не переходит на следующий уровень почему-то. Там поинтер на игрока чтоли исчезает при ченджлевеле?


Отправлено Дядя Миша 12-01-2024 в 15:06:

Цитата:
Crystallize писал:
Там поинтер на игрока чтоли исчезает

На самого себя?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 10-06-2024 в 03:09:

Когда я рельсу делал то для захвата на высоких скоростях пытался по-умному, например увеличивал радиус цилиндра-триггера пропорционально скорости. И триггер вроде и отрабатывал, а вроде и не вовремя. Я заметил что при скоростях выше 300 юнитов там начиналась погрешность в том, где игрок остановится, и она доходила до 20-30 юнитов. Т.е. в коде все ок а по факту игрок остановился на рельсе не ногами а жопой.

Добавлено 10-06-2024 в 10:09:

При том что тест у него происходит именно по точке в ногах.


Отправлено Дядя Миша 10-06-2024 в 06:11:

По-умному - это трейсить триггер трассой по форме объекта. Но тогда вся система меняется. И так можно поймать только момент пересечения.
А потом надо ещё как-то отслеживать нахождение внутри триггера и выход из него. Делать это с помощью одной лишь функции Touch очень неудобно - она вызывается каждый когда, в котором считается что объект внутри триггера. Тут по смыслу больше бы подошёл механизм двух эвентов StartTouch и EndTouch. Ну или Enter\Leave как в спиритовском trigger_inout.
Но это переделывать всю физику.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 10-06-2024 в 09:23:

Триггеры в этом плане вообще вещь ненадёжная, я бы замерял расстояние от ног игрока до путей, и если оно маленькое уже понятно что игрок залез на рельсу. А так пока триггеры распердолятся игрок уже в другом месте будет. К тому же это уже можно делать и покадрово, а не по тактам физики что повысит точность. Ну а отписку сделать или клавишей прыжок или превышением по велосити.

Добавлено 10-06-2024 в 12:23:

Цитата:
Дядя Миша писал:
Тут по смыслу больше бы подошёл механизм двух эвентов StartTouch и EndTouch. Ну или Enter\Leave как в спиритовском trigger_inout.
Но это переделывать всю физику.


В юнити кстати есть такая штука OnTriggerEnter и OnTriggerExit

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 10-06-2024 в 10:10:

Цитата:
FiEctro писал:
В юнити кстати есть такая штука OnTriggerEnter и OnTriggerExit

Это тоже очень неудобно. Надо где-то хранить переменную, что объект в триггере. А где её хранить - решительно непонятно. Потому что возможна ситуация, когда объект сразу в нескольких триггерах и одновременно ситуация, когда в одном триггере - несколько объектов.
То есть, если делать по нормальному - это далеко не такое уж и простое дело. Вызывать Touch каждый кадр намного проще.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 10-06-2024 в 10:32:

Цитата:
Дядя Миша писал:
Потому что возможна ситуация, когда объект сразу в нескольких триггерах и одновременно ситуация, когда в одном триггере - несколько объектов.


А в чём проблема? Ну сделай проверку на конкретный коллайдер и всё (в юнити у каждого коллайдера есть свой объект и компонент). Есть похожая система с трассой кстати, с помощью неё можно управлять физикой очень тонко.

Цитата:
Дядя Миша писал:
А где её хранить - решительно непонятно.


Нужно сначала определиться что делает сам триггер и кого он ожидает. Если у нас например несколько триггеров с один и тем же кодом нужно делать проверку тогда если игрок внутри хоть одного из них либо вообще отсуствует в каком либо. Я помню когда то сталкивался с подобным случаем, вроде работало без нареканий.

По идее лучше конечно хранить в самом триггере и фильтровать там же, а уже объектам отправлять эвенты.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Crystallize 10-06-2024 в 12:39:

Цитата:
FiEctro писал:
Триггеры в этом плане вообще вещь ненадёжная, я бы замерял расстояние от ног игрока до путей, и если оно маленькое уже понятно что игрок залез на рельсу. А так пока триггеры распердолятся игрок уже в другом месте будет. К тому же это уже можно делать и покадрово, а не по тактам физики что повысит точность. Ну а отписку сделать или клавишей прыжок или превышением по велосити.

Добавлено 10-06-2024 в 12:23:



В юнити кстати есть такая штука OnTriggerEnter и OnTriggerExit

Я так и делаю, уравнениями задаю цилиндр.


Отправлено Дядя Миша 10-06-2024 в 12:55:

Цитата:
FiEctro писал:
Нужно сначала определиться что делает сам триггер и кого он ожидает

В этой ситуации никакие допущения невозможны.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 21:49.
Показать все 14 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024