20 Мая 2024, 15:17:54
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Физика > движение в направлении курсора
движение в направлении курсора
(Прочитано 19993 раз)
  1 [2]
Печать
Droni | * | Новичок | Сообщений: 23 | «Ответ #15 14 Июня 2011, 17:31:06 »
Re: движение в направлении курсора |
15
К вектору позиции добавляй дельта-вектор * скорость * TC и объект будет двигаться в сторону указателя.
Незнаю насколько это оптимально, но дельта вектор можно найти вычитанием из спроэцированной на плоскость позиции курсора, позицию модели, а потом нормализовав получившийся вектор.
dfx, я правильно собрал??? И что с этим сделать, или куда подсоединить, чтобы модель двигалась в направлении курсора??? я куда только не тыкал эту конструкцию((((((

* Безымянный122.JPG (54.43 Кб, 514x580 - просмотрено 1345 раз.)
« Последнее редактирование: 14 Июня 2011, 17:34:42 от Droni »
dfx | ** | Пользователь | Сообщений: 95 | «Ответ #16 15 Июня 2011, 18:03:27 »
Re: движение в направлении курсора |
16
Цитировать
dfx, я правильно собрал??? И что с этим сделать, или куда подсоединить, чтобы модель двигалась в направлении курсора??? я куда только не тыкал эту конструкцию((((((

Сама последовательность вычислений правильная. Но невидно куда ты ее в итоге прикручиваешь.

Смотри вложение - там таже самая конструкция, что и у тебя, но объект движется в указанную точку.
пс. Коменты было лень проставлять, сори.
* example_0.cgr (39.61 Кб - загружено 726 раз.)
« Последнее редактирование: 15 Июня 2011, 18:13:14 от dfx »
Droni | * | Новичок | Сообщений: 23 | «Ответ #17 17 Июня 2011, 16:05:44 »
Re: движение в направлении курсора |
17
Я разобрался с примером: в нем, в итоге, Position vector - это конечное положение 3d объекта. А проблема в том, что к newtonBody не подсоединишь его также к MatrixMotion. Мой newtonBody передвигается с помощью Set Speed (vector). И я не могу понять, как в такой ситуации задать направление двмжения newtonBody.
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #18 17 Июня 2011, 18:26:43 »
Re: движение в направлении курсора |
18
Смотри команды, в канале Newton Body Command
dfx | ** | Пользователь | Сообщений: 95 | «Ответ #19 17 Июня 2011, 20:51:43 »
Re: движение в направлении курсора |
19
значит просто передавай дельту в сетспид. Должно работать. Я завтра посмотрю, что там с ньютоном.
Droni | * | Новичок | Сообщений: 23 | «Ответ #20 20 Июня 2011, 18:20:32 »
Re: движение в направлении курсора |
20
если передавать в  сет спид, то не работает. А если set/add force, то объект вначале двигается в нужном направлении, а потом, при изменении позиции мыши, ведет себя неодекватно(((
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #21 20 Июня 2011, 19:48:04 »
Re: движение в направлении курсора |
21
1)  Что бы объект "парил" в воздухе, и не терся об ленд, ему можно назначить силу,  действующую вверх, обратную гравитации.
2)  Объект прежде чем двигать опять же это применить силу в нужном направлении, можно повернуть на относительный угол. (все это есть в Newton Body Command)
Угол между векторами можно узнать с помощью Dot product

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

Вариантов, как такое реализовать много, и каждый будет уместен в том или ином случае, здесь же исходных данных мало, что бы выбрать оптимальное решение.
« Последнее редактирование: 20 Июня 2011, 19:58:12 от Ruslan »
dfx | ** | Пользователь | Сообщений: 95 | «Ответ #22 21 Июня 2011, 00:22:12 »
Re: движение в направлении курсора |
22
Цитировать
если передавать в  сет спид, то не работает. А если set/add force, то объект вначале двигается в нужном направлении, а потом, при изменении позиции мыши, ведет себя неодекватно(((

На данный момент у меня такой загруз, что поэксперементировать со сценой никак не могу выкроить время(

С физикой схема сложнее будет, чем просто добавление вектора -
1. Если нужна остановка объекта в указанной точке, то надо ставить условие, что бы объект стал снижать скорость заранее, что бы не проехать ее, либо применять противоположную силу, что бы его резко тормознуть, но это будет не естественно смотреться.
2. Когда меняешь позицию цели, объект будет заносить из-за инерции(если он, конечно, имеет массу), поэтому вектор движения, возможно, придется постоянно корректировать, либо делать так, что бы объект продолжал двигаться со старым направлением, но снизил скорость до 0, а только потом стал передвигаться в новую позицию.

Сможешь выложить тестовую сценку, где есть только то, что нужно для моделирования ситуации?
Droni | * | Новичок | Сообщений: 23 | «Ответ #23 21 Июня 2011, 17:04:24 »
Re: движение в направлении курсора |
23
Вобщем, я сделал почти то, что хотел. Только надо что - то сделать с инерцией- уж больно сильно заносит, ничего не могу поделать((( И у меня возник ещё вопросик :
 А реально сделать тоже самое, что и в стандартном примере "Pathfinding", только с ньютоновскими телами???
* MOVE to kursor (Newton).cgr (134.6 Кб - загружено 717 раз.)
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #24 22 Июня 2011, 00:05:35 »
Re: движение в направлении курсора |
24
не плохо получилось, что бы уменьшить инерцию, нужно как советовал dfx в процессе анализировать расстояние и в соответствии копенсировать прикладываемую силу.
dfx | ** | Пользователь | Сообщений: 95 | «Ответ #25 22 Июня 2011, 12:37:45 »
Re: движение в направлении курсора |
25
Посмотрел сценку. Мне инерция понравилась Улыбающийся Немного сложности в управление добавляет.
Но, честно говоря, я немного по иному представлял то, чего нужно добиться. Тут получается, что нужно анализировать не расстояние, а скорость и ее направление относительно позиции цели. Если объект движется в противоположную сторону от цели, то надо прикладывть бОльшую силу, направленную в сторону цели.

Незнаю, что я сделал, но инерция заметно поубавилась Смеющийся Смущает то, что скорость пришлось поднять в разы. Позже еще поэкперементирую.
* MoveToCursor(newton)2.cgr (138.73 Кб - загружено 733 раз.)
« Последнее редактирование: 23 Июня 2011, 13:17:42 от dfx »
Droni | * | Новичок | Сообщений: 23 | «Ответ #26 26 Июня 2011, 18:36:05 »
Re: движение в направлении курсора |
26
Всё, теперь работает Подмигивающий. Инерции почти вообще нет,А скорость  вроде как можно вообще любую ставить, даже на маленькой отлично работает))))
« Последнее редактирование: 26 Июня 2011, 19:00:29 от Droni »
 
  1 [2]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Физика > движение в направлении курсора
Перейти в: