• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Новости:

Форум Quest3D восстановлен!

Главное меню

движение в направлении курсора

Автор Droni, 29 мая 2011, 17:55:34

« назад - далее »

Droni

Я переделал пример "NewtonCamera". там камера двигалась туда, куда ты посмотришь, а мне надо, чтобы объект(при нажатии на кнопку движения) двигался всегда в ту сторону, где находится мышка. При повороте мыши объект следит за ней. Подскажите, пожалуйста...

Sqwer

да, всё  верно, продолжай  в том же духе.

Droni

В общем, я всё реализовал, объект следит за мышкой, только никак не могу понять как сделать, чтобы он двигался в направлении мышки. Можете объяснить хотя бы в двух словах... плиииииииииз!!!

dfx

К вектору позиции добавляй дельта-вектор * скорость * TC и объект будет двигаться в сторону указателя.
Незнаю насколько это оптимально, но дельта вектор можно найти вычитанием из спроэцированной на плоскость позиции курсора, позицию модели, а потом нормализовав получившийся вектор.

На самом деле, если нужно добиться результата как в стратегиях, т.е. объект еще и припятствия должен объезжать, то лучше сразу изучить пример с MotionPlanning...

Droni

У меня возник еще вопрос с координатами курсора. Почему так получается, что его координаты в соседних четвертях разные???

dfx

Droni
Видимо магия.

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

Видимо ошибка в коде. Но так как код никто не видит, то врядли что скажет по существу. Только догадки..

Координаты курсора переводил из экранных в мировые(3д)?

Droni

Ну я брал "VectorOperator" и в нем выбирал "Mouse Intersect XY plane(matrix)" и таким образом получал координаты курсора.  Причем я прикреплял к мыши частицы и их видно только в верхней половине вьюпорта!

dfx

Droni
ЦитироватьНу я брал "VectorOperator" и в нем выбирал "Mouse Intersect XY plane(matrix)" и таким образом получал координаты курсора.  Причем я прикреплял к мыши частицы и их видно только в верхней половине вьюпорта!

Т.е. спроэцировал координаты курсора на плоскость. Все верно. И отрицательные координаты в таком случае нормально. А как эта плоскость повернута, относительно камеры?

Для того, что бы понять что происходит, тебе надо создать 2 объекта - плоскость и, например, сферу. К плоскости подключай матрицу, которую использовал для проекции курсора, а для позиции сферы - вектор, который получил в результате. Потомом покрути все это в изометрии. Как увидишь что происходит с объектами визуально - все вопросы отпадут.

Droni

Я все понял! Мне нужны координаты курсора не в плоскости XY, а в плоскости XZ. Можно это сделать при помощи VectorOperator???

dfx

ЦитироватьЯ все понял! Мне нужны координаты курсора не в плоскости XY, а в плоскости XZ. Можно это сделать при помощи VectorOperator???
Просто повернуть твою плоскость так, как тебе надо, т.е. сделать эту плоскость паралельной плоскости XZ ;)
Поставь motion, вместо канала матрицы и подергай вектор  поворота.

Alteste

Могу предложить поковырять тебе этот исходник

Ruslan


Droni

Ну да)))

Вобщем, теперь курсор бегает по плоскости XZ. Вот как всё у меня получилось:

Droni

А где бы можно было бы поподробней узнать о MotionPlanning? что он вообще из себя представляет? я к нему всё подключил, а он мне показывает вектор destination position.

Ruslan

могу посоветовать в редакторе нажать F1 и в поле поиска забить MotionPlanning