Уровень – начальный.
Я преподаю не только в RealTime School, но еще и в Московском Институте Электронной Техники, факультет “Дизайн”. В прошедшем семестре дети делали всякие разные “промдизайнерские диковины”, в том числе и странные стулья, которые складываются-раскладываются. Один из вариантов показан в ролике, ключевой момент – гармошка между сиденьем и спинкой, прикрывающая механизм. Как реализовать анимацию такой “гармошки” рассказывается в этом небольшом уроке.
Готовое видео _scene.avi
Исходная сцена показана на рис. 1. Что здесь есть? Прежде всего, сиденье (стрелка 1) и спинка (2), заготовка для “гармошки”(3) и дуга(4). Имеется “даммик” (5), находящийся в начале координат. К нему привязано сиденье. Именно он и дуга будут играть ключевую роль в этой сцене.
[рис. 1]

Требования - достаточно важные - следующие.
- Настоятельно рекомендуется установить пайвот-поинты объектов так, как показано на рис. 2. Постарайтесь расположить объекты в начале координат по необходимым осям.
- Длина “гармошки” равна длине дуги. Узнать длину дуги можно при помощи утилиты Measure (рис. 3)
- Ни в коем случае не преобразовывайте дугу к типу редактируемых сплайнов! Параметры дуги понадобятся для создания анимации.
[рис. 2]
[рис. 3]
Свяжите угол поворота даммика по оси Y (рис. 4, вверху) со значением From дуги (рис. 4, внизу), используя систему Wire. В диалоге Wire установите главным параметр угла поворота (рис.5, стрелка 1) с использованием процедуры-функции, переводящей радианы в градусы (стрелка 2). Система Wire является надстройкой над MAXScript, поэтому многие функции этого языка работают и здесь.
Попробуйте повернуть “даммик” вокруг оси Y, у вас должна измениться дуга. Если этого не произошло, возможно, вы перепутали оси. Напоминаю, что анимация в 3ds Max ведется в системе координат родительского объекта (Parent), если объект ни к чему не привязан, то родителем для него является мир (World).
[рис. 4]
[рис. 5]
При помощи модификатора Bend согните “гармошку” на 180 градусов по нужной оси. Если пайвот находится там, где нужно, все должно получиться сразу (рис 6). В противном случае переместите подобъект Center модификатора Bend в нужное положение.
[рис. 6]
Следующее действие заключается в “прискинивании” гармошки к дуге. Делается это просто (рис. 7). Должно сработать!
[рис. 7]
Если не сработало, то измените размер оболочек (Envelopes) так, чтобы они включали в себя все вершины “гармошки” (рис. 8)
[рис. 8]
Примечание. Желтое позорище, которое то появляется, то исчезает от версии к версии, уже достало. Вполне возможно, что у вас его не будет, но если будет – не обращайте внимания, это багофича.
Итак, все работает (рис. 9), но не совсем – “гармошка” не сминается. Одно из решений – далее.
[рис. 9]
Отключите действие модификаторов Skin и Bend, так будет удобнее.
Вернитесь вниз по стеку и выделите вершины так, как показано на рис. 10 (стрелка 1). Не обращайте внимания на предупреждения, точнее, обратите, но проигнорируйте его, ответив “мы в курсе”.
К выделенным вершинам примените модификатор XForm (стрелка 2)
Прервите поток выделения (ну, а как иначе перевести Selection Flow?) “пустым” модификатором Poly Select (стрелка 3). Выше него модификаторы будут действовать целиком на объект. Если этого не сделать, то все будет плохо.
[рис. 10]
Теперь нужно связать все тот же угол поворота “даммика” с масштабированием гизмо модификатора XForm. Но предварительно нужно поменять тип контроллера на параметре Scale. Вот как это делается – рис. 11.
[рис. 11]
Глубоко запрятано? Если вы владеете языком MAXScript, то это можно сделать и так - $.modifiers[#XForm].Gizmo.controller.Scale.controller = ScaleXYZ (). Хорошая штука, этот MAXScript Recorder!
Теперь осталось совсем немного (рис. 12).
[рис. 12]
Все! Файл урока – final.max (3ds Max 2009). Жду фидбека! |