Пример использования кластеров: кубик Рубика.

Типичное применение кластеров обычно подразумевает работу с компонентами и деформацию кривых и поверхностей. Однако в некоторых случаях они могут использоваться для анимации наборов простых объектов, когда использование группировки или иерархической анимации не представляется возможным. В этом случае кластеры используются в качестве «временных групп» для анимации только на определенном интервале времени. Обычные группы не позволяют одному объекту входить в несколько разных групп, кластеры же допускают такое неоднократное вхождение. Рассмотрим характернейший пример (я благодарю Володю Забелина за его идею и реализацию).

Создайте в новой сцене модель кубика Рубика.

Если вы все сделаете правильно, у вас в сцене должно появиться двадцать семь маленьких кубиков (я предполагаю, что кубик Рубика классический, три на три, без дополнительных украшений - см. сцену rubikStart.ma).

Подумайте, как бы вы стали последовательно вращать стороны этого кубика. Для каждой грани из девяти кубиков явно требуется свой центр вращения. Однако группировка не поможет, так как некоторые кубики входят сразу в три грани и должны независимо вращаться в составе каждой их них. Воспользуемся кластерами.

Выделите верхнюю грань (9 кубиков) и объедините их в кластер (Deform -> Create Cluster).

Нажмите клавишу «s».

Это поставит ключи на все атрибуты только что созданного кластера. Перейдите в двадцатый кадр.

Поверните выбранный кластер на 90 градусов вокруг оси Y. Снова нажмите «s».

Теперь, находясь в двадцатом кадре (с повернутой верхней гранью), спрячьте, от греха подальше, имеющийся кластер (Display=>Objects Display=>Template).

Затем выделите 9 кубиков на боковой грани и создайте для них еще один кластер.

Тут же нажмите «s», чтобы поставить ключи на все атрибуты нового кластера.

Перейдите в сороковой кадр и поверните кластер на 90 градусов вокруг нужной оси.

Сразу нажмите «s», чтобы поставить ключи.

Если хватает терпения, то находясь в сороковом кадре, спрячьте второй кластер (Display=>Objects Display=>Template).

Затем выделите 9 кубиков на следующей боковой грани и создайте для них еще один кластер.

Тут же нажмите «s», чтобы поставить ключи на все атрибуты нового кластера.

Перейдите в шестидесятый кадр и поверните третий кластер на 90 градусов вокруг нужной оси. Опять нажмите «s», чтобы поставить ключи.

Продолжайте эту «сказку про белого бычка», пока не соберете кубик Рубика.

Сохраните сцену (rubikFinal.ma).

Важно понимать, что каждый кластер используется только для одного поворота грани. Если мы решим изменить поворот какой-нибудь грани, все последующие кластеры становятся абсолютно непригодными анимация «разъедется». Придется их «убить» и пересоздать анимацию с момента исправления.

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

Подумайте, как можно было бы выкрутиться в этом случае, не применяя кластеры.

Примечание. Пытливые умы конечно же сообразят, что можно поместить пивот всех кубиков в центр и ставить каждый раз ключи на повороты всех кубиков. Это решение работает, но подумайте о редактировании такой анимации. А что, если вдруг грани захочется не только покрутить, но и подвигать - в угоду безумному режиссерскому замыслу?


⇐ вернуться назад | | далее ⇒