Render.ru

Контроллеры углов

Рейтинг
638
#1
У меня объект A прилинкрыван полностью к объекту B. Но я хочу, чтобы он вращался по 2 осям X и Y как объект С.
То есть если С поворачивается вокруг своей локальной оси X, то A настолько же поворачивается вокруг своей локальной оси X. И так же с локальной осью Y. А по локальной оси Z чтобы брался поворот от объекта B.

 

Saplus 8804

Активный участник
Рейтинг
5
#2
Объекту А на Rotation - Assign Controller >>> Float Expression на X, Y и Z.
Открываешь свойства и создаешь scalar variables, допустим "xrot" и "yrot" и "zrot" (от балды названия).
Assign to controller там же, и показываешь откуда каждой из них брать значение угла (по X и Y с объекта С, а по Z - c объекта В).
Усё...
 

Saplus 8804

Активный участник
Рейтинг
5
#3
А.. ну естественно, в само поле expression вписать название variables, "xrot" для X и так далее... И кнопоську "Evaluate" жмакнуть...
Ну вобщем в хелпе макса про Float Expression все написано с примерами.
 
Рейтинг
638
#5
Получается странно - я для объекта A привязял переменную xrot к каналу вращения по x объекта B, но после этого объект А изменил свое положение - провертелся на почти 90 градусов вокруг свое локальной оси x. При этом у А и у В поворотов никаких изначально нет. Привязка получается, но как надо избавиться от смещения?
 
Рейтинг
638
#6
объекты А B и C сами также прлинкованы к бипеду. Если двигать кости, то даже с контроллером вращения не происходит. Видимо из-за движения кости локально объект не меняется и следящий за ним объект ничего не получает в качетсве инфы. А привязать контролер (float) к кости бипеда не получается.
 
Рейтинг
638
#7
объекты А B и C сами также прилинкованы к бипеду. Если двигать кости, то даже с контроллером вращения не происходит. Видимо из-за движения кости локально объект не меняется и следящий за ним объект ничего не получает в качетсве инфы. А привязать контролер (float) к кости бипеда не получается.
 

Saplus 8804

Активный участник
Рейтинг
5
#8
Продолжение вопроса напомнило заказчиков из разряда:
- Нарисушь до завтра мячик за стольник?
- Да не жалко, конечно...
- Ок.. Тогда вобщем мячик футбольный.. на траве лежит.. Ноги в бутсах разбегаются, бьют его и он в сетку.. ну чтоб он заколыхалась.. Если успеем - еще там чтоб зрители в расфокусе вскочили и закричали =)))
Шутка.

Вобщем, честно, с бипедом последний раз работал еще на 3-ем Максе =)

Но если задуматься, то да - объекту нужно, естественно, реальное числовое (или векторное) значение. В случае с float besier rotation - числовое. В итоге в случае с дурацким бипедом... ммм... щас на нетрезвую голову приходит лишь одна тупая мысль - сделать какой-нибуть dummy и ЗА НЕГО крутить кость... и С НЕГО брать float... Или юзать CAT =)

Насчет переворачивания исходного обьекта - это надо или попробовать сделать ведомому не besier rotation, а TCB или linear, чтобы он отталкивался не от исходного, а от текущего положения... Или сделать в экспрешене не просто одну variable "xrot", а ввести еще одну переменную (допустим "thisrot" - и там писать "thisrot+xrot"). Так теоретически не скажу, пробовать надо.. а сил нету =)))
Завтра еще подумаю...
 
Рейтинг
638
#9
Ну все равно спасибо за помощь :)
Сейчас изменил геометрию, чтобы избежать такой задачи. Но вобоще мне кажется что надо на контроллер вешать макс-скрипт, с получением углов объекта в мировой системе координат. Осталось найти в себе желание по настоящему изучать макс-скрипт :)
 
Сверху