Полезное

Мы Вконтакте

Discord канал

#
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 138
Привет друзья)
Вопрос - как заставить стандартный плеер чарактер вылетать с трамплинов и срываться с уклонов (для склонов - вариант с понижением угла пола на по которому можно ходить не подходит)
для трамплина - при приближении к углу на который уже нельзя зайти - включить режим полета и чуть позже переключить на падение тоже не подходит)

Через физику делать тоже совсем не хочется=)

Костыль через который работает сейчас : макс угол пола 90г, на "тике" висит гет физикал лайнер велосити - от сюда я беру ускорение по Z,
в конце каждого трамплина стоит актор который при оверлепе добавляет нашему персонажу импульс по оси Z равный ранее полученному.

В принципе работает, но с таким подходом можно забыть про прыжки по ландшафту, и прочие нестандартные трамплины


в общем как я понимаю мне нужно как-то определит где находится точка отрыва и при её пересечении придавать импульс с ускорением из предыдущего кадра ( не знаю понятно ли обьяснил - вот ссылка на картинку в ансферхабе, там я ничего к сожалению не понял(https://answers.unrealengine.com/storage/temp/34244-pn5zxlku.png
Аватара пользователя
Пользователь
Сообщения: 2319
по картинке напрашивается измерять вектор движения в теперешнем и предыдущем кадре...
если угол между прошлым и текущим направлением > определенного - тогда симулируем инерцию... как ее симулировать отдельный вопрос...самое простое "ланч".
но это так первое что в голову пришло это надо подумать...
сюда прям напрашивается физический контроллер...
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 4069
проверяй нормаль пола, или лайнтрэйсом, или с помощью хита капсулы, если вектор нормали подходящий и значительно отличается от прошлой нормали, LaunchCharacter(или другим способом), силу лаунчера взять от таких данных, как скорость чарактера(Velocity), и угол предыдущей нормали.

Каждый тик(или реже с помощью таймера), сравнивай старую нормаль пола с новой.

Преимущества лайнтрэйса, в том что ты можешь его запускать, чуть чуть впереди персонажа.
Аватара пользователя
Пользователь
Сообщения: 138
Prytaleks писал(а):
проверяй нормаль пола, или лайнтрэйсом, или с помощью хита капсулы, если нормаль подходящая и значительно отличаеться от прошлой нормали, LaunchCharacter(или другим способом), силу лаунчера взять от таких данных, как скорость чарактера(Velocity), и угол предыдущей нормали.

Каждый тик(или реже с помощью таймера), сравнивай старую нормаль пола с новой.

Преимущества лайнтрэйса, в том что ты можешь его запускать, чуть чуть впереди персонажа.


как обычно это я сделал сразу после написания поста) работает, но нужно подшлифовать, а то при кривом трамплине ( полутруба) импульс выстреливает на каждой грани)
Аватара пользователя
Пользователь
Сообщения: 4069
jeka3d писал(а):
но нужно подшлифовать,

это как правило 90% работы))
Аватара пользователя
Пользователь
Сообщения: 138
Snake писал(а):
по картинке напрашивается измерять вектор движения в теперешнем и предыдущем кадре...
если угол между прошлым и текущим направлением > определенного - тогда симулируем инерцию... как ее симулировать отдельный вопрос...самое простое "ланч".
но это так первое что в голову пришло это надо подумать...
сюда прям напрашивается физический контроллер...


через физику это запасной вариант) но очень не хочется
Аватара пользователя
Пользователь
Сообщения: 138
Друзья) помогайте

1 - на тике трейс чуть спереди капсулы чтобы определить край трамплина (в предыдущем тике касание было, в этом нет = край трамплина (или угол уменьшился более чем на 10гр (это для горок без резкого обрыва)) -> импульс по предыдущей скорости)
не работает на высоких скоростях (при скорости более 5000 - это примерно 180кмч) край трамплина может просто попасть между тиками и все, нет трамплина(
2 - вариант с переключением полет падение - если дефолтный вариант движения полет - то все трамплины, даже самые маленьки ловит на ура, НО само поведение пресонажа не подходит совсем, слишком много инерции а мне нужно чтобы на земле он был как на рельсах)

3- с горя уже пытался прикрепить его к платформе с ховер компонентами, тут проблем еще больше) начиная с компенсации инерции и тем что на большой скорости трейсы всё также могут пропустить край трамплина +все это кайне не стабильно и может цеплятся за окружающий мир отправляя в итоге пресонажа на орбиту луны)


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

попробую конечно лайнтресы поменять на сферические, может они полутче цеплять будут, но если вам не лень, накидайте еще пару вариантов)
Аватара пользователя
Пользователь
Сообщения: 4069
используй цикл на больших скоростях(5-10 итераций, или 0-10 в зависимости от скорости), индекс цикла * минимальный шаг, трассируй в диапазоне, прерывай цикл, или добавь логику что бы лучи равномерно отходили от центра
http://picua.org/img/2018-08/11/yxnabn7 ... lp65m3.png вариантов огромная масса, тестируй.



или используй не лайнтрэйс, а бокстрэйс, или что то подобное, я думаю это хороший вариант, к тому же размер бокса, ты можешь сделать зависимым от скорости


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница