Render.ru

Expression for Maya Экспрэсион в Майя

Aleksandrs Poltarjonoks

Активный участник
Рейтинг
5
#1
кто может посоветовать как быть? Я думаю что многие здесь сами себе режиссёры и часто сталкиваются с проблемой решить задачу с Expression.
Как быть тем кто не силён в математике? Может есть просто ключевые примеры на все случаи жизни?
 

(SG)Liber

Знаток
Рейтинг
27
#2
Для частиц часто использую функцию particleShape1.radiusPP = rand (0.1, 1) к примеру, для различных радиусов частиц.

К примеру у тебя есть цилиндр (колесо) и кубик (площадка). Хочешь, чтобы кубик двигался по оси Х и с ним двигалось колесо, при этом вращалось.

pCylinder.translateX = pCube.translateX;
pCylinder.rotateY = pCube.translateX *30;

можешь умножать на большее число, в зависимости от скорости. Если вращается не в ту сторону, то на отрицательное и т.д.

А вообще нужно поставить себе задачу и её решать.

К примеру, я выбрал тему диплома: "генератор мимики персонажа по набранному тексту при помощи MEL. Создание приложения для C++";

а вообще С.Цыпцын "Понимая Мая" в главе по MEL рассказал очень хорошо основы языка и некоторые примеры.
 

Aleksandrs Poltarjonoks

Активный участник
Рейтинг
5
#3
Да у Цыцына описано всё неплохо. До МЕЛ не добрался ещё ... :)) в смысле читаю ...
Спасибо за примеры понятно всё.Предлагаю делать так если кто имеет проблему с какойто ситуацией где надо expression пусть её опишет и кому не лень помогут решить задачу.Потом можно просто составить популерные формулы на все случаи жизни ....
 

BaalVancheGG

Пользователь сайта
Рейтинг
2
#4
ну если даже взять колесо и кубик=) как построить зависимость поворота колеса не только от координаты оси объекта, но и от длины окружности колеса? например, едет машина, но тут колеса у нее становятся довольно маленькими, и нужно добавить дополнительных оборотов??
 

kukart

Знаток
Рейтинг
29
#5
взять формулу вычисления длины окружности, посмотреть как она зависит от радиуса (те половины скейла по оси х) и вставить в экспрешн -)
 

BaalVancheGG

Пользователь сайта
Рейтинг
2
#6
kukart Можно по подробнее? Я уже пробовал делать. И формулу писал и зависимость составил, но нужного результата не получил. Не смог связать . Как у меня получилось, нужно было найти перемещение обьекта а не просто транслейт. Я в этом мало что понимаю.
 

BaalVancheGG

Пользователь сайта
Рейтинг
2
#7
допустим есть платформа platform и колесо wheel например движене происходит по оси x

Длина окружности колеса равно 2*pi*R
Допустим движение произошло с x=0 до x=5 -на 5 едениц.
Следует повернуть колесо вроде как на (platform.translateX/(6,28*wheel1.radius))*360;
(например длина окружности 20. то 5/20*360=90)
тока ниче не получается((
 

Slavenin

Активный участник
Рейтинг
12
#9
не советую пользоваться каналами транслейта скейла и тд, так как очень часто они не несут реальной информации о местоположении объекта в сцене(объект помещен в группу, с объектом делался фрихз трансформ, ну и еще много чего мона сделать с объектом что собьет значения в каналах транслейта, ротейта и скейла) лучше руками вводить радиус колеса ну или окошечко сделать простенькое куда он будет вводиться, а координаты лучше брать у скрытого объекта который припоинтконстрейнчен к колесу и скрыт, смотрим его координаты в каждом кадре, вычисляем пройденное за кадр расстояние и уже в зависимости от этого поворачиваем колесо, для точности вычисления расстояния советую пользоваться функцией mag() которая вычисляет длину заданного вектора.
 
Сверху