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

Align hierarhy (skeleton)

Тема в разделе "MAXScript", создана пользователем kidult®, 25 фев 2013.

Модераторы: Savin Denis
  1. kidult®

    kidult® Знаток

    С нами с:
    16.12.2006
    Сообщения:
    66
    Симпатии:
    4
    Баллы:
    22
    условие: Есть анимированный, готовый скелет и ,созданная на его основе, иерархия из др объектов (к примеру боксы или дамики).
    задача: выравнивание костей(боксов или дамиков:)) нового скелета на основе уже имеющейся иерархии. Своего рода "Set Pose"(понравилась поза, кликнул на кнопке, новый скелет принял такое же положение что и готовый референс). Плавность перехода анимации между позами обязательна.
     
  2. kidult®

    kidult® Знаток

    С нами с:
    16.12.2006
    Сообщения:
    66
    Симпатии:
    4
    Баллы:
    22
    наиболее удачный вариант, к которому я пришёл, но только для костей не подчинённых . как только на кости весит контроллер то позиция едет...

    Код:
    in coordsys parent b[id].rotation = (in coordsys parent a[id].rotation)
    in coordsys parent b[id].position = (in coordsys parent a[id].position)
    где А - готовый масcив
    B - массив , который нужно выровнять
    Расположение элементов в массивах одинаковое.
     
  3. kidult®

    kidult® Знаток

    С нами с:
    16.12.2006
    Сообщения:
    66
    Симпатии:
    4
    Баллы:
    22
    Ещё вопрос!
    Как определить , в скольких процентах по кривой находится её узел (точка)?
     
  4. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Пример: Создаем новую сцену.
    Создаем один объект Circle и конвертируем его в Editable Spline.
    Выделяем одну вершину-узел-точка сплайна-кривой.
    Запускаем скрипт. В новом окне нажимаем кнопку Get Percent.
    Код:
    rollout test "Get Percent"
    (
    button btn_get_percent "Get Percent" width:140 pos:[5,5]
    on btn_get_percent pressed do
    (
    if(classof $==SplineShape or classof $==Line)then
    (
    if(numSplines $==1)then
    (
    ks_a=getKnotSelection $ 1
    if(ks_a.count==1)then
    (
    kp=getKnotPoint $ 1 ks_a[1]
    pp=nearestPathParam $ 1 kp
    perc=pathToLengthParam $ 1 pp
    btn_get_percent.text=((100.0*perc)as string)+" %" 
    )--if(ks_a.count==1)then
    )--if(numSplines $==1)then
    )--if(classof $==SplineShape or classof $==Line)then
    )--on btn_get_percent pressed do
    ); createdialog test 150 30
     
Модераторы: Savin Denis

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