двигаем и он крутится и перемещается по вертикали как надо - как сделать?
логика получается примерно такая:
c 0 по 60град пивот на узел 0 крутим и перемещаемся
с 60 до 120 пивот на узел 4 только крутим
120-180 пивот на узел 7 крутим и перемещаемся
если делать его из трех арок по 4 узла (NGon трехсторонний, Arc по Center-End-End и расплодить по 120град, собрать, собрать в 1 обьект)
анимирую по Y врашение, ставлю на X позицию Expression controller c следующим кодом:
if (angle<=pi/3 and angle>=0) then (
$.pivot=getKnotPoint 1 1
2*radius*angle
)
if pi/3<angle<2*pi/3 then (
$.pivot=getKnotPoint 1 4
2*radius_round*angle
)
if 2*pi/3<=angle<=pi then (
$.pivot=getKnotPoint 1 7
2*radius*angle
)
где
angle - скаляр зацеплен за $NGon01.rotation.controller.'Y Rotation'
radius - скаляр радиус арки (цифра)
radius_round - скаляр радиус треугольника (цифра)
при попытке Debug или Evaluate выдается Error Parsing Expression 'if (angle<=pi/3 and', что не так?
в зависимости от угла пытаюсь сдвинуть куда надо.. в максскрипте совсем зеленый новичек
исправил, переименовав angle в my_angle и заменив все упоминания
также Error Parsing Expression и начало строки - "if (my_angle<=pi/3 and" ;(
Это я к тому что там синтаксис не верный смотри внимательней.
Для начала отладь выражение в листенере, потом уже пихай его а ехпрешн
отсекай все пока не найдешь ошибку, и выражения в условиях типа (pi/3) заключай в скобки если не уверен в порядке операций
Понятно, забудь про if(a,b,c) и про Float_Expression это атавизм когда в максе еще не было скрипта.
пользуйся Float_Script, и читай родной хелп, в нем нет функции if(a,b,c)
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
ASK'R
логика получается примерно такая:
c 0 по 60град пивот на узел 0 крутим и перемещаемся
с 60 до 120 пивот на узел 4 только крутим
120-180 пивот на узел 7 крутим и перемещаемся
если делать его из трех арок по 4 узла (NGon трехсторонний, Arc по Center-End-End и расплодить по 120град, собрать, собрать в 1 обьект)
как это оформить в скрипт контроллере?
(описание, что такое треугольник Рело: http://ru.wikipedia.org/wiki/Кривая_постоянной_ширины, есть решение для синема4д: http://www.etudes.ru/ru/3dlessons/3d003/index.php)
Savin Denis
ASK'R
if (angle<=pi/3 and angle>=0) then (
$.pivot=getKnotPoint 1 1
2*radius*angle
)
if pi/3<angle<2*pi/3 then (
$.pivot=getKnotPoint 1 4
2*radius_round*angle
)
if 2*pi/3<=angle<=pi then (
$.pivot=getKnotPoint 1 7
2*radius*angle
)
где
angle - скаляр зацеплен за $NGon01.rotation.controller.'Y Rotation'
radius - скаляр радиус арки (цифра)
radius_round - скаляр радиус треугольника (цифра)
при попытке Debug или Evaluate выдается Error Parsing Expression 'if (angle<=pi/3 and', что не так?
Savin Denis
Это что такое ? if pi/3<angle<2*pi/3 then (
ASK'R
исправил, переименовав angle в my_angle и заменив все упоминания
также Error Parsing Expression и начало строки - "if (my_angle<=pi/3 and" ;(
Savin Denis
Для начала отладь выражение в листенере, потом уже пихай его а ехпрешн
отсекай все пока не найдешь ошибку, и выражения в условиях типа (pi/3) заключай в скобки если не уверен в порядке операций
ASK'R
работает как задумано, но работать на желает, хотя в листере нормально отрабатывает
странно, что синтаксис в експрешшенах отличается от просто макскриптового - if(a,b,c) и if условие then что делать else что делать
Savin Denis
ASK'R
в 7м посте в неправильном порядке примеры синтаксиса 😉
Savin Denis
пользуйся Float_Script, и читай родной хелп, в нем нет функции if(a,b,c)
ASK'R
спасибо за наставление на путь верный