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

как сделать так, что бы цилиндр вращался по одной оси в зависимости от движения

Тема в разделе "MAXScript", создана пользователем Firestarter7382, 18 янв 2008.

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

    Firestarter7382 Пользователь сайта

    С нами с:
    04.07.2007
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    2
    помогите пожалуйста сделать так, что бы цилиндр вращался по одной оси в зависимости от движения другого обекта, типа корпус и колёса . Пробовал через парамер виринг ничего хорошего не получается
     
  2. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Нужно конвертнуть в радианы.
    Вот например так должен выглядеть эспрешен для колеса с учетом его радиуса:
    Код:
    (DegToRad  (360. * ( $Box01.pos.x/(2.0 * Pi * $Cylinder01.Radius))) )  
    
     
  3. Firestarter7382

    Firestarter7382 Пользователь сайта

    С нами с:
    04.07.2007
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    2
    нтересно... ,плохо что я совсем ламак ,недавно начал изучать MAX и в скриптах совсем не шарю . Можно по подробнее ,куда и как его встявлять
     
  4. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    У тебя в сцене должен быть цилиндр прилинкованый к коробке на манер колеса
    Соединяеш с помощью Виринг параметр контроллер вращения оси цилинтра Y_Rotation c премещением коробки по одной из осей
    Вставляеш это выражение в Виринг параметр в место выражения в окошке Y_Rotation
    После этого если перемещять коробку, то вращение колеса должно точно соотвествовать премещению тележки.
     
  5. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    По просбе развить тему с перемещением колеса:
    Пример формуировки задачи:
    Получить зависимость вращения цилиндра определенного радиуса от премещения по траектории, согласно пройденному расстоянию вдоль нее.
    Траектория задается анимацией корпуса к которому прилинкованно колесо
    Код:
    global cyl_y
    global prevTime
    if cyl_y == undefined or prevTime == undefined do (cyl_y = 0; prevTime = currentTime)
    d1 =  at time (prevTime) $Cylinder01.pos
    d2 =  at time (currentTime) $Cylinder01.pos
    d = distance d2 d1
    c2 =  (DegToRad (360. * ( (d) /(2.0 * Pi * $Cylinder01.Radius))) )
    cyl_y += c2
    prevTime = currentTime
    cyl_y
    
    Недостатки:

    -Не учитывается обратное движение
     
  6. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Еще вариант, примечательный тем что можно таскать машинку во вьюпорте:
    Код:
    global cyl_y
    global prevPos
    if cyl_y == undefined or prevPos == undefined do (cyl_y = 0; prevPos =  $Cylinder01.pos)
    d = distance $Cylinder01.pos prevPos
    prevPos  = $Cylinder01.pos
    cyl_y += (DegToRad (360. * ( (d) /(2.0 * Pi * $Cylinder01.Radius))) )
    
     
  7. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Тем кого интерисует анимация транспортных средств с учетом физических настроек советую глянуть:

    Craft Director Tools

     
  8. Firestarter7382

    Firestarter7382 Пользователь сайта

    С нами с:
    04.07.2007
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    2
    пасибо Денис ты просто гений !!! Надо бы купить литературку специализированную ,что бы разобраться по подробнее
     
  9. Willi_od

    Willi_od Пользователь сайта

    С нами с:
    09.09.2009
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    2
    http://www.render.ru/books/show_book.php?book_id=248
     
Модераторы: Savin Denis

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