3D Engineering

...Лучшее из общего.

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Воспользуемся вторым способом

Верстак В.А.

 


Отрывок из книги
Анимация в 3ds Max 8. Секреты мастерства (+CD)
Верстак В. А.
Издательский дом "Питер", 2006г.

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


Для выполнения данного упражнения необходимо загрузить начальную сцену track_start.max с объектами, которые нам понадобятся в работе (рис. 6.29). Она находится на прилагаемом к книге компакт-диске в папке CH06\MAX\track .

Рис. 6.29. Окно проекции Perspective (Перспектива) после загрузки стартовой сцены

Сначала необходимо построить последовательность гусеничных звеньев. Это можно сделать двумя способами:

  • создать длинную цепочку из повторяющихся элементов, а затем деформировать ее по сплайну;
  • используя сплайн, анимировать одно звено, а затем создать копии этого звена со смещением: один кадр анимации — одно звено.

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

1. В окне проекции Top (Сверху) увеличьте масштаб звена гусеницы так, чтобы оно заняло максимально возможную площадь (так будет проще выполнять измерения и они будут точнее).

2. Измерьте поперечную ширину звена, исключая размер выступающих шипов (реальный размер, который будут иметь звенья, составленные в цепочку). Для этого воспользуйтесь командой главного меню Tools 4 Measure Distance (Инструменты 4 Измерить расстояние). После выполнения команды щелкните на начальной и конечной точках замеряемого участка и на строке состояния. В результате в поле ввода макрокоманды появится необходимая цифра. В моем случае это 3,805 (рис. 6.30).

Рис. 6.30. Строка состояния с результатами измерения

3. Узнайте длину сплайна, который является формой пути для гусеницы. Для этого достаточно выделить сам сплайн и воспользоваться утилитой Measure (Линейка), находящейся на вкладке Utilities (Утилиты) командной панели. В области Shapes (Формы) будет указана длина сплайна (рис. 6.31).

Рис. 6.31. Настройки утилиты Measure (Линейка): а  — верхняя часть, б  — нижняя

ПРИМЕЧАНИЕ
Если в свитке Utilities (Утилиты) нет кнопки Measure (Линейка), то щелкните на кнопке More (Дополнительно) и выберите в открывшемся окне соответствующую строку.

4. Разделите длину сплайна на ширину звена, и вы получите необходимое количество копий, а также кадров анимации. Я округлил значение, и в результате у меня получилось 90.

5. Измените количество кадров анимации до 90. Для этого нажмите кнопку Time Configuration (Настройка временных интервалов) в правом нижнем углу 3ds Max. В открывшемся одноименном окне задайте параметру End Time (Время окончания) области Animation (Анимация) значение 90 (рис. 6.32).

Рис. 6.32. Окно Time Configuration (Настройка временных интервалов) с измененным количеством кадров анимации

Для создания анимации сделайте следующее.

1. В одном из окон проекций выделите звено.

2. Выполните команду Animation > Constraints > Path Constraint (Анимация > Ограничения > Ограничение пути) и укажите на сплайн track_path . В результате он будет использован в качестве формы пути.

3. В свитке Path Parameters (Параметры пути) настроек контроллера на командной панели установите флажок Follow (Следовать), чтобы объект поворачивался вместе с поворотом кривой. Установите также флажок Allow Upside Down (Разрешить переворачиваться) (по умолчанию контроллер придерживается одной локальной оси, а у нас замкнутая кривая), выберите ось Y и установите флажок Flip (Обратить) (рис. 6.33).

Рис. 6.33. Свиток Path Parameters (Параметры пути) настроек контроллера

4. Выделите звено и создайте его копию. Для этого воспользуйтесь командой главного меню Tools 4 Snapshot (Инструменты 4 Снимок). В открывшемся одноименном окне установите переключатель в положение Range (Диапазон) и задайте следующие значения параметрам: From (От) — 0, To (До) — 89 и Copies (Копий) — 90. В качестве метода клонирования выберите Instance (Образец) (рис. 6.34).

ПРИМЕЧАНИЕ
Значение параметра To (До) равно 89, потому что, выполнив полный круг по замкнутой форме, объект вернется в начальное положение.

Результат клонирования одного звена представлен на рис. 6.35. Таким же образом строятся и другие статические последовательности объектов, например элементы ограждения, столбы, кнопки и даже ресницы.

Рис. 6.34. Настройки создаваемых копий в окне Snapshot (Снимок)

Рис. 6.35. Копии звеньев, созданные с помощью инструмента Snapshot (Снимок)

Итак, приступим к анимации. Выполнить вручную анимацию такого количества объектов достаточно сложно, даже если речь идет о простом повторении нескольких операций. Все было бы просто, если бы нам пришлось настроить анимацию 2 или даже 10 звеньев, но у нас их 90. Придется обратиться к макросценарию, который позволит автоматизировать этот процесс. Звучит пугающе, но попробуем все сложности свести к минимуму.

Сохраните и закройте выполненную сцену. Затем загрузите с прилагаемого компакт-диска начальный файл данного упражнения track_start.max из папки

Программа 3ds Max обладает возможностью отслеживать и записывать почти все команды и действия, выполняемые в процессе работы. Делается это при помощи модуля MAXScript Listener (Интерпретатор MAXScript). Его окно можно открыть, выполнив команду главного меню MAXScript 4 MAXScript Listener (MAXScript > Интер­претатор MAXScript) или нажав клавишу F11 . Мы используем его в качестве основного источника списка будущих макрокоманд. Но сначала рассмотрим кратко, что нам надо будет сделать для создания анимированной гусеницы.

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

Начнем с настройки записи макрокоманд. Откройте окно MAXScript Listener (Интерпретатор MAXScript), для чего используйте либо одноименную команду главного меню MAXScript, либо клавишу F11. В открывшемся окне выполните команду меню MacroRecorder > Enable (Запись макроса > Включить) для включения записи всех выполняемых команд (рис. 6.36).

Рис. 6.36. Настройки меню MacroRecoder (Запись макроса)

В результате окно интерпретатора разделится на две части: в верхней будут выводиться макрокоманды, соответствующие выполняемым действиям, а в нижней — отладочная информация. Одновременно нижнее окно является и полем для ввода макрокоманд. Посмотрим, как это все работает. Выделите в сцене звено гусеницы и копируйте его через буфер обмена (или любым доступным способом) с помощью сочетаний клавиш копирования Ctrl+С и вставки Ctrl+V . В результате в верхней части окна появится запись, состоящая из четырех строк. Для исполнения этого кода откройте окно редактора макрокоманд, выполнив команду главного меню MAXScript > New Script (MAXScript > Создать макрос). В окне отладчика выделите строки, созданные программой автоматически, и перетащите их в окно редактора. Закомментируйте вторую строку, поставив перед ней два минуса, так как она вызывает окно диалога клонирования объекта и нам не нужна (рис. 6.37). Выполните макрос, воспользовавшись командой меню данного окна File 4 Evaluate All (Файл > Оценить все) и предварительно удалив построенную ранее копию звена. Проверьте список объектов, вызвав его кнопкой Select by Name (Выделить по имени) , и убедитесь в том, что макрос создал копию объекта track .

Рис. 6.37. Окно редактора макрокоманд

Итак, вы написали свой первый макрос (если, конечно, не делали этого ранее) и проверили его исполнение. Дополним его необходимыми командами и напишем полный цикл создания и редактирования новых звеньев.

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

1. В одном из окон проекций выделите звено (объект track ).

2. Перейдите на вкладку Motion (Движение) командной панели и в свитке Assign Controller (Назначить контроллер) выберите строку Position: Position XYZ (Положение: положение по XYZ) (рис. 6.38).

Рис. 6.38. Свиток Assign Controller (Назначить контроллер) настроек объекта track

3. В этом же свитке щелкните на кнопке Assign Controller (Назначить контроллер) и в появившемся окне Assign Position Controller (Назначить контроллер положения) выберите строку Path Constraint (Ограничение по пути) (рис. 6.39).

Рис. 6.39. Окно Assign Position Controller (Назначить контроллер положения)

4. В свитке Path Parameters (Параметры пути) щелкните на кнопке Add Path (Добавить путь) и в одном из окон проекций укажите на сплайн пути track_path .

5. В этом же свитке в области Path Options (Параметры пути) установите флажки Follow (Следовать) и Allow Upside Down (Разрешить переворачиваться). В области Axis (Оси) выберите ось Y и установите флажок Flip (Обратить). Как вы видите, настройки такие же, как и для построения статических копий звена (см. рис. 6.33).

После выполнения описанных операций откройте окно MAXScript Listener (Интерпретатор MAXScript). Выделите и переместите в окно редактора макрокоманд пять последних строк, относящихся к выбору и настройке контроллера Path Constraint (Ограничение по пути) (рис. 6.40).

Рис. 6.40. Окно редактора макрокоманд после добавления кода

Если бы мы сейчас запустили на выполнение этот код, то у нас было бы создано еще одно звено, а копии звена с именем track01 был бы присвоен контроллер Path Constraint (Ограничение по пути). Но обратите внимание на то, что, когда мы выбирали сплайн пути, интерпретатор не внес соответствующую строку в список выполненных операций. В связи с этим в конец кода необходимо дописать в окно редактора следующую строку: $.pos.controller.path=$track_path .

У контроллера Path Constraint (Ограничение по пути) есть один анимируемый параметр — Percent (Проценты), который определяет проценты пройденного объектом пути. Этому параметру автоматически было задано значение нулевого и по­следнего кадра анимации. Однако нам не нужна анимация, устанавливаемая по умолчанию, мы собирается привязывать все копируемые объекты к одному звену — track . В связи с этим нам необходимо удалить сгенерированные автоматически ключи анимации. Это можно сделать, добавив в код еще одну строку — deleteKeys $.pos.controller.percent.keys .

Внимание

Знак $ указывает на то, что следом за ним должно идти имя объекта, но так как его нет, то подразумевается выделенный объект сцены.

Если сейчас запустить код на исполнение, то мы получим копию объекта track , к которому будет применен контроллер движения вдоль пути track_path , и все

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

1. Выделите в одном из окон проекций или выберите из списка скопированный объект track01 .

2. Перейдите к свитку Assign Controller (Назначить контроллер) и щелкните на плюсике, расположенном рядом со строкой Position: Path Constraint (Положение: ограничение по пути), затем щелкните в открывшемся списке на строке Percent: Linear Float (Проценты: линейное значение с «плавающей» точкой) (рис. 6.41).

Рис. 6.41. Свиток Assign Controller (Назначить контроллер) настроек объекта track01

3. Щелкните на кнопке Assign Controller (Назначить контроллер) и в появившемся окне Assign Position Controller (Назначить контроллер положения) выберите строку Float Script (Сценарий, использующий значения с «плавающей» точкой).

4. Щелкните на кнопке OK  — откроется окно для ввода сценария. Закройте это окно.

5. Обратитесь к окну MAXScript Listener (Интерпретатор MAXScript), выделите и переместите в окно редактора макрокоманд последнюю строку кода.

То, что мы сейчас сделали, позволило нам записать в окно редактора макрокоманд строку кода, меняющую контроллер, созданный по умолчанию, на свой, который можно редактировать с использованием сценария. На рис. 6.42 представлен вид редактора со всеми полученными до настоящего момента командами.

Теперь нужно добавить в окно редактора несколько строк, написанных самостоятельно, без помощи окна MAXScript Listener (Интерпретатор MAXScript).

Рис. 6.42. Окно редактора макрокоманд на данном этапе

1. Добавьте первой строкой for i = 1 to 90 do( . Таким образом мы создаем цикл, выполняющий выражение, которое находится внутри круглых скобок, начиная от 1 до 90. Число 90 — это количество копий звена танковой гусеницы (если помните, мы рассчитали их ранее).

2. Удалите закомментированную вторую строку.

3. В конце кода допишите $.pos.controller.percent.controller.script ="at time (currenttime) $track.pos.controller.percent*0.01+ 0.011*"+i as string .

В первой части этого выражения мы обращаемся к контроллеру управления по коду, созданному в предыдущей строке, и присваиваем ему строковое выражение, находящееся в правой части. Это означает следующее. В текущий момент времени ( at time (currenttime) ) контроллеру выделенного объекта, управляющему процентами ( $.pos.controller.percent.controller.script ), присваиваем значение процентов контроллера объекта track ( $track.pos. controller.percent ), деленное на 100 (так как на самом деле значение процентов считается не от 0 до 100, а от 0 до 1, то есть используем выражение *0.01 ), и задаем смещение на одно звено (общие проценты пути, деленные на количество звеньев: 1/90=0.011 ). Затем это выражение умножаем на порядковый номер (он же номер кадра), который в первой строке присваивается переменной i . Но так как код записывается в виде строковой переменной, числовое значение необходимо вынести за кавычки и обозначить как строковую переменную ( i as string ), оставив в кавычках знак умножения. Умножение на число i позволит каждому новому звену смещаться на соответствующую величину.

4. И, наконец, две последние строки кода будут указывать на то, что вся анимация до первого ключевого кадра и после последнего будет повторяться, то есть

станет непрерывной, вне зависимости от положения ключевых кадров на шкале анимации. Добавьте эти строки :

setBeforeORT $.pos.controller.percent.controller #cycle

setAfterORT $.pos.controller.percent.controller #cycle

5. Завершает код закрывающая круглая скобка (рис. 6.43).

Рис. 6.43. Окончательный код в окне редактора макрокоманд

ПРИМЕЧАНИЕ
На прилагаемом к книге компакт-диске в папке CH06\MAX\track находится файл trackScript.ms. Это описанный выше сценарий. Его можно загрузить в окно редактора макрокоманд и выполнить.

Код готов, но, прежде чем запускать его, необходимо выполнить некоторую подготовительную работу. Выделите объект track и переместите правый ключ анимации объекта в 400-й кадр анимации или дальше. Чем дальше будет располагаться этот ключ, тем медленнее будет двигаться гусеница танка, причем ее движение можно будет ускорить, переместив этот же ключ к началу временного диапазона.

ВНИМАНИЕ
Минимальное значение скорости нужно установить сразу, так как в дальнейшем скорость можно будет увеличить.

Для этого задайте общее количество кадров анимации равным не менее 400. С этой целью откройте окно Time Configuration (Настройка временных интервалов) и в поле End Time (Время окончания) введите значение 400. После этого в одном из окон проекций выделите объект track и передвиньте ключевой кадр из 100-го, созданного по умолчанию, в 400-й.

СОВЕТ
Чтобы быстро изменить временной диапазон шкалы анимации, можно нажать сочетание клавиш Ctrl+Alt, щелкнуть правой кнопкой мыши на шкале анимации и перемещать указатель влево (для уменьшения количества кадров) или вправо (для увеличения). Нажатие этих же клавиш в сочетании с левой кнопкой мыши позволяет изменять начало временного диапазона, установленное по умолчанию в нулевой кадр.

Теперь необходимо установить зацикливание для анимации главного звена. Для этого выделите объект track и откройте окно редактора кривых командой Graph Editors > Track View — Curve Editor (Графические редакторы > Просмотр треков — Редактирование кривых). В левой части появившегося окна выберите анимированный трек для выделенного объекта. После этого в правой части окна выделите существующие вершины и создайте линейное изменение функциональной кривой, щелкнув на кнопке Set Tangents to Linear (Установить линейное управление) (рис. 6.44).

Рис. 6.44. Окно редактора кривых с выделенным треком анимации процентов контроллера Path Constraint (Ограничение по пути)

В окне редактора кривых щелкните на кнопке Parameter Curve Out-of-Range Types (Типы экстраполяции параметрических кривых) . В открывшемся окне Param Curves Out-of-Range Types (Типы экстраполяции параметрических кривых) щелкните на кнопках со стрелками под значком Cycle (Циклический) (см. рис. 5.81).

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

ПРИМЕЧАНИЕ
Как вы помните, основной объект track имеет два ключа анимации, соответствующих положению 0 и 100 % пройденного пути. Если изменять на временной шкале положение ключа, имеющего значение 100 %, то будет изменяться скорость движения. Например, передвинув ключ анимации с 400 на 200, вы увеличите скорость движения гусеницы в два раза.

Сейчас анимируем движение колес, по которым движется гусеница. Очевидно, что колесо выполнит столько оборотов за один оборот гусеницы, сколько длин окружностей колеса укладывается в длине сплайна. Разберемся в этом на практике. Сначала узнаем диаметр колеса. Для этого выделите большое колесо и на вкладке Utilities (Утилиты) командной панели щелкните на кнопке Measure (Линейка). В области Dimensions (Размеры) посмотрите размер колеса по осям Y и Z . Таким образом, диаметр колеса в нашем случае — 16,693.

Как известно, длина окружности составляет Π*D , где число Π  — постоянная величина, а D  — диаметр колеса. Таким образом, длина окружности большого колеса равна 3,14*16,693 = 52,4066. Разделив длину сплайна пути track_path на полученную величину, узнаем, сколько оборотов сделает колесо за один оборот гусеницы: 344,721 / 52,4066 = 6,578. Теперь нужно привязать вращение колеса к скорости движения гусеницы. Это можно сделать, воспользовавшись анимацией процентов пройденного пути.

ПРИМЕЧАНИЕ
Создав зависимость вращения колеса от пройденного главным звеном (track) пути, мы оставляем за собой возможность изменения скорости не только движения гусеницы, но и вращения колес.

Для этого сделайте следующее.

1. Выделите колесо Wheel01 и перейдите к свитку Assign Controller (Назначить контроллер) вкладки Motion (Движение) командной панели.

2. В свитке Assign Controller (Назначить контроллер) раскройте список контроллеров для осей поворота и выберите строку Y Rotation: Bezier Float (Y-поворот: значение Безье с «плавающей» точкой) (рис. 6.45).

3. Щелкните на кнопке Assign Controller (Назначить контроллер) и выберите из появившегося списка контроллер Float Expression (Выражение с «плавающей» точкой). Щелкните на кнопке OK для подтверждения выбора.

Рис. 6.45. Свиток Assign Controller (Назначить контроллер) объекта Wheel01

4. В области Create Variables (Создать переменную) открывшегося окна Expression Controller (Контроллер выражения) создайте переменную pathPerc . Для этого в поле Name (Имя) введите имя переменной и щелкните на кнопке Create (Создать) (рис. 6.46).

Рис. 6.46. Переменная pathPerc, созданная в окне Expression Controller (Контроллер выражения)

5. В нижней части окна щелкните на кнопке Assign to Controller (Назначить контроллеру) и в появившемся окне Track View Pick (Выбрать трек) выберите объект track. Раскройте списки его параметров и активизируйте строку Percent: Linear Float (Проценты: линейное значение с «плавающей» точкой) (рис.6.47).

Рис. 6.47. Окно Track View Pick (Выбрать трек)

6. В области Expression (Выражение) окна Expression Controller (Контроллер выражения) введите следующее выражение: degToRad(6.578*360*pathPerc) и щелкните на кнопке Evaluate (Оценить). Разберем это выражение. Функция degToRad() , как вы уже знаете, переводит градусы, которыми удобно оперировать пользователю, в радианы, с которыми работает 3ds Max. Выражение в скобках определяет угол поворота колеса в градусах: количество оборотов колеса на один оборот гусеницы, рассчитанный нами ранее (6,578), умноженное на 360° (один полный оборот в градусах) и умноженное на процент пройденного пути, который мы получаем от объекта track, используя созданную нами переменную pathPerc .

7. Проверьте анимацию, нажав кнопку Play Animation (Воспроизвести анимацию) . Колесо должно вращаться вместе с вращением гусеницы.

Теперь нужно связать анимированное колесо с остальными колесами. Это просто сделать, если воспользоваться окном Parameter Wire Dialog (Окно параметров связей) следующим образом.

1. Выполните команду меню Animation > Wire Parameters > Parameter Wire Dialog (Анимация > Параметры связей > Окно параметров связей).

2. В левой части открывшегося окна Parameter Wiring (Связываемые параметры) выберите из списка анимированное колесо (Wheel01 ). Разверните список параметров выбранного объекта, щелкнув на плюсе слева от имени, и выберите из списка строку Y Rotation: Float Expression (Y-поворот: выражение с «плавающей» точкой).

3. В правой части окна Parameter Wiring (Связываемые параметры) выберите из списка следующее большое колесо — Wheel02 . Разверните список его параметров и выберите строку Y Rotation: Bezier Float (Y-поворот: значение Безье с плавающей точкой).

4. Щелкните на кнопке со стрелкой, направленной вправо. В результате выбранный параметр объекта слева будет управлять выбранным параметром объекта справа.

5. Щелкните на кнопке Connect (Соединить) для завершения создания связи (рис. 6.48).

Рис. 6.48. Окно Parameter Wiring (Связываемые параметры) для большого колеса

6. Повторите вышеописанные операции назначения связей для двух оставшихся больших колес. В моем случае это колеса Wheel03 и Wheel04 .

Для меньших колес, расположенных в верхней части гусеницы, необходимо изменить выражение в поле Expression for Y_Rotation (Функция для поворота по оси Y) на следующее: Y_Rotation+degToRad((7.379-6.578)*360) (рис. 6.49). Это выражение означает, что угол поворота по оси Y малого колеса будет равняться углу поворота большого колеса плюс угол, который получился из разницы количества оборотов большого и малого колес, умноженной на 360°. Количество оборотов малого колеса считается по той же формуле, что и для большого, то есть длина пути делится на длину окружности колеса.

Рис. 6.49. Окно Parameter Wiring (Связываемые параметры) для малого колеса

Рассмотрим, как повысить реалистичность сцены и внести изменения в анимацию гусеницы для учета неровности дороги. Это можно сделать при помощи управления положением вершин сплайна пути track_path , привязанным к колесам. Для этого выполните следующее.

1. Нажмите на панели инструментов кнопку Select by Name (Выделить по имени) и выберите из списка все объекты, в имени которых есть слово track, то есть все звенья танковой гусеницы.

2. Щелкните на выделении правой кнопкой мыши и выберите из контекстного меню команду Hide Selection (Спрятать выделенное).

3. В окне проекции Left (Слева) немного выше правого верхнего колеса постройте объект Rectangle (Прямоугольник) небольшого размера (рис. 6.50). Форма и размер этого объекта не имеют принципиального значения, так как он будет играть роль вспомогательного объекта, к которому будут привязываться вершины сплайна пути.

4. Выделите созданный прямоугольник, если он не остался выделенным после построения, и перейдите на вкладку Utilities (Утилиты) командной панели. В одноименном свитке щелкните на кнопке Reset XForm (Сбросить преобразования).

Рис. 6.50. Прямоугольник, построенный над колесом

ВНИМАНИЕ
Сбросить преобразования необходимо потому, что профиль колеса строился в окне проекции Front (Спереди), а прямоугольник — в окне проекции Left (Слева). Значит, эти два объекта имеют разные локальные системы координат, что вызовет изменение положения колеса при его связывании с прямоугольником, если не сбросить преобразования.

5. В окне проекции Left (Слева) выберите сплайн пути ( track_path ) и перейдите на вкладку Modify (Изменение) командной панели.

6. Перейдите на уровень редактирования вершин и выберите две вершины, расположенные рядом с правым верхним колесом (рис. 6.51).

7. Примените к выбранным вершинам модификатор Linked XForm (Связанное преобразование), выбрав его из списка модификаторов вкладки Modify (Изменение).

8. В свитке Parameters (Параметры) настроек модификатора Linked XForm (Связанное преобразование) щелкните на кнопке Pick Control Object (Указать кон­тролирующий объект) и в одном из окон проекций выберите построенный прямоугольник (рис. 6.52).

9. Проверьте сделанную привязку, для чего в окне проекции Left (Слева) выделите и произвольно переместите прямоугольник. Вместе с прямоугольником должны перемещаться вершины сплайна пути.

10. Отмените выполненные перемещения, чтобы вершины сплайна пути вернулись в исходное состояние.

Рис. 6.51. Вершины, выбранные для редактирования

Рис. 6.52. Свиток Parameters (Параметры) настроек модификатора Linked XForm (Связанное преобразование)

11. Привяжите к прямоугольнику правое верхнее колесо. Для этого нажмите кнопку Select and Link (Выделить и связать) на главной панели инструментов, затем щелкните на колесе и, когда указатель примет соответствующий вид, перетащите его на прямоугольник.

12. Снова проверьте правильность привязки, перемещая прямоугольник: теперь вместе с вершинами сплайна будет перемещаться колесо.

Далее необходимо выполнить такие же привязки для всех остальных колес. Отличие состоит лишь в том, что для выбора необходимых вершин применяется модификатор SplineSelect (Выбор сплайна) или Edit Spline (Редактирование сплайна). Рассмотрим пример привязки следующего колеса.

1. Копируйте прямоугольник или постройте новый и разместите его напротив второго колеса (рис. 6.53).

Рис. 6.53. Расположение второго управляющего прямоугольника

2. Если вы построили новый прямоугольник, то сбросьте преобразования, для чего перейдите на вкладку Utilities (Утилиты) командной панели и в одноименном свитке щелкните на кнопке Reset XForm (Сбросить преобразования).

3. Вернитесь к стеку модификаторов сплайна пути, для чего выделите сплайн track_path и перейдите на вкладку Modify (Изменение) командной панели.

4. Выберите из списка модификаторов строку SplineSelect (Выбор сплайна).

5. Перейдите на уровень редактирования вершин, развернув список подобъектов модификатора и выбрав строку Vertex (Вершина).

6. Выделите две вершины, расположенные у основания второго колеса.

7. Примените к выбранным вершинам модификатор Linked XForm (Связанное преобразование), выбрав его из списка модификаторов.

8. В свитке Parameters (Параметры) (рис. 6.54) настроек модификатора Linked XForm (Связанное преобразование) щелкните на кнопке Pick Control Object (Указать контролирующий объект) и в одном из окон проекций выберите второй прямоугольник.

Рис. 6.54. Стек модификаторов объекта track_path после привязки второй группы вершин

9. Привяжите ко второму прямоугольнику второе колесо. Для этого нажмите кнопку Select and Link (Выделить и связать) на главной панели инструментов, затем щелкните на колесе и, когда указатель примет соответствующий вид, перетащите его на прямоугольник.

10. Проверьте анимацию.

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

ПРИМЕЧАНИЕ
Вы можете использовать файл track_end.max, расположенный в папке CH06\MAX\track прилагаемого к книге компакт-диска, для ознакомления с настройками анимации. В папке CH06\Video находится анимационный ролик tank_track.avi, выполненный по этому упражнению.

 

Архив статей

 авг   Сентябрь 2019   окт

ВПВСЧПС
  1  2  3  4  5  6  7
  8  91011121314
15161718192021
22232425262728
2930 
Julianna Walker Willis Technology

Случайная новость

3dgo.ru: Здравствуйте, расскажите нам о себе, как началось Ваше общение с САПРами.

Небойша Новкович: Большой привет всем участникам и гостям Форума. Меня зовут Небойша Новкович. Я сам из города Белграда (Сербия) а в настоящее время живу и работаю в Харькове, в котором судьбой было предназначено создать семью. Я по профессии строительный инженер-конструктор. С CAD-ом встретился и сразу плотно начал заниматься 90-ых годов (1990 - 1992). В 1993 году стал тренером по AutoCAD в авторизованном тренинг центре Autodesk в Белграде.Зимой 1994 - 1995 с товарищами-тренерами начинал писать книгу по AutoCAD 13. Летом 1995 года уехал в Москву, в которой работал до 1998 года. С 2001 года нахожусь в Харькове, в который приехал как консультант по внедрению компьютерных технологий в проектировании. C 2006 года работаю главным специалистом по программному обеспечению (архитектурно-строительное направление) в фирме НПП "ТИС". Фирма является авторизованным реселером Autodesk и системным интегратором. С Revit первый раз познакомился в 2002 году (он был 5-ой версии) и сразу понял, что такую программу я ждал всю свою жизнь. С того времени мы с ней дружим и развиваемся вместе. В настоящее время являюсь членом команды бета-тестеров и имею честь быть между первыми, которые имеют доступ к новым разработкам Revit платформы. Горжусь тем, что одно мое замечание встроено в Revit Structure 4.0 и надеюсь, что так будет продолжаться в будущем.

3dgo.ru: Что для вас САПР и чему вы учите людей и организации?

Небойша Новкович: Для меня выражение САПР связано со старыми технологиями. Учитывая мое мнение, что будущее архитектурно-строительного (даже и общего) проектирования лежит в 3D проектировании, то я больше использую выражение BIM (Building Information Model) или ИМЗ (Информационная Модель Здания). Суть ИМЗ лежит в построении базы данных проектируемого объекта графическим путем. Данными из такой базы будут пользоваться проектировщики для создания рабочей документации, строители для построения объекта и в конце владельцы для его эксплуатации. Нам очень повезло, что существует программа, обеспечивающая такую работу. Ее зовут Revit. Маленькая история версий: Revit 1.0 появился в апреле 2000-ого года. На сегодняшний день последняя версия имеет нумерацию 2008, но в сути это 10-ка. В течении меньше чем 7 лет Revit стремительно развивался, имея за основу механизм параметрических изменений (Parametric Change Engine). Это дало возможность параметрического моделирования в архитектуре и строительстве. До появления Revit такие возможности были привилегией исключительно машиностроительной отрасли. С 9-ой версии Revit стал платформой, на которой могут работать все архитектурно-строительные проектировщики. Платформа состоится пока из трех продуктов: Revit Architecture 2008, Revit Structure 2008 и Revit MEP 2008. Нумерация такова чтобы понимать какие продукты платформы будут работать вместе, а это значит что, работая с линейкой продуктов 2008 вы сможете сделать все разделы архитектурно-строительного проекта, включая разделы архитектура, конструкции (метал, бетон, дерево), отопление и вентиляцию, водопровод и канализацию и электрику. Но самое интересное, что все разделы делать можно в одном единственном файле, проекте Revit, и то одновременно, если за этим есть необходимость, сохраняя все данные проекта и не меняя их формат. Это является огромным преимуществом платформы Revit, из-за которого на эту платформу уже сегодня переходят целые проектные институты в СНГ.

3dgo.ru: Ваши предпочтения программного обеспечения и что наиболее выгодно приобретать фирмам разного уровня.

Небойша Новкович: Думаю что большое светлое будущее перед платформой Revit. Она позволяет уже сейчас изготовление всей проектной документации, не выходя за рамки ИМЗ (BIM) и не теряя ни зернышко информации. Но в проектной фирме, какого бы она не была размера нужно иметь еще несколько программ, потому что одной программой не охватить весь спектр работ бюро. Autodesk хорошо это знает, поэтому Revit продается вместе с AutoCAD. Кроме программ для проектирования еще будет нужно работать в растровом редакторе Photoshop, в котором обрабатываются результаты всех рендеров. Кстати о рендерах. В Revit имеется встроенный Accurender но для тех, которые предпочитают картинки получать в других программах скажем что надо иметь 3DS MAX (или Autodesk VIZ). Есть и другие моделеры, но думаю что эти два самые распространенные в мире архитектурной визуализации. Одна идея не покидает меня больше года, поделюсь ею с вами: что является самой большой проблемой визуализации? Для меня это длительность рендера. Всегда мы стремились и мечтали о решении, которое бы позволило рендер в реальном времени. В 1996 году работая в Москве, я своими глазами увидел такое решение, даже рукой погладил, было это невероятное ощущение трогать комп стоимостью больше 1 миллиона долларов. Это был сервер Silicon Graphics Onyx, если память не подводит. Вот такое железо позволяло рендер делать в реальном времени. Все это красиво, но нам обычным людям оно недоступно. И вдруг технология рендера в реальном времени стала доступна всем. Появилась программка под названием SketchUp, на сегодняшний день являющаяся продуктом Google-а. Она позволяет делать не-фотореалистичный рендер в реальном времени, прекрасно принимает файлы dwg, созданы экспортом в Revit и лучше всего недорого стоит (относительно). Конечно же SketchUp не является конкурентом MAX-VIZ, он не может делать то что они делают но думаю что стоит обратить внимание на него.

3dgo.ru: Каковы перспективы и тенденции в России и СНГ развития САПР технологий?

Небойша Новкович: Revit платформа набирает обороты, все больше проектных организаций переходит на платформу Revit. Это так в России и в странах СНГ. Говорю из личного опыта, потому что в настоящий момент помогаю нескольким фирмам из Уфы и Алма-Аты внедрить Revit технологию. В будущем ожидаю только ускорения и увеличения количества переходящих компаний. Сейчас как раз время запрыгнуть на этот поезд. Многие фирмы интересуются, кто уже начал проектировать в Revit. В данный момент таких фирм довольно мало, но тот, кто сейчас не перейдет на новую технологию навсегда отстанет от тех первых, пионеров в освоении нового. Процесс перехода сложный, но это всегда было так. Вспомним, как проходил переход на компьютерное проектирование с ручного.

3dgo.ru: Знакомы вы с технологией работы зарубежных компаний?

Небойша Новкович: Мне не приходилось проектировать на зарубежную компанию, но будучи из Сербии и закончив один из сильнейших строительных институтов (Строительный факультет-Белград) могу сравнить то с чем здесь на территории бывшего СССР встречаюсь с тем чему нас учили в Белграде. Чтобы понимать, что за сербское строительство и проектирование надо знать, что наши строители и проектировщики в истории (и сейчас тоже) строили очень много за рубежом: по всему СССР, в Азии, Африке, и так далее. Это мне дает право делать какие-то выводы, и они таковы: технология проектирования на самом деле в разных странах похожа. Отличается только в стандартах и нормативах, но наука одна и та же. Если что-то бросим вверх, оно обязательно упадет назад, на землю и это случается везде, по всему миру, даже в Африке. Стандарты и нормативы в строительстве существуют во всех странах, это вполне нормально. Но таких стандартов, которых придерживаются в странах СНГ, нет нигде в мире. Нас учили думать при проектировании, конечно придерживаясь стандартов, но все-таки у нас была свобода хотя бы оформления документации. Существовали (и существуют) рамки, за которых нельзя было выходить, но внутри этих пределов была полная свобода. Здесь (Украина, Россия, СНГ) такого нет. В Москве, говорят, немного легче, фирмы могут отступить от стандартов и защитить свои стандарты предприятия. У нас в Харькове один большой проектный институт так поступил: создал стандарт своего предприятия, учитывая государственные нормативы там, где это возможно и делая свой там, где это не получалось. Поэтому у них нет проблем связанных с соблюдением стандартов. Думаю, этот подход правильный ведь государственные стандарты созданы, когда вся проектная документация делалась в ручную. Суть сказанного следующая: мы сегодня выбираем технологию проектирования на минимум 10 лет вперед. К этому вопросу надо относится со всей серьезностью. На сегодняшний день вполне вероятно, что некоторые программные продукты имеют легкое преимущество, но будущее (не так далекое как некоторым кажется) однозначно за Revit платформой. Хочу всем сказать: не бойтесь перехода, он всегда будет тяжелым и трудоемким и поэтому сразу надо начать этот процесс. Кто сегодня это поймет, у того всегда будет преимущество первопроходца.

3dgo.ru: Как Вы видите структуру организацию производства средней проектной фирме в России и СНГ?

Небойша Новкович: На что хочу обратить внимание это то, что переход на новые технологии часто создают новые рабочие места, которых до этого не было. Вспомним, когда проектировали вручную нам не были нужны программисты, системные администраторы, тех.поддержка и т. п. Переходя на платформу Revit нам понадобятся специалисты по созданию семейств (библиотечных элементов). Их наличие будет в значительной степени ускорять работу всей команды. И второй момент, очень важный, но часто пренебрегаемый это то, что все мы добываемся успеха благодаря работе всей команды. Не забывайте, вы являетесь членом команды!

3dgo.ru: С чего посоветуете начать организациям в систематизации своего процесса и возможные результаты данной работы?

Небойша Новкович: Чтобы оптимизировать процесс либо внедрить новую технологию проектирования необходимо начать, как при любом проектировании, со съемки, то есть описать все рабочие и проектные процессы конкретной организации. Это не простая задача, которая делается не один день, без которой нет смысла начинать систематизацию. На основании полученных результатов и с помощью консультантов (или своими силами, если они есть) надо определиться с целями и потом сделать план проведения всех мероприятий. Цели нужны и заказчику и консультанту для определения критериев успеха работы. Только в этом случае планирование будет иметь смысла. Часто консультанты (и клиенты тоже) думают, что планы не должны меняться и в этом сильно ошибаются. То, что не должно меняться это цели! Последняя составляющая качественного проведения всех мероприятий это время. Ни одна работа не имеет смысла, если ее не ограничить во времени. В течение выполнения плана внедрения (либо систематизации) план постоянно надо сравнивать с прогрессом и, если это необходимо, его корректировать.

3dgo.ru: Применение САПР дает возможность получать 3D сцены, а каковы возможности в визуализации и применения сцен полученных из САПР программ?

Небойша Новкович: Изначально работа в 3D меня заинтересовала именно возможностью визуализировать несуществующие объекты для показа заказчику. Поэтому я 15 лет назад стал работать в программе 3D Studio, помните такую? С развитием этой программы развивался и я. Когда увидел Revit, то одна из первых вещей которую пробовал, был рендер. С первых дней своего существования в нем был интегрирован Accurender. Это не поменялось до сегодняшнего дня. Accurender в Revit поддерживает raytrace и radiosity, имеет библиотеку и редактор материалов и, что очень интересно (это козырь Accurender из-за которого некоторые архитекторы по сей день работают в нем), библиотеку и мощный редактор растений. Интересно, что его растения, как и натуральные, меняются в зависимости от времени года. Как все знаем, качество визуализации зависит в первую очередь от умения мастера. Accurender не исключение. Секрет хорошей визуализации лежит в качестве применяемых материалов и работе с освещением. Accurender в этом плане не подведет. Если все-таки качество получаемых картинок не устраивает то всегда можно модель экспортировать в dwg файл, его вставить в 3DS MAX в качестве ссылки, в MAX-е назначить материалы, расставить освещение и сделать супер-пупер рендер. Если в геометрии Revit что-то поменяли, заново сделали экспорт в тот же dwg файл и обновили все в MAX. Назначения материалов в нем не поменялись, а новые объекты появились. И так можно делать пока не получим результат который всех будет устраивать. Я как раз предпочитаю такой процесс визуализации

3dgo.ru: Какова совместимость современных программ с Российскими ЕСКД СНИПами и ГОСТами?

Небойша Новкович: На сегодняшний день в Revit платформе существуют определенные проблемы, связаны с оформлением проектной документации. Но я всем задаю вопрос: неужели из-за невозможности получить одну – две ГОСТ спецификации вы готовы отказаться от самой перспективной платформы в мире? Все мы стали настолько ленивыми, совсем забыли, как с компьютерами начинали, сколько ночей проспали за столом, осваивая новые технологии, были от этого в восторге. А сегодня не хотим даже минуты свободного от работы времени вложить в свое будущее. Мы все находимся на большой развилке, не знаем, в каком направлении двигаться. Я для себя принял решение - это платформа Revit. Что решаете вы?

3dgo.ru: Большое спасибо за интересную беседу! Желаем Вам удачи и творческих успехов, будем с нетерпением ждать новых работ.

Небойша НОВКОВИЧ
главный специалист по ПО,
архитектурно-строительное направление
НПП "ТИС", Харьков, Украина
e-mail: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
ICQ#: 7165073

далее