3ds max
Михаил Мэров
Реальная анимация и виртуальная реальность CD-ROM прилагается Только в этой книге:
• все методы и приемы анимации в 3ds max контроллеры анимации и модуль reactor виртуальная реальность — подготовка и экспорт сцен в формате VRML
Краткое содержание Введение
10
Глава!. Анимация трехмерных сцен
14
Глава 2. Контроллеры и ограничители анимации
89
Глава 3. Анимация связанных объектов
153
Глава 4. Имитация динамики и модуль reactor
223
Глава 5, Видеомонтаж
297
Глава 6J Настройка и экспорт сцен в формате VRML
341
Алфавитный указатель
403
Содержание Введение
10
О чем эта книга Чего нет в этой книге Что находится на компакт-диске Благодарности От издательства
10 12 12 13 13
Глава 1.
Анимация трехмерных сцен
Общие сведения об анимации Процесс анимации Цель и варианты выполнения анимации Автоматизация анимации и контроллеры Треки анимации Средства управления анимацией Кнопка Auto Key Кнопки Set Key и Set Keys Кнопка Key Filters и список именованных наборов Ползунок таймера анимации Строка треков Кнопки управления анимацией Настройка временных интервалов Создание и воспроизведение анимации Создание базовой анимации методом ключей в автоматическом режиме Пример простейшей анимации в автоматическом режиме Просмотр анимации в окне проекции Режим принудительной анимации Использование режима анимации Set Key Пример анимации в принудительном режиме Создание и просмотр эскизов анимаций Создание эскиза анимации Просмотр эскиза анимации Переименование эскиза анимации Визуализация анимаций Выбор кодека для записи анимации Визуализация анимации в виде набора статических кадров Просмотр анимаций с помощью модуля RAM Player Редактирование ключей анимации в строке треков Манипулирование ключами анимации Контекстное меню ключа анимации Окно диалога Key Info и свитки командной панели Motion
14 15 15 15 16 16 17 17 18 19 20 20 23 24 28 . . . . 28 29 31 32 32 36 38 39 42 42 42 43 44 45 49 50 50 52
Увлекаетесь трехмерной анимацией, мечтаете о разработке компьютерных игр, создании «мультиков», клипов или спецэффектов для кино и TV? Тогда эта книга — для вас!
Михаил Мэров
3ds max [ Реальная анимация и виртуальная реальность
Москва • Санкт-Петербург • Нижний Новгород • Воронеж Новосибирск • Ростов-на-Дону • Екатеринбург • Самара Киев • Харьков • Минск
2005
ББК 32.973-044.4 УДК 681.327.1
М28
М28
Мэров М. Н. 3ds max. Реальная анимация и виртуальная реальность (+CD). — СПб.: Питер, 2005.—415 с.: ил. ISBN 5-469-00657-3 Эта книга предназначена для тех, кто увлекается трехмерной анимацией и мечтает о разработке компьютерных игр, создании «мультиков», клипов или спецэффектов для кино и TV. В книге представлено подробнейшее, снабженное множеством примеров, доступное и понятное описание всех имеющихся в программе 3ds max 6 средств и способов «оживления» трехмерных объектов. Есть в ней и разделы, которых вы не найдете больше ни в одном издании подобного рода. Это, например, описание инструментов модуля reactor и приемов создания с его помощью анимационных клипов, где бестелесные трехмерные объекты ведут себя, как в реальном мире, а также эксклюзивный материал о подготовке сцен и анимаций в формате виртуальной реальности VRML-97.
ББК 32.973-044.4 УДК 681.327.1
В оформлении обложки использована работа Н. Золотарёва. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги.
ISBN 5-469-00657-3
© ЗАО Издательский дом «Питер», 2005
Содержание
7
Окно диалога Track View 54 Открытие и удаление окон диалога Track View 54 Интерфейс окна диалога Track View 55 Меню окна Track View 62 Инструменты управления просмотром треков 67 Панели инструментов окна Track View — Curve Editor 69 Панели инструментов окна Track View — Dope Sheet 77 Создание анимации с помощью окна диалога Track View (Просмотр треков) . . . 80 Присоединение готовых треков анимации 81 Использование окна Merge Animation 82
Глава 2. Контроллеры и ограничители анимации Общие сведения о контроллерах анимации Включение режима отображения текущих контроллеров Возможные причины замены контроллеров Назначение и замена контроллеров в окне Track View Работа с контроллерами на командной панели Motion Назначение контроллеров с помощью меню Animation Назначение ограничителей с помощью меню Animation Настройка параметров контроллеров и ограничителей анимации Attachment Audio Barycentric Morph Bezier Block Boolean Color RGB Euler XYZ Expression Linear List Link LookAt Master Point Motion Capture Noise On/Off Orientation Path Position Position XYZ PRS Reactor Scale XYZ Script Smooth Rotation Spring Surface TCB Waveform
Глава З. Анимация связанных объектов Анимация связанных объектов Анимация по методам прямой и обратной кинематики Связывание объектов Отображение связей объектов Особенности преобразования связанных объектов (правила прямой кинематики)
89 90 91 92 93 95 97 98 100 100 102 104 106 111 115 116 116 118 120 120 121 124 127 129 131 133 134 135 137 138 139 139 143 143 144 144 146 147 150
153 154 154 154 156 158
8
Содержание
Расстановка опорных точек связанных объектов Настройка параметров связей объектов в цепочках Анимация связанных объектов по методу прямой кинематики Метод обратной кинематики Способы реализации метода обратной кинематики Подготовка цепочки объектов для анимации методом обратной кинематики Интерактивная анимация объектов по методу обратной кинематики Приложенная анимация объектов по методу обратной кинематики Показ двойников Система объектов Bones Создание системы объектов Bones Превращение костей в визуализируемые объекты Создание ветвящихся систем костей Редактирование костей средствами окна Bone Tools Анимация системы объектов Bones по правилам кинематики Анимация системы объектов Bones с помощью IK-контроллеров Назначение системе костей контроллера HI IK solver Настройка параметров контроллера HI IK solver Анимация системы костей контроллером SplinelKSolver Персонажные сборки Создание персонажной сборки Операции над персонажными сборками Настройка персонажной сборки на панели Modify Связывание параметров и заказные элементы управления Связывание параметров Создание манипуляторов в окнах проекций Создание заказных элементов управления
Глава 4. Имитация динамики и модуль reactor Анимация с учетом реальной динамики движений Выбор объектов, участвующих в динамических взаимодействиях Задание динамических свойств объектов Назначение глобальных воздействий на объекты и глобальных столкновений объектов Настройка времени и условий моделирования Запуск процесса решения динамической задачи Модуль reactor Классификация объектов модуля reactor Состав инструментов и интерфейс модуля reactor Понятие коллекций модуля reactor Понятие ограничителей модуля reactor Знакомство с прочими вспомогательными объектами модуля reactor Интерактивное окно предварительного просмотра анимаций Общие действия по созданию анимаций с помощью модуля reactor Имитация динамики жестких тел модулем reactor Простое взаимодействие выпуклых жестких тел Продолжение традиционной анимации модулем reactor Взаимодействие выпуклых и вогнутых жестких тел Имитация жестких тел, разбивающихся при столкновении Имитация динамики мягких тел модулем reactor Свиток Properties модификатора reactor Soft Body Имитация тканей модулем reactor Деформация ткани на препятствии Свиток Properties модификатора reactor Cloth Деформация ткани под действием ветра Свиток Properties объекта Wind Привязка ткани к жесткому телу
160 164 165 166 166 . . 168 172 173 175 176 176 179 180 181 188 191 194 195 198 . 206 206 207 208 210 211 215 221
223 224 224 226 231 232 233 234 234 235 241 245 246 247 249 254 254 259 262 265 269 272 272 273 274 277 280 282
Содержание Имитация нитей модулем reactor Свиток Properties модификатора reactor Rope Имитация воды модулем reactor Свиток Properties объемной деформации Water
Глава 5, Видеомонтаж Общие сведения о модуле Video Post Окно диалога Video Post Интерфейс окна диалога Video Post Панель инструментов окна Video Post События очереди видеомонтажа События-сцены События ввода изображений Ввод изображений для монтажа из файла ifl События-фильтры Типы фильтров обработки изображений События композиции изображений Типы фильтров композиции События вывода результирующих изображений Внешние события События-циклы Исполнение цепочки событий Использование фильтров оптических эффектов Фильтр Lens Effects Flare Фильтр Lens Effects Focus Фильтр Lens Effects Glow Фильтр Lens Effects Highlight
Глава 6. Настройка и экспорт сцен в формате VRML
9 288 290 292 295
297 298 298 299 304 306 306 308 310 312 314 319 320 322 322 323 324 325 326 333 335 338
341
Общие сведения о 30-сценах формата VRML Программные средства для просмотра сцен в формате VRML Варианты перемещений в виртуальном трехмерном мире Средства управления VRML-браузера Cortona Экспорт сцен 3ds max в формате VRML Некоторые требования к 30-сцене для экспорта в формате VRML Объекты 3ds max разновидности VRML 97 Порядок создания объектов разновидности VRML 97 Вспомогательный объект Navlnfo Вспомогательный объект Background Вспомогательный объект Fog Вспомогательный объект Inline Создание средств интерактивного взаимодействия с объектами VRML-сцены Вспомогательный объект Billboard Использование объекта LOD Использование объектов Anchor Использование датчиков касания Использование датчиков приближения Использование датчиков времени Добавление средств интерактивного управления звуком Дополнительные возможности настройки VRML-сцен Особенности отображения текстур в составе материалов Использование анимированных текстур Использование датчиков PlaneSensor, CylinderSensor и SphereSensor
342 344 345 346 351 355 356 356 358 360 362 364 366 367 368 371 374 376 378 381 384 385 389 394
Алфавитный указатель
403
Введение Уважаемый читатель! Вы держите в руках необычную книгу. И необычна она тем, что объединяет под своей обложкой описание возможностей одной из самых популярных и мощных программ трехмерной графики — программы 3ds max компании Discreet — в двух таких интереснейших областях, как создание трехмерных анимаций и моделирование виртуальной реальности.
О чем эта книга Трехмерная анимация — это одна из самых передовых и перспективных областей компьютерных технологий. С использованием методов трехмерной анимации сегодня создают телевизионные заставки и рекламные ролики, снимают музыкальные клипы и видеофильмы — от небольших мультиков до полнометражных картин, формируют трюковые фрагменты для игрового кино... О том, как создавать и настраивать анимации в 3ds max, вы узнаете из первых трех глав книги. В главе 1 «Анимация трехмерных сцеп» даются общие сведения об анимации сцен в 3ds max и средствах управления ими, описываются приемы анимации объектов методом ключей в автоматическом и принудительном режимах, рассказывается о том, как выполнить просмотр созданной анимации и сформировать на ее основе видеоклип, как пользоваться основным инструментом настройки анимаций — окном правки треков. В главе 2 «Контроллеры и ограничители анимации» рассказывается о контроллерах анимации, раскрываются особенности использования всех типов контроллеров, реализованных в 3ds max. В главе 3 «Анимация связанных объектов» вам предстоит познакомиться с методами, применяемыми в такой увлекательной области, как анимация компьютерных персонажей. Прочитав эту главу, вы узнаете, как связывать объекты в иерархические цепочки и выполнять анимацию таких цепочек по правилам прямой и обратной кинематики и с использованием специальных контроллеров, как создавать и анимировать специфические объекты-кости, призванные играть роль скелетов компьютерных персонажей, а также как связывать между собой не сами объекты, а только их отдельные параметры, чтобы при анимации управляющего параметра зависимый тоже менялся.
О чем эта книга
11
Глава 4 «Имитация динамики и модуль reactor» — особенная. Она предназначена для тех, кто хочет научиться создавать трехмерные анимации, где все «по-настоящему»: костяшки домино падают, роняя друг друга, мячик прыгает по полу, флаг полощется по ветру, занавеска колышется и скользит по карнизу, груз раскачивается на веревочке, камень тонет в воде, а деревянный брусок плавает... Прочитав эту главу, вы освоите и те возможности по моделированию подобных «чудес», которыми обладает сама программа 3ds max, и те, что появляются у этой программы за счет установки дополнительного модуля reactor (реактор). Предоставляемые этим модулем возможности имитации реальной динамики поведения, свойственной объектам физического мира, настолько впечатляют, что даже заставили автора включить слова «реальная анимация» в название этой книги. В главе 5 «Видеомоитаж» описываются методы и инструменты программы 3ds max, с помощью которых можно выполнить монтаж отдельных анимационных клипов в готовый видеоролик с применением эффектов межкадровых переходов и дополнительных средств фильтрации кадров. Методы анимации позволяют оживить виртуальный трехмерный мир, наполнить его действием. Впрочем, если вдуматься, у этого действия есть один принципиальный недостаток: оно всегда развивается по одному и тому же сценарию, положенному в его основу. Просматривая видеоклип, зритель никак не может вмешаться в ход сюжета, разве что приостановить и снова запустить его на воспроизведение. Преодолеть этот недостаток, дать зрителю возможность почувствовать себя полноправным героем трехмерного мира позволяют методы моделирования виртуальной реальности. С их помощью создаются трехмерные сцены, по которым можно путешествовать «от первого лица»: двигаться от объекта к объекту, обходить препятствия, заходить в двери, подниматься и спускаться по лестницам... По виртуальному миру можно не только передвигаться, по и выполнять в нем различные действия с наполняющими его объектами, например брать и перемещать их с помощью мыши. Можно подготовить анимацию объектов виртуального мира таким образом, чтобы начало ее воспроизведения также требовало активного действия со стороны наблюдателя. К примеру, дверь, анимировапную на открывание, можно заставить распахиваться только после щелчка кнопкой мыши на ручке двери. Виртуальная реальность предлагает зрителю не один раз и навсегда заданный сценарий действия, а набор таких сценариев, выбор которых остается за ним. Все это очень напоминает ситуацию типовой компьютерной игры. Именно в компьютерных играх методы моделирования виртуальной реальности реализуются с наибольшей полнотой. Помимо этого, возможности виртуальной реальности все чаще находят применение в сети Интернет для создания виртуальных музеев, выставок, галерей или магазинов, организации виртуальных экскурсий или прогулок и т. п. В главе 6 «Настройка и экспорт сцен в формате VRML» вы узнаете о том, что представляет собой язык моделирования виртуальной реальности VRML, освоите средство просмотра виртуальных миров — VRML-браузер, найдете описание всех методов и инструментов, посредством которых в программе 3ds max подготавливается трехмерная сцена для экспорта в формате виртуальной реальности, а также научитесь выполнять правку VRML-кода «вручную» для придания экспортированным из 3ds max сценам целого ряда дополнительных возможностей.
12
Введение
Чего нет в этой книге Чтобы начать работу над компьютерной анимацией, необходимо как минимум иметь готовую трехмерную сцену, а лучше уметь моделировать трехмерные тела и выстраивать сцены самостоятельно. В этой книге вы не найдете описания методов трехмерного моделирования. Если вы еще не имеете достаточных навыков моделирования трехмерных сцен, советую обратиться к моей книге «Эффективная работа: 3ds max 5», выпущенной издательством «Питер» в 2003 г. Кроме того, в этом же издательстве готовятся к выпуску книги «Энциклопедия 3ds max 6» и «3ds max 6. Моделирование трехмерных сцен», в которых методы и приемы моделирования освещены достаточно подробно. Помимо отладки анимации для съемки качественного видеоклипа требуется еще осуществить текстурирование объектов, то есть создать и назначить всем объектам сцены материалы, для которых нужно подобрать или нарисовать текстуры. Кроме того, необходимо создать, настроить и расставить в пространстве сцены осветители разного типа и съемочные камеры. Особенности выполнения этих работ также не будут рассматриваться в данной книге. Подробные описания тонкостей создания материалов, подготовки освещения, съемочных камер и выполнения визуализации трехмерных сцеп в программе 3ds max можно найти в уже упомянутых книгах «Эффективная работа: 3ds max 5» и «Энциклопедия 3ds max 6». Кроме того, в издательстве «Питер» готовится к выпуску книга «3ds max 6. Материалы, освещение и визуализация», специально посвященная этим вопросам. Важным этапом работы над анимацией является предварительная подготовка, которая состоит в уяснении цели, формировании замысла и разработке сценария будущей анимации. Вы не найдете в этой книге подробных рекомендаций по выполнению этого этапа. Тем не менее настоятельно советую не пренебрегать предварительной подготовкой. Поверьте моему опыту: анимационные проекты, начатые без четкого осознания, для чего и зачем они делаются, замысел которых не может быть сформулирован автором даже для самого себя, а сценарий придумывается по ходу выполнения анимации, в большинстве своем остаются незавершенными.
Что находится на компакт-диске В книге приводится довольно много примеров выполнения тех или иных приемов анимации объектов, эффективного использования контроллеров, вспомогательных объектов категории VRML и т. п. Все эти примеры трудно проиллюстрировать статическими картинками, ведь анимация существует в динамике. В связи с этим файлы примеров, приведенных в книге, размещены на компакт-диске, сопровождающем книгу. На диске имеются пять папок: Scenes, Animations, Maps, Sounds и WRL, — и отдельный файл Readme.txt, содержащий некоторые пояснения и комментарии к опубликованным примерам, не вошедшие в текст книги. В папке Scenes размещаются файлы сцен 3ds max, реализующих многие из описанных в книге примеров анимаций. Файлы сцен разложены по папкам, соответствующим главам книги: Glaval, Glava2 и т. п., и, в основном, имеют имена, однозначно соответствующие номерам иллюстраций. Например, файл fig01-012.max содержит описание сцены 3ds max, визуализированное изображение которой
От издательства
13
помещено па рис. 1.12 книги. На файлы с иными именами в тексте книги сделаны специальные ссылки. В папке Animations помещаются примеры анимаций, визуализированных на основе сцеп из папки Scenes, в виде файлов формата avi. Файлы анимаций также разложены по папкам, соответствующим главам книги, и имеют такие же имена, как файлы сцен. Все анимации визуализированы с использованием кодека DivX Pro 5.0.2, и для их просмотра необходимо установить такой кодек па ваш компьютер. Папка W R L содержит примеры файлов, экспортированных в формате виртуальной реальности. Их имена однозначно соответствуют именам сцен из папки Scenes. В папку W R L вложены нанки Maps и Sounds с файлами текстур и звуков для VRML-сцен. При копировании па жесткий диск эти папки обязательно следует расположить внутри той, в которую будут скопированы файлы из папки WRL Папка Sounds включает звуковые файлы, используемые в примерах. Их необходимо скопировать в стандартную папку \Sounds, вложенную в папку с 3ds max. Образцы карт текстур, необходимых для визуализации материалов сцен, помещены в папку Maps компакт-диска. После загрузки файлов текстур па ваш компьютер поместите их в стандартную папку \Maps, вложенную в папку с программой 3ds max, или в любую другую папку жесткого диска, путь к которой укажите на вкладке External Files (Внешние файлы) окна диалога Configure Paths (Маршруты доступа). В тексте книги вам будет встречаться значок, который подсказывает, в каких случаях следует обратиться к прилагающемуся компакт-диску за просмотром соответствующих примеров. Вы имеете полное право выполнять доработки и вносить изменения в файлы сцен, а также использовать их в качестве основы собственных разработок. В последнем случае при опубликовании ваших результатов необходимо будет указать ссылку на первоисточник.
Благодарности Автор хотел бы выразить свою искреннюю благодарность Екатерине Строгановой, которой принадлежит идея издания этой книги, Юрию Суркису, выполнявшему редактирование и координировавшему всю работу над изданием, а также всем издательства «Питер», принявшим участие в подготовке и выпуске книги. Кроме того, автор заранее благодарен всем читателям, которые сочтут возможным прислать ему свои замечания или отзывы па книгу по электронной почте
[email protected].
От издательства Ваши замечания, предложения, вопросы отправляйте по адресу электронной почты
[email protected] (издательство «Питер», компьютерная редакция). Мы будем рады узнать ваше мнение! На web-сайте издательства http://www.piter.com вы найдете подробную информацию о наших книгах. Издательский дом благодарит Н. Золотарёва за помощь в оформлении обложки.
Анимация трехмерных сцен Чтобы обеспечить формирование даже одпогоединствешюго статичного кадра изображения трехмерной сцены, необходимо создать геометрические модели всех составляющих ее объектов, выполнить настройку источников света и камер, создать и назначить объектам материалы, для которых подобрать или нарисовать текстуры. Именно в связи с трудоемкостью таких работ затраты по выстраиванию трехмерной сцены наилучшим образом окупаются, если в этой сцене «снять кино», то есть произвести анимацию одного или нескольких объектов или анимацию съемочной камеры и сформировать не одно, а целую серию из нескольких десятков, сотен или тысяч изображений.
ен
В этой тп аве будут Р?ссм °ТР И 1 : '•следующие : вр ripocbi: 1 1 1 lllflii j
'
:• на стр с^
е н нЩ;Шгерв а: 1
11|рщан
/!м'ацйй'1
1|Ий|е
4рЩ11||
11||ЙШ
.юв';к
lpgocf.
: редактйровЦЦ: ;:::Интерф' feMP'f г(Реда , Щбг |.;:;:»а|ЩЧ1.
РТОб!
;Зрив(. '
:^=яиалс .
||||^в1И:.;Тр(
эс^|||1|| •
itpfj
| ) i l| | | | | .ИИ.^^ЙаЙЩНР^^
i а:10орет; iSillll b
i'
1ктрй
Общие сведения об анимации
15
Общие сведения об анимации Перед тем как приступить к изучению средств и методов создания анимаций, ознакомимся с основными понятиями из области анимации сцен в 3ds max.
Процесс анимации Под анимацией (animation — оживление) трехмерной сцены в 3ds max понимается автоматизированный процесс визуализации последовательности изображений, называемых также кадрами (frames), каждое из которых фиксирует некоторые изменения состояния этой сцепы. Эти изменения могут касаться положений объектов или подобъектов, формы объектов, определяемой действием различных модификаторов, свойств материалов объектов (таких, как цвет, блеск, прозрачность или самосвечение), состояния внешней среды, представленной дымкой или туманом, и многих других компонентов сцены, допускающих анимацию. В 3ds max можно подвергать анимации преобразования всех объектов, подобъектов и габаритных контейнеров, а также большую часть параметров объектов, модификаторов, материалов и атмосферных эффектов.
Цель и варианты выполнения анимации Созданную в 3ds max анимацию можно просматривать в окнах проекций этой программы. Однако цель анимации состоит в том, чтобы сформировать анимационный видеоклип, который может быть сохранен в одном из стандартных форматов, таких как avi или mov. Видеоклип — это последовательность визуализированных кадров анимации. При воспроизведении такой последовательности со скоростью, достаточной для создания иллюзии плавного движения, происходит «оживление» сцены в окне проигрывателя видеоклипа. Количество кадров, приходящихся на единицу времени анимации, необходимое для обеспечения плавности изменений сцены, задается пользователем в процессе настройки временных интервалов анимации. Обычно оно составляет 30 кадров в секунду. Такие видеоклипы можно просматривать стандартными средствами программы Windows, например с помощью приложения Media Player (Универсальный проигрыватель). С точки зрения происходящего в сцене действия можно рассматривать следующие варианты выполнения анимации:
ЗАМЕЧАНИЕ |ШЩ с •> ЦЩЩь! ЦЦЩйЪ' ' |рт в;;Мнбг 11РШШ1 ЦЩены в • |||J|p|B
?»""'' |
'''''Iliil
й;:тщ^|рнрйШ||||Ц;:: В
ТЯ!
оьШМпр;
,
П камера неподвижна, действуют объ- |||Д|||Ш|1':^ екты трехмерной сцены. Это напоминает ситуацию съемок телевизионного спектакля, когда актеры играют на сцене театра перед камерой, неподвижно укрепленой на штативе;
16
Глава 1. Анимация трехмерных сцен
П сцена неподвижна, действует камера. Это напоминает ситуацию съемок оператором, который держит камеру в руках и, глядя через ее объектив, перемещается в пространстве сцены. Часто такой прием исползуется при съемке музеев, выставок, галерей и т. п.; D действуют и камера, и объекты трехмерной сцены. Такой прием позволяет создать наиболее динамичные анимации и часто используется в игровом кино.
Автоматизация анимации и контроллеры Автоматизация процесса анимации состоит в том, что пользователю требуется задать значения анимируемых параметров только в некоторых кадрах, называемых ключевыми (keyframes). Ключевые кадры могут разделяться десятками промежуточных (in-betweens) кадров. Например, для создания анимации продолжительностью в 100 кадров, изображающей простейшее перемещение объекта, бывает достаточно задать положение объекта всего в двух ключевых кадрах: в начале и в конце анимации. Значения анимируемых параметров в ключевых кадрах называются ключами анимации (animation keys). Значения этих параметров в промежуточных кадрах 3ds max рассчитывает автоматически. В каждом кадре ключи анимации могут быть заданы для произвольного числа объектов сцены, а каждый из объектов может иметь ключи анимации для любых своих параметров. Можно обойтись без ключевых кадров, если указать программе 3ds max алгоритм изменения анимируемого параметра. Способ управления изменением параметров (посредством настройки формы графика изменений, путем задания траектории изменений, за счет описания изменений алгоритмическим выражением и т. п.), а также характер этих изменений (равномерно в интервале между ключевыми кадрами, с ускорением в начале или в конце интервала и т. п.) определяются выбором контроллера анимации (animation controller). Для каждого параметра и преобразования 3ds max, которые допускают анимацию, определен тип контроллера анимации, назначаемый им по умолчанию.
Треки анимации Треками анимации (animation tracks') в 3ds max называют временные диаграммы, где на шкале времени отмечены специальными значками моменты, когда изменяющимся в ходе анимации параметрам объекта (например, координатам положения объекта в пространстве) были назначены новые фиксированные значения. Как вы уже знаете, такие значения называются ключами анимации, поэтому можно говорить о том, что на строке треков значками обозначаются ключи анимации. Для работы с треками и ключами анимации всех объектов в 3ds max имеется специальное средство — окно диалога Track View (Просмотр треков), представленное двумя своими разновидностями: Curve Editor (Редактор кривых) и Dope Sheet (Диаграмма ключей). В этом окне ключи анимации обозначаются размещенными на треках прямоугольными значками разного цвета, в зависимости от типа анимируемого параметра. Упрощенный доступ к ключам анимации выделенного объекта (объектов) сцены возможен с использованием строки треков, располагающейся в нижней части экрана 3ds max, под окнами проекций. В этой
Средства управления анимацией
17
строке ключи анимации также обозначаются прямоугольниками разного цвета. В окне Track View — Dope Sheet (Просмотр треков — Диаграмма ключей) каждый параметр, подвергаемый анимации, имеет собственный трек. В строке треков все треки совмещаются на единой шкале, так что каждый прямоугольный значок может обозначать, что в данной точке шкалы времени находится произвольное число ключей анимации различных объектов.
Средства управления анимацией В 3ds max реализованы два режима анимации методом ключей. Один из них называется режимом анимации с автоматическим созданием ключей (auto key), или просто режимом автоматической анимации. Второй называется режимом анимации с принудительным созданием ключей (set key), или просто режимом принудительной анимации. В этом режиме пользователь имеет полный контроль над тем, какие именно ключи и в каких кадрах будут созданы. За такие расширенные возможности приходится платить необходимостью более внимательно контролировать свои действия и не забывать создавать эти самые ключи в нужные моменты времени. Имеющиеся в 3ds max средства управления анимацией соответствуют этим двум режимам. Средства создания ключей и управления анимацией включают ряд кнопок в нижней части экрана 3ds max, раскрывающийся список со строкой Selected (Выделенные), ползунок таймера анимации, строку треков и кнопки управления воспроизведением анимаций. Все эти элементы обозначены на рис. 1.1. Строка треков
Ползунок таймера анимации
1Н;Ш£5П|1Р., 'mm Кнопка Показать кривые
Инструменты создания анимаций
Средства воспроизведения и настройки анимаций
Рис. 1.1. Фрагмент окна программы 3ds max со средствами создания ключей и управления анимацией
Рассмотрим подробнее назначение этих элементов управления.
Кнопка Auto Key Кнопка Auto Key (Автоключ) переводит 3ds max в режим автоматической анимации, когда любое изменение какого-либо параметра сцены автоматически запоминается в текущем кадре в виде ключа анимации. После щелчка на этой кнопке она фиксируется и подсвечивается темно-красным цветом. Таким же цветом окрашиваются строка ползунка таймера и рамка активного окна проекции (рис. 1.2). Повторный щелчок на этой кнопке выключает режим автоматического создания ключей анимации.
18
Глава 1. Анимация трехмерных сцен
lllIlSlf;
:
'Щр?
Рис.Щ При нажатой кнопке Auto Key сама кнопка, строка таймера и рамка активного окна проекции окрашиваются в темно-красный цвет
Красный цвет кнопки, рамки окна и строки ползунка говорит о пребывании 3ds max в режиме анимации. Пока 3ds max находится в этом режиме, программа следит за изменениями любых параметров, скажем, координат положения объектов в пространстве сцены, углов их ориентации или размеров; цвета, характеристик блеска или силы свечения материалов, настроек оптических эффектов или эффектов окружающей среды и т. п. Новые значения параметров запоминаются в качестве ключей анимации в текущем кадре (current frame). Текущим кадром называется изображение, синтезируемое в результате визуализации текущего состояния сцены — того, которое видно в окнах проекций.
Кнопки Set Key и Set Keys Кнопка Set Key (Задать ключ) служит для включения и выключения режима анимации, при котором ключи устанавливаются в нужных кад- ! pax вручную, с помощью кнопки Set Keys (Задать ключи). После щелчка на кнопке Set Key (Задать ключ) она фиксируется и подсвечивается темно-красным цветом. Таким же цветом окрашиваются строка ползунка таймера и рамка активного окна проекции (рис. 1.3). Повторный щелчок на этой кнопке выключает режим принудительного создания ключей анимации. Большая кнопка Set Keys (Задать ключи) со значком в виде ключа слу- щ жит для установки ключей в текущем кадре, если активен режим анимации, включаемый кнопкой Set Key (Задать ключ). Для создания ключей : нужно просто щелкнуть на этой кнопке. Кнопка не фиксируется в нажатом состоянии, но при щелчке на ней на мгновение окрашивается красным цветом, указывая на то, что ключи созданы.
19
Средства управления анимацией
Рис. 1.3.
При нажатой кнопке Set Key сама кнопка, строка таймера и рамка активного окна проекции окрашиваются в темно-красный цвет
Кнопка Key Filters и список именованных наборов В режиме автоматической анимации ключи создаются для того параметра, который вы изменяете. В режиме принудительного создания ключей необходимо указывать, для каких именно параметров и каких именно объектов требуется устанавливать ключи. Этой цели служат кнопка Key Filters (Фильтры ключей) и раскрывающийся список именованных выделенных наборов. Кнопка Key Filters (Фильтры ключей) вызывает появление окна диалога Set Key Filters (Фильтры выбора ключей), показанного на рис. 1.4 и предназначенного для выбора параметров, ключи которых будут создаваться при щелчке на кнопке Set Keys (Задать ключи). Использование этого окна будет рассмотрено далее в разделе «Режим принудительной анимации». Set Key Filters... ffj
Рис. 1.4.
Окно диалога Set Key Filters
20
Глава 1. Анимация трехмерных сцен
Список именованных выделенных наборов позволяет быстро указать набор объектов, для которых будут установлены ключи при щелчке на кнопке Set Keys (Задать ключи). Имена выделенных наборов включаются в список автоматически по мере их создания. При выборе установленного по умолчанию варианта Selected (Выделенные) ключи будут создаваться только для выделенных объектов сцены. При выборе имени набора ключи будут создаваться для всех объектов из этого набора, даже если эти объекты не выделены в данный момент в окнах проекций 3ds max.
Ползунок таймера анимации Этот ползунок (рис. 1.5) служит для установки текущего кадра анимации и позволяет управлять анимацией вручную. Цифры на ползунке указывают номера текущего и последнего кадров в последовательности, называемой активным временным сегментом (active time segment) анимации. По умолчанию после запуска 3ds max в качестве текущего всегда устанавливается нулевой кадр, а общее число кадров активного сегмента задается равным 101 — с нулевого по сотый, поэтому на ползунке можно видеть надпись 0/100. Перетаскивая ползунок с помощью мыши, можно установить в качестве текущего любой кадр из активного временного сегмента. Ползунок таймера анимации Ползунок строки треков
ded
Рис. 1.5. Строка треков в 3ds max похожа на мерную линейку, ползунок которой указывает текущий кадр
Кнопки со стрелками на левом и правом краях ползунка служат, соответственно, для перехода к предыдущему и следующему кадрам анимации. При воспроизведении анимации ползунок таймера автоматически перемещается слева направо, отображая процесс смены кадров и течение времени. Ползунок таймера анимации может использовать различные временные шкалы. Например, вместо того чтобы демонстрировать номера кадров, он может показывать время в формате МИН:СЕК. Установка формата отображения времени производится в диалоговом окне настройки временных интервалов, о котором вы узнаете ниже.
Строка треков Строка треков, располагающаяся в нижней части экрана 3ds max под строкой ползунка таймера анимации, представляет собой средство ускоренного доступа к ключам анимации выделенного объекта (или объектов) сцены, позволяя обойтись без вызова окна Track View (Просмотр треков). В 3ds max строка треков похожа на мерную линейку благодаря нанесенным на ней делениям, обозначающим номера кадров. Номер текущего кадра указывается прозрачным голубым ползунком с вертикальной риской, как показано на рис. 1.5. На этом рисунке текущим является кадр 14, на что указывают надпись на ползунке таймера анимации и позиция ползунка строки треков.
21
Средства управления анимацией
После начальной загрузки 3ds max, когда анимация еще не создана, строка треков пуста, как видно на рис. 1.5. На рис. 1.6 показана строка треков объекта, для которого созданы ключи анимации в нулевом, 50-м и 100-м кадрах. Эти ключи обозначены на строке треков прямоугольниками красного цвета. Цифры на ползунке таймера и положение ползунка строки треков указывают па то, что текущим в данном случае является кадр 30. Кнопка Показать кривые
СОВЕТ
еЩ
:
;Ц1> Показать строку ^треков};:: Эта1:ко манда л включает и :вЬ1клк^ча
Ключи анимации
Рис. 1.6. Строка треков с ключами анимации
В 3ds max строка треков имеет способность превращаться в подобие упрощенного редактора функциональных кривых, представляющих собой графики изменения апимированпых параметров во времени. Для такого превращения служит кнопка Show Curves (Показать кривые), расположенная па левом краю строки треков и показанная на рис. 1.6. После щелчка па кнопке Show &&& Curves (Показать кривые) вид ок- ^й на 3ds max преображается, как показано на рис. 1.7. По сути дела, строка треков превращается в упрощенную версию окна Track View — Curve Editor (Просмотр треков — Редактор кривых), представляющего собой одну из двух модификаций прежнего окна просмотра треков анимации. Эта упрощенная версия имеет строку меню, панель инструментов и остальные атрибуты — отсутствует только строка заголовка.
ЗАМЕЧАНИЕ
^ :; 1
••:щй : ': КИ
СОВЕТ
ШДЩй и. вместе.^ рёычной лиЩ| •ни /'
.
Э
Д
Если выполнить двойной щелчок на строке меню этого окна или щелкнуть на строке меню и, удерживая кнопку мыши нажатой, перетащить курсор, то окно станет плавающим, приобретя заголовок Trackbar (Строка треков), как показано на рис. 1.8.
22
Глава 1. Анимация трехмерных сцен
Tods • Group Vews
Ползунок таймера анимации Рис. 1.7, Вид окна 3ds max со строкой треков в режиме показа функциональных кривых, характеризующих изменения параметров анимации во времени
Рис. 1.8. Строка треков 3ds max в режиме показа функциональных кривых превращена в плавающее окно
С помощью окна, возникающего на месте строки треков после щелчка на кнопке Show Curves (Показать кривые), можно не только просматривать функциональные кривые анимации, но и выполнять операции редактирования их формы, добавления и перемещения ключей анимации и т. п. Подробнее об использовании окна Track View — Curve Editor (Просмотр треков — Редактор кривых) вы можете прочитать в разделе «Окно диалога Track View» этой главы.
Средства управления анимацией
23
Чтобы закрыть окно просмотра кривых и вернуться к прежнему виду строки треков, следует щелкнуть на кнопке Close (Закрыть), расположенной на левом краю панели инструментов этого окна.
Кнопки управления анимацией Справа от кнопки Key Filters (Фильтры ключей) и раскрывающегося списка именованных выделенных наборов находится ряд кнопок, показанных на рис. 1.9 и позволяющих управлять воспроизведением анимации и выполнять ряд других функций, например настраивать скорость воспроизведения и продолжительность анимации. Воспроизведение Воспроизведение анимации анимации выделенных объектов Предыдущий кадр/ Предыдущий ключ Перейти -I вначало
Следующий кадр/ Следующий ключ »Щ- Перейти в конец
!
Переключатель режима ключей
Щ-Настройка Текущий кадр
интервалов
Рис. 1.9. Кнопки управления анимацией
Рассмотрим назначение и порядок использования каждой из этих кнопок: О Go to Start (Перейти в начало). Устанавливает в качестве текущего начальный кадр активного сегмента анимации. D Previous Frame (Предыдущий кадр). Устанавливает предыдущий кадр в качестве текущего. В режиме ключей эта кнопка называется Previous Key (Предыдущий ключ). П Play Animation (Воспроизведение анимации). Воспроизводит текущую анимацию в активном окне проекции с целью тестирования движений. Этот способ тестирования анимации можно применять в режиме тонированного или каркасного отображения. После запуска анимации па г~~~| воспроизведение кнопка превращается в кнопку Stop (Стоп), щелчок на L™^ которой останавливает воспроизведение. Раскрывающаяся панель данного инструмента содержит кнопку Play Selected (Воспроизведение анимации выделенных объектов). О Next Frame (Следующий кадр). Устанавливает следующий кадр в качест- :щр ве текущего. В режиме ключей эта кнопка называется Next Key (Следую- *Ш ЩИЙ КЛЮЧ).
;fi;:j
D Go to End (Перейти в конец). Устанавливает в качестве текущего конеч- jFgjj ный кадр активного сегмента анимации. О Key Mode Toggle (Переключатель режима ключей). Переключает ком- щ^ плекс в режим отслеживания ключей анимации. Если в этом режиме ! щелкнуть на кнопке Next Key (Следующий ключ) или Previous Key (Предыдущий ключ), то происходит переход не к следующему кадру, а к очередному
24
Глава 1. Анимация трехмерных сцен
кадру, содержащему ключ анимации выделенного объекта. Выбор следующего ключа анимации при переходе зависит в этом случае от выбранного типа преобразования. Например, если выбрано преобразование перемещения, то следующим ключевым кадром будет тот, который содержит ключ анимации положения объекта. П Current Frame (Текущий кадр). Отображает номер текущего кадра, а также позволяет ввести требуемый номер кадра или момент времени анимации. После нажатия клавиши Enter заданный кадр становится текущим. D Time C o n f i g u r a t i o n (Настройка временных интервалов). Вызывает рассматриваемое ниже диалоговое окно, позволяющее выбрать вариант отображения текущего времени анимации, а также задать ее продолжительность и частоту следования кадров.
i : v . -: ":-::v СОВЕТ
:
:.-:;
Configuration' (Настроила временных;интервадоЩ||И а !н
Настройка временных интервалов Временные параметры анимации настраиваются и управляются с помощью окна диалога Time Configuration (Настройка временных интервалов), показанного на рис. 1.10. В нем можно указать общую продолжительность времени анимации, скорость ее воспроизведения и способ отображения отсчетов времени, который будет использовать 3ds max. Time t.iiiil ii'.ur
rilion
ISFlfxi)
.
. .: ' : Я
i
Рис. 1.10.
lliilliiSlllS
Окно диалога Time Configuration служит для настройки временных параметров создания и показа анимаций
Настройка временных интервалов
25
Для настройки временных интервалов анимации выполните следующие действия: 1. Щелкните на кнопке Time C o n f i g u r a t i o n (Настройка временных интервалов) или щелкните правой кнопкой мыши на любой из кнопок управления анимацией, чтобы вызвать окно диалога Time Configuration (Настройка временных интервалов). 2. Задайте частоту кадров анимации, установив переключатель Frame Rate (Частота кадров) в бдно из четырех положений: о NTSC — стандарт телевизионного сигнала с частотой 30 кадров в секунду (точнее, 29,97 кадра в секунду), установленный Национальным комитетом телевизионных стандартов США (NTSC — National Television Standards Committee ) и принятый в США и Японии; о PAL — телевизионный стандарт Phase Alternate Line с частотой 25 кадров в секунду, принятый в большинстве стран Европы и, с определенной модернизацией, в России; о Film (Кино) — стандарт для игрового кино с частотой 24 кадра в секунду; о
Custom (Специальная) — позволяет указать произвольную частоту кадров в счетчике FPS (Frames Per Second — кадров в секунду).
3. Укажите, в какой форме будет отображаться время на ползунке таймера и в любом из окон диалога, где можно менять текущее время анимации, установив переключатель Time Display (Отображение времени) в одно из четырех положений: о Frames (Кадры) — время отображается в виде номера кадра, как принято по умолчанию; о SMPTE — стандарт, разработанный сообществом инженеров кино и телевидения (SMPTE — Society of Motion Picture and Television Engineers). Время отображается в формате Минуты:Секунды.Кадр, где Кадр — это число долей очередной секунды, выраженное в количестве кадров, прошедших с конца предыдущей секунды (число кадров в секунде определяется установкой переключателя Frame Rate). Например, при частоте 30 кадров в секунду (стандарт NTSC) запись 0:2.29 означает кадр номер 89 или момент времени, равный 2 и 29/30 секунды; о
FRAME:TICKS — время отображается в формате Кадр:Тик, где тик (tick) — внутренняя единица измерения времени в 3ds max, равная 1/4800 секунды. При частоте воспроизведения 30 кадров в секунду в каждом кадре содержится по 160 тиков, так что минимальный сдвиг по времени анимации между соседними ключами может составлять 1/160 долю времени кадра. Для перемещения по шкале времени на один тик можно использовать кнопки со стрелками на концах ползунка таймера анимации или кнопки перемещения к следующему кадру по обе стороны от кнопки Play Animation (Воспроизведение анимации);
о MM:SS.TICKS — время отображается в формате Минуты:Секунды.Тики, позволяя отсчитывать временные интервалы с дискретностью 1/4800 секунды.
Глава 1. Анимация трехмерных сцен
26
4. Настройте следующие параметры воспроизведения анимаций в разделе Playback (Воспроизведение): о Real Time (Реальное время) — установка этого флажка заставляет 3ds max пытаться воспроизвести анимацию в окне проекции с заданной частотой кадров, умноженной на коэффициент, задаваемый переключателем Speed (Скорость). При недостаточной производительности компьютера 3ds max будет пропускать отдельные кадры анимации для поддержания заданной скорости воспроизведения. Чтобы увидеть все кадры при интерактивном воспроизведении, сбросьте этот флажок; о Active Viewport Only (Только активное окно) — обеспечивает интерактивное воспроизведение анимации только в активном окне проекции. Если флажок сброшен, интерактивное воспроизведение анимации будет выполняться во всех окнах проекций; о Direction (Направление) — этот переключатель, доступный только при сброшенном флажке Real Time (Реальное время), позволяет выбрать один из трех вариантов направления воспроизведения анимации: Forward (Вперед), Reverse (Обратно) или Ping-Pong (Вперед-назад). 5. Установите общую продолжительность анимации или ее активного сегмента с помощью следующих параметров раздела Animation (Анимация): о Start Time (Время начала), End Time (Время окончания) — задают моменты начала и конца активного временного сегмента (active time segment) анимации, то есть интервала, в пределах которого можно перемещаться по шкале времени при помощи ползунка таймера или кнопок управления анимацией. Начальное и конечное значения номеров кадров могут быть отрицательными — единственным ограничением является то, что время окончания обязательно должно быть больше времени начала; о Length (Продолжительность) — задает продолжительность активноСОВЕТ llliillillillll го временного сегмента анимации Инота как разницу параметров Start Time | тельное* анимации в (Время начала) и End Time (Время окончания). Этот счетчик связан ^^ЗШШ^^ШШИ^^^!^^! со счетчиками End Time СВоемя . окончания) и Frame Count (Число Йя1 номер |Щ1|^^^| кадров). Когда изменяется зпачеЬп^воЙ~Гн^||ёЩЩЩщ^^ пне в одном из них, автоматически изменяется значение н nnvnixвать курсор, тО:6удут;мен Я тьсЯ:Найеракад-, ше в других, ров ин|ал||||||1 ШЩирПри Этом
Frame Count (Число кадров) -
-возле /КУРШШ'М* ШШ»\Ю^Я'.::-'
ччлает количество калппв кот кото подсказка, .например : ;End tlme::220i (Время V задает коли ICCTBQ кадров,
рое будет визуализироваться. Это число всегда па единицу больше продолжительности временного сегмента анимации. Данный счетчик связан со счетчиками End Time (Время окончания) и Length (Продол-
Настройка временных интервалов
27
жительность). Когда изменяется значение в одном из них, автоматически изменяется значение в других; о Current Time (Текущее время) — позволяет установить текущее время анимации; о Re-Scale Time (Сменить масштаб времени) — вызывает окно диалога Re-Scale Time (Смена масштаба времени), где можно изменить масштаб времени активного сегмента анимации, задав новые значения параметров Start Time (Время начала), End Time (Время окончания) и Length (Продолжительность). Масштабирование шкалы времени производится за счет пропорционального сжатия или растяжения интервалов между ключами анимации в пределах сегмента, для которого указываются новая продолжительность или новые значения моментов начала и окончания. Таким образом, увеличение длительности времени анимации в этом окне ведет к замеделению действия анимации, а укорочение длительности — к ускорению действия анимации. Пусть, к примеру, имеется анимация длительностью в 100 кадров, в которой созданы ключи анимации в кадрах 0, 50 и 100. Чтобы замедлить действие этой анимации в два раза, увеличим ее продолжительность до 200 кадров, указав число 200 в счетчике End Time (Время окончания) окна диалога Re-Scale Time (Смена масштаба времени). При этом ключи анимации пропорционально сместятся по шкале времени и окажутся в кадрах 0, 100 и 200. 6. Установите, как будут действовать кнопки управления анимацией Previous Key (Предыдущий ключ) и Next Key (Следующий ключ) в режиме отслеживания ключей анимации, включаемом кнопкой Key Mode Toggle (Включить/выключить режим ключей), используя флажки раздела Key Steps (Шаги ключей): о Use TrackBar (Использовать строку треков) — щелчок на одной из кнопок Previous Key (Предыдущий ключ) или Next Key (Следующий ключ) будет вызывать переход к очередному ключу анимации, представленному на строке треков. Все остальные флажки данного раздела становятся доступными, только когда этот флажок сброшен; о Selected Objects Only (Только выделенные объекты) — в режиме отслеживания ключей щелчок на одной из кнопок Previous Key (Предыдущий ключ) или Next Key (Следующий ключ) будет вызывать переход к предыдущему или следующему кадру, содержащему ключ преобразования положения, поворота или масштаба для выделенного объекта. Если данный флажок сброшен, то 3ds max будет выполнять переход к предыдущему или следующему кадру, содержащему ключ преобразования любого объекта сцены; о Use Current Transform (Использовать текущее преобразование) — при установке этого флажка программа в режиме отслеживания ключей также будет обеспечивать переход к очередному кадру с ключом, назначенным выделенному объекту и являющимся ключом текущего преобразования, выбранного на панели инструментов. Если данный флажок сброшен, становятся доступными флажки Position (Положение), Rotation (Поворот) и Scale (Масштаб) в нижней части окна диалога, с помощью которых можно явно указать типы ключей преобразований для перехода.
28
Глава 1. Анимация трехмерных сцен
Создание и воспроизведение анимации Простейшая анимация создается в 3ds max в автоматическом режиме с помощью средств управления анимациями, рассмотренных выше, — ползунка таймера анимации, кнопок управления воспроизведением анимаций и кнопки Auto Key (Автоключ). Режим принудительной анимации, реализуемый при нажатой кнопке Set Key (Задать ключ), требует определенной подготовительной работы, которая окупается большей простотой и производительностью самого процесса анимации. С этим режимом вы познакомитесь в разделе «Режим принудительной анимации». После того как базовая анимация построена, можно переходить к ее редактированию, о чем речь пойдет ниже в разделе «Редактирование ключей анимации в строке треков».
Создание базовой анимации методом ключей в автоматическом режиме Для создания базовой анимации в автоматическом режиме в общем случае необходимо выполнить следующие действия: 1. Приведите объекты сцены, включая источники света и камеры, материалы и эффекты внешней среды, в состояние, которое они должны иметь на момент начала анимации. Убедитесь, что текущим является кадр 0. Все объекты в 3ds max по умолчанию имеют кадр 0 в качестве первого ключевого кадра, определяющего их начальные состояния при анимации. Определите и задайте частоту кадров и число кадров анимации, исходя из ее требуемой продолжительности, используя окно диалога Time Configuration (Настройка временных интервалов). Например, если анимация должна длиться 3 секунды при типовой частоте 30 кадров в секунду, то общее число кадров в анимации составит 90. Принятое по умолчанию число кадров 100 соответствует анимации продолжительностью около 3,3 секунды. 2. Щелкните на кнопке Auto Key (Автоключ), чтобы активизировать режим анимации. Кнопка и строка ползунка таймера анимации иодсветятся темно-красным цветом, а рамка вокруг активного окна проекции также изменится с желтой на темно-красную, что указывает па пребывание 3ds max в режиме автоматической анимации. Перемещая ползунок таймера анимации, установите в качестве текущего кадр, в котором должно совершиться какое-то действие (это будет ключевой кадр). Измените состояние сцены, например переместите или поверните один или несколько объектов, источник света или камеру, измените размер или масштаб объекта, яркость источника света, цвет, прозрачность, иную оптическую характеристику материала или, скажем, фазу и плотность тумана. При изменении любых параметров положения, поворота, масштаба или формы геометрических моделей, модификаторов объектов, характеристик материалов, источников света или эффектов внешней среды, а также других
Создание и воспроизведение анимации
29
параметров, поддающихся анимации, 3ds max автоматически выполняет следующие действия:
?
п т т я ч п э и я р т rmwvfMnvPMniuv пяпя о назначает анимируемому параметру контроллер, принятый для данного параметра по умолчаНИКУ
^^вкадреЮ для зЗпомш
о создает ключ анимации в кадре О для запоминания начального значения параметра;
ЗАМЕЧАНИЕ 1||р||ЩЩ^^
'|
:
'Йабота|о.;фздаЭД^^^
.|
ssm а ;. ц к^\ш^ и т "ДИ зАМЕЧАНИ Е
"жие;
о создает другой ключ в текущем ключевом кадре для хранения нового значения параметра. 3. Для создания новых ключей ани- у ме отображения, мации установите в качестве текущего новый ключевой кадр и повторите действия, описанные в предыдущем пункте. Продолжайте аналогичные действия, пока не будут настроены все необходимые ключи анимации во всех ключевых кадрах. Снова щелкните па кнопке Auto Key (Автоключ), чтобы выключить режим автоматической анимации. Базовая анимация создана. Основываясь па установленных ключах и назначенных по умолчанию котроллерах „j- 7 анимации, 3ds max рассчитает значения апимируемых параметров для всех промежуточных кадров. Создав базовую анимацию, можно:
ЗАМЕЧАНИЕ
1
Для анимации простых в е д р щ р З В Н О М е :
•-':'^|1Щ||ШШи''-ос^^1Ш1 W;|o^piia^i(ifi^i:kr|^§
D просмотреть анимацию непосредственно в окне проекции в режиме как тонированного, так и каркасного отображения, с использованием упрощенного интерактивного визуализатора; D создать, сохранить в виде файла и просмотреть эскиз анимации, создаваемый с использованием интерактивного визуализатора; О продолжить настройку параметров анимации с использованием окна диалога Track View (Просмотр треков) или строки треков; D визуализировать анимацию с наилучшим возможным качеством и сохранить результат в виде файла заданного формата.
Пример простейшей анимации в автоматическом режиме Для создания простейшей анимации перемещения объекта-примитива выполните следующие действия: 1. Перезагрузите 3ds max и создайте в окне проекции Тор (Вид сверху) объект-примитив Sphere (Сфера) радиусом порядка 60 см. Установите флажок
Глава 1. Анимация трехмерных сцен
30
Base To Pivot (Точка опоры внизу), чтобы сфера касалась координатной плоскости окна в точке своего нижнего полюса. Переместите сферу в точку с координатами (-1000 см; 2000 см; 0 см). Активизируйте окно проекции Perspective (Перспектива), поверните плоскость проекции и измените масштаб отображения, чтобы окно выглядело, как на рис. 1.11.
11Ш111Ю Первый кадр простейшей анимации
2. Убедитесь в том, что текущим является кадр 0 (на ползунке таймера анимации должна быть видна надпись 0/100). Включите режим анимации, щелкнув на кнопке Auto Key (Автоключ). Кнопка, строка ползунка таймера и рамка окна Perspective (Перспектива) окрасятся в темно-красный цвет. 3. Установите в качестве текущего кадр 100, перетащив ползунок вправо до появления на нем надписи 100/100. С этой же целью можно щелкнуть на кнопке Go to End (Перейти в конец).
Рис. 1.12.
Последний кадр простейшей анимации (режим анимации включен)
31
Создание и воспроизведение анимации
4. Переместите сферу в точку (100; -300; 0), как показано на рис. 1.12. Снова щелкните па кнопке Auto Key (Автоключ), чтобы выключить режим анимации. Это все! Анимация из 100 кадров готова. Обратите внимание на появление двух ключей анимации в виде красных квадратиков в начале и конце строки треков. В тех случаях, когда анимация касается перемещения объектов, в целях отладки движений можно сделать видимой линию траектории перемещения объекта в процессе анимации (рис. 1.13). Для этого следует выделить объект и щелкнуть на кнопке Trajectories (Траектории), расположенной на командной панели Motion (Движение) под списком Selection Level (Уровень выделения). Сама траектория изображается пунктирной линией красного цвета, а ключи анимации отмечаются на ней маркерами в виде белых квадратиков. Белыми точками отмечаются положения объекта в промежуточных кадрах.
Линия траектории перемещения шара
Просмотр анимации в окне проекции Для воспроизведения готовой анимации и просмотра ее в окне проекции выполните следующие действия: 1. Активизируйте нужное окно проекции. 2. Установите в качестве текущего начальный кадр анимации (кадр 0), перетащив ползунок таймера анимации до упора влево или щелкнув на кнопке Go to Start (Перейти в начало) в группе кнопок управления И анимацией. 3. Щелкните на кнопке Play Animation (Воспроизведение анимации), чтобы начать воспроизведение анимации в активном окне проекции. Анимация будет циклически повторяться раз за разом, пока вы ее не остановите, щелкнув на кнопке Stop (Стоп), в которую превращается после запуска анимации кнопка Play Animation (Воспроизведение анимации). Можно просмотреть анимацию только выделенных объектов, если задержать курсор на кнопке Play Animation (Воспроизведение анимации) при нажатой кнопке мыши, чтобы раскрылась панель инструмента с дополнительной
CD
Глава 1. Анимация трехмерных сцен
32
кнопкой Play Selected (Воспроизведение анимации выделенных объектов), перетащить курсор на эту кнопку и отпустить кнопку мыши. Можете попробовать режим покадрового воспроизведения, управляя им кнопpg^ i ками Next Frame (Следующий кадр) и Previous Frame (Предыду- • щий кадр). 4. Щелкните на кнопке Key Mode Toggle (Переключатель режима ключей), щ&д чтобы переключить 3ds max в режим отслеживания ключей анимации. Если в этом режиме щелкнуть на кнопке Next Key (Следующий ключ) Щ| или Previous Key (Предыдущий ключ), произойдет переход к очередному 'J^Jj кадру, содержащему ключ анимации выделенного объекта. Когда 3ds max воспроизводит анимационную последовательность в окне проекции, он пытается делать это с максимальной скоростью при наилучшем качестве тонирования изображения. Если из-за ограниченной производительности процессора скорость анимации снижается при :,: этом ниже определенного порога, для ее ЗАМЕЧАНИЕ и повышения 3ds max переходит к менее i качественному 1режиму тонирования " £ ной деградации производится на вклщке;» объектов. Чтобы запретить ухудшение качества отображения сцены в активном |; | ЦИя) окна -диалога'; Viewport Copf iguration | окне проекции, активизируйте в меню Views (Проекции) команду-переключа«ль Adaptive Degradation Toggie (Адаптивная деградация вкл.).
Режим принудительной анимации Режим принудительной анимации, включаемый кнопкой Set Key (Задать ключ), введен для того, чтобы аниматоры могли иметь полный контроль над тем, ключи каких параметров и каких объектов будут создаваться в каждом ключевом кадре.
Использование режима анимации Set Key Чтобы научиться создавать ключи анимации вручную в режиме Set Key (Задать ключ), создайте или загрузите трехмерную сцену, предназначенную для анимации.
Выбор анимируемых параметров Укажите программе, для каких параметров следует устанавливать ключи анимации в принудительном режиме. Для этого щелкните на кнопке Key Filters (Фильтры ключей), чтобы вызвать появление окна диалога Set Key Filters (Фильтры выбора ключей), показанного ранее на рис. 1.4. и еще раз приведенного на рис. 1.14. С помощью флажков окна укажите категории ключей анимации, которые будут создаваться в режиме Set Key (Задать ключ). Окно содержит следующие флажки: О A l l (Все) — будут созданы ключи всех возможных параметров анимации; П Position (Положение), Rotation (Поворот), Scale (Масштаб) — включают режим установки ключей трех стандартных преобразований;
Режим принудительной анимации
33
ЗШ111| Фрагмент окна 3ds max ТОО с раскрытым окном Set Key Filters
П IK Parameters. (IK-параметры) - активизирует установку ключей обратной кинематики (IK - Inverse Kinematics); D Object Parameters (Параметры объекта) - активизирует установку ключей характеристических параметров объектов, присваиваемых им в момент создания, таких как радиус сферы, длина, ширина и высота параллелепипеда D Custom Attributes (Специальные атрибуты) - активизирует установку ключей анимации параметров, настраиваемых с помощью заказных элементов управшя, которые могут создаваться пользователем на командной панели; П M o d i f i e r s (Модификаторы) - активизирует установку ключей анимации действия модификаторов; - активизирует установку ключей анимации материаП Other (Прочие) - обеспечивает установку ключей таких параметров апимируемых объектов, которые не попадают в остальные категории окна Set Key Filters (Фильтры выбора ключей). Закройте окно Set Key Filters (Фильтры выбора ключей), щелкнув на кнопке с крестиком на правом краю заголовка этого окна.
Выбор дополнительных параметров для принудительной установки ключей Разумеется, параметров, допускающих анимацию, в 3ds max гораздо больше чем флажков в окне диалога Set Key Filters (Фильтры выбора ключей). При необходимости более детального выбора анимируемых параметров (или треков, как их
34
Глава 1. Анимация трехмерных сцен
принято называть в документации 3ds max), следует сделать это с помощью окна диалога Track View — Curve Editor (Просмотр треков — Редактор кривых). Чтобы раскрыть это окно, нужно щелкнуть на кнопке Curve Editor (Open) (Редактор кривых (открыть)) главной панели инструментов 3ds max. Подробнее об инструментах появляющегося при этом окна диалога Track View — Curve Editor (Просмотр треков — Редактор кривых) вы узнаете позже, прочитав раздел «Окно диалога Track View» этой главы. Пока же следует просто щелкнуть на кнопке Show Keyable Icons (Показать анимируемые треки) панели инструментов окна. В результате этого в левой части окна редактора кривых слева от наименований всех параметров, допускающих анимацию, появятся значки в виде ключиков красного цвета, как показано на рис. 1.15. Такими значками обозначаются все треки анимации, для которых будут устанавливаться ключи в режиме Set Key (Задать ключ). Показать анимируемые треки
Рис. 1,15. Значки в виде ключиков красного цвета указывают треки анимируемых параметров в левой части окна диалога Track View — Curve Editor
Чтобы отменить установку ключей для того или иного трека, щелкните на значке ключика слева от имени нужного параметра. Значок примет вид перечеркнутого ключика черного цвета, такого же, как на кнопке Show Keyable Icons (Показать анимируемые треки), как показано на рис. 1.16. Чтобы скрыть значки в виде ключиков, следует еще раз щелкнуть на упомянутой кнопке.
Выбор анимируемых объектов Теперь укажите программе, для каких объектов трехмерной сцены будут устанавливаться ключи анимации в принудительном режиме. Это делается при помощи раскрывающегося списка, расположенного правее кнопки Auto Key (Автоключ). По умолчанию в списке выбирается вариант Selected (Выделенные), в соответствии с которым ключи будут создаваться для всех выделенных объектов сцены. Однако в принудительном режиме для создания ключей анимации не обязательно выделять объекты.
Режим принудительной анимации
35
tlMfx]
Track View - Curve Editor Modes
Settings
Display
Controller
Tracks
Keys
Curves
:
Utilities
ШШ Для трех треков Rotation и трека Scale выключен режим установки ключей вручную, на что указывают значки в виде перечеркнутых ключиков
Создайте именованный выделенный набор, включающий в себя все объекты сцепы, для которых должны создаваться ключи анимации в принудительном режиме. Например, при анимации нацеленной камеры в набор можно включить саму камеру и ее мишень, при анимации движений йог персонажа с использованием контроллеров обратной кинематики — таз персонажа и два перекрестья контроллеров и т. п. Выделите нужные объекты и введите в текстовое поле Named Selection Sets (Именованные выделенные наборы) главной паЗАМЕЧАНИЕ нели инструментов имя нового набора, к примеру Animation_Set1. Нажмите ^создавать ' в ;.3ds| ma*; И: клавишу Enter. :
румента Named |
Же выделенные Теперь раскройте список, расположенный правее кнопки Auto Key (Автоключ), -.««.^^ижм^щщ •=.-.-, и выберите в нем появившееся имя набора, как показано на рис. 1.17. После этого можно отменить выделение объектов в окнах проекций. Ключи анимации все равно будут создаваться, так как объекты входят в именованный набор, указанный в списке.
Лисили Имена наборов выделенных объектов сцены, созданных при помощи средств главной панели инструментов, появляются в списке после строки Selected
Создание ключей анимации в принудительном режиме Подготовительная работа завершена, теперь можно переходить к анимации. Приведите все объекты сцепы в их исходные состояния. Щелкните на кнопке Set Key (Задать ключ). Кнопка зафиксируется и подсветится темно-красным цветом,
36
Глава 1. Анимация трехмерных сцен
указывая на то, что 3ds max находится в режиме принудительного создания ключей анимации. Установите ползунок таймера анимации на отметку нулевого кадра. Помните о том, что в режиме Set Key (Задать ключ), в отличие от режима Auto Key (Автоключ), ключи анимации не создаются в нулевом кадре автоматически, так что это нужно обязательно сделать вручную. Щелкните на большой кнопке Set Keys (Задать ключи) с изображением ключа, чтобы установить в нулевом кадре анимационные ключи, фиксирующие значения параметров анимируемых объектов, выбранных с помощью окон диалога Set Key Filters (Фильтры выбора ключей) и Track View — Curve Editor (Просмотр треков — Редактор кривых). Кнопка на мгновение подсвечивается красным цветом, но не фиксируется. Обратите внимание на то, что если вы отменили выделение анимируемого объекта, то не увидите появления значка ключей в виде квадратика в строке треков. Продолжайте настройку анимации и принудительное создание ключей. Для этого переместите ползунок таймера к отметке следующего ключевого кадра, внесите необходимые изменения в сцену и снова щелкните на большой кнопке Set Keys (Задать ключи) с изображением ключа. В текущем кадре будут опять созданы анимационные ключи на всех треках анимации, выбранных с помощью окна диалога Set Key Filters (Фильтры выбора ключей) и Редактора кривых. Завершив анимацию, выключите режим принудительного создания ключей, щелкнув на кнопке Set Key (Задать ключ).
Пример анимации в принудительном режиме Проиллюстрируем рассмотренный общий порядок принудительного создания ключей на примере, развивающем анимацию движущейся сферы, рассмотренную ранее в разделе «Пример простейшей анимации в автоматическом режиме». Предположим, что сфера изображает летящий по небосводу воздушный шар. Пусть у этого шара в 50-м кадре началась утечка воздуха, так что он стал резко терять в объеме и форма его из гладкой и округлой постепенно стала угловатой. Выполните следующие действия: 1. Выполните действия по анимации движения примитива-сферы в автоматическом режиме, описанные в этой главе ранее в разделе «Пример простейшей анимации в автоматическом режиме». Для наглядности увеличьте радиус сферы до 180 см. Выключите режим автоматической анимации. Установите в качестве текущего кадр 0. 2. Укажите программе, для каких объектов следует устанавливать ключи при помощи раскрывающегося списка, расположенного правее кнопки Auto Key (Автоключ). По умолчанию в списке выбирается вариант Selected (Выделенные), в соответствии с которым ключи будут создаваться для всех выделенных объектов сцены. Так как объект в данной сцене всего один, достаточно было бы его выделить. Однако в учебных целях создадим именованный выделенный набор.
Режим принудительной анимации
37
3. Создайте именованный выделенный набор, включающий в себя единственный объект сцепы — примитив SphereOL Выделите сферу и введите в текстовое поле Named Selection Sets (Именованные выделенные наборы) главной панели инструментов имя набора, например Vozdushniy shar. Нажмите клавишу Enter. 4. Раскройте список, расположенный правее кнопки Auto Key (Автоключ), и выберите в нем появившееся имя набора Vozdushniy shar. Теперь можно отменить выделение сферы в окнах проекций. Ключи анимации все равно будут создаваться, так как сфера входит в именованный набор, указанный в списке. 5. Укажите, для каких параметров сферы следует создавать ключи анимации. С этой целью щелкните на кнопке Key Filters (Фильтры ключей). В появившемся окне диалога Set Key Filters (Фильтры выбора ключей) сбросьте установленные по умолчанию флажки Rotation (Поворот) и Scale (Масштаб), которые обеспечивают создание ключей трех стандартных преобразований, и флажок IK Parameters (IK-параметры), который активизирует установку ключей обратной кинематики. Не сбрасывайте флажок Position (Положение). Установите флажок Object Parameters (Параметры объекта), активизирующий установку ключей характеристических параметров объектов, присваиваемых им в момент создания, таких как радиус и число сегментов Сферы, длина, ширина и высота параллелепипеда и т. п. Закройте окно Set Key Filters (Фильтры выбора ключей), щелкнув на кнопке с крестиком на правом краю заголовка этого окна. 6. Переходите к анимации. Щелкните на кнопке Set Key (Задать ключ). Кнопка зафиксируется и подсветится светло-красным цветом, указывая на то, что 3ds max находится в режиме принудительного создания ключей анимации. 7. Так как по сценарию не планируется изменять параметры сферы на интервале от нулевого кадра до кадра 50, можно обойтись без установки ключей в кадре 0. Установите ползунок таймера анимации па отметку кадра 50. Щелкните на большой кнопке Set Keys (Задать ключи) с изображением юно- р ча, чтобы установить в этом кадре анимационные ключи, фиксирующие значения характеристических параметров сферы, выбранных с помощью окна диалога Set Key Filters (Выбор фильтров ключей). Кнопка на мгновение подсветится красным цветом. Обратите внимание па то, что если вы отменили выделение аиимируемого объекта, то не увидите появления значка ключей в виде квадратика в строке треков. 8. Переместите ползунок таймера к отметке кадра 100. Уменьшите значение радиуса сферы, скажем, до 60 см. Измените число в счетчике Segments (Сегментов) с 32 до 8, чтобы придать оболочке сдувающегося шара угловатый вид. Снова щелкните на кнопке Set Keys (Задать ключи). Обратите внимание на появление красных угловых скобочек вокруг стрелок всех счетчиков, имеющихся в свитке параметров сферы на панели M o d i f y (Изменить). Такие скобочки всегда появляются вокруг стрелок счетчиков тех параметров, которые подвергнуты анимации.
38
Глава 1. Анимация трехмерных сцен
9. Выключите режим анимации, щелкнув па кнопке Set Key (Задать ключ). Воспроизведите анимацию в окне проекции 3ds max и наблюдайте за тем, как импровизированный воздушный шар, начиная с середины интервала анимации (рис. 1.18, а), теряет в объеме и становится все более угловатым (рис. 1.18, б).
РИС.Ш; У шара во второй половине анимации уменьшаются радиус и число сегментов оболочки: а — кадр 50; б — кадр 100
В разделе «Просмотр анимации в окне проекции» описано, как просматривать анимацию в окнах проекций. На деле цель создания анимации состоит в том, чтобы сохранить ее в виде файла, который можно просматривать уже независимо от программы 3ds max, стандартными средствами системы Windows. В виде таких файлов формата avi, часто называемых видеоклипами, можно сохранять как анимации, визуализированные с итоговым чистовым качеством, так и эскизы анимаций.
Создание и просмотр эскизов анимаций Эскиз анимации для предварительного просмотра создается с помощью интерактивного визуализатора и представляет собой упрощенную версию окончательного варианта, формируемого сканирующим визуализатором. Чаще всего эскизы анимаций создаются для контроля качества движений объектов сцены, так как
39
Создание и просмотр эскизов анимаций
эскиз воспроизводится с той же скоростью, что и чистовой вариант визуализированной анимации. В эскизе анимации могут наблюдаться эффекты освещения и прозрачности, а также текстуры материалов объектов, хотя и в существенно упрощенном виде. Для итогового тестирования освещения сцены, эффектов прозрачности или качества материалов следует выполнять полную визуализацию отдельных кадров анимации. Для создания, просмотра и переименования эскизов анимаций используются три команды меню A n i m a t i o n (Анимация): Make Preview (Создать эскиз), View Preview (Просмотреть эскиз) и Rename Preview (Переименовать эскиз).
Создание эскиза анимации Для создания эскиза анимации активизируйте окно проекции, подлежащее визуализации. Выберите команду меню Animation > Make Preview (Анимация > Создать эскиз). Появится окно диалога Make Preview (Создать эскиз), показанное на рис. 1.19.
Окно диалога Make Preview
Задайте диапазон кадров для создания эскиза анимации, установив переключатель в разделе Preview Range (Интервал эскиза) в одно из двух положений: Active Time Segment (Активный временной сегмент) или Custom Range (Выборочный интервал). При использовании выборочного диапазона задайте начальный и конечный номера кадров в двух счетчиках иод переключателем Custom Range (Выборочный интервал).
40
Глава 1. Анимация трехмерных сцен
Задайте частоту кадров эскиза анимации с помощью параметров раздела Frame Rate (Частота кадров): П Every Nth Frame (Каждый N-й кадр) — задает интервал выборки кадров анимации для включения в эскиз (результат визуализации будет содержать каждый N-й кадр анимации); D Playback FPS (Скорость воспроизведения) — частота кадров при воспроизведении эскиза анимации (в кадрах в секунду). Задайте разрешающую способность эскиза анимации в разделе Image Size ЗАМЕЧАНИЕ (Размер изображения). Для этого укажите в счетчике Percent of Output (Про- ;У (Каждый цент результата) процентную долю разтый кадр анимаццй^а скорость воспряв решения эскиза от разрешения выходного изображения, заданного в разделе т Output Size (Размер кадра) окна диалоа га Render Scene (Визуализация сцены). 1 Ш 1 ! Ш Ш 1 1 1 1 1 Ш ' Так, если выходное изображение имеет разрешение 640x480 пикселов, а в счетчике Percent of Output (Процент результата) указано 50, то разрешение эскиза будет составлять 320x240 пикселов. Эта величина указывается в поле параметра Resolution (Разрешение). Укажите типы объектов, которые следует включать в эскиз анимации, используя флажки группы Display in Preview (Показывать в эскизе): Geometry (Геометрию), Shapes (Формы), Lights (Осветители), Cameras (Камеры), Helpers (Вспомогательные объекты), Space Warps (Объемные деформации), Particle Systems (Системы частиц), Active Grid (Активную сетку), Safe Frames (Области сохранения), Frame Numbers (Номера кадров), Background (Фон), Bone Objects (Объекты-кости). Выберите в раскрывающемся списке Rendering Level (Уровень качества визуализации) уровень качества визуализации объектов в эскизе анимации: Smooth + Highlights (Сглаживание + блики), Smooth (Сглаживание), Facets + Highlights (Грани + блики), Facets (Грани), Lit Wireframes (Освещенные каркасы), Wireframe (Каркасы), Bounding Box (Габаритные контейнеры). Анимация будет воспроизведена с выбранным качеством, а не ....... .....ав;Ш|1 ...... ; ......я ...... , ......Ш ........ с тем, какое установлено в окне про^ д м Е чд н и Е екции. о;::Ч1
При необходимости воспроизведения | -мари йржно/вдадать , какого-то из многопрогонных эффек- !жщь|е тов наподобие смаза, вызванного дви, : вспомогатеПьные-об'Ье! жеиием, или конечной глубины рез- й:сетки,:Ьбъ^нйе дефор; кости снимка, установите в разделе Camera View (Проекция камеры) флажок Use Multi-Pass Camera Effect (Ис- i «ак лросщзаписанный в ^ ВОСПРСФ пользовать многопрогонныи эффект ка- йцйи ads тах ! ^ШШШ:;'; меры).
а н Г
ектыЩ|Р
адУШг
о^быШ"
^qf:
:не проёШШ
41
Создание и просмотр эскизов анимаций
Задайте тип выходного файла или устройства с помощью переключателя раздела Output (Выходной результат): П AVI — эскиз будет записан в файл _scene.avi в формате «Видео для Windows». Щелкните па кнопке Choose Codec (Выбрать алгоритм сжатия), чтобы выбрать алгоритм сжатия выходного файла в появившемся окне диалога. Выберите в раскрывающемся списке Compressor (Программа сжатия), например, вариант Cinepak Codec by Radius, установите ползунок параметра Compression Quality (Качество сжатия) на отметку 75-80 и щелкните на кнопке ОК; D Custom File Type (Специальный тип файла) — позволяет выбрать тип выходного файла в окне диалога, появляющемся после щелчка на кнопке Create (Создать); П Use Device (Применить устройство) — позволяет записать эскиз анимации на внешний накопитель, подобный цифровой видеокамере, тип которого можно выбрать после щелчка на кнопке Choose Device (Выбрать устройство). Для запуска процесса генерации эскиза щелкните на кнопке Create (Создать). Визуализация эскиза производится в окне в средней части экрана 3ds max, а в нижней части экрана появляется прогресс-индикатор Creating Preview (Создание эскиза), как показано па рис. 1.20.
Edit .Ipote
Groi*
Views
Create
Modifiers
i
Character
rea View Preview (Анимация > Просмотреть эскиз). 3ds max запустит приложение Media Player (Универсальный проигрыватель) системы Windows и начнет воспроизведение того эскиза анимации, который был сформирован последним. Команда доступна, если в папке \Previews, вложенной в папку с программным обеспечением 3ds max, имеется файл эскиза анимации, именуемый по умолчанию _scene.avi. Управляйте воспроизведением эскиза с помощью кнопок приложения Media Player (Универсальный проигрыватель).
Переименование эскиза анимации По умолчанию файл эскиза анимации сохраняется под именем _scene.avi в папке \Previews, вложенной в папку с программным обеспечением 3ds max. Переименование позволяет избежать записи нового файла эскиза поверх предыдущего. С этой целью выберите команду меню Animation > Rename Preview (Анимация > Переименовать эскиз) и переименуйте файл эскиза в окне диалога Save Preview As (Сохранить эскиз как).
Визуализация анимаций Процесс визуализации анимации отличается от визуализации отдельного статичного кадра сцены только количеством повторений циклов синтеза изображений отдельных кадров. Тем не менее, чтобы визуализировать анимацию, необходимо выполнить настройки некоторых параметров в окне диалога Render Scene (Визуализация сцены). Перед визуализацией созданной анимации активизируйте окно проекции, в котором будет производиться итоговая визуализация. Настройте параметры визуализации. Для этого щелкните на кнопке Render Scene (Визуализировать сцену) главной панели инструментов. В появившемся окне
43
Визуализация анимаций
диалога Render Scene (Визуализация сцены) установите переключатель в разделе Time Output (Интервал вывода) вкладки Common (Общие настройки) в положение Active Time Segment (Активный временной сегмент). В разделе Output Size (Размер кадра) укажите размер кадра анимации в пикселах. Чтобы визуализированные кадры не пропали (но умолчанию изображения выводятся только в окно визуализированного кадра), щелкните на кнопке Files (Файлы) в разделе Render Output (Вывод визуализации), выберите формат выходного файла тина .avi и задайте для него имя. Щелкните на кнопке Save (Сохранить). Появится окно диалога для выбора кодека сжатия видеозаписи, вид и наименование которого зависят от набора установленных кодеков (см. далее раздел «Выбор кодека для записи анимации»). Выбрав кодек, закройте окно диалога Render Scene(Визуализировать сцену). Запустите процесс визуализации, щелкнув на кнопке Quick Render (Быстрая визуализация) главной панели инструментов, и наблюдайте синтез одного кадра за другим. По завершении визуализации перейдите в пайку, в которой сохранялся файл анимации, и дважды щелкните па имени сохраненного файла, чтобы воспроизвести его для просмотра.
Выбор кодека для записи анимации Оптимальный выбор программы компрессии-декомпрессии видеозаписи, называемой кодеком, является сложной проблемой, решение которой зависит от вида и состава цветовой палитры визуализируемых изображений, скорости смены обстановки в кадре и многих других обстоятельств. Кроме того, выбор кодека осложняется большим числом существующих программ компрессии-декомпрессии. К примеру, в раскрывающемся списке Compressor (Программа сжатия) окна диалога AVI File Compression Setup (Настройка сжатия файлов AVI) (рис. 1.21), которое появляется после щелчка па кнопке Save (Сохранить) в окне задания имени файла анимации, если на компьютере установлен пакет кодеков K-Lite Codec Pack, содержится около 30 программ компрессии-декомпрессии. AVI File Compression Setup
Рис. 1.21. Окно диалога AVI File Compression Setup
44
Глава 1. Анимация трехмерных сцен
Рассмотрим лишь несколько вариантов из списка Compressor (Программа сжатия) окна диалога AVI File Compression Setup (Настройка сжатия файлов AVI): П Uncompressed (Без сжатия) — обеспечивает наилучшее качество изображения видеозаписи, которая при этом может занять несколько десятков или даже сотен мегабайт дисковой памяти. К примеру, файл простейшей анимации летящей сферы на фоне неба продолжительностью 100 кадров при размере кадра 320x240 занимает при отсутствии сжатия около 30 мегабайт. При воспроизведении подобных файлов может наблюдаться «замораживание» изображения и пропуск кадров из-за нехватки производительности компьютера. По этой причине подобные несжатые файлы практически невозможно воспроизводить с компакт-диска; D Microsoft Video 1 — этот кодек является достаточно старым и обеспечивает довольно низкое качество изображения визуализируемой анимации. Вместо плавного изменения оттенков раскраски цветовых областей на экране при воспроизведении может наблюдаться эффект ступенчатой смены оттенков, приводящий к появлению полосатости раскраски. Края изображений объектов размазываются, вдоль краев проявляются артефакты в виде многочисленных квадратных участков однородного цвета. Неоспоримым достоинством этого кодека является, однако, то, что он входит в комплект операционной системы Windows. В связи с этим можно гарантировать, что файлы анимации, визуализированные с применением этого кодека, будут воспроизводиться на любом компьютере с такой операционной системой. При выборе этого кодека следует устанавливать ползунок Q u a l i t y (Качество) в окне диалога AVI File Compression Setup (Настройка сжатия файлов AVI) в положение 75-85; П DivX — семейство данных кодеков обеспечивает очень высокую степень сжатия видеозаписи и вполне удовлетворительное качество изображения. Недостатком является то, что для воспроизведения файла анимации на каком-то компьютере требуется, чтобы па нем обязательно был установлен данный кодек. При выборе одного из кодеков DivX щелкните на кнопке Setup (Настройка), чтобы вызвать окно настройки, рассмотрение параметров которого выходит за рамки данной книги.
Визуализация анимации в виде набора статических кадров Одним из вариантов улучшения качества изображения анимации является визуализация ее в виде набора отдельных статических кадров, каждый из которых сохраняется в отдельном файле. На жаргоне такой способ называется «рендерингом в секвенцию». При сохранении каждого визуализированного кадра используется формат, не приводящий к потере качества изображения, например формат TIFF без компрессии. Полученный набор статически кадров затем монтируется в файл видеоролика с помощью любого стандартного редактора видеоклипов наподобие Adobe Premier. На этапе монтажа можно многократно экспериментировать с выбором кодеков, добиваясь требуемого качества результата.
Просмотр анимаций с помощью модуля RAM Player
45
Подобный монтаж можно выполнить и с использованием модуля Video Post (Видеомонтаж) программы 3ds max. Порядок монтажа последовательности кадров с записью результатов в файл анимации типа avi рассмотрен в главе 5 «Видеомонтаж». Сохранение каждого кадра визуализируемой анимации в отдельный файл производится автоматически, если в качестве типа выходного файла выбран не avi, mov или f Ic, а любой из форматов статических изображений. Имена файлов формируемой последовательности составляются из базового имени, заданного пользователем, и автоматически добавляемого к концу имени четырехзначного номера: 0000, 0001, 0002 и т. д. К примеру, если указать базовое имя файла Scene.tif, то последовательность визуализируемых кадров будет сохраняться в файлы с именами SceneOOOO.tif, Scene0001.tif, Scene0002.tif, Scene0003.tif и т. д. Для визуализации анимации с сохранением результатов в виде последовательности отдельных кадров раскройте окно диалога Render Scene (Визуализация сцены). В свитке Common Parameters (Общие параметры) вкладки Common (Общие настройки) щелкните на кнопке Files (Файлы). В раскрывающемся списке List files of type (Тип файла) появившегося окна диалога Render Output File (Выходной файл визуализации) выберите тип файлов TIF и введите базовое имя последовательности файлов. Щелкните на кнопке Save (Сохранить). Появится окно диалога T I F Image Control (Настройка формата TIF), в котором переключатель Compression Type (Тип сжатия) установите в положение No Compression (Нет сжатия). Щелкните на кнопке ОК. П р и необходимости измените принятое | • . ; •^Ш&Ш&!Ш::'?ШШШ~'''' """"УЯШ по умолчанию значение начального ноЗАМЕЧАНИЕ | мера, с которого начнется нумерация имен файлов, в счетчике File Number Base (База номеров файлов), расположенном в разделе Time Output (Интервал вывода) свитка Common Parameters (Общие параметры). Это бывает необходимо, если визуализация выполняется за несколько приемов, чтобы избежать записи новых файлов поверх старых. К примеру, если в счетчике указать число 100, то имена сохраняемых файлов при базовом имени Scene.tif будут иметь вид: Scene0100.tif, Scene0101.tif, Scene0102.tif.
Просмотр анимаций с помощью модуля RAM Player В 3ds max имеется программный модуль RAM Player (RAM-проигрыватель), обеспечивающий возможность воспроизведения отдельных визуализированных изображений и готовых анимаций, которые с этой целью загружаются в оперативную память (RAM — Random Access Memory, оперативная память). Если при этом объем доступной оперативной памяти недостаточен для загрузки в нее всей анимации целиком, 3ds max автоматически ограничивает число загруженных кадров.
46
Глава 1. Анимация трехмерных сцен
Воспроизведение кадров анимации, загруженных в оперативную память, может осуществляться с максимальной скоростью и качеством, так как не требует подкачки данных с жесткого диска. RAM-проигрыватель имеет два канала воспроизведения, канал А и канал В, в которые можно загрузить две разные анимации.
ЗАМЕЧАНИЕ 1
:
'
• . • . ' . • • . .: •-•- : '
Чтобы просмотреть анимацию с помощью модуля RAM Player (RAM-проигрыватель), выберите в главном меню команду Rendering > RAM Player (Визуализация > RAM-проигрыватель). Появится окно проигрывателя, показанное на рис. 1.22.
Рис. 1.22.
'•• "
' : -'' .- .
' '•' ':•
| ..
" Модуя1ЩЩ;|ЩЩШ|Щ1||и1
"
Окно модуля RAM Player с загруженной анимацией
Щелкните на одной из двух кнопок Open Channel А (Открыть канал А) или Open Channel В (Открыть канал В), расположенных на панели инструментов Hi окна, чтобы вызвать типовое окно диалога выбора файла анимации для воспроизведения. После выбора нужного файла и щелчка на кнопке Open (Открыть) появится окно диалога RAMPIayer Configuration (Конфигурация RAM-проигрывателя), показанное на рис. 1.23. Определите разрешающую способность воспроизводимых изображений или кадров анимации в разделе Resolution (Разрешение): D Width (Ширина), Height (Высота) — задают ширину и высоту кадра загружаемой анимации, позволяя изменить эти величины по сравнению с теми значениями, которые сохранены в файле анимации. Если при этом установить
Просмотр анимаций с помощью модуля RAM Player
47
флажок Lock Aspect Ratio (Сохранять пропорции), то при изменении одного из этих параметров второй будет изменяться автоматически, чтобы обеспечить неизменность пропорций кадра; D Filter Input (Фильтрация на входе) — обеспечивает фильтрацию изображения или анимации при загрузке, так что воспроизведение будет осуществляться с наилучшим возможным качеством. RAM Player Configuration
Р1ЙШ.2-Й Окно диалога RAMPIayer Configuration
Укажите диапазон загружаемых кадров в разделе Frames (Кадры): D Start Frame (Начальный кадр) — задает номер кадра, с которого проигрыватель должен начать загрузку анимации. При этом число 1 означает загрузку с первого из зафиксированных кадров, то есть с кадра 0; П Mum Frames (Число кадров) — задает число кадров, загружаемых в проигрыватель. При необходимости можете ввести ограничение на наибольший объем оперативной памяти, который может использоваться проигрывателем, в счетчике Maximum (Максимум) раздела Memory Usage (Расход памяти). Установите флажок Load Into Other Channels (Загрузить в другие каналы) в разделе Alpha (Альфа-канал), чтобы данные из альфа-канала прозрачности кадров анимации были загружены во второй свободный канал проигрывателя. Закончив настройку конфигурации, щелкните на кнопке ОК. Начнется процесс загрузки кадров анимации, сопровождаемый отображением окна Loading File (Загрузка файла), показанного на рис. 1.24. Loading File
•ШР
Рис. 124, Окно диалога Loading File иллюстрирует ход загрузки анимации
48
Глава 1. Анимация трехмерных сцен
В этом окне диалога имеются три прогресс-индикатора: D Loading Fpame... of... (Загружается кадр... из...) — демонстрирует помер текущего кадра и общее число кадров анимации. Прогресс-индикатор показывает долю загруженных кадров из их общего числа; п Used Memory (Расход памяти) — показывает долю объема использованной памяти из общего объема памяти, выделенной проигрывателю; П Available Memory (Доступная память) — демонстрирует долю выделенной памяти из общего объема оперативной памяти компьютера. Если анимации или статичные изображения будут загружены в оба канала, А и В, то окно отображения будет разделено пополам, как показано на рис. 1.25. Линия раздела обозначается белыми треугольниками по краям отображаемого кадра. Для перемещения границы раздела кадров просто щелкните кнопкой мыши в любом месте кадра и перетаскивайте курсор вместе с границей раздела.
Рис. 1.25. Окно модуля RAM Player с двумя анимациями, загруженными в каналы А и В
После того как загрузка закопчена, используйте для управления окном RAM-проигрывателя следующие инструменты его панели: D Open Last Rendered Image in Cannel А/В (Открыть последнее визуализированное изображение в канале А/В) — вызывает загрузку в окно про- »™ игрывателя последнего изображения сцепы, визуализированного с помощью окна диалога Render Scene (Визуализация сцены). Если визуализация в данном сеансе работы 3ds max не производилась, ничего не будет загружено; П Close Channel А/В (Закрыть канал А/В) — выгружает изображение или «^ анимацию из текущего канала и освобождает оперативную память; Я1
Редактирование ключей анимации в строке треков
49
П Save Channel А/В (Сохранить канал А/В) — обеспечивает сохранение кад- —^ ров, загруженных в проигрыватель, в новый файл, вызывая для этого типовое окно сохранения файлов; D Channel А (Канал A), Channel В (Канал В) — если любая из этих двух кнопок нажата, анимация или статичное изображение из соответствующего капала будет демонстрироваться в окне проигрывателя. При этом окно разбивается на две половины по горизонтали или по вертикали. Линию границы разбиения можно перемещать, как описано выше; D Horizontal/Vertical Split Screen (Разбить экран по горизонтали/по вертикали) — переключает варианты разбиения окна проигрывателя по вер- И! тикали или по горизонтали при загрузке анимаций или изображений в оба капала одновременно; D First Frame (Первый кадр) — обеспечивает перемотку анимации к первому кадру; П Previous Frame (Предыдущий кадр) — обеспечивает переход к предыдущему кадру анимации; el D Playback Reverse (Воспроизведение назад) — включает воспроизведение анимации в обратном направлении; и Playback Forward (Воспроизведение вперед) — включает воспроизведение анимации в прямом направлении; На D Next Frame (Следующий кадр) — обеспечивает переход к следующему кадру анимации; Ин Р Last Frame (Последний кадр) — обеспечивает перемотку анимации к последнему кадру; ™а D раскрывающийся список допустимых частот воспроизведения анимаций; D Double B u f f e r (Двойной буфер) — когда эта кнопка нажата, обеспечивается синхронизация кадров анимаций, демонстрируемых в каналах А и В. Поле образца цвета на правом краю панели инструментов окна проигрывателя демонстрирует цвет пиксела, выбранного в окне просмотра щелчком правой кнопки мыши при нажатой клавише Ctrl.
Редактирование ключей анимации в строке треков Для манипулирования ключами и редактирования их параметров можно использовать несколько инструментов 3ds max: строку треков, окно диалога Track View (Просмотр треков) и командную панель Motion (Движение). В этом разделе рассматриваются приемы работы с ключами с использованием строки треков.
50
Глава 1. Анимация трехмерных сцен
Манипулирование ключами анимации Простейшие виды манипуляций с ключами можно осуществлять, просто перетаскивая их с помощью мыши или пользуясь командами контекстного меню ключа. Рассмотрим эти возможности: 1. Примените к объекту сцены анимацию по методу ключей. Выделите этот объект, чтобы в строке анимации обозначились его ключи анимации. Ключи объекта нумеруются по порядку слева направо. 2. Укажите курсором на один из ключей и, когда курсор примет вид крестика, указывающего на возможность выделения, щелкните кнопкой мыши. Значок ключа в виде цветного квадратика окрасится в белый цвет — ключ выделен. Чтобы выделить одновременно несколько ключей, щелкайте на них при удерживаемой клавише Ctrl. Ключи, как и любые другие объекты, можно выделять с помощью рамки. 3. Для перемещения выделенного ключа по шкале времени щелкните на нем и перетаскивайте вправо или влево, следя за сообщением в строке подсказки, из которого можно узнать номер кадра текущего положения перемещаемого ключа, например Moving key(s) from 0 to 25 (25) (Перемещение ключа из кадра 0 в кадр 25 (25)). В скобках в конце сообщения указывается величина смещения ключа в кадрах. Закончив перемещение, отпустите кнопку мыши и щелкните на строке треков вне ключей, чтобы сбросить выделение ключа. Ключ переместится в новое положение на шкале времени вместе со своими параметрами. 4. Для копирования ключа в ходе перемещения используйте стандартный для 3ds max прием: перетаскивайте ключ при удерживаемой клавише Shift. Копирование ключа также происходит вместе с присвоенными ему параметра- ........ * г, ЗАМЕЧАНИЕ ми анимации. После того как ключ перемещен или скопирован, его па- ! Так как каждый раметры можно изменить с помощью ;Нреков:;можетозначат ; ь::налиние,в данной г точке шкалы времени сразу многих: клюмеи: окна свойств ключа, вызываемого по ; ]*^м^и 1»з^ичШ!объ последующую ани^ацщще нее определенные для данного трека гогпарамётра непосредствен но" в окне про--' ключи анимации будут преобразова' ^MOjifi^^^^^^i^-^^S^^^^^^. ны в соответствии с характеристиками нового контроллера. :
;
:
4. Чтобы сделать новый контроллер принятым по умолчанию, выделите в списке окна диалога Assign...Controller (Назначение контроллера...) имя нужного контроллера и щелкните на кнопке Make Default (Назначать по умолчанию). После этого всем параметрам того же типа, как тот, к которому применяется данный контроллер, при их анимации будет по умолчанию назначаться аналогичный контроллер.
Общие сведения о контроллерах анимации
95
Работа с контроллерами на командной панели Motion Командная панель Motion (Движение) дает доступ лишь к параметрам контроллеров трека Transform (Преобразование). Этому треку могут быть назначены только три типа контроллеров: Position/Rotation/Scale (Положение/Поворот/Масштаб), Link Constraint (Ограничитель Связь) и Transform Script (Сценарий преобразования). В зависимости от выбранного контроллера или ограничителя меняются состав ветвей на дереве трека T r a n s f o r m (Преобразование) и состав свитков на панели Motion (Движение). Для замены контроллера на командной панели Motion (Движение) выполните следующие действия: 1. Выделите объект с анимацией и щелкните на корешке командной панели Motion (Движение). Щелкните на кнопке Parameters (Параметры) в верхней части командной панели. В нижней части панели появится свиток Assign Controller (Назначить контроллер), показанный на рис. 2.3 и демонстрирующий, какие контроллеры или ограничители назначены преобразованиям объекта, а также ряд других свитков, состав которых меняется в зависимости от того, какой тип контроллера преобразований применен к объекту. Например, в качестве контроллера трека Transform (Преобразование) использован контроллер Position/Rotation/Scale (Положение/Поворот/Масштаб), поэтому вторым свитком панели Motion (Движение) является свиток PRS Parameters (Параметры положения/поворота/масштаба). В нижней части этого свитка нажата кнопка преобразования Position (Положение). Контроллером преобразования положения является Position XYZ (Положение по XYZ), что вызывает появление третьего свитка — Position XYZ Parameters (Параметры положения по XYZ). В свою очередь, в этом свитке нажата кнопка X параметра Position Axis (Ось положения). В результате в свитках Key Info (Basic) (Справка о ключах (Базовая)) и Key I n f o (Advanced) (Справка о ключах (Дополнительная)) будет отображаться информация о ключах анимации положения объекта вдоль оси X. 2. Для замены контроллера выделите нужную строку дерева иерархии в окне свитка Assign Controller (Назначить контроллер) и щелкните па кнопке со значком контроллера и вопросительным знаком в левом верхнем углу свитка. В результате появится окно диалога Assign...Controller (Назначение контроллера...), рассмотренное выше и содержащее перечень всех контроллеров, применимых к данному преобразованию. Например, если выделить строку параметра T r a n s f o r m (Преобразование), то в списке окна диалога Assign...Controller (Назначение контроллера...) будет содержаться всего три типа контроллеров: Link Constraint (Ограничитель Связь), Position/Rotation/ Scale (Положение/Поворот/Масштаб) и Transform Script (Сценарий преобразования). Выбор нужного типа контроллера в данном окне диалога или назначение контроллера, используемого по умолчанию, производится так же, как это описано ранее в разделе «Назначение и замена контроллеров в окне Track View».
96
Глава 2. Контроллеры и ограничители анимации
ШЕЯ Ц Sola
Свитки командной панели Motion со средствами выбора и настройки контроллеров
Свитки со средствами управления контроллерами, основанными на ключах анимации, позволяют изменять числовые значения и параметры интерполяции каждого ключа методами, похожими на те, которые реализуются при помощи окна диалога Track View (Просмотр треков). Например, параметры, содержащиеся в свитках Key I n f o (Basic) (Справка о ключах (Базовая)) и Key Info (Advanced) (Справка о ключах (Дополнительная)), полностью идентичны параметрам, представленным в окне диалога Key I n f o (Справка о ключах), вызываемом с помощью меню ключей на строке треков или щелчком правой кнопкой мыши на значке ключа анимации в любой из модификаций окна Track View (Просмотр треков). Если в текущем кадре имеется ключ анимации контроллера, выделенного в свитке Assign Controller (Назначить контроллер), то в свитках параметров этого контроллера будут обозначены числовые характеристики ключа и метода интерполяции его значений. Различные параметры свитков командной панели Motion (Движение) поясняются ниже в разделах, посвященных описанию конкретных типов контроллеров и ограничителей.
97
Общие сведения о контроллерах анимации
Назначение контроллеров с помощью меню Animation Меню Animation (Анимация), подобно командной панели Motion (Движение), также позволяет назначать контроллеры па треки Transform (Преобразование), Position (Положение), Rotation (Поворот) и Scale (Масштаб) объектов. Отличительной особенностью назначения контроллеров с помощью данного меню является то, что они не заменяют собой контроллеры перечисленных треков, принятые по умолчанию, а объединяются с ними с использованием составного контроллера List (Список). Это позволяет дополнительно управлять объектами, уже имеющими анимацию. Для назначения контроллера с помощью меню выделите объект, предназначенный для анимации, и раскройте пункт Animation (Анимация) основного меню 3ds max. В средней части меню располагаются четыре команды: Transform Controllers (Контроллеры преобразования), Position Controllers (Контроллеры положения), Rotation Controllers (Контроллеры поворота) и Scale Controllers (Контроллеры масштаба). Выбор любой из них раскрывает подменю с перечнем контроллеров, пригодных для управления выбранным параметром (рис. 2.4). Выберите нужный контроллер.
Graph Editors
Rendering
Customize
MAXScrtal
IK Solvers Constraints Transform Controllers Rotation Controllers Scale Controllers Add Custom Attribute.., Wire Parameters Make Preview.., View Preview... Rename Preview..,
Expression Linear Motion Capture Noise Quaternion (TCB) Reactor Spring Script
XYZ Attachment Constraint Path Constraint Position Constraint Surface Constraint
Рис. 2.4. Подменю Position Controllers меню Animation
Переключитесь на командную панель Motion (Движение). В свитке Assign Controller (Назначить контроллер) обратите внимание на то, что выбранный контроллер не заменил собой прежний, а объединился с ним с помощью составного контроллера List (Список). Предположим, к примеру, что требуется заставить объект, уже анимироваппый по положению, дополнительно подергиваться в такт музыке. Выделите объект и выберите в меню A n i m a t i o n (Анимация) команду Position Controllers > Audio (Контроллеры положения > Аудио). В результате поверх исходного контроллера Position XYZ (Положение по XYZ), управляющего треком Position (Положение), па
98
Глава 2. Контроллеры и ограничители анимации
этот трек помещается контроллер List (Список). Контроллер Position XYZ (Положение по XYZ) становится элементом списка контроллеров, а в качестве второго элемента добавляется выбранный контроллер Audio (Аудио), как показано на рис. 2.5. С помощью данного контроллера можно заставить объект совершать движения в такт выбранному файлу звукозаписи в дополнение к анимации перемещения, управляемой контроллером Position XYZ (Положение по XYZ).
В свитке Assign Controller командной панели Motion на треке Position виден составной контроллер List с контроллерами Position X Y Z и Audio в составе списка
Настройка контроллеров, добавляемых с помощью меню Animation (Анимация), выполняется в окне диалога Track View (Просмотр треков) или на командной панели Motion (Движение). Порядок настройки конкретных контроллеров описывается далее в разделе «Настройка параметров контроллеров и ограничителей анимации».
Назначение ограничителей с помощью меню Animation Как уже говорилось, ограничители служат для управления анимацией преобразований перемещения, поворота или масштаба одних объектов, называемых ведомыми, за счет ведущих объектов. Таким образом, после применения к объекту ограничителя требуется дополнительно указать другой объект, который будет являться ведущим. Назначить ограничитель можно с помощью окна диалога Track View (Просмотр треков) или свитка Assign Controller (Назначить контроллер) командной панели Motion (Движение), как описано ранее применительно к назначению контроллеров. После этого на командной панели Motion (Движение) появляется свиток, содержащий параметры выбранного ограничителя. С помощью этого свитка делается назначение ведущего объекта. Использование меню Animation (Анимация) позволяет выполнить назначение контроллера и ведущего объекта за один прием в интерактивном режиме. Раздел Constraints (Ограничители) меню Animation (Анимация) включает в себя следующие команды: Attachment Constraint (Ограничитель Прикрепление), Surface Constraint (Ограничитель Поверхность), Path Constraint (Ограничитель Путь), Position Constraint (Ограничитель Положение), Link Constraint (Ограничитель Связь), Look-At Constraint (Ограничитель Линия взгляда) и Orientation Constraint (Ограничитель Ориентация). Все они предназначены для того, чтобы тем или иным образом ограничивать анимацию положения или поворота объекта. Порядок настройки нарамтеров отдельных ограничителей будет рассмотрен далее в разделе «Настройка параметров контроллеров и ограничителей анимации».
99
Общие сведения о контроллерах анимации
Для назначения объекту ограничителя с помощью меню Animation (Анимация) создайте объект, к которому необходимо применить ограничитель, и ведущий объект. Например, чтобы заставить прямоугольный блок двигаться вдоль заданной линии, постройте примитив Box (Параллелепипед) и линию, которая будет играть роль ведущего объекта. Выделите ведомый объект, раскройте меню Animation (Анимация) и выполните одну из команд подменю Constraints (Ограничители). В нашем примере выберите ограничитель Path Constraint (Ограничитель Путь). Переместите курсор в активное окно проекции. От ведомого объекта будет тянуться пунктирная линия. При установке курсора на объект, который может играть роль ведущего, курсор меняет свой вид со стрелки на крестик. Щелкните на ведущем объекте. В рассматриваемом примере щелкните на линии, которая будет играть роль пути, ограничивающего перемещения ведомого объекта (рис. 2.6). Сфера переместится на линию, что будет означать начало действия ограничителя.
Изменение формы курсора со стрелки на крестик указывает на возможность выбора эллипса в качестве ведущего объекта для ограничения анимации перемещений сферы эллиптическим путем
При назначении ограничителей с использованием меню Animation (Анимация) ведомому объекту назначается контроллер List (Список), а ограничитель помещается в состав списка наряду с уже имевшимся на данном треке контроллером анимации. Например, при назначении объекту ограничителя Path Constraint (Ограничитель Путь) па трек Position (Положение) объекта автоматически помещается контроллер List (Список), а в состав списка включаются имевшийся на этом треке контроллер Position XYZ (Положение по XYZ) и ограничитель Path Constraint (Ограничитель Путь) (рис. 2.7),
Рис. 2.7. В свитке Assign Controller на треке Position виден составной контроллер List, включающий в себя контроллер Position X Y Z и ограничитель Path Constraint
CD
100
Глава 2. Контроллеры и ограничители анимации
Настройка параметров контроллеров и ограничителей анимации Ниже описываются параметры и методы настройки отдельных типов контроллеров и ограничителей, представленных в алфавитном порядке.
Attachment Ограничитель Attachment (Прикрепление) используется для управления треком преобразования Position (Положение) и служит для размещения и удержания ведомого объекта па поверхности ведущего, который может подвергаться деформациям, меняющимся во времени. Например, если ведомый объект изображает поплавок, а ведущий — колышущуюся поверхность воды, то использование ограничителя Attachment (Прикрепление) при анимации водной поверхности заставит поплавок колыхаться вместе с ней. Ограничитель Attachment (Прикрепление) можно назначить в качестве контроллера трека Position (Положение) с помощью окна Track View (Просмотр треков), командной панели Motion (Движение) или меню Animation (Анимация). В последнем случае этот ограничитель будет добавлен в составе контроллера List (Список) наряду с контроллером, уже имевшимся на треке Position (Положение). Как только треку Position (Положение) объекта назначается ограничитель Attachment (Прикрепление), объект автоматически перемещается так, чтобы его опорная точка совместилась с началом координат, а локальные оси объекта выравниваются относительно осей глобальной системы координат. Чтобы получить доступ к параметрам данного ограничителя, выделите объект, которому назначен ограничитель прикрепления, и щелкните в свитке PRS Parameters (Параметры положения/поворота/масштаба) командной панели Motion (Движение) на кнопке Position (Положение). В результате появится свиток Attachment Parameters (Параметры прикрепления), показанный на рис. 2.8.
Настройка параметров контроллера Attachment Для настройки параметров контроллера выполните следующие действия: 1. Укажите ведущий объект, к которому будет прикреплен ведомый объект, управляемый данным контроллером. Для этого щелкните на кнопке Pick Object (Указать объект) в разделе Attach To (Прикрепить к) свитка, а затем выделите ведущий объект в любом из окон проекций. Имя ведущего объекта появится над кнопкой, а ведомый объект переместится в начало координат. 2. Чтобы задать место на поверхности ведущего объекта, к которому должен быть прикреплен ведомый объект, установите нужный номер текущего кадра, например 0, щелкните на кнопке Set Position (Задать положение) в разделе Position (Положение) свитка, а затем щелкните па поверхности ведущего объекта. Ведомый объект переместится так, чтобы его опорная точка оказалась в точке щелчка. При установленном флажке Align To Surface (Выровнять
Настройка параметров контроллеров и ограничителей анимации
101
} Л КаЛЫ1аЯ иоомГи к ° °СЬ Z ведомого объе^а будет выровнена вдоль эрмали к поверхности ведущего объекта. Если после щелчка не отпускать снопку мыши, а перетаскивать курсор, то ведомый объект будет перемещаться вслед за курсором по поверхности ведущего объекта. Опорная точка ведомого объекта будет прикреплена к поверхности ведущего в точке где вы
РагатТ Г"^ ""^ В ^^ ^'^ Local (Локальная --> Локальная) — в локальной системе координат;
о World --> World (Глобальная --> Глобальная) — в глобальной или в родительской системе координат.
Path Ограничитель Path (Путь) позволяет заставить объект перемещаться вдоль траектории в виде сплайна. При этом можно задать несколько траекторий и, регулируя весовые коэффициенты их влияния на анимируемый объект, заставить его двигаться между линиями путей. Данный ограничитель может применяться только к трекам преобразования Position (Положение). Положение объекта на траектории в последовательных кадрах анимации определяется длиной или числом вершин сплайна и процентной мерой. Если процентная мера положения объекта равна 0, то он находится в первой вершине сплайна траектории. Если процентная мера равна 100, то объект помещается на конце траектории. По мере увеличения процентной меры от 0 до 100 объект перемещается от начала траектории к ее концу (рис. 2.48).
Рис. 2.48. Сфера следует вдоль траектории, заданной сплайном-линией
136
Глава 2. Контроллеры и ограничители анимации
Чтобы получить доступ к параметрам ограничителя анимации по линии пути, выделите объект, управляемый данным ограничителем, и щелкните в свитке PRS Parameters (Параметры положения/поворота/масштаба) командной панели Motion (Движение) на кнопке преобразования Position (Положение). Появится свиток Path Parameters (Параметры пути) (рис. 2.49).
Свиток Path Parameters
Настройка параметров ограничителя Path Для настройки ограничителя выполните следующие действия: 1. Щелкните на кнопке Add Path (Добавить путь), а затем выделите в любом окне проекции двумерную форму — траекторию, вдоль которой должен перемещаться объект. Имя траектории появится в графе Target (Цель) списка в средней части свитка. В графе Weight (Вес) указывается относительный коэффициент влияния данной траектории на движение объекта. Если указать несколько линий пути, то, регулируя их веса в счетчике Weight (Вес), можно заставить объект двигаться между траекториями с учетом изгибов каждой из них. 2. Задайте положение объекта на траектории движения, используя счетчик % Along Path (% вдоль пути) в разделе Path Options (Свойства пути) свитка, значение которого численно равно выраженному в процентах отношению времени, прошедшего с начала анимации, к общей продолжительности временного сегмента. При применении к объекту контроллера Path (Управление по линии пути) автоматически создаются два ключа анимации. В первом кадре анимации величина параметра % Along Path (% вдоль пути) устанавливается равной 0, а в последнем кадре текущего временного сегмента процентная мера положения задается равной 100.
Настройка параметров контроллеров и ограничителей анимации
137
3. Установите флажок Follow (Следовать), чтобы заставить объект менять свою ориентацию при перемещении по траектории таким образом, что продольная ось объекта всегда будет направлена вдоль траектории. Если флажок сброшен, объект в процессе перемещения вдоль траектории сохраняет свою исходную ориентацию в глобальной системе координат. Переключатель Axis (Ось) в нижней части свитка позволяет указать, какая из осей локальной системы координат объекта должна быть выровнена вдоль траектории, а также должна эта ось указывать вперед (флажок Flip (Перевернуть) сброшен) или назад (флажок установлен). 4. Установите флажок Bank (Крениться), чтобы заставить объект наклоняться на поворотах траектории. Степень наклона зависит от кривизны сплайна в каждой точке траектории. Если флажок сброшен, объект сохраняет свою локальную ориентацию при перемещении. Если установлен режим крена объекта, можно указать как величину крепа в счетчике Bank Amount (Величина крена), так и степень сглаженности, то есть задержку реакции крена объекта на кривизну траектории, в счетчике Smoothness (Гладкость). 5. Установите флажок Allow Upside Down (Разрешить движение вверх ногами), чтобы разрешить объекту перевернуться вверх ногами, следуя по траектории, напоминающей «мертвую петлю». Контроллер Path (Путь) обычно старается сохранить одну из локальных осей объекта (как правило, ось Z) направленной в ту же сторону, что и ось Z глобальной системы координат, запрещая объекту переворачиваться вверх ногами. 6. Установите флажок Constant Velocity (Постоянная скорость), чтобы положения объекта в последовательных кадрах равномерно распределялись по длине траектории, а его движение происходило с постоянной скоростью. Если данный флажок сброшен, то 3ds max определяет точки траектории, в которых объект будет размещаться в последовательные моменты времени, исходя не из длины сплайна, а из числа его вершин. Если, скажем, используемый в качестве траектории сплайн имеет три вершины (начальную, конечную и промежуточную), то при значении параметра % Along Path (% вдоль пути), равном 50, объект всегда будет располагаться в точке промежуточной вершины вне зависимости от соотношения расстояний между вершинами. В связи с этим движение объекта может происходить с переменной скоростью. 7. Установите флажок Loop (Цикл), чтобы анимируемый объект по достижении конца пути автоматически возвращался в начальную точку траектории. Чтобы объект следовал изгибам линии пути, сохраняя при этом свое начальное расстояние от нее, установите флажок Relative (Относительно).
Position Ограничитель Position (Положение) позволяет заставить объект занимать в пространстве положение, задаваемое одним или несколькими целевыми объектами. При анимации перемещения целевых объектов управляемый объект также будет перемещаться. Влияние целевых объектов па управляемый регулируется выбором весовых коэффициентов. Данный ограничитель может применяться только к трекам преобразования Position (Положение).
Глава 2. Контроллеры и ограничители анимации
138
Чтобы получить доступ к параметрам ограничителя положения, выделите объект, управляемый данным ограничителем, и щелкните в свитке PRS Parameters (Параметры положения/поворота/масштаба) командной панели Motion (Движение) на кнопке преобразования Position (Положение). Появится свиток Position Constraint (Ограничитель Положение) (рис. 2.50).
• • 1 • !Ii Свиток Position Constraint
Настройка параметров ограничителя Position Для настройки ограничителя выполните следующие действия: 1. Щелкните па кнопке Add Position Target (Добавить цель положения), а затем выделите в любом окне проекции ведущий объект. Имя объекта появится в графе Target (Цель) списка в средней части свитка. В графе Weight (Вес) указывается относительный коэффициент влияния данного ведущего объекта на положение управляемого объекта. Если указать несколько ведущих объектов, то, регулируя их веса в счетчике Weight (Вес), можно заставить управляемый объект располагаться между ведущими в нужной точке. Для удаления ведущего объекта выделите его имя в списке и щелкните на кнопке Delete Position Target (Удалить цель положения). 2. Установите флажок Keep Initial Offset (Сохранить начальный сдвиг), чтобы заставить управляемый объект следовать за ведущими, сохраняя при этом свое исходное положение относительно ведущих объектов.
Position XYZ Контроллер Position XYZ (XYZ-положение) служит для разделения преобразования положения объекта на три отдельных трека преобразований по осям X, Y и Z, управляемых независимыми одномерными контроллерами типа Bezier Float (Безье с плавающей точкой). Этот контроллер применяется в 3ds max па треке Position (Положение) по умолчанию. Свиток Position XYZ Parameters (Параметры XYZ-положения) содержит всего три кнопки — X, Y и Z, входящие в группу Position Axis (Ось положения) и предназначенные для отображения параметров соответствующего одномерного контроллера преобразования (см. рис. 2.3 или 2.13).
Настройка параметров контроллеров и ограничителей анимации
139
PRS Составной контроллер Position/Rotation/Scale (Положение/Поворот/Масштаб), или просто PRS, по умолчанию назначается трекам Transform (Преобразование) объектов и габаритных контейнеров модификаторов. На вход PRS-контроллера поступают данные от трех отдельных контроллеров на треках Position (Положение), Rotation (Поворот) и Scale (Масштаб). PRS-контроллер объединяет выходные данные этих трех контроллеров и формирует единую матрицу преобразования, необходимую программе 3ds max. В свитке PRS Parameters (Параметры положения/поворота/масштаба) командной панели Motion (Движение), который можно видеть на представленном ранее рис. 2.3, имеются две группы одинаковых кнопок: Create Key (Создать ключ) и Delete Key (Удалить ключ), предназначенных для того, чтобы создать или удалить ключ анимации одного из трех преобразований — Position (Положение), Rotation (Поворот) или Scale (Масштаб) — в текущем кадре.
Reactor Контроллер Reactor (Реакция) предназначен для отработки реакций управляемых им параметров сцены на изменения любых других параметров, управляемых произвольными контроллерами. Использование этого контроллера позволяет, например, включить осветитель, камеру или, скажем, открыть дверь в тот момент, когда некоторый объект переместится в заданную точку сцены. Данный контроллер может назначаться трекам преобразований Position (Положение), Rotation (Поворот), Scale (Масштаб), а также трекам любых других трехкомпонентных параметров тина PointB и параметров с плавающей точкой. Анимируемый параметр, на изменения которого настраивается реакция, называется управляющим, а параметр, которому назначен контроллер Reactor (Реакция), — управляемым. Цель использования данного контроллера состоит в том, чтобы сопоставить определенным значениям управляющего параметра требуемые значения управляемого. При настройке параметров контроллера необходимо учитывать, что управляющий и управляемый параметры могут иметь различный тип. Например, можно запрограммировать реакцию управляемого трехкомионентного параметра Position (Положение) или Rotation (Поворот) на изменение управляющего одномерного параметра с плавающей точкой. Для получения доступа к свойствам контроллера реакций щелкните в окне контроллеров окна диалога Track View — Curve Editor (Просмотр треков — Редактор кривых) правой кнопкой мыши на треке параметра, управляемого этим контроллером. Появится окно диалога Reactor Parameters (Параметры реакции), показанное на рис. 2.51. Состав инструментов окна для одномерного и трехкомпонеатпого управляемого параметра несколько различается. Эти отличия будут рассмотрены далее при описании настройки параметров контроллера реакции.
140
Глава 2. Контроллеры и ограничители анимации
Reactpr Parameters: PravStvorkaWo.
5:
Рис;2.51, O^W^a Reactor Parameters (Параметры реакции) в случае одномерного (а) рехкомпонентного (6) управляемого параметра
Настройка параметров контроллера реакции Рассмотрим настройку параметров контроллера реакции па примере анимации открытия двери при приближении к ней некоторого объекта. Для настройки параметров контроллера выполните следующие действия: 1. Создайте модель двери и управляющий объект, скажем, сферу Поместите [)еру перед дверью на некотором расстоянии. Примерный вид рассматриваемои сцепы показан на рис. 2.52. Замените па треке преобразования Rotation (Поворот) дверной створки контроллер Euler XYX (XYX по Эйлеру) па Rotation Reactor (Реакция поворота).
Рис. 2.52. Вид тестовой сцены для настройки параметров контроллера реакции
Настройка параметров контроллеров и ограничителей анимации
141
2. Щелкните в окне диалога Reactor Parameters (Параметры реакции) на кнопке React to (Реакция на). Переместите курсор в окно проекции и щелкните на управляющем объекте (в нашем примере — на сфере). В подменю Transform (Преобразование) появившегося меню (рис. 2.53) можно выбрать в качестве управляющего параметра любое из преобразований объекта, а в подменю Object (Объект) — любой из его характеристических параметров, таких как длина, ширина, высота, радиус, число сегментов, наличие сглаживания и т. п. Выделите нужный параметр, скажем, преобразование Position (Положение), и щелкните кнопкой мыши. Имя выбранного параметра появится в текстовом поле справа от кнопки React to (Реакция на). В списке реакций в средней части окна появится имя автоматически созданной первой реакции — ReactionOl. В текстовом поле под кнопкой указывается текущее численное значение параметра, выбранного в качестве управляющего. Оно соответствует текущему кадру анимации и, если параметр аиимирован, меняется при перетаскивании ползунка таймера или воспроизведении анимации управляющего параметра. В текстовом поле Reaction Value (Управляющее значение) в нижней части окна фиксируется значение управляющего параметра па момент создания реакции. В ходе анимации при достижении этой величины управляющим параметром контроллер будет активизировать реакцию управляемого параметра.
Рис. 2.53.
Выбор управляющего параметра производится в меню, появляющемся после щелчка кнопкой мыши на управляющем объекте
3. Настройте реакцию управляемого параметра. Если он является трехкомпоиеитным, щелкните на кнопке Edit Reaction State (Правка состояния реакции) окна диалога Reactor Parameters (Параметры реакции), показанного ранее на рис. 2.51, б. Кнопка зафиксируется и подсветится желтым цветом. Измените значение нужного преобразования, воздействуя непосредственно на объект в любом из окон проекций. В нашем примере контроллер реакции назначен параметру поворота створки двери, поэтому поверните створку в любом окне проекции так, чтобы дверь была полностью закрыта. Значение управляемого параметра отображается в поле Current Value (Текущее значение). Закончив настройку, снова щелкните на кнопке Edit Reaction State (Правка состояния реакции), чтобы выключить режим редактирования. Если управляемый параметр является одномерным, измените его значение прямо в окне диалога Reactor Parameters (Параметры реакции), показанного ранее на рис. 2.51, а, с помощью счетчика State (Состояние).
142
Глава 2. Контроллеры и ограничители анимации
4. Продолжите создание новых реакций управляемого объекта. Для этого внесите необходимые изменения в управляющий параметр. В нашем примере переместите сферу, приблизив ее к двери. Щелкните на кнопке Create Reaction (Создать реакцию). В списке реакций в средней части окна появится имя очередной реакции — Reaction02. Контроллер зафиксирует текущее значение управляющего параметра. Настройте значение управляемого параметра с помощью кнопки Edit Reaction State (Правка состояния реакции), как описано в и. 3. В нашем примере поверните створку двери, полностью открыв ее (рис. 2.54).
Рис 2.54. Настройка реакции управляемого параметра (угла поворота створки двери) на изменение управляющего параметра (положения сферы)
Убедитесь, что контроллер реакции действует, удаляя и приближая управляющий объект-сферу к двери. Створка должна закрываться при удалении сферы в точку, соответствующую реакции ReactionOI, и открываться при перемещении сферы к двери в точку, соответствующую реакции Reaction02. Обратите внимание, что никакой анимации управляющего объекта до сих пор не выполнялось. 5. При необходимости продолжите создание новых реакций аналогичным образом. Если требуется удалить ту или иную реакцию, выделите ее имя в списке реакций и щелкните на кнопке Delete Reaction (Удалить реакцию). Щелчок на кнопке Set Reaction Value (Задать значение реакции) ведет к тому, что в поле Reaction Value (Управляющее значение) переносится текущее значение управляющего параметра. 6. Используйте при настройке реакции следующие элементы управления контроллера: о I n f l u e n c e (Область в л и я н и я ) — задает диапазон значений относительно ключевых величии управляющего параметра, в пределах которого реакция будет проявляться. Для преобразования положения диапазон задается в единицах длины, для преобразования поворота — в градусах, для прочих параметров с плавающей точкой — в безразмерных величинах; о
Strength (Сила) — задает степень реакции, позволяя делать ее сильнее или слабее;
о Fallof f (Спад) — позволяет обеспечивать плавное начало и окончание реакции за счет настройки кривой спада влияния управляющего параметра. Для настройки формы кривой щелкните на кнопке Curve (Кривая).
143
Настройка параметров контроллеров и ограничителей анимации
Настроив действие контроллера реакции, можно выполнить анимацию управляющего объекта. Для управляемого объекта при этом не будет создано никаких ключей анимации, однако он будет реагировать на изменения параметров управляющего объекта так, как было задано при настройке контроллера реакции.
Scale XYZ Составной контроллер Scale XYZ (XYZ-масштаб) служит для разделения преобразования масштаба объекта на три отдельных трека преобразований по осям X, Y и Z, управляемых независимыми одномерными контроллерами. Свиток Scale X Y Z Parameters (Параметры XYZ-масштаба) содержит всего три кнопки — X, Y и Z, входящие в группу Scale Axis (Ось масштаба) и предназначенные для отображения параметров соответствующего одномерного контроллера преобразования масштаба.
Script Контроллер Script (Сценарий) подобен контроллеру управления по алгоритмическому выражению, также позволяя ввести описание сценария на языке сценариев MAXScript для расчета выходного значения анимируемого параметра. Данный контроллер может использоваться в 3ds max в разновидностях Float Script, Position Script, Points Script, Rotation Script и Scale Script. Для получения доступа к свойствам контроллера управления по сценарию щелкните в окне контроллеров окна диалога Track View — Curve Editor (Просмотр треков — Редактор кривых) правой кнопкой мыши на треке параметра, управляемого этим GD контроллером. Появится окно диалога Script Controller (Контроллер управления ЕШ1 по коду) (рис. 2.55). Script Controller : SpheredVX Position
Рис. 2.55. Окно диалога Script Controller
144
Глава 2. Контроллеры и ограничители анимации
Используйте для настройки контроллера следующие элементы управления окна диалога: D Script (Сценарий) — поле для ввода макронрограмм на языке MAXScript; П Result (Результат) — поле отображения результатов выполнения макрокоманд и сообщений об ошибках; D Evaluate (Оценить) — щелчок на этой кнопке заставляет программу оцепить результат выполнения макропрограммы на момент текущего кадра и выдать результаты в поле Result (Результат); П Close (Закрыть) — щелчок на этой кнопке ведет к вычислению результата макропрограммы с последующим закрытием окна.
Smooth Rotation Контроллер Smooth Rotation (Плавный поворот) применяется к трекам преобразования Rotation (Поворот) в тех случаях, когда требуется придать вращению плавный, естественный характер. Этот контроллер не имеет окна или свитка параметров. Для настройки вращения поворачивайте объект в окнах проекций.
Spring Контроллер Spring (Пружина) позволяет при анимации перемещений объекта моделировать в момент его остановки вторичные движения в виде периодических колебаний, напоминающих колебания груза, подвешенного на пружине. Воображаемая пружина, вызывающая колебания, по умолчанию создается между исходным положением объекта и конечной точкой его движения. Размах и продолжительность колебаний зависят от настраиваемой массы объекта и скорости его перемещения. Можно добавлять новые пружины, связывающие управляемый объект с другими анимируемыми объектами сцены. Данный контроллер применяется к треку преобразования Position (Положение), причем включает уже имевшийся на треке контроллер, к примеру Position XYZ (XYZ-положение), в свой состав, подобно контроллеру List (Список). Для получения доступа к свойствам контроллера пружины щелкните в окне диалога Track View (Просмотр треков) правой кнопкой мыши на треке параметра, управляемого этим контроллером. Появится окно диалога Spring Properties (Свой;GD: ства пружины) (рис. 2.56), содержащее свитки Spring Dynamics (Динамика пружиЕДЯ1 ны) и Forces Limits and Precision (Ограничения сил и точность). Такие же свитки появятся на командной панели Motion (Движение), если щелкнуть на кнопке Position (Положение) в свитке PRS Parameters (Параметры положения/поворота/масштаба).
Настройка контроллера Spring: свиток Spring Dynamics При назначении контроллера автоматически создается единственная пружина Self Influence (Самовоздействие), помещаемая в список раздела Springs (Пружины). Ее натяжение и скорость затухания колебаний указываются справа от названия
Настройка параметров контроллеров и ограничителей анимации
145
пружины в списке. При необходимости настройте эти параметры в счетчиках Tension (Натяжение) и Dampening (Затухание), выделив имя пружины в списке. Чем больше величина Tension (Натяжение), тем быстрее (чаще) будет колебаться объект. Чем меньше величина D a m p e n i n g (Затухание), тем продолжительнее будут колебания. Однако если задать затухание слишком малым, колебания могут пойти «в разнос», не затухая, а увеличиваясь по амплитуде.
Рис. 2.56. Окно диалога Spring Properties со свитками Spring Dynamics и Forces Limits and Precision
Установите переключатель под счетчиками в положение Relative (Относительно), чтобы задаваемые значения натяжения и затухания добавлялись к уже назначенным, или в положение Absolute (Абсолютно), чтобы новые значения полностью замещали ранее заданные. Задайте воображаемую массу анимируемого объекта в счетчике Mass (Масса). Чем она больше, тем сильнее размах колебаний в точке остановки. Установите в счетчике Drag (Тормоз) силу сопротивления, препятствующую колебаниям. При значении 0 сопротивление отсутствует, при значении 10 оно максимально.
14о
Глава 2. Контроллеры и ограничители анимации
Чтобы добавить новую воображаемую пружину, связывающую анимируемый объект с каким-то другим объектом сцепы, щелкните па кнопке Add (Добавить), а затем на нужном объекте. Его имя появится в списке пружин. Чтобы выключить режим добавления пружин, снова щелкните па кнопке Add (Добавить). Настройте натяжение и затухание этой пружины, как описано в п. 1. Для удаления любой пружины, кроме исходной, выделите ее имя в списке и щелкните на кнопке Remove (Удалить). Настройка контроллера Spring: свиток Forces Limits and Precision С помощью свитка Forces Limits and Precision (Ограничения сил и точность) можно добавить влияние па апимируемый объект внешних сил, имитируемых объемными деформациями, такими как ветер или гравитация. Для добавления силы щелкните па кнопке Add (Добавить), а затем — на значке нужной объемной деформации в окне проекции. Имя выбранной деформации появится в списке свитка. Для удаления деформации из списка выделите ее имя и щелкните на кнопке Remove (Удалить). Для настройки точности моделирования динамики упругих колебаний используйте следующие элементы управления из раздела Calculation Parameters (Параметры вычислений): П Start Frame ( Н а ч а л ь н ы й кадр) — кадр, в котором начинается действие контроллера пружины; П Iterations (Итераций) — точность расчетов динамики, задается из диапазона от 0 до 4; П X/Y/Z Effect (Эффект по X/Y/Z) — позволяют задать степень влияния пружины на колебания по каждой из осей в процентах.
Surface Ограничитель Surface (Поверхность) применяется к трекам преобразования Position (Положение) и позволяет размещать один объект на поверхности другого, опорного объекта. Опорный объект должен иметь поверхность, описываемую параметрически. В связи с этим использоваться в качестве опорных могут только несколько объектов-примитивов — сфера, конус, цилиндр и тор, отдельные куски Безье, тела лофтинга или NURBS-поверхпости. Таким образом, например, чтобы использовать в качестве опорного объекта примитив-параллелепипед, следует сначала преобразовать его в NURBS-новерхность. Чтобы получить доступ к параметрам данного ограничителя, щелкните в свитке PRS Parameters (Параметры положения/поворота/масштаба) командной панели Motion (Движение) на кнопке Position (Положение). В результате появится свиток Surface Controller Parameters (Параметры контроллера поверхности), показанный на рис. 2.57.
Настройка параметров контроллеров и ограничителей анимации
147
гх-№-ятгде«"^спдо1п»н •кмы" щ^»дота«Я:&£
Рис. 2.57. Свиток Surface Controller Parameters
Настройка параметров ограничителя анимации по поверхности Для настройки параметров ограничителя выполните следующие действия: 1. Для выделения объекта, к поверхности которого будет прикреплен ведомый объект, управляемый данным контроллером, щелкните на кнопке Pick Surface (Указать поверхность), а затем — на нужном объекте в любом из окон проекций. 2. В разделе Surface Options (Параметры поверхности) уточните координаты положения ведомого объекта на опорной поверхности, регулируя значения координат в счетчиках U Position (Положение по U), V Position (Положение по V). 3. Установите переключатель, определяющий вариант выравнивания объекта, в одно из положений: о No Alignment (Нет выравнивания) — управляемый объект не будет менять свою ориентацию; о A l i g n to U (Выровнять по U) — локальная ось Z объекта будет ориентироваться в направлении локальной нормали к поверхности объекта, а ось X — в направлении оси U поверхности; о A l i g n to V (Выровнять по V) — локальная ось Z объекта будет ориентироваться в направлении локальной нормали к поверхности объекта, а ось X — в направлении оси V поверхности. 4. Установите флажок Flip (Перевернуть), если требуется изменить направление ориентации локальной оси Z управляемого объекта на противоположное.
тсв ТСВ-контроллер (от слов Tension (Натяжение), Continuity (Непрерывность) и Bias (Смещение)), или контроллер натяжения, непрерывности и смещения, действует подобно контроллеру Безье, по использует для интерполяции значений параметра анимации в интервалах между ключами пять числовых характеристик: Tension
148
Глава 2. Контроллеры и ограничители анимации
(Натяжение), Continuity (Непрерывность), Bias (Смещение), Ease To (Плавный вход) и Ease From (Плавный выход). Форма функциональной кривой контроллера базируется на ключевых значениях параметра анимации и значениях перечисленных характеристик метода интерполяции. Данный тип контроллера может применяться ко всем трем типам преобразований в разновидностях ТСВ Position, TCB Rotation и ТСВ Scale, а также в виде ТСВ Float к характеристическим параметрам объектов, выражаемым значениями с плавающей точкой, и в виде ТСВ Points к трехкомпонентным векторным параметрам, таким как цвет. Чтобы получить доступ к параметрам данного контроллера, щелкните в окне диалога Track View (Просмотр треков) правой кнопкой мыши на ключе анимации, управляемом этим контроллером. Появится окно диалога Key Info (Справка о ключах) (рис. 2.58). • BoxOIWotalion
Рис. 2.58. Окно диалога Key Info контроллера типа ТСВ преобразования поворота
Для доступа к параметрам контроллера с командной панели Motion (Движение) проделайте следующее: D выясните в свитке Assign Controller (Назначить контроллер), какому из преобразований назначен ТСВ-контроллер; П щелкните в свитке PRS Parameters (Параметры положения/поворота/масштаба) па кнопке нужного преобразования, чтобы вызвать появление свитка Key Info (Справка о ключах), состав параметров которого не отличается от окна диалога, показанного на рис. 2.58. Настройка параметров ТСВ-контроллера Поле номера ключа анимации с кнопками выбора номера, счетчик Time (Время) и кнопка с буквой L (Lock — Блокировать) аналогичны соответствующим параметрам контроллера Bezier (Безье), рассмотренным выше. Управляйте положением и углом поворота объекта в ключевых кадрах анимации, используя счетчики X Value (Значение X), Y V a l u e (Значение Y), Z Value (Значение Z) в случае применения контроллера к преобразованию положения, или X, Y, Z и Angle (Угол) при управлении параметром поворота. Эти счетчики отображают значения координат положения объекта, а также величину угла поворота объекта в текущем кадре.
Настройка параметров контроллеров и ограничителей анимации
149
Используйте для контроля характера анимации параметра диаграмму линии ключей, являющуюся графиком скорости изменения параметра объекта в окрестности ключевого кадра. Положение ключевого кадра па кривой обозначается красным крестиком. Черные крестики характеризуют изменение параметра в кадрах, предшествующих ключевому и следующих после него. Регулируя параметры ТСВ-коптроллера, можно воздействовать на форму и масштаб времени линии ключей, а значит и на характер анимации. Настройте форму и масштаб линии ключей, используя следующие параметры, каждый из которых может меняться от 0 до 50: П Ease To (Плавный вход) — счетчик, влияющий па скорость изменения параметра вблизи входа в точку ключа анимации. Чем выше значение в счетчике, тем медленнее будет происходить изменение параметра вблизи точки ключа. Это выглядит как постепенное замедление анимации параметра с полным замиранием в ключевом кадре; П Ease From (Плавный выход) — параметр плавного выхода подобен параметру плавного входа, но его увеличение ведет к замедлению скорости изменения анимируемого параметра при выходе функциональной кривой из точки ключевого кадра. В результате создается впечатление, что изменение параметра после ключевого кадра начинается медленно, но постепенно ускоряется; П Tension (Натяжение) — счетчик, изменяющий «степень натяжения» линии ключей в диапазоне от 0 до 50. Чем выше его значение, тем прямее линия ключей. Когда значение натяжения велико, линия ключей спрямлена и имеет излом в точке ключа, а движение объекта в районе ключевого кадра выглядит как рывок. Когда значение натяжения мало, линия ключей выглядит сильно скругленной, с плоской вершиной, а движение объекта происходит плавно; П C o n t i n u i t y (Непрерывность) — счетчик, управляющий величиной угла, под которым линия ключей входит в точку ключевого кадра и выходит из нее, в диапазоне от 0 до 50. Значение 25, принятое по умолчанию, является единственным, при котором функциональная кривая параметра преобразования объекта не будет иметь излома в точке ключевого кадра. Большие значения параметра непрерывности ведут к получению двугорбой кривой ключей. Малые значения приводят форму линии ключей к виду, подобному тому, что получается при натяжении, равном 50; D Bias (Смещение) — параметр, вызывающий смещение максимума линии ключей относительно точки ключевого кадра, в диапазоне от 0 до 50. Значения смещения, превышающие 25, вызывают сдвиг максимума вперед по времени, то есть заставляют параметр продолжать свое изменение дольше, чем задано ключом анимации. Значения, меньшие 25, сдвигают максимум назад по времени, то есть заставляют параметр достичь требуемого значения раньше, чем наступит ключевой кадр. Чтобы обеспечить равномерное изменение анимируемого параметра в точке настраиваемого ключа, следует задавать следующие значения: Tension (Натяжение) — 25, Continuity (Непрерывность) — 0, Bias (Смещение) — 25.
150
Глава 2. Контроллеры и ограничители анимации
Waveform Контроллер типа Waveform (Цикл) используется для моделирования регулярных периодических движений объектов. Комбинируя с помощью контроллера Waveform (Цикл) колебания различной формы, можно моделировать сложные периодические движения механических устройств. Используя несколько колебаний с кратными периодами, можно получить подобие случайного процесса, который будет повторяться с интервалом, равным периоду самого медленного колебания. Данный контроллер может использоваться только в одной разновидности — как W a v e f o r m Float. В связи с этим его нельзя помещать, скажем, на трехкомнонептный трек Position (Положение), но можно с успехом использовать на треках X Position (Положение по X), Y Position (Положение по Y) или Z Position (Положение по Z). CD
Чтобы вызвать появление окна диалога Waveform Controller (Контроллер цикла) с параметрами данного контроллера (рис. 2.59), щелкните правой кнопкой мыши на треке окна диалога Track View (Просмотр треков), управляемом этим контроллером.
Рис. 2.59. Окно диалога Waveform Controller
Настройка параметров контроллера Waveform Для настройки параметров контроллера составьте список действующих генераторов периодических функций в левой части окна диалога, используя следующие кнопки: D Add (Добавить) — добавляет новый генератор колебаний в конец списка. По умолчанию добавляется синусоидальное колебание с периодом 10 кадров и амплитудой 100 единиц;
Настройка параметров контроллеров и ограничителей анимации
151
П Insert (Вставить) — вставляет новый генератор перед выделенным элементом списка; D Remove (Удалить) — удаляет из списка выделенный генератор; D Move Up/Down (Переместить вверх/вниз) — перемещает выделенный генератор вверх или вниз но списку, позволяя изменять -порядок следования колебаний. Порядок перечисления имеет значение, поскольку каждый следующий генератор использует в качестве входного параметра результат действия предыдущего; П Disable (Отменить) — установка этого флажка отменяет действие выделенного генератора колебаний. Настройте вариант отображения данных в поле Characteristic Graph (Характеристическая кривая), установив переключатель под полем графика в одно из трех положений: П This Wave (Текущее колебание) — отображается только график периодической функции, формируемой генератором, выделенным в списке, без учета действия всех остальных генераторов; D This Output (Текущий выход) — отображается график функции, формируемой выделенным генератором с учетом действия всех предыдущих генераторов списка; П Final Output (Общий выход) — демонстрируется график периодической функции на выходе последнего из генераторов списка. Щелкните на одной из пяти кнопок со значками в виде колебаний разной формы в разделе Waveform (Колебание) в правой части окна диалога, чтобы выбрать колебание нужной формы — синусоидальной, прямоугольной, треугольной, пилообразной или синусоидальной полуволновой. Задайте характеристики колебания, используя следующие параметры раздела Waveform (Колебание): П Name (Имя) — позволяет переименовать текущее колебание; П Period (Период) — задает период колебаний в кадрах; П Duty Cycle (Скважность) — действует только для колебаний прямоугольной формы и задает долю периода, в течение которой колебание имеет максимальную амплитуду; D Amplitude (Амплитуда) — задает амплитуду, то есть размах колебаний; D Phase (Фаза) — задает сдвиг колебания по оси времени; П Inverted (Переворот) — установка этого флажка вызывает зеркальное отражение колебания относительно горизонтальной оси, а установка флажка Flipped (Отражение) — относительно вертикальной оси.
152
Глава 2. Контроллеры и ограничители анимации
Укажите, каким образом выбранный генератор будет воздействовать на выходное колебание предшествующего генератора, установив переключатель Effect (Действие) в одно из следующих положений: П Add (Суммирование) — колебания будут суммироваться; П Multiply (Перемножение) — колебания будут перемножаться; П Clamp Above/Below (Ограничение сверху/снизу) — не позволяет предшествующему колебанию быть по амплитуде больше (меньше) текущего колебания. Задайте величину постоянного уровня, относительно которого будет центрироваться периодическая функция, установив переключатель Vertical Bias (Вертикальное смещение) в одно из следующих положений: П Centered (Центрировать) — смещение по вертикали отсутствует и колебание центрируется относительно нуля; П Auto>0 (Авто>0) — сдвигает все колебание выше линии нулевой амплитуды; П Auto New Schematic View (Графические редакторы > Открыть окно Просмотр структуры), чтобы открыть окно диалога Schematic View (Просмотр структуры).
156
Глава 3. Анимация связанных объектов
2. Щелкните на кнопке Connect (Связать) напели инструментов окна Schematic View (Просмотр структуры). Связывание объектов в окне просмотра структуры производится так же, как и в окнах проекций, только работа ведется не с самими объектами, а с соответствующими им узлами схемы. Щелкните на узле, соответствующем самому младшему дочернему объекту цепочки (в нашем примере это объект Отражатель). Курсор примет вид значка на кнопке инструмента, как показано на рис. 3.3. Удерживая кнопку мыши, перетащите курсор до узла объекта, который должен стать предком. При этом за курсором будет тянуться пунктирная линия. Над узлом объекта, который может стать объектом-предком, курсор снова примет вид значка на кнопке инструмента. Отпустите кнопку мыши.
Рис. 3.3,:
Курсор изменяет свой вид над узлом объекта, допускающего возможность связывания
3. Продолжите процесс связывания, перемещаясь от конца цепочки к ее началу и последовательно связывая друг с другом объект за объектом. Чтобы разорвать ошибочно созданную связь, выделите связанные объекты и щелкните на кнопке U n l i n k Selected (Разорвать связь выделенных объектов) панели инструментов окна диалога Schematic View (Просмотр структуры). 4. Чтобы увидеть графическое изображение связей между всеми объектами цепочки, как показано на рис. 3.4, выберите в команду меню окна View > Zoom Extents (Вид > Сцена целиком). Если при этом изображение в окне будет чересчур перегружено, воспользуйтесь кнопкой Filters (Фильтры), чтобы скрыть от просмотра на графе часть объектов.
Отображение связей объектов Помимо описанного способа отображения иерархических связей между объектами в окне диалога Schematic View (Просмотр структуры) можно использовать еще
157
Анимация связанных объектов
два способа просмотра таких связей: в окне диалога Select Objects (Выделение объектов) и непосредственно в окнах проекций. ^Schematic View 1 Ed*, Select
View
Layout
List Views; : . Options
Hi
./З'ШюШЯжЗт
й|Щ|?' |
Рис. З.4.
plfetso
Структура иерархических связей между объектами
Просмотр связей в окне Select Objects Чтобы убедиться в том, что связывание произошло должным образом, раскройте окно Select Objects (Выделение объектов). Для этого можно щелкнуть на кнопке Select by Name (Выделить по имени) главной панели инструментов или нажать клавишу h. В этом окне необходимо установить флажок Display Subtree (Показать поддеревья), после чего имена всех объектов, объединенных в цепочки, изобразятся с отступом следом за именами своих предков. В примере с лампой старший родительский объект — Орога. Его имя помещается во главу списка имен связанных объектов и размещается в окне Select Objects (Выделение объектов) без отступа (рис. 3.5). Имена всех остальных объектов смещаются вправо тем больше, чем дальше от старшего предка в связанной цепи они находятся. Порядок следования имен в этом списке соответствует порядку следования объектов в созданной цепочке. Если у какого-то из объектов несколько дочерних, их имена помещаются в списке окна с одинаковым отступом, как SharnirOI и V i k l _ Korpus на рис. 3.5.
Графическое изображение связей в окнах проекций Графическое изображение связей объектов цепочки в окнах проекций можно обеспечить с помощью свитка Link Display (Показ связей), располагающегося в нижней части командной панели Display (Дисплей) и содержащего два флажка: П Display Links (Показывать связи) — включает режим изображения структуры, напоминающей скелет системы связанных объектов и представляющей связи всех ее выделенных объектов (рис. 3.6);
CD
158
Глава 3. Анимация связанных объектов
Select Objects
RichagOr ShmtflS ..RichagU3
•1;-
Имена объектов, связанных в иерархическую цепочку, отображаются с отступами в окне Select Objects в режиме Display Subtree
Рис. 3.6.
Связи объектов в режиме обратной кинематики отображаются при установке флажка Display Links
D Link Replaces Object (Связь заменяет объект) — изображения объектов цепочки заменяются изображениями связей (рис. 3.7), что облегчает восприятие сцены и понимание того, как работает обратная кинематика.
Особенности преобразования связанных объектов (правила прямой кинематики) При преобразовании перемещения или поворота любого из объектов, связанных в иерархическую цепочку, действуют следующие правила, определенные для метода прямой кинематики: D преобразование любого родительского объекта распространяется на все его дочерние объекты, но не касается объектов-предков преобразуемого объекта.
159
Анимация связанных объектов
Это означает, например, что при перемещении или повороте подставки модели лампы, показанной на рис. 3.1, все дочерние объекты будут сохранять свое положение по отношению к подставке, перемещаясь или поворачиваясь вместе с пей. Если же применить преобразование к среднему рычагу лампы, то вместе с ним будут преобразованы только шарнир, верхний рычаг и отражатель, а нижний рычаг и подставка лампы сохранят свое положение и ориентацию. В результате конструкция «разрушится» (рис. 3.8);
Рис.ЗШ Установка флажка Link Replaces Object позволяет заменить изображения выделенных объектов изображениями связей
Результат перемещения промежуточного элемента иерархической цепочки — среднего рычага лампы
D самый младший объект-потомок наследует преобразования всех объектовпредков, а преобразования младшего объекта-потомка не влияют на остальные элементы цепочки. В примере с лампой это означает, что отражатель света на конце системы рычагов будет перемещаться и поворачиваться вместе с любым элементом конструкции лампы, однако его самого можно перемещать и поворачивать независимо от остальных деталей. Подобные результаты преобразования связанных объектов объясняются тем, что преобразование всех объектов-потомков производится ие относительно их собственных опорных точек, а относительно опорной точки объекта-предка.
160
Глава 3. Анимация связанных объектов
Расстановка опорных точек связанных объектов Опорная точка объекта при его создании помещается обычно или в центр основания, или в геометрический центр габаритного контейнера объекта (рис. 3.9).
ШМ1!
Исходные положения опорных точек отдельных объектов из состава модели лампы
Если повернуть средний рычаг лампы, показанной на рис, 3.1, то конструкция «разрушится», так как рычаг повернется относительно своего центра (рис. 3.10).
Рис. З.Ш Результат поворота среднего рычага лампы при исходных положениях опорных точек объектов
При анимации связанных цепочек объектов часто возникает необходимость поворачивать объект относительно одного из его концов или любой другой заданной точки, а не центра. Решение такой задачи требует перемещения опорной точки объекта. Доступ к средствам управления опорной точкой объекта можно получить, выделив объект и щелкнув на корешке командной панели Hierarchy (Иерархия) (рис. 3.11). В верхней части командной панели Hierarchy (Иерархия) под нолем имени выделенного объекта имеются три кнопки: П Pivot (Опора) — позволяет изменять положение и ориентацию опорных точек и управлять расположением опорной точки в пределах объекта;
Анимация связанных объектов
161
Pivol |:
« Командная панель Hierarchy Я КИнематика n > - позволяет применять к связанным объектам режим анимации по методу обратной кинематики, а также настраивать параметры связей объектов (метод обратной кинематики обсуж дается в данной главе ниже);
"°3"ОЛЯеТЭДаВЭТЬ -Р'-Р™ -«и „6v Управление опорными точками Пре
°браЗОВаПИЯМИ положения, поворота или масштаба опорной
1. Выделите объект, перейдите на командную панель Hierarchy (Иерархия) и щелкните на кнопке P,vot (Опора). Появятся два свитка (см. рис. 3.11): Adjust (Настройка опоры), который позволяет управлять расположением и ориентацией опорной точки объекта, и Adjust Transform (Настройка преобразования) позволяющий выполнить собственно преобразование и выровнять объект относительно системы координат. 2. Задайте режим преобразования, щелкнув в разделе Move/Rotate/Scale (Перемещение/Поворот/Масштаб) свитка Adjust Pivot (Настройка опоры) на одной
162
Глава 3. Анимация связанных объектов
из трех кнопок, каждая из которых фиксируется в нажатом положении и подсвечивается синим цветом: о Affect Pivot Only (Только опора) — обеспечивает возможность перемещать или поворачивать только опорную точку объекта. При этом преобразования не будут касаться ни самого объекта, ни его дочерних объектов. После включения данного режима используйте инструменты преобразований для перемещения, поворота или масштабирования опорной точки обычным образом (рис. 3.12). При этом часто бывает удобно выбрать в раскрывающемся списке Reference Coordinate System (Система координат) главной панели инструментов вариант Local (Локальная) и ограничить преобразования осью У, направленной вдоль продольной оси объекта;
.rriflV..
'. **"*•:
Опорная точка младшего дочернего рычага лампы смещена к центру шарнира этого рычага
о
Affect Object Only (Только объект) — обеспечивает возможность перемещать, поворачивать или масштабировать только геометрическую модель объекта. При этом положение и ориентация опорной точки объекта и его дочерних объектов не изменяются;
о Affect Hierarchy Only (Только дочерние объекты) — обеспечивает возможность перемещать, поворачивать или масштабировать любой дочерний объект текущего выделенного объекта по отношению к его опорной точке. Ни на геометрическую модель этого объекта, ни на его опорную точку эти преобразования не распространяются. 3. Для выравнивания положения опорной точки используйте следующие кнопки раздела Alignment (Выравнивание) свитка Adjust Pivot (Настройка опоры), которые становятся доступны, если нажата одна из кнопок Affect Pivot Only (Только опора) или Affect Object Only (Только объект) и меняют свои названия в зависимости от того, какая из этих кнопок нажата: о Center to Object (Центрировать по объекту), Center to Pivot (Центрировать по опоре) — перемещает опорную точку в центр объекта или перемещает объект так, чтобы опорная точка оказалась в его центре;
Анимация связанных объектов
163
о Align to Object (Выровнять по объекту), Align to Pivot (Выровнять по опоре) — выравнивает направление осей координатной системы опорной точки по осям системы координат неподвижного объекта или выравнивает ориентацию объекта относительно осей координат неподвижной опорной точки; о Align to World (Выровнять глобально) — выравнивает направление осей координатной системы опорной точки или объекта по осям глобальной системы координат. 4. Чтобы восстановить исходные положение и ориентацию опорной точки, которые она имела на момент создания объекта, щелкните на кнопке Reset Pivot (Восстановить опору). Это бывает полезно, например, если при перемещении или повороте опорной точки была допущена ошибка. 5. Чтобы обеспечить возможность настройки положения, ориентации или масштаба объекта, входящего в иерархическую цепочку, и при этом не оказывать влияния ни на один из дочерних объектов, щелкните на кнопке Don't Affect Children (Не трогать дочерние объекты) в разделе Move/Rotate/Scale (Перемещение/ Поворот/Масштаб) свитка Adjust Transform (Настройка преобразования). 6. Чтобы восстановить положение и ориентацию опорной точки объекта относительно осей глобальной системы координат, не оказывая при этом влияния ни на сам объект, ни на его дочерние объекты, щелкните на кнопке Transform (Преобразование) в разделе Reset (Восстановить) свитка Adjust Transform (Настройка преобразования). Щелчок на кнопке Scale (Масштаб) переустанавливает коэффициенты матрицы преобразований объекта так, чтобы они соответствовали его новому масштабу, после чего новый размер объекта принимается за 100%. На рис. 3.13 показан результат настройки положений опорных точек отдельных объектов, входящих в состав иерархической цепочки модели лампы.
Скорректированные положения опорных точек отдельных объектов из состава модели лампы
При таком расположении опорных точек поворот рычага не будет вести к «разрушению» конструкции (рис. 3.14).
164
Глава 3. Анимация связанных объектов
Рис. 3.14.
Результат поворота среднего рычага при правильном выборе положения опорной точки не разрушает конструкцию модели
Настройка параметров связей объектов в цепочках Для контроля параметров и настройки связей объектов в иерархических цепочках выполните следующие действия: 1. Выделите дочерний объект и щелкните на кнопке Link I n f o (Данные о связях) командной панели Hierarchy (Иерархия). Появятся свитки Locks (Блокировки) и Inherit (Наследование), состоящие из однотипных групп флажков (рис. 3.15).
Рис. 3.15.
Свитки Locks и Inherit состоят из однотипных групп флажков
Анимация связанных объектов
165
2. Для блокирования преобразований, которые могут быть применены к дочернему объекту непосредственно, установите флажки нужных координатных осей X, Кили Z в разделах преобразований Move (Перемещение), Rotate (Поворот) и Scale (Масштаб) свитка Locks (Блокировки), Установка любого флажка запрещает непосредственное преобразование выделенного объекта в направлении дайной оси координат. Данные ограничения не распространяются на преобразования дочернего объекта вместе с родительским. Это значит, например, что в случае перемещения родительского объекта дочерний объект будет перемещаться вместе с ним вне зависимости от того, какие из блокирующих флажков установлены в разделе Move (Перемещение). 3. Укажите, какие преобразования наследуются дочерним объектом от объекта-предка, используя флажки координатных осей X, Y или Z свитка Inherit (Наследование), также сгруппированные в разделы но видам преобразований Move (Перемещение), Rotate (Поворот) и Scale (Масштаб). Выделенный дочерний объект будет наследовать преобразование родительского объекта по всем осям глобальной системы координат, флажки которых установлены в разделе соответствующего преобразования. По умолчанию установлены флажки всех преобразований по всем осям координат. Например, если для ближнего к отражателю рычага (объекта Richag03) рассматриваемой модели лампы сбросить в разделе Rotate (Поворот) флажки наследования поворота по всем осям, то при повороте среднего рычага (объекта Richag02) ближний к отражателю CD рычаг будет перемещаться, сохраняя свою исходную ориентацию (рис. 3.16). ШШ
Рис. 3.16.
После сброса флажков наследования преобразования поворота ближний к отражателю рычаг при повороте среднего рычага сохраняет свою исходную ориентацию
Анимация связанных объектов по методу прямой кинематики Для анимации объектов по методу прямой кинематики выполните в общем случае следующие действия: 1. Свяжите между собой ряд объектов, образовав иерархическую цепочку. Настройте положения опорных точек объектов и задайте свойства связей, используя инструменты командной панели Hierarchy (Иерархия).
166
Глава 3. Анимация связанных объектов
2. Приведите объекты в положения, которые они должны занимать на момент начала анимации. Установите кадр 0 в качестве первого кадра анимации, активизируйте нужное окно проекции и щелкните на кнопке Auto Key (Автоключ). 3. Устанавливайте номер очередного ключевого кадра, перемещая ползунок таймера анимации, и настраивайте положение и ориентацию родительских объектов в окнах проекций, используя инструменты преобразований. Преобразования будут автоматически распространяться на дочерние объекты, так как анимация по методу прямой кинематики применяется к связанным объектам по умолчанию. 4. Закончив создание ключей, выключите режим анимации, щелкнув на кнопке Auto Key (Автоключ). Настройте при необходимости параметры контроллеров анимации. Просмотрите анимацию в окне проекции, создайте ее эскиз или выполните итоговую визуализацию, как описано в предыдущих главах. ПоШ смотрите пример подобной анимации в файле L a m p a - F K . a v i компакт-диска.
Метод обратной кинематики Метод обратной кинематики требует при анимации связанных объектов действовать в точности наоборот по сравнению с методом прямой кинематики. Вместо преобразования объекта-предка следует применять преобразование к самому младшему из дочерних объектов, и действие этого преобразования распространяется на всех предков из иерархической цепочки данного объекта. Это дает возможность, например, переместив всего один палец персонажа, заставить его вытянуть вперед руку. В нашем примере с настольной лампой перемещение ее отражателя вызовет при анимации по методу обратной кинематики соответствующий поворот всех рычагов. Метод обратной кинематики позволяет: D реализовывать два типа сочленений объектов: вращающиеся и скользящие; D ограничивать диапазон действия сочленений объектов любыми осями координат, размером углового сектора поворота или расстоянием перемещения; П выполнять настройку таких параметров сочленений, как приоритетность, наличие и сила трения и т. п.
Способы реализации метода обратной кинематики Выполнить анимацию цепочки связанных объектов по методу обратной кинематики в 3ds max можно шестью различными способами, четыре из которых основываются на применении специализированных контроллеров обратной кинематики (в 3ds max такие контроллеры называют IK-решениями (Ж solvers)), а два не требуют никаких специальных контроллеров.
Виды IK-решений задачи обратной кинематики С программой 3ds max поставляются четыре типа IK-решений, позволяющих выполнять анимацию но методу обратной кинематики: D HD, или History Dependent IK solver (ЗП, или Зависящее от предыстории 1К-решение) — контроллер обратной кинематики, существовавший в ранних версиях
Анимация связанных объектов
167
программы 3ds max, где он именовался контроллером IK (Обратная кинематика). В отличие от старой версии контроллер HD IK solver (ЗП IK-решение) может применяться не только к системе объектов Bones (Кости), но и к любой иерархической цепочке объектов. Зависимость от предыстории означает, что чем больше времени проходит от начала анимации, тем больше вычислительных затрат требуется программе для получения решения задачи обратной кинематики. В связи с этим применять данный контроллер имеет смысл только для анимации коротких по времени фрагментов. Он хорошо подходит для анимации механических устройств, особенно если они содержат скользящие сочленения; D HI, или History Independent IK solver (НЭП, или Не зависящее от предыстории IК-решение) — новый тип контроллера, эффективность которого не зависит от длительности временного сегмента анимации. На расчет решения задачи обратной кинематики в кадре № 1000 затрачивается столько же вычислительных ресурсов, как и на расчет в кадре № 10. Этот контроллер является наиболее предпочтительным при анимации персонажей и создания анимаций большой продолжительности. Может применяться как к системам объектов Bones (Кости), предназначенных для создания скелетов при анимации персонажей, так и к любым другим цепочкам связанных объектов; П IK Limb solver (IK-решение для сустава) — контроллер, применяемый для анимации по методу обратной кинематики только пары связанных объектов («костей»). Так же как и два предыдущих контроллера, данный контроллер может применяться как к объектам Bones (Кости), так и к обычным объектам, связанным друг с другом в иерархические пары. Он быстро работает и пригоден для анимации рук и ног компьютерных персонажей; П SplinelK Solver (Сплайновое IK-решение) — контроллер, предназначенный для анимации связанных иерархических цепочек объектов-костей, используемых в качестве скелета вытянутых извивающихся тел наподобие хвостов, гусениц, щупалец или змей. В соответствии со своим названием позволяет использовать сплайиовую или NURBS-кривую для придания цепочке костей формы этой кривой и дает возможность управлять кривизной цепочки, перемещая специальные маркеры в вершинах кривой. Использование IK-решений для анимации связанных объектов будет рассмотрено далее на примере объектов типа Bones (Кости) в подразделе «Анимация системы объектов Bones с помощью IK-контроллеров».
Варианты реализации метода обратной кинематики без использования 1К-решений Анимация по методу обратной кинематики была реализована в программе 3ds max раньше, чем в пей появились специализированные контроллеры обратной кинематики. Для анимации цепочки связанных объектов можно использовать один из двух вариантов метода обратной кинематики: П приложенная обратная кинематика (Applied IK) — метод, основанный на использовании направляющего объекта (follow object). Направляющим объектом может служить любой объект сцены, который подвергнут анимации. Часто в качестве направляющего используется вспомогательный объект-пустышка. Для анимации цепочки какой-то из ее объектов должен быть привязан к направ-
168
Глава 3. Анимация связанных объектов
ляющему объекту при помощи кнопки Bind (Привязать) свитка Object Parameters (Параметры объекта) командной панели Hierarchy (Иерархия), который рассматривается ниже. После запуска процесса анимации выполняется автоматический расчет ключей сразу для всей заданной серии кадров с учетом ограничений подвижности сочленений объектов. При этом не требуется включать режим анимации кнопкой Animate (Анимация); D интерактивная обратная кинематика (Interactive IK) — реализуется путем ручного перемещения и поворота объектов цепочки в окнах проекций при включенном режиме анимации, то есть при нажатой кнопке Animate (Анимация). В этом режиме 3ds max также учитывает ограничения на подвижность сочленений, но позволяет создать ключ анимации только в текущем кадре. Результаты, полученные с помощью данного метода, могут отличаться от результатов анимации по методу приложенной IK, при использовании которого движение оптимизируется сразу на всем сегменте времени анимации. Для реализации методов как интерактивной, так и приложенной обратной кинематики необходимо выполнить ряд однотипных действий, связанных с настройкой свойств объектов, входящих в цепочку, и их сочленений, а также ряд специфических действий, связанных собственно с анимацией объектов по методам интерактивной или приложенной обратной кинематики.
Подготовка цепочки объектов для анимации методом обратной кинематики Чтобы создать анимацию объектов, используя методы интерактивной или приложенной обратной кинематики, выполните следующие общие действия по настройке свойств объектов и их сочленений: 1. Свяжите объекты в иерархические цепочки, как и в случае прямой кинематики. При связывании всегда начинайте с последнего, самого младшего дочернего объекта цепочки и перемещайтесь к самому старшему объекту-предку. 2. Произведите тщательную настройку свойств всех объектов иерархической цепочки и их сочленений. Для этого выделите объект, входящий в состав иерархической цепочки, применительно к которому следует настроить параметры обратной кинематики, а затем щелкните на кнопке IK командной панели Hierarchy (Иерархия). Обычно начинать настройку следует с самого младшего дочернего объекта. Появятся свитки параметров обратной кинематики Inverse Kinematics (Обратная кинематика), Object Parameters (Параметры объекта), Auto Termination (Автоограничение). Если выделенный объект не является младшим потомком в цепочке, то появятся еще свитки Sliding Joints (Скользящие сочленения) и Rotational Joints (Вращающиеся сочленения). 3. Задайте степень привязки выделенного объекта к его исходному положению и ориентации, а также настройте приоритетность объектов, используя следующие параметры свитка Object Parameters (Параметры объекта), показанного на рис. 3.17: о Bind Position (Привязать к положению) — установка этого флажка заставляет выделенный объект иерархической цепочки стремиться сохранить свое
Анимация связанных объектов
169
текущее положение в глобальной системе координат или запять положеЛ ЮЩеГО ССЛИ ТаК ВОЙ 1ШЗПачеН Щелчок те1ГёГ °бЪСГ' ' "а «н°™е R atively - 0)тносительно) справа от °флажка заставляет выделенный объект -охранять свое положение относительно направляющего объекта Если кнопка R не нажата, то объект иерархической цепочки будет стремиться переместиться в положение, занимаемое направляющим объектом-
1?ИС; 3.17. Свиток Object Parameters командной панели Hierarchy
Bind Orientation (Привязать к ориентации) - установка этого флажка заявляет выделенный объект иерархической цепочки стремиться сохра1ТЬ свою текущую ориентацию в глобальной системе координат или принять ориентацию направляющего объекта. Щелчок на кнопке R справа от флажка заставляет выделенный объект сохранять свою ориентацию относительно направляющего объекта. Если кнопка R не нажата то объект иерархической цепочки будет стремиться повернуться так, чтобы соответствовать ориентации направляющего объекта; Axis (Ось) - флажки этой группы задают оси координат, на которые распространяется привязка; Weight (Вес) - позволяет задать степень влияния направляющего объекта на вязанный с ним объект цепочки, при этом значение 0 устраняет привязку;
170
Глава 3. Анимация связанных объектов
о Precedence (Приоритетность) — позволяет установить приоритеты (важность) объектов в кинематической цепочке. Этот параметр определяет степень влияния объекта на результат расчетов в ходе вычисления IK-решения. Чем выше значение параметра, тем сильнее влияние объекта на результат. Обычно приоритетность определяется и назначается самой программой. Текущее значение приоритетности объекта указывается в счетчике, если щелкнуть на одной из кнопок — Child-Parent (Потомок-Предок) или ParentChild (Предок-Потомок); о C h i l d - P a r e n t (Потомок-Предок) — устанавливает для всей цепочки более высокий приоритет объектов-потомков по отношению к предкам. Если щелкнуть на этой кнопке, то приоритет всех объектов-потомков выделенного объекта станет выше, чем у текущего объекта; о Parent-Child (Предок-Потомок) — устанавливает для всей цепочки более высокий приоритет объектов-предков по отношению к потомкам. Если щелкнуть на этой кнопке, то приоритет всех объектов-предков выделенного объекта станет выше, чем у текущего объекта; о Сору (Копировать), Paste (Вставить) — позволяют копировать параметры скользящих и вращающихся сочленений от одного объекта к другому. Выделите объект с настроенными параметрами сочленения и щелкните на кнопке Сору (Копировать), затем выделите другой объект и щелкните на кнопке Paste (Вставить); о Mirror Paste (Вставить зеркально) — используйте этот переключатель для выбора оси координат, относительно которой будет производиться зеркальное отражение параметров сочленений IK-цепочки при вставке. 4. Присвойте сочленению выделенного объекта с родительским объектом тип скользящего или вращающегося, а также задайте ограничения подвижности сочленений, которые будут учитываться в ходе решения задачи обратной кинематики, используя три однотипные группы параметров — X Axis (Ось X), Y Axis (Ось Y) и Z Axis (Ось Z) — свитков Sliding Joints (Скользящие сочленения) и Rotational Joints (Вращающиеся сочленения), последний из которых показан па рис. 3.18: о Active (Активно) — флажок, раз- ••>i,:u решающий выделенному объекту ЗАМЕЧАНИЕ | скользить вдоль или поворачиваться вокруг той оси локальной системы координат объекта-предка, к которо относится данный флажок. Если флажок сброшен, при решении зада оижинематишй»; то перемещение или поворот относительно данной оси запрещены. По умолчанию флажки всех трех осей в свитке Sliding Joints (Скользящие сочленения) сбрасываются, а в свитке Rotatiolnal Joints (Вращающиеся сочленения) — устанавливаются, то есть соединению по умолчанию назначается тип вращающегося по всем трем осям;
171
Анимация связанных объектов
•ш
шЛВИЯш
ВЕГ "_,.«.
Рис. 3.181 Свиток Rotatiolnal Joints командной панели Hierarchy
о Limited (Ограниченно) — установка этого флажка включает режим ограничения движения относительно выбранной оси координат. Допустимые верхний и нижний пределы движения сочленения вдоль заданных осей задаются счетчиками From (От) и То (До). Для вращающихся сочленений значения данных параметров измеряются в градусах; о
Ease (Плавно) — включает режим плавного замедления скольжения по мере приближения к границам допустимого диапазона;
о Spring Back (Пружинный буфер) — если данный флажок установлен, то сила упругости воображаемой буферной пружины, заставляющей объект возвращаться назад после того, как он минует точку равновесного состояния, будет возрастать по мере удаления объекта от этой точки. Положение точки равновесного состояния задается в счетчике справа от флажка; о Spring Tension (Натяжение пружины) — задает силу натяжения воображаемой буферной пружины;
Глава 3. Анимация связанных объектов
172
о D a m p i n g (Демпфирование) — позволяет успокаивать движение объекта в сочленении, увеличивая сопротивление силам обратной кинематики. Допустимые значения параметра лежат в диапазоне от 0 до 1, где 1 соответствует наибольшей демпфирующей силе. Успокоение движения позволяет имитировать реальные процессы типа действия сил трения или инерции. 5. Установите в цепочке объектов ограничитель. Если этого не сделать, то анимация распространится на все родительские объекты, даже самый старший из которых не останется в неподвижности. С этой целью выделите в составе цепочки объект, который должен служить ограничителем анимации, и установите флажок Terminator (Ограничитель) в самом верху свитка Object Parameters (Параметры объекта) (см. рис. 3.17). В результате анимация будет действовать только на объекты, являющиеся дочерними по отношению к ограничителю. 6. Установите флажок Auto Termination (Автоограничение) в свитке Auto Termination (Автоограничение) (рис. 3.19), чтобы решение IK-цепочки ограничивалось автоматически. Счетчик # of Links Up (Число связей вверх) задает, насколько далеко от начала цепочки будет размещаться ограничитель.
Рис. 3.19. Свиток Auto Termination командной панели Hierarchy
На этом настройка цепочки для применения метода обратной кинематики завершается и наступает время реализовывать собственно анимацию.
Интерактивная анимация объектов по методу обратной кинематики Чтобы создать анимацию предварительно настроенной цепочки связанных объектов по методу интерактивной обратной кинематики, выполните следующие действия: 1. Придайте всем связанным объектам исходные положения, применяя к ним преобразования перемещения или поворота. Включите режим обратной кинематики, щелкнув на кнопке Interactive IK (Интерактивная обратная кинематика) в свитке Inverse Kinematics (Обратная кинематика) командной напели Hierarchy (Иерархия) (рис. 3.20). Кнопка зафиксируется и подсветится синим цветом. Установите в качестве текущего ну, :.:,...,,,,,.,..,, левой кадр анимации. Щелкните на ЗАМ Е Ч АН И Е кнопке Auto Key (Автоключ). 2. Установите в качестве текущего кадр, в котором будут созданы ключи апимации. Выберите нужный ипструмент преобразования и вручную нереместите или поверните младший дочерний объект, располагающийся
Кнопка Interactive IK (Интерактивная обрат-
ная кинематика) в свитке Inverse Kinematics (Обратная кинематика) командной панели.Hierarchy (Иерархия) играет в : 3ds max ry ментов
^ предыдущий версиях программы,
Анимация связанных объектов
173
на конце кинематической цепочки. Наблюдайте за тем, как все родительские объекты вплоть до ограничителя будут изменять свое положение и ориентацию, следуя за младшим дочерним объектом, с учетом ограничений на подвижность сочленений. Для этих родительских объектов будут созданы ключи анимации в текущем кадре.
Рис. 3.20. Свиток Inverse Kinematics командной панели Hierarchy
3. Смените номер текущего кадра и повторите действия по перемещению или повороту младшего дочернего объекта. Продолжайте настраивать ключи анимации, пока не достигнете конца временного сегмента анимации. Выключите режим анимации, щелкнув на кнопке Auto Key (Автоключ). Выключите режим интерактивной обратной кинематики, щелкнув на кнопке Interactive IK (Интерактивная обратная кинематика) в свитке Inverse Kinematics (Обратная кинематика). 4. Воспроизведите анимацию в окне проекции, создайте ее эскиз или выполни- CD те визуализацию обычным порядком. Посмотрите пример анимации в файле ГШ! Lampa-interactivlK.avi компакт-диска.
Приложенная анимация объектов по методу обратной кинематики Чтобы создать анимацию предварительно настроенной цепочки связанных объектов по методу приложенной обратной кинематики, выполните следующие действия: 1. Создайте направляющий объект, за перемещениями и поворотами которого будет следовать младший дочерний или иной объект кинематической цепочки. В качестве такого объекта часто используют вспомогательный объект-пустышку (Dummy), который не включается в изображение сцены при визуализации. Выполните анимацию объекта, который будет играть роль направляющего при анимации цепочки по методу приложенной обратной кинематики, обычным методом ключевых кадров. При этом старайтесь заставить его перемещаться так, как впоследствии должен будет двигаться дочерний объект цепочки. 2. Настройте общие параметры метода приложенной обратной кинематики в целях создания ключей всех объектов иерархической цепочки, используя элементы
174
Глава 3. Анимация связанных объектов
управления свитка Inverse Kinematics (Обратная кинематика) (рис. 3.20). Используйте для настройки следующие параметры свитка: о Apply Only To Keys (Применять только к ключам) — если этот флажок установлен, то IK-решение будет рассчитываться только для тех кадров, в которых имеются ключи для направляющего объекта. Если флажок сброшен, IK-решеиие будет рассчитываться для всех кадров анимации, каждый из которых в итоге станет ключевым кадром; о Update Viewports (Обновить окна) — установка этого флажка обеспечивает последовательное, кадр за кадром, обновление изображений в окнах проекций по мере нахождения IK-решения; о Clear Keys (Удалить ключи) — установка этого флажка ведет к удалению всех ключей кинематической цепочки до начала расчетов IK-решения; о Start (Начало), End (Конец) — два счетчика, позволяющие указать интервал времени анимации, для которого рассчитывается решение задачи обратной кинематики. 3. Привяжите выделенный объект цепочки к направляющему объекту. Для этого щелкните на кнопке Bind (Привязать) в разделе Bind to Follow Object (Привязать к направляющему объекту) свитка Object Parameters (Параметры объекта). Кнопка зафиксируется в нажатом положении и подсветится желтым цветом. Щелкните на выделенном объекте иерархической цепочки и перетащите курсор к направляющему объекту. За курсором будет тянуться пунктирная линия. Когда курсор окажется над направляющим объектом, он примет вид канцелярской кнопки (рис. 3.21). Отпустите кнопку мыши. Направляющий объект на миг выделится, а затем примет обычную окраску. В разделе Bind to Follow Object (Привязать к направляющему объекту) над кнопкой Bind (Привязать) появится имя направляющего объекта, а вокруг всех объектов цепочки появятся белые габаритные контейнеры, указывающие на формирование ключа анимации для этих объектов в текущем кадре. Еще раз щелкните на кнопке Bind (Привязать) для выключения режима привязки. Чтобы при необходимости отменить привязку объекта цепочки к направляющему объекту, выделите объект цепочки и щелкните на кнопке Unbind (Отменить привязку). Направляющий объект
Процесс привязки младшего дочернего объекта — колпака лампы — к направляющему объекту-пустышке
175
Анимация связанных объектов
4. Закончив настройку параметров, щелкните па кнопке Apply IK (Применить IK) в свитке Inverse Kinematics (Обратная кинематика). Это приведет к запуску процесса расчета IK-решения, то есть нахождения необходимых преобразований положения и вращения для всех объектов цепочки. Щелкать на этой кнопке следует только после того, как будут заданы все остальные параметры и ограничения обратной кинематики. В ходе расчета ключей в строке состояния появляется прогресс-индикатор, отображающий ход выполнения расЗАМЕЧАНИЕ четной задачи, ползунок таймера аниЕсли запустить процес^' решения- задачи ; мации перемещается но шкале вреобратной ;кин^м|тйки^р^нь'1ие/.;.чэы, будут ; мени, а в строке треков появляются тщательно настроены^ о ' значки рассчитанных ключей. Дожности ляющих ' дитесь завершения расчетов и восзультат;мо> IK Solvers > HI Solver (Анимация > IK-решения > НЗП-решение). Если предварительно не было выделено никакой кости, то команды в подменю IK Solvers (IK-решения) будут недоступны. 3. Переместите курсор в активное окно проекции. От опорной точки выделенной кости потянется пунктирная линия. Если вы хотите распространить действие контроллера вверх по цепочке, укажите курсором на кость, вокруг опорной точки которой должно будет происходить вращение системы костей. Если требуется распространить действие контроллера вниз но цепочке, установите курсор на кость, в опорной точке которой разместится объект Goal (Цель). Курсор должен изменить свой вид с наклонной стрелки на крестик, указывая на возможность выделения кости. Щелкните кнопкой мыши. Появится символическое изображение цени контроллера в виде белых линий и изображение объекта Goal (Цель) в виде перекрестья (см. рис. 3.40 и 3.41).
195
Система объектов Bones
Для удаления контроллера, назначенного системе костей, достаточно выделить объект-цель и нажать клавишу Delete. Для анимации скелета, состоящего из ветвящихся цепочек костей, следует применить к каждой из требующих анимации цепочек по отдельному контроллеру типа HI IK solver (НЭП IK-решение). Чтобы связать с «костями» сетчатую оболочку, которая будет изображать анимируемый объект, используйте модификатор Skin (Оболочка) из состава программы 3ds max или модификатор Physique (Телосложение) из состава программного модуля Character Studio, рассмотрение которого выходит за рамки данного издания.
Настройка параметров контроллера HI IK solver Настройка параметров контроллера HI IK solver (НЭП IK-решение) производится в свитках IK Solver (IK-решение), IK Solver Properties (Свойства IK-решения) и IK Display Options (Параметры отображения IK-цепочки) командной панели Motion (Движение) (рис. 3.43). Для получения доступа к этим свиткам следует выделить объект-цель на конце IK-цепочки, примененной к системе объектов Bones (Кости).
"!"
Рис. 3.43; Свитки IK Solver, IK Solver Properties и IK Display Options
Свиток IK Solver При необходимости можете изменить тип IK-решеиия с помощью раскрывающегося списка в верхней части свитка IK Solver (IK-решение). Список включает два варианта: IK HI solver (НЭП IK-решение) и IK Limb (1К-сустав). Кнопка Enabled (Включено) позволяет выключать и включать привязку контроллера к глобальному пространству. Во включенном состоянии перекрестье Goal (Цель) контроллера привязано к своему положению в глобальном пространстве. Это удобно, например, при анимации ног персонажа, так как при перемещении
196
Глава 3. Анимация связанных объектов
всего персонажа его ноги, управляемые контроллерами IK HI solver (НЭП IK-решение), будут оставаться па месте и не будут проскальзывать относительно опорной поверхности. При выключении привязки перекрестье Goal (Цель) перестает быть привязанным к своему положению в глобальном пространстве. Это позволяет перемещать систему костей вместе с перекрестьем Goal (Цель). При этом контроллер будет продолжать действовать и управлять системой костей, которой он назначен, если будет установлен флажок IK for FK Pose (IK для позы FK). Это удобно при анимации рук персонажа. При перемещении торса руки перемещаются вместе с перекрестьями контроллеров IK HI solver (НЭП IK-решение), назначенных костям рук. В то же время остается возможность выделить объект Goal (Цель) и управлять руками. Для дальнейшей настройки параметров контроллера используйте следующие элементы управления свитка IK Solver (IK-решение): П IK/FK Snap (IK/FK-привязка) — нажатие этой кнопки обеспечивает перемещение объекта-цели на конец цепочки, если он по каким-либо причинам оказался в стороне от конца цепочки. Например, если при сброшенном флажке Auto Snap (Автопривязка) после перемещения объекта-цели по методу обратной кинематики выключить действие этого режима, щелкнув на кнопке Enabled (Включено), то все кости могут сместиться и объект-цель окажется в стороне от конца цепочки. Для его возвращения на место щелкните на кнопке IK/FK Snap (IK/FK-привязка); П Auto Snap (Автопривязка) — если этот флажок установлен, то IK/FK-привязка выполняется автоматически при каждом включении или выключении действия обратной кинематики кнопкой Enabled (Включено). В разделе Preferred Angles (Опорные углы) имеются кнопки: D Set As Pref Angles (Задать как опорные углы) — позволяет задать опорные значения углов поворота каждой кости в ее родительской системе координат. Текущие значения таких углов можно видеть в свитке Rotational Joints (Вращающиеся сочленения) выделенной кости, который доступен на командной панели Hierarchy (Иерархия) при нажатой кнопке IK; П Assume Pref Angles (Восстановить опорные углы) — щелчок на этой кнопке восстанавливает исходные значения опорных углов. При необходимости переместить начало или конец IK-цепочки на другие кости системы Bones (Кости) делайте это с помощью кнопок Pick Start Joint (Указать начальную кость) и Pick End Joint (Указать конечную кость) из раздела Bone Joints (Сочленения костей) свитка IK Solver (IK-решение). Щелкните на одной из кнопок, а затем выделите нужную кость в любом из окон проекций или после щелчка на кнопке нажмите клавишу Н и выберите кость по имени из списка. Свиток IK Solver Properties Настройте при необходимости угол ориентации плоскости сгиба системы костей с помощью следующих инструментов из раздела IK Solver Plane (Плоскость !К-решения) свитка IK Solver Properties (Свойства 1К-решения):
Система объектов Bones
197
D Swivel Angle (Угол сгиба) — позволяет изменять угол сгиба, заставляя 1К-цепочку вращаться вокруг линии, замыкающей цепь связей (см. рис. 3.42). Аналогичное изменение угла можно произвести вручную с помощью инструмента Select and Manipulate (Выделить и манипулировать), как было описано ранее; D Pick Target (Указать цель) — позволяет указать объект сцены, который будет использоваться для анимации угла сгиба. Щелкните на кнопке, а затем на нужном объекте в любом из окон проекций. Часто в качестве такого объекта используют вспомогательные объекты Dummy (Пустышка) или Point (Точка). Анимация перемещения выбранного объекта будет влиять на угол сгиба, если установлен флажок Use (Использовать); D Parent Space (Пространство предка) — переключатель на два положения, позволяющий установить, относительно чего будет отсчитываться угол плоскости сгиба: IK Goal (Цель IK-цепочки) или Start Joint (Старшая кость). Задайте в разделе Thresholds (Пороги) свитка нужные значения параметров Position (Положение) и Rotation (Поворот). Эти параметры задают предельные значения допустимых отклонений объекта-цели IK-цепочки от положения и ориентации концевого эффектора системы костей. Решение уравнений обратной кинематики считается найденным, если в результате этого решения расстояние между концевым эффектором и объектом-целью или угол ориентации объекта-цели относительно эффектора будут меньше пороговых величин, указанных в данных счетчиках. Параметры Position (Положение) и Rotation (Поворот) аналогичны тем, которые задаются на вкладке Inverse Kinematics (Обратная кинематика) окна диалога Preference Settings (Настройка параметров), однако в отличие от них действуют не на все цепочки обратной кинематики, а только на данную систему объектов типа Bones (Кости). Укажите в счетчике Iterations (Итераций) раздела Solution (Решение) максимальное число циклов итерационного алгоритма, по которому ищется решение уравнений обратной кинематики. Чем выше число итераций, тем больше шансов найти решение, но тем больше времени требуется на это программе.
Свиток IK Display Options Настройте параметры отображения элементов IK-цепочки в свитке IK Display Options (Параметры отображения IK-цепочки), используя следующие однотипные элементы управления из разделов End Effector Display (Отображение концевого эффектора), Goal Display (Отображение цели) и Swivel Angle Manipulator (Манипулятор угла сгиба): П Enabled (Включено) — включает/выключает отображение соответствующего элемента. Концевой эффектор изображается в виде перекрестья зеленого цвета, объект-цель — в виде перекрестья синего цвета, а манипулятор — в виде рычага зеленого цвета, который становится виден только после нажатия кнопки Select and Manipulate (Выделить и манипулировать) главной панели инструментов;
198
Глава 3. Анимация связанных объектов
П Size (Размер) — задает размер соответствующего элемента управления. Для манипулятора помимо этого счетчика имеется еще счетчик Length (Длина), задающий длину рычага. П Установка флажка Enabled (Включено) в разделе IK Solver Display (Отображение IK-цепочки) обеспечивает показ линий IK-цепочки даже в том случае, если объект-цель на конце цепочки не выделен.
Анимация системы костей контроллером SplinelKSolver CD
Контроллер SplinelKSolver (Сплайновое IK-решение) предназначен для анимации связанных иерархических цепочек объектов-костей, используемых в качестве скелетов вытянутых извивающихся тел вроде хвостов, гусениц, щупалец или змей (рис. 3.44).
о
Изгиб и анимация этого хвоста (а) обеспечены за счет скелета из объектов Bones (Кости), к которому применен контроллер SplinelKSolver (Сплайновое IK-решение) (б)
В соответствии со своим названием контроллер SplinelKSolver (Сплайновое IK-решение) позволяет использовать силайповую или NURBS-кривую для придания
Система объектов Bones
199
цепочке костей формы этой кривой и управлять кривизной цепочки, перемещая специальные маркеры в вершинах кривой, показанные па рис. 3.44, б в виде кубиков черного цвета. Существуют два способа применения контроллера S p l i n e l K S o l v e r (Сплайновое IK-решение) к системе объектов Bones (Кости): П
в процессе создания системы объектов-костей путем автоматической генерации сплайновой кривой, повторяющей форму цепочки костей;
D путем связывания готовой системы объектов-костей с отдельно созданным для этого сплайном, когда цепочке костей автоматически придается форма сплайна. Последний способ имеет разновидность, при которой контроллер SplinelKSolver (Сплайновое IK-решение) применяется к готовой цепочке костей без одновременного назначения управляющего сплайна, а назначение такого сплайна производится отдельно.
Применение контроллера SplinelKSolver в процессе создания объекте в-костей Чтобы создать систему объектов-костей и автоматически назначить ей контроллер SplinelKSolver (Сплайновое IK-решение), щелкните на кнопке Systems (Системы) командной панели Create (Создать), а затем на кнопке Bones (Кости). В раскрывающемся списке IK Solver (IK-решение) свитка IK Chain Assignment (Назначение IK-цепочки) (см. рис. 3.24), выберите вариант SplinelKSolver (Сплайновое IK-решение). Для применения контроллера анимации ко всей цепочке костей, включая корневой объект, установите флажок Assign To Children (Применить к дочерней кости). При этом флажок Assign To Root (Применить к корневой кости) устанавливается автоматически. Создайте в любом из окон проекций цепочку костей, разместив их вдоль произвольной траектории, как, например, показано на рис. 3.45. Для завершения процесса создания цепочки щелкните правой кнопкой мыши.
Рис. 3,45, Создана цепочка объектов-костей, размещенных вдоль воображаемой извилистой линии
Как только вы щелкнете правой кнопкой мыши, чтобы закончить создание цепочки костей, появится окно диалога Spline IK Solver (Сплайновое IK-решение) (рис. 3.46).
200
Глава 3. Анимация связанных объектов
UR8> :
iie !\пШ' |
Рис. 3.46. Окно диалога Spline IK Solver (Онлайновое IK-решение) позволяет настраивать параметры сплайнового контроллера обратной кинематики
Используйте для настройки параметров контроллера следующие элементы управления из раздела Spline Options (Параметры сплайна) окна диалога Spline IK Solver (Сплайновое IK-решение): D IK Name (Имя IK-цели) — позволяет задать имя объекта-цели IK-цепочки, который появляется на конце цепочки в виде перекрестья синего цвета после щелчка па кнопке О К данного окна; D Auto Create Spline (Автоматически создать сплайн) — установка этого флажка обеспечивает автоматическое создание сплайна, повторяющего форму цепочки. Если флажок сброшен, то контроллер будет применен, но сплайн не будет создан и его потребуется создавать и применять к цепочке вручную; П Curve Type (Тип кривой) — переключатель, задающий тип создаваемой кривой: Bezier (Сплайн Безье), NURBS Point (Точечная NURBS-кривая) или NURBS CV (NURBS-кривая типа CV); П Number of Spline Knots (Число узлов сплайна) — задает число управляющих узлов, которые будут созданы на кривой. За счет перемещения этих узлов выполняется изменение формы и анимация кривой. По умолчанию число узлов принимается равным числу костей в цепочке. Однако в связи с тем, что основное предназначение сплайпового контроллера обратной кинематики состоит в облегчении анимации за счет уменьшения числа объектов, которыми требуется управлять, следует уменьшить количество узлов по сравнению с числом костей хотя бы в два раза. Если сделать число узлов намного меньше числа костей, кривая не сможет точно воспроизвести форму цепочки элементов скелета. Чтобы в узловых точках управляющей кривой появлялись вспомогательные объекты-точки, установите флажок Create Helpers (Создать вспомогательные объекты) в разделе Helper Options (Параметры вспомогательных объектов) окна диалога Spline IK Solver (Сплайновое IK-решение).
Система объектов Bones
201
Настройте параметры отображения вспомогательных объектов, используя элементы управления из раздела Display (Отображение) окна диалога Spline IK Solver (Сплайновое IК-решение). Эти элементы управления но своему назначению и использованию не отличаются от аналогичных элементов управления вспомогательного объекта Point (Точка). Их назначение будет рассмотрено в следующем подразделе «Применение контроллера SplinelKSolver к готовой системе костей». Закончив настройку, щелкните в окне диалога Spline IK Solver (Сплайновое IK-peшение) на кнопке ОК. Программа автоматически применит к цепочке костей контроллер SplinelKSolver (Сплайновое IK-решение). Одновременно будет создана кривая выбранного типа с заданным числом управляющих узлов (рис. 3.47). ср Чтобы увидеть саму кривую, нужно переключиться в режим каркасного отобра- ЬВШ жепия или временно скрыть объекты-кости.
К цепочке костей автоматически применен контроллер SplinelKSolver, и создана управляющая кривая по форме цепочки с заданным числом узлов
Применение контроллера SplinelKSolver к готовой системе костей Чтобы применить контроллер SplinelKSolver (Сплайновое IK-решение) к готовой системе объектов-костей и одновременно с этим автоматически придать этой системе форму управляющей кривой, выполните следующие действия. Как и в предыдущем случае, щелкните на кнопке Systems (Системы) командной панели Create (Создать), а затем на кнопке Bones (Кости). В свитке IK Chain Assignment (Назначение IK-цепочки) (см. рис. 3.24) не устанавливайте флажок Assign To Children (Применить к дочерней кости), чтобы исключить автоматическое создание контроллера. Создайте в любом из окон проекций цепочку костей, разместив их вдоль произвольной траектории или просто вдоль прямой. Для завершения процесса создания цепочки щелкните правой кнопкой мыши. Постройте рядом с цепочкой кривую, придав ей форму, которую должна будет принять цепочка костей, как, например, показано на рис. 3.48. При этом совершенно не обязательно стараться обеспечить соответствие длины кривой длине цепочки костей. Лучше создать кривую с небольшим запасом по длине.
202
Глава 3. Анимация связанных объектов
Подготовив сплайн и цепочку костей, выделите ту кость, которая должна стать корневой в цепочке. Выполните команду меню Animation > IKSolvers > SplinelKSolver (Анимация > IK-решения > Сплайновое IK-решение). Переместите курсор в окно проекции. От корневой кости потянется пунктирная линия. Щелкните на кости, которая должна замыкать цепочку. Будет создан объект-цель в виде синего перекрестья. Теперь переместите курсор, за которым будет продолжать тянуться пунктирная линия, к сплайну (рис. 3.49).
Создана цепочка объектовкостей, размещенных вдоль прямой линии, и подготовлена управляющая кривая в виде сплайна Безье
Рис. 3.49. Сплайновый контроллер обратной кинематики создан на цепочке костей; но программа позволяет указать управляющий сплайн
Щелкните на сплайне, и цепочка костей переместится так, чтобы сплайн проходил по ее оси, приняв при этом форму кривой (рис. 3.50). При этом к управляющей кривой автоматически будет применен модификатор Spline IK Control (Управление сплайном для IK), а в точках вершин кривой будут созданы вспомогательные объекты-точки, облегчающие манипулирование формой кривой при анимации. Если выделить кривую, то в нижней части панели M o d i f y (Изменить) появится свиток Spline IK Control Parameters (Параметры управления сплайном для IK). В списке Control Objects (Управляющие объекты) будут видны имена вспомогательных объектов (рис. 3.51).
203
Система объектов Bones
Рис.3,50, Цепочка костей, управляемых контроллером SplinelKSolver, оказалась связанной с управляющим сплайном
Рис. 3.51 Свиток Spline IK Control Parameters содержит элементы настройки управляющей кривой контроллера обратной кинематики
Кнопка Create Helpers (Создать вспомогательные объекты) в свитке Spline IK Control Parameters (Параметры управления сплайном для IK) служит для создания вспомогательных объектов в вершинах кривой в том случае, если модификатор Spline IK Control Parameters (Параметры управления сплайном для IK) был применен к кривой не автоматически, в процессе связывания с цепочкой костей, а вручную, посредством выбора в списке модификаторов на панели Modify (Изменить).
204
Глава 3. Анимация связанных объектов
Переключатель Link Types (Типы связи) дает возможность связать каждый из вспомогательных объектов различными способами: п Link All in Hierarchy (Связать все по иерархии) — каждый вспомогательный объект связывается с предшествующим ему объектом, считая от первой вершины кривой, скажем, четвертый с третьим, третий со вторым, второй с первым; D Link All to Root (Связать все с корневым) — все вспомогательные объекты связываются с тем, который помещен на месте первой вершины; П No Linking (Нет связей) — вспомогательные объекты не будут связаны. Элементы управления раздела Helper Display (Отображение вспомогательных объектов) не отличаются от аналогичных элементов управления обычного вспомогательного объекта Point (Точка): П Center Marker (Маркер центра) — включает отображение маленького диагонального крестика в центре вспомогательного объекта; D Axis Tripod (Тройка векторов) — включает показ тройки координатных векторов осей локальных координат вспомогательного объекта; D Cross (Перекрестье) — включает отображение крупного перекрестья в центре вспомогательного объекта; П Box (Кубик) — включает отображение габаритного куба, центром которого является вспомогательный объект. Счетчик Helper Size (Размер маркера) позволяет задать размеры вспомогательного объекта. При необходимости можете также установить следующие флажки: D Constant Screen Size (Фиксированный размер на экране) — заставляет объект-точку иметь постоянный размер независимо от масштаба изображения; П Draw On Top (Изображать поверх) — заставляет выделенный объект-точку изображаться в окнах проекций при тонированном показе поверх всех остальных объектов сцены, как если бы они были прозрачными.
Назначение управляющего сплайна после применения контроллера SplinelKSolver Контроллер SplinelKSolver (Сплайновое IK-решение) можно применить к готовой системе объектов-костей, но при этом не назначать для данного контроллера управляющий сплайн, отложив эту операцию на последующий этап работы над анимацией. Чтобы назначить управляющую кривую контроллеру SplinelKSolver (Сплайновое IK-решение), примененному к готовой системе костей, выполните следующие действия: 1. Создайте систему объектов-костей и примените к пей контроллер SplinelKSolver (Сплайновое IК-решение), как описано в п. и. 1—4 предыдущего подраздела. Когда будет создан объект-цель па конце цепочки, щелкните правой кнопкой мыши, чтобы завершить процесс создания контроллера.
205
Система объектов Bones
2. Подготовьте управляющую кривую в виде сплайна Безье или NURNS-кривой, как описано в предыдущем подразделе. Примените к пей модификатор Spline IK Control (Управление сплайном для IK). 3. Выделите объект-цель па конце цепочки и перейдите на командную панель Motion (Движение). В свитке Spline IK Solver (Сплайновое IK-решение) щелкните на кнопке под надписью Pick Shape (Указать форму), а затем щелкните на кривой в окне проекции (рис. 3.52). Имя кривой появится на кнопке, однако цепочка костей пока никуда не переместится, потому что требуется еще вручную применить к корневой кости ограничитель положения.
Рис. 3.52. Свитки параметров контроллера Spline IK Solver на командной панели Motion
4. Выделите корневую кость цепочки и выполните команду меню Animation > Constraints > Position Constraint (Анимация > Ограничители > Ограничитель положения). Переместите курсор в окно проекции. От корневой кости к курсору потянется пунктирная линия. Укажите на вспомогательный объект на конце сплайна, за которым должна следовать корневая кость, и щелкните кнопкой мыши. Цепочка костей переместится так, чтобы сплайн проходил по ее оси, и примет форму кривой (см. рис. 3.50).
Анимация цепочки костей с использованием контроллера SplinelKSolver Для анимации цепочки костей, к которой применен контроллер обратной кинематики SplinelKSolver (Сплайновое IК-решение) с автоматически созданной или назначенной управляющей кривой, включите режим анимации, перейдите к нужному кадру и переместите вспомогательные объекты в узлах управляющей кривой. Цепочка костей примет форму обновленной кривой. Повторите данную операцию, установив в качестве ключевого следующий кадр, и т. д.
206
Глава 3. Анимация связанных объектов
Персонажные сборки Для облегчения работ по анимации персонажей (character animation) в 3ds max применяется специальная разновидность групп объектов — персонажная сборка (character assembly). Персонажная сборка позволяет объединить в группу всю совокупность элементов, образующих компьютерного персонажа: сетку телесной оболочки, систему объектов-костей, составляющих скелет, вспомогательные объекты, добавленные для облегчения манипулирования костями при анимации, и т. п. После того как персонажная сборка создана, к ней как к единому целому можно применять различные операции, такие как загрузка или сохранение анимации. В отличие от обычной группы персонажная сборка позволяет выполнять различные действия над отдельными составляющими ее элементами, не требуя для этого выполнения команды открытия группы. Персонажную сборку, однако, можно заблокировать, и тогда доступ к ее элементам закрывается, как в обычной группе объектов. Команды, предназначенные для создания и настройки персонажных сборок, располагаются в меню Character (Персонаж).
Создание персонажной сборки Для создания персонажной сборки подготовьте сетку персонажа, постройте скелет из объектов-костей и поместите его внутрь сетки, как показано для примера на рис. 3.53. Скелет может иметь произвольные ветвления, а к телесной оболочке может быть применен модификатор Skin (Оболочка), дающий возможность производить ее деформацию.
Рис. 3.53.
Набор объектов, подготовленный для объединения в персонажную сборку
Выделите все объекты, которые должны составлять сборку, и выполните команду меню Character > Create Character (Персонаж > Создать персонаж). Под ногами персонажа, то есть на той координатной плоскости, где он располагается, появится значок созданной персонажной сборки (рис. 3.54). Этот значок называют сборочным
207
Персонажные сборки
узлом (node) созданной персонажной сборки. Сборочным узлам по умолчанию присваиваются имена CharacterOI, CharacterOZ и т. д.
Рис. 3.54. Под ногами персонажа появился значок сборочного узла созданной персонажной сборки
Если выделить этот значок, то па командной панели Modify (Изменить) появятся свитки параметров персонажной сборки, элементы управления которых будут рассмотрены далее в разделе «Настройка персонажной сборки на панели Modify».
Операции над персонажными сборками Различные операции над персонажными сборками выполняются с помощью команд меню Character (Персонаж). В этом меню имеются следующие команды: П Destroy Character (Разрушить персонаж) — эта команда доступна только при выделенном сборочном узле. Удаляет значок сборочного узла и делает объекты, составляющие персонажную сборку, независимыми друг от друга, как было до создания сборки; D Lock (Блокировать), Unlock (Разблокировать) — команды доступны только при выделенном значке сборочного узла. Блокировка исключает возможность выделения отдельных частей персонажной сборки, которая может в этом случае выделяться только как единое целое. После блокировки значок сборочного узла исчезает. В разблокированной персонажной сборке доступен для выделения любой из составляющих ее объектов; D Save Character (Сохранить персонаж) — сохраняет все составляющие элементы персонажной сборки, включая ключи анимации, а также значок сборочного узла для последующей вставки в эту же или другую сцену с помощью команды Insert Character (Вставить персонаж). Персонажная сборка сохраняется в файле формата *.chr; D Insert Character (Вставить персонаж) — вставляет в текущую сцену персонажную сборку, ранее сохраненную командой Save Character (Сохранить персонаж). Вставка производится в точку сцены с теми же координатами, которые имела сохраненная сборка;
208
Глава 3. Анимация связанных объектов
a Set Skin Pose (Установить исходную позу) — сохраняет текущие положения и ориентацию костей скелета персонажа в качестве исходной позы. Исходной позой (skin pose) называют позу персонажа, стоящего в полный рост с расставленными на ширину плеч йогами и руками, разведенными в стороны на уровне плеч (см. рис. 3.54). Именно такую позу придают сетке тела персонажа (skin — телесная оболочка, откуда и название нозы), так как в этой позе наиболее удобно выполнять настройку зон влияния костей скелета на телесную оболочку. При переходе к настройке анимации исходная поза нарушается. Сохранение исходной позы персонажа делается с той целью, чтобы в любой момент при настройке анимации можно было вернуться к ней, если обнаружатся погрешности в настройке зон влияния костей на оболочку тела; D Assume Skin Pose (Принять исходную позу) — заставляет персонаж принять позу, которая ранее была сохранена в качестве исходной с помощью команды Set Skin Pose (Установить исходную позу); D Skin Pose Mode (Режим исходной позы) — заставляет персонаж принять исходную позу и позволяет уточнить ее за счет перемещения, поворота или масштабирования костей скелета. После выключения режима исходной позы персонаж принимает ту позу, какую имел в текущем кадре анимации.
Настройка персонажной сборки на панели Modify При выделении в любом из окон проекций значка сборочного узла персонажной сборки на командной напели M o d i f y (Изменить) появляются свитки параметров (рис. 3.55).
* °~ ~ "
ПВопеСП ПВопе02 ПВопеОЭ П Вопе04
Рис. 3.55. Свитки Character Assembly и Character Members параметров персонажной сборки на панели Modify
Персонажные сборки
209
Для настройки персонажной сборки с помощью элементов управления свитка Character Assembly (Персонажная сборка) выполните следующие действия: 1. Чтобы установить исходную позу персонажа, придать ему такую позу в ходе анимации или перейти в режим настройки исходной позы, используйте три кнопки раздела Skin Pose (Исходная поза), которые по назначению и использованию полностью аналогичны соответствующим командам меню Character (Персонаж), рассмотренным в предыдущем разделе. 2. Установите с помощью счетчика Icon Size (Размер значка) группы Display (Отображение) размер значка сборочного узла. Часто при отладке анимации персонажа используют его упрощенную версию с малым числом полигонов (сетку низкого разрешения). Это ускоряет перерисовку экрана и облегчает процесс анимации. Если в состав персонажной сборки включены элементы тела персонажа и с уменьшенным, и с полным числом полигонов, то используйте переключатель группы D i s p l a y (Отображение) для выбора одного из следующих вариантов отображения: о Low Res Objects (Объекты малого разрешения) — в окнах проекций будут отображаться только объекты из состава персонажной сборки, помеченные в свитке Character Members (Элементы персонажа) флажками Low Res (Низкое разрешение); о Full Res Objects (Объекты полного разрешения) — в окнах проекций будут отображаться только объекты, не помеченные флажками Low Res (Низкое разрешение) в свитке Character Members (Элементы персонажа); о A l l Objects (Все объекты) — в окнах проекций будут отображаться объекты обоих типов. 3. Чтобы сохранить выполненную анимацию персонажа в составе персонажной сборки, отменить действие всех ключей анимации или загрузить анимацию, ранее настроенную для другого персонажа, с целью применения ее к текущему персонажу, используйте следующие кнопки раздела A n i m a t i o n (Анимация): о Insert Animation (Вставить анимацию) — вызывает появление окна диалога Merge Animation (Присоединить анимацию), подробно рассмотренного в главе 1 «Анимация трехмерных сцен», и одновременно открывает типовое окно выбора файла, чтобы загрузить ранее сохраненную анимацию. С помощью окна диалога можно применить анимацию, настроенную для какого-то персонажа, к другому персонажу со сходной иерархической структурой скелета; о Save Animation (Сохранить анимацию) — сохраняет анимацию персонажной сборки в виде файла форматов *.anm или *.xml. Оба файла содержат как описание составных частей персонажа, так и параметров их анимации. Различие форматов состоит в том, что файлы *.anm могут считываться и интерпретироваться только программой 3ds max. Файлы типа *.xml хранят информацию в текстовом виде на языке XML, так что их можно редактировать обычным текстовым редактором, хотя для этого и надо быть «гуру» данного языка; о Reset A l l Animation (Сбросить всю анимацию) — удаляет все ключи анимации всех элементов персонажной сборки.
210
Глава 3. Анимация связанных объектов
В свитке Character Members (Элементы персонажа) (см. рис. 3.55) перечисляются все составные элементы, входящие в текущую персонажную сборку. С помощью кнопки Add (Добавить) можно добавлять новые элементы в состав сборки. Щелкните на кнопке, а затем па нужном объекте в любом из окоп проекций. Кнопка Remove (Удалить) позволяет удалить из состава сборки любые элементы, имена которых выделены в списке свитка. Флажки группы Low Res (Низкое разрешение) позволяют обозначить в списке элементов те из них, которые должны появляться в окнах проекций при установке переключателя Low Res Objects (Объекты малого разрешения) в разделе Display (Отображение) свитка Character Assembly (Персонажная сборка).
Связывание параметров и заказные элементы управления Под связыванием параметров в 3ds max понимается возможность ставить параметры одних объектов в определенную функциональную зависимость от параметров других объектов, называемых управляющими, так что при изменении управляющего параметра зависимый тоже меняется. Похожая возможность реализована в виде контроллера анимации Expression (Алгоритмическое выражение). Однако в 3ds max связывание параметров упрощено и автоматизировано, для чего появились специализированные инструменты. При этом продолжает существовать и контроллер анимации Expression (Алгоритмическое выражение). Связывание параметров используется при анимации. Пусть, например, при моделировании автомобиля требуется, чтобы при повороте руля колеса тоже поворачивались на определенный угол. Для этого достаточно связать параметр угла ориентации руля в его локальной системе координат с угловым положением колес относительно нужной оси их локальных координат. При связывании допускается задавать коэффициенты пропорциональности связываемых параметров и формировать алгоритмические выражения, подобные используемым в контроллере Expression (Алгоритмическое выражение). Другой пример — анимация керосиновой лампы. Вы поворачиваете колесико подачи фитиля, и пламя загорается ярче. Это достигнуто связыванием угла поворота колесика с положением объекта, изображающего фитиль, с яркостью источника света, имитирующего свечение пламени, а также, возможно, с количеством частиц, воспроизводящих искры и дым огня. Связывать между собой можно любые разнородные параметры, требуется только, чтобы они имели одинаковую размерность, то есть оба являлись или скалярами, или векторами. Часто используют связывание управляемых параметров с положением или ориентацией пустого вспомогательного объекта типа Point (Точка) или Dummy (Пустышка). В 3ds max появились также специальные вспомогательные объекты, относящиеся к разновидности Manipulators (Манипуляторы), которые предназначены для управления другими объектами сцепы за счет связывания параметров. Манипуляторы будут рассмотрены далее в разделе «Создание манипуляторов в окнах проекций».
Связывание параметров и заказные элементы управления
211
Еще одной особенностью 3ds max является возможность создавать собственные элементы управления — счетчики, ползунки, переключатели, образцы цвета и т. п., которые появляются на командной панели Modify (Изменить) и первоначально не управляют ничем. Вы можете выбрать любой параметр объекта, например его положение по одной из осей координат, и связать этот параметр с величиной, задаваемой управляющим элементом, скажем, счетчиком или ползунком. После этого положением объекта можно будет управлять, вводя точное значение координаты в счетчик или перетаскивая ползунок. Порядок создания и использования таких элементов управления будет рассмотрен далее в разделе «Создание заказных элементов управления». Инструменты, необходимые для связывания параметров объектов, активизируются двумя командами подменю Wire Parameters (Связывание параметров), расположенного в нижней части меню Animation (Анимация). Это команды Wire Parameters (Связать параметры) и Parameter Wire Dialog (Диалог связывания параметров). Команда Wire Parameters (Связать параметры) имеется также в четвертном меню, вызываемом щелчком на объекте правой кнопкой мыши.
Связывание параметров Для связывания параметров создайте сцену, содержащую как минимум два объекта, один из которых будет управляемым, а другой — управляющим. Пусть для определенности требуется связать радиус примитива-сферы с высотой расположения примитива-параллелепипеда в глобальной системе координат. В итоге при анимации перемещения параллелепипеда вдоль оси Z будет наблюдаться анимация размеров сферы. Вообще говоря, положение объекта в глобальной системе координат задается вектором, то есть тройкой чисел-координат X, YwZ. Радиус сферы — это скалярное число с плавающей точкой. Связать с радиусом можно только одну из трех скалярных величин, которые задают положение параллелепипеда но каждой из осей координат. В 3ds max анимацией положения объектов по умолчанию управляет контроллер Position XYZ (Положение по XYZ), который включает в свой состав раздельные треки управления каждой из координат — X Position (Положение по X), Y Position (Положение по Y) и Z Position (Положение по Z). Чтобы убедиться в этом, раскройте окно диалога Track View — Curve Editor (Просмотр треков — Редактор кривых) и включите режим отображения текущих контроллеров. Как это делать, рассказывалось в предыдущей главе. Разверните ветвь дерева иерархии Objects > ВохСИ > Transform (Объекты > ПараллелепипедСИ > Преобразование). Так как анимация положения параллелепипеда не производилась, то на каждом из треков X Position (Положение по X), Y Position (Положение по Y) и Z Position (Положение по Z) хранится статическое значение соответствующей координаты параллелепипеда в виде числа с плавающей точкой. Чтобы увидеть эти числа, нужно переключить окно просмотра треков в режим Dope Sheet (Диаграмма ключей). Трек параметра Radius (Радиус) примитива-сферы находится на ветке Objects > Sphered > Object (Sphere) (Объекты > СфераСИ > Объект (Сфера)) дерева иерархии. На этом треке также хранится статическое значение радиуса в виде числа с плавающей точкой (рис. 3.56). Будем выполнять связывание параметра Radius (Радиус) примитива-сферы с параметром Z Position (Положение по Z) примитива-параллелепипеда.
212
Глава 3. Анимация связанных объектов
«»' Track View
Dope Sheet Tracks. 'Keys
time
Utilities
' gal
Окно диалога Track View Dope Sheet позволяет убедиться в соответствии типов параметров, предназначенных• для связывания
Выполните связывание параметров в интерактивном режиме в окне проекции. Для этого выделите управляемый объект (в пашем примере — сферу) и выполните цепочку команд основного меню Animation > Wire Parameters > Wire Parameters (Анимация > Связывание параметров > Связать параметры). В активном окне проекции напротив изображения управляемого объекта появится контекстное меню с двумя подменю, Transform (Преобразование) и Object (Sphere) (Объект (Сфера)) (рис. 3.57). Первое из них содержит перечень всех параметров преобразований, а второе — перечень всех характеристических параметров объекта. Выберите в меню управляемый параметр, например Radius (Радиус), и щелкните кнопкой мыши. Меню исчезнет, а от сферы за курсором потянется пунктирная линия, указывающая, что программа находится в режиме связывания параметров.
Segments Smooth Hemisphere Slice From Slice To
Рис. 3.57. Меню с перечнем всех параметров сферы позволяет выбрать управляемый параметр для связывания
213
Связывание параметров и заказные элементы управления
Переместите курсор к параллелепипеду и щелкните кнопкой мыши. Появится меню параметров параллелепипеда, в котором следует выбрать управляющий ср параметр. Например, выполните цепочку команд Transform > Position > I Position "2Ш (Преобразование > Положение > Положение по Z) (рис. 3.58).
РИС. ЗШШ: Меню с перечнем всех параметров параллелепипеда позволяет выбрать управляющий параметр для связывания
Появится окно диалога Parameters W i r i n g (Связывание параметров) (рис. 3.59). В левой и правой частях окна изображается дерево иерархии объектов сцены, такое же, как в окне просмотра треков. При этом на дереве в левой части окна выделяется параметр объекта, выбранный как управляемый (в данном случае радиус сферы), а на дереве в правой части окна — управляющий параметр (в данном примере это координата положения параллелепипеда по оси Z). Требуется указать направление влияния связываемых параметров, щелкнув на одной из кнопок со стрелками в центральной части окна диалога, относящихся к группе control direction (направление воздействия). Щелкните па кнопке со стрелкой, указывающей влево, чтобы получить возможность управлять радиусом за счет изменения высоты размещения параллелепипеда. Если щелкнуть на кнопке со стрелкой, указывающей вправо, то, наоборот, Z-координата параллелепипеда будет зависеть от радиуса сферы. Если щелкнуть на кнопке с двусторонней стрелкой, то влияние параметров будет взаимным. Задав направление влияния, щелкните па кнопке Connect (Связать) и закройте окно диалога, щелкнув на кнопке Close (Закрыть), расположенной на правом краю строки заголовка окна. Связывание закончено. Сфера исчезнет из виду. Теперь ее радиус равен текущей Z-координате параллелепипеда, а она равна пулю, так как параллелепипед был создан на плоскости окна вида сверху. Попробуйте перемещать параллелепипед вверх-вниз, и вы увидите, как сфера то растет, то уменьшается. Если перемещать параллелепипед ниже координатной плоскости XY, в область отрицательных значений координаты Z, то сферы не будет видно — она исчезнет, ведь радиус не может быть отрицательным числом. Перемещение параллелепипеда вдоль других осей глобальных координат, X или У, не сказывается па размерах сферы.
214
Глава 3. Анимация связанных объектов
Рис. 3.59. Окно диалога Parameters Wiring содержит все необходимые элементы управления связыванием параметров
Модификация связи параметров Для внесения изменений в установленную связь параметров выполните цепочку команд основного меню Animation > Wire Parameters > Parameter Wire Dialog (Анимация > Связывание параметров > Диалог связывания параметров), чтобы вызвать появление окна диалога Parameters W i r i n g (Связывание параметров). Для определенности продолжим предыдущий пример, внеся коррективы в связь параметров сферы и параллелепипеда. Пусть радиус сферы зависит от перемещения параллелепипеда не напрямую, а с некоторым коэффициентом. Щелкните на кнопке с изображением бинокля над левым окном дерева иерархии, чтобы автоматически найти и выделить зависимый параметр, в данном случае — Radius (Радиус) объекта Sphered (СфераСИ). Затем щелкните па такой же кнопке над правым деревом иерархии. Произойдет автоматическое выделение управляющего параметра — Z Position (Положение по Z) объекта ВохСИ (ПараллелепипедО!). В нижней части левой половины окна, под надписью Expression for Radius (Алгоритмическое выражение для радиуса), вы увидите строку Z_Position. Это значит, что радиус пока устанавливается в точности равным Z-коордииате положения параллелепипеда. Щелкните кнопкой мыши в начале строки Z_Position и внесите необходимые изменения в алгоритмическое выражение, связывающее параметры. Например, введите числовой коэффициент пропорциональности, скажем, 0.5, а за ним знак умножения «*», как показано на рис. 3.60. Не забывайте, что целая и дробная части чисел должны разделяться не занятой, а точкой.
215
Связывание параметров и заказные элементы управления
:;;
!
ж
- ''
™'
j
Transform
prpcW
||!:*''ШШЩШШ:ШШШШ
Рис. 3.60. В левом нижнем поле окна диалога Parameters Wiring изменено алгоритмическое выражение для радиуса сферы
Закройте окно диалога. Попробуйте снова перемещать параллелепипед вверхвниз. Теперь сфера растет не строго пропорционально величине перемещения, а в два раза медленнее. При перемещении параллелепипеда ниже плоскости Z = О сфера исчезает из виду — ведь радиус не может быть отрицательным. Чтобы устранить это несоответствие, можно еще раз вернуться в окно диалога Parameters W i r i n g (Связывание параметров) и дополнительно откорректировать алгоритмическое выражение для радиуса сферы, заключив его в скобки и записав перед ними имя функции вычисления модуля числа — abs. Теперь при перемещении кубика как выше плоскости Z = О, так и ниже ее размер сферы будет меняться одинаково.
Создание манипуляторов в окнах проекций При анимации цепочек объектов Bones (Кости) часто бывает неудобно манипулировать отдельными костями или управляющими перекрестьями I К-цепочек, особенно если кости скрыты под телесной оболочкой персонажа. В этом случае используют специальные вспомогательные объекты 3ds max — манипуляторы. Есть три типа манипуляторов: Cone Angle (Конический угол), Plane Angle (Плоский угол) и Slider (Ползунок). Манипуляторы, как и все вспомогательные объекты, не воспроизводятся при визуализации изображения сцены и видны только в окнах проекций. Манипулятор Cone Angle (Конический угол) имеет вид конуса, Plane A n g l e (Плоский угол) — вид рычага, напоминающего джойстик, a Slider (Ползунок) — вид шкалы, вдоль которой можно передвигать треугольный движок ползунка, как показано на рис. 3.61. Манипулятор-ползунок имеет несколько элементов управления, обозначенных на рисунке, использование которых мы рассмотрим ниже.
216
Глава 3. Анимация связанных объектов Имя параметра Маркер перемещения
Текущее значение
Маркер растяжения шкалы Движок ползунка
Вспомогательные объекты-манипуляторы, слева направо: конический угол, плоский угол, ползунок
Создав в окне проекции манипулятор и связав его абстрактный параметр с нужным параметром объекта, например с углом ориентации одной из костей цепочки, можно управлять этой костью, не выделяя ее и даже не видя ее под телесной оболочкой в тонированном режиме отображения.
Порядок создания и настройки манипуляторов Для создания манипулятора любого типа выполните следующие действия: 1. Щелкните на кнопке Helpers (Вспомогательные объекты) командной панели Create (Создать). Выберите в раскрывающемся списке разновидностей объектов данной категории строку Manipulators (Манипуляторы). 2. В свитке Object Type (Тип объекта) щелкните на одной из кнопок — Cone Angle (Конический угол), Plane Angle (Плоский угол) или Slider (Ползунок). 3. Настройте начальные значения параметров создаваемого манипулятора в свитке Parameters (Параметры), появляющемся на командной панели Create (Создать). Эти параметры можно настроить и после создания манипулятора, выделив его и переключившись на командную панель Modify (Изменить). 4. Для создания манипулятора-ползунка просто щелкните в той точке окна проекции, где должен помещаться манипулятор. Для создания манипуляторов, управляющих угловыми параметрами, щелкните и перетащите курсор, придавая манипулятору требуемый размер. Для выключения режима создания манипулятора щелкните правой кнопкой мыши. Для манипулятора Cone Angle (Конический угол) можно настроить следующие параметры: П Angle (Угол) — начальное значение величины угла при вершине конуса; П Distance (Расстояние) — расстояние от вершины до основания конуса; П Use Square (Использовать квадрат) — флажок превращения конуса в пирамиду; П Aspect (Пропорции) — соотношение поперечных размеров основания пирамиды.
Связывание параметров и заказные элементы управления
217
Для манипуляторов Plane A n g l e (Плоский угол) можно настроить следующие параметры: D Angle (Угол) — начальное значение величины угла наклона рычага манипулятора; П Distance (Расстояние) — длина рукоятки рычага; D Size (Размер) — общий размер манипулятора. Для манипуляторов Slider (Ползунок) можно настроить следующие параметры: П Name (Имя) — наименование параметра, управляемого ползунком, которое появится на правом краю шкалы, перед численным значением; П V a l u e (Значение) — начальное значение параметра, задаваемого ползунком; П Minimum (Минимум), M a x i m u m (Максимум) — минимальное и максимальное значения шкалы манипулятора; П X Position (Положение по X), Y Position (Положение по Y) — координаты положения ползунка в пределах окна проекции. Значения (0; 0) соответствуют левому верхнему углу окна, (1; 1) — правому нижнему углу; П Width (Ширина) — масштаб длины шкалы в процентах; П Snap (Привязка) — флажок включения режима фиксированного шага приращения численных значений ползунка на величину, задаваемую в счетчике Snap Value (Шаг привязки); П Hide (Скрыть) — флажок, при установке которого ползунок сворачивается и на экране остаются только значок «плюс» и маркер перемещения ползунка. Манипуляторы Cone Angle (Конический угол) и Plane Angle (Плоский угол) выглядят как трехмерные объекты. Для их перемещения, поворота или масштабирования используются те же инструменты, что и для преобразования любых других объектов трехмерной сцены. Манипулятор Slider (Ползунок) ведет себя несколько иначе. Он всегда появляется в активном окне проекции на одном и том же месте, в котором был создан. Если, например, вы создадите ползунок в левом верхнем углу окна проекции Front (Вид спереди), а затем активизируете окно проекции Тор (Вид сверху), то ползунок исчезнет в окне вида спереди и появится в левом верхнем углу окна вида сверху. То же самое касается и окон перспективной проекции, включая окна съемочных камер. Для перемещения ползунка в пределах окна проекции используйте счетчики X Position (Положение по X), Y Position (Положение по Y) свитка параметров ползунка, появляющегося на командной панели Modify (Изменить) после его выделения. Можно перемещать ползунок и вручную, в интерактивном режиме. Щелкните на кнопке Select and Manipulate (Выделить и манипулировать) главной панели инструментов или щелкните па ползунке правой кнопкой мыши и выберите в четвертном меню команду Manipulate (Манипулировать). Ползунок приобретет зеленый цвет, указывающий на его активность. Щелкните на маркере перемещения в виде квадратика па левом конце шкалы ползунка и перетаскивайте его по окну проекции.
218
Глава 3. Анимация связанных объектов
Для ручного изменения длины шкалы ползунка, что бывает необходимо для повышения точности настройки управляемого ползунком параметра, в режиме манипулирования щелкните на маркере растяжения в виде ромбика на правом краю шкалы и растяните ее до нужного размера. Если в режиме манипулирования щелкнуть на знаке «плюс» на левом конце шкалы ползунка, он будет свернут и на экране останутся только маркер перемещения и знак «плюс». Для восстановления ползунка снова щелкните на знаке «плюс».
Манипулирование управляющими параметрами Манипуляторы после их создания не управляют ничем, однако имеют некие абстрактные параметры, которые можно связать с управляемыми параметрами любых объектов. У манипуляторов Cone Angle (Конический угол) и Plane Angle (Плоский угол) имеется только один управляющий параметр, допускающий связывание, — Angle (Угол). У конического угла этот параметр может меняться от 0 до 180, а у плоского — от нуля до значений, ограничиваемых только разрядной сеткой компьютера, причем как положительных, так и отрицательных. У ползунка связывание допускают три параметра: V a l u e (Значение), min Val (Минимальное значение) и max Val (Максимальное значение). Для изменения управляющих параметров манипуляторов следует сначала переключиться в режим манипулирования, щелкнув на кнопке Select and Manipulate (Выделить и манипулировать) главной панели инструментов или щелкнув на манипуляторе правой кнопкой мыши и выбрав в четвертном меню команду Manipulate (Манипулировать). Для манипулирования объектом Cone Angle (Конический угол) установите курсор на круг, лежащий в основании конуса. Круг приобретет красный цвет. Щелкните кнопкой мыши и перетаскивайте курсор, наблюдая за изменением угла при вершине конуса. При этом в окне всплывающей подсказки будет отображаться имя манипулятора, например Cone Angle ManipulatorOI, а также текущее значение угла при вершине конуса (рис. 3.62).
Манипулирование вспомогательным объектом Cone Angle
Связывание параметров и заказные элементы управления
219
Для манипулирования объектом Plane Angle (Плоский угол) установите курсор на рычаг манипулятора и перетаскивайте его влево-вправо. Рычаг будет поворачиваться вокруг своего основания. При этом так же как и в случае с коническим углом, в окне всплывающей подсказки будут отображаться имя манипулятора и текущее значение угла. Можно произвести несколько полных оборотов рычага, значение угла при этом будет монотонно увеличиваться. Для манипулирования объектом Slider (Ползунок) после включения режима манипулирования щелкните на треугольном движке ползунка и перетаскивайте его влево-вправо, следя за значением управляющего параметра.
Создание манипуляторов для управления костями скелета Чтобы создать манипуляторы и связать их управляющие параметры с углами поворота костей из цепочки объектов Bones (Кости), постройте цепочку из нескольких связанных объектов Bones (Кости). Создайте в окне вида спереди один или несколько манипуляторов, например плоский угол и ползунок, как показано па рис. 3.63.
Рис. 3.63. Система костей и два манипулятора готовы к связыванию параметров
Важно понимать, вокруг каких осей координат следует выполнять поворот той или иной кости. Каждая кость поворачивается в системе координат Parent (Родительская) своего родительского объекта. Корневая кость не имеет родительского объекта, а потому поворачивается в глобальной системе координат. Выберите в списке систем координат вариант World (Глобальная) и выделите объект Boned. Вы увидите, что из тройки векторов контейнера преобразования вектор Y располагается перпендикулярно плоскости цепочки костей. Следовательно, корневую кость нужно поворачивать вокруг оси Y. Теперь переключитесь в систему координат Parent (Родительская) и выделите следующую кость, Вопе02. Вы увидите, что перпендикулярно плоскости цепочки костей располагается вектор Z, следовательно, кость Вопе02 нужно поворачивать вокруг оси Z. Убедитесь, что режим манипулирования выключен. При включенном режиме манипулирования связывание параметров манипуляторов с параметрами других объектов невозможно. Щелкните на манипуляторе Plane Angle (Плоский угол)
220
Глава 3. Анимация связанных объектов
правой кнопкой мыши и выберите в четвертном меню команду Wire Parameters (Связать параметры). В появившемся меню с перечнем параметров манипулятора выполните цепочку команд Object (Plane Angle Manipulator) > Angle (Объект (Манипулятор Плоский угол) > Угол). Переместите курсор, за которым потянется пунктирная линия, к корневой кости — объекту Boned. Щелкните на кости кнопкой мыши и выберите в меню нужный параметр поворота. Например, чтобы поворачивать кость вокруг оси Y, выполните цепочку команд Transform > Rotation > Y Rotation (Преобразование > Поворот > Поворот по Y). В появившемся окне диалога Parameters Wiring (Связывание параметров) укажите направление влияния, чтобы параметр A n g l e (Угол) манипулятора влиял на параметр Y Rotation (Поворот по Y) кости BoneOI, и щелкните на кнопке Connect (Связать). Закройте окно и проверьте действие манипулятора, переключившись в режим манипулирования. При покачивании рычага объекта Plane Angle (Плоский угол) корневая кость должна поворачиваться вокруг своего основания в плоскости, в которой была создана цепочка костей (рис. 3.64).
РИС..:3,бЦ
Манипулятор Plane Angle управляет углом ориентации корневой кости
Продолжите связывание параметров манипуляторов и костей. В нашем примере свяжите параметр Value (Значение) манипулятора-ползунка с параметром Z Rotation (Поворот по Z) кости Вопе02. Не забудьте предварительно выключить режим манипулирования. Проверьте действие манипулятора. Он должен работать, но выдаваемое им управляющее воздействие оказывается явно велико: при малейшем сдвиге движка ползунка кость цепочки совершает несколько оборотов вокруг точки сочленения с первой костью. Требуется, во-первых, изменить функцию воздействия и, во-вторых, скорректировать пределы шкалы ползунка. Выделите ползунок, перейдите на командную панель Modify (Изменить) и задайте в качестве максимального значения шкалы величину 90. Однако контроллер поворота использует входное значение угла не в градусах, а в радианах. Чтобы учесть это, раскройте окно диалога Parameters W i r i n g (Связывание параметров), использовав соответствующую команду меню Animate (Анимация). Найдите на дереве иерархии в левой части окна параметр Z Rotation (Поворот по Z) объекта Вопе02, а в правой части окна — параметр Value (Значение) манипулятора-ползунка SliderOL В текстовом поле Expression for Z Rotation (Алгоритмическое выражение для поворота по Z)
Связывание параметров и заказные элементы управления
221
вы увидите строку value. Измените ее на value*3.1416/180. Закройте окно и снова испытайте действие манипулятора. Теперь кость будет поворачиваться относи- СР телыю точки сопряжения с корневой костью в пределах сектора в 90° (рис. 3.65). "ЕЗШ
Рис. 3gS| Манипулятор Slider управляет углом поворота второй кости цепочки
Создав такие манипуляторы, связав их с нужными костями и настроив управляющие параметры, вы можете существенно облегчить задачу анимации сложной сцепы.
Создание заказных элементов управления Для создания заказных элементов управления служит команда Add Custom Attribute (Добавить специальный атрибут) меню Animate (Анимация). С ее помощью создается некий стандартный элемент управления: счетчик, ползунок, цветовое поле и т. п., который изначально не управляет ничем, но при выделенном объекте помещается на командную панель M o d i f y (Изменить) в свиток Custom Attributes (Специальные атрибуты). Затем с помощью окна диалога связывания параметров следует связать этот элемент управления с любым параметром объекта, которым вы хотели бы управлять, например с его положением вдоль определенной координатной оси или с углом ориентации. Чтобы назначить специальный атрибут управления какому-либо объекту сцены, выполните следующие действия: 1. Выделите объект и выполните цепочку команд Animate > Add Custom Attribute (Анимация > Добавить специальный атрибут) основного меню. Появится окно диалога Add Parameter (Добавление параметра) (рис. 3.66). 2. Выберите тип параметра в раскрывающемся списке Parameter Type (Тип параметра): Float (С плавающей точкой), Integer (Целый), Boolean (Булевский) и т. п. Например, при создании ползунка для управления углом поворота объекта вокруг одной из заданных осей следует выбрать тип параметра Float (С плавающей точкой). 3. Выберите тип элемента управления в раскрывающемся списке UI Туре (Тип интерфейса): Spinner (Счетчик), Slider (Ползунок) или какой-то иной, в зависимости от выбранного типа параметра.
222
Глава 3. Анимация связанных объектов
Рис. 3.66. Окно диалога Add Parameter (Добавление параметра) позволяет создавать заказные элементы управления параметрами объектов сцены
4. Задайте имя элемента управления в списке Name (Имя). Именно это имя появится в свитке Custom Attributes (Специальные атрибуты) иа командной панели Modify (Изменить). 5. Если вы выбрали параметр типа Float (С плавающей точкой), то задайте в свитке Float Ul Options (Параметры интерфейса с плавающей точкой) границы диапазона регулируемого параметра в счетчиках From (От) и То (До) группы Range (Диапазон). 6. Для завершения работы по созданию заказного элемента управления щелкните на кнопке Add (Добавить) в свитке Finish (Готово). Новый элемент управления появится в свитке Custom Attributes (Специальные атрибуты) на командной панели Modify (Изменить). 7. Раскройте окно диалога Parameters W i r i n g (Связывание параметров) и отыщите иа дереве объектов имя вновь созданного элемента управления. Оно будет помещаться на ветви Custom_Attributes (Специальные_атрибуты) настраиваемого объекта. Свяжите описанным ранее порядком новый параметр с любым нужным параметром объекта. После этого вы можете устанавливать при анимации нужное значение параметра объекта с помощью созданного элемента управления иа командной панели Modify (Изменить).
ГЛАВА
Имитация динамики и модуль reactor В обычных условиях трехмерные объекты, к которым применяется анимация, не могут взаимодействовать друг с другом. Например, при перемещении объекта он проникает сквозь другие объекты сцены так, как будто их нет. Однако очень часто при анимации возникает необходимость воспроизвести результаты взаимодействия объектов, как это бывает в реальной действительности. Например, заставить мяч подскакивать на полу, флаг — развеваться на ветру, а парусник — плыть по воде, покачиваясь на волнах. В связи с этим в 3ds max включены специальные средства, позволяющие трехмерным объектам взаимодействовать друг с другом так, как будто они имеют свойства реальных физических тел: массу, упругость, гибкость, растяжимость и т. н. Кроме того, такие средства позволяют имитировать действие на трехмерные тела различных физических сил, подобных силе тяжести или трения, давлению ветра и даже архимедовой силе выталкивания.
4
В этой главе будут рассмотрены следующие вопросы: ;намикидаижений с помощью; : : утилит^ Dynamics (Динамика); .
. :
reactor':(рёактор|Щ::: "" ""
ной анимации в :
:
нитей й в6ды;
"
224
Глава 4. Имитация динамики и модуль reactor
Анимация с учетом реальной динамикидвижений Для создания анимаций, имитирующих физические явления реального мира в предположении, что взаимодействующие тела являются абсолютно твердыми, служит программный модуль Dynamics (Динамика). Утилита Dynamics (Динамика) позволяет выполнять анимацию объектов сцепы с учетом следующих факторов, действующих на объекты реального мира: П
физические характеристики материалов поверхности объектов, такие как упругость, коэффициент статического трения и трения скольжения;
D физические воздействия (Effects) па объекты, такие как действие сил тяжести, давления или ветра, имитируемые источниками объемных деформаций; D столкновения (Collisions) объектов, результаты которых зависят от скоростей объектов и физических свойств их поверхностей.
Выбор объектов, участвующих в динамических взаимодействиях Чтобы назначить объекты, которые будут участвовать в динамических анимациях, выполните следующие действия: 1. Создайте или загрузите готовую геометрическую модель сцены, содержащей объекты, которые в процессе анимации могут сталкиваться между собой, а также источники объемных деформаций, таких как Gravity (Гравитация) или Push (Давление), которые будут воздействоватъ-на эти объекты. К примеру, на рис. 4.1 показана простая сцена, состоящая из пяти нри'мищ тивов Box (Параллелепипед), одного примитива Sphere (Сфера) и объемной 23 деформации Gravity (Гравитация). Задача состоит в том, чтобы заставить шар падать в коробку, удариться о дно, несколько раз подпрыгнуть и постепенно успокоиться.
Рис. 4.1; Пример простой сцены, подготовленной для имитации динамических взаимодействий объектов
Анимация с учетом реальной динамики движений
225
2. Щелкните на корешке командной панели Utilities (Утилиты), а затем кнопке More (Дополнительно). В появившемся окне Utilities (Утилиты) дважды щелкните на строке Dynamics (Динамика). На командной панели Util l i e s
3
Ь
аЧаТЬ соз
а1ше 1ЮВОЙ
' тп1 ^" Д . модели динамики, щелкните на кнопке New Новая) в свитке Dynamics (Динамика) (рис. 4.2). Для настройки существую J v H riu щей модели динамики ПК^РПЫТО „,.„ ., "- j
,
Рис. 4.2, Свиток Dynamics командной панели Utilities > ювлекаемые в
3деле
моделирование динамических взаимодей-
bjects in Simulation (объекты в модели
Edit ь сList ь (Правка т ° . > диалога »а к«°«^Edit Edi о Object списка объектов), чтобы вызвать окно ^ОЛРЛИ : lndude/?dude 0bJects in SIMULATION (Правка списка объектов модели - включение/исключение) (рис. 4.3). В списке Objects in the SCENE Ьъекты в сцене) в левой части окна перечисляются все объекты сцены которые могут участвовать в динамических взаимодействиях. В данном случае это объекты геометрической модели сцены. В список Objects in the SIMULATION Ьъекты в модели) в правой части окна следует поместить те объекты моделируемой динамической сцены, которые будут взаимодействовать друг с другом. Для переноса объектов в правый список выделите их имена в левом списке и щелкните на кнопке между списками с угловой стрелкой, указывающей вправо. Объекты, включенные в правый список, будут участвовать в имитации
226
Глава 4. Имитация динамики и модуль reactor
динамики (если установлен переключатель Include) или не будут участвовать в имитации динамики (если установлен переключатель Exclude). Остальные инструменты окна диалога не отличаются но назначению и использованию от аналогичных инструментов окон выделения объектов или включения/исключения объектов из освещения. Закончив формирование списка, щелкните на кнопке ОК.
Окно диалога Edit Object List — Include/Exclude Objects in SIMULATION
5. Для задания свойств объектов, участвующих в процессе динамического взаимодействия, щелкните в разделе Objects in Simulation (Объекты в модели) свитка Dynamics (Динамика) на кнопке Edit Object (Правка объектов), чтобы вызвать одноименное окно диалога — основное средство настройки динамических характеристик объектов (рис. 4.4).
Задание динамических свойств объектов Используйте для настройки свойств объектов следующие элементы управления окна диалога Edit Object (Правка объектов): 1. Выберите объект, свойства которого будут настраиваться, в раскрывающемся списке OBJECT (ОБЪЕКТ), содержащем перечень всех объектов, помещенных в список Objects in the SIMULATION (Объекты в модели) окна диалога Edit Object List (Правка списка объектов). 2. Настройте следующие параметры в разделе Dynamic Controls (Настройка динамики): о Use Initial State (Учитывать исходное состояние) — установите этот флажок, чтобы при моделировании динамических процессов учитывались движение и вращение объекта на момент начала взаимодействия. В нашем примере этот флажок имеет смысл установить только для примитива-сферы;
Анимация с учетом реальной динамики движений
227
Рис. 4,4.: Окно диалога Edit Object
о This Object is Unyielding (Объект неподвижен) — при установке этого флажка объект будет рассматриваться как неподвижный и ему в процессе взаимодействия не будет сообщено никакого движения или вращения. В пашем примере этот флажок должен быть установлен для всех примитивов-параллелепипедов, составляющих коробку, в которую будет падать сфера. Если объект неподвижен, для него не нужно настраивать больше никаких свойств. В связи с эти при установке данного флажка становятся недоступными все средства управления окна, кроме переключателя Collision Test (Детектор столкновений); о Move Pivot to Centroid (Переместить опору в центр масс) — щелкните на этой кнопке, чтобы заставить опорную точку объекта переместиться в его центр масс. Метод расчета положения центра масс выбирается переключателем Calculate Properties Using (Метод расчета свойств), который рассматривается ниже. 3. Задайте в разделе Recalculate Properties (Повторять расчет свойств), как часто при имитации динамики будет производиться расчет распределения масс с учетом того, применена ли анимация к форме объекта, и если да, то как быстро меняется эта форма. Установите переключатель в одно из трех положений: о Never (Никогда) — форма объекта не меняется и пересчет не будет производиться. В нашем примере можно установить переключатель именно в это положение;
228
Глава 4. Имитация динамики и модуль reactor
о Every Frame (В каждом кадре) — форма объекта меняется медленно и пересчет массы будет выполняться при переходе к новому кадру; о
Every Calc Interval (В каждом цикле расчетов) — форма объекта меняется быстро и пересчет массы будет выполняться при каждом цикле расчетов динамики.
4. Укажите, что именно следует рассматривать в качестве границ объекта при определении фактов столкновений, установив переключатель Collision Test (Детектор столкновений) в одно из четырех положений: о Box (Габаритный параллелепипед), Cylinder (Габаритный цилиндр), Sphere (Габаритная сфера) — для обнаружения факта столкновения используются, соответственно, параллелепипед, цилиндр или сфера, описанные вокруг объекта. В нашем примере для примитива-сферы выберите вариант Sphere (Габаритная сфера), а для примитивов-параллелепипедов — вариант Box (Габаритный параллелепипед); о Mesh (Сетка) — факт столкновения контролируется по касанию граней оболочки объекта. Этот вариант требует очень больших вычислительных затрат и должен использоваться только в случаях объектов сложной формы или если результаты использования других методов оказываются слишком неточными. 5. Если объект не объявлен как неподвижный, задайте физические характеристики его материала в разделе Material Editor Physical Properties (Физические свойства из Редактора материалов): о Bounce (Упругость) — указывает, сколь сильно объект будет отскакивать после соударения с другим объектом; о Override Material Bounce (Заменить упругость материала) — установка этого флажка заменяет значение параметра упругости, заданное в качестве характеристики материала объекта в свитке Dynamics Properties (Динамические свойства) Редактора материалов, на значение, указанное в данном разделе; о Copy to Object's Material (Копировать в свойства материала) — щелчок на любой из трех кнопок вызывает копирование введенного значения коэффициента упругости, статического трения или трения скольжения в состав динамических свойств материала объекта. Кнопки доступны только при установке соответствующего флажка отмены свойств материала; о Static Friction (Статическое трение) — определяет, насколько трудно будет сдвинуть с места неподвижный объект; о Override Material Static Friction (Заменить статическое трение материала) — установка этого флажка заменяет значение параметра статического трения, заданное в качестве характеристики материала объекта в свитке Dynamics Properties (Динамические свойства) Редактора материалов, на значение, указанное в данном разделе; о Sliding Friction (Трение скольжения) — указывает, какая сила требуется для поддержания движения перемещающегося объекта;
Анимация с учетом реальной динамики движений
229
о Override Material Sliding Friction (Заменить трение скольжения материала) — установка этого флажка отменяет значение параметра трения скольжения, заданное в качестве характеристики материала объекта в свитке Dynamics Properties (Динамические свойства) Редактора материалов, на значение, указанное в данном разделе. В рассматриваемом примере для примитива-сферы установите флажок Override Material Bounce (Заменить упругость материала) и задайте величину параметра Bounce (Упругость) равной 0,5. Все остальные параметры оставьте равными их исходным значениям. 6. Задайте следующие физические характеристики объектов в разделе Physical Properties (Физические свойства): о Density (Плотность) — определяет плотность вещества объекта в граммах на кубический сантиметр и служит для расчета массы объекта. Чем больше масса объекта, тем он инерционнее, то есть тем труднее изменить его движение или вращение под действием внешних сил, таких как силы соударения или силовые поля объемных деформаций; о Mass (Масса) — автоматически рассчитывается на основе плотности материала и объема объекта; о Override Automatic Mass (Заменить автоматический расчет массы) — установка этого флажка позволяет вместо автоматического расчета массы использовать значение, введенное вручную; о Volume (Объем) — автоматически рассчитанный объем объекта; о Override Automatic Volume (Отменить автоматический расчет объема) — установка этого флажка позволяет вместо автоматического расчета объема использовать значение, введенное вручную; о Calculate Properties Using (Метод расчета свойств) — переключатель, позволяющий рассчитывать положение центра массы в пределах объекта одним из следующих методов: Bndg Box (Габаритный параллелепипед), Bndg Cylinder (Габаритный цилиндр), Bndg Sphere (Габаритная сфера) — с использованием одной из разновидностей габаритных контейнеров; Vertices (Вершины) — как центр тяжести совокупности вершин; Surface (Оболочка) — предполагая наличие у объекта пустотелой оболочки конечной толщины или методом Mesh Solid (Твердое тело), при котором для расчета объема тела и положения центра масс используется сетчатая оболочка объекта; о Property Estimate Resolution (Разрешающая способность оценки свойств) — позволяет задать величину пространственного шага расчета объема и массы тела при использовании варианта расчета Mesh Solid (Твердое тело). Шаг задается в счетчике Grid (Шаг сетки). Установка флажка Automatic Resolution (Автоматическая настройка разрешения) заставляет модуль расчета динамики устанавливать шаг расчетов в зависимости от размеров и сложности формы объекта. В рассматриваемом примере для примитива-сферы оставьте все параметры равными их исходным значениям.
230
Глава 4. Имитация динамики и модуль reactor
7. Назначьте воздействия на текущий настраиваемый объект, используя кнопку Assign Object Effects (Назначить воздействия на объект) из раздела Assign Effects/ Collisions (Назначение эффектов/столкновений). Щелчок на кнопке вызывает появление окна диалога Assign Object Effects — Include/Exclude Effects for this OBJECT (Назначение воздействий на объект — включение/исключение) (рис. 4.5), похожего по виду на окно Edit Object List (Правка списка объектов). В левом списке окна под названием Effects in the SCENE (Воздействия в сцене) перечисляются все объемные деформации, имеющиеся в составе сцены, которые могут быть использованы для имитации динамики. Выделите имена нужных объемных деформаций и щелкните на кнопке с угловой стрелкой, указывающей вправо, чтобы перенести выделенные деформации в правый список, Effects on this OBJECT (Воздействия на объект). Воздействия, включенные в правый список, будут оказывать влияние (если установлен переключатель Include) или не будут оказывать влияния (если установлен переключатель Exclude) на настраиваемый объект. Закончив назначение воздействий, щелкните на кнопке ОК.
111Ш11 Окно диалога Assign Object Effects — Include/Exclude Effects for this OBJECT
8. Назначьте объекты, для которых программа будет отслеживать столкновения с текущим настраиваемым объектом, используя кнопку Assign Object Collisions (Назначить столкновения с объектом) из раздела Assign Effects/Collisions (Назначение эффектов/столкновений). Щелчок на этой кнопке вызывает окно диалога Assign Object Collisions — Include/Exclude Objects in Collisions (Назначение столкновений с объектом — включение/исключение), показанное на рис. 4.6. Это окно также содержит два списка, Objects in the SIMULATION (Объекты в модели) и Collisions for this OBJECT (Столкновения для объекта). В левом списке перечисляются все объекты, кроме настраиваемого, отобранные как взаимодействующие в окне диалога Edit Object List (Правка списка объектов),
231
Анимация с учетом реальной динамики движений
а в правый список следует поместить только те объекты, с которыми может сталкиваться текущий настраиваемый объект. Для сферы перенесите в правую часть все объекты-параллелепипеды, а для каждого из параллелепипедов — сферу. Закончив назначение столкновений, щелкните на кнопке ОК.
Окно диалога Assign Object Collisions — Include/Exclude Objects in Collisions
9. Для сохранения созданного набора параметров или загрузки ранее настроенного набора используйте следующие элементы управления из раздела Load/Save Parameters Sets (Загрузка/сохранение наборов параметров): о Set Name (Задайте имя) — текстовое поле для ввода имени набора параметров. Введите имя и щелкните на кнопке Save (Сохранить); о Available Parameter Sets (Доступные наборы парамтеров) — список имен доступных сохраненных ранее наборов параметров. Для загрузки набора выделите его имя в списке и щелкните па кнопке Load (Загрузить). Щелчок на кнопке Delete (Удалить) удаляет набор, имя которого выделено в списке. Закончив настройку свойств объектов, щелкните па кнопке ОК.
Назначение глобальных воздействий на объекты и глобальных столкновений объектов Для настройки динамики глобальных взаимодействий объектов продолжите работу со свитком Dynamics (Динамика). Воздействия сил, генерируемых источниками объемных деформаций, можно применять или к отдельным объектам, о чем рассказывалось выше, или ко всем объектам сразу. Чтобы назначить воздействия сразу для всех объектов, установите переключатель Global Effects (Глобальные воздействия) в разделе Effects (Воздействия) свитка Dynamics (Динамика), а затем
232
Глава 4. Имитация динамики и модуль reactor
щелкните на кнопке Assign Global Effects (Назначить глобальные воздействия) для вызова окна диалога Assign Global Effects (Назначение глобальных воздействий). Процесс назначения глобальных воздействий полностью аналогичен назначению воздействий для отдельных объектов, описанному в п. 7 предыдущего раздела. Чтобы назначить объекты, для которых программа будет отслеживать столкновения друг с другом, установите переключатель Global Collisions (Глобальные столкновения) в разделе Collisions (Столкновения) свитка Dynamics (Динамика), а затем щелкните на кнопке Assign Global Collisions (Назначить глобальные столкновения) для вызова окна диалога Assign Global Collisions (Назначение глобальных столкновений). Процесс назначения глобальных столкновений полностью аналогичен назначению столкновений для отдельных объектов, описанному в п. 8 предыдущего раздела.
Настройка времени и условий моделирования Для настройки времени и условий имитации динамики выполните следующие действия, используя элементы управления свитка Timing & Simulation (Время и моделирование) (рис. 4.7): 1. Настройте временные параметры имитации динамики в разделе Timing (Временные параметры): о Start Time (Время начала), End Time (Время окончания) — счетчики, задающие границы промежутка времени, в котором будет рассчитываться динамика взаимодействия объектов. Если объекты до имитации динамики имели анимацию, которая должна учитываться при расчетах динамики, задайте в качестве начального кадр, на момент которого эта анимация уже действует. В нашем примере можно задать сфере начальное вращение, создав для нее ключи поворота, скажем, в кадрах 0 и 20. Чтобы это вращение CD ПЯЯ оказало влияние на расчет динамики, укажите в счетчике Start Time (Время начала), скажем, кадр 10;
Рис 4.7.
Свиток Timing & Simulation командной панели Utilities
Анимация с учетом реальной динамики движений
233
о Calc Intervals Per Frame (Циклов расчета на кадр) — задает число циклов расчета динамики на один кадр анимации; о Keys Every N Frames (Ключи в каждом N-м кадре) — задает период, с которым будут рассчитываться ключи анимации для каждого объекта; о Time Scale (Масштаб времени) — позволяет ускорить или замедлить ход имитации динамических взаимодействий. Значения, меньшие 1, замедляют динамику взаимодействий, а большие 1 — ускоряют. 2. Настройте эффект сопротивления воздуха, применяемый ко всем объектам и управляемый параметром Density (Плотность) в разделе Air Resistance (Сопротивление воздуха). Сила сопротивления воздуха направлена навстречу тем граням объекта, которые ориентированы в направлении движения, заставляя объект замедляться или испытывать дрожание. Чем выше величина сопротивления воздуха, тем большее усилие необходимо для перемещения объекта при имитации динамики. 3. Включите при необходимости режим, разрешающий при имитации динамики использовать анимацию по методу обратной кинематики, установив следующие флажки из раздела Simulation Controls (Управление моделированием): о
Use IK Joint Limits (Использовать ограничения сочленений IK) — обеспечивает учет ограничений, наложенных на подвижность сочленений объектов при настройке параметров обратной кинематики, при решении задачи динамических взаимодействий;
о Use IK Joint Damping (Использовать параметры демпфирования IK) — обеспечивает учет параметров успокоения при достижении границ подвижности в сочленениях объектов, анимированных по методу обратной кинематики, при решении задачи динамических взаимодействий.
Запуск процесса решения динамической задачи Для запуска процесса решения динамической задачи щелкните на кнопке Solve (Решать) в свитке Dynamics (Динамика). По окончании расчета воспроизведите анимацию. При необходимости внесите коррективы в значения параметров ,д м F ч д и и F и повторите процесс решения. Si Расчет динамических вэ'аикюдёйствиЩШ-И Установите флажок Update Display w/ ^ектовтребуетботьШ: вычислительных 1 зЩ;.; Solve (Обновлять экран в ходе расчета), Ятрат чтобы перемещения объектов, рассчитанные в ходе решения, отображались 1;^:?3^модейдбий/о6ъектс,В: :поочереЩ|; Включите пару ;о6ъ£ктов!:в:спйсШМззаимов окнах проекции. : Закончив работу с утилитой Dynamics
Кисключите:эти объекты из списка и вкл>рчй|«:
(Динамика) шелк„„те „а ~е Close
' S^fS^S^^S*
(Закрыть) в свитке Timing & Simulation
Йу)Ке решена, из чио
действующих,
(Время и моделирование), чтобы убрать |::не1отменяет|;::йх анимацию;;: | свитки утилиты с командной панели.
236
Глава 4. Имитация динамики и модуль reactor
или моделирования автомобиля с крутящимися колесами (см. раздел «Знакомство в прочими вспомогательными объектами модуля reactor»). Для доступа к инструментам создания двадцати вспомогательных объектов модуля reactor (реактор) можно щелкнуть па кнопке Helpers (Вспомогательные объекты) командной панели Create (Создать) и выбрать в появившемся списке строку reactor (реактор). После этого становится доступным свиток Object Type (Тип объекта) (рис. 4.8). Помимо данного свитка для создания этих объектов можно использовать команды подменю Create Object (Создать объект) меню reactor (реактор) и кнопки панели инструментов reactor (реактор).
Рис. 4.8. Свиток Object Type командной панели Create с инструментами создания вспомогательных объектов модуля reactor (реактор)
Если заранее выделить объекты геометрической модели сцены, которые должны быть поставлены в соответствие вспомогательному объекту модуля reactor (реактор), то значок вспомогательного объекта создается автоматически сразу же после выбора нужной команды подменю Create Object (Создать объект) меню reactor (реактор) или после щелчка на нужной кнопке панели инструментов reactor (реактор). Если в составе геометрической модели сцены нет выделенных объектов, то для создания вспомогательного объекта модуля reactor (реактор) после выбора нужной команды или кнопки требуется просто щелкнуть кнопкой мыши в нужной точке любого из окон проекций. Значки всех вспомогательных объектов модуля reactor (реактор) в окнах проекций 3ds max выглядят как символическое изображение с соответствующей кнопки панели инструментов reactor (реактор), заключенное в круглую рамку, как показано для примера на рис. 4.9.
CD
Размер значков вспомогательных объектов задан по умолчанию и его можно изменить только с помощью счетчика Non-scaling object size (Размер немасштабируемых объектов), размещенного на вкладке Viewports (Окна проекций) окна диалога Preference Settings (Настройка параметров), вызываемого по команде Preferences (Параметры) меню Customize (Настройка). К примеру, на рис. 4.9 размер значков увеличен в два раза но сравнению с принятым но умолчанию.
Анимация с учетом реальной динамики движений
233
о Calc Intervals Per Frame (Циклов расчета на кадр) — задает число циклов расчета динамики на один кадр анимации; о Keys Every N Frames (Ключи в каждом N-м кадре) — задает период, с которым будут рассчитываться ключи анимации для каждого объекта; о Time Scale (Масштаб времени) — позволяет ускорить или замедлить ход имитации динамических взаимодействий. Значения, меньшие 1, замедляют динамику взаимодействий, а большие 1 — ускоряют. 2. Настройте эффект сопротивления воздуха, применяемый ко всем объектам и управляемый параметром Density (Плотность) в разделе Air Resistance (Сопротивление воздуха). Сила сопротивления воздуха направлена навстречу тем граням объекта, которые ориентированы в направлении движения, заставляя объект замедляться или испытывать дрожание. Чем выше величина сопротивления воздуха, тем большее усилие необходимо для перемещения объекта при имитации динамики. 3. Включите при необходимости режим, разрешающий при имитации динамики использовать анимацию по методу обратной кинематики, установив следующие флажки из раздела Simulation Controls (Управление моделированием): о Use IK Joint Limits (Использовать ограничения сочленений IK) — обеспечивает учет ограничений, наложенных на подвижность сочленений объектов при настройке параметров обратной кинематики, при решении задачи динамических взаимодействий; о Use IK Joint Damping (Использовать параметры демпфирования IK) — обеспечивает учет параметров успокоения при достижении границ подвижности в сочленениях объектов, аиимированных по методу обратной кинематики, при решении задачи динамических взаимодействий.
Запуск процесса решения динамической задачи Для запуска процесса решения динамической задачи щелкните на кнопке Solve (Решать) в свитке Dynamics (Динамика). По окончании расчета воспроизведите анимацию. При необходимости внесите коррективы в значения параметров ? дм с ц д и \л с и повторите процесс решения. Установите флажок Update Display w/ Solve (Обновлять экран в ходе расчета), чтобы перемещения объектов, рассчитайные в ходе решения, отображались „ окнах ,1ТИй пк.„я„ пппР1 в проекции. Закончив работу с утилитой Dynamics (Динамика) щелкните па кнопке Close Y? _. . , ... (Закрыть) в свитке Timing & Simulation (Время и моделирование), чтобы убрать свитки утилиты с командной панели.
:трат и может занимать;
::=яействующих::й;проюведите: pafri^at^r T
^ него другую пару, : .объектов, для которых; зада^агдинамики
^решена,: из чио
234
Глава 4. Имитация динамики и модуль reactor
Модуль reactor Дополнительный модуль reactor (реактор) компании Havok входит в комплект поставки программы 3ds max и устанавливается с этой программой автоматически, не требуя каких-либо специальных действий. Если установлена программа 3ds max, значит, установлен и модуль reactor (реактор). Модуль не требует отдельной авторизации. Модуль reactor (реактор) позволяет: П имитировать визуально правдоподобные взаимодействия трехмерных тел с учетом таких воображаемых физических свойств объектов, как масса, упругость, жесткость, коэффициент трения и т. п., а также действия на объекты таких сил, как тяжесть, ветровое давление, сопротивление воздуха, вращающий момент, архимедова сила и т. п.; П учитывать начальные условия движения тел, заданные средствами традиционной анимации, на момент начала имитационных расчетов, то есть обеспечивать стыковку традиционной анимации с имитацией модуля reactor (реактор); D предварительно просматривать созданную анимацию в специальном окне, обладающем интерактивными возможностями; П автоматически генерировать ключи анимации для объектов трехмерной сцены, после чего можно просматривать готовую анимацию в окнах проекций или выполнить ее визуализацию стандартными средствами 3ds max.
Классификация объектов модуля reactor Все объекты реального мира, которые можно имитировать при помощи модуля reactor (реактор), делятся на жесткие тела (rigid bodies), деформируемые тела (deformable bodies) и воду (water). Как на жесткие, так и на деформируемые тела по умолчанию действует сила тяжести, заставляющая их падать вертикально вниз, если у них нет опоры или они не закреплены в пространстве.
Жесткие тела Жесткие тела при столкновениях не проникают друг сквозь друга и не деформируются, а соударяются с возможным последующим отскоком или проскальзыванием одного тела относительно другого. Можно также имитировать разрушение жестких тел при столкновении. Жесткие тела требуют настройки таких физических свойств, как масса, коэффициент трения и эластичность. Если масса жесткого тела задается равной нулю, то такое жесткое тело считается неподвижным и на него не действует сила тяжести. Можно ограничить свободу перемещения или поворота жестких тел при помощи вспомогательных объектов-ограничителей (constraints). Простые жесткие тела можно объединять в составные (compound).
Деформируемые тела Деформируемые тела подразделяются на мягкие тела, ткани, нити и деформируемые сетки.
Модуль reactor
235
П Мягкие тела (soft bodies) при столкновениях также не проникают друг сквозь друга и сквозь жесткие тела, но при этом деформируются, стремясь восстановить свою форму. Мягкие тела обладают средствами настройки таких физических свойств, как масса, жесткость, демпфирование, влияющее на скорость затухания упругих колебаний, и коэффициент трения. П Ткань (cloth) — это двумерное деформируемое тело, имеющее длину и ширину, но не имеющее толщины и объема, а нить (горе) — это одномерное деформируемое тело, имеющее длину, по не имеющее объема. Если ткань или нить под действием силы тяжести падают на жесткие или деформируемые тела, они не проникают сквозь них, а реалистично изгибаются, не разрываясь, и могут соскальзывать. Модуль reactor (реактор) позволяет также имитировать реалистичную деформацию тканей и нитей под действием порывов ветра. Для тканей можно задавать такие физические свойства, как масса, относительная плотность, коэффициенты трения и сопротивления воздуха. Для нитей можно задавать такие физические свойства, как масса, кажущаяся толщина, коэффициенты трения и сопротивления воздуха. Ткани и нити можно прикреплять к жестким телам. Можно также фиксировать отдельные вершины сетки, имитирующей ткань, или сплайна, имитирующего нить. П Деформируемая сетка (deformable mesh) — это трехмерный объект, вершины сетчатой оболочки которого уже имеют анимацию па момент начала имитационного моделирования средствами модуля reactor (реактор). В частности, к разряду деформируемых сеток могут относиться сетки тел трехмерных персонажей, к которым применены средства скелетной деформации с использованием модификатора Skin (Оболочка). Вода С помощью модуля reactor (реактор) можно имитировать деформацию поверхности воды и эффект плавучести тел с учетом их удельного веса, включая возникновение реалистичных волн на воде, взаимодействие волн между собой и действие их па плавающие объекты.
Состав инструментов и интерфейс модуля reactor В состав модуля reactor (реактор) входят двадцать вспомогательных объектов, три модификатора, одна объемная деформация и сервисная программа-утилита reactor (реактор). Доступ к перечисленным средствам моделирования обеспечивается посредством командной панели Create (Создать), меню reactor (реактор) и панели инструментов reactor (реактор). Вспомогательные объекты С помощью вспомогательных объектов модуля reactor (реактор) в составе сцены создаются коллекции, позволяющие отнести объекты геометрической модели трехмерной сцепы к типу жестких или деформируемых тел (см. раздел «Понятие коллекций модуля reactor»), а также ограничители, предназначенные для ограничения движений и поворотов жестких тел (см. раздел «Понятие ограничителей модуля reactor»). Прочие вспомогательные объекты служат для имитации сил и решения специфических задач наподобие разрушения тел при столкновении
236
Глава 4. Имитация динамики и модуль reactor
или моделирования автомобиля с крутящимися колесами (см. раздел «Знакомство в прочими вспомогательными объектами модуля reactor»). Для доступа к инструментам создания двадцати вспомогательных объектов модуля reactor (реактор) можно щелкнуть на кнопке Helpers (Вспомогательные объекты) командной панели Create (Создать) и выбрать в появившемся списке строку reactor (реактор). После этого становится доступным свиток Object Type (Тип объекта) (рис. 4.8). Помимо данного свитка для создания этих объектов можно использовать команды подменю Create Object (Создать объект) меню reactor (реактор) и кнопки панели инструментов reactor (реактор).
Рис, 4.8. Свиток Object Type командной панели Create с инструментами создания вспомогательных объектов модуля reactor (реактор)
Если заранее выделить объекты геометрической модели сцены, которые должны быть поставлены в соответствие вспомогательному объекту модуля reactor (реактор), то значок вспомогательного объекта создается автоматически сразу же после выбора нужной команды подменю Create Object (Создать объект) меню reactor (реактор) или после щелчка на нужной кнопке панели инструментов reactor (реактор). Если в составе геометрической модели сцены нет выделенных объектов, то для создания вспомогательного объекта модуля reactor (реактор) после выбора нужной команды или кнопки требуется просто щелкнуть кнопкой мыши в нужной точке любого из окон проекций. Значки всех вспомогательных объектов модуля reactor (реактор) в окнах проекций 3ds max выглядят как символическое изображение с соответствующей кнопки панели инструментов reactor (реактор), заключенное в круглую рамку, как показано для примера на рис. 4.9. Размер значков вспомогательных объектов задан по умолчанию и его можно изменить только с помощью счетчика Non-scaling object size (Размер немасштабируемых объектов), размещенного на вкладке Viewports (Окна проекций) окна диалога Preference Settings (Настройка параметров), вызываемого по команде Preferences (Параметры) меню Customize (Настройка). К примеру, на рис. 4.9 размер значков увеличен в два раза по сравнению с принятым по умолчанию.
Модуль reactor
Рис. 4.9.
237
Вид значков разных вспомогательных объектов модуля reactor (реактор) в окнах с каркасным (слева) и тонированным (справа) режимами отображения
Значки вспомогательных объектов можно перемещать, но нельзя повернуть или масштабировать. Исключение составляют значки объектов W i n d (Ветер), Plane (Плоскость) и значок ограничителя Toy Car (Машинка). У этих значков можно поворачивать расположенное в круглой рамке символическое изображение флюгера, от ориентации которого зависит направление ветра, плоскости, от направления нормали которой зависит ее действие, и игрушечного автомобиля, от ориентации которого зависит направление движения управляемой им модели. Значки выглядят как трехмерные, однако при повороте плоскости проекции их ориентация в окнах проекций не изменяется: значки всегда повернуты «лицом к зрителю». Исходное место расположения значков большинства вспомогательных объектов в составе сцены не имеет значения, поэтому размещать их следует так, чтобы их было удобно выделить при необходимости и чтобы они не мешали работе с объектами геометрической модели трехмерной сцены. Значки вспомогательных объектов, для которых требуется устанавливать соответствие с определенными геометрическими объектами трехмерной сцены, изображаются в окнах проекций красного цвета, пока такое соответствие не установлено, и синего цвета, когда установлено. При выделении того или иного значка его размер увеличивается, как показано на рис. 4,10. Значки вспомогательных объектов модуля reactor (реактор) не являются визуализируемыми объектами и пе включаются в изображение трехмерной сцены, формируемое в ходе визуализации.
Модификаторы В составе модуля reactor (реактор) имеются три модификатора: reactor Clothe (реактор: Ткань), reactor Rope (реактор: Нить) и reactor SoftBody (реактор: Мягкое тело). Их можно найти в списке модификаторов командной панели Modify (Изменить). Для применения данных модификаторов к объектам можно также использовать команды подменю Apply Modifier (Применить модификатор) меню reactor (реактор) и кнопки панели инструментов reactor (реактор).
238
Глава 4. Имитация динамики и модуль reactor
Вид выделенного значка увеличивается, как показано на примере значка объекта Wind
Объемная деформация Water Для доступа к инструменту создания объемной деформации Water (Вода) можно щелкнуть на кнопке Space Warps (Объемные деформации) командной панели Create (Создать) и выбрать в раскрывающемся списке строку reactor (реактор). В появляющемся после этого свитке Object Type (Тип объекта) имеется единственная кнопка Water (Вода). Для создания этой объемной деформации можно также использовать команду меню reactor (реактор) и кнопку панели инструментов reactor (реактор).
Утилита reactor Сервисная программа-утилита reactor (реактор) расположена на командной панели Utilities (Утилиты). Если кнопка reactor (реактор) будет отсутствовать на панели Utilities (Утилиты), то следует щелкнуть на кнопке More (Дополнительно) и в появившемся окне дважды щелкнуть на строке reactor (реактор). На панели Utilities (Утилиты) появятся свитки параметров утилиты reactor (реактор): Preview & Animation (Просмотр и анимация), World (Реальность), Collisions (Столкновения), Display (Дисплей), Utils (Утилиты) и Properties (Свойства) (рис. 4.11).
Меню reactor Меню reactor (реактор) (рис. 4.12), включает следующие команды: D Create Object (Создать объект) — вызывает подменю с командами создания вспомогательных объектов модуля reactor (реактор). Все команды этого подмелю являются дубликатами соответствующих кнопок свитка Object Type (Тип объекта), относящегося к категории Helpers (Вспомогательные объекты) командной панели Create (Создать) (см. рис. 4.8). Дополнительно в меню входит команда Water (Вода), являющаяся дубликатом аналогичной кнопки из свитка
СОВЕТ :
ЧтобьГ кн:0гжа:ге Гприсутствовал^?щШ ".ты), ' щешЩ ЩЩнр
|,Ц1. ||?с
|еа о>
1 ^К^
жтЩ|: i.
239
Модуль reactor
Object Type (Тип объекта), относящегося к категории Space Warps (Объемные деформации) командной панели Create (Создать);
Рис. 4.11.
Свитки параметров модуля reactor (реактор) на командной панели Utilities
Animation
"Sraph Editors
Rendering
Customize
Rigid Body Collection Apply Modifier Open Property Edrtor Utilities Preview Animation Create Animation About reactor..
Soft"Body" Collection Rope Collection Deforming Mesh Collection Spring Plane Linear Dashpot Angular Dashpot Motor Wind
Toy Car Fracture Water Constraint Solver Rag Doll Constraint Hinge Constraint Point-Point Constraint Prismatic Constraint Car-Whed Constraint Point-Path Constraint
: 1
J
Рис. 4.12. Меню reactor (реактор) располагается в строке основного меню 3ds max
240
Глава 4. Имитация динамики и модуль reactor
D Apply Modifier (Применить модификатор) — вызывает подменю с командами выбора одного из трех модификаторов модуля reactor (реактор): Clothe Modifier (Модификатор Ткань), Rope Modifier (Модификатор Нить) и Soft Body Modifier (Модификатор Мягкое тело); П Open Property Editor (Открыть Редактор свойств) — вызывает окно диалога Rigid Body Properties (Свойства жестких тел) (рис. 4.13). Все элементы управления этого окна дублируют соответствующие элементы управления свитка Properties (Свойства), появляющегося па командной панели Utilities (Утилиты) после активизации утилиты reactor (реактор) и будут рассматриваться по мере необходимости;
Рис. 4.13. Окно диалога Rigid Body Properties (Свойства жестких тел) модуля reactor (реактор)
П
Utilities (Утилиты) — вызывает подменю с командами активизации утилит модуля reactor (реактор). Команды этого подменю Analyze World (Анализировать реальность), Convexity Test (Тест на выпуклость), Reduce Keys (Selection) (Уменьшить число ключей (выделенных объектов)), Reduce Keys (All) (Уменьшить число ключей (всех объектов)), Delete Keys (Selection) (Удалить ключи (выделенных объектов)), Delete Keys (All) (Удалить ключи (всех объектов)) дублируют соответствующие кнопки свитка Utils (Утилиты) утилиты reactor (реактор). Команда View Stored Collisions (Показать сохраненные столкновения) дублирует кнопку View (Показать) свитка Collisions (Столкновения). Все эти команды будут рассматриваться по мере необходимости;
Модуль reactor
241
П Preview Animation (Просмотреть анимацию) — вызывает появление интерактивного окна reactor Real-Time Preview (Просмотр в реальном времени модуля реактор), в котором можно предварительно просматривать настроенную анимацию. Подробнее об этом окне читайте далее в разделе «Интерактивное окно предварительного просмотра анимаций». Эта команда дублирует кнопку Preview in Window (Просмотреть в окне), которая есть в свитке Preview & Animation (Просмотр и анимация) командной панели Utilities (Утилиты); П Create Animation (Создать анимацию) — включает режим расчета ключей анимации объектов сцены средствами модуля reactor (реактор); П About reactor (О модуле реактор) — вызывает окно с аналогичным названием (рис. 4.14), содержащее сведения о разработчиках и версии модуля. About teactor(r)
reactor' Рис. 4.14. Окно диалога About reactor
Панель инструментов reactor Панель инструментов reactor (реактор) по умолчанию располагается па экране вертикально вдоль его левого края. Кнопки панели инструментов обозначены на рис. 4.15, где она разбита на две части, чтобы изображение не было слишком мелким. Все кнопки панели дублируют соответствующие инструменты панели Create (Создать) и команды меню reactor (реактор). Назначение отдельных кнопок будем рассматривать по мере необходимости.
Понятие коллекций модуля reactor Чтобы придать тому или иному объекту геометрической модели трехмерной сцены свойства жесткого или деформируемого тела, необходимо включить его в список тел соответствующего типа, называемый коллекцией (collection). Чтобы, в свою очередь, получить возможность сформировать коллекцию, необходимо добавить в состав сцены один из следующих вспомогательных объектов модуля reactor (реактор): Rigid Body Collection (Коллекция жестких тел), Soft Body Collection (Коллекция мягких тел), Cloth Collection (Коллекция тканей), Rope Collection (Коллекция нитей) или Deformable Mesh Collection (Коллекция деформируемых сеток).
242
Глава 4. Имитация динамики и модуль reactor Создать коллекцию деформируемых сеток
Создать коллекцию жестких тел
Создать Плоскость
Создать коллекцию нитей
Создать коллекцию тканей
Создать Пружину
Создать ограничитель Скольжение
Создать ограничитель Марионетка
Создать модификатор Нить Создать ограничитель Точка-путь
Создать ограничитель Точка-точка
Создать ограничитель Дверная петля
Создать Создать Создать Мотор Машинку Воду
Создать Линейный демпфер
Создать коллекцию мягких тел
Создать ограничитель Машина-колесо Создать решение ограничений
Создать Угловой демпфер
Создать модификатор Ткань
Создать Создать Ветер Обломки
Создать анимацию Открыть Редактор свойств
Создать модификатор Мягкое тело
Просмотреть анимацию Анализировать реальность
Панель инструментов reactor (реактор)
В коллекции Rigid Body Collection (Коллекция жестких тел) и Deformable Mesh Collection (Коллекция деформируемых сеток) могут быть помещены любые объекты геометрической модели трехмерной сцены, представляющие собой объемные тела, а также линии-сплайны (NURBS-кривые для этого не годятся). В коллекцию Soft Body Collection (Коллекция мягких тел) могут быть помещены только объекты геометрической модели, к которым применен модификатор reactor Soft Body (реактор: Мягкое тело). В коллекцию Cloth Collection (Коллекция тканей) допускается помещать только объекты, к которым применен модификатор reactor Cloth (реактор: Ткань). В коллекцию Rope Collection (Коллекция нитей) допускается помещать только объекты, к которым применен модификатор reactor Rope (реактор: Нить). В качестве нитей могут использоваться только сплайны-линии (NURBS-кривые для этого не годятся).
Создание коллекций Чтобы создать в составе трехмерной сцены вспомогательный объект какой-то из коллекций и одновременно поместить в него нужные объекты геометрической модели трехмерной сцены, выполните следующие действия: 1. Выделите объекты геометрической модели трехмерной сцены, которые требуется включить в состав создаваемой коллекции.
Модуль reactor
243
2. Выберите одну из пяти команд, размещенных в верхней части подменю Create Object (Создать объект) меню reactor (реактор), которые соответствуют названиям коллекций. С той же целью можете щелкнуть на одной из кнопок в верхней части панели инструментов reactor (реактор): Create Rigid Body Collection (Создать коллекцию жестких тел), Create Cloth Collection (Создать коллекцию тканей), Create Soft Body Collection (Создать коллекцию мягких тел), Create Rope Collection (Создать коллекцию нитей) или Create Deformable Mesh Collection (Создать коллекцию деформируемых сеток). Будет автоматически создан значок коллекции в точке, соответствующей центру выделенного набора объектов, а в список коллекции будут автоматически включены все выделенные объекты трехмерной сцены, которые по своим свойствам подходят для выбранной коллекции. Чтобы создать значок коллекции с пустым списком с целью последующего добавления объектов в список, перед выполнением описанных выше действий не выделяйте объекты в составе трехмерной сцены. После выбора нужной команды подменю Create Object (Создать объект) меню reactor (реактор) или после щелчка на одной из пяти верхних кнопок панели инструментов reactor (реактор) просто щелкните в той точке любого окна проекции, где требуется разместить значок коллекции. Еще один способ создания коллекции состоит в том, чтобы щелкнуть на кнопке Helpers (Вспомогательные объекты) командной панели Create (Создать) и выбрать в появившемся списке строку reactor (реактор). После этого в свитке Object Type (Тип объекта) (см. рис. 4.8) можно щелкнуть на одной из кнопок — RBCollection (Коллекция жестких тел), SBCollection (Коллекция мягких тел), CLCollection (Коллекция тканей), RPCollection (Коллекция нитей) или DMCollection (Коллекция деформируемых сеток). В этом случае значок коллекции не создается автоматически независимо от того, есть в составе сцены выделенные объекты или их нет, и для его создания следует щелкнуть в той точке любого окна проекции, где требуется разместить значок. На рис. 4.16 показано, как выглядят выделенные значки коллекций в окне проекции 3ds max (размер значков коллекций на этом рисунке увеличен в два раза по сравнению с принятым по умолчанию).
Добавление объектов сцены в коллекцию Чтобы добавить объекты геометрической модели в состав той или иной коллекции, следует выделить ее значок и переключиться на командную панель Modify (Изменить). На панели появятся свитки Properties (Свойства) и Advanced (Дополнительно) (рис. 4.17). Только для коллекции жестких тел первый из свитков называется не Properties (Свойства), a RB Collection Properties (Свойства коллекции жестких тел). Состав инструментов свитка Properties (Свойства) одинаков для всех типов коллекций, а состав параметров свитка Advanced (Дополнительно) для разных коллекций меняется.
244
Глава 4. Имитация динамики и модуль reactor
Коллекция жестких тел
Коллекция тканей
Коллекция мягких тел
РИС. 4Ш Коллекция нитей
Коллекция деформируемых сеток
Вид значков коллекций модуля reactor (реактор) в окне проекции с тонированным режимом отображения
"~ Рис. 4.17.
Свитки Properties и Advanced коллекции мягких тел
Для добавления объектов геометрической модели в коллекцию но ОДНОМУ щелкните на кнопке Pick (Указать) свитка Properties (Свойства) а затем на Гуж" ном объекте, имя которого появится в списке. Курсор будет принимать вид ™ Гъ™Т°ЩеГОВ°ЗМОЖНОСТЬ «^»пь "'-к™ L25S « над теми коллекции. РЫС "° СВ°ИМ СВ°ЙСТВаМ МОГУТ 6ЫТЬ ДОбавЛ6НЫ в состав данной Для добавления объектов списком щелкните на кнопке Add (Добавить^ т, юсле щелчка на кнопке Pick (Указать) нажмите клавишу h, чтобь! вызвать ти
Модуль reactor
245
Для удаления из списка объектов, ошибочно включенных в коллекцию, выделите их имена в списке свитка Properties (Свойства), а затем щелкните на кнопке Delete (Удалить). Щелчок на кнопке H i g h l i g h t (Показать) ведет к тому, что все объекты геометрической модели сцепы, включенные в список коллекции, на короткое время будут выделены в окнах проекций. Установка флажка Disabled (He а к т и в н а ) ведет к тому, что данная коллекция, а вместе с пей и все входящие в нее объекты, не будут включены в анимацию, создаваемую модулем reactor (реактор).
Понятие ограничителей модуля reactor Ограничители модуля reactor (реактор) служат для того, чтобы ограничить допустимые движения жестких тел, входящих в анимацию. Ограничители могут, к примеру, служить для указания допустимой оси перемещения объекта или разрешенной оси его поворота, могут обеспечивать привязку положения объекта к определенной точке трехмерного пространства или ограничивать его перемещение заданной линией траектории. Ограничители создаются в составе трехмерной сцены в виде значков. Как и в случае с коллекциями, положение значков ограничителей в составе сцены на момент создания не имеет значения. После того как ограничитель создан, следует переключиться на командную панель Modify (Изменить) и настроить его параметры, в частности указать объекты геометрической модели трехмерной сцепы, которыми будет управлять ограничитель.
Перечень ограничителей Все ограничители модуля reactor (реактор) делятся на простые и объединенные. Приводимые далее описания каждого ограничителя сопровождаются изображениями значков кнопок панели инструментов reactor (реактор), предназначенных для создания данных вспомогательных объектов. В число простых ограничителей (simple constraints) входят: п Spring (Пружина) — позволяет связать два жестких тела между собой или одно из жестких тел с определенной точкой пространства упругой связью, имитирующей действие воображаемой пружины; П Linear Dashpot (Линейный демпфер) — позволяет связать два жестких тела между собой или одно из жестких тел с определенной точкой пространства упругой связью, похожей по действию па автомобильный амортизатор. Назначение этой связи — гасить колебания, которые могут возникать в системе связанных объектов. Связанные тела сохраняют свободу вращения относительно точек привязки; П A n g u l a r Dashpot (Угловой демпфер) — позволяет зафиксировать относительную ориентацию двух жестких тел или абсолютную ориентацию одного тела в пространстве с помощью упругой связи.
246
Глава 4. Имитация динамики и модуль reactor
В число объединенных ограничителей (cooperative constraints) входят: П Rag Doll Constraint (Ограничитель Марионетка) — этот ограничитель позволяет объединить воедино отдельные части тела компьютерного персонажа, такие как кисть, предплечье, плечо, туловище, бедро, голень и т. п., задав допустимые углы сгиба сочленений этих частей. Полученный персонаж может играть роль куклы-марионетки или тряпичной куклы, которая, к примеру, будучи брошенной на пол, может демонстрировать правдоподобные движения рук и ног; п Hinge Constraint (Ограничитель Дверная петля) — позволяет объединить два жестких тела так, чтобы одно из них поворачивалось относительно другого как дверь относительно косяка, или ограничить ось поворота единственного жесткого тела; П Point-to-Point (Ограничитель Точка-точка) — позволяет соединить два жестких тела невидимой нитью или привязать одно жесткое тело к заданной точке трехмерного пространства. Связанные тела могут свободно вращаться одно относительно другого. За счет настройки связи можно ограничить сектор допустимых поворотов тел относительно точки привязки или сделать связь подобием жесткой сцепки, не позволяющей телам сближаться; D Prismatic Constraint (Ограничитель Скольжение) — позволяет ограничить перемещение одного жесткого тела относительно другого или перемещение единственного жесткого тело в трехмерном пространстве только одной заданной осью координат. Фактически, это позволяет создать скользящее сочленение двух жестких тел; П Car-Wheel Constraint (Ограничитель Машина-колесо) — позволяет прикрепить жесткое тело, изображающее колесо, к другому жесткому телу, изображающему, например, автомобильный кузов; п Point-to-Path Constraint (Ограничитель Точка-путь) — позволяет связать два жестких тела так, что дочернее из них будет перемещаться относительно родительского по заданной линии траектории. Если в состав сцены добавляются один или несколько объединенных ограничителей, то должен быть добавлен также вспомогательный объект Constraint Solver (Решение ограничений). В список, имеющийся у этого объекта на панели Modify (Изменить), помещаются имена всех объединенных ограничителей сцены. Кроме того, с помощью кнопки RB Collection (Коллекция жестких тел) данному решению необходимо указать имеющуюся в составе сцены коллекцию жестких тел. Подробное ознакомление со всеми параметрами ограничителей выходит за рамки данного издания. При необходимости обращайтесь к Справочной системе 3ds max.
Знакомство с прочими вспомогательными объектами модуля reactor Помимо коллекций и ограничителей в число прочих вспомогательных объектов модуля reactor (реактор) входят: D Plane (Плоскость) — позволяет создать невизуализируемую плоскость, которая служит преградой для перемещения жестких тел, если они не-
Модуль reactor
247
ремещаются в направлении навстречу нормали плоскости. У этой плоскости можно настраивать свойства коэффициента трения и эластичности. Несмотря на ограниченный размер значка, размеры плоскости считаются неограниченными в пространстве; П Motor (Мотор) — служит источником крутящего момента, который вызывает вращение жесткого тела, связанного с данным объектом, вокруг заданной оси с заданной угловой скоростью; П Wind (Ветер) — служит источником ветра, который может деформировать объекты геометрической модели, включенные в коллекции тканей и нитей. Ветер имеет множество анимируемых параметров, таких как скорость, наличие и сила порывов, ограничение зоны действия и т. п.; D Toy Car (Машинка) — предназначен для анимации моделей автомобилей, имеющих кузов и колеса. Несмотря на то что модель автомобиля можно настроить и с помощью ограничителя Car-Wheel Constraint (Ограничитель Машина-колесо), вспомогательный объект Toy Car (Машинка) позволяет сделать это быстрее и проще. Совокупность геометрических объектов, изображающих кузов и колеса автомобиля, после связывания со вспомогательным объектом Toy Car (Машинка) ведет себя как игрушечная машина без мотора. Такая модель может реалистично скатываться с горки или катиться но плоской поверхности по инерции, если перед началом расчетов модулем reactor (реактор) придать ей движение методом традиционной анимации; D Fracture (Обломки) — служит для создания анимаций, в которых жесткое тело разваливается на заранее подготовленные части при столкновении с другим жестким телом. Отдельные параметры вспомогательных объектов Fracture (Обломки) и W i n d (Ветер) будут рассмотрены далее в разделах «Имитация динамики жестких тел модулем reactor» и «Имитация тканей модулем реактор». Подробное рассмотрение всех прочих вспомогательных объектов выходит за рамки данного издания. При необходимости обращайтесь к Справочной системе 3ds max.
Интерактивное окно предварительного просмотра анимаций Интерактивное окно предварительного просмотра анимаций (рис. 4.18) вызывается щелчком на кнопке Preview in Window (Просмотреть в окне) в свитке Preview & Animation (Просмотр и анимация), появляющемся на командной панели Utilities (Утилиты) после запуска утилиты reactor (реактор). Вызвать появление этого окна можно также, выполнив команду Preview Animation (Просмотреть анимацию) меню reactor (реактор) или щелкнув на кнопке Preview Animation (Просмотреть анимацию) панели инструментов reactor (реактор). Для управления просмотром анимации в окне используйте следующие средства: D чтобы начать просмотр анимации, временно приостановить и снова возобновить просмотр, выполните команду меню окна Simulation > Play/Pause (Имитация > Воспроизведение/Пауза) или просто нажмите клавишу Р;
248
Глава 4. Имитация динамики и модуль reactor
О reactor Real-Time Preview (Open'
Рис. 4.18. Интерактивное окно предварительного просмотра анимаций
D для полной остановки воспроизведения и восстановления исходного состояния сцены выполните команду Simulation > Reset (Имитация > Перезагрузка) или нажмите клавишу R; П для изменения ракурса просмотра щелкните левой кнопкой мыши и перетаскивайте курсор вверх-вниз или вправо-влево по окну; D для прокрутки изображения в окне щелкните средней кнопкой (колесиком) мыши и перетаскивайте курсор вверх-вниз или вправо-влево но окну; D для изменения масштаба изображения крутите среднее колесико мыши; П чтобы вывести на экран подсказку по использованию кнопок мыши, выполните команду Mouse > Mouse Help (Мышь > Справка по мыши) меню окна. Чтобы удалить подсказку, еще раз выполните эту команду. Окно просмотра называется интерактивным, потому что позволяет воздействовать на объекты анимации. Щелкните на объекте правой кнопкой мыши и перетаскивайте курсор. В результате между объектом и курсором будет создана упругая связь, и вы сможете наблюдать результаты своего воздействия на объект в окне просмотра, если только объект не является неподвижным или не имеет ограничений по положению. Меню Display (Дисплей) окна просмотра содержит следующие команды: П Camera Settings (Настройки камеры) — вызывает окно диалога для настройки свойств камеры, таких как положение ближней и дальней плоскостей отсечки и ширина поля зрения;
Модуль reactor
249
П Faces (Грани) — включает визуализацию тонированных сглаженных изображений граней сеток объектов; П Wireframe (Каркас) — включает визуализацию тонированных сглаженных изображений ребер каркаса объектов. Грани сетки при этом не изображаются; П Sim Edges (Моделируемые ребра) — включает показ ребер сетки, которая заменяет собой моделируемое тело с целью определения его границ при столкновениях с другими телами (см. далее раздел «Взаимодействие выпуклых и вогнутых жестких тел»); D Grid (Сетка) — включает изображение координатных сеток в плоскостях XY, YZ и ZX; D Origin (Начало координат) — включает изображение тройки векторов X, Y т Z в начале глобальных координат; D Flashlight On/Off (Прожектор вкл./выкл.) — включает и выключает осветитель, который освещает сцену в окне просмотра «из-за спины» зрителя. Меню Performance (Производительность) содержит набор фиксированных вариантов частот повторения кадров при анимации: 60, 50, 40 или 30 fps (кадров в секунду), а также фиксированных значений циклов расчета на кадр (substeps), от 1 до 100. Меню МАХ окна содержит две команды: П Update MAX (Обновить МАХ) — выбор этой команды заставляет объекты в окнах проекций 3ds max принять такой вид, какой они имеют на данный момент анимации в окне просмотра. Перед выполнением этой команды следует приостановить анимацию с помощью команды Simulation > Play/Pause (Имитация > Воспроизведение/Пауза) или нажатия клавиши Р; D Use MAX parameters (Использовать параметры MAX) — заставляет модуль reactor (реактор) использовать при просмотре в окне значения частоты кадров и число циклов расчета, заданные в свитке Preview & Animation (Просмотр и анимация) утилиты reactor (реактор).
Общие действия по созданию анимаций с помощью модуля reactor Чтобы создать анимацию с использованием модуля reactor (реактор), необходимо в общем случае выполнить следующие действия: 1. Создайте геометрическую модель трехмерной сцены. Следует иметь в виду, что единственной силой, действующей на объекты по умолчанию, является сила тяжести. Поэтому, чтобы получить при имитации динамики модулем reactor (реактор) какое-то действие в сцене, необходимо располагать объекты в состоянии неустойчивого равновесия. Например, приподнять часть объектов над плоскостью опорной поверхности или наклонить их так, чтобы они начали падать, поместить объекты на наклонной плоскости, чтобы они начали скользить, и т. п. При необходимости настройте предварительную анимацию объектов традиционными средствами. Например, придайте объектам
250
Глава 4. Имитация динамики и модуль reactor
сцены, которые должны столкнуться, поступательное движение. Добавьте в состав сцены хотя бы одну камеру и осветители и настройте их положение и ориентацию. 2. При необходимости смоделировать мягкие тела, ткани и нити примените к объектам, которые должны изображать такие деформируемые тела, модификаторы reactor SoftBody (реактор: Мягкое тело), reactor Clothe (реактор: Ткань) и reactor Rope (реактор: Нить). 3. Добавьте в состав сцены вспомогательные объекты-коллекции в соответствии с тем, тела каких типов вы собираетесь имитировать. Например, если в составе сцены будут только жесткие тела, добавьте только вспомогательный объект Rigid Body Collection (Коллекция жестких тел). Если в составе сцены будут жесткие тела и ткани, добавьте коллекции Rigid Body Collection (Коллекция жестких тел) и Cloth Collection (Коллекция тканей), и т. п. Поместите объекты геометрической модели сцены в списки соответствующих коллекций. 4. При необходимости добавьте в состав сцены простые или объединенные ограничители. Укажите для каждого из ограничителей объекты сцены, на которые они будут действовать. Если в состав сцены будут включены объединенные ограничители, добавьте еще вспомогательный объект Constraint Solver (Решение ограничений). В список этого объекта на панели Modify (Изменить) поместите имена всех объединенных ограничителей сцены. С помощью кнопки RB Collection (Коллекция жестких тел) укажите данному решению на имеющуюся в составе сцены коллекцию жестких тел. 5. Переключитесь на командную панель Utilities (Утилиты) и запустите утилиту reactor (реактор). Настройте индивидуальные физические свойства каждого из объектов сцены, которые должны будут играть роль жестких тел, используя свиток Properties (Свойства) этой утилиты, показанный на рис. 4.19. С той же целью можно использовать окно диалога Rigid Body Properties (Свойства жестких тел), вызываемое по команде меню reactor > Open Property Editor (реактор > Открыть Редактор свойств) или щелчком на кнопке с таким же названием панели инструментов reactor (реактор). Группа параметров Physical Properties (Физические свойства) свитка Properties (Свойства) утилиты reactor (реактор) позволяет настроить следующие свойства жестких тел: о Mass (Масса) — масса тела в килограммах. Если для жесткого тела указана нулевая масса, такое тело остается абсолютно неподвижным при анимации. Чтобы задавать массу тела не произвольно, а исходя из физических принципов, следует использовать величину плотности вещества. Перемножьте объем тела в кубических метрах на взятую из справочника по физике плотность в килограммах па кубический метр, и получите массу тела в килограммах, которую и следует ввести в поле параметра Mass (Масса). Для измерения объема трехмерного тела установите в качестве единиц измерения метры, выделите тело и щелкните на кнопке Measure (Измерить) на командной панели Utilities (Утилиты). Прочитайте объем тела в строке параметра V o l u m e (Объем);
Модуль reactor
ттшк->
251
тшштт
Рис. 4.19.
Свиток Properties утилиты reactor на командной панели Utilities
о Elasticity (Эластичность) — свойство, определяющее способность жестких тел к отскоку при столкновении. Меняется от 0 до 5. При столкновении двух жестких тел на результат влияют величины эластичности каждого из них;
СОВЕТ NUBuiy нкревси tuudtuiHtti ,^и-гои кг/м_;
о Friction (Трение) — коэффициент трения. Меняется от 0 до 1. При :;ца скольжении одного жесткого тела i ,..'..•.,:-:• «,,.™^'-««*-^-;г*.к;^^а по поверхности другого имеют значение величины коэффициента трения каждого из них. Четыре флажка иод счетчиками позволяют включать и выключать следующие свойства жестких тел: о Inactive (Неактивно) — установка этого флажка заставляет жесткое тело вступать в анимацию, рассчитываемую модулем reactor (реактор), как неактивное. На такое тело не действуют сила тяжести, давление ветра или крутящий момент, даже если у него есть ненулевая масса, пока какие-то другие тела не вступят с ним в столкновение. После этого тело автоматически активизируется; о Disable All Collisions (Отменить все столкновения) — установка этого флажка исключает участие жесткого тела в столкновениях с другими телами, которые будут свободно проникать сквозь него;
252
Глава 4. Имитация динамики и модуль reactor
о U n y i e l d i n g (Неподатливо) — этот флажок устанавливают для объектов, имеющих анимацию, созданную средствами программы 3ds max, если требуется, чтобы жесткое тело при анимации модулем reactor (реактор) сохраняло свое поведение, определяющееся ключами анимации 3ds max. При этом сохраняется возможность других жестких и деформируемых тел взаимодействовать с данным телом; о
Phantom (Фантом) — жесткие тела, для которых установлен этот флажок, не участвуют в столкновениях с другими жесткими телами, проходя сквозь них. Однако тела-фантомы запоминают информацию о столкновениях, которую затем можно использовать.
6. Для каждого из жестких тел укажите, является ли оно выпуклым или вогнутым, используя средства управления из раздела Simulation Geometry (Моделируемая геометрия) свитка Properties (Свойства). О том, как это правильно сделать, подробно написано в подразделе «Взаимодействие выпуклых и вогнутых жестких тел» этой главы. 7. Настройте физические свойства мягких тел, тканей и нитей, используя для этого свиток Properties (Свойства) соответствующего модификатора, примененного к таким телам, появляющийся па командной панели Modify (Изменить). Параметры, содержащиеся в свитке Properties (Свойства) модификаторов мягких тел, тканей и нитей, будут рассматриваться далее по мере необходимости. 8. Чтобы изображение в окне предварительного просмотра модуля reactor (реактор) соответствовало виду сцены в окне камеры 3ds max, укажите нужную камеру. Для этого щелкните в свитке Display (Дисплей) командной панели U t i l i t i e s (Утилиты) па кнопке с надписью None (Нет), а затем щелкните на значке камеры в любом из окон проекций (рис. 4.20). Имя камеры появится на кнопке. Для того чтобы в окне предварительного просмотра действовали осветители сцены 3ds max, щелкните в свитке Display (Дисплей) на кнопке Pick (Указать) под списком Lights (Осветители). Затем щелкните па нужном источнике света, имя которого появится в списке. Для добавления в список сразу нескольких источников света щелкните на кнопке Add (Добавить), выделите имена нужных осветителей в списке окна Select Lights (Выделить осветители), а затем щелкните па кнопке Select (Выделить). Если в составе сцены не будет осветителей, модуль reactor (реактор) использует встроенный прожектор. 9. На командной панели Utilities (Утилиты) щелкните на кнопке Preview in Window (Просмотреть в окне) в свитке Preview & Animation (Просмотр и анимация) (рис. 4.21), чтобы вызвать появление интерактивного окна reactor Real-Time Preview (Просмотр в реальном времени модуля реактор). С той же целью можно выполнить команду Preview Animation (Просмотреть анимацию) меню reactor (реактор) или щелкнуть на кнопке Preview Animation (Просмотреть анимацию) панели инструментов reactor (реактор).
253
Модуль reactor
|т:;Щ¥е
Рис. 4.20. Свиток Display утилиты reactor на командной панели Utilities
Рис. 4.21. Свиток Preview & Animation утилиты reactor на командной панели Utilities
10. После этого может появиться окно диалога Detected Errors (Обнаруженные ошибки) с перечнем ошибок, обнаруженных модулем reactor (реактор) в подготовленной сцене (рис. 4.22), или похожее на него окно World Analysis (Анализ реальности) с перечнем предупреждений. Для закрытия окна Detected Errors (Обнаруженные ошибки) щелкните па кнопке Close (Закрыть), а окна World Analysis (Анализ реальности) — на кнопке Cancel (Отмена). Предупреждения можно и проигнорировать, щелкнув в окне World Analysis (Анализ реальности) на кнопке Continue (Продолжить). Устраните ошибки и еще раз вызовите окно просмотра анимации. Для начала предварительного просмотра настроенной анимации нажмите клавишу Р, для восстановления исходного состояния — клавишу R. Просмотрев анимацию, закройте окно.
254
Глава 4. Имитация динамики и модуль reactor
Рис. 4(22>: Окно диалога Detected Errors утилиты reactor
11. Чтобы создать ключи анимации объектов трехмерной сцены, позволяющие просматривать анимацию в окнах проекций, задайте номера начального и конечного кадров анимации в счетчиках Start Frame (Начальный кадр), End Frame (Конечный кадр) свитка Preview & Animation (Просмотр и анимация) утилиты reactor (реактор). Щелкните на кнопке Create Animation (Создать анимацию). Появится окно предупреждения о том, что данная операция не подлежит отмене. Щелкните на кнопке ОК. Если установить флажок Update Viewports (Обновлять окна проекций), то по мере выполнения расчетов будет происходить обновление изображения сцены в окнах проекций 3ds max. Когда анимация будет готова, выполните ее визуализацию обычным порядком.
Имитация динамики жестких тел модулем reactor Рассмотрим несколько примеров имитации динамики жестких тел средствами модуля reactor (реактор). В первом примере описывается простейшее взаимодействие выпуклых жестких тел, не имеющих начальной анимации. Их движение возникает только под действием силы тяжести и продолжается за счет инерции, Во втором примере описывается взаимодействие жестких тел, одно из которых имеет предварительную анимацию. Эта анимация продолжается затем модулем reactor (реактор). В третьем примере рассматриваются особенности имитации взаимодействия выпуклых и вогнутых жестких тел. Четвертый пример знакомит с возможностью имитации жестких тел, разбивающихся на части при столкновении.
Простое взаимодействие выпуклых жестких тел Чтобы воспроизвести простейшую динамику взаимодействия жестких тел, не имеющих начальной анимации и двигающихся только под действием силы тяжести, выполните следующие действия: 1. Создайте простейшую трехмерную сцену из объектов-примитивов. Постройте достаточно большой тонкий примитив Box (Параллелепипед) в качестве основания сцены, а над ним на некоторой высоте расположите такой же примитив
255
Имитация динамики жестких тел модулем reactor
меньшего размера, как показано для примера па рис. 4.23. Добавьте в состав сцены камеру и пару осветителей типа Omni (Всенаправленный).
Рис. 4.23.
Вид простейшей сцены, подготовленной для анимации модулем reactor
2. Выделите оба примитива и щелкните на кнопке Create Rigid Body Collection (Создать коллекцию жестких тел) панели инструментов reactor (реактор). В составе сцепы будет автоматически создана коллекция жестких тел, и оба параллелепипеда будут автоматически помещены в список Rigid Bodies (Жесткие тела) свитка RB Collection Properties (Свойства коллекции жестких тел) на напели Modify (Изменить), показанный на рис. 4.24.
Рис. 4.24.
В список свитка RB Collection Properties на командной панели Modify автоматически включены оба примитива-параллелепипеда
3. Переключитесь на командную панель Utilities (Утилиты) и щелкните на кнопке reactor (реактор) в свитке Utilities (Утилиты), чтобы запустить утилиту имитационного моделирования. Разверните свиток Properties (Свойства) (см. рис. 4.19). Выделите в окне проекции примитив, играющий роль основания сцепы. Убедитесь в том, что в счетчике Mass (Масса) указана величина 0. Это означает, что данный примитив будет оставаться неподвижным. Выделите примитив меньшего размера, приподнятый над основанием. Выполните для него расчет значения массы, измерив объем тела в кубических метрах с помощью утилиты Measure (Измерить). В рассматриваемом примере объем оказался равным около 0,5 м3, поэтому, предположив, что тело сделано из дерева, можно назначить ему массу порядка 300 кг.
256
Глава 4. Имитация динамики и модуль reactor
4. Разверните на командной панели Utilities (Утилиты) свиток Display (Дисплей) (см. рис. 4.20), щелкните на кнопке с надписью None (Нет), а затем щелкните на значке камеры в любом из окон проекций. Имя камеры появится на кнопке. Щелкните на кнопке Add (Добавить) под списком Lights (Осветители), выделите имена нужных осветителей в списке появившегося окна Select Lights (Выделить осветители), а затем щелкните на кнопке Select (Выделить). Имена осветителей появятся в списке Lights (Осветители) свитка Display (Дисплей). Теперь все готово для просмотра анимации. 5. Разверните на командной панели Utilities (Утилиты) свиток Preview & Animation (Просмотр и анимация) (см. рис. 4.21), и щелкните на кнопке Preview in Window (Просмотреть в окне), чтобы вызвать появление интерактивного окна reactor Real-Time Preview (Просмотр в реальном времени модуля реактор). Выберите в меню Display (Дисплей) окна команду Flashlight On/Off (Прожектор вкл./выкл.), чтобы выключить встроенный прожектор модуля reactor (реактор) и перейти на освещение сцены в окне предварительного просмотра осветителями 3ds max. Сцепа в окне должна выглядеть так же, как в окне камеры 3ds max (рис. 4.25, а).
О feactof Real-Time Preview (DirectX) formance Mouse MAX
Исходный вид простейшей сцены в окне предварительного просмотра анимации (а) и вид сцены после завершения действия (б)
Имитация динамики жестких тел модулем reactor
257
6. Нажмите клавишу Р, чтобы запустить просмотр анимации. Малый параллелепипед под действием силы тяжести упадет па основание в виде большого параллелепипеда и, слегка подпрыгнув, остановится (рис. 4.25, 6). Ани- CD мация простая, однако создана автоматически и воспроизводит реальное жт поведение тяжелого объекта в поле силы тяжести. Нажмите клавишу R, чтобы остановить воспроизведение и привести объекты в окне просмотра в исходное состояние. 7. Для завершения процесса следует ййШ&^.'й'Й' • ••'.".^Л 1*А^^'. создать ключи анимации объектов ЗАМЕЧАНИЕ |;; трехмерной сцепы. Щелкните па кнопке Create Animation (Создать анимацию) свитка Preview & Animation (Просмотр и анимация) на
'обратите внимание на то, что в:окне предверительного просмотра ведения анимации не ограничено, а в окнах проекций анимация длится:ровно:столько, сколько отведено на активный временной
командной панели Utilities (Утилисегмент : ты). Щелкните па кнопке ОК в окис жительность анимации составляет 100 кад-;: в 10 есть предупреждения о том, что данная Р° при:часготе : в 30 кадров в сеК НД онерация не подлежит отмене. ПоУ У время анимации С оставляет::около .. 3 секунд. При необходимости увеличьте еле некоторого времени, требующепродолжительность времени анимации гося па расчеты, создание ключей бу; : с помощью окна Time Configuration (Надет закопчено и анимацию можно стройка временных интервалов). После этого пе будет воспроизвести в окнах проекРед Расчетом ™ючв" модулем reactor „ „, (реактор) не забудьте установить новое ции 3ds max или выполнить ее виз н а ч е н и е номера последнего кадра ани : зуализацию обычными средствами. ма1дии в счетчике End Frame (Последний При необходимости удалить клюкадр) в свитке Preview & Animation (Прочи выделите апимировашшй объ- 1 смотр : и анимация) на командной панели. • •о „ : Utilities (Утилиты), ект. В нашем примере это верхний
параллелепипед. Разверните свиток Utils (Утилиты) (рис. 4.26) и щелкните на кнопке Delete Keys (Удалить ключи) в разделе Selection (Выделенные объекты), чтобы удалить ключи выделенных объектов, или на кнопке Delete A l l Keys (Удалить все ключи) в разделе Key Management (Управление ключами), чтобы удалить все ключи, имеющиеся в сцене. 8. Несколько усложните задачу, наклонив основание сцены, как показано на .ср рис. 4.27, а. Снова воспроизведите анимацию в окне предварительного про- \251u смотра. Теперь верхний параллелепипед надает на наклонное основание, скользит и слетает с него (рис. 4.27, б). 9. Выделите поочередно оба параллелепипеда и увеличьте для каждого из них значение параметра Friction (Трение) в свитке Properties (Свойства) на командной панели Utilities (Утилиты) с принятого по умолчанию значения 0,3 до 1. Снова воспроизведите анимацию в окне предварительного просмотра. Теперь верхний блок падает на основание, но не скользит, а, качнувшись но инерции, останавливается. Итак, модуль reactor (реактор) воспроизводит реалистичное поведение жестких тел с учетом их физических свойств.
258
Глава 4. Имитация динамики и модуль reactor
Рис. 4.26. Свиток Utils утилиты reactor на командной панели Utilities
10.
Попробуйте увеличить значение коэффициента трения для любого из блоков до 2. Появится окно World A n a l y s i s (Анализ реальности), подобное по виду окну Detected Errors (Обнаруженные ошибки) (см. рис. 4.22). В окне будет содержаться предупреждение о том, что коэффициент трения имеет величину, не соответствующую физическим представлениям, так как в реальном мире коэффициент трения меняется от 0 до 1. Тем не менее можно продолжить анимацию, щелкнув на кнопке Continue (Продолжить) в нижней части окна. Для отказа от просмотра щелкните па кнопке Cancel (Отмена) и установите реалистичное значение коэффициента.
Рис. 4.27.
Видоизмененная сцена (а), подготовленная для анимации модулем reactor, и результат воспроизведения анимации в окне предварительного просмотра (б)
Имитация динамики жестких тел модулем reactor
259
11. Еще немного видоизмените анимацию. Удалите верхний блок, придайте основанию горизонтальное положение и создайте несколько новых примитивов такой формы, благодаря которой при падении они не могли бы сразу приобрести с!с положение устойчивого равновесия. Для примера на рис. 4.28, а показана сцена, №Ш в которой использованы примитивы ChamferBox (Параллелепипед с фаской), Capsule (Капсула) и Spindle (Веретено). Слегка поверните примитивы, чтобы их положение при падении на основание было еще более неустойчивым,
Рис. 4.28. Видоизмененная сцена (а), подготовленная для анимации модулем reactor (реактор), и результат воспроизведения анимации в окне предварительного просмотра (б)
12. Щелкните па значке коллекции жестких тел и добавьте вновь созданные примитивы в список Rigid Bodies (Жесткие тела) свитка RB Collection Properties (Свойства коллекции жестких тел) на панели M o d i f y (Изменить), использовав кнопку Add (Добавить). Назначьте новым жестким телам массу. Восстановите для всех объектов исходное значение коэффициента трения, равное 0,3. Воспроизведите анимацию в окне предварительного просмотра. Теперь примитивы, упав на основание, некоторое продолжают двигаться, подталкивая друг друга так, что некоторые из них могут даже упасть с подставки (рис. 4.28, б). 13. Попробуйте двигать примитивы в окне просмотра, используя правую кнопку мыши. Вы можете даже приподнимать их над основанием и снова бросать вниз, отпуская кнопку.
Продолжение традиционной анимации модулем reactor Часто возникает необходимость придать объектам сцены определенное начальное движение средствами традиционной анимации, а затем продолжить действие с помощью модуля reactor (реактор). Рассмотрим вариант такого продолжения на примере сцепы, изображающей цепочку падающих костяшек домино.
260
Глава 4. Имитация динамики и модуль reactor
Чтобы воспроизвести подобную анимацию, выполните следующие действия: 1. Постройте сцену из примитивов. В качестве основания создайте параллелепипед большой длины и ширины, по малой толщины. Еще один параллелепипед используйте как заготовку костяшки домино. Для создания набора костяшек, равномерно размещенных вдоль заданной траектории, нарисуйте сплайн-линию и примените к единственной исходной костяшке инструмент Spacing Tool (Распределение), разместив нужное число дубликатов вдоль линии (рис. 4.29). Создайте коллекцию жестких тел и поместите в нее все CD объекты, изображающие основание сцепы и костяшки домино. Добавьте в состав сцены камеру и источники света.
Рис. 4.29.
Трехмерная сцена, подготовленная для продолжения традиционной анимации модулем reactor (реактор)
2. Переключитесь па командную панель Utilities (Утилиты) и настройте значения массы тел. Выделите одну из костяшек, измерьте ее объем в кубических метрах, используя кнопку Measure (Измерить), и рассчитайте массу, приняв величину плотности порядка 700 кг/м , что соответствует твердому дереву. ВклюЗАМЕЧАНИЕ чите утилиту reactor (реактор). Для Проследите-за ;тем,:что6ь1:оснОвания объоснования сцены оставьте массу равектов, изображающих костяшки домино, не ной нулю, чтобы оно было неподвижпроникали внутрь- параллелепипеда, игным. Выделите все костяшки домино рающего::::ррЛЙ|о^нов%Щя"сцены.:Если та: и введите значение массы в поле счеткие: взаимные пересечения будут .иметь место, модуль reactor (реактор) при попытчика Mass (Масса) в свитке Properties ке просмотреть; анимацию вюкне предва(Свойства) утилиты reactor (реактор). рительного просмотра ;выдаст окно World Укажите модулю reactor (реактор) Analysis;(Анализ реальности) с сообщеимеющиеся в составе сцепы камеру нием There^гЩйе^еп'еtralioris 'Имеются .взаимные проникновения) и перечнем всех и осветители, используя средства взаимопроникШщиХ:?;||ур;|; другэ1объексвитка D i s p l a y (Дисплей) как было гов. Жееткиё!:№ёЛа:зЩ':дЬлжньГ::иметь взаописано в подразделе «Простое взаиимных проникновений. ; модействие выпуклых жестких тел». :' : i 3. Настройте анимацию наклона первой костяшки, которая должна обеспечить ее падение. Перед тем как создать ключи, переместите опорную точку параллелепипеда, изображающего первую костяшку, на край основания, относитель-
Имитация динамики жестких тел модулем reactor
261
но которого будет происходить поворот объекта. Если оставить опорную точку в ее исходном положении в центре основания примитива, то при повороте его край слегка погрузится в параллелепипед, изображающий опорную поверхность, что недопустимо для анимации модулем reactor (реактор). Жесткие тела не должны иметь взаимопроникновений. Выполните анимацию поворота первой костяшки до положения неустойчивого равновесия (рис. 4.30) за два первых кадра.
Рис, 4.30,s Первая костяшка анимирована по повороту за два кадра, и теперь эта анимация может быть продолжена модулем reactor
4. На командной панели Utilities (Утилиты) разверните свиток Preview & Animation (Просмотр и анимация). Введите в счетчик Start Frame (Начальный кадр) помер кадра, в котором создан последний ключ анимации объектов 3ds max. В данном случае это кадр 2. Модуль reactor (реактор) учитывает скорости объектов трехмерной сцены на момент начала расчетов, приобретенные ими в результате анимации обычными средствами. Щелкните на кнопке Preview in Window (Просмотреть в окне), чтобы вызвать появление интерактивного окна reactor Real-Time Preview (Просмотр в реальном времени модуля реактор). Обратите внимание на то, что первая костяшка домино находится на момент начала анимации в неустойчивом положении (рис. 4.31, а) и должна упасть под действием своей инерции и силы тяжести. Воспроизведите анимацию. Кости домино падают, роняя друг друга (рис. 4.31, б). Обратите внимание на надпись time: (время:) в нижней части окна, показывающую общее время анимации. Она позволяет рассчитать необходимое число кадров, в которых должны быть созданы ключи. В нашем примере все действие заканчивается примерно за 6 секунд, что соответствует приблизительно ' : : 200 кадрам анимации. 5. Увеличьте продолжительность анимации до 200 кадров, используя окно диалога Time Configuration (Настройка временных интервалов). Затем увеличьте до 200 значение в счетчике
: • лежит отмене, имеет смысл рЩЩп (Создать анимацию) в : свитке : Preview & Animation (Просмотр и анимация; утилиты reactor (реактор)'"'•''••'"" '
262
Глава 4. Имитация динамики и модуль reactor
End Frame (Последний кадр) в свитке Preview & Animation (Просмотр и анимация) утилиты reactor (реактор) и щелкните на кнопке Create Animation (Создать анимацию), чтобы создать ключи анимации объектов сцены 3ds max.
Smulafav Display Performance Mouse MAX
Исходный вид сцены в окне предварительного просмотра анимации (а) и вид сцены после завершения действия (6)
Взаимодействие выпуклых и вогнутых жестких тел CD Рассмотрим простую сцену, показанную на рис. 4.32. На наклонной опорной поШШ верхиости, моделируемой примитивом-параллелепипедом, под наклоном расположено тело вращения, имитирующее таз. Задача состоит в том, чтобы выполнить анимацию падения сферы в этот таз под действием силы тяжести.
Если вы создадите коллекцию жестких тел, выполните все необходимые настройки таких тел, описанные в предыдущих подразделах, и попробуете воспроизвести анимацию в окне предварительного просмотра, то увидите, что сфера не падает в таз, а скатывается на уровне его верхней кромки и падает вниз, как будто таз закрыт невидимой крышкой. Дело в том, что но умолчанию все трехмерные тела рассматриваются модулем reactor (реактор) как выпуклые.
Имитация динамики жестких тел модулем reactor
263
Рис. 4.32. Трехмерная сцена, подготовленная для анимации модулем reactor (реактор)
Для определения моментов столкновений жестких тел модуль reactor (реактор) в целях ускорения расчетов использует различные варианты приближенного описания внешних границ тел сложной формы. Эти варианты выбираются в разделе Simulation Geometry (Моделируемая геометрия) свитка Properties (Свойства) утилиты reactor (реактор) (см. рис. 4.19). Чтобы увидеть, как выглядит сетка моделируемой геометрии объектов, используемая модулем reactor (реактор) для определения столкновений жестких тел, следует в окне предварительного просмотра выполнить команду Display > Sim Edges (Дисплей > Моделируемые ребра). По умолчанию переключатель в разделе Simulation Geometry (Моделируемая геометрия) свитка Properties (Свойства) устанавливается в положение Use Mesh Convex Hull (Использовать выпуклую сетчатую оболочку) группы Convex (Выпуклый объект). В этом случае для определения внешних границ трехмерного тела используется сетка, натянутая на это тело так, что она всюду является выпуклой (рис. 4.33, а). Другими возможными положениями группы Convex ( В ы п у к л ы й объект) переключателя Simulation Geometry (Моделируемая геометрия) для описания тел как выпуклых являются: D Use B o u n d i n g Box (Использовать габаритный контейнер) — для определения границ объекта используется его габаритный контейнер (рис. 4.33, б); П Use Bounding Sphere (Использовать габаритную сферу) — для определения границ объекта используется сфера, описанная вокруг объекта (рис. 4.33, в); a Use Proxy Convex Hull (Использовать аппроксимирующую выпуклую оболочку) — для определения границ тела используется оболочка другого выпуклого тела, которое выбирается в помощью кнопки с надписью None (Нет), расположенной под переключателем. Например, можно использовать такую же модель, но с меньшим числом граней, что ускоряет расчеты. Для описания тел как вогнутых используют следующие положения группы Concave (Вогнутый объект) переключателя Simulation Geometry (Моделируемая геометрия): П Use Mesh (Использовать сетку) — для определения границ вогнутого объекта используется его собственная сетчатая оболочка (рис. 4.33, г);
264
Глава 4. Имитация динамики и модуль reactor
Simulation
MX
'>
11 t
Рис. 4.33. Различные варианты приближенного описания поверхности трехмерных тел модулем reactor: Use Mesh Convex Hull (a); Use Bounding Box (6); Use Bounding Sphere (в); Use Mesh (r)
a Use Proxy Mesh (Использовать аппроксимирующую сетку) — для определения границ вогнутого объекта используется сетчатая оболочка другого вогнутого тела, которое выбирается в помощью кнопки с надписью None (Нет), расположенной под переключателем. Например, можно использовать такую же модель, но с меньшим числом граней, что ускоряет расчеты.
CD
Итак, чтобы выполнить задуманную анимацию, выделите объект-таз и установите для него переключатель S i m u l a t i o n Geometry (Моделируемая геометрия) в свитке Properties (Свойства) в положение Use Mesh (Использовать сетку). Воспроизведите анимацию в окне предварительного просмотра. Теперь сфера будет падать в таз и, покатавшись внутри него по инерции, останавливаться (рис. 4.34). Попробуйте изменять значение параметра E l a s t i c i t y (Эластичность) в свитке Properties (Свойства) для объектов, имитирующих таз и сферу, чтобы наблюдать разные величины отскоков падающего шара.
Имитация динамики жестких тел модулем reactor
Simulation
Display
Performance
House
265
MAX
Сфера падает в таз и, покатавшись внутри него по инерции, останавливается
Имитация жестких тел, разбивающихся при столкновении Модуль reactor (реактор) позволяет имитировать такое взаимодействие жестких тел, при котором они во время столкновения разбиваются на части. Объект, которому по сценарию предстоит разбиться, на этапе моделирования составляется из тех частей, па которые он должен распасться при столкновении. Чтобы познакомиться с этой возможностью модуля reactor (реактор), выполните следующие действия: 1. Создайте объект, который должен разбиться на части при столкновении с другим жестким телом. Выберем, к примеру, в качестве разбивающегося объекта кресло. Чтобы кресло разбилось при падении, оно заранее составляется из отдельных частей, таких как боковины, подушка сиденья, перекладины, спинка и подушка спинки (рис. 4.35). Эти части никак не скрепляют и не объединяют в группу, а просто размещают так, чтобы объект внешне выглядел как единое целое.
Рис, 4.35.
Объект-кресло (слева) и составляющие его части (справа)
CD
266
Глава 4. Имитация динамики и модуль reactor
2. Создайте трехмерную сцепу, включающую основание в виде примитива-параллелепипеда, и размещенное на некоторой высоте над основанием приготовлениое в п. 1 кресло, которое должно разбиться при падении. Включите в сцену камеру и пару осветителей (рис. 4.36).
Рис. 436: Вид трехмерной сцены, подготовленной для анимации модулем reactor
i* |:.;;;Ше
'"З"1
Рис. 4.37.
Свиток Properties вспомогательного объекта Fracture на командной панели Modify
Имитация динамики жестких тел модулем reactor
267
3. Добавьте в сцепу коллекцию жестких тел и поместите в ее список все составные части кресла и основание сцепы. Задайте для составных частей кресла ненулевые значения массы в свитке Properties (Свойства) утилиты reactor (реактор) па панели Utilities (Утилиты). Массу основания оставьте равной пулю. Укажите модулю reactor (реактор) на используемую камеру и осветители. 4. Выделите рамкой все детали кресла и создайте вспомогательный объект Fracture (Обломки), щелкнув па кнопке Create Fracture (Создать Обломки) панели инструментов reactor (реактор). Имена всех составных частей кресла автоматически будут включены в список Pieces (Обломки) свитка Properties (Свойства) вспомогательного объекта Fracture (Обломки), который появится на командной панели Modify (Изменить) (рис. 4.37). Сами части кресла в окнах проекций будут заключены в габаритный контей- ср нер вспомогательного объекта Fracture (Обломки), как показано на рис. 4.38.
МШИ! Вид трехмерной сцены после добавления коллекции жестких тел и вспомогательного объекта Fracture
5. Переключатель Break On (Разбивать при) в свитке Properties (Свойства) вспомогательного объекта Fracture (Обломки) установлен по умолчанию в положение Velocity (Скорость). Это значит, что объект при столкновении с другим жестким телом будет разбиваться па части, если их относительная скорость превысит величину, заданную в счетчике справа от переключателя. По умолчанию эта скорость составляет 2,5 м/с. Не выполняя никаких настроек параметров вспомогательного объекта, просмотрите анимацию в окне предварительного просмотра. Кресло падает па пол и разбивается на заранее подготовленные ср части (рис. 4.39), которые довольно реалистично разлетаются в стороны. iifflul 6. Увеличьте скорость разрушающего контакта в счетчике Velocity (Скорость) свитка Properties (Свойства) вспомогательного объекта Fracture (Обломки) до нереальной величины, скажем, 100 м/с. Снова воспроизведите анимацию в окне просмотра. Теперь кресло падает, по остается целым (рис. 4.40). Переключатель Break On (Разбивать при) в свитке Properties (Свойства) вспомогательного объекта Fracture (Обломки) может быть установлен в положение Impulse (Импульс). В этом случае условием разрушения жесткого тела при столкновении с другим будет превышение величины импульса силы, заданной в счетчике справа от переключателя. Импульс силы прямо пропорционален величине относительной скорости сталкивающихся тел и значению массы разрушающегося тела.
268
Глава 4. Имитация динамики и модуль reactor
Рис. 4.39. Исходный вид сцены в окне предварительного просмотра анимации (а) и вид сцены после завершения действия (б)
Рис. 4.40. Если условие разрушения не выполнено, жесткое тело не разбивается на части
Имитация динамики мягких тел модулем reactor
269
Для настройки свойств отдельных обломков выделяйте их имена в списке и устанавливайте переключатель Selected Pice (Выделенный обломок) под списком в одно из положений: П Normal (Нормальный) — обычное поведение обломка, который отлетает от тела при выполнении соответствующего условия разрушения при столкновении; П Unbreakable (Неразрушимый) — такой обломок ни при каких условиях не отлетает от других частей жесткого тела с таким же свойством. Скажем, если в рассматриваемом примере объявить части кресла Спинка и Подушка как обломки типа Unbreakable (Неразрушимый), то при разбиении кресла они останутся вместе как одно целое; П Keystone (Ключевой) — как только от объекта отделится такой обломок, в этот же момент отделятся и все остальные. Если в рассматриваемом примере объявить деталь Левая боковина, которая первой касается основания при падении кресла, как обломок типа Keystone (Ключевой), то в момент касания этой детали основания сцены все кресло рассыплется па части; П Break At Time (Разбивать в момент) — выделенный обломок будет отлетать от жесткого тела в момент времени, указанный в счетчике под переключателем. Для задания момента времени можно перетащить ползунок таймера к _nRрт отметке нужного кадра и щелкнуть : : : , . , ^ ::,.......... на кнопке Now (Сейчас).
С остальными параметрами свитка Properties (Свойства) вспомогательного объекта Fracture (Обломки) познакомьтесь v , ' при необходимости самостоятельно, непользуя Справочную систему программы 3ds max.
Чтобы после создания ключей анимации • : объектов трехмерной ный объект Fracture (Обломки) не мешал просмотру анимации в окнах проекций,: у: выделите его и скройте от просмотра с по-мощью команды Hide Selected (Скрыть выделенные объекты) четвертного Цй&Ш
Имитация динамики мягких тел модулем reactor Мягкие тела — одна из разновидностей деформируемых тел, динамика взаимодействия которых между собой и с жесткими телами может быть воспроизведена средствами модуля reactor (реактор). Имитация динамики взаимодействия мягких тел выполняется, в общем, так же, как и имитация динамики взаимодействия жестких тел, однако этот процесс имеет и ряд отличий. Чтобы ознакомиться с ними, выполните следующие действия: 1. Создайте простую трехмерную сцепу, состоящую из трех примитивов Plane (Плоскость), размещенных под углом друг к другу, и примитива Hedra (Многогранник), расположенного на некоторой высоте над конструкцией из плос- СР костей (рис. 4.41). Добавьте в состав сцепы коллекцию жестких тел и коллекцию мягких тел. Для добавления последней щелкните на кнопке Create Soft Body Collection (Создать коллекцию мягких тел) панели инструментов reactor (реактор).
270
Глава 4. Имитация динамики и модуль reactor
Рис. 4.41. Исходный вид трехмерной сцены, подготовленной для анимации модулем reactor
2. Поместите все три плоскости в список Rigid Bodies (Жесткие тела) свитка RB Collection Properties (Свойства коллекции жестких тел) на панели Modify (Изменить). К примитиву Hedra (Многогранник), который будет играть роль мягкого тела, примените модификатор reactor Soft Body (реактор: Мягкое тело). Сделать это можно, например, выделив многогранник и щелкнув па кнопке Apply Soft Body Modifier (Применить модификатор Мягкое тело) напели инструментов reactor (реактор). На панели Modify (Изменить) появятся свитки параметров модификатора, Properties (Свойства) и Constraints (Ограничители) (рис. 4.42). Поместите многогранник в список коллекции мягких тел. Для этого выделите значок коллекции, щелкните на кнопке Pick (Указать) под списком Soft Bodies (Мягкие тела) в свитке Properties (Свойства) на панели M o d i f y (Изменить), а затем щелкните на примитиве Hedra (Многогранник).
:йЩ|11!
т
Рис. 4.42. Свитки Properties и Constraints со средствами настройки модификатора reactor Soft Body
271
Имитация динамики мягких тел модулем reactor
3. Переключитесь па панель Utilities (Утилиты), запустите утилиту reactor (реактор) и установите для каждой из трех плоскостей переключатель S i m u l a t i o n Geometry (Моделируемая геометрия) свитка Properties (Свойства) в положение Use Mesh (Использовать сетку) группы Concave (Вогнутый объект). Так как плоскость состоит всего из одного слоя граней, лежащих в одной плоскости, модуль reactor (реактор) не воспринимает ее как выпуклый объект. Оставьте нулевое значение массы для всех трех плоскостей, чтобы они были неподвижны. 4. Выделите примитив Hedra (Многогранник) и измерьте его объем. Рассчитайте величину массы, исходя из плотности в 1100 кг/м3, что соответствует резине. Переключитесь па панель M o d i f y (Изменить) и введите значение массы в счетчик Mass (Масса) свитка Properties (Свойства) модификатора reactor Soft Body (реактор: Мягкое тело). Установите в качестве параметра S t i f f n e s s (Жесткость) величину 10. Параметр D a m p i n g (Демпфирование), управляющий скоростью затухания упругих колебаний мягкого тела, установите равным 0,3. 5. Воспроизведите анимацию в окне предварительного просмотра, наблюдая за со тем, как мягкое тело упруго прыгает по плоскостям (рис. 4.43). Измените зна- "^Ш чепия параметров и повторите просмотр, следя за их действием.
Simulation
Display
Performance
Mouse
MAX
Рис. 4.43. Многогранник (мягкое тело) упруго отскакивает от плоскостей (жесткие тела) в окне предварительного просмотра
б. Создайте ключи анимации примитива, щелкнув иа кнопке Create Animation (Создать анимацию) в свитке Preview & Animation (Просмотр и анимация) утилиты reactor (реактор), и просмотрите анимацию в окнах проекций. Если после создания ключей анимации вам понадобится их удалить, используйте для этого кнопку Clear Keyframes (Очистить ключи) в свитке Properties (Свойства) модификатора reactor Soft Body (реактор: Мягкое тело) иа панели Modify (Изменить), а не кнопку Delete Keys (Selection) (Удалить ключи (выделенных объектов)) в свитке Utils (Утилиты) утилиты reactor (реактор).
272
Глава 4. Имитация динамики и модуль reactor
Свиток Properties модификатора reactor Soft Body Свиток Properties (Свойства) модификатора reactor Soft Body (реактор: Мягкое тело) позволяет настроить такие параметры мягких тел: D Mass (Масса) — масса мягкого тела в килограммах; D Stiffness (Жесткость) — влияет на степень деформируемости мягкого тела при столкновении с жесткими телами. Значения жесткости порядка 0,1—0,5 будут придавать мягкому телу свойства плохо надутого воздушного шара, а значения порядка 10-15 — свойства упругой резины. Установите величину параметра равной 10; D Damping (Демпфирование) — управляет скоростью затухания упругих колебаний мягкого тела; чем больше значение, тем быстрее затухают колебания. Меняется от 0 до 1. Установите значение параметра равным 0,3; D Friction (Трение) — коэффициент трения. Выберите один из двух допустимых вариантов моделей мягких тел: П Mesh-Based (На базе сетки) — в этом случае модификатор reactor Soft Body (реактор: Мягкое тело) деформирует сетку объекта, непосредственно влияя на ее вершины; П FFD-based (На базе FFD) — в этом случае модификатор reactor Soft Body (реактор: Мягкое тело) деформирует сетку объекта с помощью решетки, подобной той, какую используют модификаторы произвольной деформации семейства FFD. Остальные параметры модификатора reactor Soft Body (реактор: Мягкое тело) аналогичны по назначению и использованию параметрам модификатора reactor Cloth (реактор: Ткань), рассматриваемого далее в разделе «Имитация тканей модулем reactor».
Имитация тканей модулем reactor Ткани, как и мягкие тела, являются разновидностью деформируемых тел, которые можно моделировать средствами модуля reactor (реактор). С помощью тканей можно имитировать развевающиеся на ветру флаги, колышущиеся занавеси или, скажем, плащ персонажа. В программе 3ds max для моделирования ткани используют примитив P l a n e (Плоскость). Чтобы освоить методы имитации тканей, рассмотрим несколько примеров. В первом примере будет описана простая деформация ткани, падающей под действием силы тяжести, на препятствии сложной формы. Второй пример посвящен рассмотрению деформации ткани под действием ветра и использованию привязки вершин сетки, имитирующей ткань, к заданным точкам пространства. В третьем примере рассмотрим привязку ткани к жесткому телу и ее анимацию вместе с таким телом.
Имитация тканей модулем reactor
273
Деформация ткани на препятствии Чтобы освоить приемы простейшей анимации ткани, выполните следующие действия: 1. Создайте трехмерную сцепу, в состав которой включите плоскость, которая будет имитировать ткань, и объект, изображающий жесткое тело, например выдавленный текст. Увеличьте сегментацию плоскости до 24 по каждой из координат. Разместите плоскость над строкой, немного сместив вперед ее центр СР на виде сверху, чтобы после анимации один край ткани перевешивал и она ШШ сползала (рис. 4.44).
Рис. 4.44.
Исходный вид трехмерной сцены с тканью, подготовленной для анимации модулем reactor
2. Создайте коллекцию жестких тел и включите в нее выдавленный текстовый объект, как описано ранее в разделе «Имитация динамики жестких тел модулем reactor». Затем создайте коллекцию тканей. Для этого можно щелкнуть на кнопке Create Cloth Collection (Создать коллекцию тканей) напели инструментов reactor (реактор), а затем щелкнуть в нужной точке окна проекции. 3. Выделите плоскость и примените к пей модификатор reactor Cloth (реактор: Ткань), щелкнув, к примеру, на кнопке Apply Cloth Modifier (Применить модификатор Ткань) панели инструментов reactor (реактор). На панели Modify (Изменить) появятся свитки параметров модификатора Properties (Свойства) (рис. 4.45) и Constraints (Ограничители). Оставьте в исходном состоянии настройки всех параметров модификатора reactor Cloth (реактор: Ткань), кроме одного: установите сброшенный по умолчанию флажок Avoid Self-Intersections (Избегать самопересечений). 4. Добавьте плоскость в коллекцию тканей. Для этого щелкните на значке коллекции CLCollectionO! (Коллекция тканейСИ), затем щелкните па кнопке Pick (Указать) под списком Cloth Entities (Образцы тканей) в свитке Properties (Свойства) на панели Modify (Изменить) и в заключение щелкните на плоскости в любом из окон проекций. Имя объекта PlaneO! (ПлоскостьСИ) появится в списке. 5. Переключитесь на панель Utilities (Утилиты). Просмотрите анимацию в окне предварительного просмотра. Вы увидите, как ткань падает на строку, реалистичпо деформируется, а затем соскальзывает (рис. 4.46).
274
Глава 4. Имитация динамики и модуль reactor
_
_„
"
'• . ,'
I
•
Верхняя (а) и нижняя (б) части свитка Properties со средствами настройки модификатора reactor Cloth
6. Уменьшите коэффициент трения ткани. Для этого выделите ткань, перейдите на панель Modify (Изменить) и установите 0,25 в счетчике Friction (Трение) свитка Properties (Свойства). Повторите воспроизведение анимации в окне просмотра. Создайте ключи анимации ткани, щелкнув на кнопке Create A n i m a t i o n (Создать анимацию) в свитке Preview & Animation (Просмотр и анимация) утилиты reactor (реактор), и просмотрите анимацию в окнах проекций.
Свиток Properties модификатора reactor Cloth В свитке Properties (Свойства) модификатора reactor Cloth (реактор: Ткань) можно настроить следующие параметры тканей: П Mass (Масса) — величина массы сказывается на растяжении ткани при столкновении с жесткими телами, причем чем больше масса, тем меньше растяжение; D Friction (Трение) — коэффициент трения ткани; П Rel Density (Относительная плотность) — ткань не имеет толщины и объема, поэтому плотность называется относительной. Она имеет значение только для анимаций, в которых ткань по сценарию должна падать в воду. По умолчанию плотность ткани равна плотности воды; D Air Resistance (Сопротивление воздуха) — вызывает замедление падения ткани. Для расчетов анимации ткани можно использовать две модели действующих па ткань сил: D Simple Force Model (Простая модель сил) — простая и быстрая для расчетов, но не очень точная модель. Имеет два параметра для настройки: о Stiffness (Жесткость) — управляет гибкостью ткани; о Damping (Демпфирование) — задает скорость затухания упругих колебаний.
275
Имитация тканей модулем reactor
Рис. 4.46. Вид сцены с тканью в окне предварительного просмотра перед началом анимации (а), на промежуточной стадии (б) и перед завершением действия (в)
276
Глава 4. Имитация динамики и модуль reactor
п Complex Force Model (Сложная модель сил) — более сложная и требующая большего времени на расчеты, но более точная модель поведения ткани. Имеет четыре настраиваемых параметра: о Stretch (Растяжение) — задает степень растяжения ткани; о Bend (Изгиб) — задает степень сопротивления изгибам; о Shear (Разрыв) — задает степень сопротивления разрывам; о Damping (Демпфирование) — задает скорость затухания упругих колебаний. Переключатель Fold S t i f f n e s s (Жесткость складок) позволяет выбрать один из трех вариантов: П None (Нет) — в этом варианте, принятом по умолчанию, ткань ведет себя подобно шелку; П U n i f o r m Model (Равномерная модель) — в этом варианте жесткость складок ткани равномерна на всем ее протяжении; п Spatial Model (Пространственная модель) — позволяет менять жесткость складок только в определенных местах ткани. Остальные параметры свитка являются одинаковыми для всех деформируемых тел: П Avoid Self-Intersections (Избегать самопересечений) — установка этого флажка позволяет избежать случаев пересечения отдельными частями ткани себя самой; П Constrain Deformations (Ограничить деформации) — установка этого флажка позволяет ограничить растяжение ткани при деформациях в счетчике Мах (%) (Максимум (%)); D Start With Current State (Начинать с текущего состояния) — если данный флажок установлен, то модификатор запоминает состояние объекта в текущем кадре. При открытии окна предварительного просмотра ткань будет загружаться в это окно в том деформированном виде, которое запомнено модификатором. Например, откройте окно предварительного просмотра и запустите анимацию ткани. Когда ткань деформируется в окне должным образом, приостановите воспроизведение анимации, нажав клавишу Р. Выберите команду МАХ > Update MAX (МАХ > Обновить МАХ). В итоге ткань в окнах проекций будет деформирована аналогично тому, как она выглядит в окне предварительного просмотра. Это состояние запоминается модификатором, и если снова открыть окно предварительного просмотра при установленном флажке Start With Current State (Начинать с текущего состояния), то ткань загрузится в деформированном виде. При сброшенном флажке ткань загружается в исходном виде, какой она имела до применения деформаций; п Clear Keyframes (Очистить ключи) — щелчок на этой кнопке ведет к удалению всех ключей, созданных для ткани модулем reactor (реактор). Число таких ключей обозначается над кнопкой в строке ... keyframes stored (сохранено ... ключей);
Имитация тканей модулем reactor
277
П Use Soft Selection (Использовать плавное выделение) — позволяет использовать плавное выделение при ограничении подвижности вершин сетки деформируемого объекта; П Reset Default Values (Восстановить исходные значения) — щелчок на этой кнопке восстанавливает исходные значения всех параметров модификатора. С остальными параметрами модификатора reactor Cloth (реактор: Ткань) познакомьтесь при необходимости самостоятельно, используя Справочную систему 3ds max.
Деформация ткани под действием ветра Чтобы выполнить анимацию деформаций ткани под действием ветра на примере сцены, изображающей развевающийся флаг на неподвижном древке, и одновременно освоить использование ограничителей для тканей, выполните следующие действия: 1. Создайте сцепу, включающую древко флага в виде тонкого длинного цилиндра и полотнище в виде плоскости с сегментацией, равной 12 по обоим измерениям. Разместите плоскость полотнища вблизи древка, но так, чтобы они не пересекались. 2. Выделите цилиндр-древко и создайте коллекцию жестких тел. При этом цилиндр автоматически будет добавлен в список Rigid Bodies (Жесткие тела) коллекции. Перетащите в сторону значок коллекции, чтобы он не мешал работе с объектами сцепы. Так как древко флага должно оставаться неподвижным, не требуется настраивать его свойства на панели Utilities (Утилиты). 3. Примените к плоскости, изображающей полотнище флага, модификатор reactor Cloth (реактор: Ткань). Оставьте все настройки параметров модификатора в исходном состоянии, но установите флажок Avoid Self-Intersections (Избегать самопересечений). Создайте коллекцию тканей и поместите плоскость полотнища в список Cloth Entities (Образцы тканей) коллекции. 4. Создайте вспомогательный объект Wind (Ветер). С этой целью можно, к примеру, использовать кнопку Create W i n d (Создать ветер) панели иист- | румеитов reactor (реактор). Щелкните на кнопке, а потом щелкните | в окне вида спереди, чтобы создать должным образом ориентированный значок флюгера. Используя инструменты перемещения и поворота, направьте указатель значка флюгера на полотнище флага иод некоторым углом. Оставьте все настройки ветра в свитке Properties (Свойства) на командной панели Modify (Изменить) в исходном состоянии. Добавьте в состав сцены камеру и осветители, примените к объектам материалы. Примерный вид сцены па данный момент показан па рис. 4.47. 5. Переключитесь па панель Utilities (Утилиты), запустите утилиту reactor (реактор) и просмотрите анимацию в специальном окне просмотра. Ткань полотнища падает под своей тяжестью, потому что она никак не закреплена.
278
Глава 4. Имитация динамики и модуль reactor
Рис. 4.47.
Исходный вид трехмерной сцены с тканью, подготовленной для анимации модулем reactor
6. Зафиксируйте несколько вершин плоскости, изображающей ткань, чтобы соз-
дать впечатление, что флаг прикреплен к древку. Так как но сценарию древко флага не должно двигаться, привязку вершин можно выполнить просто к тем точкам пространства, в которых они располагаются. С этой целью выделите плоскость полотнища и разверните свиток Constraints (Ограничители) на напели Modify (Изменить) (рис. 4.48). Данный свиток имеет одинаковый состав инструментов для всех типов деформируемых объектов: мягких тел, тканей и нитей.
Рис. 4.48.
Свиток Constraints модификатора reactor Cloth
7. Разверните дерево подобъектов модификатора reactor Cloth (реактор: Ткань)
в окне стека на панели M o d i f y (Изменить) и выберите в стеке строку Vertex (Вершина). Все вершины плоскости в окнах проекций обозначатся синими точками. В свитке Constraints (Ограничители) щелкните на кнопке Fix Vertices (Зафиксировать вершины). В списке свитка появится строка Constrain To World (Ограничение в пространстве) со значком в виде замка. Выделите эту строку, а затем выделите в окне проекции три вершины сетки, изображающей полотнище флага, в крайнем ряду вершин со стороны древка (рис. 4.49).
279
Имитация тканей модулем reactor
Рис. 4.49. Три вершины крайнего ряда сетки, показанные стрелками, выделены для фиксации в пространстве
8. Теперь выделенные вершины привязаны к своим исходным положениям и не смогут перемещаться под действием каких-либо сил. Щелкните в стеке модификаторов на строке reactor Cloth (реактор: Ткань), чтобы отменить доступ к выделению иодобъектов-вершип. Если вы случайно отмените выделение вершин до того, как выключите доступ к вершинам в стеке, ограничитель Pie будет действовать, так как ему не будут назначены никакие вершины. В этом случае при попытке просмотреть анимацию появится окно World Analysis (Анализ реальности) с сообщением о том, что ограничитель Constrain To World (Ограничение в пространстве) не имеет назначенных ему вершин и будет проЗАМЕЧАНИЕ игнорирован. Чтобы исправить си!;Нтрбй убедйться туацию, снова выберите на дереве подобъектов модификатора reactor Cloth (реактор: Ткань) в окне стека модификаторов па панели M o d i f y (Изменить) строку Vertex (Вершина). Затем выделите в свитке Constraints ^ (Ограничители) строку C o n s t r a i n To World (Ограничение в пространстве), после чего еще раз выделите нужные вершины и, не отменяя их вы^ деления, щелкните в окне стека на в окнах' строке reactor Cloth (реактор: Ткань). 9. Еще раз воспроизведите анимацию в окне предварительного просмотра. Теперь полотнище не падает и начинает развеваться, но быстро опадает, потому что скорость ветра, используемая по умолчанию (0,025 м/с), слишком мала. Выделите значок вспомогательного объекта W i n d (Ветер) и в свитке Properties (Свойства) на панели Modify (Изменить), показанном на рис. 4.50, увеличьте значение параметра W i n d Speed (Скорость ветра) до 2 м/с. Установите флажок Perturb Speed (Порывы скорости). Укажите в счетчике Variance (Вариации), который задает максимальную величину изменений скорости,
280
Глава 4. Имитация динамики и модуль reactor
величину 0,2, а в счетчике Time Scale (Масштаб времени), задающем скорость смены порывов ветра, значение 0,3.
;i
3 Щ
Hlf t] а
б
Рис. 4.50Г Верхняя (а) и нижняя (6) части свитка Properties вспомогательного объекта Wind
10. Еще раз просмотрите анимацию в окне предварительного просмотра. Теперь флаг развевается вполне удовлетворительно. Измените продолжительность анимации до 200 кадров. Установите в счетчике End Frame (Последний кадр) свитка Preview & Animation (Просмотр и анимация) утилиты reactor (реактор) также величину 200 и создайте ключи анимации ткани, щелкнув на кнопке Create Animation (Создать анимацию). На рис. 4.51 показано, как может выглядеть один из кадров анимации флага.
Свиток Properties объекта Wind В свитке Properties (Свойства) вспомогательного объекта W i n d (Ветер) па панели Modify (Изменить) можно настроить еще следующие параметры ветра: D W i n d On (Ветер вкл.) — флажок включения действия ветра. Включение и выключение ветра можно анимировать; П W i n d Speed (Скорость ветра) — задает скорость ветра. Установите ее равной 2 м/с; П Perturb Speed (Порывы скорости) — установите этот флажок, чтобы имитировать случайные изменения скорости порывов ветра; D Variance (Вариации) — задает максимальную величину изменений скорости. Оставьте в этом счетчике исходное значение; П Time Scale (Масштаб времени) — задает скорость смены порывов ветра. Чем выше значение в счетчике, тем быстрее меняется скорость. Укажите в этом счетчике значение 3.
Имитация тканей модулем reactor
281
Рис. 4.51. Один из кадров анимации ткани, имитирующей флаг, в окне проекции (а) и после визуализации (б)
П Ripple (Пульсации ) - установка этого флажка делает скорость ветра зависянистыхГСТРаНСТВеШГХ К°ОРДИ1ШТ' ЧТ° МОЖ6Т обе™вать появление волнистых складок на деформируемой ткани. Если флажок установлен можно настроить такие параметры: о Left/Right (Влево/вправо), Up/Down (Вверх/вниз), Back/Forward (Вперед/ зад) - направления действия пульсаций по отношению к направлению ветра., о Magnitude (Амплитуда), Frequency (Частота) - амплитуда и частота пространственных пульсаций скорости; о
Perturb Time (Пульсации во времени) - установка этого флажка заставляГси™«СяТРа11СрВеШ1Ые ПуЛЬС,ации меияться во ^мени, то затухая, то снова усиливаясь. Если данный флажок сброшен, то ткань будет постепенно успокаиваться, если не установлен флажок Perturb Speed (Порывы скорости)
настраивать параметры Magnitude
Глава 4. Имитация динамики и модуль reactor
282
П Use Range (Ограничить зону) — установка этого флажка включает ограничение зоны действия ветра. Если ограничение включено, можно настроить размер зоны в счетчике Range (Зона) и выбрать один из трех вариантов спада, управляемых переключателем Fall Off (Спад): о
None (Нет) — спад отсутствует, и ветер резко исчезает за пределами зоны действия;
о Inv (Обр.), Inv Sq (Обр. кв.) — скорость ветра будет спадать обратно пропорционально первой степени расстояния от источника или квадрату расстояния от источника. П Enable Sheltering (Разрешить укрытие) — включает возможность укрытия объектов от действия ветра неподвижными жесткими телами. Установка этого флажка существенно замедляет воспроизведение анимации в окне предварительного просмотра; D Applies To (Применять к) — этот набор флажков позволяет указать, па какие объекты будет действовать ветер: Rigid Bodies (Жесткие тела), Cloth (Ткань), Soft Bodies (Мягкие тела) и Ropes (Нити); D Disabled (Выключен) — установка этого флажка исключает участие ветра в анимации, даже если флажок Wind On (Ветер вкл.) установлен; п Size (Размер) — служит для изменения размеров значка вспомогательного объекта; D Reset Default Values (Восстановить исходные значения) — щелчок на этой кнопке восстанавливает исходные значения всех параметров ветра.
Привязка ткани к жесткому телу В данном примере, основанном на имитации занавеси, развевающейся под действием ветра, мы изучим способ привязки тканей к твердым телам, которые могут иметь анимацию. Выполните следующие действия: 1. Создайте трехмерную сцену, включающую основание в виде плоскости и стену в виде примитива Box (Параллелепипед) с прямоугольным отверстием, изображающим окно. Над окном смоделируйте трубчатый карниз в виде удлиненного цилиндра с шариками на концах и кольцами для занавеси, в качестве которых используйте примитивы Torus (Тор). Кольца равномерно Р^'^ШЧЛ- -^^л^.••••'-. ч'--Л' ;;]!£У .Vsf:1;: ^Щ разместите вдоль карниза. Детали ЗАМЕЧАНИЕ карниза разместите вблизи от стены. Модуль reactor (реакторУ проверяет й^Щ; Создайте занавесь в виде плоскости, личйе. пересечений только те трехмерные разместив ее напротив окна прямо объекты, которые включены в коллекцию под кольцами карниза. Увеличьте :жестких-тел и которым назначена ненуле.0
:• v вая: Maecas:: Если у жесткого тела масса ну-
сегментацию плоскости до 12 по калевая, то есть оно:не будет двигаться под ждому измерению. Добавьте в состав действием силы тяжести, его сетка может сцены камеру и осветители, назначь/иметь пересечения с другими телами.. В : н а - ; : ад те объектам материалы. Возможный - шем примерено взаимным пересечением можно разместить цилиндр карниза и шавид сцены на данный момент покар ИКи На его концах зам на рис. 4.52.
Имитация тканей модулем reactor
283
Рис. 4.52.
Исходный вид трехмерной сцены, подготовленной для анимации модулем reactor, с тканью, изображающей занавесь
2. Создайте коллекцию жестких тел и включите в нее все объекты геометрической модели сцепы, кроме плоскости, имитирующей занавесь. Запустите утилиту reactor (реактор) и установите для плоскости основания сцепы и стены с отверстием переключатель Simulation Geometry (Моделируемая геометрия) в свитке Properties (Свойства) на панели Utilities (Утилиты) в положение Use Mesh (Использовать сетку) группы Concave (Вогнутый объект). Массы всех объектов, включенных в коллекцию жестких тел, оставьте равными нулю. 3. Примените к плоскости, изображающей занавесь, модификатор reactor Cloth
(реактор: Ткань). Оставьте в исходном состоянии все параметры модификатора reactor Cloth (реактор: Ткань), но установите флажок Avoid Self-Intersections (Избегать самопересечений). Создайте коллекцию тканей и поместите плоскость-занавесь в состав списка этой коллекции. 4. Создайте вспомогательный объект W i n d (Ветер). Разместите его позади степы
напротив окна и направьте указатель флюгера па ткань. Задайте скорость ветра равной 2 м/с. Установите флажки Perturb Speed (Порывы скорости) и R i p p l e (Пульсации). Оставьте все остальные настройки ветра в исходном положении. 5. Выполните прикрепление занавеси к жестким телам — кольцам карниза. Для
этого выделите плоскость занавеси и раскройте свиток Constraints (Ограничители) па панели M o d i f y (Изменить) (см. рис. 4.48). Разверните дерево подобъектов модификатора reactor Cloth (реактор: Т к а н ь ) в окне стека па напели Modify (Изменить) и выберите в стеке строку Vertex (Вершина). Все вершины плоскости в окнах проекций обозначатся синими точками. Щелкните в свитке Constraints (Ограничители) на кнопке Attach To Rigid Body (Прикрепить к жесткому телу). В списке свитка появится строка с таким же именем. На напели Modify (Изменить) появится новый свиток, также называемый Attach To RigidBody (Прикрепить к жесткому телу) (рис. 4.53).
:
'
——
••'•'"•'• .:.:-.-.--.о,,,....:,.
Рис. 4:53.
Свиток Attach To RigidBody модификатора reactor Cloth
302
Глава 5. Видеомонтаж
П если события, попадающие в текущий кадр, связаны иерархически, что отображается в окне очереди разной величиной отступа их имен, как, например, в случае с дочерним событием-изображением и родительским событием-фильтром, то сначала в выходной кадр переносится дочернее событие, скажем, изображение сцены, а поверх него в тот же кадр помещается родительское событие, скажем, результат фильтрации изображения сцены. CD
Например, для очереди событий видеомоитажа, показанной на рис. 5.3, последовательность формирования выходного видеоролика, записываемого в файл с именем VideoPost.avi, будет следующей: П в каждом из кадров с номерами от 0 до 20 в выходной файл сначала будет переписываться фиксированное изображение из файла Text-VizSplain.jpg, представляющее собой заголовок первого видеоклина, а затем поверх пего будет помещаться результат фильтрации этого кадра фильтром Fade (Наплыв). Действие этого фильтра описывается далее в подразделе «События-фильтры» и в данном случае обеспечивает постепенное появление заголовка видеоклипа из полной темноты;
j Queue •§• Fade •i-.Fade Texl-VizS plain, jpg Ping Pong once Text-renderable.avi «•Fade "••§• Fade Text-Masshiab.jpg Ping Pong once Text-masshtab.avi VideoPoslavi
Рис. 5.З. Пример очереди событий в окне диалога Video Post
П с кадра № 21 до кадра № 79 в выходной файл будет кадр за кадром переписываться изображение из файла Text-VizSplain.jpg; П с кадра № 80 до кадра № 99 в выходной файл сначала будет переписываться фиксированное изображение из файла Text-VizSplain.jpg, представляющего собой заголовок первого видеоклипа, а затем поверх него будет помещаться результат фильтрации этого кадра фильтром Fade (Наплыв). В данном случае этот фильтр будет обеспечивать постепенное затемнение заголовка до полной темноты. В итоге на протяжении первых 100 кадров выходного видеоролика на экране будет виден заголовок первого сюжета, постепенно возникающий на фоне темного экрана и уходящий в темноту; П в диапазоне кадров с номерами 100-300 в выходной файл будут сначала поочередно переписываться 100 кадров из видеоклипа Text-renderable.avi, а затем
Окно диалога Video Post
303
кадры из того же видеоклипа будут помещаться в выходной файл в обратном порядке, так как к файлу Text-renderable.avi применен фильтр повтора тина Ping Pong once (Вперед-назад один раз). Действие этого фильтра описывается далее в подразделе «События-фильтры». Область повтора события изображается в окне шкалы времени линией серого цвета; D в диапазоне кадров с номерами 301-401 в выходной файл будет кадр за кадром переписываться фиксированное изображение из файла Text-Masshtab.jpg, представляющего собой заголовок второго видеоклипа. При этом в интервалах с кадра № 301 до кадра № 320 и с кадра № 382 до кадра № 401 поверх этого изображения будут накладываться результаты его фильтрации фильтром Fade (Наплыв), обеспечивающим плавное появление заголовка на фоне темного экрана и плавный уход в темноту; D в диапазоне кадров с номерами 402-502 в выходной файл будут сначала последовательно переписываться 100 кадров из видеоклипа Text-masshtab.avi, а затем в интервале с кадра № 503 до кадра № 603 кадры из того же видеоклипа будут помещаться в выходной файл в обратном порядке, так как к файлу Text-masshtab.avi применен фильтр повтора типа Ping Pong once (Вперед-назад один раз). В итоге общая продолжительность видеоролика составит 604 кадра, что и отображается в поле F:604 в нижней части окна видеомонтажа. При использовании модуля Видеомонтаж необходимо учитывать следующие обстоятельства: D при помещении в очередь события в виде фиксированного изображения, например титульного кадра с названием видеоролика, программа автоматически назначает его диапазону действия длительность в 30 кадров. Это означает, что данное изображение будет кадр за кадром 30 раз перенесено в выходной видеоролик. При скорости воспроизведения 30 кадров в секунду этот кадр будет виден на экране всего секунду, что недостаточно для комфортного восприятия зрителем. Следует увеличивать длину диапазона действия фиксированных изображений хотя бы до 100 кадров, что соответствует примерно 3 секундам нахождения его на экране; П нельзя произвольным образом менять длительность помещаемых в очередь событий-видеоклипов, так как продолжительность каждого из них определяется числом кадров видеоклипа; D общая продолжительность формируемого видеоролика не может быть выбрана произвольно и определяется суммарной продолжительностью составляющих его событий; D если выходной видеоролик составляется из отдельных видеоклипов анимаций, то имеет смысл помещать между клипами кадры фиксированных изображений с названиями сюжетов продолжительностью порядка 100 кадров; D для ускорения работы модуля Video Post (Видеомонтаж) следует но возможности помещать в очередь клипы анимации и изображения, визуализированные с одинаковым разрешением, например при размере кадра 640x480 точек. Разрешение кадров выходного видеоролика следует выбирать таким же, как
304
Глава 5. Видеомонтаж
у каждого из входных сюжетов. В этом случае модуль видеомонтажа будет просто переписывать входные кадры в выходной файл. Если разрешение отдельных сюжетов не совпадает с заданным разрешением выходного файла, программа по умолчанию будет выполнять обработку каждого входного кадра с целью подгонки его размера под размер выходного кадра, что существенно увеличивает время синтеза видеоролика.
Панель инструментов окна Video Post Панель инструментов в верхней части окна диалога позволяет добавлять, удалять и исполнять события в очереди, а также настраивать продолжительность действия этих событий, моменты их наступления и окончания. Кнопки панели инструментов описываются в следующем перечне: D New Sequence (Создать цепочку) — позволяет создать новую цепочку со- «| бытии видеомонтажа и поставить ее в новую очередь. При этом текущая "" цепочка событий удаляется из очереди; П Open Sequence (Открыть цепочку) — позволяет загрузить сохраненную ранее цепочку событий видеомоптажа; П Save Sequence (Сохранить цепочку) — позволяет сохранить цепочку собы- щц тий видеомоптажа на диске. Файлы цепочек имеют расширения имен .vpx; **—* П Edit Current Event (Редактировать текущее событие) — позволяет редактировать событие, имя которого выделено в очереди. Выбор данной кпои- i"™~* ки открывает окно диалога редактирования параметров события, которое не отличается от окна добавления события; П Delete Current Event (Удалить текущее событие) — позволяет удалить событие. Выделите имя события в очереди и щелкните на данной кнопке или нажмите клавишу Delete. В ответ на запрос Confirm event deletion? (Подтверждаете удаление события?) щелкните на кнопке Yes (Да); П Swap Events (Переставить события) — позволяет поменять местами два ры любых выделенных в очереди события или набора событий. Выделите в ™™ очереди два события при удерживаемой клавише Ctrl и щелкните на данной кнопке; О Execute Sequence (Выполнить цепочку) — позволяет визуализировать ;^| последовательность изображений, заданную в виде цепочки событий ™" в очереди видеомонтажа. Подготовьте входные события, события-фильтры и выходные события в очереди окна и щелкните на данной кнопке для запуска процесса визуализации. При этом появится окно диалога Execute Video Post (Выполнить цепочку видеомонтажа), параметры которого описываются далее в подразделе «Исполнение цепочки событий»; D Edit Range Bar (Редактировать диапазон действия) — позволяет редактировать диапазон времени действия события из очереди видеомоптажа. Этот процесс подобен правке диапазонов действия ключей анимации в окне просмотра треков;
Окно диалога Video Post
305
D Align Selected Left (Выровнять выделенные диапазоны влево) — выравни- ^^ вает левые края диапазонов действия выделенных событий, чтобы все они начинались в одном и том же кадре. При выделении диапазонов нескольких событий последний выделенный диапазон считается текущим (маркеры на концах текущего диапазона имеют красный цвет), и после щелчка на данной кнопке левые края всех выделенных диапазонов выравниваются по краю текущего; D Align Selected Right (Выровнять выделенные диапазоны вправо) — выравнивает правые края диапазонов действия выделенных событий, чтобы все они закапчивались в одном и том же кадре. При выделении диапазонов нескольких событий последний выделенный диапазон считается текущим (маркеры на концах текущего диапазона имеют красный цвет), и после щелчка на данной кнопке правые края всех выделенных диапазонов выравниваются но краю текущего; D Make Selected Same Size (Уравнять выделенные диапазоны) — делает оди- «щ паковой продолжительность действия всех выделенных событий. При выделении диапазонов нескольких событий последний выделенный диапазон считается текущим (маркеры па концах текущего диапазона имеют красный цвет), и после щелчка па данной кнопке края текущего диапазона остаются на своих местах, а края всех остальных выделенных диапазонов выравниваются по краям текущего; П Abut Selected (Состыковать выделенные диапазоны) — выравнивает начало диапазона действия выделенного события по концу диапазона деист- *™ вия другого выделенного события, предшествующего ему в очереди; П Add Scene Event (Добавить событие-сцену) — позволяет добавить изображение сцепы из любого окна проекций в очередь событий видеомонтажа; ™™ D Add Image Input Event (Добавить событие ввода изображения) — позво- цщ ляет добавлять в качестве событий видеомонтажа отдельные изображе- "^ ния, например ранее визуализированные и сохраненные в виде файлов кадры анимации, а также фрагменты анимаций — видеоклипы; п Add Image Filter Event (Добавить событие фильтрации изображения) — щгл позволяет добавлять в качестве событий видеомонтажа различные фильт- *™ ры для обработки изображений, которые можно применять как к фиксированным изображениям, так и к каждому кадру фрагмента анимации; D Add Image Layer Event (Добавить событие композиции изображений) — щц позволяет различными способами объединять несколько событий оче- *"" реди, рассматриваемых как расположенные один под другим слои кадра, в единое результирующее изображение-композицию; D Add Image Output Event (Добавить событие вывода изображения) — но- |щ| зволяет добавить в конец очереди событие вывода изображения, указы- ™^ вающее, где будут сохраняться результаты визуализации эффектов видеомонтажа. Можно добавить несколько событий вывода, чтобы направить одни и те же результаты на различные устройства;
306
Глава 5. Видеомонтаж
D Add External Event (Добавить внешнее событие) — позволяет добавить шм] в очередь событие, которое будет вызывать внешнюю программу обработки изображений; a Add Loop Event (Добавить событие-цикл) — позволяет добавить в очередь дЦ событие, вызывающее циклическое повторение сегмента анимации за- ~™ данное число раз.
События очереди видеомонтажа Чтобы воспользоваться окном Video Post (Видеомонтаж) для визуализации анимации и добавления графических эффектов к изображениям сцены, следует поместить в очередь видеомоптажа ряд элементов-событий. При добавлении события появляется окно диалога, позволяющее настроить параметры события. Если требуется изменить параметры события, ранее помещенного в очередь окна Видеомонтаж, то следует выделить имя события в очереди и щелкнуть на кнопке Edit Current Event (Редактировать текущее событие) или дважды щелкнуть на имени события. В результате появится окно редактирование события, не отличающееся по составу параметров от окна диалога добавления события.
События-сцены Событием-сценой может служить изображение сцены со всеми ее объектами и источниками света в любом из окоп проекций. Очередь часто начинается именно с события-сцены, которому по умолчанию присваивается имя выбранного окна проекции. Для добавления события-сцены щелкните на кнопке Add Scene Event (Добавить событие-сцену) на панели инструментов окна Video Post (Видеомон- *™ таж). Появится окно диалога Add Scene Event (Добавление события-сцены), показанное на рис. 5.4. Выберите окно проекции, которое будет визуализироваться, в раскрывающемся списке раздела View (Проекция) в верхней части окна диалога. В строке списка по умолчанию указывается имя активного окна проекции. В текстовом поле Label (Метка) можно ввести имя события-сцены, которое будет указано в очереди. Если имя не задано, событие приобретает имя окна проекции. В примере, показанном па рис. 5.4, в очередь включено событие-сцепа из окна проекции Perspective (Перспектива). Используйте для настройки параметров визуализации сцены следующие элементы управления из раздела Scene Options (Параметры сцены): П Render Options (Параметры визуализации) — щелчок на этой кнопке вызывает появление окна диалога Render Options (Параметры визуализации), представляющего собой упрощенный вариант окна диалога Render Scene (Визуализация сцены);
307
События очереди видеомонтажа
Add Scene Event
J Perspective:
ШЩШШ
' ".^'''''''''''''''^й^о-чйй^:
:
R-
.T
.ilSiiii
nffji ill
Вв
Рис. 5,4. Окно диалога Add Scene Event
П Scene Motion Blur (Смаз снимка сцены) — включает режим имитации смаза изображения сцены за счет движения. Этот эффект отличается от эффекта смаза за счет движения, который задается в окне диалога Render Scene (Визуализация сцены), так как ведет к формированию смаза изображения всей сцены целиком, а не отдельного объекта из ее состава. Параметры Duration (frames) (Выдержка (кадров)) и Duration Subdivisions (Копий в шлейфе) имеют такое же назначение, как и в случае смаза отдельного объекта. Счетчик Dither % (Смешивание %) задает степень смешивания цветов пикселов участков изображения, перекрывающихся из-за имитации смаза. Задайте диапазон визуализируемых кадров анимации в разделе Scene Range (Время действия сцены): D Lock to Video Post Range (Привязать к диапазону действия видеомонтажа) — флажок, устанавливаемый по умолчанию, задает для визуализации тот же диапазон кадров, который задан для всего модуля видеомонтажа в окне диалога, вызываемом с помощью кнопки Execute Sequence (Выполнить цепочку) панели инструментов окна видеомонтажа; D Lock Range Bar to Scene Range (Фиксировать длительность анимации) — становится доступным после сброса флажка Lock to Video Post Range (Привязать к диапазону действия видеомонтажа). Если данный флажок установлен, то счетчик Scene Start (Начало а н и м а ц и и ) становится доступен, а счетчик Scene End (Конец анимации) фиксируется на значении, отличающемся от начального на величину диапазона действия видеомонтажа. Изменение номера начального
308
Глава 5. Видеомонтаж
кадра сегмента анимации автоматически увеличивает номер конечного кадра, оставляя длительность сегмента постоянной. Если флажок сброшен, можно произвольно менять значения номеров начального и конечного кадров в счетчиках Scene Start (Начало анимации) и Scene End (Конец анимации). При необходимости установить для текущего события диапазон действия, отличающийся от заданного для всего модуля видеомонтажа, укажите номера кадров начала и конца диапазона в счетчиках VP Start Time (Время начала ВМ) и VP End Time (Время окончания ВМ) раздела Video Post Parameters (Параметры видеомонтажа) в нижней части окна диалога. Установите флажок Enabled (Включено), чтобы текущее событие было учтено при визуализации очереди событий.
События ввода изображений Событие ввода изображения позволяет добавлять в очередь видеомонтажа отдельные изображения или файлы анимации. Добавление готовых кадров анимации в очередь монтажа делается с целью их вторичной обработки средствами фильтрации изображений или для их совместной компиляции в единый файл видеоролика. При постановке в очередь файла точечного изображения продолжительность его диапазона действия автоматически устанавливается равной 30 кадрам, а при вставке файла видеоклипа анимации — равной числу кадров клипа. В очередь видеомонтажа можно также помещать файлы типа if I, представляющие собой список статических изображений, которые требуется объединить в файл анимации (см. далее подраздел «Ввод изображений для монтажа из файла ifl»). Для добавления в очередь события ввода изображения щелкните на кнопке ща Add Image Input Event (Добавить событие ввода изображения) панели инст- ™" рументов окна диалога Video Post (Видеомонтаж). Появится окна диалога Add Image Input Event (Добавление события ввода изображения) (рис. 5.5).
Рис. 5.5. Окно диалога Add Image Input Event
События очереди видеомонтажа
309
Укажите источник вставляемых изображений, щелкнув на одной из кнопок в разделе Image Input (Ввод изображения) в верхней части окна: П Files (Файлы) — кнопка, щелчок на которой вызывает стандартное диалоговое окно просмотра файлов, с помощью которого можно выбрать один или несколько файлов, чтобы добавить их в очередь; П Devices (Устройства) — кнопка, позволяющая выбрать внешнее устройство наподобие цифровой видеокамеры, с которого будут загружены изображения. После выбора устройства ввода становится возможным настроить его драйвер, щелкнув на кнопке Setup (Настройка) в разделе Image Driver (Драйвер изображения). После указания источника изображений становится доступной кнопка Options (Параметры). Щелкните на этой кнопке, чтобы вызвать появление окна диалога Image Input Options (Параметры ввода изображения) (рис. 5.6). В этом окне настройте следующие параметры: D Size (Размер) — переключатель, позволяющий указать, как следует изменять размер входного изображения при монтаже: о Do Not Resize (He менять размер) — оставить без изменений; о Resize to Fit (Подогнать размер) — подогнать под размер выходного кадра; о
Custom Size (Задать размер) Н (Высота); Image Input Options
задать размер в счетчиках W ( Ш и р и н а ) и
IP!!
it
Окно диалога Image Input Options
Alignment (Выравнивание) — группа элементов управления, позволяющих задать способ размещения вставляемого изображения в пределах выходного кадра, если переключатель Size (Размер) установлен не в положение Resize to Fit (Подогнать размер). Установите переключатель Presets (Заготовки), чтобы задать вариант выравнивания, щелкнув на одной из девяти кнопок, представляющих заготовленные варианты. Установка переключателя Coordinates (Координаты) позволяет указать координаты X и Y точки вставки в пикселах;
310
Глава 5. Видеомонтаж
D Frames (Кадры) — при вводе файла анимации задайте диапазон входных кадров в счетчиках From (От) и То (До) и шаг выборки кадров в счетчике Step (Шаг). Например, если в этом счетчике установить значение 2, то в выходной видеоролик будет помещаться каждый второй кадр входной последовательности. Установка флажка Loop at the end (Повтор по окончании) обеспечит повторение указанного диапазона кадров до тех пор, пока не закончится диапазон действия события. Закончив настройку, щелкните на кнопке О К, чтобы вернуться в окно диалога Add Image Input Event (Добавление события ввода изображения). Параметры раздела Video Post Parameters (Параметры видеомонтажа) не отличаются от аналогичных параметров окна диалога Add Scene Event (Добавление события-сцены), рассмотренного выше. Чтобы продолжить работу, щелкните на кнопке ОК.
Ввод изображений для монтажа из файла ifl Файл типа i f l — это но определению просто текстовый список файлов изображений или анимационных клипов (Image File List, или IFL — список файлов изображений), которые должны быть последовательно смонтированы в видеоролик. Такой файл может быть создан с использованием любого простейшего текстового редактора, подобного приложению Notepad (Блокнот) системы Windows. Помимо имен файлов изображений в список можно помещать комментарии, признаком которых является точка с запятой в первой позиции строки. Справа от имени файла изображения через пробел можно задавать число, указывающее, сколько кадров должно запять это изображение в монтируемом видеоролике. На рис. 5.7, а, показан пример файла i f l . При постановке этого файла в очередь модуля Video Post (ВиJ л деомонтаж) (рис. 5.7, 6) сначала в выходной файл видеоролика будет кадр за кадром 100 раз помещено изображение из файла Text-Titul.jpg, представляю^, „ щего собой заголовок всего фильма, а затем также 100 раз — изображение из файла Text-Masshtab.jpg, являющегося заголовком первого сюжета фильма.
':^''^'&:}Л;\^: :•]• .••;./;[::-:-';^г':'-?\':^к^-,^' ЗАМЕЧАНИЕ пЙЩ^^ЙЙ^ШШрЩ :• ти файльгизображений; ^перечисленные в файле,)Я,;'в папках, пути к которым ука- : заны на вкладке External Files (Внешние = ? айлы) ^а Диалога Configure Paths -(Map, шруты доступа). В список файла ifl можно помещать и полные имена .файлов изо-; бражений, то есть имена с указанием имени ^CKa и -пути к папке, в которой они: Располагаются.; Однако_этого не рекомендуется делать, иначе файл типа ifl окажется :П ривязанным к конкретной конфигурации •: ! лапок на диске/вашего компьютера и не будет обладать .свойством переносимости. л У ч ш е помещать изображения для монтажа в папки, перечисленные на вкладке ExternalFiles (Внешние файль) окна диаП Ш IFl tcst.ifl
Блокнот
Файл ; Правка Формат Вид • Справка ; пример файла типа IFL Text-Tltu1.jpg 100 Text-Masshtab.jpg 100
8 Video Post
Рис. 5.7.
Пример файла типа ifl (a) и вид окна Video Post, в очереди которого такой файл помещен как событие Image Input Event (6)
Select Image File for Video Post Input '
' |0 Тест на кодеки (F:)
Machine-HDJK0006.tif
Machine-HD_IK0003.tif
Machine-HD_lK0007.tif Machine-HO_IK0008.tif Machine-HD_IK0009.tif
Machine-HD_IK0004,tif Mdchine-HD IK0005.tif
Machine-HD_IKOOIO.tif Machine-HD_IK0011.tif
Machine-HD_K0001.tif Machine-HD_IK0002.tif
Machine-HOJK0012.til Machine-HD_IK0013.til Machine-HDJKOOH.til Machine-HDJKOOlS.H Machine-HD_IK0016,til Machine-HD_IK0017,HI
В окне диалога Select Image File for Video Post Input выделено имя первого из нумерованной последовательности файлов и установлен флажок Sequence
312
Глава 5. Видеомонтаж
2. Щелкните на кнопке Setup (Настройка), вызвав появление окна диалога Image File List Control (Настройка списка файлов изображений), показанного на рис. 5.9. В этом окне используйте следующие элементы управления для настройки файла типа ifl: о Target Path (Маршрут записи) — указывает путь к папке, в которой будет сохранен файл типа i f l . По умолчанию в качестве имени файла типа i f l используется имя первого из последовательности кадров анимации, однако его можно исправить в текстовом поле Target Path (Маршрут записи) на любое иное имя. Для выбора нужной папки щелкните на кнопке Browse (Просмотр);
"SIT Рис. 5.9. Окно диалога Image File List Control
о Start Frame (Начальный кадр), End Frame (Конечный кадр) — позволяет указать, какой из файлов, перечисленных в списке, должен стать первым кадром монтируемого видеоролика, а какой — последним; о Every nth (Каждый п-й) — позволяет выбирать из списка не все файлы подряд, а только каждый n-й файл, где п — число, указанное в данном счетчике; о Multiplier (Множитель) — указывает, сколько раз подряд должно быть помещено каждое изображение из списка в монтируемый видеоролик; П Include Image Path (Включать маршрут доступа) — установка этого флажка обеспечивает включение в список полных имен файлов с указанием имени диска и пути к папке, где они хранятся. 3. Щелкните на кнопке ОК, чтобы закрыть окно диалога Image File List Control (Настройка списка файлов изображений). Файл типа i f l с перечнем всех файлов из выбранной последовательности будет создан и помещен в очередь окна Video Post (Видеомонтаж). Остается только поставить в очередь событие вывода изображения и запустить процесс видеомонтажа.
События-фильтры Событие-фильтр изображения — это специальный способ обработки, изменяющий вид кадра уже после того, как он визуализирован. Такая обработка подобна применению фильтров в графическом редакторе Adobe Photoshop.
События очереди видеомонтажа
313
Фильтры можно добавлять в очередь либо последовательно с фильтруемым изображением, либо как родительские события по отношению к фильтруемому изображению, которое само может быть родительским и иметь собственные дочерние события. Разница состоит в том, что добавление фильтра в очередь поя™";"?"™ СПОС°бомЛДеТ К Ф-ьтрации результата действия всГхТредынеГт Аи™ °ЧеРеДИ- Д°бавление ФильтРа *** Родительского события обесчит фильтрацию только дочернего изображения. Собы
™я-Фильтра выделите, при необходимости, со-
событие снен Т""" """ ^Г™ ДЛЯ собы™я-Фильтра. Это может быть .бытие-сцена событие ввода изображения или событие-фильтр, уже имеющееся в очереди. для добавления фильтра последовательным способом проследТте, чтобы в очереди не было выделенных событий. ). Появится окно диалога Add Image Filter Event (Добавление сооытия фильтрации изображения) (рис. 5.10).
Рис. 5.10.
Окно диалога Add Image Filter Event
Pluo In Шоп Т™"™ Т ФИЛЬТРЭ В РаскРываюЩемся списке раздела Filter Plug-In (Модули фильтров) в верхней части окна. Состав фильтров в списке задсит от того, какие дополнительные модули фильтрации установлены на вашем компьютере После того как фильтр выбран, можно щелкнуть на кнопке About ) фильтре), чтобы просмотреть сведения о версии и разработчиках фильтра или на кнопке Setup (Настройка), чтобы вызвать окно настройки параметров выбранного фильтра. ПараМ6ТРЫ МЭСКИ ДЛЯ выб
Ра™ого фильтра в разделе
п Enabled (Включено) - установите этот флажок, чтобы разрешить использование маски и сделать доступными элементы управления данного раздела;
314
Глава 5. Видеомонтаж
D Files (Файлы) — щелкните на этой кнопке, чтобы вызвать типовое окно выбора файлов и выбрать растровый файл, который будет играть роль маски. Имя файла появится над кнопкой, после чего станет доступной кнопка Options (Параметры); D Options (Параметры) — щелчок па этой кнопке вызывает окно диалога Image Input Options (Параметры вставки изображения), рассмотренное выше и позволяющее настроить параметры выравнивания, задать размеры и интервал времени действия маски; п выберите в раскрывающемся списке канал, который будет играть роль маски: Red (Красный), Green (Зеленый), Blue (Синий), Alpha Channel (Альфа-канал), Luminance (Яркость), Z Buffer (Z-буфер), Material Effect (Канал эффектов материала) или Object (Канал объекта); П Inverted (Инверсия) — при установке этого флажка происходит инверсия прозрачных и непрозрачных участков маски. Параметры раздела Video Post Parameters (Параметры видеомонтажа) не отличаются от аналогичных параметров окна диалога Add Scene Event (Добавление события-сцены), рассмотренного выше.
Типы фильтров обработки изображений В комплект поставки 3ds max входят фильтры Contrast (Контраст), Fade (Наплыв), Image Alpha (Альфа-канал), Lens Effects (Оптические эффекты), Negative (Негатив), Pseudo Alpha (Мнимый альфа-канал), Simple Wipe (Шторка) и Starfield (Звездное поле).
Фильтр Contrast Фильтр Contrast (Контраст) позволяет регулировать контраст и яркость изображения. Щелчок на кнопке Setup (Настройка) вызывает появление окна настройки фильтра, в котором можно задать величины параметров Contrast (Контраст) и Brightness (Яркость), а также установить переключатель способа расчета контраста в одно из двух положений: Absolute (Абсолютный) — при расчете контраста учитывается максимальная интенсивность одного из трех компонентов цвета каждого пиксела; Derived (Производный) — при расчете контраста используется среднее значение трех цветовых компонентов.
Фильтр Fade Фильтр Fade (Наплыв) позволяет постепенно уменьшить интенсивность изображения до нуля или, наоборот, постепенно увеличить ее от нуля до максимума. Исходя из опыта, можно рекомендовать продолжительность действия данного фильтра не более 20 кадров. Настройка параметров данного фильтра сводится к установке переключателя в окне диалога, появляющемся после щелчка па кнопке Setup (Настройка), в одно из двух положений:
События очереди видеомонтажа
315
D In (Вход) — сначала будет показан полностью непрозрачный черный экран, который кадр за кадром будет становиться прозрачнее, открывая фильтруемые изображения. В таком варианте настройки фильтр применяется к началу интервала времени действия фильтруемой анимации или изображения; П Out (Выход) — кадр за кадром экран будет чернеть и становиться все более непрозрачным, постепенно полностью скрыв фильтруемые изображения. В таком варианте настройки фильтр применяется к концу интервала времени действия фильтруемой анимации или изображения.
Фильтр Image Alpha Фильтр Image Alpha (Альфа-канал) позволяет заменить некоторые участки альфа-канала (канала прозрачности) изображения маской из файла, выбираемого в разделе Mask (Маска) окна диалога Add Image Filter Event (Добавление события фильтрации изображения). Если маска не задана, то фильтр не оказывает действия. Настройка этого фильтра не требуется. Семейство фильтров Lens Effects В семейство фильтров Lens Effects (Оптические эффекты) входят четыре фильтра, которые позволяют реализовывать следующие эффекты: П Flare (Блики) — блики на линзах объектива камеры; D Focus (Фокусировка) — расфокусировку снимка, имитирующую конечную глубину резкости; П Glow (Сияние) — сияющие ореолы вокруг «светящихся» объектов или материалов; П H i g h l i g h t (Сверкание) — сверкающие зеркальные блики в виде звездочек. Параметры данных фильтров описываются далее в разделе «Использование фильтров оптических эффектов».
Фильтр Negative Фильтр Negative (Негатив) позволяет инвертировать (заменить на дополнительные) цвета изображения, формируя его цветной негатив, как показано на рис. 5.11. После щелчка на кнопке Setup (Настройка) появляется немодальное окно настройки этого фильтра, содержащее единственный параметр — счетчик Blend (Переход). Когда этот параметр равен 0, изображение представляет собой негатив со 100-процентной яркостью. С ростом параметра яркость негатива убывает, так что при значении 50 на изображении остается один лишь серый фон 50-ироцептной насыщенности. Дальнейший рост параметра ведет к тому, что па сером фоне постепенно проступает позитивное изображение, достигающее 100-процентной яркости при значении параметра Blend (Переход), равном 100%. Данный параметр допускает анимацию, ключи которой появляются на треке Blend Amount (Степень перехода), являющемся ветвью трека Video Post (Видеомонтаж).
CD №М|
316
Глава 5. Видеомонтаж
б
Исходное изображение сцены с настольной лампой (а) и результат применения фильтра Negative (6)
Фильтр Pseudo Alpha Фильтр Pseudo Alpha (Мнимый альфа-канал) — позволяет создать мнимый альфа-канал прозрачности у тех изображений, которые его не имеют. Этот мнимый альфа-канал базируется па цвете первого пиксела изображения — пиксела, расположенного в левом верхнем углу. Все пикселы того же цвета, как первый, становятся прозрачными. Настройка этого фильтра не требуется.
Фильтр Simple Wipe
CD
Фильтр Simple Wipe (Шторка) позволяет постепенно стереть изображение с экрана, как бы скрывая его за выдвигающейся шторкой черного цвета, или постепенно открыть изображение, отодвигая шторку. В окне настройки параметров данного фильтра, появляющемся после щелчка на кнопке Setup (Настройка), имеются два переключателя. Переключатель Direction (Направление) задает направление выдвижения черной шторки в соответствии с тем, куда указывает стрелка значка переключателя, а переключатель Mode (Режим) задает способ действия шторки: Push (Отодвинуть) — открывает изображение, Pop (Надвинуть) — скрывает изображение (рис. 5.12). Часто данный фильтр применяют
317
События очереди видеомонтажа
в сочетании с фильтром композиции Alpha Compositor (Альфа-объединитель), что позволяет создать эффект «наезда» одного изображения на другое. Для реализации действия фильтра Simple Wipe (Шторка) необходимо осуществить визуализацию некоторого набора кадров анимации, достаточного для наблюдения за перемещением шторки, скажем, 30 кадров. ! Video Post Queue (1:1 j
Рис. 5.12.
Пример одного из кадров действия фильтра Simple Wipe
Фильтр Startield Фильтр Starfield (Звездное поле) позволяет синтезировать реалистичную картину звездного неба, к которой при необходимости можно применить эффект смаза. Этот фильтр должен применяться к окну проекции Camera (Камера), что позволяет обеспечить движение звезд за счет перемещения камеры. В окне настройки параметров данного фильтра Stars Control (Настройка звездного поля), появляющемся после щелчка на кнопке Setup (Настройка) (рис. 5.13), можно выбрать одну из камер, имеющихся в составе сцены, в раскрывающемся списке Source Camera (Камера-источник). В разделе General (Общие параметры) можно задать диапазон яркости звезд в счетчиках Dimmest Star (Самые слабые звезды) и Brightest Star (Самые яркие звезды), указать, будет диапазон яркостей определяться в линейном или логарифмическом масштабе, установив один из переключателей Linear (Линейный) или Logarithmic (Логарифмический), а также задать размер звезд в пикселах в счетчике Star Size (Pixels) (Размер звезд в пикселах). Раздел Motion Blur (Смаз от движения) содержит стандартные средства настройки смаза картины звезд, вызванного движением камеры. Параметры раздела Star Database (Звездная база данных) позволяют задать число звезд. Установка переключателя Random (Случайное число) ведет к тому, что генерируется случайное число звезд, отображаемое в счетчике Count (Количество),
318
Глава 5. Видеомонтаж
в зависимости от установки начального значения генератора случайных чисел в счетчике Seed (Номер выборки). Установка переключателя Custom (Звезды из базы) обеспечивает считывание данных о звездах из файла, имя которого указано в текстовом поле. Файл earth.stb, входящий в комплект поставки 3ds max, содержит сведения о наиболее ярких звездах небосклона Земли. Stars Control
.
т
• jW':'t §|
• I ив
• ЯЯ:*И;ВЯ:№-:
•fl~ti^xai^*:^'Mf'^:^i~mmi
Окно диалога Stars Control
Переключатель раздела Composition (Композиция) позволяет указать, должна картина звездного неба помещаться на передний план формируемого изображения сцены — позиция Foreground (Передний план) — или на задний план сцены — позиция Background (Фон). Пример изображения звездного поля показан на рис. 5.14.
Рис, 5,14.; Изображение звездного поля, синтезированное с помощью фильтра Starfield
319
События очереди видеомонтажа
События композиции изображений События композиции изображений используются для того, чтобы определенным образом объединить в одном кадре два других события, расположенных последовательно в очереди видеомоитажа и рассматриваемых как лежащие один под другим слои итогового изображения с применением специальных фильтров-композиторов. Временные диапазоны действия событий, объединяемых фильтром композиции, должны перекрываться. Фильтр композиции всегда включается в очередь как родительское событие по отношению к объединяемым изображениям, как показано, например, на рис. 5.15. В показанном примере роль события композиции играет фильтр Cross Fade Transition (Микширование наплывом), а на его вход поступают видеоклип Flag-1.avi и видеоклип Flag-3.avi. Клип Flag-1.avi действует в диапазоне кадров с 0 до 100, клип Flag-3.avi — в диапазоне от кадра 80 до кадра 180. В интервале с кадра 80 по кадр 100 диапазоны действия клипов перекрываются, и именно этим интервалом ограничено действие фильтра композиции.
Queue Cioss Fade Transition Flag-1 .avi Rag.3.avi
Рис. 5.15.
" Elfr C'°s$ Fade, avi
< ..
:
-'I»
' ' •• I
a
ISIf
Пример очереди видеомонтажа с использованием события Alpha Compositor
Входными событиями фильтра-композитора могут быть события-сцены, события ввода изображений, события-фильтры и события композиции изображений. При этом входное событие фильтра-композитора, стоящее в очереди первым, становится верхним слоем результирующего изображения, а стоящее в очереди вторым — нижним слоем. Для добавления в очередь события композиции изображений выполните следующие действия: 1. Включите в очередь и выделите два события, которые следует объединить. Расположите временные диапазоны действия этих событий с перекрытием. 2. Щелкните на кнопке Add image Layer Event (Добавить событие компози- щц ции изображений) панели инструментов окна Видеомонтаж. Появится *™ окно диалога Add Image Layer Event (Добавление события композиции изображений) (рис. 5.16). 3. Выберите необходимый тип фильтра в раскрывающемся списке раздела Layer Plug-In (Модули композиторов) в верхней части окна. Состав фильтров-композиторов в списке зависит от того, какие дополнительные модули композиции изображений установлены на вашем компьютере. После того как фильтр
320
Глава 5. Видеомонтаж
выбран, можно щелкнуть па кнопке About (О фильтре), чтобы просмотреть сведения о версии и разработчиках фильтра, или на кнопке Setup (Настройка), чтобы вызвать окно настройки параметров выбранного фильтра.
РИС. 5.16; Окно диалога Add Image Layer Event
4. Настройте параметры маски и времени действия события-композитора в разделах Mask (Маска) и Video Post Parameters (Параметры видеомонтажа), которые не отличаются от аналогичных параметров окна диалога Add Image Filter Event (Добавление события фильтрации изображения), рассмотренного выше.
Типы фильтров композиции В комплект поставки 3ds max входит шесть фильтров композиции изображений: Adobe Premiere Transition Filter (Фильтр переходных эффектов Adobe Premiere), Alpha Compositor (Альфа-объединитель), Cross Fade Transition (Микширование наплывом), Pseudo Alpha (Мнимый альфа-канал), Simple Additive Compositor (Суммирующий объединитель) и Simple Wipe (Шторка). Фильтр Adobe Premiere Transition Filter Фильтр Adobe Premiere Transition Filter (Фильтр переходных эффектов Adobe Premiere) обеспечивает возможность использования фильтров создания видеоэффектов межкадровых переходов приложения Adobe Premiere. В окне настройки данного фильтра, появляющемся после щелчка на кнопке Setup (Настройка), укажите маршрут доступа к файлам фильтров, щелкнув на кнопке Add Path (Добавить путь) в разделе Filter Path (Путь к фильтрам). После этого перечень установленных фильтров появится в списке Filter Selection (Выбор фильтра). Выделите в этом списке имя нужного фильтра. Для настройки параметров выделенного фильтра щелкните на кнопке Custom Parameters (Задать параметры). Если фильтр не допускает настройки, кнопка будет недоступна. Миниатюрные поля просмотра в правой части окна демонстрируют начальный (слева) и конечный
События очереди видеомонтажа
321
(справа) вид изображения, к которому применен эффект перехода. С помощью ползунков под полями просмотра можно задать процент готовности эффекта па моменты его начала (под левым полем) и завершения (под правым полем). Для некоторых фильтров можно задать направление действия эффекта, если щелкнуть на значке с изображением стрелок в правой части окна. Установка флажка Swap Input (Поменять на входе) меняет местами изображения, между которыми выполняется переход. Если сбросить флажок Use Stand In (Использовать стандартный вход), то действие фильтра будет демонстрироваться на примере изображений, установленных в очереди видеомоитажа. Закончив настройку параметров фильтра, щелкните па кнопке ОК.
Фильтр Alpha Compositor Фильтр Alpha Compositor (Альфа-объединитель) позволяет создать композицию из двух изображений, поместив изображение, стоящее в очереди первым, поверх изображения, стоящего в очереди вторым. При этом альфа-канал первого изображения используется для управления его прозрачностью. Этот фильтр не требует настройки параметров.
Фильтр Cross Fade Transition Фильтр Cross Fade Transition (Микширование наплывом) позволяет организовать эффект наплыва — постепенное проявление изображения, соответствующего первому событию, па фойе изображения, соответствующего второму событию. При этом интенсивность изображения верхнего слоя постепенно нарастает по всей площади кадра, скрывая под собой изображение нижнего слоя. Продолжительность перехода определяется диапазоном действия события, устанавливаемым в окне Video Post (Видеомонтаж), и должна составлять величину порядка 20-30 кадров. Этот фильтр не требует настройки параметров.
Фильтр Pseudo Alpha Фильтр Pseudo Alpha (Мнимый альфа-канал) позволяет объединить два изображения, не имеющих канала прозрачности. При этом прозрачность изображения верхнего слоя будет определяться мнимым альфа-каналом, то есть цветом первого — верхнего левого — пиксела изображения. Этот фильтр не требует настройки параметров.
Фильтр Simple Additive Compositor Фильтр Simple Additive Compositor (Суммирующий объединитель) позволяет выполнить микширование изображения нижнего слоя наплывом изображения верхнего слоя, то есть создать эффект постепенного проявления изображения верхнего слоя на фоне изображения нижнего слоя. При этом, в отличие от фильтра-композитора Cross Fade Transition (Микширование наплывом), изображение верхнего слоя не обязано иметь альфа-канал прозрачности. Для управления прозрачностью используется величина параметра Value (Интенсивность) цветовой модели HSV пикселов изображения. Пикселы с максимальной интенсивностью, равной 255, являются полностью непрозрачными, с нулевой интенсивностью — полностью прозрачными, а с промежуточными значениями — полупрозрачными. Продолжительность
322
Глава 5. Видеомонтаж
перехода определяется диапазоном действия события, устанавливаемым в окне Video Post (Видеомонтаж). Этот фильтр не требует настройки параметров.
Фильтр Simple Wipe Фильтр Simple Wipe (Шторка) позволяет как бы надвинуть поверх одного изображения шторку со вторым изображением или, наоборот, сдвинуть изображение верхнего слоя в сторону, открывая нижнее. Параметры данного фильтра-композитора не отличаются от параметров фильтра Simple Wipe (Шторка), рассмотренных выше.
События вывода результирующих изображений Событие вывода изображения позволяет сохранять визуализированные события очереди видеомоптажа в любом из допустимых форматов. Добавляя в очередь несколько событий вывода изображений, можно обеспечить запись результатов визуализации в несколько выходных файлов разного формата или на несколько выходных устройств. Если событие вывода изображений отсутствует, вы сможете визуализировать очередь видеомонтажа, но результаты не будут сохранены на диске. Для добавления в очередь события вывода изображений выполните следующие действия: 1. Щелкните па кнопке Add Image Output Event (Добавить событие вывода щ изображения) панели инструментов окна Видеомонтаж. Появится окно "™ диалога Add Image Output Event (Добавление события вывода изображений). Это окно диалога практически не отличается от рассмотренного выше окна, управляющего событиями вставки изображений. 2. Щелкните на кнопке Files (Файлы), чтобы сохранить результаты визуализации в файл, или на кнопке Devices (Устройства), чтобы результат был записан на внешнее устройство регистрации, подобное цифровой видеокамере. 3. Настройте параметры драйвера изображения в разделе Image Driver (Драйвер изображения) и диапазон действия события — в разделе Video Post Parameters (Параметры видеомонтажа).
Внешние события Данное событие позволяет использовать внешние, независимые от 3ds max, программы обработки кадров анимации. В качестве внешнего события может использоваться файл пакетной обработки DOS. С помощью внешних событий можно передавать данные в буфер обмена Windows или получать данные из буфера обмена. Внешнее событие всегда добавляется в очередь как дочернее. Если в очереди не выделено никакого события, кнопка добавления внешнего события будет недоступна. Для добавления внешнего события в очередь видеомонтажа выполните следующие действия: 1. Выделите в очереди событие, дочерним по отношению к которому должно стать внешнее событие.
События очереди видеомонтажа
323
2. Щелкните на кнопке Add External Event (Добавить внешнее событие) пане- в ли инструментов окна Видеомонтаж. Появится окно диалога Add External lH Event (Добавление внешнего события), показанное на рис. 5.17.
Рис. 5.17.
Окно диалога Add External Event
3. Щелкните на кнопке Browse (Просмотр) и просмотрите диск в поисках нужной программы в появившемся типовом окне просмотра файлов. Выделите имя программы и щелкните на кнопке ОК. 4. Введите параметры командной строки, необходимые для выбранной программы, в текстовом поле Command Line Options (Параметры командной строки). При этом можно использовать следующие параметры, которые будут заменены программой 3ds max на фактические значения: %f — заменяется на четырехзначный помер кадра, например 0001; %w — заменяется на четырехзначное целое значение ширины изображения, например 0320; %h — заменяется на четырехзначное целое значение высоты изображения, например 0240. Установите флажок Write image to clipboard (Записать изображение в буфер обмена), чтобы текущее изображение было помещено в буфер обмена, откуда оно может быть получено внешней программой. Установка флажка Read image from clipboard (Прочитать изображение из буфера обмена) обеспечит считывание изображения из буфера обмена после обработки его внешней программой. Параметры раздела Video Post Parameters (Параметры видеомонтажа) не отличаются от аналогичных параметров рассмотренного выше окна диалога Add Scene Event (Добавление события-сцены).
События-циклы Событие-цикл заставляет выделенное событие очереди определенным образом повторяться. Событие-цикл всегда добавляется как родительское. Если в очереди не выделено ни одного события, кнопка добавления цикла будет недоступна.
324
Глава 5. Видеомонтаж
Для помещения в очередь события-цикла выполните следующие действия: 1. Щелкните па кнопке Add Loop Event (Добавить событие-цикл) панели инструментов окна Видеомонтаж. Появится окно диалога Add Loop Event (Добавление события-цикла) (рис. 5.18).
Окно диалога Add Loop Event (Добавление события-цикла)
2. Установите переключатель типа цикла в одно из двух положений: о Loop (Цикл) — обеспечивает последовательное повторение выделенного события очереди от его начала к концу; о Ping Pong (Вперед-назад) — событие будет воспроизводиться сначала в прямой, а затем в обратной последовательности. 3. Укажите, сколько раз должно воспроизводиться событие, в счетчике раздела Number of Times (Число циклов). Параметры раздела Video Post Parameters (Параметры видеомонтажа) не отличаются от аналогичных параметров рассмотренного выше окна диалога Add Scene Event (Добавление события-сцены).
Исполнение цепочки событий Подготовив очередь событий, щелкните на кнопке Execute Sequence (Выпол- щц нить цепочку), чтобы запустить процесс визуализации последовательности *• изображений, заданной в виде цепочки событий в очереди видеомонтажа. Появится окно диалога Execute Video Post (Выполнить цепочку видеомонтажа) (рис. 5.19). Разделы Time Output (Интервал вывода) и Output Size (Размер кадра) этого окна представляют собой упрощенные варианты аналогичных разделов свитка Common Parameters (Общие параметры) окна диалога Render Scene (Визуализация сцены). Обратите внимание на необходимость при визуализации кадров из заданного
325
Использование фильтров оптических эффектов
диапазона удостовериться, что в счетчике То (До) установлен правильный номер конечного кадра цепочки монтажа. Дело в том, что при редактировании очереди событий и изменении продолжительности выходного события программа не изменяет длину визуализируемого диапазона кадров автоматически. Execute Video Post
ШИН Окно диалога Execute Video Post)
В разделе Output (Вывод результатов) установите или сбросьте следующие флажки: П Keep Progress Dialog (Сохранять диалог визуализации) — установка этого флажка обеспечивает сохранение на экране окна диалога Rendering (Визуализация) по завершении процесса визуализации. Если флажок сброшен, то окно диалога Rendering (Визуализация) автоматически удаляется, как только визуализация будет закончена; п Virtual Frame B u f f e r (Виртуальный буфер кадров) — установка этого флажка обеспечивает отображение результатов визуализации в окне виртуального буфера кадров наряду с записью их в указанный файл или на внешнее устройство регистрации; П Net Render (Визуализация в сети) — установка этого флажка обеспечивает возможность визуализации с использованием сети компьютеров. Щелкните на кнопке Render (Визуализировать) для запуска процесса визуализации или на кнопке Cancel (Отмена) для отказа от визуализации. Щелчок на кнопке Close (Закрыть) закрывает окно без визуализации, однако с сохранением всех настроек параметров, выполненных в свитках окна.
Использование фильтров оптических эффектов 3ds max включает в свой состав пакет фильтров для имитации оптических эффектов, возникающих при съемке объектов реальными фотоаппаратами или видеокамерами, под общим названием Lens Effects (Оптические эффекты). Ниже будут рассмотрены параметры четырех фильтров этого пакета.
326 Для настройки параметров любого из рассматриваемых ниже фильтров щелкните на кнопке Setup (Настройка) в окне диалога Add Image Filter Event (Добавление события фильтрации изображения) или Edit Filter Event (Редактирование события фильтрации изображения).
Фильтр Lens Effects Flare
Глава 5. Видеомонтаж 1
:
• •':'. { ' I
j
ЗАМЕЧАНИЕ Многие из оптических эффектов,-реализуе^! мых фильтрами семейства Lens Effects (Оптические эффекта)/; могут в :3ds, max: быть реализованы .с использованием программного: модуля EffectSif^^eKTbij^HacTppHKa этого модуля производится:в окне диалога, вызываемом по команде меню Rendering > . Effects (Визуализация »:
Фильтр Lens Effects Flare (Оптические эффекты: блики) предназначен для имитации бликов, возникающих на линзах объектива фотоаппарата или видеокамеры, когда лучи солнца или другого источника яркого света попадают прямо в объектив. В результате в кадре появляется яркое пятно, сопровождаемое пятнами меньших размеров, кольцами, радиальными лучами и другими образами, пересекающими кадр, как показано на рис. 5.20.
Исходное изображение заката солнца (а) и результат применения фильтра Lens Effects Flare (б)
327
Использование фильтров оптических эффектов
Для настройки фильтра бликов линз служит окно диалога Lens Effects Flare (Оптические эффекты: блики), появляющееся после щелчка на кнопке Setup (Настройка) в окне диалога добавления или редактирования события-фильтра (рис. 5.21).
^!Я1
Шив
ЯЧГ—-.1
Рис. 5.21. Окно диалога Lens Effects Flare
Используйте для предварительного просмотра эффекта бликов в поле предварительного просмотра в левой части окна диалога следующие кнопки: П Preview (Просмотр) — обеспечивает расчет и воспроизведение в поле просмотра эффекта бликов, установленного но умолчанию, с текущими значениями параметров. При этом появляется окно Lens Effects Flare in progress... (Оптические эффекты Блики: идет расчет) с изображением прогресс-индикатора, позволяющее следить за ходом визуализации эффекта; П VP Queue (Очередь VP) — обеспечивает просмотр эффекта бликов применительно к изображению, заданному в очереди видеомоитажа, и источнику света, выбранному в разделе Lens Flare Properties (Свойства бликов линз), описываемом ниже. Кнопка Preview (Просмотр) при этом также должна быть нажата; D Update (Обновить) — обеспечивает обновление изображения в поле просмотра после изменения значений тех или иных параметров. В большинстве случаев изображение в поле предварительного просмотра обновляется автоматически.
328
Глава 5. Видеомонтаж
В восьми окнах просмотра в правой верхней части окна диалога Lens Effects Flare (Оптические эффекты: блики) можно наблюдать вид отдельных компонентов эффекта бликов, если установлены следующие флажки под окнами: Glow (Сияние), Ring (Кольцо), ASec (Auto Secondaries — Вторичные блики автоматические), MSec (Manual Secondaries — Вторичные блики ручной настройки) , Rays (Лучи), Star (Звезда), Streak (Полоска) и Inferno (Хаотичный фон). Установка этих флажков влияет только на просмотр эффекта, но не на вклад компонента в итоговое изображение — этот вклад задается установкой флажков на вкладке Prefs (Предпочтения). Используйте для управления эффектом в целом следующие кнопки в левой нижней части окна: D Save (Сохранить), Load (Загрузить) — позволяют сохранить текущий набор параметров в файл с расширением имени .Izf и загрузить ранее сохраненный набор; П Reset (Сброс) — восстанавливает значения всех параметров, принятые по умолчанию; П OK, Cancel (Отмена) — обеспечивают возврат в окно настройки события-фильтра с сохранением или отменой результатов настройки параметров. Щелкните на кнопке Node Sources (Узловые источники) в разделе Lens Flare Properties (Свойства бликов линз), чтобы указать источник света, приводящий к возникновению бликов. Появится окно диалога Select Flare Objects (Выделение источников бликов), в котором можно выбрать источник бликов по именам объектов и источников света (роль источника бликов может играть любой ярко освещенный объект сцены). Параметры раздела Lens Flare Properties (Свойства бликов линз), снабженные кнопкой со значком контроллера анимации в виде зеленого треугольника справа от счетчика параметра, допускают анимацию. Если кнопка нажата, режим анимации параметра включен. Настройте следующие параметры данного раздела: D Seed (Номер выборки) — запускает генератор случайных чисел для получения иного варианта эффекта при тех же значениях остальных параметров; П Size (Размер) — задает размер бликов в процентах от размеров всего изображения. Обычно устанавливают размер в диапазоне от 20 до 30; П Hue (Цветовой тон) — задает общий цветовой тон эффекта бликов. Если установлен флажок Apply Hue Globally (Применить глобальный тон), то цветовой тон бликов будет определяться цветовым тоном источника бликов; D Angle (Угол) — задает угол поворота бликов при изменении положения камеры. Щелчок на кнопке L (Lock — Блокировка) справа от счетчика блокирует вторичные блики, заставляя их также поворачиваться; П Intensity (Интенсивность) — задает общую яркость эффекта и непрозрачность бликов. Большие значения дают яркие, более непрозрачные блики, а малые — приглушенные, прозрачные блики; D Squeeze (Сжатие) — обеспечивает сжатие изображения бликов в случаях, если при визуализации используются необычно большие значения пропорций изображения.
Использование фильтров оптических эффектов
329
Настройте следующие характеристики эффекта бликов в разделе Lens Flare Effects (Эффекты бликов линз): D Brighten (Осветление) — позволяет сделать светлее все изображение. Анимация этого параметра позволяет имитировать эффект вспышки в момент попадания прямых лучей света в объектив; D Dist Fade (Затухание с расстоянием) — если эта кнопка нажата, то эффект бликов будет ослабевать по мере удаления от камеры. Предельная дальность проявления эффекта задается в счетчике справа от кнопки; D Cent Fade (Затухание в центре) — если эта кнопка нажата, то эффект бликов будет ослабевать вблизи оси цепочки бликов. Дальность до оси проявления эффекта задается в счетчике справа от кнопки; П Dist Blur (Размывание с расстоянием) — вызывает размывание бликов в зависимости от расстояния до камеры; С Blur Int (Степень размывания) — задает степень размывания бликов, если этот эффект применяется при визуализации. Заданная величина достигается на расстоянии от камеры, указанном в счетчике Dist Blur (Размывание с расстоянием); D Soften (Сглаживание) — задает общую степень сглаживания бликов.
Окно диалога Lens Effects Flare: вкладка Prefs Укажите, на какие каналы изображения будет влиять эффект, а также задайте ряд общих параметров бликов, используя следующие элементы управления вкладки Prefs (Предпочтения): П Affect Alpha (Воздействовать на альфа-канал) — включает режим воздействия эффекта бликов на альфа-канал прозрачности изображения, если используется формат с глубиной цвета 32 бита па пиксел; П Affect Z Buffer (Воздействовать на Z-буфер) — включает режим, при котором дальность от камеры до блика запоминается в Z-буфере для использования при имитации расфокусировки; П Occlusion Radius (Радиус преграды) — задает радиус относительно центра эффекта бликов, определяющий, с какого момента эффект начнет затухать в случае, когда источник бликов скрывается за каким-то объектом сцепы; D Motion Blur (Смаз от движения) — задает степень смаза бликов, вызванного движением камеры, в виде числа копий смещенных бликов. Изменяется в диапазоне от 0 до 100; П Axial Transparency (Осевая прозрачность) — позволяет настраивать параметры радиального градиента, определяющего прозрачность вторичных явлений эффекта бликов вдоль оси их расположения. Для изменения положения точки (в процентах от величины радиуса блика), в которой прозрачность достигает максимума, щелкните в пределах шкалы и перетащите появившийся ползунок, следя за величиной параметра Pos (Position — Положение) над шкалой. Для удаления ползунка стащите его со шкалы влево или вправо.
330
Глава 5. Видеомонтаж
Установите, какие из составных частей эффекта бликов линз — Brighten (Осветление), Glow (Сияние), Ring (Кольцо), ASec (Вторичные блики автоматические), MSec (Вторичные блики ручной настройки), Rays (Лучи), Star (Звезда), Streak (Полоска) — следует учитывать в различных ситуациях, используя следующие группы элементов управления вкладки Prefs (Предпочтения): П Render (Визуализировать) — эта группа флажков определяет, какие из восьми компонентов эффекта бликов будут учтены при визуализации сцены; D Off Scene (Вне сцены) — флажки этой группы указывают, должны ли соответствующие компоненты эффекта бликов проявляться в случаях, когда источник бликов не виден, то есть находится за пределами окна проекции сцены. В реальной жизни эффект бликов линз проявляется и в том случае, если источник света не попадает в кадр; D Squeeze (Сжатие) — за счет установки флажков этой группы составные части эффекта блика могут быть сжаты в соответствии со значением параметра сжатия из раздела Lens Flare Properties (Свойства бликов линз); П I n f e r n o (Хаотичный фон) — если будут установлены флажки этой группы, то к соответствующим составным частям эффекта блика будет добавлен фрактальный шум; П Occlusion (Преграда) — эта группа счетчиков позволяет установить степени перекрытия составляющих эффекта блика в тех случаях, когда источник блика оказывается позади объекта сцены, чтобы корректным образом скрыть блик.
Окно диалога Lens Effects Flare: вкладка Glow Настройте характеристики сияния в центре эффекта бликов, используя следующие параметры вкладки Glow (Сияние): П Size (Размер) — задает размер области сияния в процентах от размера изображения; D Hue (Цветовой тон) — задает цветовой тон сияния; п Hide behind geometry (Перекрывать геометрией сцены) — обеспечивает возможность перекрытия сияния геометрическими объектам сцены; п Radial Color (Радиальный цвет), Radial Transparency (Радиальная прозрачность) — шкалы для регулировки радиальных градиентов цвета и прозрачности области сияния. Допускают установку 98 дополнительных ползунков помимо фиксированных начального и конечного, каждому из которых можно присваивать иной оттенок цвета. Для смены цвета ползунка щелкните на нем правой кнопкой мыши и выберите в контекстном меню команду Properties (Свойства), а затем щелкните на образце цвета в появившемся окне диалога. Плавный переход выбранного оттенка в соседние цвета шкалы настраивается автоматически. Для удаления ползунка стащите его со шкалы влево или вправо; П Circular Color (Секторный цвет), Circular Transparency (Секторная прозрачность) — шкалы для регулировки градиентов цвета и прозрачности по секторам окружности области сияния. Их использование не отличается от использования шкал градиентов радиального цвета и прозрачности;
Использование фильтров оптических эффектов
331
П Radial Size (Радиалыно-секторный размер) — шкала настройки размеров области сияния. Размер принимается пропорциональным тону цвета шкалы, так что всего можно задать 256 градаций размера. Этот градиент действует одновременно и как радиальный, и как секторный. Размер области меняется вдоль радиуса, по каждое повое значение шкалы применяется к очередному радиусу, смещенному относительно предыдущего против часовой стрелки но периметру области сияния.
Окно диалога Lens Effects Flare: вкладка Ring Настройте характеристики основного круга эффекта бликов, используя параметры вкладки R i n g (Кольцо). Все они не отличаются от параметров вкладки Glow (Сияние). Дополнительно имеется счетчик Thick (Ширина), задающий ширину кольца.
Окно диалога Lens Effects Flare: вкладка ASec Настройте характеристики автоматически формируемых групп вторичных бликов, используя следующие параметры вкладки ASec (Вторичные блики автоматические): П кнопки со значками в виде правой и левой угловых стрелок — позволяют переключаться между имеющимися в наличии наборами автоматически формируемых вторичных бликов. Всего по умолчанию имеется семь наборов. Имя текущего набора — Set 1 (Набор 1), Set 2 (Набор 2) и т. д. — появляется справа от кнопок выбора. Все параметры вкладки относятся к текущему набору бликов. Для добавления дополнительного набора настройте его параметры и щелкните на кнопке Add (Добавить), для удаления набора из памяти — щелкните на кнопке Delete (Удалить); П Min (Минимальный размер), Мах (Максимальный размер) — задают минимальный и максимальный размеры вторичных бликов в группе; П A x i s (Ось) — определяет общий размер области, занимаемой группой бликов, увеличивая или уменьшая расстояния между ними. Изменяется в интервале от 0 до 5; D On (Вкл.) — включает режим отображения текущего набора вторичных бликов, позволяя комбинировать состав бликов из разных наборов; П Fade (Затухание) — включает режим затухания бликов вдоль оси их расположения; П Qty (Quantity — Количество) — задает количество бликов в текущем наборе; D раскрывающийся список содержит варианты формы вторичных бликов, такие как Circular (Круглые), 3 sides (3-конечные) и т. п. Остальные параметры данной вкладки не отличаются от параметров вкладки Glow (Сияние).
Окно диалога Lens Effects Flare: вкладка MSec Настройте характеристики групп вторичных бликов, формируемых вручную, используя параметры вкладки MSec (Вторичные блики ручной настройки), которые в целом не отличаются от параметров вкладки ASec (Вторичные блики автоматические) и других вкладок. По умолчанию имеется семь разных групп вторичных
332
Глава 5. Видеомонтаж
бликов, каждую из которых можно настраивать и включать в итоговый эффект индивидуально. Дополнительными элементами управления являются: D Plane (Плоскость) — задает расстояние между источником бликов и вторичными бликами. Положительные значения помещают блики перед источником, отрицательные — позади источника. В реальной жизни позади источника всегда формируются один-два линзовых блика; D Scale (Масштаб) — задает масштаб вторичных бликов, позволяя выполнять анимацию их размеров.
Окно диалога Lens Effects Flare: вкладка Rays Настройте характеристики лучей, сопровождающих эффект блика линз, используя параметры вкладки Rays (Лучи), которые в целом не отличаются от параметров вкладки Glow (Сияние) и других вкладок. Дополнительными элементами управления являются: D Num (Число) — задает общее число лучей; П Group (Группировать) — заставляет все лучи объединиться в восемь групп, разнесенных на равные расстояния друг от друга; D Auto Rotate (Автовращение) — добавляет угол, указанный в счетчике Angle (Угол) данной вкладки, к углу, указанному в счетчике Angle (Угол) в разделе Lens Flare Properties (Свойства бликов линз). Установка этого флажка также обеспечивает сохранение положения лучей по отношению к бликам линз при их анимации; D Sharp (Резкость) — задает степень резкости лучей. Чем выше значение, тем более четкие, резко очерченные лучи будут сформированы.
Окно диалога Lens Effects Flare: вкладка Star Настройте характеристики многолучевой звезды, сопровождающей эффект блика линз, используя параметры вкладки Star (Звезда), которые в целом не отличаются от параметров вкладки Rays (Лучи) и других вкладок. Звезда обычно имеет большие размеры по сравнению с эффектом лучей и содержит не сотни лучей, а, как правило, шесть или чуть больше. Дополнительными элементами управления являются: П Width (Ширина) — задает ширину отдельных лучей звезды; П Random (Случайно) — разрешает случайное распределение лучей звезды вокруг ее центра; П Taper (Заострение) — задает степень заострения отдельных лучей звезды.
Окно диалога Lens Effects Flare: вкладка Streak Настройте характеристики горизонтальной цветной полосы, сопровождающей эффект блика линз, используя параметры вкладки Streak (Полоска), которые в целом не отличаются от параметров предыдущих вкладок. Дополнительно имеется флажок Axial A l i g n (Вдоль оси), включающий режим выравнивания полоски вдоль оси расположения вторичных бликов. Если флажок сброшен, полоска располагается горизонтально.
Использование фильтров оптических эффектов
333
Окно диалога Lens Effects Flare: вкладка Inferno Настройте характеристики фрактальных иеоднородностей, которые могут сопровождать эффект бликов, используя следующие параметры вкладки Inferno (Хаотичный фон): П Gaseous (Газообразный), Fiery (Огненный), Electric (Молниевидный) — переключатель выбора одного из трех типов иеоднородностей фона; D Lock Effect (Блокировать эффект) — привязывает хаотичный фон к положению бликов при анимации; П Lock Noise (Блокировать шум) — привязывает хаотичный фон к положению на экране; D Motion (Движение), Direction (Направление) — задают скорость и направление движения областей неоднородности при анимации; П Quality (Качество) — задает качество неоднородностей, определяемое их детальностью. Чем выше значение, тем больше производится итераций фрактального алгоритма и тем выше оказывается детальность неоднородной картины. Счетчики раздела Parameters (Параметры) задают характерный размер областей фрактального узора (Size), скорость турбулентных пульсаций областей шума (Speed), среднюю яркость участков шума (Base) и разброс яркостей (Amplitude), сдвиг цветов спектра областей к тому или иному концу цветового диапазона шума (Bias), а также ширину перепадов между светлыми и темными участками (Edge).
Фильтр Lens Effects Focus Фильтр Lens Effects Focus (Оптические эффекты: фокусировка) позволяет имитировать эффекты расфокусировки изображения или конечной глубины резкости снимка, приводящей к тому, что в фокусе оказываются только объекты на определенной дальности от камеры. Для воспроизведения эффекта расфокусировки фильтр использует информацию об удалении объектов от съемочной камеры, хранящуюся в Z-буфере сцены. Для настройки фильтра фокусировки служит окно диалога Lens Effects Focus (Оптические эффекты: фокусировка), появляющееся после щелчка на кнопке Setup (Настройка) в окне диалога добавления или редактирования события-фильтра (рис. 5.22). Элементы управления просмотром эффекта, сохранением и загрузкой набора параметров данного окна аналогичны соответствующим элементам рассмотренного выше окна диалога Lens Effects Flare (Оптические эффекты: блики). Чтобы настроить эффект расфокусировки, установите переключатель выбора типа эффекта в окне диалога Lens Effects Focus (Оптические эффекты: фокусировка) в одно из трех положений: П Scene Blur (Размывание сцены) — эффект расфокусировки применяется ко всей сцене в целом, а не к отдельной ее части; П Radial Blur (Радиальное размывание) — эффект расфокусировки применяется ко всей сцене в целом, но от центра кадра к его краям. Это напоминает
334
Глава 5. Видеомонтаж
наблюдение сцены через объектив типа «рыбий глаз». Данная разновидность расфокусировки использует параметры Focal Range (Диапазон фокусировки) и Focal Limit (Предел расфокусировки); Lens Effects Focus
:
V .:vf".r I
Рис. 5.22. Окно диалога Lens Effects Focus
П Focal Node (Центр фокусировки) — позволяет выбрать объект, который будет играть роль центра фокусировки. Выбранный объект будет находиться в фокусе, а все объекты за пределами диапазона, заданного параметром Focal Limit (Предел расфокусировки), окажутся расфокусированными. Щелкните на кнопке Select (Выбор), чтобы вызвать появление окна диалога, в котором можно выбрать по имени объект сцены, призванный играть роль центра фокусировки. В качестве такого объекта можно, например, использовать мишень камеры. Установите флажок Affect Alpha (Воздействовать на альфа-канал), чтобы включить режим воздействия эффекта расфокусировки на альфа-канал прозрачности изображения, если используется формат с глубиной цвета 32 бита на пиксел. Задайте численные значения следующих параметров: п Horiz/Vert Focal Loss (Расфокусировка по горизонтали/по вертикали) — задают степень расфокусировки, применяемую к изображению в горизонтальном
335
Использование фильтров оптических эффектов
и вертикальном направлениях, в диапазоне от 0 до 100%. Если установлен флажок Lock (Блокировать), то в этих счетчиках автоматически устанавливаются равные значения; П Focal Range (Диапазон фокусировки) — задает, на каком расстоянии от центра сцены при установке переключателя Radial Blur (Радиальное размывание) или от камеры при установке переключателя Focal Node (Центр фокусировки) будет начинаться проявление эффекта расфокусировки; П Focal Limit (Предел расфокусировки) — задает расстояние от центра сцены или от камеры, на котором будет достигнуто максимальное значение расфокусировки.
Фильтр Lens Effects Glow Фильтр Lens Effects Glow (Оптические эффекты: сияние) из пакета оптических эффектов позволяет сымитировать сияние вокруг любого объекта на основе данных о его номере в G-буфере, идентификаторе канала эффектов монтажа материала объекта, глубине положения в Z-буфере, угле ориентации нормали к поверхности объекта и т. д. (рис. 5.23).
РИС. 5,23.
Исходное изображение лампы (а) и результат применения фильтра Lens Effects Glow (6)
CD
336
Глава 5. Видеомонтаж
Действие этого фильтра аналогично действию фильтра Glow (Сияние) из семейства фильтров Lens Effects (Оптические эффекты), входящих в состав модуля Effects (Эффекты) программы 3ds max. Для настройки фильтра сияния служит окно диалога Lens Effects Glow (Оптические эффекты: сияние), появляющееся после щелчка на кнопке Setup (Настройка) в окне диалога добавления или редактирования события-фильтра (рис. 5.24). Большая часть элементов управления данного окна аналогична соответствующим элементам рассмотренного выше окна диалога Lens Effects Flare (Оптические эффекты: блики). Lens Effects Glow
list! rj , .„
|Рйр5.24. Окно диалога Lens Effects Glow
Установите переключатель Source (Источник) на вкладке Properties (Свойства) в окне диалога Lens Effects Glow (Оптические эффекты: сияние) в одно из следующих положений, определяющих выбор источника сияния: П Whole (Все) — эффект сияния будет применен ко всей сцене в целом; П Object ID (Идентификатор объекта) — в качестве источника будет использован объект, номер канала G-буфера которого соответствует величине, заданной в счетчике справа от переключателя;
Использование фильтров оптических эффектов
337
D Effect ID (Идентификатор материала) — в качестве источника будет использован материал, помер канала эффектов монтажа которого соответствует величине, заданной в счетчике справа от переключателя; D U n d a m p e d (Сверхъяркий цвет) — источником сияния будут области изображения, цвет которых ярче, чем чисто белый цвет с компонентами (255; 255; 255). Счетчик позволяет указать минимальную яркость областей, к которым будет применен эффект сияния. Чисто белому цвету соответствует величина 1, при которой все цвета с компонентами, превышающими (255; 255; 255), будут сиять; D Surf Norm (Нормаль к поверхности) — эффект сияния будет применен к областям поверхности объекта, угол ориентации нормалей которых превышает величину, указанную в счетчике. Значение 0 соответствует нормалям, параллельным плоскости экрана, а 90 — перпендикулярным плоскости экрана. Можно инвертировать действие этого переключателя, если щелкнуть на кнопке со значком в виде вертикальной черты справа от счетчика; П Mask (Маска) — эффект сияния будет применен к тем участкам капала маски изображения, интенсивность серого тона которых превышает величину, заданную в счетчике. Действие этого переключателя также можно инвертировать, если щелкнуть на кнопке со значком в виде вертикальной черты; П Z Hi (Верхняя граница Z-буфера), Z Lo (Нижняя граница Z-буфера) — эффект сияния будет применен к объектам, удаление которых от камеры (координата Z-буфера) лежит между значениями, указанными в счетчиках. Укажите, к каким пикселам выбранных источников сияния применять данный эффект, установив переключатель Filter (Фильтровать) на вкладке Properties (Свойства) в одно из следующих положений: D All (Все) — применяет фильтрацию ко всем заданным источникам сцены; П Edge (Края) — эффект сияния будет применен только к краям выбранных источников; п Perimeter Alpha (Периметр альфа-канала) — эффект будет применен только к периметру объекта, определяемому но информации из альфа-канала. Края объекта остаются при этом чистыми; П Perimeter (Периметр) — эффект будет применен только по периметру объектов-источников; D Bright (Яркие области) — фильтроваться будут только области объектов-источников, имеющие яркость, превышающую заданную в счетчике. Действие этого параметра можно инвертировать; D Hue (Цветовой тон) — эффект будет применен только к участкам объектов-источников, имеющим цветовой той материала, указанный в образце справа от переключателя. Счетчик справа от образца позволяет указать величину вариации цветового тона относительно заданного образца, чтобы эффект был применен к пикселам в некотором диапазоне оттенков.
338
Глава 5. Видеомонтаж
Чтобы задать цвет сияния, установите переключатель Color (Цвет) на вкладке Preferences (Предпочтения) в одно из трех положений: D Gradient (Градиент) — цвет будет определяться установкой параметров па вкладке Gradients (Градиенты); D Pixel (Пиксел) — цвет сияния будет определяться цветом пикселов материала источника. Это самый быстрый метод генерации сияния; П User (Специальный) — позволяет задать цвет сияния, щелкнув па образце цвета справа от переключателя. Остальные параметры вкладок Preferences (Предпочтения), Gradients (Градиенты) и Inferno (Хаотичный фон) практически не отличаются от параметров окна диалога Lens Effects Flare (Оптические эффекты: блики), а также параметров фильтра Glow (Сияние) из состава модуля Effects (Эффекты) программы 3ds max.
Фильтр Lens Effects Highlight Фильтр Lens Effects Highlight (Оптические эффекты: сверкание) позволяет формировать яркие зеркальные блики в форме лучистых звездочек, подчеркивающих блеск материала объекта, как показано на рис. 5.25.
Рис. 5.25. Исходное изображение бокала (а) и результат применения фильтра Lens Effects Highlight (6)
339
Использование фильтров оптических эффектов
Для настройки фильтра сияния служит окно диалога Lens Effects H i g h l i g h t (Оптические эффекты: сверкание), появляющееся после щелчка на кнопке Setup (Настройка) в окне диалога добавления или редактирования события-фильтра (рис. 5.26). Это окно очень похоже по структуре и набору параметров на рассмотренное ранее (см. рис. 5.24) окно диалога Lens Effects Glow (Оптические эффекты: сияние).
I I
Рис. 5.26. Окно диалога Lens Effects Highlight
Укажите па вкладке Properties (Свойства) в окне диалога Lens Effects Highlight (Оптические эффекты: сверкание) источник сверкающих бликов и определите, к каким пикселам источников должен применяться эффект, как было описано выше применительно к фильтру сияния. Настройте внешний вид бликов-звездочек на вкладке Geometry (Геометрия), используя следующие параметры: D Angle (Угол) — задает угол поворота лучей бликов-звездочек; Q Clamp (Охват) — задает количество смежных пикселов с заданными на вкладке Properties (Свойства) характеристиками, которые должны быть найдены
340
Глава 5. Видеомонтаж
программой, чтобы применить одиночный эффект сверкающего блика. Это может помочь уменьшить число формируемых звездочек, которых иногда оказывается слишком много; П Alt Rays (Изменять лучи) — щелчок на этой кнопке активизирует режим, при котором длина отдельных лучей будет произвольно варьировать в пределах, указанных в счетчике под кнопкой; П Vary (Варьировать) — этот раздел позволяет включить режим варьирования размеров бликов щелчком на кнопке Size (Размер) и угла ориентации бликов щелчком на кнопке Angle (Угол). Щелчок на кнопке Reseed (Сменить выборку) обеспечит генерацию нового случайного варианта эффекта при постоянстве всех остальных параметров; D Rotate (Поворачивать) — две кнопки из этого раздела позволяют включить режимы автоматического поворота бликов в зависимости от расстояния от наблюдателя (кнопка Distance (Расстояние)) или по мере перемещения блестящего объекта в плоскости проекции (кнопка Pan (Панорама)). Параметры вкладок Preferences (Предпочтения) и Gradients (Градиенты) практически не отличаются от параметров окна диалога Lens Effects Glow (Оптические эффекты: сияние), показанного ранее на рис. 5.24.
ГЛАВА
Настройка и экспорт сцен в формате VRML Трехмерные сцены и анимации, создаваемые в программе 3ds max, могут быть использованы вне этой программы только в результате экспорта. В 3ds max реализовано полтора десятка различных вариантов экспорта файлов. Среди этих вариантов особый интерес вызывает возможность экспорта файлов в формате VRML (Virtual Reality Modeling Language — язык моделирования виртуальной реальности). Привлекательность трехмерных сцен и анимаций в формате VRML состоит в том, что они могут быть загружены в стандартный интернет-браузер (при условии установки дополнительного клиентского модуля для просмотра VRML-сцен). После такой загрузки становится возможным совершать виртуальные перемещения по трехмерному миру, осматривать трехмерные объекты с разных сторон и даже совершать с ними различные действия — щелкать на них кнопкой мыши для переходов по гинерссылкам, запускать и останавливать анимацию объектов, включать и выключать звуковое сопровождение и т. н. Такие возможности делают трехмерные сцены интерактивными, то есть позволяющими определенным образом реагировать па активные действия зрителя. Фактически, в подобной интерактивной сцене реализуется ситуация типовой компьютерной игры. Интерактивная трехмерная графика на практике применяется, к примеру, для создания игровых и обучающих программ, виртуальных галерей, выставочных и торговых залов, предназначенных для просмотра через сеть Интернет.
В этой главе будут рассмотрены следующие вопроа
'
'•.ripdnes^K^SK^^^^^^^^^i^ щихсЩ^ШЩда&ед^рИШ! *:Пр^ВД0|!ИС:£ЬздаНИЯ И ИСПОЛЬ-
зования;
способы, И:СредсгвЭ ,'••,.'•
.
• •
:••'•'••"••:•••,: ' ' . '
-::
:
:
:''4x^. -^:>kN . . . . '.• ". : . •:-,
''-'< :
342
Глава 6. Настройка и экспорт сцен в формате VRML
Общие сведения о 30-сценах формата VRML Язык VRML был разработан для применения в сети Интернет или в локальных сетях и предназначен для описания интерактивных трехмерных сцеп. На сегодняшний день этот язык является одним из сетевых стандартов и поддерживается ведущими мировыми производителями программного обеспечения. В программе 3ds max обеспечивается возможность экспорта трехмерных сцен и анимаций в формате VRML 97. Это означает, что описания трехмерных сцен, экспортируемых из 3ds max, соответствуют спецификации стандарта языка описания виртуальной реальности, принятой Международной организацией стандартов в 1997 г. Данный стандарт представляет собой документ под названием «The Virtual Reality Modeling Language. International Standard ISO/IEC 14772-1: 1997», текст которого можно найти в Интернете (например, по ссылке http:// www.vrml.org/Specifications/VRML97/index.html). Много полезных сведений по теме VRML можно найти на сайте http://vrml. main.ru. Этот web-узел содержит множество примеров, ссылки на спецификацию VRML 97 и разнообразное программное обеспечение для создания, редактирования и просмотра VRML-сцен. Файлы формата VRML имеют имена типа *.wrl и представляют собой обычные текстовые файлы, содержащие описания трехмерных сцен па языке VRML. Подобные описания, которые с определенной долей условности можно считать текстами или кодами VRML-программ, можно создавать и редактировать вручную с помощью любого простейшего текстового редактора, например с помощью приложения Notepad (Блокнот) системы Windows. Модуль экспорта файлов формата VRML, реализованный в программе 3ds max, генерирует текст VRML-кода автоматически. К примеру, на рис. 6.1 показан VRML-код, сформированный в результате экспорта из программы 3ds max простейшей сцены, состоящей из единственного объекта — сферического примитива радиусом 40 единиц с центром в начале координат, в точке (0; 0; 0). В ключевых словах текста VRML-кода регистр символов имеет важное значение и не может выбираться произвольным образом. К примеру, слова material и Material рассматриваются интерпретатором языка как различные. Строки, начинающиеся со знака #, являются строками комментариев. Так, на рис. 6.1 комментариями являются первые три строки. Самая первая строка одинакова во всех VRML-кодах и называется заголовком (header). Весь текст VRML-кода состоит из операторов (statements). Наиболее часто используются операторы-узлы (node statements'). Они начинаются с необязательного ключевого слова DEF (definition — определение), за которым следует имя узла. Обязательными элементами узла являются название его типа и тело узла, заключаемое в фигурные скобки. Например, на рис. 6.1 мы видим единственный узел с именем Sphered, имеющий тин Transform (Преобразование). Имена узлов в VRML-кодах, автоматически генерируемых модулем экспорта 3ds max, соответствуют именам аналогичных объектов трехмерной сцены, будь то объекты
Общие сведения о 30-сценах формата VRML
343
геометрической модели сцены, осветители, камеры или вспомогательные объекты категории VRML 97. Это позволяет легко отыскать в VRML-коде узел с описанием нужного объекта, имя которого нам известно из программы 3ds max. В рассматриваемом примере узел с именем Sphered содержит описание сферического примитива, имеющего в программе 3ds max такое же имя Sphered. Sphere.WRL -Блокнот :
Файл Правка Формат Вид CnpaeKa '
# Produced by 3D studio MAX VRML97 exporter, version 6, Revision 1,62 * Date: Frl sep 24 22:22:21 2004 DEF sphered Transform { translation 0 0 0 children [ shape { appearance Appearance { material Material {
dlffusecolor 0.1098 0.1098 0.6941
geometry sphere { radius 40 }
Рис. 6.1. Текст описания простейшей сцены формата VRML, созданный модулем экспорта программы 3ds max, загружен в окно приложения Notepad
Тело узла состоит из полей (fields), каждое из которых имеет имя и значение. Если поле может иметь несколько значений, они заключаются в квадратные скобки. В качестве значений полей могут, в свою очередь, выступать новые узлы, имеющие свои поля. В примере па рис. 6.1 в теле узла Transform (Преобразование), задающем параметры преобразования объекта с именем Sphered, мы видим поле translation (смещение) с единственным значением в виде тройки координат положения центра сферы и поле children (потомки), которое по определению может иметь набор значений, заключаемых в квадратные скобки. В качестве значения поля children (потомки) используется узел Shape (Форма), который определяет внешний вид любого объекта, наблюдаемого в окне VRML-браузера. Узел Shape (Форма) имеет поля appearance (внешность) и geometry (геометрия). Поле appearance (внешность) имеет значение в виде узла Appearance (Внешность), в свою очередь, имеющего в данном случае единственное поле material (материал), определяющее материал объекта. В примере па рис. 6.1 материал имеет единственную характеристику — diffuseColor (диффузный цвет), задающую цвет диффузного рассеивания объекта в виде тройки чисел, соответствующих интенсивностям RGB-компонентов цвета. Величины интенсивностеи выражаются в долях максимального значения, равного 255. Поле geometry (геометрия) узла Shape (Форма) определяет форму объекта. В примере на рис. 6.1 значением поля geometry (геометрия) является узел Sphere (Сфера), определяющий геометрический примитив языка VRML в виде сферы с единственным параметром radius (радиус). Число 40 означает радиус сферы в метрах.
344
Глава 6. Настройка и экспорт сцен в формате VRML
В число задач данной книги не входит подробное знакомство со всеми операторами языка VRML, их полями и допустимыми значениями этих полей. Однако в ходе работы с VRML-сценами, созданными методом экспорта из программы 3ds max, у вас в некоторых случаях может возникать потребность выполнить небольшое редактирование VRML-кода. Как при необходимости выполнить подобное редактирование, и будет описываться в этой главе.
Программные средства для просмотра сцен в формате VRML Описания трехмерных сцен на языке VRML могут в реальном времени интерпретироваться стандартными интернет-браузерами при условии, что на компьютере установлен дополнительный программный модуль, часто называемый VRML-плейером. Установка подобного приложения превращает стандартный интернет-браузер в VRML-браузер. Известен целый ряд таких VRML-плейеров, например Cosmo Player разработки компании Cosmo Software; Cortona VRML client (компания ParallelGraphics); blaxxun contact (компания blaxxun interactive) или WorldView (компания Intervista). Дальнейшее рассмотрение будет вестись применительно к приложению Cortona VRML client от компании ParallelGraphics. Это достаточно распространенный VRML-плейер, самораскрывающийся архив которого можно бесплатно загрузить с web-узла http://www.parallelgraphics.com/products/cortona/. Вот некоторые достоинства плейера Cortona VRML client: П
полностью поддерживает спецификацию стандарта VRML 97;
П обладает хорошим быстродействием, используя для этого аппаратные ускорители стандартов OpenGL и DirectX; D может работать на компьютерах с простейшими видеокартами, реализуя программную эмуляцию аппаратных графических ускорителей (режим визуализации R98); П обеспечивает достаточно высокое качество графики; D поддерживает форматы Macromedia Flash, RealVideo и RealAudio; П постоянно совершенствуется с выходом новых версий. В настоящее время используется версия 4.2' П имеет малый размер дистрибутива — всего 1,58 мегабайта. После несложной пошаговой установки VRML-плейера интернет-браузер приобретает возможность загружать и просматривать трехмерные сцены и анимации из файлов типа wrl. Файлы данного типа автоматически связываются с приложением Cortona VRML-client, и их имена приобретают значок в виде бабочки, как показано на рис. 6.2. Если выполнить двойной щелчок на имени такого файла, автоматически загружается установленный интернет-браузер, например Internet Explorer, с элементами управления приложения Cortona, которые рассматриваются в следующем разделе.
345
Общие сведения о 30-сценах формата VRML
Ш WHL
If *^ I 1 ]- l!"'f***l |[U1|X 1 !
Файл
Правка
Вид
Избранное
Сервис
Справка
'••::..'.'•'>
ЙЕ?-; Папки •:!i iГЩ-' Q Назад т Й И Й 1 ШПоиск > И^да^ ' i'-l я
:
•;АзЬ»к::1Ё| D; \3dsmax6\WRL Папки'
:
\
Sft> ti/QI
'
ЁЭ Examples i;Qmaps | Open (Файл > Открыть) меню программы Internet Explorer, необходимо в списке типов файлов окна открытия файлов выбирать вариант All Files (Все файлы).
Варианты перемещений в виртуальном трехмерном мире В соответствии со спецификацией VRML 97 допускается четыре вида перемещений в виртуальном трехмерном пространстве: D Walk (Прогулка) — этот вид перемещения реализует концепцию пеней прогулки по трехмерному миру или перемещения но нему на самоходной тележке. При данном типе перемещения программа фиксирует заданную высоту расположения камеры над основанием сцены и сохраняет ее в ходе передвижений. Этот тип перемещения позволяет подниматься и спускаться по лестницам, перешагивать через препятствия определенной высоты, а также отслеживает столкновения с объектами большей высоты и обеспечивает остановку камеры на заданном расстоянии перед такими объектами. При перемещении данного типа действует воображаемая сила тяжести, заставляющая камеру Ьадать вертикально вниз, если обрывается опорная поверхность. Этот вид перемещения лучше всего подходит для осмотра интерьерных или архитектурных сцен; П Fly (Полет) — этот вид перемещения реализует концепцию полета по трехмерному миру. Высота камеры над основанием сцены не фиксируется и может произвольно меняться. Опорная поверхность вообще не является необходимой. Сила тяжести не действует. В то же время отслеживаются столкновения
346
Глава 6. Настройка и экспорт сцен в формате VRML
с препятствиями с остановкой камеры на заданном расстоянии перед ними. Этот вид перемещения лучше всего подходит для осмотра космических или подводных сцен; D Examine (Исследование) — этот вид перемещения реализует концепцию рассматривания трехмерной сцены в целом, которую можно как бы крутить в руках перед собой. Столкновения с объектами не отслеживаются, так что камера свободно проникает сквозь них. Этот вид перемещений лучше всего подходит для сцен, в которых демонстрируются отдельные объекты, предназначенные для детального изучения; D None (Нет) — в этом случае перемещения по трехмерному миру невозможны. Панели с кнопками навигации по краям экрана отсутствуют. Для смены точки наблюдения допускаются только переключения между камерами.
Средства управления VRML-браузера Cortona Если на компьютере установлено приложение Cortona VRML-клиент, то после загрузки файла типа wrl окно браузера Internet Explorer приобретает вид, показанный на рис. 6.3. -3 D:\3dsmax6\WraL«ensorsTest-2,WRL • Microsoft Internet Explorer Файл
Правка
Вид
Избранное
Сервис
Справка
Покск
GN— • ill • й ИЗ вЬ U^ йэдзг::Щ! D:\3dsmax6\WRL\5ensorsTest-2.WRI.
•Л— Прогулка
— Исследование
Прокрутка. Поворот Выровнять
Предыдущая Восстановить
|0
!°Ё1£
Приблизиться Рис, 6.3.
Окна просмотра сцены
Вид окна браузера Internet Explorer после загрузки файла типа wrl
Общие сведения о 30-сценах формата VRML
347
Просмотр трехмерной сцепы в окне браузера проводится через объектив камеры, которая играет роль глаз наблюдателя. Это позволяет создать впечатление присутствия в виртуальном трехмерном мире, демонстрация которого ведется «от первого лица». По виртуальному миру как бы путешествует виртуальный дублер зрителя. Часто такого дублера называют аватар, от английского avatar — воплощение, олицетворение. Слева и снизу от окна просмотра сцепы в окне браузера располагаются панели инструментов модуля Cortona VRML-клиент. На вертикальной панели находятся кнопки выбора вариантов перемещений в виртуальном трехмерном мире и кнопки управления движением. На горизонтальной панели — кнопки для выполнения определенных действий, позволяющих менять положение наблюдателя в трехмерном пространстве. Управлять перемещением в трехмерном пространстве можно с помощью мыши, с помощью клавиатуры или совместно с использованием мыши и клавиатуры.
Кнопки выбора варианта перемещения Три кнопки выбора вариантов перемещений в трехмерном пространстве располагаются в верхней части вертикальной панели инструментов VRMLбраузера Cortona VRML-клиент: walk (прогулка), f l y (полет) и study (изучение). Названия первых двух кнопок соответствуют выбираемым типам перемещений, описанным ранее в разделе «Варианты перемещений в виртуальном трехмерном мире». Кнопка study (изучение) активизирует вариант перемещений Examine (Исследование). Если в файле типа wrl указан определенный вариант перемещений, то доступна будет только одна кнопка. Если в файле не указано, какой вариант перемещений использовать, доступны все три кнопки. В этом случае для выбора нужного варианта перемещения следует щелкнуть па одной из кнопок. В нижней части вертикальной напели располагаются кнопки управления движением plan (смена плана), pan (прокрутка), turn (поворот) и roll (наклон). Действие каждой из них зависит от того, какой из вариантов перемещений активизирован с помощью кнопок walk (прогулка), f l y (полет) и study (изучение) в верхней части напели. Чтобы выполнять перемещения но трехмерному миру с помощью кнопок управления движением, следует щелкнуть на нужной кнопке, установить курсор в окне просмотра, щелкнуть кнопкой мыши и перетаскивать курсор вверх, вниз, вправо или влево по экрану. Курсор меняет свой вид в соответствии с выбранным способом движения или поворота. Для ускорения перемещений нажмите и удерживайте клавишу Shift, клавишу Ctrl или клавиши Shift+Ctrl (перечислены в порядке последовательного возрастания скорости).
Действие кнопок управления движением в режиме Walk Кнопка plan (смена плана) в режиме перемещений Walk (Прогулка) обеспечивает движение камеры вперед (в глубь сцены) и назад (к зрителю), а также повороты на месте влево и вправо.
348
Глава 6. Настройка и экспорт сцен в формате VRML
Для перемещения камеры от зрителя в глубь сцены или назад к зрителю щелкните кнопкой мыши в любом месте окна просмотра сцены и перетаски- л п. вайте курсор вверх или вниз по экрану. Для поворота камеры на месте щелкните в любой части .. ^ экрана и перетаскивайте кур- т^ ^Р сор влево или вправо.
СОВЕТ Если ' вб ^ремя; : : (смена: плана} принажатой й у;1ержиеае-:* ; мой кнйпке мыши::Н|Шт1;таавищу Alt, :
pan (прокр.ут^),: -а; если начать клавишу ; :
трр^Щ. П^|6|^^Щр'
Кнопка pan (прокрутка) в режиме перемещений Walk (Прогулка) обеспечивает движение камеры вперед (в глубь сцены) и назад (к зрителю) точно так же, как инструмент plan (смена плана), а также влево и вправо вдоль сцены при сохранении направления взгляда вперед. Для перемещения камеры влево или вправо щелкните кнопкой мыши в любом месте окна , просмотра сцены и перетащите курсор влево или вправо по экрану. Кнопка turn (поворот) в режиме перемещений Walk (Прогулка) обеспечивает поворот камеры на месте влево или вправо относительно вертикальной оси, действуя совершенно аналогично инструменту plan (смена плана), а также вверх и вниз относительно горизонтальной оси. Для поворота камеры вверх или вниз щелкните в любой части окна просмотра /, сцены и перетаскивайте курсор вверх и вниз. ^ Кнопка roll (наклон) в режиме перемещений Walk (Прогулка) не действует и недоступна для использования.
Действие кнопок управления движением в режиме Fly Кнопка plan (смена плана) в режиме перемещений Fly (Полет) обеспечивает движение камеры вперед и назад, а также повороты камеры влево и вправо относительно вертикальной оси. Эти движения выполняются точно так же, как в режиме перемещений Walk (Прогулка). Кнопка pan (прокрутка) в режиме перемещений Fly (Полет) обеспечивает движение камеры вверх и вниз, а также влево и вправо вдоль сцены при сохранении направления взгляда вперед. Для движения камеры вверх и вниз щелкните кнопкой мыши в любой части окна просмотра сцены и перетащите курсор вверх и вниз но экрану. Движения влево и вправо совершаются точно так же, как в режиме перемещений Walk (Прогулка). Кнопка turn (поворот) в режиме перемещений Fly (Полет) действует точно так же, как в режиме Walk (Прогулка). Кнопка roll (наклон) в режиме перемещений Fly (Полет) обеспечивает поворот камеры вверх и вниз относительно горизонтальной оси, как инструмент turn (поворот), а также наклон камеры влево и вправо относительно линии визирования. Для наклона камеры влево или вправо щелкните кнопкой мыши в любом месте окна просмотра сцены и перетаскивайте курсор влево или вправо по экрану.
/—^ 4F
Общие сведения о SD-сценах формата VRML
349
Действие кнопок управления движением в режиме Examine Режим перемещений Examine (Исследование) включается при нажатой кнопке study (изучение) в верхней части вертикальной панели инструментов VRML-браузера Cortona. Кнопка plan (смена плана) в режиме перемещений Examine (Исследование) обеспечивает движение камеры вперед (в глубь сцены) и назад (к зрителю), как в режиме Walk (Прогулка), а также движения камеры влево и вправо по окружности с центром в центре трехмерной сцены. Эти движения создают впечатление, что сцена поворачивается в поле зрения камеры. Кнопка pan (прокрутка) в режиме перемещений Examine (Исследование) действует точно так же, как в режиме Fly (Полет). Кнопка turn (поворот) в режиме перемещений Examine (Исследование) обеспечивает движение камеры вверх-вниз и влево-вправо по окружности с центром в центре трехмерной сцены. Эти движения создают впечатление, что сцена поворачивается в поле зрения камеры. Кнопка roll (наклон) в режиме перемещений Examine (Исследование) обеспечивает движение камеры вверх-вниз по окружности с центром в центре трехмерной сцепы, а также наклон камеры влево и вправо относительно линии визирования. Приемы выполнения этих движений такие же, как в режимах W a l k (Прогулка) и Fly (Полет).
Кнопки горизонтальной панели инструментов На горизонтальной панели инструментов в нижней части экрана VRML-браузера Cortona размещаются следующие кнопки: П goto (приблизиться) — позволяет приблизить камеру вплотную к выбранному объекту. Щелкните на кнопке, затем щелкните на нужном объекте в окне просмотра сцены; D align (выровнять) — выравнивает положение и ориентацию камеры так, чтобы ее горизонтальные оси были параллельны горизонтальной плоскости сцены; П view (камера) — эти две кнопки позволяют переключаться при просмотре сцены с одной камеры на другую. Левая кнопка переключает на предыдущую камеру, правая — на следующую. Кнопки доступны только при наличии в составе сцены двух или более камер; П restore (восстановить) — восстанавливает в окне просмотра вид сцены, который она имела на момент ее первоначальной загрузки; П f i t (подогнать) — изменяет план сцены так, чтобы она целиком помещалась в окне просмотра.
350
Глава 6. Настройка и экспорт сцен в формате VRML
Меню окна просмотра Щелчок правой кнопкой мыши в окне просмотра вызывает меню окна, показанное на рис. 6.4.
Файл : Правка II
Ц
Вид
Игранное '
Сервис -
Справка F 3 Поиск:.,.й,бранное
ШНЩ Ш C:\3dsmaxS\WRl\NavInfoTestWRL
Viewpoints «• Headlight Navigation Speed
Рис, 6.4, Меню окна просмотра сцены VRML-плейера Cortona
Меню включает в себя следующие команды: П Viewpoints (Камеры) — вызывает подменю с перечнем всех камер, имеющихся в составе сцены. Выбор имени камеры в подменю вызывает переключение окна на просмотр сцены через объектив выбранной камеры; D Headlight (Прожектор) — если в составе сцены нет готовых осветителей, то выбор этой команды включает осветитель-прожектор, направленный на сцену «из-за спины» зрителя; D Navigation (Навигация) — вызывает подменю с командами выбора типа перемещений в трехмерном мире. Команды этого меню соответствуют типам перемещений, описанным ранее в разделе «Варианты перемещений в виртуальном трехмерном мире»; D Speed (Скорость) — вызывает подменю с командами выбора скорости перемещений в виртуальной реальности: Slowest (Наиболее медленно), Slower (Медленнее), Normal (Нормально), Faster (Быстрее), Fastest (Наиболее быстро); D Full Screen (Полный экран) — вызывает подменю с перечнем вариантов разрешающих способностей для полноэкранного показа сцены. Выбор любого варианта переключает экран в режим с заданной разрешающей способностью и с показом сцены без панелей инструментов и строки заголовка окна. Для выхода из этого режима нажмите клавишу Esc;
Общие сведения о 30-сценах формата VRML
351
D Hide/Show Toolbars (Скрыть/Показать панели) — позволяет скрыть и восстановить видимость панелей инструментов плейера Cortona; П Show/Hide Console (Показать/Скрыть консоль) — вызывает окно консоли, в котором могут появляться сообщения об ошибках в описании VRML-сцены; П Preferences (Параметры) — вызывает окно настройки параметров VRML-браузера Cortona; П Help (Справка) — вызывает подменю с командами About (О программе) и User's Guide (Руководство пользователя).
Экспорт сцен 3ds max в формате VRML Для экспорта сцены, подготовленной в программе 3ds max, в виде файла типа WRL, содержащего описание трехмерных объектов па языке моделирования виртуальной реальности стандарта VRML-97, выберите команду меню File > Export (Файл > Экспорт). Появится окно диалога Select File to Export (Выбор файла для экспорта), не отличающееся от типового окна импорта файла. Выберите в раскрывающемся списке Files of Type (Тип файлов) этого окна строку V R M L 97 (*.WRL), задайте имя файла или выделите имя одного из имеющихся файлов выбранного формата и щелкните на кнопке Save (Сохранить). Появится окно диалога VRML 97 Exporter (Экспорт в V R M L 97), показанное на рис. 6.5. VRML97 Exporter
Рис.6.5. Окно диалога VRML 97 Exporter (Экспорт в VRML 97)
352
Глава 6. Настройка и экспорт сцен в формате VRML
Для настройки параметров экспорта в формате W R L в первую очередь определите состав и вид элементов описания сцены па языке VRML с помощью флажков раздела Generate (Генерировать):
ЗАМЕЧАНИЕ | тйлЬко''|ыд^е№ь1Х :^ё&ектовТ сдеИЬ!^: Если : ': вы вь1берете|крйэнауЗменю^р|е:> Export ;: '
П N o r m a l s (Нормали) — в текст описания сцены будут включены данные о нормалях всех граней VRMLобъектов, что существенно увеличит объем файла;
.
|||;:|Щ|^
D Indentation (Отступы) — в листинге описания будут сформированы отступы, облегчающие его чтение; П Primitives (Примитивы) — обычно объекты геометрической модели сцены 3ds max описываются в VRML-коде как совокупность граней, задаваемых тройками координат своих вершин. При установке данного флажка вместо описания координат вершин граней таких объектов-примитивов 3ds max, как Box (Параллелепипед), Cone (Конус), Cylinder (Цилиндр) и Sphere (Сфера), в текст кода могут быть включены описания соответствующих геометрических примитивов стандарта VRML. Это упрощает код и облегчает процедуру его интерпретации VRML-браузером. Заменена примитива 3ds max на примитив VRML производится лишь в том случае, если у соответствующего примитива 3ds max установлен флажок Smooth (Сглаживать); п Color per Vertex (Цвет вершин) — i M : : : . .:.'.•'• в текст кода будут включены сведе?^HJ 1 Л ^ У.' ния о цвете отдельных вершин. "^Примитивы V R M L имеюгфйксйрЬв'анное D Coordinate Interpolators (Интерполяторы координат) — установка этого флажка обеспечивает включение в текст кода данных об изменении формы объектов за счет анимации их характеристических параметров, таких как радиус сферы или высота цилиндра, или за счет анимации модификаторов объектов. Если данный флажок сброшен, то экспортируются только сведения об анимации преобразований перемещения, поворота и масштаба;
24 боковы^сгороны.вне :;^ !^ет ^|^ ?^ ^^^^^^|щ|^Щ|^зависимо^сегда:; : име
:
Щ^
ЗсВ max 'цилиндр |;сугр£мф:§фк;овь!ми сто- : ронами, ;но He^6jic!CHVe;::%a>KQK^sMooth;? (Сглажйвать),хт
Для создания узла PlaneSensor (Датчик плоского перемещения) найдите в текЗАМЕЧАНИЕ сте кода узел описания объекта, к ко- | | ^системы торому должно применяться интерактивное преобразование плоского перемещения. В пашем примере это объект !$£*• ;В;лрограымеЗс!5;-'max;.ось 2.'напр?Щ Теаро,0,. В коше узла Transform (Пр.- |^|™ШЩ|ШгЙ образование) этого объекта имеется ой- : вертикально ориентирована ось У, ось X ределение датчика касания, которому Усмотрит вправо; а ось,Z^направлена, из этот объект определен в качестве пере.г: глубины сцены на зрителя, ,:;;• ключателя (многоточия заменяют пропущенные строки кода):
DEF TeapotOI Transform { translation -123.8 33.82 11.11 DEF TouchSensorOl-SENSOR TouchSensor { enabled TRUE }
Определение датчика касания исправим на определение датчика плоского перемещения:
DEF TeapotOI Transform { translation -123.8 33.82 11.11 DEF PlaneSensorOl-SENSOR PlaneSensor { enabled TRUE }
396
Глава 6. Настройка и экспорт сцен в формате VRML
Поле enabled (включен) со значением TRUE (ИСТИНА) указывает на то, что данный узел включен и готов к использованию. Сохраните файл и обновите его в окне VRML-браузера. Теперь курсор при наведении на объект TeapotOl будет менять свой вид на курсор плоского перемещения (рис. 6.57). Курсор плоского перемещения
Рис. 6.57.
При установке на объект, с которым связан узел PlaneSensor, курсор меняет свой вид на курсор плоского перемещения
Чтобы датчик плоского перемещения начал действовать, добавьте в конец кода строку: ROUTE PlaneSensorOI-SENSOR.translation_changed TO TeapotOl.translation Смысл этой строки в том, что измененные координаты положения X и Y(translation_ changed) курсора датчика плоского перемещения (PlaneSensorOI-SENSOR) присваиваются координатам смещения (translation) объекта TeapotOl. Сохраните файл и обновите его в окне VRML-браузера. Теперь при попытке щелкнуть на объекте TeapotOl кнопкой мыши он будет полностью исчезать с экрана. Дело в том, что при попытке переместить объект он предварительно устанавливается в начало координат трехмерного пространства — точку (0; 0; 0). Чтобы этого не происходило, необходимо добавить в тело узла PlaneSensor (Датчик плоского перемещения) поле offset (сдвиг), задающее исходные координаты X, Y и Z положения объекта. Эти координаты следует скопировать из поля translation (смещение) узла Transform (Преобразование) объекта TeapotOl. Внесем требуемые изменения в VRML-код: DEF TeapotOl Transform { translation -123.8 33.82 11.11 DEF PlaneSensorOI-SENSOR PlaneSensor {
397
Дополнительные возможности настройки VRML-сцен
enabled TRUE offset -123.8 33.82 11.11
Сохраните файл и обновите его в окне VRML-браузера. Теперь у вас появится возможность двигать объект TeapotOI с помощью мыши. Просто установите указатель мыши на объект, щелкните левой кнопкой и, удерживая ее, перетаскивайте курсор вместе с объектом. У реализованного интерактивного действия есть один недостаток: перемещения объекта не ограничены, так что он может свободно «проваливаться» сквозь подставку и проникать в соседние объекты (рис. 6.58). 30:WdsmaxSUm!5hes«MRL\fig22-P55.Wra. -Microsoft Internet Up!.
: j| D:\3dsmax6\meshes\WRUfig22-055.WRL
Рис. 6.58.
Узел PlaneSensor теперь позволяет перетаскивать объект в интерактивном режиме, но необходимо еще ограничить диапазон перемещений
Введем для ограничения смещений объекта в тело узла PlaneSensor (Датчик плоского перемещения) ноля maxPosition (максимум положения) и minPosition (минимум положения), пары значений которых задают максимальные и минимальные значения допустимого сдвига объекта TeapotOI относительно исходного положения по горизонтальной координате X и вертикальной координате У. Интервалы, ограничиваемые минимальным и максимальным значениями сдвигов по X и У, должны включать координаты исходного положения объектов, иначе объект будет «перескакивать» из исходной точки в интервал координат с указанными границами. В рассматриваемом примере объект TeapotOI имеет координату X = -123,8, поэтому в качестве первого значения поля minPosition (минимум положения) укажем, к примеру, величину -150, а в поле maxPosition (максимум положения) — величину -100. Из тех же соображений выберем ограничения по координате У. Так как объект TeapotOI имеет координату У = 33,82, то в качестве второго значения ноля minPosition (минимум положения) зададим величину 33,82, чтобы объект не проваливался в подставку, а в поле maxPosition (максимум положения) укажем, к примеру, величину 100. В итоге VRML-код примет вид:
CD
398
Глава 6. Настройка и экспорт сцен в формате VRML
DEF TeapotOl Transform { translation -123.8 33.82 11.11 DEF PlaneSensorGl-SENSOR PlaneSensor { enabled TRUE minPosition -150 33.82 maxPosition -100 100 offset -123.8 33.82 11.11
Сохраните файл Plane sensor.wri, заново откройте его в окне VRML-браузера и убедитесь, что теперь объект TeapotOl можно перетаскивать вместе с курсором влевовправо в ограниченном интервале и вверх относительно его исходного положения.
Создание и настройка датчика цилиндрического поворота Узел CylinderSensor (Датчик цилиндрического поворота) позволяет выполнять интерактивный поворот объекта вокруг вертикальной оси Fero локальной системы координат. С этой целью он преобразует перемещения курсора мыши влево-вправо в плоскости экрана в значения угла поворота. Для создания узла CylinderSensor (Датчик цилиндрического поворота) найдите в тексте кода узел описания объекта, к которому должно применяться интерактивное преобразование цилиндрического поворота. В нашем примере это объект TeapotOZ. В конце узла Transform (Преобразование) этого объекта имеется определение датчика касания, которому этот объект определен в качестве переключателя. Так как чайник ТеароШ2 был немного повернут, в теле узла Transform (Преобразование) появилось поле rotation (поворот):
DEF Teapot02 Transform { translation -34.6 33.82 11.11 rotation 0 1 0 -1.13 DEF TouchSensor02-SENSOR TouchSensor { enabled TRUE }
Как и в предыдущем случае, замените определение узла датчика касания на определение узла датчика цилиндрического поворота:
DEF Teapot02 Transform { translation -34.6 33.82 11.11 rotation 0 1 0 -1.13 DEF CylinderSensor01-SENSOR CylinderSensor { enabled TRUE }
399
Дополнительные возможности настройки VRML-сцен
Сохраните файл и обновите его в окне VRML-браузера. Теперь курсор при паведеиии на объект Teapot02 будет менять свой вид па курсор цилиндрического поворота (рис. 6.59). Курсор цилиндрического поворота
Файл
Правка
Вид
Избранное:: Сервис • Справка
!!?:*'
Di\3dsmax6\meshes\WRL\fig22-055.WRL
Рис. 6.59. При установке на объект, с которым связан узел CylinderSensor, курсор меняет свой вид на курсор цилиндрического поворота
Чтобы датчик цилиндрического поворота начал действовать, добавьте в конец кода строку: ROUTE CylinderSensorOl-SENSOR.rotation_changed TO Teapot02.rotation Смысл этой строки в том, что изменение координат курсора (rotation_changed) датчика цилиндрического поворота (CylinderSensorOI-SENSOR) присваивается значению поля rotation (поворот) объекта TeapotOZ. Сохраните файл и обновите его в окне VRML-браузера. Теперь датчик поворота будет крутить объект TeapotOZ вокруг его вертикальной оси, но при первоначальном щелчке кнопкой мыши на объекте он выравнивается относительно осей глобальной системы координат, утрачивая свой исходный поворот. Чтобы этого не происходило, необходимо добавить в тело узла CylinderSensor (Датчик цилиндрического поворота) поле offset (сдвиг), задающее исходный угол поворота объекта вокруг вертикальной оси. Значение этого угла следует скопировать из поля rotation (поворот) узла T r a n s f o r m (Преобразование) объекта TeapotOZ. У поля rotation (поворот) четыре значения. Первые три определяют ось поворота из тройки осей X, Y, Z: О — поворот запрещен, 1 — разрешен. Тройка чисел 0 1 0 говорит о том, что поворот разрешен только вокруг оси У. Четвертое значение поля rotation (поворот) задает угол поворота вокруг выбранной оси в радианах. В нашем примере этот угол равен -1,13 радиана.
400
Глава 6. Настройка и экспорт сцен в формате VRML
Внесем требуемые изменения в VRML-код: DEF Teapot02 Transform {
t r a n s l a t i o n -34.6 33.82 11.11 r o t a t i o n 0 1 0 -1.13
DEF CylinderSensor01-SENSOR CylinderSensor { enabled TRUE offset -1.13
Снова сохраните файл Cylinder sensor.wri и обновите его в окне VRML-браузера. Теперь датчик интерактивного поворота должен действовать вполне нормально: и объект крутится, и начальный угол поворота не сбрасывается. Можете при необходимости ограничить сектор допустимых углов поворота объекта, добавив в тело узла поля maxAngle (максимальный угол) и minAngle (максимальный угол). Как и в случае с датчиком плоского перемещения, необходимо, чтобы выбранный интервал углов включал в себя начальное значение угла поворота объекта. В нашем примере, чтобы ограничить поворот объекта Teapot02 сектором в 360°, можно задать для поля maxAngle (максимальный угол) значение О, а для поля minAngle (максимальный угол) — значение -6,28, соответствующее величине -360° в радианах. В итоге код должен принять вид: DEF Teapot02 Transform { translation -34.6 33.82 11.11 rotation 0 1 0 -1.13 DEF CylinderSensorOl-SENSOR CylinderSensor { enabled TRUE maxAngle 0 minAngle -6.28 offset -1.13
Создание и настройка датчика сферического поворота Узел SphereSensor (Датчик сферического поворота) обеспечивает возможность интерактивного поворота объекта вокруг центра его локальной системы координат на произвольный угол. С этой целью он преобразует перемещения курсора мыши вверх-вниз и влево-вправо в плоскости экрана в значения угла поворота. Для создания узла SphereSensor (Датчик сферического поворота) найдите в тексте кода узел описания объекта, к которому должно применяться интерактивное преобразование цилиндрического поворота. В нашем примере это объект TeapotOS. В конце узла T r a n s f o r m (Преобразование) этого объекта имеется
401
Дополнительные возможности настройки VRML-сцен
определение датчика касания, которому этот объект определен в качестве переключателя: DEF TeapotOB Transform { translation 54.61 28.1 11.11 DEF TouchSensor03-SENSOR TouchSensor { enabled TRUE }
Замените определение узла датчика касания на определение узла датчика сферического поворота: DEF TeapotOB Transform { translation 54.61 28.1 11.11 DEF SphereSensorOl-SENSOR SphereSensor { enabled TRUE }
Сохраните файл и обновите его в окне VRML-браузера. Теперь курсор при паве- CD дении на объект TeapotOB будет менять свой вид на курсор сферического поворо- ПСИ! та (рис. 6.60). Курсор сферического поворота
файл
Правка
Вид
Избранное
Сервис
Справка
... : е%{, Пи ijsJ 1Ш 5
**!«