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/ |