Unreal Engine 4
http://uengine.ru/forum/

Трамплины\Горки - как?
http://uengine.ru/forum/viewtopic.php?f=3&t=14477
Страница 1 из 1

Автор:  jeka3d [ 06 авг 2018, 21:01 ]
Заголовок сообщения:  Трамплины\Горки - как?

Привет друзья)
Вопрос - как заставить стандартный плеер чарактер вылетать с трамплинов и срываться с уклонов (для склонов - вариант с понижением угла пола на по которому можно ходить не подходит)
для трамплина - при приближении к углу на который уже нельзя зайти - включить режим полета и чуть позже переключить на падение тоже не подходит)

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

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

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


в общем как я понимаю мне нужно как-то определит где находится точка отрыва и при её пересечении придавать импульс с ускорением из предыдущего кадра ( не знаю понятно ли обьяснил - вот ссылка на картинку в ансферхабе, там я ничего к сожалению не понял(https://answers.unrealengine.com/storage/temp/34244-pn5zxlku.png

Автор:  Snake [ 06 авг 2018, 22:03 ]
Заголовок сообщения: 

по картинке напрашивается измерять вектор движения в теперешнем и предыдущем кадре...
если угол между прошлым и текущим направлением > определенного - тогда симулируем инерцию... как ее симулировать отдельный вопрос...самое простое "ланч".
но это так первое что в голову пришло это надо подумать...
сюда прям напрашивается физический контроллер...

Автор:  Prytaleks [ 06 авг 2018, 22:39 ]
Заголовок сообщения: 

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

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

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

Автор:  jeka3d [ 06 авг 2018, 23:02 ]
Заголовок сообщения:  Re:

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

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

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


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

Автор:  Prytaleks [ 06 авг 2018, 23:03 ]
Заголовок сообщения:  Re: Re:

jeka3d писал(а):
но нужно подшлифовать,

это как правило 90% работы))

Автор:  jeka3d [ 06 авг 2018, 23:09 ]
Заголовок сообщения:  Re:

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


через физику это запасной вариант) но очень не хочется

Автор:  jeka3d [ 10 авг 2018, 20:10 ]
Заголовок сообщения: 

Друзья) помогайте

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

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


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

попробую конечно лайнтресы поменять на сферические, может они полутче цеплять будут, но если вам не лень, накидайте еще пару вариантов)

Автор:  Prytaleks [ 10 авг 2018, 20:47 ]
Заголовок сообщения: 

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



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

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/