Суть проблемы вот в чем... Задача сделать одну половину застежки-молнии. Создаю я сплайн, затем создаю один элемент змейки и пытаюсь клонировать элементы вдоль сплайна, и не получается... чем дальше от начального элемента, тем меньше между этими самыми элементами становиться расстояние... Кто нить знает как с этим бороться ? Картинки прилагаются... Заранее спасибо...
Path Constraint, одинаковое расстояние между объектами...
- Автор темы Ferodun
- Дата создания
Возможно из-за того, что у сплайна точки с разными Bezier длинами.
Просто порой люди делают совершенно ненужные вещи - там, где можно обойтись гораздо более простыми способами..
Делаю так: создаю объект который необходимо клонировать, настраиваю пивот. Потом применяю к нему Path Constraint (пробовал двумя способами, через главное меню, и через Motion меню командной панели)... Затем с шифтом клонирую объект на необходимое мне расстояние...
Вообщем я не стал долго разбираться почему так происходит.. Возможно дело в прогрессирующем округлении, из за чего инкременты расстояний между объектами на пути изменяются (хотя и не должны)..
Короче я написал скрипт который должен расставить все как есть.
То есть ты делаешь все как и раньше - создаешь сплайн -> берешь свой объект и привязываешь его к сплайну. Ставишь нужные галочки (Constant Velocity и т.п.) и клонируешь его нужное количество раз (можно с шифтом - можно без).
Далее выделяешь ТОЛЬКО! все клонированные объекты и запускаешь скрипт:
Как запустить скрипт: меню MaxScript->New Script: в окно вставляем текст скрипта и жмем Ctrl+E (или Tools->Evaluate All в окне макскрипта)
Короче я написал скрипт который должен расставить все как есть.
То есть ты делаешь все как и раньше - создаешь сплайн -> берешь свой объект и привязываешь его к сплайну. Ставишь нужные галочки (Constant Velocity и т.п.) и клонируешь его нужное количество раз (можно с шифтом - можно без).
Далее выделяешь ТОЛЬКО! все клонированные объекты и запускаешь скрипт:
count_ = 0.0
step_ = 100.0/(selection.count-1)
for i = 1 to selection.count do
(
for c = 1 to selection.position.controller.count where selection.position.controller[c].name == "Path Constraint" do
(
selection.position.controller[c].percent = count_
count_ += step_
exit
);
);
step_ = 100.0/(selection.count-1)
for i = 1 to selection.count do
(
for c = 1 to selection.position.controller.count where selection.position.controller[c].name == "Path Constraint" do
(
selection.position.controller[c].percent = count_
count_ += step_
exit
);
);
Как запустить скрипт: меню MaxScript->New Script: в окно вставляем текст скрипта и жмем Ctrl+E (или Tools->Evaluate All в окне макскрипта)
Попробуй так. Вместо Path Constraint используй Attachment Constraint:
1. Создай плэйн (Plane): Length Segs=1, Width Segs=количество элементов змейки. Регулируй Length и Width.
2. Выдели (первый) элемент змейки и в меню Animation>Constraints выбери пункт Attachment Constraint и выбери плэйн.
3. В свитке Attachment Parameters в группе Attach To включи Align To Surface.
4. В свитке Attachment Parameters в группе Position установи нужный номер фэйса (Face) и расположение A, B.
5. Повтори пункты 2-4 для остальных элементов змейки (можно написать скрипт который делает это автоматически).
6. Выдели плэйн и добавь модификатор FFD или Twist или EditPoly и анимируй его. Или создай кости (Bones) и добавь на плэйн модификатор Skin или Physique. Потом сделай анимацию костей. Элементы змейки будут крутится, когда будут крутится фэйсы плэина в любом направлении.
1. Создай плэйн (Plane): Length Segs=1, Width Segs=количество элементов змейки. Регулируй Length и Width.
2. Выдели (первый) элемент змейки и в меню Animation>Constraints выбери пункт Attachment Constraint и выбери плэйн.
3. В свитке Attachment Parameters в группе Attach To включи Align To Surface.
4. В свитке Attachment Parameters в группе Position установи нужный номер фэйса (Face) и расположение A, B.
5. Повтори пункты 2-4 для остальных элементов змейки (можно написать скрипт который делает это автоматически).
6. Выдели плэйн и добавь модификатор FFD или Twist или EditPoly и анимируй его. Или создай кости (Bones) и добавь на плэйн модификатор Skin или Physique. Потом сделай анимацию костей. Элементы змейки будут крутится, когда будут крутится фэйсы плэина в любом направлении.