Воспользуемся вторым способом для создания статической геометрии, а затем создадим и анимируем звенья танковой гусеницы с помощью сценария. Сначала необходимо вычислить количество копий звена, которые нам понадобятся, а затем анимировать звено гусеницы по сплайну пути. Для этого выполните следующее.
1. В окне проекции Top (Сверху) увеличьте масштаб звена гусеницы так, чтобы оно заняло максимально возможную площадь (так будет проще выполнять измерения, и они будут точнее).
2. Измерьте поперечную ширину звена, исключая размер выступающих шипов (реальный размер, который будут иметь звенья, составленные в цепочку). Для этого воспользуйтесь командой главного меню Tools ► Measure Distance (Инструменты ► Измерить расстояние). После выполнения команды щелкните на начальной и конечной точках замеряемого участка и на строке состояния.
В результате в поле ввода макрокоманды появится необходимая цифра. В моем случае это 3,805 (рис. 8.65).
Рис. 8.65. Строка состояния с результатами замера
3. Узнайте длину сплайна, который является формой пути для гусеницы. Для этого достаточно выделить сам сплайн и воспользоваться утилитой Measure (Линейка), находящейся на вкладке Utilities (Утилиты) командной панели. В области Shapes (Формы) будет указана длина сплайна (рис. 8.66).
4. Разделите длину сплайна на ширину звена, и вы получите необходимое количество копий, а также кадров анимации. Я округлил значение, и в результате у меня получилось 90.
5. Измените количество кадров анимации до 90. Для этого нажмите кнопку Time Configuration (Настройка временных интервалов)
в правом нижнем углу окна 3ds Max. В открывшемся окне задайте параметру End Time (Время окончания) области Animation (Анимация) значение 90 (рис. 8.67).
Рис. 8.66. Настройки утилиты Measure (Линейка)
Рис. 8.67. Окно Time Configuration (Настройка временных интервалов) с измененным количеством кадров анимации
Для создания анимации сделайте следующее.
1. В одном из окон проекций выделите звено.
2. Выполните команду Animation ► Constraints ► Path Constraint (Анимация ► Ограничения ► Ограничение по пути) и укажите на сплайн trackpath. В результате он будет использован в качестве формы пути.
3. В свитке Path Parameters (Параметры пути) настроек контроллера на командной панели установите флажок Follow (Следовать), чтобы объект поворачивался вместе с поворотом кривой. Установите также флажок Allow Upside Down (Разрешить переворачиваться) (по умолчанию контроллер придерживается одной локальной оси, а у нас замкнутая кривая), выберите ось Y и установите флажок Flip (Обратить) (рис. 8.68).
4. Выделите звено и создайте его копию. Для этого воспользуйтесь командой главного меню Tools ► Snapshot (Инструменты ► Снимок). В открывшемся одноименном окне установите переключатель в положение Range (Диапазон) и задайте следующие значения параметрам: From (От) – 0, To (До) – 89 и Copies (Копии) – 90. В качестве метода клонирования выберите Instance (Образец) (рис. 8.69).
Рис. 8.68. Свиток Path Parameters (Параметры пути) настроек контроллера
Рис. 8.69. Настройки создаваемых копий в окне Snapshot (Снимок)
ПРИМЕЧАНИЕ
Значение параметра To (До) равно 89, потому что, выполнив полный круг по замкнутой форме, объект вернется в начальное положение.
Результат клонирования одного звена представлен на рис. 8.70. Таким же образом строятся и другие статические последовательности объектов, например элементы ограждения, столбы, кнопки и даже ресницы.
Рис. 8.70. Копии звеньев, созданные с помощью инструмента Snapshot (Снимок)
Итак, приступим к анимации. Выполнить вручную анимацию такого количества объектов достаточно сложно, даже если речь идет о простом повторении нескольких операций. Все было бы просто, если бы нам пришлось настроить анимацию двух или даже десяти звеньев, но у нас их девяносто. Придется обратиться к макросценарию, который позволит автоматизировать этот процесс. Звучит пугающе, но попробуем все сложности свести к минимуму.
Сохраните и закройте выполненную сцену. Затем загрузите с прилагаемого DVD начальный файл данного упражнения trackstart.max из папки Examples\Глава 08\Track.
Программа 3ds Max обладает возможностью отслеживать и записывать почти все команды и действия, выполняемые в процессе работы. Делается это при помощи модуля MAXScript Listener (Интерпретатор MAXScript). Его окно можно открыть, выполнив команду главного меню MAXScript ► MAXScript Listener (MAXScript ► Интерпретатор MAXScript) или нажав клавишу F11. Мы используем его в качестве основного источника списка будущих макрокоманд. Но сначала рассмотрим кратко, что нам надо будет сделать для создания анимированной гусеницы.
В первую очередь нам понадобится анимировать имеющееся звено при помощи контроллера Path Constraint (Ограничение по пути). Затем, используя единственный анимированный параметр этого контроллера (процент пути, пройденный звеном гусеницы в пределах анимированного участка), привяжем к нему созданные копии этого объекта, выполнив их относительное смещение. Таким образом, мы получим один родительский объект, который позволит управлять скоростью движения всей гусеницы путем изменения времени прохождения этим объектом полного цикла. Иными словами, изменяя время, за которое одно звено гусеницы пройдет полный круг.
Начнем с настройки записи макрокоманд. Откройте окно MAXScript Listener (Интерпретатор MAXScript), для чего используйте либо одноименную команду главного меню MAXScript, либо клавишу F11. В появившемся окне выполните команду меню MacroRecoder ► Enable (Запись макроса ► Включить) для включения записи всех производимых команд (рис. 8.71).
Рис. 8.71. Настройки меню MacroRecoder (Запись макроса)
В результате окно интерпретатора разделится на две части: в верхней будут выводиться макрокоманды, соответствующие выполняемым действиям, а в нижней – отладочная информация. Одновременно нижнее окно является и полем для ввода макрокоманд. Посмотрим, как это все работает. Выделите в окне проекции Top (Сверху) сцены звено гусеницы и копируйте его через буфер обмена (или любым доступным способом) с помощью сочетаний клавиш копирования Ctrl+Ñ и вставки Ctrl+V. В результате в верхней части окна появится запись, состоящая из четырех строк. Для исполнения этого кода откройте окно редактора макрокоманд, выполнив команду главного меню MAXScript ► New Script (MAXScript ► Создать макрос). В окне отладчика выделите строки, созданные программой автоматически, и перетащите их в окно редактора. Закомментируйте вторую строку, поставив перед ней два минуса, так как она вызывает окно диалога клонирования объекта и нам не нужна (рис. 8.72). Выполните макрос, воспользовавшись командой меню данного окна Tools ► Evaluate All (Инструменты ► Оценить все) и предварительно удалив построенную ранее копию звена. Проверьте список объектов, вызвав его кнопкой Select by Name (Выделить по имени)