Войти
ПрограммированиеФорумФизика

ODE joints

#0
12:56, 19 сен. 2006

Раскажите кто нибудь как правильно создаются Universal Joints в ODE совершенно не пойму куда совать соординаты ссоединения и нужны ли они вообще, а  куда оси.
вобщем ничего не получается.


#1
14:05, 19 сен. 2006

ns_neo_

если ты все по документации делал, то должно работать.
А так. трудно судить.
А параметры ты выставлял?

#2
0:27, 20 сен. 2006

ns_neo_
> совершенно не пойму куда совать соординаты ссоединения
в joint :)

> нужны ли они вообще
нужны. Точка и две перпендикулярные оси. RTFM
dJointSetUniversalAnchor
dJointSetUniversalAxis1
dJointSetUniversalAxis2

#3
23:33, 20 сен. 2006

вопрос в тему:я правильно понимаю,что те 3 координаты,что являються аргументами функции dJointSetUniversalAxis1 это координаты точки лежащей на этой оси.Первая точка - dJointSetUniversalAnchor ?

#4
21:50, 21 сен. 2006

jD
Нет.
Центр джоинта - точка в dJointSetUniversalAnchor.
В dJointSetUniversalAxis1 передается вектор (направление).  Если есть точка, через которую должна проходить ось -
то надо просто из нее вычесть точку центра - получится вектор направления.

#5
22:15, 21 сен. 2006

CoolDev
Спасибо.Насчет векторов то я в курсе,просто в документации ни слова о способе задания осей.Меня смутило то,что аргумент не dVector3 , а именно 3 числа.

#6
1:21, 24 сен. 2006

CoolDev
Спасибо, есть еще вопросик, я пытаюсь сделать регдол вот после ссоединения тел джоинтами, можно ли принудительно передвигать тела за анимацией?
не разорвет ли это мои джоинты, или нужно строить джоинты в момент срабатывания регдола?

#7
10:27, 24 сен. 2006

ns_neo_
1. Джоинты в ODE задаются в исходном состоянии (в позе гнома) в редакторе. В том же состоянии они должны быть созданы в игре.
2. Передвигать тела за анимацией можно :) Только физику лучше отключать. Можно и не отключать, но нафига она, ты же все равно каждый кадр положение объектов по анимационным костям задаешь? Только тормоза. Если джоинты Breakable то все зависит от анимаций. Но не напрягать же аниматора, да и при смешивании анимаций - точно порвет. Вобщем отключать.
Пока бегаешь - ты там вертикальной капсулой рулишь. Но коллизии анимированной модели можно включить (с другими обьектами, а не с уровнем), установив у боксов коллизий указатель на физ модель - NULL. Тогда при беге будешь пинать ящики. Естественно, двигать боксы коллизий за анимацией нужно.
3. Случилось страшное. Нас убили :) Надо убрать капсулу, выставить объекты и боксы по анимационным костям (джоинты уже созданы в позе гнома), установить скорости по скоростям анимационных костей, включить физику.
Кстати насчет разрываемых. В момент включения они могут быть уже в недопустимом состоянии. Возможно разрываемость стоит подключить через некоторое небольшое время (доли секунды), когда физика немного успокоится.
4. Радоваццо.

#8
13:08, 24 сен. 2006

CoolDev
Супер!, спасибо, и еще вопрос.

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

#9
14:04, 24 сен. 2006

ns_neo_
Непонял... анимированная модель... она же по костями скинится? И кости при анимации трансформируются? И у них есть некий worldPos (матрица и позиция) - уже с учетом анимации и позиции в мире? На них и вешать боксы.

#10
16:09, 24 сен. 2006

CoolDev
не выходит, я использовал Cal3D, немогу найти в нем поворот самого персонажа, у меня получается что я считываю положение костей с объекта, который физически стоит по одной оси, а только отображается повернутым с помошью граф. движка, там я нашел можно получать и устанавливать только матрицу самих костей, а положение самого персонажа остается неизменным. Я его для графики уже крутил с помощью трансформа в который  он вставлен и естественно для физики он так и смотрит по оси У. Думал может вы сталкивались. да кости трансформируются все правильно и красиво, но сам физический персонаж смотрит всегда по одной оси. Но спасибо и на том очень помогли. Дальше буду думать.

#11
10:09, 25 сен. 2006

ns_neo_
Нет, с Cal3D не сталкивался. Если кости стоят правильно, но не поворачиваются с персонажем, то, вероятно, их стоит поворачивать самомтоятельно. У тебя же есть матрица поворота персонажа для графики (некое понятие "трансформ", если я правильно понял)? Что мешает домножить на нее кости?

ПрограммированиеФорумФизика

Тема в архиве.