Quest3D - Русскоязычное сообщество

Quest3D => Физика => Тема начата: Shef_gt от 29 Ноября 2010, 15:08:49



Название: швыряние объектов (newton)
Отправлено: Shef_gt от 29 Ноября 2010, 15:08:49
Подскажите, как можно реализовать "швыряние объектов", например как в half life 2 - берешь левой кнопкой мыши, ходиши-бродишь с объектом, а потом праваой кнопкой кидаешь его.


Название: Re: швыряние объектов (newton)
Отправлено: Ruslan от 29 Ноября 2010, 15:22:55
Привет!
посмотри пример в 67 посте
http://guest3d.wohlnet.ru/forum/index.php?topic=759.60


Название: Re: швыряние объектов (newton)
Отправлено: Shef_gt от 30 Ноября 2010, 10:32:17
Можно ли как- нибудь в katapulta2.rar сделать столкновение сферы с ландшафтом??? Чтобы когда она привязана к камере сквозь него не проходила.


Название: Re: швыряние объектов (newton)
Отправлено: Ruslan от 30 Ноября 2010, 14:36:29
Да, конечно же можно!
в случае с katapulta2.rar там такая задача не стояла, пример делался по быстрому..


Название: Re: швыряние объектов (newton)
Отправлено: Shef_gt от 30 Ноября 2010, 17:36:56
Да, конечно же можно!
эт хорошо!!! А можешь в двух словах объяснить?


Название: Re: швыряние объектов (newton)
Отправлено: Ruslan от 01 Декабря 2010, 01:12:24
Поправил пример.

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


Название: Re: швыряние объектов (newton)
Отправлено: Shef_gt от 01 Декабря 2010, 11:13:53
Я всё понял как это реализовать. Вот только у меня не получается привязать объект с помощью джоинта; точнее, получается, но не могу заставить этот объект на джоинте всегда находиться перед камерой!


Название: Re: швыряние объектов (newton)
Отправлено: Ruslan от 01 Декабря 2010, 17:21:46
Пробовал сделать на джоинтах, с первого раза получилось, все работало.. после перезапуска сцены, перестало работать. Долго разбираться не стал, похоже на тот случай, который ты описал (скорее всего, перед созданием джоинта, оба Ньютоновские объекта, должны находится рядом, впритык, если этого не делать, то джоинт растягивается как пружина\резина).
Сделал по другому(типа магниты), но тоже не фонтан.. может как идея, тебе подойдет (если до ума довести).

правый клик - примагнитить
левый клик - отбросить


Название: Re: швыряние объектов (newton)
Отправлено: DimiS от 02 Декабря 2010, 15:24:06
эти джоинты штука хитрая, и порой мистическая ))))
из моего опыта борьбы с ними у меня создалось впечатление что они применяются в момент первого своего вызова, потом их можно вообще отконнектить и они будут продолжать работать, но объекты будут связанными в том положении в котором они были в момент этого самого первого вызова
я хочу сказать что нужно уделить внимание тому в какой последовательности и что у вас прилинковано
убедитесь что у вас не возникает ситуации когда после резета физки(это в том числе при запуске проекта) ваши джоинты вызываются до первого вызова ньютон тел, или тела вызываются первыми но с неправильной матрицей, или что успевает пройти какое-то количество фреймов между первым вызовом тел и первым вызовом джоинтов, или у джоинтов какие то другие неправильные параметры при первом вызове
исходники ваши не смотрел, сори нету времени сейчас