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

Новости:

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

Главное меню

положение обьекта

Автор xytop, 30 июля 2009, 10:23:54

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

xytop

как сделать так что бы обьект B всегда смотрел в низ.
через Newton? или можно как то по-другому.

DimiS

#1
если тебе нужно применение физики то можно и через ньютон...
а если "как-то по другому" то сделай ему такую анимацию чтоб он всегда смотрел вниз  ;D

Используя Newton-физику можно применять joint-ы, они бывают разные. Из рисунка так и не понял, нужен ли тебе Newton Up Vector (задаёт вектор по которому объект всегда сохраняет своё положение), или Newton Hinge (создаёт соединение между двумя объектами -- ось вращения)

xytop

да нужна ось вращения. Newton Hinge. обьект А вращается во круг центра (там где стрелки)в лево и право. и вверх и в низ. а как он подконектится т.е. joint конектятся к pivot или к любому участку обьекта? вот это я совсем не в курсе

DimiS

[Quest3D folder]\Examples\NfQ Demos\08 - Hinge Joint.cgr
дерзай

xytop

с joint стало понятней. ещё вопрос.
вот на это примере \Quest3D 4.2.3\Examples\NfQ Demos\09 - Ball and Socket Joint
начинаю изменять координаты обьекта "First Body" напр по Х (OLD+A-B). через "юзер инпут" и обьект начинает колбасить очень быстро и в разные стороны... это глюк только у меня. как это исправить?

IDEV

Сначала не запускай физику и останови её через операторы pause или stop. измени каоординаты как надо тебе. потом открой свойства join затем Destroy и Create. Петли пересоздадутся по новым координатам. Затем можно физику запускать

xytop

а можно ли изменять длинну обьекта в реальном времени. т.е. координаты петель остаются на месте изменяется лишь длинна обьекта.
после публикации такого расколбаса не будет?

IDEV


DimiS

в отпуске я был))

Вобще у Newton Body Command есть команда Set Collision Geometry, можно попытаться заменить геометрию коллизии если надо. Но я ещё ни разу не пробовал её применять сам и не знаю как оно будет себя вести. Даже если физика будет отрабатывать вменяемо, то может оказаться что это очень тормозная операция и часто её использовать не получится.
Но в большинстве случаев тебе и не понадобится действительно менять геометрию физического объекта. Если то тело не будет ни чего больше касаться, кроме того с кем у него joint, то вполне достаточно изменять ему только визуальные размеры. Подключать Newton Body к 3D Object не напрямую а через матричный оператор изменения размера.

xytop

DimiS
- если тебе нужно применение физики то можно и через ньютон...
а если "как-то по другому" то сделай ему такую анимацию чтоб он всегда смотрел вниз - не анимацией - это точно
нужно что бы он перемещался невращаясь  ??? чё написал  ;D
т.е. как бы заблокировать одну ось

DimiS

ппц, ты так объясняеш что нифига не понятно. Мне кажется если тебе удастся чётко сформулировать задачу, то ответ к тебе сам прийдёт  ;D так бывает

xytop

DimiS оптимистично  :)
если смотреть на рис. пивоты у них в одной точке, при изменении их угла обьект В будет всегда перпендикулярно обьекту А, нужно чтобы он (обьект А) всегда смотрел в низ. как это возможно сделать без использования физики?

DimiS

на рисунке не обозначены их пивоты. Под пивотом ты наверно подразумеваеш точку вокруг которой объект должен вращятся? И ты хочеш сказать что эта точка у них совмещена, так? Изменении чьего угла? у них всегда должен быть одинаковый угол поворота? они должны вращаться в одной плоскости, двух трёх? "будет всегда перпендикулярно" это имеется ввиду доложен быть, или не должен но у тебя пока получается только так? Смотрел вниз? какой стороной смотрел?
Да и в результате чего должно происходить изменение угла поворота? вот определяющий вопрос для необходимости использования физики. И должно ли изменение поворота этих объектов как то влиять на другие объекты?

Такое количество вопросов которые нужно уточнять прежде чем получится вникнуть в твою проблему реально отбивает любое желание в неё вникать.

jeha

У меня вопрос касательно положения объекта, но без физики).
В общем вопрос такой: можно ли какам либо способом определить находится ли объект (в моем случае камера) внутри другого объекта, скажем внутри бокса (для начала). Т.е. нужно знать именно внутри или нет, а не рядом с центром объекта.

DimiS

ну вообще можешь покопаться в направлении использования CollisionBoxCheck и CollisionSphereCheck но я тебе точно не опишу как их нужно использовать, да и они проверяют не совсем нахождение объекта внутри бокса :)
А для камеры я бы сделал ручками функцию которая бы проверяла нахождение точки внутри бокса, там не сильно сложная математика. Для сферы ещё проще.