1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

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

Тема в разделе "Общие вопросы", создана пользователем Sergey Shevelev 1550, 27 ноя 2005.

Модераторы: Артер
  1. Sergey Shevelev 1550

    Sergey Shevelev 1550 Мастер

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

     
  2. Saplus 8804

    Saplus 8804 Активный участник

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

    Saplus 8804 Активный участник

    С нами с:
    05.09.2005
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    5
    А.. ну естественно, в само поле expression вписать название variables, "xrot" для X и так далее... И кнопоську "Evaluate" жмакнуть...
    Ну вобщем в хелпе макса про Float Expression все написано с примерами.
     
  4. Sergey Shevelev 1550

    Sergey Shevelev 1550 Мастер

    С нами с:
    23.01.2002
    Сообщения:
    510
    Симпатии:
    0
    Баллы:
    633
    Спасибо! Буду пробовать
     
  5. Sergey Shevelev 1550

    Sergey Shevelev 1550 Мастер

    С нами с:
    23.01.2002
    Сообщения:
    510
    Симпатии:
    0
    Баллы:
    633
    Получается странно - я для объекта A привязял переменную xrot к каналу вращения по x объекта B, но после этого объект А изменил свое положение - провертелся на почти 90 градусов вокруг свое локальной оси x. При этом у А и у В поворотов никаких изначально нет. Привязка получается, но как надо избавиться от смещения?
     
  6. Sergey Shevelev 1550

    Sergey Shevelev 1550 Мастер

    С нами с:
    23.01.2002
    Сообщения:
    510
    Симпатии:
    0
    Баллы:
    633
    объекты А B и C сами также прлинкованы к бипеду. Если двигать кости, то даже с контроллером вращения не происходит. Видимо из-за движения кости локально объект не меняется и следящий за ним объект ничего не получает в качетсве инфы. А привязать контролер (float) к кости бипеда не получается.
     
  7. Sergey Shevelev 1550

    Sergey Shevelev 1550 Мастер

    С нами с:
    23.01.2002
    Сообщения:
    510
    Симпатии:
    0
    Баллы:
    633
    объекты А B и C сами также прилинкованы к бипеду. Если двигать кости, то даже с контроллером вращения не происходит. Видимо из-за движения кости локально объект не меняется и следящий за ним объект ничего не получает в качетсве инфы. А привязать контролер (float) к кости бипеда не получается.
     
  8. Saplus 8804

    Saplus 8804 Активный участник

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

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

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

    Насчет переворачивания исходного обьекта - это надо или попробовать сделать ведомому не besier rotation, а TCB или linear, чтобы он отталкивался не от исходного, а от текущего положения... Или сделать в экспрешене не просто одну variable "xrot", а ввести еще одну переменную (допустим "thisrot" - и там писать "thisrot+xrot"). Так теоретически не скажу, пробовать надо.. а сил нету =)))
    Завтра еще подумаю...
     
  9. Sergey Shevelev 1550

    Sergey Shevelev 1550 Мастер

    С нами с:
    23.01.2002
    Сообщения:
    510
    Симпатии:
    0
    Баллы:
    633
    Ну все равно спасибо за помощь :)
    Сейчас изменил геометрию, чтобы избежать такой задачи. Но вобоще мне кажется что надо на контроллер вешать макс-скрипт, с получением углов объекта в мировой системе координат. Осталось найти в себе желание по настоящему изучать макс-скрипт :)
     
Модераторы: Артер

Поделиться этой страницей