Итак, самый главный трюк с положением деталек! Логика такая:
Допустим, я хочу вращать правую часть змейки. Я беру первую детальку (Part 1) и смотрю на положение ее правого шарнира (R Slider 1). Вторую деталь я должна сместить на то же самое расстояние, что между осью Part 1 и R Slider 1. То есть беру позицию R Slider, отнимаю от нее позицию Part 1, а затем прибавляю к позиции R Slider 1. Поворот просто беру у того же R Slider 1.
Вся загвоздка была в том, чтобы сделать это без помощи Python. Помогла нода Hierarchy. А точнее две ноды Hierarchy. Первая как обычно проходит по всем элементам по порядку. А вот вторая пропускает первую детальку и сразу приступает ко второй (Start Path = N). Чтобы все сработало, нужно остановиться на предпоследней детальке. То есть, пока индекс не равен количеству объектов -1, тогда параметр On включен.
Чтобы вращать левую часть змейки, нужно сделать все то же самое, но в обратном порядке. Встаем на последний элемент (Start Path = L) и движемся наверх (Iteration Path = P). Только здесь уже берем не правый шарнир, а левый.
Чтобы быстро переключаться между этими сторонами, я создала отдельный параметр через User Data. Там все просто: если выбрано Right, то при помощи ноды Condition в ноды Hierarchy прописываются пути D и N/ N и N; а если выбрано Left — DL и P/ P и P.
Post #333
1.25K