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<3or ^Animation
Giafh Editors
Rendering
Рис. 1.20. Вид экрана 3ds max в режиме создания эскиза анимации
Customize
MAXScrpt; : Help
42
Глава 1. Анимация трехмерных сцен
Для прерывания визуализации щелкните на кнопке Cancel (Отмена), расположенной справа от прогресс-индикатора. Появится запрос: Do you want to stop creating a preview? (Хотите прервать создание эскиза?). Щелкните на одной из кнопок: Stop & Play (Прервать и воспроизвести), Stop & Don't Play (Прервать и не воспроизводить) или Don't Stop (He прерывать). Файл эскиза визуализации сохраняется под именем _scene.avi в папке \Previews, вложенной в папку с программным обеспечением 3ds max. По завершении визуализации эскиза 3ds max автоматически загружает приложение Media Player (Универсальный проигрыватель) системы Windows для воспроизведения сформированного файла. Чтобы отменить автоматическую загрузку проигрывателя, сбросьте флажок AutoPlay Preview File (Автоматический просмотр эскиза) на вкладке General (Общие) окна диалога Preference Settings (Настройка параметров).
Просмотр эскиза анимации Для просмотра эскиза анимации выберите команду меню Animation > 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»з^ичШ!объ<Шре | его -^удакоманде контекстного меню, рассмат: ление "приведёт к 'удалению сразу всех : риваемого ниже. v кл'юу 'ё|Кчтр;;:йс;8сегЩ:;^ёл:;атёл ьир.- ; Для ' 5. Для удаления ключа или группы клюгйследует чей выделите их и нажмите клавишу | .^м^кЬицей^я : в : контекстном меню, j Delete. Команда удаления имеется также в контекстном меню ключа.
Контекстное меню ключа анимации Для вызова контекстного меню ключа анимации, показанного на рис. 1.26, укажите на ключ курсором и щелкните правой кнопкой мыши. В верхней части меню расположен список объектов, которые имеют ключи анимации в текущей позиции временной шкалы, и всех ключей этих объектов. Например, на рис. 1.26 в меню входят четыре ключа объекта SphereOI (СфераСЛ): три ключа
51
Редактирование ключей анимации в строке треков
анимации положения сферы по каждой из координат X Position (Положение по X), Y Position (Положение по Y), Z Position (Положение по Z) и ключ анимации блеска материала Specular Level (Сила блеска). Выбор любого из элементов этого списка вызывает появление окна диалога Key Info (Справка о ключах), рассматриваемого ниже.
Фрагмент экрана 3ds max с контекстным меню ключа анимации
Помимо списка ключей меню содержит следующие команды: П Controller Properties (Свойства контроллера) — команда, доступная только в случаях применения к объекту процедурных контроллеров, таких как контроллеры управления по списку или по алгоритмическому выражению. Вызывает подменю с командами вызова окон свойств процедурных контроллеров и их компонентов; D Delete Key (Удалить ключ) — команда вызова подменю, содержащего список ключей для выборочного удаления, аналогичный списку в верхней части меню, а также команду АИ (Все), позволяющую удалить сразу все ключи в текущей позиции временной шкалы; П Delete Selected Keys (Удалить выделенные ключи) — команда удаления всех ключей, выделенных на строке треков; П Filter (Фильтр) — команда вызова подменю, содержащего перечень режимов выборочного отображения ключей в строке треков: о All Keys (Все ключи) — отображение всех ключей; этот режим выбирается по умолчанию; о A l l Transform Keys (Все ключи преобразований) — отображение только ключей преобразований положения, поворота или масштаба; о Current Transform (Текущее преобразование) — отображение только ключей того преобразования, инструмент которого выбран на главной панели; о Object (Объект) — отображение ключей модификаторов объекта; о Material (Материал) — отображение ключей материала объекта;
52
Глава 1. Анимация трехмерных сцен
D Configure (Конфигурировать) — команда вызова подменю, содержащего дополнительные команды конфигурирования строки треков: о Show Frame Numbers (Показывать номера кадров) — включает/выключает отображение номеров кадров на шкале строки треков; о Show Selection Range (Показывать выделенный диапазон) — включает/выключает отображение под шкалой строки треков диапазона действия анимации, ограниченного выделенными ключами. Диапазон действия отображается в виде черной линии с белыми маркерами на концах (рис. 1.27), такой же, как в окне диалога Track View (Просмотр треков);
Рис. 1.27.
Фрагмент экрана 3ds max в режиме отображения выделенного диапазона действия анимации ! между ключами в кадрах 0 и 25
о
Show Sound Track (Показывать звуковую дорожку) — включает/выключает отображение звуковой дорожки между шкалой строки треков и строкой диапазонов действия, если для озвучивания анимации применяется звукозапись, как показано на рис. 1.28. Это особенно удобно при согласовании действия анимации с музыкальным сопровождением или при согласовании анимируемых движений губ персонажа с записью его речи;
Рис. 1.28.
Фрагмент экрана 3ds max в режиме отображения звуковой дорожки между строкой треков и строкой выделенных диапазонов действия анимации
о Snap to Frames (Привязка к кадрам) — включает/выключает режим привязки положений перемещаемых ключей анимации на временной шкале к моментам времени, соответствующим границам кадров анимации. Режим по умолчанию включен; если его выключить, то ключи можно размещать в произвольных точках шкалы времени; D Goto Time (Перейти к текущему времени) — заставляет ползунок таймера анимации переместиться к точке шкалы, соответствующей моменту времени выбранного ключа анимации.
Окно диалога Key Info и свитки командной панели Motion Окно диалога, содержащее сведения о свойствах ключа анимации, появляется на экране 3ds max при выборе любого из элементов списка ключей, содержащегося в верхней части контекстного меню. Вид окна существенно зависит от типа
53
Редактирование ключей анимации в строке треков
контроллера анимации, назначенного выбранному ключу. Различные варианты окна сведений о ключах анимации будут рассмотрены в разделе «Настройка параметров контроллеров и ограничителей анимации» главы 2. Это окно может быть представлено в простом и расширенном виде, как показано на рис. 1.29. Для перехода к расширенному представлению окна следует щелкнуть на кнопке Advanced (Расширенное) в правом верхнем углу окна, а для возврата к простому варианту — на кнопке Simple (Простое).
• тшт"
Рис. 1.29." Окно диалога Key Info содержит элементы управления для настройки параметров ключа и может быть представлено в простом (а) и развернутом (6) виде
Данное окно называют окном Key Info (Справка о ключах), хотя его заголовок образуется из названия объекта, которому принадлежит ключ анимации, и указанного через двоеточие типа контроллера анимации, например SphereOI: X Position (СфераСИ: Положение по X). Такое название окна связано с названиями двух свитков командной напели Motion (Движение), полностью аналогичных данному окну по составу параметров: Key I n f o (Basic) (Справка о ключах (Базовая)) и Key Info (Advanced) (Справка о ключах (Дополнительная)), которые будут рассмотрены в разделе «Настройка параметров контроллеров и ограничителей анимации» главы 2 при рассмотрении контроллера Bezier (Безье). Для редактирования свойств ключа анимации с помощью элементов управления окна диалога Key I n f o (Справка о ключах) выберите номер ключа анимации, используя две кнопки с черными стрелками в левом верхнем углу окна для перехода к следующему или предыдущему ключу. Номер текущего ключа отображается в текстовом поле справа от кнопок. Щелчок на кнопке со стрелкой, указывающей вправо, вызывает появление в окне диалога свойств следующего ключа анимации выбранного параметра объекта, а на кнопке со стрелкой, указывающей влево, — предыдущего ключа. Для изменения момента времени наступления (номера кадра) текущего ключа анимации используйте счетчик Time (Время). Меняя значение в этом счетчике, можно перемещать текущий ключ вместе с его параметрами вдоль трека анимации (из кадра в кадр). Если щелкнуть на кнопке с буквой L (Lock — Блокировать) справа от счетчика номера кадра, то выбранный ключ будет заблокирован в текущем кадре анимации, что исключает возможность ошибочного перемещения ключа но шкале времени. Контролируйте значения компонентов анимируемого параметра (например, координат положения, коэффициентов масштаба, силы блеска или иитенсивпостей
54
Глава 1. Анимация трехмерных сцен
RGB-компонентов цвета материала), соответствующих текущему кадру, в счетчиках, расположенных под счетчиком Time (Время). Например, для ключа преобразования положения объекта по какой-то из координатных осей это будет счетчик V a l u e (Значение). При необходимости измените значения параметров в этих счетчиках для настройки анимации. Две большие кнопки In (Вход) и Out (Выход) служат для выбора варианта сглаживания сегментов сплайна Безье, играющего роль графика изменения анимированного параметра, слева и справа от точки ключа анимации. Назначение и использование этих кнопок, а также параметров, содержащихся в расширенном варианте окна диалога Key I n f o (Справка о ключах), будет обсуждаться ниже, в разделе «Настройка параметров контроллеров и ограничителей анимации», при рассмотрении параметров контроллера Bezier (По Безье).
Окно диалога Track View Окно диалога Track View (Просмотр треков) является основным инструментом настройки анимаций и служит для редактирования параметров любых ключей анимации, имеющихся в сцене в пределах временного сегмента. Оно дает возможность назначать или менять контроллеры ключей анимации, управлять скоростью и характером изменения анимируемых параметров, положением существующих ключей на шкале времени, а также создавать, удалять, копировать, перемещать и вставлять ключи анимации. Кроме того, окно Track View (Просмотр треков) предоставляет полный перечень всех элементов сцены, позволяет добавлять к анимации звуковую дорожку, добавлять и редактировать комментарии, а также управлять видимостью объектов сцены. Это окно представлено в 3ds max в двух разновидностях: Track View — Curve Editor (Просмотр треков — Редактор кривых) и Track View — Dope Sheet (Просмотр треков — Диаграмма ключей). Обе разновидности окна Track View (Просмотр треков) могут свободно переключаться из режима редактирования кривых в режим диаграммы ключей, и наоборот, то есть являются полностью взаимозаменяемыми.
Открытие и удаление окон диалога Track View Для удобства настройки анимации различных объектов в одной сцепе может одновременно использоваться до 13 окон диалога Track View (Просмотр треков), сохраняемых вместе со сценой в файле типа *.тах. Управление окнами просмотра треков осуществляется с помощью кнопки Open Track View (Открыть окно просмотра треков) панели инструментов, а также команд меню Track View (Просмотр треков).
Открытие окна Track View Чтобы открыть первое окно просмотра треков в модификации редактора кривых, просто щелкните на кнопке Curve Editor (Open) (Редактор кривых (открыть)) главной панели инструментов 3ds max или выполните команду основного меню Graph Editors > Track View — Curve Editor (Графические
77
Окно диалога Track View
п Track View Utilities (Служебные программы) — кнопка, расположенная на самом правом краю панели инструментов. Вызывает одноименное окно диалога, позволяющее выбрать и использовать одну из служебных программ окна Track View (Просмотр треков), рассмотрение которых выходит за рамки данного издания.
Панели инструментов окна Track View — Dope Sheet Окно диалога Track View — Dope Sheet (Просмотр треков — Диаграмма ключей) по умолчанию имеет в верхней части четыре панели инструментов: Keys (Ключи), Time (Время), Display (Отображение) и Name (Имя). Кроме того, имеются еще две скрытые панели: Ranges (Диапазоны) и Extras (Границы). Панель инструментов Name (Имя) позволяет изменять имя окна диалога Track View — Dope Sheet (Просмотр треков — Диаграмма ключей). Остальные панели инструментов данного окна рассмотрим подробнее.
Панель инструментов Keys Все кнопки панели инструментов Keys (Ключи), показанной отдельно на рис. 1.45, за исключением двух, полностью аналогичны по назначению и использованию соответствующим кнопкам такой же напели инструментов окна диалога Track View — Curve Editor (Просмотр треков — Редактор кривых), рассмотренной в предыдущем разделе. Правка диапазонов действия
Фильтры
Масштабировать ключи
Правка ключей Переместить ключи | Добавить Сдвинуть ключи ключи
Рис. 1.45. Панель инструментов Keys окна диалога Track View — Dope Sheet
Дополнительными кнопками панели инструментов Keys (Ключи) окна диалога Track View — Dope Sheet (Просмотр треков — Диаграмма ключей) являются: П Edit Keys (Правка ключей) — переводит окно диалога Track View (Просмотр треков) в режим правки ключей, в котором можно редактировать численные значения или положения на шкале времени для отдельных ключей или их выделенных наборов; П Edit Ranges (Правка диапазонов действия) — переводит окно просмотра треков в режим правки диапазонов действия. В этом режиме выполняется быстрое перемещение или сдвиг целых групп ключей (отдельные ключи при этом не отображаются). Для перемещения диапазона действия ключей укажите курсором на линию диапазона, щелкните кнопкой мыши и перетаскивайте диапазон влево или вправо.
Панель инструментов Time Панель инструментов Time (Время) окна диалога Track View — Dope Sheet (Просмотр треков — Диаграмма ключей) содержит кнопки, которые обеспечивают
Глава 1. Анимация трехмерных сцен
78
возможности добавления, удаления, копирования, растяжения или сжатия временных интервалов, а также обращения хода времени. Выполняемые действия затрагивают все ключи, попадающие в пределы редактируемых интервалов. Для выделения интервала времени следует щелкнуть в какой-либо точке трека и перетащить курсор вдоль оси времени при нажатой кнопке инструмента Select Time (Выделить сегмент). Данная панель показана отдельно на рис. 1.46. Масштабировать сегмент Вставить время Обратить время Вырезать сегмент
Выделить • сегмент Удалить сегмент
„ - •-•-.*• л Копировать сегмент Вставить сегмент
Панель инструментов Time окна диалога Track View — Dope Sheet
Эта панель содержит следующие кнопки: П Select Time (Выделить сегмент) — позволяет выделить сегмент времени на текущем треке, щелкнув кнопкой мыши и перетаскивая курсор вдоль трека. Выделенный сегмент изображается в виде широкой желтой полосы; D Delete Time (Удалить сегмент) — удаляет выделенный временной сегмент и все связанные с ним ключи анимации; D Reverse Time (Обратить время) — изменяет порядок следования ключей выделенного временного сегмента на обратный; П Scale Time (Масштабировать сегмент) — позволяет выделить сегмент времени и изменить его масштаб в сторону уменьшения или увеличения. Изменение масштаба времени сказывается на поведении объектов, которое управляется ключами, принадлежащими масштабируемому сегменту; П Insert Time (Вставить время) — позволяет вставить интервал времени в текущий трек; П Cut Time (Вырезать сегмент) — вырезает выделенный временной сегмент трека и помещает его в буфер с тем, чтобы иметь возможность затем вставить вырезанный сегмент в другое место того же или другого трека. С текущего трека вырезанный сегмент и все принадлежащие ему ключи удаляются; П Copy Time (Копировать сегмент) — копирует выделенный интервал времени текущего трека в буфер, так что затем его можно вставить в другое место того же трека или в другой трек. В отличие от команды вырезания копируемый сегмент и его ключи не удаляются с текущего трека; D Paste Time (Вставить сегмент) — позволяет вставить вырезанные или скопированные в буфер временные сегменты трека в другой трек или в другое место того же самого трека.
Окно диалога Track View
79
Панель инструментов Display Панель инструментов Display (Отображение) показана отдельно на рис. 1.47. Привязка к кадру
Показать значки ключей
Модифицировать Ш выделение 1^*¥Н" *11ИШИИ дочерние ключи Модификация поддерева
Панель инструментов Display окна диалога Track View — Dope Sheet
Часть кнопок панели инструментов Display (Отображение) уже была рассмотрена в предыдущих разделах. Дополнительными кнопками являются: П Modify Subtree (Модификация поддерева) — позволяет модифицировать не только ключи, принадлежащие выделенным объектам или относящиеся к выделенным трекам, но и ключи всех связанных с ними элементов, расположенных на более низких уровнях дерева иерархии в левой части окна просмотра треков. Когда режим модификации поддеревьев включен (кнопка Modify Subtree (Модификация поддерева) нажата), на каждом из родительских треков отображаются, помимо собственных, еще и ключи анимации со всех дочерних треков. Наличие ключа на родительском треке означает, что в данном кадре имеется по крайней мере один ключ анимации на каком-то из дочерних треков. При выполнении какого-либо действия над ключами родительского трека это действие распространяется и на все дочерние ключи. Щелкните на кнопке M o d i f y Subtree (Модификация поддерева), выделите ключ анимации определенного элемента сцены и модифицируйте (например, переместите) его. При этом переместятся присутствующие в данном кадре ключи всех объектов и параметров, являющихся дочерними по отношению к модифицируемому элементу. Если в сцене имеются материалы с анимацией (трек Scene Materials), использованы эффекты видеомонтажа (трек Video Post) или окружающей среды (трек Environment), то для синхронной модификации их ключей следует выделить соответствующий нужному кадру ключ на треке World (Корневой элемент) и модифицировать его; П Modify Child Keys (Модифицировать дочерние ключи) — включает или выключает режим распространения правок ключей и временных диапазонов родительских объектов вниз по дереву иерархии на дочерние объекты.
Панели инструментов Ranges и Extras Панели инструментов Ranges (Диапазоны) и Extras (Границы) показаны отдельно на рис. 1.48. Помимо уже описанной кнопки Edit Ranges (Правка диапазонов действия) панель Ranges (Диапазоны) содержит следующие кнопки: D Position Ranges (Размещение диапазонов действия) — переключает окно Track View — Dope Sheet (Просмотр треков — Диаграмма ключей) в режим размещения диапазонов действия. В этом режиме производится редактирование диапазонов, не затрагивающее связанные с ними ключи;
Глава 1. Анимация трехмерных сцен
80 Правка диапазонов действия •
Размещение диапазонов действия
Обновить диапазоны
Исключить первый ключ
Исключить последний ключ
ИЮНИ!
Панели инструментов Ranges и Extras окна диалога Track View — Dope Sheet
О Recouple Ranges (Обновить диапазоны) — выравнивает начало и конец диапазона действия по первому и последнему ключам текущего трека. Используется для быстрого выравнивания диапазона действия ключей после их независимого редактирования. Выделите один или несколько элементов иерархического списка, диапазоны действия ключей которых должны быть выровнены. Щелкните на кнопке Recouple Ranges (Обновить диапазоны). Диапазоны действия смещаются так, чтобы их начала и концы совместились с первым и последним ключами на треках, к которым относятся диапазоны. Панель Extras (Границы) содержит всего две кнопки: П Exclude Left End Point (Исключить первый ключ) — при копировании сегмента в буфер обмена может потребоваться запретить копирование начального ключа сегмента. Щелкните на данной кнопке и копируйте сегмент, при этом ключ на левом конце сегмента не будет скопирован; D Exclude Right End Point (Исключить последний ключ) — действует аналогично предыдущей кнопке, но при копировании исключается правый f (последний) ключ сегмента.
Создание анимации с помощью окна диалога Track View (Просмотр треков) Для создания анимации, основанной на ключах, не обязательно включать режим автоматической или принудительной анимации с помощью кнопок Auto Key (Автоключ) или Set Key (Задать ключ) и выполнять преобразования объектов в окнах проекций. Назначить ключи анимации нужным параметрам объектов и других элементов сцены можно непосредственно в окне диалога Track View (Просмотр треков). Для создания базовой анимации с помощью окна диалога Track View (Просмотр треков) выполните следующие действия: 1. Создайте новую или загрузите готовую сцену, требующую анимации. Определите и задайте частоту кадров и число кадров анимации, исходя из ее требуемой продолжительности, используя окно диалога Time Configuration (Настройка временных интервалов). 2. Раскройте любую из модификаций окна диалога Track View (Просмотр треков) и разверните дерево иерархии. Так как сцена не имеет анимации, в окне ключей анимации будут обозначены только статические значения параметров объектов и других элементов сцены.
Присоединение готовых треков анимации
81
3. Щелкните на кнопке Add Keys (Добавить ключи), а затем создайте ключи на треке того параметра, который требует анимации, щелкая кнопкой мыши в точках временной шкалы, соответствующих номерам ключевых кадров. Например, выполняя простейшую анимацию перемещения объекта вдоль оси X продолжительностью 100 кадров, может оказаться достаточно установить два ключа на треке преобразования X Position (Положение по X) в кадрах 0 и 100. 4. Щелкните на любом ключе анимации правой кнопкой мыши, чтобы вызвать окно диалога Key Info (Справка о ключах), и настройте параметры контроллера преобразования, как будет пояснено в главе 2 «Контроллеры и ограничители анимации». Например, если речь идет о преобразовании положения, задайте значения координат положения объекта на момент данного ключевого кадра в счетчиках X, Y и Z. Следите за тем, как при вводе ключевых значений будет происходить перемещение объекта в окнах проекций, если номер текущего кадра соответствует номеру кадра настраиваемого ключа. 5. Повторите действия, описанные в пунктах 3 и 4, применительно к другим объектам или параметрам элементов сцены. Используйте инструменты окна Track View (Просмотр треков) для перемещения, копирования, вставки или масштабирования ключей анимации или сегментов треков. Просмотрите анимацию в окне проекции или создайте ее эскиз, как было описано выше. Дальнейшая настройка базовой анимации может потребовать замены контроллеров анимации, назначенных тем или иным анимируемым параметрам по умолчанию.
Присоединение готовых треков анимации 3ds max позволяет передавать готовую настроенную анимацию от одних объектов другим. Такая операция называется присоединением анимации (merging animation). Анимированные объекты, у которых заимствуется анимация, называются объектами-источниками (source objects). Объекты-источники присоединяемой анимации могут находиться в другом файле сцены 3ds max или в составе этой же сцены. Объекты, которым передается готовая анимация, называются текущими объектами (current objects). Необходимым условием удачного присоединения является наличие у текущего объекта тех параметров, которые анимированы у объекта-источника. Операция присоединения очень часто используется для передачи анимации между сложными иерархическими структурами связанных объектов, какими являются компьютерные персонажи. Элементы иерархической структуры объекта-источника называются узлами-источниками (source nodes), а элементы иерархической структуры текущего анимируемого объекта — текущими узлами * «^ м F u д н м V (current nodes). Инструмент присоединения оснащен средствами автоматического определения аналогичных элемеи- Ре(:Кйе ,. "'ТУ! •• В;:ШШННв11И11 тов структуры объекта-источника и те- у связанных объектов:»;;:;::;:;;,:& Щ кущего объекта.
82
Глава 1. Анимация трехмерных сцен
Основным средством настройки процесса присоединения является окно диалога Merge Animation (Присоединение анимации).
Использование окна Merge Animation Для присоединения анимации выберите команду меню File > Merge Animation (Файл > Присоединить анимацию). Появится окно диалога Merge A n i m a t i o n (Присоединение анимации), показанное на рис. 1.49. I- IIDICXI
Merge Animation
:
щ;
-,
Cunei
.^ll^i
FDirectOI'.'". Lampp2-ppwa LampCC-ShatnirOI Lamp02-Richag01 Lamp02-Shamir02 Lampb2-Richag02 Lamp02-Sharra03 Lampp2-Richag03^ Lamp02-Fspot01 Lamp02-Kolpak Lamp02-0mnip1 Lamp02-Larnpochka Lampp2-yikl koipus Lamp02VikT knopka
Рис. 1.49. Окно диалога Merge Animation
Окно состоит из верхней части, имеющей разделы Source Objects (Объекты-источники), Source Time Range (Диапазон времени источника) и Apply To (Применить к), и нижней части, представленной свитком Object Mapping (Соответствие объектов). В правой половине нижней части окна в разделе Current Nodes (Текущие узлы) перечисляются все объекты текущей сцены, которые могут служить приемниками анимации.
Присоединение готовых треков анимации
83
Чтобы присоединить анимацию, необходимо выполнить следующие действия: а выбрать источник присоединяемой анимации, используя средства из раздела Source Objects (Объекты-источники) в верхней части окна Animation (Присоединение анимации); П выбрать способ присоединения анимации, используя средства управления из раздела Source Time Range (Диапазон времени источника); П указать, к каким именно параметрам объектов текущей сцены должна применяться присоединяемая анимация, используя элементы управления раздела Apply To (Применить к); D установить соответствие объектов-источников и текущих объектов с помощью средств свитка Object Mapping (Соответствие объектов) в нижней части окна; D выполнить операцию присоединения.
Выбор источника: присоединение анимации из другого файла Если требуется присоединить анимацию из файла другой сцепы 3ds max, щелкните на кнопке Source File (Файл-источник) в разделе Source Objects (Объекты-источники). В появившемся окне Source File (Файл-источник) укажите нужный тин файла: D 3ds max Animation (*.anm) — файлы анимаций персонажных сборок 3ds max; D 3ds max (*.max) — файлы сцен 3ds max; D xml scene (*.xml) — файлы анимаций персонажных сборок, сохраненные в текстовом формате. Выделите нужный файл в списке и щелкните на кнопке Open (Открыть). Все объекты сцены-источника анимации появятся в списке Source Nodes (Узлы-источники) в левой части свитка Object Mapping (Соответствие объектов), как показано на рис. 1.50. Объекты, имеющие ключи анимации, выделяются красным цветом. Объекты, анимированные с использованием процедурных контроллеров, выделяются зеленым цветом.
Выбор источника: присоединение анимации от объектов этой же сцены Чтобы присоединить анимацию от какого-то объекта или иерархической структуры объектов текущей сцены, щелкните на кнопке Source Object (Объект-источник). В результате появится типовое окно Select Objects (Выделение объектов). Выделите имена объектов-источников в списке окна и щелкните на кнопке Select (Выделить). Выбранные объекты появятся в списке Source Nodes (Узлы-источники) в левой части свитка Object Mapping (Соответствие объектов). Объекты, имеющие ключи анимации, выделяются красным цветом. Объекты, анимированные с использованием процедурных контроллеров, выделяются зеленым цветом.
84
Глава 1. Анимация трехмерных сцен
0ШЗ
ij-J Merge Animation
•рящяннвнннн^ин нн в Н^НШННВЕШ^ИЙН i ! •• иш! и ™
1И
:
:
*йШ " '
:
:
:
;
Source Nodes Щ : . :: ' ' : > Ц
llll Current Nodes • : :
:::
• •К
г
Osnovanie V. . '.•:.•'•, :.)f^fj " ' ;*•: •'.-': .-arts ;Ш|Й1| BUI FDirec(01 i FDireclO! LampOI-Opora ^H Lamp02-0poia Lamp01-Sharnir01 iXB Lamp02-Shamir01 Lampai-HichitgOl i Lamp02-Richag01 Lamp01-Shainir02 Lamp02-Shamir02 LampO! -Richag02 Lamp02-Richag02 LampCII-SharnhOa Lamp02-Shamir03 Lamp01-Richag03 Lamp02-Richag03 LampO! -FspotOI Lamp02-Fspot01 Lampd-Kolpak Lamp02-Kolpak 1 1 LampQ1-Omni01 ;|Ц Lamp02-0mni01 LampOI-Lampochka • Lamp02-Lampochka ; LampOI-Vikl korpus Lamp02-Vikl koipus Lamp01-VikT_knopka LampCGVikl knopka i
рщ|
: Я
j):J!lndent[1
jj-.t
Т
I
:
:V,%,-'' ^:: Ш,;" И 1(11
• 1 1 1 1 1 1 1
Bi •
I
:;:.:::; ;: in ...:.....
Ц 1
11 ill 11
L£aii
Рис. 1;50.:: Окно диалога Merge Animation после загрузки объектов из файла-источника присоединяемой анимации
Выбор способа присоединения анимации Выберите способ присоединения анимации, установив переключатель в разделе Source Time Range (Диапазон времени источника) в одно из двух положений: П Replace Animation (Заменить анимацию) — режим полной замены анимации текущих объектов на анимацию объектов-источников; п Paste to Existing Animation (Вставить в существующую анимацию) — режим вставки заданного временного интервала анимации объектов-источников в заданную точку диапазона анимации текущих объектов. При установке этого переключателя становятся доступными средства настройки временных параметров присоединяемой анимации: о Match Source File Time (По интервалу времени источника) — интервал времени присоединяемой анимации устанавливается равным активному временному сегменту файла-источника анимации;
Присоединение готовых треков анимации
85
о Start Time (Время начала), End Time (Время окончания) — счетчики, позволяющие задать номера кадров начала и конца диапазона времени присоединяемой анимации; о Insert Animation to Frame (Вставить анимацию с кадра) — задает номер кадра, начиная с которого в текущую сцену будет вставлен диапазон анимации объекта-источника. Если в этом кадре текущей сцены уже имеется ключ анимации, то он будет удален; о Relative (Относительный) — величина вставляемого параметра анимации отсчитывается относительно величины параметра анимации объекта-приемника в точке вставки; о Absolute (Абсолютный) — вставка параметра анимации производится без изменения его абсолютной величины.
Выбор параметров анимации текущих объектов С помощью флажков группы Apply To (Применить к) укажите, к каким трекам текущих объектов будет присоединяться анимация: П Transform (Преобразование) — анимация будет применена к трекам преобразования, которое дополнительно выбирается с помощью флажков Position (Положение), Rotation (Поворот), Scale (Масштаб); П IK (Обратная кинематика) — анимация будет применена к трекам контроллеров обратной кинематики, описываемых в главе 3 «Анимация связанных объектов»; П Modifiers (Модификаторы) — будет присоединена анимация модификаторов, однако для этого текущие объекты должны иметь в стеке те же модификаторы, что у объектов-источников; П Custom Attributes (Специальные атрибуты) — будет присоединена анимация специальных атрибутов, добавленных пользователем. Порядок создания специальных атрибутов описывается в главе 3 «Анимация связанных объектов». Если у текущих объектов отсутствуют специальные атрибуты, имеющиеся у объектов-источников, то установка флажка Add New Defs (Добавить новые определения) обеспечит при необходимости создание таких атрибутов; П Base Objects (Базовые свойства объектов) — будет присоединена анимация характеристических параметров объектов, таких как радиус или высота; П Materials/Maps (Материалы/Карты текстур) — будет присоединена анимация параметров материалов и текстурных карт; П Visibility Tracks (Треки видимости) — будет присоединена анимация на треках свойства видимости объектов.
Установление соответствий объектов Установление однозначных соответствий объектов-источников и текущих объектов, которым будут назначены треки присоединяемой анимации, производится в свитке Object Mapping (Соответствие объектов). Чтобы упростить выбор объектов-
Глава 1. Анимация трехмерных сцен
86
источников анимации, можно установить флажок Show Animated Only (Показывать только анимированные) в нижней части свитка. В итоге в столбце Source Nodes (Узлы-источники) останутся только объекты-источники, имеющие анимацию. Установить соответствия можно двумя способами. Первый способ состоит в том, чтобы вручную с помощью мыши перетащить копии имен объектов-источников анимации из столбца Source Nodes (Узлы-источники) в столбец Merge Nodes (Присоединяемые узлы), расположив их точно напротив перечисленных в столбце Current Nodes (Текущие узлы) имен текущих объектов, которым требуется присоединить треки анимации (рис. 1.51).
Qsnovanie FDirectOfl LampOl-Ореха LampOi-Shinirbl LampOl FlichagO I Lamp01-Shainir02 LampOl-Hichdg02 Latnp01-Shainirp3 LampQ1-Richag03 LampOl-Fspptqi Lamppl-Kplpak Lamppl -bmnipl Lamppl-Larnpochka LampOI-Viki korpus Lampbi-Vikl knopka
Osnoyanie FDitectOi Lampp2-ppqra Lamp02-SharnirOi Lamp02-Richag01 Lamp02-Sharnir02 Lamp02-Richag02 LampQ2-Shamir03 Lampp2-Fspotp1 Lampp2-Kolpak ..... Lampp2-0mnip1 Lampp2-Lampochka Lamp02-Vikl korpus LamppiVikl knopka
LampOl-RichagOl LampOl-Shamir02 Lamp01-Richag02 Lamp01-Shamii03 LampPlflichagD3
Рис. 1,51; Справа от имен текущих объектов, перечисленных в столбце Current Nodes, в столбце Merge Nodes методом перетаскивания вручную расположены имена объектов-источников анимации
Второй способ состоит в автоматическом поиске соответствующих объектов. Программа считает соответствующими объекты с одинаковыми именами. Часто имена соответствующих объектов-источников и текущих объектов отличаются только префиксами. Это характерно для трехмерных персонажей, элементы структуры тел которых именуются одинаково, скажем, Golova, Sheia, Lev_ruka, Prav_ruka и т. п., с добавлением префикса но имени персонажа, например Maxik-Golova, Maxik-Sheia, Maxik-Lev_ruka и т. п. В примере, показанном ранее на рис. 1.50, среди объектов-источников и текущих объектов также имеются объекты, имена которых отличаются только префиксами LampOl- и Lamp02-. Это объекты из состава иерархических цепочек, образующих модели двух настольных ламп. Чтобы программа 3ds max могла автоматически установить соответствие между объектами, имеющими одинаковые имена, по разные префиксы, можно воспользоваться масками имен.
87
Присоединение готовых треков анимации
Введите в текстовое поле Source Objects (Объекты-источники) маску префикса имен объектов-источников, например LampOl-*, а в текстовое ноле списка Current Objects (Текущие объекты) — маску префикса имени текущих объектов, например LampOl-*. Щелкните на кнопке справа от обоих текстовых полей i для обновления списков объектов. В списках Source Nodes (Узлы-источни- 1 ки) и Current Nodes (Текущие узлы) останутся только имела объектов, начинающиеся на указанные префиксы. Для автоматического установления соответствия щелкните на кнопке со цщ всплывающей подсказкой Auto Name Mapping (Автоматическое соответствие имен), расположенной между списками свитка Object Mapping (Соответствие объектов). В список Merge Nodes (Присоединяемые узлы) будут автоматически помещены имена объектов, которые отличаются только указанными префиксами, как показано на рис. 1.52.
;Lannp01-Opora::; . .: LampOl -Shamird Lampul-RichagOl LampUl -Shamiip? LampOl -Richag02 l.ampp1-SharniiG3 LampOl-Richagp3 LampOl •FspplOi LampOl . Lamppi-pmnjpl LampOl -Lampochka LampOl-Vikl korpus Lamp01-Vikl_knopka
Lamp02-Ppora -.?,.'• Lamp02-Sharnir01 Lamp02-Richagp1 Lampp2-Shamifp2 Lampp2-Richagp2 Lampp2-Sharnir03 Lampp2-Richag03 Lampp2-Fsppipi ... . Lamp02:Kplpak " Larnp62-OmnSl Lamp02-Lampochka Lamp02-Vikl kotpus Lamp02-VikT knopka
Leitip01-0pota Lamppl-Shaini'pi LampOl -RjchagOl LampOl -Richag02 Lamp01-Shamir03 Lamp01-Richag03 Lamppi-Fspptpl LampOl -kolpak LampOl Omni'OI LampOl -Lampochka LampOl -Vikl_korpus LampOl -yikfknopka
Рис. 1.52. Справа от имен текущих объектов, перечисленных в столбце Current, в столбце Merge Nodes автоматически расположены имена объектов-источников анимации, отличающиеся только префиксом
Если требуется отказаться от присоединения анимации некоторых объектовисточников, имена которых автоматически перенеслись в столбец Merge Nodes (Присоединяемые узлы), выделите имена таких объектов в этом столбце щш и щелкните на кнопке со всплывающей подсказкой Clear Selected (Очистить выделенные), расположенной между списками свитка Object Mapping (Соответствие объектов). Кнопки со стрелками позволяют перемещать имена выделенных объектов вверх и вниз по списку для точной подгонки соответствия.
88
Глава 1. Анимация трехмерных сцен
Выполнение процедуры присоединения анимации После того как указаны нужные значения параметров и установлены соответствия объектов-источников и текущих объектов, щелкните на кнопке Merge Animation (Присоединить анимацию). При удачном завершении операции появится сообщение Merge Completed (Присоединение выполнено). Щелкните в окне сообщения на кнопке ОК. Имена текущих объектов, которым назначена присоединенная анимация, также окрасятся красным или зеленым цветом в списке Current Nodes (Текущие узлы). Кнопка Save Mapping (Сохранить соответствие) позволяет запомнить настроенное соответствие объектов-источников и текущих объектов в файле формата *.mam. В последующем можно будет загрузить параметры такого соответствия, используя кнопку Load Mapping (Загрузить соответствие).
ГЛАВА
КОНТООЛ Л
еПК1
и ограничители анимации
2
В этой главе 6 Д Т У У Рассмотрены следующие вопросы:
Каждый раз, когда создается ключ анимации ^•'.•'•"^РЧдЬ£:нЫйаченйя "й'замен'ы подвергаемому анимации параметру объекта автоматически назначается тот или иной тип :;|!:йастройЙ параметров , контроллера. Чтобы эффективно использовать троллероб'анишции рг возможности этих контроллеров, необходимо Г s"^SMSett " знать назначение каждого из них и уметь при I необходимости заменять контроллеры и на1 страивать их свойства.
90
Глава 2. Контроллеры и ограничители анимации
Общие сведения о контроллерах анимации Существует ряд признаков, по которым возможна классификация контроллеров. Так, с точки зрения хранения и расчета анимируемых параметров различают две категории контроллеров анимации: D контроллеры, основанные на ключах анимации — хранят данные об анимируемых параметрах в виде ключей анимации, то есть значений параметра в фиксированные моменты времени. Все промежуточные значения изменяемого параметра рассчитываются на основе ключевых значений и метода интерполяции, реализуемого контроллером. Различные типы контроллеров, основанных на ключах, по-разному интерполируют данные в интервалах между ключевыми моментами времени; О
процедурные контроллеры не хранят ключевых значений анимируемых параметров, а рассчитывают выходные значения параметров на основе начальных значений, введенных пользователем, и функциональной зависимости, реализуемой контроллером.
С точки зрения количества управляемых параметров различают контроллеры однопараметрические (single-parameter) и составные (compound). Однопараметрические контроллеры управляют единственным параметром, например масштабом объекта, его положением по какой-то оси координат или цветом. Это, скажем, контроллеры типа Bezier (Безье), ТСВ (Натяжение/Непрерывность/Смещение), Linear (Линейный) или Noise (Неоднородности). Составные контроллеры объединяют действие нескольких одиопараметрических контроллеров. К ним относятся такие контроллеры, как, например, Transform (Преобразование), Position XYZ (Положение по XYZ), Euler XYZ (XYZ по Эйлеру), Scale XYZ (XYZ-масштаб) или List (Список). По предназначению контроллеры делят па общего назначения (general-purpose) и специализированные (special-purpose). Контроллеры общего назначения, подобные тем же Bezier (Безье), ТСВ (Натяжение/Непрерывность/Смещение) или Linear (Линейный), могут применяться для управления самыми разными параметрами. Специализированные контроллеры создаются для управления анимацией при решении определенных задач. Например, специализированный контроллер Motion Capture (Захват движения) применяется для управления анимацией движений объекта, задаваемых за счет перемещения мыши. В зависимости от типа управляемого параметра контроллеры подразделяются па шесть разновидностей: D Float (С плавающей точкой) — контроллеры общего назначения, оперирующие величинами с плавающей точкой; П Points (Трехкомпонентный) — контроллеры общего назначения, оперирующие трехкомпопентными векторными параметрами, такими как координаты точки или цвет модели RGB;
Общие сведения о контроллерах анимации
91
П Position (Положение) — контроллеры преобразования положения; П Rotation (Поворот) — контроллеры преобразования поворота; D Scale (Масштаб) — контроллеры преобразования масштаба; П Transform (Преобразование) — контроллеры управления всеми тремя преобразованиями: положением, поворотом и масштабом. 3ds max поддерживает более 25 контроллеров различных типов. Контроллер одного типа может иметь несколько разновидностей — например, контроллер типа Bezier (Безье) может иметь разновидности Bezier Float (Безье с плавающей точкой), Bezier Points (Трехкомпонентный Безье), Bezier Position (Положение Безье) и т. п. Каждый контроллер имеет свой набор характеристик, которые можно регулировать, влияя тем самым на характер изменения параметров элементов сцены. Кроме того, в 3ds max реализовано 7 типов специализированных контроллеров, называемых ограничителями (constraints). Ограничители применяются для автоматизации управления анимацией преобразований перемещения, поворота или масштаба одних объектов, называемых ведомыми, за счет других, ведущих объектов. Типичными примерами использования ограничителей являются анимации перемещений объекта вдоль траектории, заданной сплайном, или по поверхности другого объекта, удержание ориентации заданной оси ведомого объекта в направлении ведущего и т. п. При этом ведущие объекты могут сами иметь анимацию. Единственным элементом интерфейса 3ds max, позволяющим видеть список сразу всех контроллеров во всех их разновидностях, перечисленных ранее, является окно диалога Filters (Фильтры), показанное ранее на рис. 1.37 главы 1. Как уже говорилось, это окно вызывается щелчком на кнопке Filters (Фильтры), крайней левой кнопке панели инструментов окна диалога Track View — Curve Editor (Просмотр треков — Редактор кривых), и служит для настройки состава информации, отображаемой в окне просмотра треков. Список контроллеров находится в средней части окна диалога Filters (Фильтры).
Включение режима отображения текущих контроллеров Чтобы иметь возможность видеть в окне Track View (Просмотр треков), какие контроллеры назначены в данный момент тому или иному анимированному параметру, необходимо выполнить следующие действия: 1. Выделите анимированный объект и раскройте окно диалога Track View (Просмотр треков) в любой его разновидности. Щелкните на кнопке Filters (Фильтры), расположенной на панели инструментов Keys (Ключи) этого окна. 2. В появившемся окне диалога Filters (Фильтры), показанном в главе 1 на рис. 1.37, установите флажок Controller Types (Типы контроллеров) в разделе Show (Показывать) и щелкните на кнопке ОК. После этого в левой части окна просмотра треков, содержащей дерево иерархии объектов сцены, справа от имен параметров, имеющих анимацию, будут через
92
Глава 2. Контроллеры и ограничители анимации
двоеточие указываться наименования текущих контроллеров анимации, как показано на рис. 2.1. Например, треку Transform (Преобразование) объекта-сферы назначен контроллер Position/Rotation/Scale (Положение/Поворот/Масштаб), треку Position (Положение) — контроллер Position XYZ (Положение по XYZ), а параметрам X Position (Положение по X), Y Position (Положение по Y) и Z Position (Положение по Z), а также параметру Specular Level (Сила блеска) материала Pozolota назначены применяемые по умолчанию контроллеры Bezier Float (Безье с плавающей точкой). Щ Track View Curve Editor Modes Settings Display Controls' Tracks ЦЦ] Curvet Ultra
m
>pQzota«: «||\Й«В з|1|3.
Рис; 2.1. В левой части окна просмотра треков указываются имена контроллеров, управляющих анимацией ряда параметров
Программа 3ds max позволяет включать и выключать режим отображения текущих контроллеров и более простым способом. Если щелкнуть правой кнопкой мыши на кнопке Filters (Фильтры) панели инструментов окна просмотра треков, то появится контекстное меню, показанное в главе 1 на рис. 1.38. В этом меню достаточно выбрать команду Controller Types (Типы контроллеров). Обратите внимание также на команду Animated Tracks Only (Только треки с анимацией) в самом верху меню. Выбор этой команды обеспечивает отображение в окне просмотСОВЕТ ра только треков, имеющих анимацию. Как можно видеть на рис. 2.1, все ветви параметров дерева иерархии, имеющие контроллеры анимации, снабжаются значками прямоугольной формы с символическим изображением типа контроллера.
)j
ров,
Возможные причины замены контроллеров Каждому параметру или преобразованию по умолчанию присваивается оптимальный для него тип контроллера. Однако контроллеры анимации часто изменяют для того, чтобы изменить способ управления объектом при анимации. Например, при анимации перемещения объекта его параметрам X/Y/Z Position (Положение по X/Y/Z) по умолчанию назначаются контроллеры одного типа —
Общие сведения о контроллерах анимации
93
Bezier Float (Безье с плавающей точкой). Этот контроллер обеспечивает гладкое, плавное перемещение объекта через Ключевые точки, заданные в трехмерном пространстве. Предположим, однако, что нужно выполнить анимацию мяча, многократно подскакивающего при падении на иол. В этом случае оказывается удобным изменить принятый по умолчанию тип контроллера на Float Expression (Алгоритмическое выражение с плавающей точкой) и задать формулу изменения вертикальной координаты мяча во времени в виде обычной или затухающей синусоидальной зависимости. Для придания большей реалистичности движению объекта иногда требуется применить имитацию случайных отклонений от чересчур гладкой траектории перемещения. Например, это бывает нужно при анимации движения автомобиля по неровной дороге или при анимации движения съемочной камеры, которую по сценарию держит в руках оператор. В этом случае используется контроллер анимации Noise (Неоднородности), который можно объединить с контроллером Bezier Float (Безье с плавающей точкой) с помощью еще одного контроллера — List (Список). Контроллер Waveform (Цикл) позволяет моделировать регулярные периодические движения объектов. Комбинируя с помощью этого контроллера колебания различной формы, можно моделировать сложные периодические движения механических устройств. С помощью контроллера Block (Блок) группы анимационных ключей можно объединять в блоки, которые затем легко заставить повторно исполняться при воспроизведении анимации, и т. д. Универсальным средством назначения и замены контроллеров и ограничителей анимации является окно диалога Track View (Просмотр треков) в любой из его модификаций. Кроме того, заменять контроллеры и ограничители таких треков анимации, как Transform (Преобразование), Position (Положение), Rotation (Поворот) и Scale (Масштаб), можно также при помощи командной панели Motion (Движение) и меню Animation (Анимация).
Назначение и замена контроллеров в окне Track View Для назначения контроллеров и ограничителей в окне диалога Track View (Просмотр треков) выполните следующие действия: 1. Выделите в любой из модификаций окна просмотра треков, например Track View — Curve Editor (Просмотр треков — Редактор кривых), трек какого-либо преобразования или параметра, помеченного в окне дерева иерархии слева от имени элемента прямоугольным значком, напоминающим страничку скоросшивателя. Параметры и преобразования, помеченные данным значком, допускают назначение контроллеров анимации. Щелкните на имени выделенного элемента правой кнопкой мыши. В появившемся меню, показанном ранее на рис. 1.33, выберите команду Assign Controller (Назначить контроллер). С той же целью можно после выделения имени элемента на дереве иерархии выполнить команду меню окна просмотра треков Controller > Assign (Контроллер > Назначить).
94
Глава 2. Контроллеры и ограничители анимации
2. Появится окно диалога, название которого меняется в зависимости от имени выбранного трека. Например, если выбран трек преобразования Position (Положение), то окно диалога будет называться Assign Position Controller (Назначение контроллера положения), как показано на рис. 2.2. В этом окне приводится перечень всех контроллеров и ограничителей, которые могут быть назначены выделенному треку. Угловой стрелкой помечается имя контроллера, принятого по умолчанию для анимации параметров данного тина. В данном случае это контроллер Position XYZ (Положение по XYZ).
оЙоШр Slave Position Constraining" Pdsitipn;ExpreSSicrilll I Position Motion Captwp
PbatiorVfleactoi PosWSfcripti'
5«шев Окно диалога Assign Position Controller
3. Выделите имя нужного контроллера или ограничителя и щелкните на кнопке ОК. Если при выборе нового варианта произойдет переход от контроллера, основанного на ключах, к процедурному контроллеру или от одного проч д м F ч А н l/i F цедурного контроллера к другому, то вся ранее настроенная анимация данного трека будет утрачена. Если же выполняется переключение от ;гут снабжаться i и;|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 ведомого объе^а будет выровнена вдоль эрмали к поверхности ведущего объекта. Если после щелчка не отпускать снопку мыши, а перетаскивать курсор, то ведомый объект будет перемещаться вслед за курсором по поверхности ведущего объекта. Опорная точка ведомого объекта будет прикреплена к поверхности ведущего в точке где вы
РагатТ Г"^ ""^ В ^^ ^'^ <Положе"ие) свитка Attachment Parameters (Параметры прикрепления) отобразятся помер грани ведущего объекта в счетчике Face (Грань) и координаты А, В точки прикрепления в пределах этой грани. Положение точки прикрепления ведомого объекта в пределах треугольной грани ведущего объекта отмечается красным крестиком на схеме под счетчиками А и В. Для выключения режима размещения объекта еще раз щелкните па кнопке Set Position (Задать положение). Для размещения объекта можно также указать номер нужной грани в счетчике Face (Грань)
Ш1М
:
n il • ns
^Ж^ШШЖ^-
'Gill Щ1111 гЩр! r^lfl! + +
Рис. 2.8. Свиток Attachment Parameters
3. При необходимости можете выполнить анимацию положения ведомого объекта на поверхности ведущего. Для этого переместите ползунок таймера аниации к отметке другого кадра, вновь щелкните на кнопке Set Position (Задать
102
Глава 2. Контроллеры и ограничители анимации
положение) и укажите новое место на поверхности для размещения ведомого объекта. Щелкните на кнопке Yes (Да) в ответ на появившийся запрос Are you sure you want to animate the position of the object? (Действительно хотите анимировать положение объекта?). Следует, однако, учитывать, что управляемый контроллером ведомый объект при анимации не будет следовать изгибам поверхности в промежутке между ключами положения, а будет перемещаться из одной ключевой точки в другую по кратчайшей траектории, как показано на рис. 2.9. Чтобы объект корректно перемещался по поверхности ведущего, используйте ограничитель Surface (Поверхность).
Траектория между двумя ключами положения, созданными контроллером Attachment, представляет собой прямую линию
4. Для интерполяции скорости перемещения ведомого объекта в интервале между ключевыми кадрами настройте параметры из раздела ТСВ (Натяжение/Непрерывность/Смещение). Справочные сведения об этих параметрах приведены далее в подразделе «ТСВ».
3АМЕЧАНИЕ •'Чтобы мметь, \ вр1мо:>кнрсть;:ййдЩЩ|Щ| рию
ti
Trajectories.: командной ;
i Щ
Audio Контроллер Audio (Аудио) позволяет выполнить анимацию практически любого параметра 3ds max, преобразуя амплитуду звукового колебания в значения анимируемого параметра и заставляя его изменяться в такт звуку. Этот контроллер может применяться к параметрам, представленным величинами с плавающей точкой, к преобразованиям и к трехкомпоиентиым векторным величинам, таким как RGB-компоненты цвета. Например, с помощью данного контроллера можно заставить масштаб объекта изменяться в такт аккордам заданной мелодии. Чтобы получить доступ к параметрам контроллера, щелкните правой кнопкой мыши на треке параметра, управляемого этим контроллером, в окне диалога Track View (Просмотр треков). Появится окно диалога Audio Controller (Аудиоконтроллер), показанное на рис. 2.10.
Настройка параметров контроллеров и ограничителей анимации
103
Рис. 2.10. Окно диалога Audio Controller
Настройка параметров контроллера Audio Для настройки параметров контроллера выполните следующие действия: 1. Для выбора источника звуковых колебаний щелкните на кнопке Choose Sound (Выбрать звук) и выберите звуковой файл формата avi или wav в стандартном окне просмотра файлов. Для отмены источника звука, назначенного контроллеру, щелкните на кнопке Remove Sound (Удалить звук). 2.
Управляющие значения, формируемые контроллером, представляют собой результат деления текущей амплитуды звука на максимальную амплитуду. Сбросьте флажок Absolute value (Абсолютное значение), чтобы в качестве максимальной амплитуды использовалось максимальное возможное значение (для 8-битовых записей звука максимальная возможная амплитуда составляет 128, а для 16-битовых — 32 768). Если данный флажок установлен, в качестве максимальной амплитуды будет использовано наибольшее значение из текущего звукового файла, что увеличивает нормированные выходные значения.
3. Если необходимо использовать «живой» звук, поступающий с внешнего устройства, установите флажок Enable Real-Time Device (Использовать источник реального звука) и выберите тип устройства в раскрывающемся списке раздела Real Time Control (Управление реальным звуком). 4. Настройте параметры фильтрации шумов звука в разделе Sample (Выборка): о Threshold (Порог) — задает уровень отсечки звуковых колебаний снизу для удаления шумов. Все значения ниже порогового обнуляются. При значении, равном 0, порог не оказывает влияния на звук, а при значении, равном 1, все отсчеты звукового колебания обнуляются; о Oversampling (Усреднение) — позволяет сгладить форму звукового колебания, усредняя соседние отсчеты, число которых задается в счетчике;
104
Глава 2. Контроллеры и ограничители анимации
о
Fast TrackView (Быстрый показ в окне Просмотра треков) — установка этого флажка позволяет оперативно наблюдать результаты усреднения в окне Track View (Просмотр треков).
5. Определите минимальные и максимальные значения, выдаваемые контроллером, используя две группы счетчиков X, Y и Z. Счетчики группы Base Scale (Опорный масштаб) задают величины возвращаемых значений при амплитуде звука, равной 0, а счетчики группы Target Scale (Предельный масштаб) — при максимальной амплитуде звука. 6. Выберите в разделе Channel (Канал) канал звука, который будет управлять анимацией, установив переключатель в одно из положений: Left (Левый), Right (Правый) или Mix (Объединенный). Завершив настройку, щелкните на кнопке Close (Закрыть), чтобы закрыть окно диалога.
Barycentric Morph Контроллер Barycentric Morph (Барицентрический морфинг) служит для анимации с элементами морфинга, то есть плавного преобразования одного объекта в другой.
CD
В число объектов 3ds max, относящихся к категории Compound Objects (Составные объекты), входят объекты типа Morph (Морфинговые), позволяющие реализовать преобразование морфинга. При создании объектов такого типа к исходным (преобразуемым) объектам по умолчанию применяется контроллер анимации Barycentric Morph (Барицентрический морфинг), позволяющий автоматически создать ключи анимации преобразования исходного объекта (seed object) в совокупность целевых объектов (target objects). Алгоритм работы этого контроллера таков, что каждый ключ преобразования представляет собой суперпозицию всех опорных объектов, взятых с соответствующими весами. Данный контроллер помещается на трек Morph (Морфинг), являющийся дочерней ветвью трека Object (Объект), в свою очередь входящего в дерево объекта, аиимированного как составной морфинговый объект (рис. 2.11). ЁЭ Track View - Dope Sheet Settings .'Controller: Tracks
Keys
Time
Utilities ijTiackA
щЩивсе.
.:;;||
JTtarBtemlPpsitibn/Rolation/i
Рис. 2.11. Для анимации составного морфингового объекта Sphered на его трек Morph помещается контроллер Barycentric Morph
Настройка параметров контроллеров и ограничителей анимации
Чтобы получить доступ к параметрам контроллера, щелкните в окне Track View (Просмотр треков) правой кнопкой мыши на любом ключе анимации, управляемом эти контроллером, и выберите в контекстном меню команду Properties (свойства). Появится окно Key Info (Справка о ключах), показанное на рис. 2.12.
Яв
+ + +
105
ЗАМЕЧАНИЕ При анМаций 'морфинга"с использованием модификатора Morpher (Морфинг) контроллер Barycehtric :Morph (Барицентрический морфинг) не менения весов каждого целевого объекта управляются в этом случае контроллерами
+ т + р + 11
'-ЗрЬ
РИС. 2.12,
Окно диалога Key Info контроллера анимации Barycentric Morph
Настройка параметров контроллера барицентрического морфинга При интерполяции значений параметров ключей морфинга применяется метод Tension/Continuity/Bias (Натяжение/Непрерывность/Смещение) — ТСВ. В верхней части окна диалога Key I n f o (Справка о ключах) отображаются значения параметров ТСВ, используемых при интерполяции. Эти параметры аналогичны параметрам контроллера ТСВ, рассматриваемым далее в соответствующем разделе. В дополнение к этому данный контроллер имеет следующие параметры: П Targets (Целевые объекты) — список, в котором перечисляются все опорные объекты морфинга с указанием процента вклада каждого из них в формирование облика исходного объекта на момент текущего ключа анимации; D Percentage (Процент вклада) — счетчик, позволяющий изменять долю вклада опорного объекта, выделенного в списке, в формирование облика исходного объекта. Доля вклада отдельного опорного объекта может выражаться отрицательным числом;
106
Глава 2. Контроллеры и ограничители анимации
D Constrain to 100% (Ограничить 100%) — установите этот флажок, чтобы ограничить суммарный вклад всех опорных объектов 100 процентами (в общем случае он может быть и не равен 100%).
Bezier Контроллер Bezier (Безье) является одним из самых распространенных типов контроллеров и преобразует траекторию движения объекта или функциональную кривую изменения параметра в сплайн Безье, проходящий через ключевые точки. Данный тип контроллера может применяться к преобразованиям положения и масштаба, а также к характеристическим параметрам объектов, выражаемым значениями с плавающей точкой, и к трехкомпонентным векторным параметрам, таким как цвет. Чтобы получить доступ к параметрам данного контроллера, щелкните в окне диалога Track View (Просмотр треков) правой кнопкой мыши на ключе анимации, управляемом этим контроллером. Появится окно диалога Key I n f o (Справка о ключах), рассмотренное ранее в разделе «Редактирование ключей анимации в строке треков» главы 1.
Рис. 2.13.
Свитки Key Info (Basic) и Key Info (Advanced) аналогичны по составу параметров окну диалога Key Info
Настройка параметров контроллеров и ограничителей анимации
107
Для доступа к параметрам контроллера с командной панели Motion (Движение) щелкните в свитке PRS Parameters (Параметры положения/поворота/масштаба) на одной из кнопок Position (Положение) или Scale (Масштаб), в зависимости от того, какому из преобразований — Position (Положение) или Scale (Масштаб) — назначен контроллер Bezier (Управление по Безье). Появятся свитки Key Info (Basic) (Справка о ключах (Базовая)) и Key Info (Advanced) (Справка о ключах (Дополнительная)), показанные на рис. 2.13.
Свиток Key Info (Basic) Используйте для настройки контроллера элементы управления свитка, которые полностью аналогичны элементам управления окна диалога Key I n f o (Справка о ключах), рассмотренного ранее в разделе «Редактирование ключей анимации в строке треков» главы 1. Выберите вариант расположения касательных векторов сплайна Безье, играющего роль функциональной кривой изменения параметра, слева и справа от точки ключа анимации, используя две большие кнопки In (Вход) и Out (Выход). Если щелкнуть на одной из больших кнопок и слегка задержать кнопку мыши в нажатом состоянии, раскроется панель дополнительных кнопок, показанных на рис. 2.14 и представляющих различные варианты поведения функциональных кривых в промежутке между ключами. Маленькие кнопки со стрелками по сторонам большой кнопки In (Вход) служат для копирования выбранных вариантов расположения векторов на выход предыдущего ключа и выход текущего ключа, а маленькие кнопки со стрелками но сторонам большой кнопки Out (Выход) — на вход текущего и последующего ключа. Сглаженное управление Линейное управление Скачкообразное управление Ускоряющее управление Замедляющее управление Специальное управление Выровненное управление -
Рис. 2.14.
Кнопки выбора вариантов сглаживания функциональной кривой анимируемого параметра
Рассмотрим назначение отдельных кнопок сглаживания: П Smooth (Сглаженное управление) — обеспечивает гладкость функциональной кривой при входе в точку ключа или при выходе из него, что ведет к получению достаточно гладкого, плавного изменения анимируемого параметра в районе ключевого кадра (рис. 2.15). Недостатком со этого варианта управления является возникновение паразитных движений объекта. Например, как видно на рис. 2.15, попытка программы провести гладкую, не имеющую изломов кривую через ключевые точки движения сферы приводит к тому, что сфера в интервале между первым и вторым ключами, вместо того чтобы сохранять свою вертикальную Z-коордииату, равную О,
108
Глава 2. Контроллеры и ограничители анимации
смещается вниз. Это смещение, достигающее максимума на участке, показанном на рисунке стрелкой, и является паразитным движением;
Рис. 2.15.
Линия траектории перемещения сферы при использовании сглаженного управления на входе и выходе всех трех ключей анимации показывает паразитное смещение
п Linear (Линейное управление) — обеспечивает линейный вид функCD
циональной кривой вблизи входа в точку ключа или выхода из него, что ведет к равномерному изменению параметра анимации. Траектория движения объекта имеет при этом вид кусочно-ломаной кривой, как показано па рис. 2.16;
Рис. 2.16.
Линия траектории перемещения сферы после применения линейного управления на входе и выходе всех трех ключей анимации
П Step (Скачкообразное управление) — обеспечивает скачкообразный характер изменения функциональной кривой, что ведет к отсутствию изменений параметра анимации в интервалах между ключами и резкому изменению параметра при достижении ключевого кадра; D CD
Fast (Ускоряющее управление) — создает функциональную кривую, обеспечивающую изменение параметра с ускорением в районе точки ключа (рис. 2.17). Об ускорении движения сферы в окрестности второго ключа можно судить по увеличению расстояния между белыми точками на линии траектории, отображающими положение сферы в последовательных кадрах анимации;
Настройка параметров контроллеров и ограничителей анимации
109
Рис. 2.17.
Линия траектории перемещения сферы после применения ускоряющего управления на выходе среднего из трех ключей анимации, показанного стрелкой
D Slow (Замедляющее управление) — создает функциональную кривую, обеспечивающую изменение параметра с замедлением в районе точки ключа (рис. 2.18). О замедлении движения сферы в окрестности второго ключа можно судить но уменьшению расстояния между белыми точками на линии траектории, отображающими положение сферы в последовательных кадрах анимации;
Рис. 2.18.
Линия траектории перемещения сферы после применения замедляющего управления на выходе среднего из трех ключей анимации, показанного стрелкой
П Custom (Специальное управление) — создает па функциональной кривой в точке ключа касательные векторы, которые можно перемещать в режиме показа функциональных кривых в окне просмотра треков. Если выбрана эта кнопка, становятся доступными параметры дополнительной части окна диалога Key Info (Справка о ключах), а также свитка Key Info (Advanced) (Справка о ключах (Дополнительная)) командной панели Motion (Движение). Счетчики In (Вход) и Out (Выход), расположенные в дополнительной части окна Key I n f o (Справка о ключах) или в свитке Key I n f o (Advanced) (Справка о ключах (Дополнительная)), позволяют настраивать положение маркеров касательных векторов.
Настройка параметров контроллеров и ограничителей анимации
129
которое управляется контроллером Bezier Points (Трехкомпонентный Безье). Все параметры свитка Bezier Points (Трехкомпонентный Безье) и верхней части окна диалога Key I n f o (Справка о ключах) не отличаются от тех, которые были рассмотрены в разделе «Bezier».
Motion Capture Контроллер Motion Capture (Перехват движения) применяется для управления анимацией по сигналам, передаваемым от внешних устройств — датчиков контроля движения, таких как мышь, клавиатура, джойстик и т. п. Этот контроллер может управлять положением, ориентацией и другими параметрами аиимируемых объектов. Для использования данного контроллера в целях анимации положения объекта создайте анимируемый объект и раскройте окно просмотра треков. Найдите трек преобразования Position (Положение) и смените используемый по умолчанию контроллер Position XYZ (XYZ-положение) па Position Motion Capture (Положение по перехвату движения). Как только вы щелкнете на кнопке ОК в окне диалога Assign Position Controller (Назначение контроллера положения), появится окно диалога Motion Capture\...\Position (Перехват движения\...\Положение), показанное на рис. 2.41, в заголовке которого па месте многоточия будет помещено имя аиимируемого объекта. Чтобы вновь вызвать это окно после того, как оно было закрыто, щелкните в окне контроллеров на треке, управляемом контроллером Motion Capture (Перехват движения), правой кнопкой мыши и выберите в контекстном меню команду Properties (Свойства). Motion Capture\Avta\Pesitiori
:1
Рис. 2.41:> Окно диалога со средствами настройки параметров контроллера Motion Capture (Перехват движения)
Для выбора устройства, движение которого будет управлять объектом, щелкните па одной из кнопок с надписью None (Отсутствует) справа от надписей X/Y/Z Position (Положение по X/Y/Z). В появившемся окне Choose Device (Выбор устройства), показанном на рис. 2.42, выделите строку Mouse Input Device (Устройство типа «мышь») и щелкните на кнопке ОК. На кнопке появится надпись Horizontal Mouse (Мышь горизонтально).
130
Глава 2. Контроллеры и ограничители анимации
Keyboard Inpi ojistick Input Mouselnputi: MIDi:.Deviee
Рис. 2.42. Окно диалога Choose Device позволяет выбрать устройство, задающее движение объекта
В нижней части окна Motion Capture\...\Position (Перехват движения\...\Положение) появится свиток Mouse I n p u t Device (Устройство типа «мышь») со средствами настройки параметров перехвата движений мыши (рис. 2.43).
Свиток Mouse Input Device окна настройки параметров контроллера Motion Capture
Оставьте переключатель Mouse Axis (Ось мыши) в положении Horizontal (Горизонтально). Укажите в счетчике Scale (Масштаб) требуемый коэффициент масштаба между движениями мыши и движениями объекта. Установка флажка Flip (Перевернуть) приведет к тому, что движения мыши в одну сторону будут приводить к движениям объекта в противоположную сторону. Переключитесь на командную панель Utilities (Утилиты) и щелкните на кнопке Motion Capture (Перехват движения). В свитке Motion Capture (Перехват движения), показанном на рис. 2.44, щелкните на строке ...\Position (.ДПоложение), где вместо многоточия будет указано имя апимируемого объекта, чтобы задать трек, управляемый перехватом движения. Щелкните па кнопке Test (Тест), чтобы испытать качество движений объекта под действием перемещений мыши. При необходимости настройте масштабные коэффициенты в свитке Mouse Input Device (Устройство типа «мышь») окна диалога Motion Capture\...\Position (Перехват движения\...\Положение).
Настройка параметров контроллеров и ограничителей анимации
133
On/Off Контроллер On/Off (Вкл./Выкл.) используется для управления анимацией таких параметров объектов и модификаторов, которые могут находиться только в двух состояниях: включенном и выключенном. Данный контроллер по умолчанию применяется к треку параметра Visibility (Видимость), по он также может использоваться для управления анимацией других параметров такого рода. Примером служит параметр Smoothing (Сглаживание), назначаемый большей части объектов-примитивов. Для назначения контроллера On/Off (Вкл./Выкл.) выделите в окне диалога Track View — Dope Sheet (Просмотр треков — Таблица ключей) трек, к которому следует применить контроллер On/Off (Вкл./Выкл.). Например, чтобы анимировать параметр видимости объекта, следует назначить этому объекту трек видимости. Для этого выделите в окне контроллеров строку с именем объекта, например SphereOI, и выполните команду меню окна Tracks > V i s i b i l i t y Track > Add (Треки > Треки видимости > Добавить). Выделите появившийся трек Visibility (Видимость). Щелкните на кнопке Assign Controller (Назначить контроллер) и выберите в списке появившегося окна диалога контроллер On/Off (Вкл./Выкл.). Трек окрасится сплошным синим цветом. Чтобы назначить моменты включения и выключения контроллера, создайте на треке ключи анимации в нужных кадрах. Для этого щелкните на кнопке Add Keys (Добавить ключи), а затем щелкните в нужных точках трека. Каждый ключ анимации, добавляемый к параметру, управляемому контроллером On/Off (Вкл./Выкл.), заставляет параметр переключаться в противоположное состояние. Трек анимации в тех кадрах, где контроллер включен, остается окрашенным в синий цвет, а там, где контроллер выключен, не имеет окраски. Например, на рис. 2.46 показан трек анимации параметра Visibility (Видимость), выключенный с нулевого по 19-й кадр, включенный с кадра 20 по 50, снова выключенный с кадра 51 по кадр 69 и вновь включенный с кадра 70 по кадр 100. Там, где параметр Visibility (Видимость) включен, управляемый им объект будет виден в составе сцены. В остальных кадрах объект окажется полностью невидимым.
Modes 5.
to
"'mmmm
Tracks :
Keys
Time «We:s
......!i«
Ш
...... a«
Рис, 2.46.: Окно диалога Track View — Dope Sheet с треком Visibility под управлением контроллера On/Off
134
Глава 2. Контроллеры и ограничители анимации
Orientation Ограничитель Orientation (Ориентация) позволяет заставить объект принимать пространственную ориентацию, задаваемую одним или несколькими целевыми объектами. При анимации поворотов целевых объектов управляемый объект также будет поворачиваться. Влияние целевых объектов на управляемый регулируется выбором весовых коэффициентов. Данный ограничитель может применяться только к трекам преобразования Rotation (Поворот). Ограничитель можно назначить с помощью окна Track View — Curve Editor (Просмотр треков — Редактор кривых), командной панели Motion (Движение) или в интерактивном режиме с помощью меню Animation (Анимация). В последнем случае ограничитель добавляется в составе контроллера List (Список). Чтобы получить доступ к параметрам ограничителя ориентации, выделите объект, управляемый данным ограничителем, и щелкните в свитке PRS Parameters (Параметры положения/поворота/масштаба) командной панели Motion (Движение) на кнопке преобразования Rotation (Поворот). Появится свиток Orientation Constraint (Ограничитель Ориентация) (рис. 2.47).
Рис. 2.47, Свиток Orientation Constraint
Настройка параметров ограничителя Orientation Для настройки ограничителя ориентации выполните следующие действия: 1. Щелкните на кнопке Add Orientation Target (Добавить цель ориентации), а затем выделите в любом окне проекции ведущий объект. Имя объекта появится в графе Target (Цель) списка в средней части свитка. В графе Weight (Вес) указывается относительный коэффициент влияния данного ведущего объекта на положение управляемого ведомого объекта. Если указать несколько ведущих объектов, то, регулируя их веса в счетчике Weight (Вес), можно заставить управляемый объект ориентироваться в нужном направлении между целевыми.
Настройка параметров контроллеров и ограничителей анимации
135
Для удаления ведущего объекта выделите его имя в списке и щелкните на кнопке Delete Orientation Target (Удалить цель ориентации). 2. Щелкните па кнопке Add World as Target (Добавить глобальную цель), чтобы выровнять ориентацию локальных осей объекта относительно осей глобальной системы координат. Влияние глобальной цели на ориентацию апимируемого объекта можно взвешивать так же, как влияние остальных целевых объектов. 3. Установите флажок Keep Initial Offset (Сохранить начальный сдвиг), чтобы заставить управляемый объект поворачиваться следом за целевыми, сохраняя при этом свою исходную ориентацию относительно целевых объектов. 4. Если ограничиваемый объект входит в состав иерархической структуры связанных объектов, то с помощью переключателя Transform Rule (Правило преобразования) можно указать, в какой системе координат будет ограничиваться ориентация объекта: о Local --> 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<0 (Авто<0) — сдвигает все колебание ниже линии нулевой амплитуды; Q M a n u a l (Задать) — позволяет задать вертикальное смещение вручную, установив его величину в счетчике.
ГЛАВА
Анимация связанных объектов Программа 3ds max позволяет выполнять анимацию объектов не только по отдельности, но и в виде связанных совокупностей, когда преобразования одного объекта при анимации влекут за собой аналогичные преобразования других, связанных с ним объектов. Подобные связные совокупности широко применяются при моделировании тел компьютерных персонажей, состоящих из множества отдельных частей: туловище, шея, голова, плечи, предплечья и кисти рук, бедра, голени и ступни ног, пальцы на руках и ногах... Впрочем, персонаж может быть совсем не похожим на человека, и тем не менее он должен «оживляться» с использованием тех же методов, которые описываются в данной главе.
3
В этой главе будут рассмотрены следующие вопросы: связывание объектов ^иерархические цепочки; коррекция положений опорных точек связанных: объектов; •..'!. Д : анимация связанных объектов ; . . : ло методам прямой и обратной кинематики;; ..,./:.,..,. •:: использование специализиро- ' ванных контроля ёров'йбратной кинематики; объектов :типа:Вопез (Кости); I
назначение
и:использрванщ::;;у
использование: режима;1прказа г:;/;: ДВОЙНИКОВ При анимации^" :г:: ''^
связанных' объектов;.;;; .
.
связывание параметров и применение манипуляторов и заказных элементов управления.
154
Глава 3. Анимация связанных объектов
Анимация связанных объектов При анимации персонажей и механических устройств бывает необходимо произвести анимацию преобразования объекта и сделать так, чтобы другие объекты повторяли это преобразование. Если, к примеру, поворачивается плечевая часть руки персонажа, то нужно, чтобы предплечье, кисть и пальцы перемещались вслед за плечом. Этого можно добиться, если связать отдельные объекты между собой, сформировав иерархические цепочки (links). Объект, связываемый с другим, становится дочерним, или объектом-потомком, а объект, с которым ведется связывание, превращается в родительский объект-предок.
Анимация по методам прямой и обратной кинематики Анимацию преобразования части иерархической цепочки можно распространить в двух направлениях: вверх по цепочке, к ее началу, или вниз, к концу цепочки. По умолчанию при анимации связанных объектов действует метод прямой кинематики (Forward Kinematics), при котором преобразования передаются вниз по цепочке, от объектов-предков к потомкам. Поворот руки персонажа в плечевом суставе, вызывающий перемещение предплечья, кисти и пальцев, — пример анимации в режиме прямой кинематики. Если применить к цепочке анимацию по методу обратной кинематики (Inverse Kinematics — IK), то преобразование будет передаваться вверх по цепочке, от объектов-потомков к предкам. Если в режиме обратной кинематики применить преобразование перемещения к пальцу руки персонажа, то за пальцем потянутся, перемещаясь и поворачиваясь, все его родительские объекты — сначала кисть, за ней предплечье, плечо, а потом, когда рука вытянется полностью, и туловище.
Связывание объектов Для связывания объектов в иерархическую цепочку выполните следующие действия: 1. Подготовьте объекты, которые требуется связать. Для примера будем рассматривать связывание и анимацию объектов, составляющих модель настольной Я лампы, показанную на рис. 3.1. Щелкните на кнопке Select and Link (Выделить и связать) главной напели инструментов и переместите курсор в любое из окоп проекций. 2. Связывание следует производить от дочерних объектов к родительским, от младших — к старшим. Расположите курсор над объектом, который должен стать самым младшим дочерним объектом цепочки. Если этот объект допускает установление связи, курсор примет вид крестика, как в случае обычного выделения объекта. Щелкните на объекте. Объект выделится, а курсор примет вид значка на кнопке инструмента (рис. 3.2). Удерживая кнопку мыши, перетащите курсор до объекта, который должен стать предком. При этом за курсором будет тянуться пунктирная линия. Над объектом, который может стать объектом-предком, курсор снова примет вид значка, показанного на рис. 3.2. Отпустите кнопку мыши. Оба объекта па мгновение выделятся белым цветом, а затем приобретут обычную окраску.
155
Анимация связанных объектов
Рис. 3.1.
Модель настольной лампы в исходном положении
3. Чтобы разорвать ошибочно созданную связь, выделите связанные объекты и щелкните на кнопке U n l i n k Selection (Разорвать связь с выделенными объектами) панели инструментов. 4. Повторите действия, описанные в п. 2, перемещаясь от конца цепочки к ее началу и последовательно связывая друг с другом объект за объектом.
Рис 3^,. Курсор, изменивший свой вид над родительским объектом — рычагом лампы, указывает на начало процесса связывания
Связывание объектов в окне диалога Schematic View Связывание объектов в иерархические цепочки можно выполнять не только в окнах проекций, но и в окне диалога Schematic View (Просмотр структуры). Для связывания объектов в окне диалога Schematic View (Просмотр структуры) выполните следующие действия: 1. Щелкните па кнопке Open Schematic View (Открыть окно Просмотр структуры) главной панели инструментов или выберите команду меню Graph Editors > 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ие/.;.чэы, будут ; мени, а в строке треков появляются тщательно настроены^ о ' значки рассчитанных ключей. Дожности ляющих ' дитесь завершения расчетов и восзультат;мо><е| в к а з а т | произведите анимацию. Посмотрите и,, ' таким, на эскиз подобной анимации в файле которь!Й: в ы рас Lampa-appliedlK.avi компакт-диска. : :
Показ двойников При отладке анимации иерархических цепочек связанных объектов может оказаться полезным показ двойников анимируемых объектов. Показ двойников (ghosting) — это отображение в окнах проекций каркасных или тонированных копий объекта, подвергаемого анимации, соответствующих состоянию этого объекта в течение нескольких кадров до и после текущего кадра анимации. Для включения режима показа двойников выделите объект или объекты иерархической цепочки, для которых должны изображаться двойники. После этого выберите команду меню Views > Show Ghosting (Проекции > Показ двойников). Параметры режима показа двойников настраиваются на вкладке Viewports (Окна проекций) окна диалога Preference Settings (Настройка параметров). На рис. 3.22 показаны изображения двойников объекта анимации в пяти кадрах до и после текущего.
Двойники представляют собой изображения объекта анимации в моменты времени, предшествующие текущему кадру и следующие за ним
CD
176
Глава 3. Анимация связанных объектов
Система объектов Bones Система объектов Bones (Кости) создается в виде иерархически связанных цепочек «костей», позволяющих имитировать скелет персонажа. Обычно система объектов типа Bones (Кости) создается для анимации персонажа, уже имеющего готовую телесную оболочку. В этом случае кости в процессе создания размещают внутри сетки тела персонажа. Анимация объектов Bones (Кости) может выполняться по методу как прямой, так и обратной кинематики любым из описанных выше способов. Как правило, для анимации по методу обратной кинематики «костям» системы после создания назначается один из трех типов контроллеров, называемых IK-решениями. CD
В 3ds max кости являются не только инструментом создания скелета и скелетных деформаций, по и самостоятельными объектами, допускающими применение материалов и визуализацию (рис. 3.23).
ШШ3.23. Скелет доисторического ящера, созданный с использованием системы объектов Bones
В 3ds max любую систему иерархически связанных объектов можно заставить действовать как кости системы Bones (Кости). Это делается с помощью команды меню Character > Bone Tools (Персонаж > Работа с костями), описываемой далее в разделе «Редактирование костей средствами окна Bone Tools».
Создание системы объектов Bones Для создания системы объектов Bones (Кости) щелкните на кнопке Systems (Системы) командной напели Create (Создать) и выберите в свитке Object Type (Тип объекта) инструмент Bones (Кости). С той же целью можно выполнить цепочку команд главного меню Character t Bone Tools (Персонаж > Работа с костями) и в появляющемся после этого окне диалога Bone Tools (Работа с костями) щелкнуть иа кнопке Create Bones (Создать кости). Подробно об окне диалога Bone Tools (Работа с костями) читайте далее в разделе «Редактирование костей средствами окна Bone Tools». На командной панели появятся свитки IK Chain Assignment (Назначение IK-цепочки) и Bone Parameters (Параметры кости) (рис. 3.24).
177
Система объектов Bones
V ::::":. ТТ. TtttfSJ
1 | l| b'
;
ill" "
Гп:
311 -Jill |1|1||||||!Ш|"
Рис, 3,24. Свитки параметров системы объектов Bones (Кости)
Если вы хотите, чтобы цепочке костей сразу же после ее создания был назначен один из допустимых контроллеров обратной кинематики, выберите нужный тип контроллера в раскрывающемся списке IK Solver (IK-решение) свитка IK Chain Assignment (Назначение IK-цепочки): History Dependent (Зависящее от предыстории), IKHISolver (НЗП IK-решение), IK Limb (IK-сустав) или SplinelKSolver (Сплайновое IК-решение). Выбранный котроллер может быть применен либо ко всей цепочке КОСТеЙ, ОТ МЛаДШеГО ИЗ объеКТОВ-ПОТОМ-
ков до старшего объекта-предка, называемого корневым, либо ко всей цепоч-
, ш:,:,;»№<>-Ш~ : :
.
-:™ i,f!f,№S:i:
СОВЕТ к
ке за исключением корневого объекта. Для применения контроллера анимации ко всей цепочке костей, включая
:
Если вы не хотите, чтобы анимация по
: :
и ; в ышё" часто::' я'в лМтся: неудо6ным:! : Не ft
корневой объект, достаточно установить флажок Assign To C h i l d r e n (Применить к дочерней кости). При этом флажок Assign To Root (Применить к корневой кости) устанавливается автоматически.
вййэш
Ш Ш^ поел е;Жфзда н те
ся : В
ем : ,
178
Глава 3. Анимация связанных объектов
методу обратной кинематики распространялась и на корневой объект, сбросьте этот флажок. В этом случае корневая кость будет оставаться неподвижной при анимации дочерних костей цепочки. Щелкните в той точке окна проекции, где должна начинаться первая из костей, и, отпустив кнопку мыши, переместите курсор до точки, где она должна заканчиваться. За курсором потянется «резиновое» изображение кости. Создаваемая по умолчанию кость состоит из двух четырехгранных пирамидок, сложенных основаниями, одна из которых растягивается вслед за курсором во всю длину кости. Вершина маленькой пирамидки считается началом кости, а вершина удлиненной — ее концом. Для фиксации кости снова щелкните кнопкой мыши. Продолжайте перемещать курсор и щелкать кнопкой мыши, создавая новые кости, которые автоматически связываются в иерархическую цепочку. В этой цепочке самым старшим объектом-предком становится первая из созданных костей, а самым младшим — последняя из них.
CD
Для завершения создания цепочки костей щелкните правой кнопкой мыши. При этом на конце цепочки создается дополнительная маленькая «косточка», о назначении которой будет сказано ниже. Еще раз щелкните правой кнопкой мыши, чтобы выключить режим формирования системы костей. Вид в окнах проекций готовой системы костей, изображающих ногу воображаемого персонажа, показан на рис. 3.25.
Так выглядит система объектов Bones с параметрами, принятыми по умолчанию, в окнах ортографи ческой (вверху) и перспективной (внизу) проекции
Система объектов Bones
179
Чтобы изменить размеры и форму костей, принятые по умолчанию, настройте параметры в свитке Bone Parameters (Параметры кости). Если изменить указанные параметры до начала создания костей, изменения будут касаться всех костей создаваемой цепочки. После того как кости созданы, можно изменить параметры размеров каждой отдельной кости и ее выростов, выделив кость и перейдя на командную панель Modify (Изменить). Используйте для настройки следующие элементы управления: П Width (Ширина), Height (Высота) — поперечные размеры костей в плоскостях, перпендикулярной и параллельной плоскости того окна проекции, в котором создаются кости; D Taper (Заострение) — степень заострения кости от ее начала к концу; П Side Fins (Боковые выросты), Front Fin (Передний вырост), Back Fin (Задний вырост) — флажки, установка которых ведет к появлению на создаваемой кости выступов по бокам, спереди и сзади. Эти выступы напоминают крылышки или, в меньшей мере, плавники. Крылышки играют не только декоративную роль, позволяя имитировать выросты костей скелета (см. рис. 3.23), но и помогают управлять оболочкой тела персонажа в ходе скелетных деформаций; п Size (Размер), Start Taper (Заострение в начале), End Taper (Заострение в конце) — однотипные счетчики, задающие ширину соответствующих выростов, а также степень их заострения (в процентах) в начале и в конце кости. Процентным мерам заострения можно придавать и отрицательные значения, за- CD ставляя выросты выглядеть как оперение на конце стрелы (рис. 3.26). ЬЦ1Л|
Рис.З,26Й Та же система объектов Bones, что и на рис. 3.25, после настройки параметров боковых и задних выростов
Превращение костей в визуализируемые объекты По умолчанию кости являются объектами, не воспроизводимыми на итоговом изображении сцены, формируемом при визуализации. Чтобы сделать кости визуализируемыми, выделите все кости цепочки, которые необходимо сделать видимыми на итоговом изображении. Щелкните на любой из выделенных костей правой кнопкой мыши и выберите в четвертном меню команду Properties (Свойства).
180
Глава 3. Анимация связанных объектов
В окне диалога Properties (Свойства) установите флажок Renderable (Визуализируется) и щелкните на кнопке ОК. После этого к костям можно применить какой-либо материал, как к любым другим объектам 3ds max, и произвести их визуализацию (рис. 3.27).
Рис.3,27-1 Та же система объектов Bones, что и на рис. 3.25, после применения материала и визуализации
Создание ветвящихся систем костей Скелет персонажа обычно включает несколько ветвящихся цепочек костей, из которых одна, скажем, изображает позвоночник, а две пары других — передние и задние конечности (см. рис. 3.23). Цепочки конечностей на концах тоже могут разветвляться, имитируя пальцы. Цепочку костей можно наращивать, добавляя новые кости к последней, самой младшей дочерней кости. Боковые ответвления можно создавать от любой кости цепочки. Чтобы создать ветвящуюся систему объектов Bones (Кости), выполните следующие действия: 1. Создайте первую цепочку костей, скажем, имитирующую позвоночный столб. Щелкните правой кнопкой мыши для завершения цепочки, но не выключайте режим создания костей. 2. Укажите курсором на ту кость, от конца которой должно пойти ответвление в виде новой цепочки костей. Курсор изменит свой вид с наклонной стрелки на перекрестье. Щелкните кнопкой мыши и перемещайте курсор. От конца выбранной кости ответвится новая цепочка костей. Завершив построение этой цепочки, щелкните правой кнопкой мыши. Все кости новой цепочки становятся дочерними по отношению к той кости, от конца которой было выполнено ответвление. 3. Создайте новое ответвление, и т. д. Закончив построение скелета, щелкните правой кнопкой мыши, чтобы выключить режим создания объектов Bones (Кости). GP На рис. 3.28 показан пример ветвящейся системы костей, имитирующих скелет ЕЕШ человекоподобного персонажа.
181
Система объектов Bones
Ветвящаяся система объектов Bones позволяет имитировать скелет персонажа
Корневую кость обычно помещают в основании позвоночника, то есть в области таза персонажа, что обеспечивает определенные удобства при анимации скелета.
Редактирование костей средствами окна Bone Tools В 3ds max имеется окно диалога Bone Tools (Работа с костями), вызываемое одноименной командой меню Character (Персонаж). Это окно содержит инструменты создания, редактирования и настройки параметров костей. Окно Bone Tools (Работа с костями) состоит из трех свитков: Bone Editing Tools (Средства правки костей), Fin Adjustment Tools (Средства правки выростов) и Object Properties (Свойства объекта) (рис. 3.29). Свиток Bone Editing Tools: режим правки костей Для изменения длины отдельных костей в готовой иерархической цепочке щелкните на кнопке Bone Edit Mode (Режим правки кости) из раздела Bone Pivot Position (Положение опоры кости) свитка Bone Editing Tools (Средства правки костей). Эта кнопка включает режим правки, в котором можно перемещать опорную точку любой кости из состава цепочки. Активизируйте инструмент перемещения, выделите нужную кость и перемещайте ее опорную точку, из которой будет исходить тройка векторов габаритного контейнера преобразования перемещения. При этом редактируемая и соединяющаяся с ней родительская кости будут автоматически растягиваться или укорачиваться. В то же время такое перемещение опорной точки не оказывает никакого действия на дочерние и более старшие родительские СОВЕТ кости. Применение этого режима к кости, изображающей голень йоги, позвоНе ; забывайте ляет изменить расположение колена, за\ НИЯ. В 'ЭТОМ ставив кости голени и бедра растянуться (рис. 3.30). При этом кости стопы и таза : ': 3 ds остаются неподвижными и не мепяются по длине. Для выключения режиЗакрытие окна Вбпе ТроК;;(Ра6рта^ко|гя-:;" ма перемещения опорной точки снова ми) не ведет щелкните на кнопке Bone Edit Mode (Режим правки кости).
CD
182
Глава 3. Анимация связанных объектов
iBilillil
ИИ!
Окно диалога Bone Tools содержит полный набор средств для создания и настройки параметров костей
При необходимости отредактируйте готовую цепочку костей, используя следующие кнопки раздела Bone Tools (Работа с костями): П Create Bones (Создать кости) — включает режим создания новых костей, действуя аналогично кнопке Bones (Кости) командной панели Create (Создать). Для выключения режима создания костей щелкните в активном окне проекции правой кнопкой мыши или еще раз щелкните на кнопке Create Bones (Создать кости); D Create End (Создать окончание) — включает режим создания на конце любой выделенной кости иерархической цепочки маленькой косточки, которая добавляется с единственной целью замыкания на нее петли действия контроллера обратной кинематики типа HI IK Solver (НЗП, или Не зависящее от предыстории IK-решение). Обычно такая косточка автоматически создается на конце цепочки костей. Необходимость ее создания может появиться или после случайного удаления, или для реализации дополнительной петли контроллера, замкнутой на еще одну такую косточку в середине цепочки костей. Просто выделите нужную кость и щелкните на кнопке Create End (Создать окончание);
183
Система объектов Bones
ШМ1Ш1 Использование режима правки выделенной кости (а) позволяет изменить длину этой и ближайшей к ней родительской кости (6)
D Remove Bone (Убрать кость) — позволяет убрать любую выделенную кость цепочки, сохранив ее целостность. При этом кость, дочерняя по отношению к убираемой, удлиняется и замыкается с оставшейся родительской частью цепи, так что цепочка не разрушается (рис. 3.31). Все остальные кости остаются нетронутыми;
СОВЕТ Для изменения дГ1и^ы; п дочерней) кости в цепочке создайте на её конце еще одну жосточку с помощью кнопки Create: End; (Создать оконча: : соз-данную косточк||:;;режйм§Щг1е Edit Mode
П Delete Bone (Удалить кость) — удаляет выделенную кость, разрывая при этом иерархическую цепочку костей. На конце кости, родительской по отношению к удаленной, создается маленькая концевая косточка (рис. 3.32). При этом нарушается действие тех контроллеров обратной кинематики, петля которых охватывала удаленную кость. Обратите внимание на то, что если удалить выделенную кость нажатием на клавишу Delete, то концевая косточка не будет создана;
со.
184
Глава 3. Анимация связанных объектов
Если убрать выделенную кость (а), то ее дочерняя кость, указанная стрелкой, удлиняется и замыкается с родительской костью (б)
При удалении выделенной кости (а) цепочка костей разрывается на две (б) с созданием концевой косточки, показанной стрелкой
П Connect Bones (Соединить кости) — позволяет соединить кости двух разрозненных цепочек за счет создания новой кости, заполняющей разрыв. Выделите первую кость и щелкните на кнопке Connect Bones (Соединить кости). Переместите курсор в окно проекции. От конца выделенной кости потянется пунктирная линия (рис. 3.33, а). Установите курсор на кость, с которой требуется установить соединение, и щелкните кнопкой мыши. На месте пунктирной линии появится новая кость (рис. 3.33, б). Кость, с которой устанавливается соединение, не обязательно должна быть старшей родительской костью новой цепочки, она может располагаться и в середине цепи. После соединения цепочек концевую косточку, ставшую ненужной, можно удалить, выделив ее и нажав клавишу Delete; П Reassign Root (Переназначить корневую) — превращает выделенную кость в старшую родительскую (корневую) кость цепочки костей. При этом начала и концы всех костей меняются местами, так что цепочка, вообще говоря, может преобразиться совершенно неожиданным для вас образом;
Система объектов Bones
185
Рис, 3.33. Для соединения цепочек переместите курсор от конца выделенной кости к началу другой кости (а) и щелкните кнопкой мыши (6)
П Refine (Уточнить) - позволяет разбить любую кость в точке щелчка кнопкой мыши на две новые, соединенные между собой (рис. 3.34). Таким способом можно, например, строить скелет хвоста. Сначала создается одна длинная кость, а потом она дробится на мелкие части. Для выключения режима дроб•епия кости щелкните в активном окне проекции правой кнопкой мыши или еще раз щелкните на кнопке Refine (Уточнить).
•РИС. 3.34. Длинная кость (а) разделена на две в точке щелчка, кнопкой мыши (б)
CD
186
Глава 3. Анимация связанных объектов
Для изменения при необходимости цвета окраски костей в окнах проекций используйте следующие элементы управления раздела Bone Coloring (Окраска костей): П Selected Bone Color (Цвет выделенной кости) — этот образец цвета становится доступным только при выделении какой-то отдельной кости цепочки. Щелкните на образце, чтобы вызвать типовое окно Color Selector (Выбор цвета), и измените оттенок цвета кости; П Start Color (Начальный цвет), End Color (Конечный цвет) — эти образцы цвета становятся доступными только при выделении двух или более костей цепочки (причем не обязательно смежных). Установите начальный и конечный оттенки цветового градиента и щелкните на кнопке Apply Gradient (Применить градиент). Начальный цвет будет применен к старшей родиCD тельской из выделенных костей, а конечный — к младшей дочерней кости (рис. 3.35).
Рис. 3.35.1 Цепочка костей одного цвета (а) окрашена с применением плавного перехода оттенков от темного к светлому (6)
Свиток Fin Adjustment Tools Элементы управления свитка Fin Adjustment Tools (Средства правки выростов) (рис. 3.36) аналогичны соответствующим элементам управления свитка Bone Parameters (Параметры костей), появляющегося на командной панели Modify (Изменить) при выделении кости, за исключением следующих: D Absolute (Абсолютно) — устанавливает режим задания абсолютных размеров выростов, напоминающих крылышки или плавники. Если нужно переустановить для всех костей новые одинаковые размеры выростов, выберите эту позицию переключателя; D Relative (Относительно) — устанавливает режим задания размеров выростов относительно их текущих значений. Если при изменении размеров нужно сохранить индивидуальные отличия выростов отдельных костей, выберите эту позицию переключателя;
187
Система объектов Bones
•В
РИС.З;Зб.
Свиток Fin Adjustment Tools со средствами настройки параметров выростов по бокам костей
О Сору (Копировать) — позволяет скопировать толщину, величину скоса, а также наличие, размеры и форму выростов выделенной кости для последующего применения этих параметров к другой выделенной кости или костям с помощью кнопки Paste (Вставить); D Paste (Вставить) — задает наличие выростов и применяет значения их размеров, запомненные по образцу с помощью кнопки Сору (Копировать), к выделенной кости или набору выделенных костей.
СОВЕТ :
:;:;©::ПЬмощЬ1О:.:Кнрп^ *Ш(ныё по форме койй/ Шст|ойтеЙолщ|3| ,:|ну: кости; форму и размеры ее .выростов];?:;
'. - краейУпрй>Этрм"-ост:а:Ются; такимй;;:Какими -они были заданы, ^ при :с:озданйи;'с:келета,
Свиток Object Properties Свиток Object Properties (Свойства объекта) содержит элементы настройки параметров кости как специфического объекта 3ds max. Используйте для настройки следующие элементы управления этого свитка: D Bone On (Кость вкл.) — установка этого флажка заставляет любой объект действовать подобно кости системы объектов Bones (Кости) и делает доступными
188
Глава 3. Анимация связанных объектов
другие элементы управления из раздела Bone Properties (Свойства кости). По умолчанию этот флажок устанавливается для объектов системы Bones (Кости) и сбрасывается для объектов других типов; П Freeze Length (фиксировать длину) — при установке данного флажка длина кости не будет меняться при перемещении дочерней кости, а при сброшенном флажке кость может растягиваться различным образом, в зависимости от положения переключателя Stretch (Растяжение); П Auto-Align (Автовыравнивание) — если этот флажок сброшен, опорная точка кости не будет автоматически выравниваться по ориентации дочерней кости. Это выразится в том, что перемещение дочерней кости не повлечет за собой поворота родительской кости, и цепочка костей разорвется; п Correct Negative Stretch (Исправить отрицательное растяжение) — если при растяжении кости коэффициент растяжения оказывается отрицательным, то установка этого флажка обеспечивает замену коэффициента новым положительным значением; D Stretch (Растяжение) — переключатель на три положения, позволяющий выбрать один из двух вариантов растяжения костей — варианты Scale (Масштаб) и Squash (Сжатие) или отменить растяжение — вариант None (Отсутствует); D Axis (Ось) — переключатель, позволяющий выбрать ось для масштабирования или сжатия кости; D Realign (Восстановить выравнивание) — щелчок на этой кнопке заставляет локальную ось X кости выровняться так, чтобы она снова указывала па дочернюю кость или на усредненный центр совокупности дочерних костей. Необходимость в восстановлении выравнивания возникает после перемещения дочерней кости при сброшенном флажке Auto-Align (Автовыравнивание); П Reset Stretch (Восстановить растяжение) — щелчок на этой кнопке восстанавливает единичное значение коэффициента растяжения кости, который мог меняться при сброшенном флажке Freeze Length (Фиксировать длину); О Reset Scale (Восстановить масштаб) — щелчок на этой кнопке устанавливает коэффициенты масштаба кости, изменившиеся после ее растяжения, вновь равными 100 % по каждой из осей. Это не сказывается на изменении размеров кости.
Анимация системы объектов Bones по правилам кинематики Если к цепочке связанных между собой костей не применено никакого контроллера (IK-решения), то для нее, как и для всякой совокупности связанных объектов, действуют правила прямой кинематики. Кроме того, для каждой пары связанных костей действует правило обратной кинематики. Это значит, что применение преобразования перемещения или поворота к корневой кости будет заставлять перемещаться или поворачиваться весь скелет
Система объектов Bones
189
целиком. Поворот любой кости, имеющей дочерние, будет приводить к повороту всех дочерних костей цепочки вместе с родительской костью. Это действуют правила прямой кинематики. Перемещение любой кости не ведет к ее отрыву от цепочки, а заставляет поворачиваться в своем суставе кость, родительскую по отношению к перемещаемой. Это действует обратная кинематика для пары костей. Анимацию скелета, состоящего из объектов типа Bones (Кости), можно производить и с помощью этих действующих по умолчанию правил. К примеру, чтобы заставить скелет персонажа маршировать на месте, выполните следующие действия: 1. Создайте из системы объектов Bones (Кости) ветвящийся скелет (см. рис. 3.28).
При необходимости доработайте скелет на уровне редактирования отдельных костей средствами окна диалога Bone Tools (Работа с костями). В частности, можете выполнить настройку длин отдельных костей в режиме Bone Edit Mode (Режим правки кости). Толщину костей, форму и размеры выростов можно отредактировать с использованием инструментов Сору (Копировать) и Paste (Вставить) этого же окна. Возможный вид скелета после редактирования в окнах проекций и после визуализации показан на рис. 3.37.
Рис. 3.37.
Вид подготовленного к анимации скелета примитивного персонажа в окнах проекций (слева) и после визуализации (справа)
2. Создайте именованный выделенный набор из костей скелета, назвав его, скажем, Kosti. Выберите имя созданного набора в раскрывающемся списке правее кнопки Auto Key (Автоключ). Установите флажки принудительного создания ключей перемещения и поворота, сбросив остальные флажки. Придайте всем костям скелета нужное исходное положение в кадре 0. Включите режим принудительной анимации и создайте ключи в нулевом кадре, щелкнув на кнопке Set Keys (Задать ключи). 3. Установите в качестве текущего следующий ключевой кадр, скажем, кадр 25.
Вручную переместите и поверните нужные кости скелета, придав ему новую позу, изображающую конечную фазу первого полушага правой ногой, например такую, как на рис. 3.38. Создайте ключи, щелкнув на кнопке Set Keys (Задать ключи).
CD
190
Глава 3. Анимация связанных объектов
Рис, 3,38. Скелету персонажа путем перемещения и поворота костей придана поза полушага правой ногой
4. Чтобы завершить первый полушаг, нужно вернуть все кости в исходное положение за такой же интервал времени — 25 кадров. Это можно сделать, просто скопировав ключи всех костей из нулевого кадра в кадр 50. С этой целью выключите режим принудительной анимации. Выделите все кости скелета. Для этого достаточно выбрать имя набора Kosti в раскрывающемся списке панели инструментов. Выделите рамкой перекрывающиеся значки ключей всех костей в нулевом кадре строки треков. Удерживая клавишу Shift, скопируйте значки на отметку кадра 50. 5. Перейдите к следующему ключевому кадру — в нашем примере это будет кадр 75. Включите режим принудительной анимации. Снова вручную переместите и поверните нужные кости, придав скелету позу конечной фазы полушага левой ногой (рис. 3.39). Принудительно создайте ключи.
Рис. 3.39.
Скелету персонажа придана поза полушага левой ногой
6. Перейдите к кадру 100 и верните все кости в исходные положения, повторив копирование ключей всех костей из нулевого кадра, как было описано в п. 4, 7. Перетаскивая ползунок таймера анимации, оцените качество полученных движений. Если требуется произвести коррекцию положения или ориентации
Система объектов Bones
191
тех или иных костей, сделайте это следующим образом. Выделите нужную кость или несколько костей. Выберите в раскрывающемся списке правее кнопки Auto Key (Автоключ) вариант Selected (Выделенные). Включите режим принудительной анимации. Установите ползунок таймера на отметку нужного кадра. В частности, это может быть и один из тех ключевых кадров, где данные кости уже имеют ключи. Измените положение или ориентацию кости или нескольких костей. Не отменяя их выделения, создайте ключи анимации щелчком на кнопке Set Keys (Задать ключи). Если кости уже имели в выбранном кадре ключи анимируемых параметров (в нашем случае — преобразований перемещения и поворота), то ключи с новыми значениями параметров заместят собой старые. Фактически это выглядит просто как корректировка ключевых параметров анимации.
Анимация системы объектов Bones с помощью IK-контроллеров Каждой цепочке костей может быть назначен один или несколько контроллеров обратной кинематики, называемых IK-решениями. Как уже было упомянуто ранее, таких контроллеров четыре: HD IK solver (ЗП IK-решение), HI IK solver (НЭП IK-решение), IK Limb solver (IK-решение для сустава) и SplinelK Solver (Сплайновое IK-решение). В данном разделе рассмотрим порядок назначения и использования контроллера HI IK solver (НЗП IK-решение). Назначение и использование контроллера SplinelK Solver (Сплайновое IK-решение) рассматривается далее в разделе «Анимация системы костей контроллером SplinelKSolver». С особенностями остальных контроллеров при необходимости познакомьтесь самостоятельно, используя для этого Справочную систему 3ds max.
Принцип действия контроллера HI IK solver Рассмотрим, что представляет собой и как действует не зависящий от предыстории контроллер обратной кинематики в применении к системе костей или любых других связанных объектов. На рис. 3.40 показана система из пяти костей, имитирующих ногу персонажа и пронумерованных для удобства ссылок в тексте начиная от старшей, корневой кости. К первой и второй костям системы применен контроллер обратной кинематики типа HI IK solver (НЗП IK-решение). В окнах проекций контроллер обратной кинематики, не зависящий от предыстории, изображается в виде линий белого цвета, проходящих вдоль осей тех костей, которые охвачены действием контроллера. Еще одна линия, проходящая от конца последней дочерней кости, охваченной контроллером, к началу первой родительской кости, как бы замыкает цепь действия контроллера. Плоскость, в которой лежит образованный этими линиями треугольник, называется плоскостью сгиба (swivel plane). На конце младшей из охваченных контроллером дочерних костей изображается в виде перекрестья (синего цвета, если ие выделен) объект, носящий имя Goal
192
Глава 3. Анимация связанных объектов
(Цель), показанный стрелкой на рис. 3.40. Именно этот объект и следует перемещать или аиимировать, чтобы привести в движение цепочку костей, охваченных действием контроллера. Весь набор элементов контроллера носит имя IK Chain (IK-цепочка).
РИС. 3.40. К двум костям из системы костей, имитирующих ногу, применен контроллер обратной кинематики. Стрелкой показан анимируемый объект Goal в виде перекрестья
Действие IK-решения состоит в том, что программа стремится совместить с объектом-целью концевой эффектор (end effector) системы костей. Концевым эффектором фактически является опорная точка самой младшей дочерней кости, охваченной действием IK-цепочки. В окнах проекций концевой эффектор по умолчанию не изображается, по если включить его показ (см. далее раздел «Настройка параметров контроллера IK solver»), то он отображается в виде перекрестья зеленого цвета. При перемещении объекта-цели вся система костей, охваченных действием контроллера, будет поворачиваться относительно опорной точки старшей из управляемых контроллером костей. В нашем примере таковой является корневая кость 1, которая будет поворачиваться вокруг своего начала. Пара связанных костей 1 и 2 будет стремиться принять положение, соответствующее новой позиции объекта-цели. Изгиб в суставе между костями 1 и 2, управляемыми контроллером обратной кинематики, будет происходить в плоскости, проходящей через белые линии контроллера. По умолчанию сгибы суставов системы костей происходят в плоскости того окна проекции, в котором создавались кости. Остальные дочерние кости с номерами 3-5 будут «подтягиваться» за объектом Goal (Цель), следуя правилам прямой кинематики. К одной и той же цепочке костей можно применить несколько IK-решений, зоны действия которых могут даже перекрываться. Например, на рис. 3.41 показана цепочка костей, к которой применены два IK-решеиия: первое — к костям 1 и 2, если следовать обозначениям, принятым па рис. 3.40, и второе — к костям 3-5. В этом случае при перемещении одного из объектов Goal (Цель) второй сохраняет свое текущее положение, стремясь удерживать управляемые им кости. Для анимации системы костей с помощью контроллера обратной кинематики следует установить в качестве текущего кадр 0 и включить режим анимации.
Система объектов Bones
193
ДИМО П6РеЙТИ К Н ВОМУ ключевом fГкГпер°тк° ° У каДРУ> переместить объект-цель 1К Ц6ПОЧКИ вой к яп ' издать ключ, опять переключиться на новый ключеного сегмептГ ПеРШеСТИТЬ объе«т^ль, и так далее, до завершения времен-
Рис. 3.41.
К системе костей, имитирующих ногу, применены два контроллера обратной кинематики типа HI IK solver (НЭП IK-решение)
Управление плоскостью сгиба Плоскость сгиба системы костей, иначе называемую еще шарнирной плоскостью автоматически устанавливаемую при создании IK-цепочки, можно поворачивать : помощью инструмента Select and M a n i p u l a t e (Выделить и манипулировать) пка которого находится на главной панели инструментов 3ds max. Для поворота шарнирной плоскости сочленения костей выполните следующие действия: «.у^щис 1. Щелкните па кнопке Select and Manipulate (Выделить и манипулирогь) главной панели инструментов. У начала IK-цепочки в окнах проекции появится изображение вспомогательного объекта-манипулятора в виде рычага зеленого цвета (рис. 3.42). Этот манипулятор является ломогательиым объектом Plane Angle (Плоский угол), автоматический назначаемым каждому контроллеру обратной кинематики (см. далее раздел «Создание манипуляторов в окнах проекций*). Для его появления не требуется выделять ни систему костей, пи IK-цепочку. Если в окнах проекций имеется несколько систем костей, к которым применены IK-контроллеры, то у каждой из них изобразится собственный манипулятор. Этот манипулятор располагается в шарнирной плоскости системы костей перпендикулярно линии, замыкающей связи цепочки (эта линия показана на рисунке стрелкой). 2. Для поворота шарнирной плоскости просто установите курсор на манипулятор который должен изменить свой цвет на красный, щелкните кнопкой мыши и перетаскивайте курсор. Система костей будет поворачиваться вокруг линии, замыкающей связи цепочки, изменяя тем самым ориентацию своей шарнириой плоскости.
Глава 3. Анимация связанных объектов
194 Манипулятор
Манипулятор позволяет поворачивать шарнирную плоскость контроллера обратной кинематики
Назначение системе костей контроллера HI IK solver Чтобы назначить готовой цепочке костей контроллер обратной кинематики, не зависящий от предыстории, выполните следующие действия: 1. Выделите определенную кость связанной цепочки. Действие контроллера обратной кинематики можно распространить как вверх, так и вниз по цепочке относительно выделенной кости. При распространении действия контроллера вверх по цепочке в опорной точке выделенной кости разместится управляющий объект Goal (Цель). Выделенная кость в этом случае не попадет в число управляемых контроллером. При распространении действия контроллера вниз по цепочке выделенная кость станет старшей родительской костью из тех, которые управляются контроллером. Ее опорная точка будет оставаться неподвижной при перемещении объекта Goal (Цель). Если объект Goal (Цель) должен оказаться на конце всей цепочки костей, то следует выделить ту самую маленькую дополнительную косточку, которой 3ds max автоматически завершает любую цепочку объектов Bones (Кости). 2. Выберите в основном меню команду Animation > 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 (Внешние файль) окна диаП Ш<Ш«^
Если при визуализации анимации непользовалась последовательная запись каждого кадра в отдельный файл (прием «рендеринг в секвенцию», описанный в подразделе «Визуализация анимации в виде набора статических кадров» главы 1 «Анимация сцен»), то эту последовательность также можно поставить в очередь монтажа модуля Video Post (Видеомонтаж) с помощью файла типа ifl. Для этого необходимо выполнить следующие действия:
События очереди видеомонтажа
311
1. Щелкните в окне Video Post (Видеомонтаж) на кнопке Add Image Input Event (Добавить событие ввода изображения). В появившемся окне выбора файла выделите имя первого из последовательности кадров анимации. Установите флажок Sequence (Последовательность) в нижней части окна (рис. 5.8). Станет доступной кнопка Setup (Настройка). Е> 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 | <В' .д H |^2Maps.WRL i^ Anchor Jest- 1. WRL i: i^AnchorJest.WRL • J$ AnimatedTexturesJTest . WRL : ' У? CylinderSensorTest . WRL i * ^FogJest.WRL Ip^LODJest.WRL j ^MapsJest.WRL I^MoviTexture-VRML-test.WRL S^PIaneSensorTest-1 .WRL y^PlaneSensorTest.WRL I^SensorsTest-l.WRL 1
' < - : : ' ' ' . . . .• :гг""1|.''': , ':'•; :'•?.•*
Ш Q scripts Ви sounds Ш ^) stdplugs
r-^Г updater Q gl vpost ffl Q web Si webdepot Ш ^ Examples Й maps ffi Й CD-ROM- 1 Ш ЁЭ CD-ROM-2
:l=ailllilSiiliiiIIl siii' Рис, 6.2.
:
i
"
••'•••
i
%
iijisiifisii
^SensorsTest-Z.WRL ^SensorsTest.WRL ^TimerJest.WRL ^TimeSensorTest-1 .WRL ^ TimeSensorTest-2 . WRL ^TimeSensorTest.WRL ^U-scale.WRL ^UV-bugs_report.WRL §]UV-test.A5E j^UV-VRML-test-l.WRL $ UV-VRML-test-2 . WRL ^UV-VRML-test.WRL
,,,,-;;„;;;••••••
Я
Файлы типа wrl со значками в виде бабочки в окне проводника системы Windows
Файлы типа wrl отсутствуют в списке типов файлов, которые можно цо умолчанию открывать в приложении Internet Explorer. В связи с этим, что6)ы открыть файл такого типа с помощью команды File > 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;? (Сглажйвать),хт<Ув результате^сгЩта Яри •установленном флажке: Primitives (При :митиеы| будете: наблюдать' :в-::окне: -VRMLбраузера /цйлиндрЩ^4;;^ нами! порта даже п ри7устан^вленном:::флажке : Primitives.^ Примитивы) вы:; увидите в окне VRML-браузера; трехпэан^^
П Export Hidden Objects (Экспорт скрытых объектов) — установка этого флажка обеспечивает включение в состав VRML-кода описаний скрытых объектов сцепы 3ds max;
Общие сведения о 30-сценах формата VRML п Flip-Book (Книга сцены) — установка этого флажка ведет к экспорту онисания сцены во множество файлов, каждый из которых будет соответствовать одному кадру анимации. Выберите в раскрывающемся списке Polygons Туре (Тип полигонов) тип гра> , ней, которые будут формироваться в файле на языке VRML 97: П Triangles (Треугольники) - только
353
ЗАМЕЧАНИЕ выполните ; B : 3 d s max анимацию каких-то характеристических; параметров; примитивов, которые при экспорте .могут. заменяться на лримитивы -VRML, например . . анимацию:радиуса сферы, то, чтобы, уви: деть такую анимацию в окне VRML-браузе:ра, не забудьте не только установить в окне ; VRML : 97 Exporter: (Экспорт в VRML 97); .; флажок Coordinate Interpolators (Интерпо- : ляторы координат), но и сбросить флажок Если вы
Primitives (Примитивы).
П Quads (Четырехугольники) — треугольные и, где возможно, четырехугольные грани; П Ngons (N -угольники) — грани с максимально возможным числом ребер; П V i s i b l e Edges (Видимые ребра) — грани, разбитые па части внутренними ребрами, помечаемыми как видимые. Выберите в раскрывающемся списке I n i t i a l View (Начальная проекция) имя камеры, вид сцены, через объектив которой будет первым представлен в окне VRML-браузера, а в трех следующих списках — Initial Navigation Info (Начальная навигационная информация), Initial Background (Начальный фон) и Initial Fog (Начальный туман) — имена вспомогательных VRML-объектов типа N a v l n f o (Навигация), Background (Фон) и Fog (Туман), которые могут использоваться браузерами при загрузке VRML-сцепы. Для включения таких объектов в состав сцены 3ds max используются инструменты, относящиеся к разновидности VRML97 категории Helpers (Вспомогательные объекты) командной панели Create (Создать). Задайте точность описания числовых параметров, используемых при вычислении размеров объектов VRML-сцены, в счетчике Digits of Precision (Число знаков после запятой). Чтобы иметь возможность наблюдать за ходом экспорта сцены с помощью прогресс-индикатора, не сбрасывайте установленный но умолчанию флажок Show Progress Bar (Показывать прогресс-индикатор). Установите переключатель Vertex Color Source (Источник цвета вершин), который становится доступным для использования после установки флажка Color per Vertex (Цвет вершин), в одно из двух положений: П Use Max's (Цвета МАХ) — использовать цвета вершин из сцепы 3ds max; П Calculate on Export (Рассчитывать при экспорте) — рассчитывать цвета вершин в ходе экспорта с учетом модели освещения 3ds max. Если объекты, экспортируемые в формате VRML, имеют в составе своих материалов карты текстур, установите способ доступа к файлам текстурных карт. Все файлы текстур должны размещаться в одной отдельной папке. По умолчанию используется папка с именем maps, вложенная в ту же папку, в которую вложена
354
Глава 6. Настройка и экспорт сцен в формате VRML
папка с файлами типа *.wrl. Об этом говорит предлагающийся по умолчанию префикс ../maps. При размещении файлов текстур в другой папке web-сервера следует указать в текстовом поле раздела Bitmap U R L Prefix (URL-префикс растровых текстур) иной префикс, который будет добавляться ко всем именам файлов текстурных карт. В качестве такого префикса можно ввести полное URL-имя, начинающееся с http, или путь к панке с текстурами. Например, если текстуры будут храниться в паке maps, вложенной в папку с файлами типа *.wrl, префикс должен иметь вид maps (без слэша и точек). Если вы предполагаете размещать файлы текстур в той же папке, что и файлы типа wrl, полностью удалите префикс. Проследите за установкой флажка Use Prefix (Использовать префикс), чтобы активизировать режим использования URL-префикса. Щелкните на кнопке Sample Rates (Частоты выборки), чтобы вызвать дополнительное окно диалога Animation Sample Rates (Частоты выборки анимации) (рис. 6.6). Animation Sample Rates
infiffip
;p| " "
Окно диалога Animation Sample Rates
Установите переключатели в разделах Transform Controllers (Контроллеры преобразований), Coordinate Interpolators (Интерполяторы координат) и Flip-Book (Книга сцены) в одно из двух положений: D Once per Animation Frame (Один раз на кадр), One File per Animation Frame (Один файл на кадр) — сведения о параметрах анимации будут фиксироваться по одному разу на кадр; П Custom FPS (С частотой) — сведения о параметрах анимации будут фиксироваться с указанной в счетчиках частотой (заданное количество раз в секунду). Щелкните на кнопке ОК, чтобы вернуться в окно диалога V R M L 97 Exporter (Экспорт в V R M L 97). При необходимости щелкните в окне V R M L 97 Exporter (Экспорт в VRML 97) па кнопке World I n f o (Сведения о глобальном пространстве) и введите необязательные текстовые данные в поля Title (Заголовок) и I n f o (Сведения) появляющегося окна диалога. Некоторые VRML-браузеры способны отображать сведения из строки Title (Заголовок) в заголовке окна просмотра. В поле I n f o (Сведения) можно
Общие сведения о BD-сценах формата VRML
355
включить справочные данные об авторе сцепы или о версии разработки. Щелкните на кнопке ОК, чтобы вернуться в окно диалога VRML 97 Exporter (Экспорт в VRML 97). Завершив настройку, щелкните па кнопке ОК, чтобы запустить процесс экспорта. Продолжительность этого процесса определяется сложностью сцены и производительностью процессора и может составлять от долей секунды до нескольких минут.
Некоторые требования к 30-сцене для экспорта в формате VRML Трехмерные сцены, разрабатываемые средствами 3ds max с целью экспорта в формате VRML, должны отвечать определенным требованиям, возникающим как следствие ограниченных возможностей сети Интернет и VRML-браузеров. Ниже описываются некоторые из таких требований: D геометрическая модель сцены должна, по возможности, содержать минимум объектов. Это связано с ограничениями пропускной способности сети, по которой будет загружаться такая сцена. Следует шире использовать тела-примитивы, поскольку после экспорта такие тела могут превращаться в примитивы языка VRML, описания которых занимают мало места. Объекты сложной нестандартной формы описываются в языке VRML как набор граней. Такое описание обычно имеет очень большой объем; П следует устанавливать в составе сцены несколько камер. Возможность переключаться с камеры па камеру освобождает зрителя от необходимости выполнять вручную сложные перемещения по трехмерному миру, которые требуют определенных навыков; D следует учитывать, что при просмотре трехмерной сцены в VRML-браузере не отображаются тени от освещенных объектов, а также такие оптические эффекты, как сияние или объемный свет; D не имеет смысла использовать материалы со свойствами зеркального отражения или преломления, так как эти эффекты не воспроизводятся при показе сцепы в VRML-браузере. Не воспроизводится также эффект B u m p (Рельеф). Не будут видны процедурные текстуры типа Checker (Шахматная) или Marble (Мрамор). В то же время эффекты блеска и прозрачности воспроизводятся в окне VRML-браузера; П в качестве текстур материалов, предназначенных для экспорта в составе VRMLсцены, допускается использовать только файлы типа jpg, png или g i f . Файлы других графических форматов, таких как, к примеру, tif или Ьглр, использовать не допускается — такие текстуры не будут видны в окне VRML-браузера; П файлы текстур, применяемых в составе материалов трехмерной сцены, должны, но возможности, иметь минимальный размер. Следует шире использовать возможность кратного повторения рисунка; П как указывалось в предыдущем подразделе, все файлы текстур должны лежать в одной папке. Имя этой нанки может быть произвольным. По умолчанию предполагается, что файлы текстур размещаются в отдельной папке с именем maps, расположенной па том же уровне, что и папка, в которой размещены экспортированные файлы типа wrl;
356
Глава 6. Настройка и экспорт сцен в формате VRML
П стандарт VRML-97 допускает использование в составе материалов анимированных текстур, но только типа MPEG. В то же время программа 3ds max допускает использование в составе материалов анимированных текстур только формата A V I . Это затрудняет экспорт сцен с анимироваппыми текстурами в составе материалов. Однако данное затруднение легко преодолеть посредством небольшой правки VRML-кода. Подробнее об этом можно прочитать в подразделе «Использование анимированных текстур» заключительного раздела этой главы.
Объекты 3ds max разновидности VRML 97 Настройка сцепы, предназначенной для экспорта в формате VRML, производится в программе 3ds max с помощью набора вспомогательных объектов, относящихся к разновидности VRML 97. Все эти вспомогательные объекты не визуализируются в составе сцены и не показываются после ее экспорта в окне просмотра VRML-браузера. Их единственное предназначение — служить прототипами для появления в тексте экспортированного файла типа wrl описаний аналогичных объектов стандарта VRML 97. Фактически, наименования вспомогательных объектов 3ds max, относящихся к разновидности VRML 97, совпадают с наименованиями соответствующих узлов языка VRML.
Порядок создания объектов разновидности VRML 97 Для создания вспомогательного объекта разновидности VRML 97 любого типа выполните следующие действия: 1. Щелкните на кнопке Helpers (Вспомогательные объекты) командной панели Create (Создать) и выберите в раскрывающемся списке строку V R M L 97. Появится свиток Object Type (Тип объекта) с 12 кнопками (рис. 6.7). Щелкните на нужной кнопке, которая зафиксируется и подсветится желтым цветом. На панели Create (Создать) появятся свитки параметров выбранного объекта.
РИС. в.?; Свиток Object Type с инструментами создания вспомогательных объектов разновидности VRML 97
357
Объекты 3ds max разновидности VRML 97
2. Переместите курсор в окно проекции Тор (Вид сверху) или Perspective (Перспектива). Все вспомогательные объекты создаются обычно в этих окнах, чтобы направления «верх» и «низ» значков были согласованы с направлениями «верх» и «низ» сцепы. Это обеспечивает легкое опознавание значков в любом окне проекции. Размеры значков любых вспомогательных объектов, кроме ProxSensor (Датчик расстояния) и Sound (Звук), не имеют значения. Место размещения значков большей части объектов в составе трехмерной сцене также не имеет значения. Однако для некоторых вспомогательных объектов, таких как ProxSensor (Датчик расстояния), Sound (Звук), Billboard (Стенд), I n l i n e (Вставка) и LOD (Уровень детальности), место расположения и ориентация в трехмерном пространстве играют важную роль. 3. Щелкните в нужной точке окна проекции и перетащите курсор по диагонали, растягивая изображение значка. Отпустите кнопку мыши. Большая часть значков вспомогательных объектов разновидности VRML 97 представляет собой символическое трехмерное изображение вспомогательного объекта, заключенное в октаэдр — фигуру, представляющую собой две четырехгранные пирамиды, сложенные основаниями (рис. 6.8). Щелкните правой кнопкой мыши, чтобы выключить режим создания выбранного вспомогательного объекта.
Рис. 6.8.
Вид значков некоторых вспомогательных объектов разновидности VRML 97 в окне проекции 3ds max
4. Не отменяя выделения вспомогательного объекта, переключитесь на командную панель M o d i f y (Изменить) и выполните настройку его параметров. В частности, параметр Icon Size (Размер значка) позволяет задать размер значка вспомогательного объекта в окнах проекций. Из двенадцати вспомогательных объектов разновидности VRML 97 объекты Navlnfo (Навигация), Background (Фон), Fog (Туман) и Inline (Вставка) можно условно отнести к объектам, определяющим общие характеристики VRML-сцеп. Остальные объекты, такие как Billboard (Стенд), LOD (Уровень детальности), Anchor (Якорь), TouchSensor (Датчик касания), ProxSensor (Датчик приближения), TimeSensor (Датчик времени), Sound (Звук) и AudioClip (Аудиоклип), служат для придания VRML-сцепе интерактивных возможностей. Далее рассматриваются назначение и порядок настройки отдельных вспомогательных объектов.
CD
358
Глава 6. Настройка и экспорт сцен в формате VRML
Вспомогательный объект Navlnfo Вспомогательный объект N a v l n f o (Навигация), показанный на рис. 6.9, следует включать в состав любой трехмерной сцены, предназначенной для экспорта в формате VRML. С его помощью выбирается допустимый способ перемещения в трехмерном пространстве, обеспечивается настройка высоты расположения камеры над опорной поверхностью при варианте перемещения Walk (Прогулка), задается высота препятствий, на которые может подниматься аватар, устанавливается предельное расстояние до препятствия, на котором камера останавливается при столкновении с преградой, и настраивается еще ряд параметров.
Значок вспомогательного объекта Navlnfo в окне проекции 3ds max
Значок вспомогательного объекта N a v l n f o (Навигация) выглядит как стрелка компаса. Создав этот вспомогательный объект, переключитесь на командную панель Modify (Изменить) и настройте его параметры в свитке N a v i g a t i o n l n f o (Навигация), показанном па рис. 6.10.
Рис. 6.10. Свиток параметров объекта Navlnfo
Раскрывающийся список Туре (Тип) в верхней части свитка служит для выбора одного из вариантов перемещений в виртуальном мире: W A L K (Прогулка), E X A M I N E (Исследование), FLY (Полет) и NONE (Нет). Назначение и использование этих вариантов описано ранее в разделе «Варианты перемещений в виртуальном трехмерном мире».
Объекты 3ds max разновидности VRML 97
359
Установка флажка Headlight (Прожектор) обеспечивает включение источника света при просмотре экспортированной сцены в окне просмотра VRML-браузера. Этот осветитель всегда светит «из-за спины» зрителя. Если в составе сцены есть осветители, не имеет смысла устанавливать этот флажок. Счетчик Visibility Limit (Предел видимости) задает расстояние до дальней плоскости отсечки камеры. Любые объекты за пределами этой плоскости не будут видны при просмотре сцены в окне VRML-браузера. Нулевое значение данного параметра выключает действие плоскости отсечки, так что становятся видимыми все объекты. Счетчик Speed (Скорость) задает величину скорости перемещения в единицах в секунду. С его помощью можно заставить камеру в окне VRML-браузера перемещаться быстрее или медленнее. Группа параметров Avatar Size (Размер аватара) служит для настройки следующих характеристик исследователя виртуального мира: D Terrain (Над землей) — позволяет задать высоту положения камеры над горизонтальной плоскостью, проходящей через точку Z -0. Этот параметр можно рассматривать как рост аватара; П Collision (Столкновение) — задает минимальное расстояние до объекта, на которое может подойти камера, после чего определяется ситуация столкновения с объектом. Целесообразно задавать величину Collision (Столкновение) равной 1/10-1/7 величины Terrain (Над землей); П Step Height (Высота шага) задает предельную высоту препятствия, на которое может подняться аватар при перемещении по сцене. Целесообразно задавать величину Step Height (Высота шага) равной приблизительно 1/4-1/3 величины Terrain (Над землей). Всякий объект сцены, высота которого превышает Step Height (Высота шага), будет считаться непреодолимым препятствием, перед которым камера будет останавливаться на расстоянии Collision (Столкновение). В режиме перемещения Walk (Прогулка) параметр Terrain (Над землей) действует следующим образом. При загрузке сцены в окно VRML-браузера камера устанавливается на той высоте над горизонтальной плоскостью, проходящей через начало координат, на какой она была установлена в трехмерной сцене в программе 3ds max. Если под камерой есть какой-то объект, например плоскость основания сцены, то при попытке сдвинуть камеру, то есть выполнить перемещение типа plan (смена плана) или pan (панорама), камера моментально устанавливается на высоту над объектом, заданную в счетчике Terrain (Над землей). Если под камерой нет никакого объекта, она будет перемещаться на исходной высоте до столкновения с препятствием, после чего также устанавливается на высоту T e r r a i n (Над землей) над плоскостью, проходящей через начало координат. Чтобы в момент начала движения камеры или при столкновении камеры с препятствием не наблюдалось ее скачка по высоте, следует устанавливать в счетчике Terrain (Над землей) значение, соответствующее исходной высоте камеры над горизонтальной плоскостью, проходящей через начало координат, то есть значению Z-коордииаты положения камеры. Например, если в трехмерной сцене камера установлена так, что ее координата Z - 160 единиц, следует задавать параметр Terrain (Над землей) равным 160.
Глава б. Настройка и экспорт сцен в формате VRML
360
Вспомогательный объект Background Вспомогательный объект B a c k g r o u n d (Фон) позволяет настроить цвета неба (sky) и земли (ground) трехмерной сцены или применить текстурные карты, имитирующие фон сцены. Вид значка этого объекта в окнах проекций показан на рис. 6.11. Он выглядит как стилизованное изображение горы и солнца над пей.
Рис. 6.11. Значок вспомогательного объекта Background в окне проекции 3ds max
Создав этот вспомогательный объект, переключитесь на командную панель Modify (Изменить) и настройте его параметры в свитках Sky Colors (Цвета неба), Ground Colors (Цвета земли) и Images (Изображения), показанных на рис. 6.12.
liiflfiii II
&|
щШ-? ; . #ящ а
б
в
Рис. 6.12.: Свитки Sky Colors, Ground Colors и Images с параметрами объекта Background
Под цветами «неба» и «земли» понимаются цвета верхней и нижней полусфер условной сферы, охватывающей сцену. Для настройки этих цветов используйте
361
Объекты 3ds max разновидности VRML 97
следующие элементы управления из однотипных свитков Sky Colors (Цвета неба) и Ground Colors (Цвета земли): п N u m b e r of Colors (Число цветов) — этот переключатель позволяет выбрать число цветов раскраски полусферы: One (Один) — вся полусфера будет зали- CD та одним цветом (рис. 6.13); Two (Два), Three (Три) — для раскраски будет 1:мл1 использован градиентный переход между двумя или тремя цветами; 3| D:«dsmaxfi\meshes\WRL\Bacground.WRL -Microsoft Internet Expl.. Файл
Правка ;
•"
Вид €1
Избранное
Сервис
Справка
И И в; :р Поиск '^'Изданное ^f Медиа
;• ЩЩ ''
•с; [Ц] D:\3dsmax6\meshes\WRL\Bacground,WRL
I Рис 6.13.
гШ Готово
Вид в окне VRMLбраузера трехмерной сцены, для которой использован один белый цвет неба и один коричневый цвет земли
П Color One (Цвет № 1) — позволяет выбрать оттенок цвета с помощью образца; D Color Two (Цвет № 2), Color Three (Цвет № 3) — образцы для выбора оттенков второго и третьего цветов. В счетчике A n g l e (Угол) задается угловая высота размещения данного оттенка над горизонтом. При этом угол в 0° соответствует зенитной точке, 45° -- участку посередине между зенитом и горизонтом, 90° — участку непосредственно над горизонтом. Свиток Images (Изображения) позволяет выбрать изображения графических текстур, которые наносятся на внутренние поверхности шести граней воображаемого куба, охватывающего сцену. Имена файлов растровых текстур задаются в одинаковых текстовых полях Back (Сзади), Bottom (Снизу), Front (Спереди), Left (Слева), Right (Справа) и Тор (Сверху). Следует иметь в виду, что если в текстовом поле Bitmap URL Prefix (URL-префикс растровых текстур) окна VRML-экспортера указан какой-то префикс имен файлов : растровых текстур, этот префикс будет З А М Е Н А НИ Е добавляться и к именам файлов, указан: Выбранные цвета нельзя увидеть в окнах иым в текстовых полях свитка Images проекций 3ds max, они видны только по(Изображения) вспомогательного объек- : еле экспорта сцены втне VRML-браузера. та Background (Фон). Это означает, что :E:::-:;; • : : : • : : • . : : : - - : • •: :х i,: ; : :л
Глава б. Настройка и экспорт сцен в формате VRML
362
при использовании префикса имей файлы текстур фона должны на:водиться в той же папке, что и файлы текстур материалов, использованных в составе сцены. Предположим, например, что файлы текстур фона хранятся в папке с именем maps, вложенной в папку, в которой сохранены экспортированные файлы с ей типа wrl а в поле Bitmap URL Prefix (URL-префикс растровых текстур) окна VRML- экспортера указан префикс maps. Б этом случае следует в текстовых полях свитка Images (Изображения) вспомогательного объекта Background (Фон) у| азывать просто имена файлов, например sky.jpg. Следует учитывать, что текстуры фона сцены образуют видимые стыю в области ребер воображаемого куба, как показано на рис. 6.14.
Файл
Правка
Вид : Избранное
Сервис
Ш !3!.Ш'«1.;
Справка Новоизбранное | |
D:\3dsmax6\meshes\WRUBacgroijnd.WRL
Рис. 6.14. Между изображениями текстур фона, нанесенными на гран/i воображаемого куба, видны явные стыки Е< области ребер куба
Вспомогательный объект Fog CD
Вспомогательный объект Fog (Туман), показанный на рис. 6.15, позволь задать цвет и область действия эффекта тумана, который будет наблюдаться в просмотра VRML-браузера. Собственно туман, как субстанция, которая заполняла бы пространства VRMLсцены, никак не моделируется. Наличие тумана при просмотре сцег ы в окш VRML-браузера сводится к постепенному изменению цвета объектов сцены действипо мере их удаления от камеры (рис. 6.16). При этом цвет фона под ем тумана не меняется. Создав этот вспомогательный объект, переключитесь на командную панель Modify (Изменить) и настройте его параметры в свитке Fog (Туман) (рис. 6.17).
3АМЕЧАНИЕ
363
Объекты 3ds max разновидности VRML 97
Рис. 6.15.
Значок вспомогательного объекта Fog в окне проекции 3ds max
1 p:pdsmox6\meshes\WRL«ig22-012.WRL , Microsoft Internet txpl,. Файл
Правка
Назад -
Вид
Избранное -
Сервис .
i
Справка ~Поиск ^Избранное
Рис. 6.16.
Эффект тумана в окне VRML-браузера сводится к изменению цветов объектов по мере их удаления
Свиток параметров вспомогательного объекта Fog
Используйте следующие элементы управления: П Туре (Тип) — позволяет выбрать один из двух типов тумана: EXPONENTIAL (Экспоненциальный) или LINEAR (Линейный), которые отличаются скоростью
364
Глава б. Настройка и экспорт сцен в формате VRML
нарастания плотности тумана. У линейного тумана плотность нарастает медленнее. Экспоненциальный туман выглядит более натурально; D Color (Цвет) — позволяет выбрать оттенок цвета тумана; D Visibility Range (Видимая область) — позволяет задать расстояние о^ камеры, на котором туман полностью скрывает все объекты.
CD
Чтобы туман выглядел в окне VRML-браузера почти как настоящий, можно применить одну хитрость. Введите в состав сцены вспомогательный объект Background (Фон) и назначьте в качестве единственных оттенков цве: и «земли» тот же цвет, который выбран для тумана. В этом случае удаленные от камеры объекты будут весьма правдоподобно «тонуть в тумане» в окп з VRMLбраузера, сливаясь с фоном (рис. 6.18). По мере приближения камеры удаленные объекты будут постепенно прорисовываться, -«появляясь из тумана».
Файл
Правка
Вид
Избранное
Сервис
Справка
ej ! j:J Поиск 'Щ< Избранное •
-
•» -.
ilSfci щ йзйймь РЗ: Переход
Шйсу;б.18. Усовершенствование эффекта тук/ана в окне VRMLбраузера до гтигается за счет выбс ра цвета фона таким же, как цвет тумана
Вспомогательный объект Inline CD
Вспомогательный объект Inline (Вставка), добавленный в состав VRML-сцены, служит ссылкой на другую VRML-сцену. При загрузке сцены в окно VRML-браузера па место значка объекта I n l i n e (Вставка), показанного на рис. 6.19, подставляются объекты из сцепы, па которую он ссылается. Чтобы вставляемые объекты располагались в тех местах сцены, в каких они располагаются в сцене-источнике, следует размещать вспомогательный объект Inline (Вставка) так, чтобы его опорная точка находилась в начале глобальной системы координат.
365
Объекты 3ds max разновидности VRML 97
Рис. 6.19.
Значок вспомогательного объекта Inline в окне проекции 3ds max
У объекта I n l i n e (Вставка) можно настроить следующие параметры в свитке VRML InLine (Вставка VRML), показанном па рис. 6.20: D Insert U R L (Вставить U R L ) — в этом текстовом поле следует указать полный путь к файлу wrl, сцена из которого должна быть вставлена па место объекта Inline (Вставка); П Bookmarks (Избранное) — вызывает окно диалога с перечнем избранных VRMLсцен, из которого можно выбирать нужные сцены для вставки; П Bounding Box (Габаритный контейнер) — этот переключатель позволяет выбрать один из двух вариантов определения размеров габаритного контейнера вставляемой сцепы: Use Icon Size (Использовать размер значка) — вставляемая сцепа будет масштабирована так, чтобы ее габаритный контейнер соответствовал размеру значка объекта Inline (Вставка), Calculate in Browser (Рассчитать в браузере) — VRML-браузер будет использовать исходные размеры вставляемых объектов без масштабирования.
:Г~
Рис. 6.20. Свиток параметров вспомогательного объекта Inline
Предположим для примера, что мы связали объект I n l i n e (Вставка) в сцепе, показанной ранее па рис. 6.19, с VRML-сценой, показанной па рис. 6.21, а. После экспорта сцепы и загрузки ее в окно VRML-браузера па место объекта Inline (Вставка) подставляется сцепа, на которую сделана ссылка (рис. 6.21, б).
366
Файл
Глава 6. Настройка и экспорт сцен в формате VRML
Главка
Вид
Избранное
Сервис
Справка Поиск : ^у Убранное -:; |Ц1 Медиа
Щ D:\3dsmax61nneshes\WRHflg22-019.WR
Файл
Правка :Вид : Избранное
Сервис
Справка
Нема : ' г: K^--mmi.liSiiiW^s. \ : 5;.; Паюс ,:'f f Избраимое Ц4Медиа Иккс: Ш D;\3ti!niax6\me!hes\WRL\flg22-Oie.WRL
И! И Пгрехад
VRML-сцена (а), на которую ссылается объект Inline (см. рис. 6.19), подставляется в окне VRML-браузера на место этого объекта (б)
Создание средств интерактивного взаимодействия с объектами VRML-сцены Вспомогательные объекты разновидности VRML 97, рассматриваемые в этом разделе, обеспечивают переходы по гиперссылкам, позволяют управлять анимацией, включать и выключать звуковое сопровождение сцены и выполнять иные интерактивные функции.
Создание средств интерактивного взаимодействия с объектами VRML-сцены
367
Вспомогательный объект Billboard Вспомогательный объект Billboard (Стенд), значок которого показан на рис. 6.22, позволяет заставить любой объект геометрической модели сцены выравниваться заданной стороной по отношению к активной камере в окне VRML-браузера. При перемещении камеры объект как бы сопровождает ее взглядом, поворачиваясь так, чтобы все время была видна его лицевая сторона. Это дает возможность размещать в составе VRML-сцепы информационные щиты, надписи на которых будут всегда читаться, с какого бы ракурса ми ни рассматривали сцену.
CD
Объект Billboard
Рис. 6.22. Значок вспомогательного объекта Billboard в окне проекции 3ds max
Вспомогательный объект Billboard (Стенд) следует располагать в составе сцены так, чтобы ось Y его локальных координат была ориентирована вдоль линии визирования той камеры, с которой начнется просмотр сцены в окне VRML-браузера, и направлена в ту же сторону, в которую смотрит эта камера. Чтобы добиться этого, выберите в раскрывающемся списке Reference Coordinate Sysytem (Система координат) главной панели инструментов вариант Local (Локальная) и выполните поворот объекта B i l l b o a r d (Стенд) вокруг его вертикальной оси Z. При выборе места расположения вспомогательного объекта Billboard (Стенд) нужно иметь в виду, что управляемый им объект геометрической модели сцены будет поворачиваться к камере не относительно собственной опорной точки, а относительно опорной точки объекта Billboard (Стенд). Объект геометрической модели трехмерной сцены, который должен быть всегда ориентирован лицевой стороной к активной камере, необходимо связать со значком вспомогательного объекта Billboard (Стенд), используя инструмент Select and Link (Выделить и связать). Лицевую сторону управляемого объекта следует ориентировать в направлении навстречу оси Y локальных координат вспомогательного объекта. При переключении с камеры па камеру в окне VRML-браузера выбранный геометрический объект будет поворачиваться относительно оси Z объекта Billboard (Стенд) так, чтобы оставаться повернутым лицевой стороной к камере (рис. 6.23).
CD
368
Файл
Глава б. Настройка и экспорт сцен в формате VRML
Правка
Вид
Избранное
Сервис . Справк Поиск
v
А;;;ио {$ D:\3dsmax6imeshes\WKL\Bilboard.WRI
Объект-параллелепипед с надписью «3ds тахб» поворачивается лицевой стороной к зрителю при переключении с одной камеры (а) на другую, направленную на сцену с противоположной стороны (6)
В свитке параметров объекта Billboard (Стенд), помимо счетчика Icon Size (Размер ееТСЯ ВСеГ
0/
парамет
;
лажок Screen
экоани ' 7 ° Т Р * Alignment (Выравнивание по экрану). Установка этого флажка ведет к тому, что геометрический объект, управляемый вспомогательным объектом Billboard (Стенд), будет оставаться всегда выровненным относительно краев экрана, даже если камера будет наклонена (рис 6 24) что возможно в режиме перемещений Fly (Полет) и Examine (Исследование) '
Использование объекта LOD Вспомогательный объект LOD (Level Of Detail - Уровень детальности) изначально )ыл задуман для автоматической замены объектов малой детальности, которые
Создание средств интерактивного взаимодействия с объектами VRML-сцены
369
должны быть видиы с большого расстояния, объектами повышенной детальности, которые должны быть видиы при приближении камеры. Однако с его помощью можно выполнять автоматическую замену любого объекта сцены при приближении к нему камеры на заданное расстояние любым другим объектом. Последовательно заменяющих друг друга объектов может быть несколько. 3lp;UdOTiax6imeshes\WRL\BiUboard.WRL .Microsoft internet Explorer В jS)t Файл
Правка
Вид
Избранное
Сервис
Справка
D:\3dsmax6\meshes\WRL\Billboard.WRL
Рис. 6.24.
Мой компьютер
Установка флажка Screen Alignment обеспечивает сохранение ориентации объекта, управляемого вспомогательным объектом Billboard, при наклонах камеры
Для использования вспомогательного объекта LOD (Уровень детальности) необходимо подготовить несколько (два или более) геометрических объектов, размещенных в одном и том же месте сцепы (рис. 6.25). Затем нужно включить в состав сцепы вспомогательный объект LOD (Уровень детальности) и разместить его в том же месте, где и оба объекта. Значок этого объекта изображает трехмерную надпись LOD.
Рис. 6.25. Четырехугольная пирамида при приближении камеры должна заменяться размещенным внутри нее конусом при помощи вспомогательного объекта LOD (Уровень детальности), помещенного на верху пирамиды
CD
370
Глава 6. Настройка и экспорт сцен в формате VRML
Создав объект LOD (Уровень детальности), следует настроить его параметры в свитке Level Of Detail (Уровень детальности) на панели Modify (Изменить), показанном на рис. 6.26.
ЗАМЕЧАНИЕ В рассматриваемом :на. рис. 6.25 примере ^объект малой детальности (четырехгранная пирамида) представляет собой примитив того же типа, что и объект высокой детальности (конус), но с уменьшенным до четырех числом сторон. Чтобы при экспорте , не произошло замены и того и другого объекта на примитивы-конусы стандарта VRML, у которых всегда по 24 боковых eraФоны, следует или.сбросить флажок Smooth (Сглаживание) у примитива-конуса 3ds max, изображающего пирамиду, или; сбросить флажок Primitives (Примитивы) в окне диалога УВМ1;97Ща«еШкспорТ; в VRML 97).:
Добавьте геометрические объекты, которые последовательно будут заменять собой друг друга при приближении камеры (условно можно считать их объектами малой, средней и повышенной детальности), в список свитка Level Of Detail (Уровень детальности). Для этого щелкните на кнопке Pick Objects (Указать объекты), а затем поочередно щелкните на каждом из объектов. Выделение объектов, перекрывающих друг друга, удобно делать в окне, вызываемом при нажатой кнопке Pick Objects (Указать объекты) нажатием клавиши h. Еще раз щелкните на кнопке Pick Objects (Указать объекты), чтобы выключить режим выбора объектов. Настройте расстояния до геометрических объектов, последовательно выделяя их имена в списке объекта LOD (Уровень детальности) и используя счетчик Distance (Расстояние). Контролируйте изменение расстояния визуально в окнах проекций по изменению радиуса габаритной сферы синего цвета, окружающей объект LOD (Уровень детальности), как показано на рис. 6.27.
r
S311
РЙ&: 6.26. Свиток параметров вспомогательного объекта LOD (Уровень детальности)
В результате в списке свитка Level Of Detail (Уровень детальности) должны появиться имена объектов и расстояния, на которых они становятся видимыми (рис. 6.28).
CD
В приведенном на рисунке примере объект СопеСИ (КонусОТ), изображающий четырехгранную пирамиду, будет виден с расстояния в 500 и более единиц до расстояния в 350 единиц (рис. 6.29, а), объект Сопе02 (Конус02), изображающий восьмигранную пирамиду, — па расстояниях от 350 до 250 единиц (рис. 6.29, б) и объект СопеОЗ (КонусОЗ), представляющий собой конус с двадцатью четырьмя гранями, соответственно — с расстояния в 250 и менее единиц (рис. 6.29, в).
Создание средств интерактивного взаимодействия с объектами VRML-сцены
371
Рис. 6.27. Радиус действия вспомогательного объекта LOD (Уровень детальности) изображается в окнах проекций в виде сферы синего цвета
1Щр1р ConeGI 5DtT
Рис. 6.28. iljj
В списке свитка Level Of Detail указаны объекты и расстояния срабатывания
Использование объектов Anchor Вспомогательный объект A n c h o r (Якорь), показанный на рис. 6.30, позволяет вы-
CD
поднять переходы по гиперссылкам или переключение на заданную камеру по 1ЯВМ щелчку на определенном объекте трехмерной сцены, называемом объектом-переключателем (trigger object).
Рис. 6.29. При наезде камеры на четырехгранную пирамиду (а) она заменяется на восьмигранную (б), а затем на конус с 24 гранями (в)
372
Глава б. Настройка и экспорт сцен в формате VRML
Рис. 6.30. Значки вспомогательного объекта Anchor имеют вид трехмерных якорей
CD
Объект-переключатель характеризуется тем, что при установке па него указателя мыши в окне просмотра сцепы VRML-браузера курсор принимает вид руки с якорем, как показано на рис. 6.31. Такое изменение формы курсора указывает пользователю, что па данном объекте можно выполнить щелчок кнопкой мыши для перехода по гинерссылке или переключения на другую камеру.
Правка
Вид
Избранное
Сервис
|^D;\3dsmax6\meshes\WRL\Anchor,WRL
Справка
,
i c-i
-&\ fj]f Переход .'KCcwwsl* "
Рис. 6.31.
При установке указателя мыши на объект-переключатель, связанный со вспомогательным объектом Anchor, курсор принимает вид руки с якорем
Настройка свойств вспомогательного объекта Anchor (Якорь) производится в свитке с таким же названием на командной панели Modify (Изменить) (рис. 6.32). Чтобы связать объект Anchor (Якорь) с объектом трехмерной сцены, который будет играть роль объекта-переключателя, щелкните в свитке Anchor (Якорь) на кнопке Pick Trigger Object (Указать объект-переключатель), затем щелкните на нужном объекте в любом из окон проекций. Имя объекта должно появиться в поле параметра Trigger Object (Объект-переключатель) под кнопкой. В текстовое поле Description (Описание) можно ввести комментарий, который будет появляться в строке состояния браузера при установке курсора на объект,
Создание средств интерактивного взаимодействия с объектами VRML-сцены
373
связанный с переключателем. Например, если объект Anchor (Якорь) будет обеспечивать переключение на новую камеру, можно ввести в это поле имя камеры. Имя камеры будет появляться также и под курсором в виде всплывающей подсказки (рис. 6.31). Комментарий необходимо набирать латинскими буквами. Выберите тип действий, которые будут происходить по щелчку па объекте-переключателе, установив переключатель в свитке Anchor (Якорь) в одно из двух положений: П Hiperlink Jump (Переход по гиперссылке) — этот вариант обеспечивает по щелчку на объекте-переключателе переход по гиперссылке на сетевой адрес, указанный в поле URL. Это может быть адрес ресурса сети Интернет или локальный адрес HTML-страницы, содержащей текстовую информацию, изображения или видеоклип. Чтобы ресурс, на который сделана ссылка, открывался в отдельном окне браузера, следует в поле Parameter (Параметр) ввести строку target=_blank. Щелчок на кнопке Bookmarks (Избранное) вызывает окно диалога, с помощью которого можно выбрать URL-адрес из набора избранных адресов;
ill
Рис, 6.32. Свиток параметров вспомогательного объекта Anchor
П Set Camera (Задать камеру) — выбор этого варианта позволяет по щелчку па объекте-переключателе произвести переключение на просмотр сцены через объектив камеры, выбранной в раскрывающемся списке Camera (Камера). Вспомогательные объекты Anchor (Якорь) широко используются при моделировании виртуальных выставок и музеев. В качестве объектов-переключателей назначаются экспонаты такого музея — картины, развешенные по стенам виртуальной выставки, или скульптуры, расставленные в виртуальных залах. Щелчок на любом из таких экспонатов может вызывать появление HTML-страницы с подробным рассказом об истории создания произведения, о его авторе, с укрупненной фотографией картины или скульптуры и т. п.
374
Глава б. Настройка и экспорт сцен в формате VRML
Использование датчиков касания Вспомогательный объект TouchSensor (Датчик касания) предназначен для запуска заготовленной анимации определенных объектов трехмерной сцены при щелчке па объекте-переключателе.
CD
К примеру, в составе сцены может иметься дверь, створка которой анимироваиа на открывание. В качестве объекта-переключателя может быть назначена ручка двери. Объект-переключатель датчика касания характеризуется тем, что при установке па него указателя мыши в окне просмотра сцены VRML-браузера курсор принимает вид руки, как показано па рис. 6.33, а. Такое изменение формы курсора указывает пользователю, что на данном объекте можно выполнить щелчок кнопкой мыши для запуска анимации. По щелчку на ручке дверь будет открываться (рис. 6.33, б).
Файл
Правка
Вид
Избранное
.Сервис
Справке
Лда-i;«] D:\3dsmax6\meshes\WRL\Toi
*3D;Hd8majt6\meshesWRLiTouchSeri5or.WRL -Mlcrmifl Internet £,. Файл
Правка
Вид. Ч/Ьбрамное
Сервис
Справка Поиск
-JimaxemeshesWRLToudiSeni'
Рис. 6.33. При установке указателя мыши на объект-переключатель датчика касания курсор принимает вид руки (а), и после щелчка кнопкой мыши сраба-тывает анимация (б)
Создание средств интерактивного взаимодействия с объектами VRML-сцены
375
Чтобы создать интерактивную VRML-сцепу с анимацией, управляемой с помощью вспомогательного объекта TouchSensor (Датчик касания), подготовьте в программе 3ds max трехмерную модель сцены. Выполните анимацию каких-то объектов, скажем, как в рассмотренном примере, анимацию поворота створки двери. Добавьте в состав сцены вспомогательный объект TouchSensor (Датчик касания), значок которого имеет вид руки с вытянутым указательным пальцем (рис. 6.34).
Рис. 6.34, В трехмерную сцену помещен значок вспомогательного объекта TouchSensor
Переключитесь на командную панель M o d i f y (Изменить) и настройте параметры датчика касания в свитке Touch Sensor (Датчик касания), показанном на рис. 6.35.
Рис. 6.35. Свиток параметров вспомогательного объекта TouchSensor
Укажите объект-переключатель. Для этого щелкните на кнопке Pick T r i g g e r Object (Указать объект-переключатель), а затем щелкните на нужном объекте в любом из окон проекций. Имя объекта должно появиться в поле параметра Trigger Object (Объект-переключатель) под кнопкой. В рассматриваемом примере щелкните па сфере, изображающей ручку двери. Затем укажите анимированный объект или объекты. Для этого щелкните на кнопке Pick Action Objects (Указать действующие объекты), а затем последовательно общелкайте все объекты, имеющие анимацию, действие которой должно включаться но щелчку на объекте-переключателе. В рассматриваемом примере щелкните
CD
376
Глава 6. Настройка и экспорт сцен в формате VRML
на полотне створки двери. Имена выбранных объектов должны появиться в списке свитка. Еще раз щелкните на кнопке Pick Action Objects (Указать действующие объекты), чтобы выключить режим выбора действующих объектов. Если какие-то объекты будут включены в список действующих ошибочно, выделите их имена в списке и щелкните на кнопке Delete (Удалить). Выполните экспорт сцены в формате VRML и убедитесь, что после загрузки экспортированной сцены в окно VRMLбраузера анимация не начинает сразу же действовать. Установите курсор на объект-переключатель и, когда он примет форму руки, щелкните кнопкой мыши. Анимация управляемого объекта должна сработать один раз.
3АМЕЧАНИЕ
В качествеЪбъекта'-'переключагеля можно указывать са^;'яеиствующий: объект, .анимация которогб1д6лжна"; включаться по :: ; щелчку на переключателе. : : ::^ ; - ; :.,/-
ЗАМЕЧАНИЕ
3
^проверить на ::;eiaa;:TQucKSensor::;(flaT4^x касания).
Если еще раз щелкнуть на объекте-переключателе, то анимация воспроизведется еще раз с начала. Применительно к рассматриваемому примеру это значит, что дверь закроется и тут же снова откроется.
Использование датчиков приближения
CD
Вспомогательный объект ProxSensor (Датчик приближения) предназначен для включения заготовленной анимации определенных объектов сцены в случае, если камера попадает в прямоугольную трехмерную область заданных размеров. Например, в составе сцены может иметься дверь, створка которой аиимирована на открывание. Разместив перед дверью зону действия датчика приближения, которая имеет вид каркасного параллелепипеда (рис. 6.36), можно обеспечить ее автоматическое открывание при приближении камеры к двери.
Рис. 6.36. Перед анимированной дверью в трехмерной сцене размещена зона действия вспомогательного объекта ProxSensor
377
Создание средств интерактивного взаимодействия с объектами VRML-сцены
Значок зоны действия вспомогательного объекта ProxSensor (Датчик приближения) создается как обычный параллелепипед. Щелкните в окне вида сверху или в окне перспективной проекции и растяните по диагонали основание зоны, затем отпустите кнопку мыши и дополнительно переместите курсор, придавая зоне высоту. Разместите зону действия так, чтобы камера, с которой начнется показ сцены в OKneVRML-браузера, находилась за пределами зоны, иначе анимация сработает сразу после загрузки сцены. После этого переключитесь на командную панель Modify (Изменить) и настройте параметры датчика приближения в свитке Prox Sensor (Датчик приближения), показанном на рис. 6.37.
.
Рис. 6.37. Свиток параметров вспомогательного объекта ProxSensor
Счетчики Length (Длина), Width (Ширина) и Height (Высота) позволяют уточнить размеры области срабатывания датчика. Параллелепипед зоны действия можно перемещать и поворачивать, как любой другой объект трехмерной сцены. Флажок Enable (Включено) включает и выключает действие датчика приближения. Кнопка Pick Action Objects (Указать действующие объекты) служит для того, чтобы указать, анимация каких объектов должна срабатывать при попадании камеры в окне VRML-браузера в зону действия датчика. Щелкните на кнопке Pick Action Objects (Указать действующие объекты), а затем общелкайте все нужные анимированные объекты сцены. Имена выбранных объектов должны появиться в списке свитка. Еще раз щелкните на кнопке Pick Action Objects (Указать действующие объекты), чтобы выключить режим выбора действующих объектов. Если какие-то объекты будут включены в список действующих ошибочно, выделите их имена в списке и щелкните на кнопке Delete (Удалить). Выполните экспорт сцепы в формате VRML. После ее загрузки в VRMLбраузер анимация не должна срабатывать (рис. 6.38, а). В рассматриваемом примере дверь должна оставаться закрытой. Переместите камеру ближе к аиимировашюму объекту так, чтобы она вошла в зону действия датчика приближения. Анимация должна сработать один раз (рис. 6.38, б).
:;,
j л,
:
ЗАМЕЧАНИЕ лЩращёлепипед зоны действия приближения1; не: отображается: в окне "про-' смсяра сцены УКМ1-браузера:::Зритель:сам:•. должен «нащуг!ать:>>;зону;х:р?|б;атывания датчика, перемещая::камеру в':;:простран: стае сцены. : . . •'•'• •'--.';...•;':;.' '"*'•• '*.-£•.
CD
378
Глава 6. Настройка и экспорт сцен в формате VRML
3 D:\3dsmax6\meshes\WfiLy>ro)iSensor,WW- - №*<:«"«>'< Internet Exp... p |[S|fXl Файл :Правка
Вид:
:
Избранное
Сервис
Справка:;
:
::
:
:
:
:
/
'•".':
Щ
" 1Й 1Й ©М;" no'KI< '^ИзбраннЕ1е %II'M°W* r.WRL
>v| ^ Переход
:
|
Рис. 6.38.
О
После загрузки сцены в VRML-браузер анимация не должна срабатывать (а), но должна включаться после приближения камеры к анимированному объекту (б)
Использование датчиков времени Вспомогательный объект TimeSensor (Датчик времени) предназначен для разделения анимации заданных объектов на ряд интервалов, каждый из которых можно воспроизводить независимо от другого. Например, в составе сцены может иметься дверь, которая анимироваиа на открывание с кадра 0 до кадра 50 и на закрывание с кадра 51 до кадра 100. С помощью двух датчиков времени можно разделить эту
Создание средств интерактивного взаимодействия с объектами VRML-сцены
379
анимацию па два интервала: открытие с кадра 0 до кадра 50 и закрытие с кадра 51 до кадра 100. Каждую из этих двух анимаций можно будет запускать отдельно с помощью датчиков касания или приближения, рассмотренных ранее. Чтобы применить датчики времени для управления анимацией в интерактивной VRML-сцене, подготовьте в программе 3ds max трехмерную модель сцены. Выполните анимацию каких-то объектов, скажем, как в рассмотренном примере, анимацию поворота дверной створки в положение полностью открытой двери и обратно. Создайте два датчика времени, значки которых имеют вид трехмерных часов-будильников (рис. 6.39).
Рис. 6.39/ В состав трехмерной сцены с анимированной дверью включены два вспомогательных объекта TimeSensor
Настройте параметры каждого из датчиков времени в свитке Time Sensor (Датчик времени) па командной панели Modify (Изменить), показанном па рис. 6.40.
Рис. 6.40, Свиток параметров вспомогательного объекта TimeSensor
Укажите номера начального и конечного кадров фрагмента анимации, управляемого данным датчиком, в счетчиках Start Time (Время старта), Stop Time (Время остановки). В рассматриваемом примере в счетчиках Start Time (Время старта), Stop Time (Время остановки) первого датчика времени укажите номера кадров
CD
380
Глава 6. Настройка и экспорт сцен в формате VRML
начала и конца интервала анимации открытия створки двери, то есть 0 и 50 В счетчиках Start Time (Время старта), Stop Time (Время остановки) второго датчика времени укажите номера кадров начала и конца интервала анимации закрытия створки двери, то есть 51 и 100. Укажите объекты, анимация которых управляется датчиками. Для этого щелкните на кнопке Pick Objects (Указать объекты), а затем общелкайте все нужные актированные объекты сцены. В рассматриваемом примере щелкните на створке двери. Имена выбранных объектов должны появиться в списке свитка Еще >аз, щелкните на кнопке Pick Objects (Указать объекты), чтобы выключить режим выбора анимировапных объектов. Если какие-то объекты будут включены в список но, выделите их имена в списке и щелкните на кнопке Delete (Удалить). Установка флажка Loop (Цикл) может при необходимости обеспечить циклическое повторение фрагмента анимации. Установка флажка Start On World Load апуск после загрузки сцены), который становится доступным при установленном флажке Loop (Цикл), заставит фрагмент анимации воспроизводиться сразу же после открытия сцены в окне VRML-браузера. В рассматриваемом примере с анимированнои дверью не устанавливайте эти флажки. Чтобы иметь возможность в интерактивном режиме включать каждый из фрагментов анимации, добавьте в состав сцепы два датчика касания (рис 6 41) УкаOhTrtTrT* объект-11еРеклю^тель (Trigger Object) и объекты действия (Action Objects). В рассматриваемом примере укажите в качестве объекта-переключателя для первого датчика касания сферу, имитирующую дверную ручку на наружной стороне створки двери. Для второго датчика касания укажите в качестве объекта-переключателя сферу, имитирующую дверную ручку па виутренпе! стороне створки двери. В качестве объектов действия укажите для обоих датчи" ков аиимировапную створку двери.
Рис. 6.41, В состав трехмерной сцены с анимированнои дверью добавлены два вспомогательных объекта TouchSensor Э К
С1ЮРТ СЦШЫ В Ф
РМатеV R M L и отк
ой
УбёдитёсГч т о ° Р те ее в окне VRML-браузера. rTRnnJir^'.it ° ,fai4J1KMкасаиия срабатывают, но пока оба они включают анимацию на открытие и на закрытие, то есть разделения интервала анимации на - отдельно открытие двери и отдельно закрытие - „е происходит. Причина этого состоит в погрешности работы модуля экспорта программы 3ds max, для исправления которой требуется правка кода VRML-сцепы.
Создание средств интерактивного взаимодействия с объектами VRML-сцены
381
Чтобы выполнить эту несложную правку применительно к рассматриваемому примеру с дверью, откройте файл экспортированной сцены типа *.wrl для редактирования в приложении Notepad (Блокнот). Перейдите к последним строкам кода, содержащим группу операторов языка VRML, начинающихся с ключевого слова ROUTE. Это операторы пересылки. Их назначение — присваивать значение параметра, указанного в теле оператора слева от ключевого слова ТО, параметру, указанному справа от слова ТО. Предположим, что имя объекта, изображающего створку двери, ВохСИ. Найдите строку кода: ROUTE TouchSensorOl-SENSOR.touchTime TO BoxOl-TIMER.startTime Смысл этой строки: время касания (touchTime) первого датчика касания (TouchSensorOI-SENSOR), управляющего открытием створки двери, присваивается времени старта (startTime) таймера, автоматически созданного программой для управления створкой двери — объектом Вох01 (этот таймер имеет имя ВохСИ -TIMER). Требуется заменить в этой строке имя автоматически создаваемого таймера (Вох01TIMER) па имя таймера, созданного нами и настроенного на открывание створки. Предположим, что в программе 3ds max этот таймер имеет имя TimeSensorOL В коде файла wrl такой таймер приобретает имя TimeSensorOI-TIMER. В итоге после замены отредактированная строка должна иметь вид:
ROUTE TouchSensorOl-SENSOR.touchTime TO TimeSensorOl-TIMER.startTime Для настройки управления закрытием створки найдите строку кода: ROUTE T o u c h S e n s o r 0 2 - S E N S O R . t o u c h T i m e TO B o x O l - T I M E R . s t a r t T i m e Действуя, как описано выше, замените в ней имя таймера BoxOl-TIMER на имя таймера, управляющего закрытием створки (TimeSensor02-TIMER), придав строке вид:
ROUTE TouchSensor02-SENSOR.touchTime TO TimeSensor02-TIMER.startTime Сохраните файл типа wrl, откройте его в окне VRML-браузера и убедитесь в правильной работе раздельной анимации открытия и закрытия створки. Теперь после щелчка на сфере дверной ручки с наружной стороны двери створка должна CD только открываться, а после щелчка на сфере дверной ручки с внутренней сторо- ГШ1 ны двери (рис. 6.42) — только закрываться.
Добавление средств интерактивного управления звуком Интерактивное управление звуком в VRML-сцене осуществляется с помощью вспомогательного объекта Sound (Звук). Этот вспомогательный объект позволяет создавать в трехмерной сцене пространственные области в виде эллипсоидов CD (рис. 6.43). Когда при просмотре сцены в окне VRML-браузера камера попадает ЕГЯЯ в пределы такой области, начинает озвучиваться заданная звукозапись. Это может быть просто музыка или записанный заранее дикторский текст с рассказом об объекте трехмерной сцены или с подсказкой о действиях, которые следует
382
Глава б. Настройка и экспорт сцен в формате VRML
выполнить пользователю. Звук может быть всеиаправлеипым или объемным, меняясь по громкости в зависимости от расположения камеры. Файл, содержащий звукозапись, задается при этом с помощью еще одного вспомогательного объекта, Audio Clip (Аудиоклип).
Щ 'С*3|^-'Пс*'ск *У D:\3dsmax6\meshes\WRLVnmeSerMor.WRI.
Рис. 6.42.
Анимация створки двери разделена на два фрагмента, и после ее открытия требуется щелкнуть на ручке с внутренней стороны створки для ее закрытия
Рис. 6.43.
Перед объектом-телевизором в трехмерной сцене размещена зона действия вспомогательного объекта Sound в виде эллипсоида
Значок вспомогательного объекта Sound (Звук), как и всех прочих объектов разновидности VRML, создается в окнах проекций Тор (Вид сверху) или Perspective (Перспектива) и представляет собой плоскость с исходящей из нее стрелкой, как показано на рис. 6.44. Объемная стрелка, исходящая из плоскости значка, указывает основное направление распространения звука. Значок можно перемещать и поворачивать, чтобы должным образом разместить в составе сцены. Далее добавьте в состав сцены вспомогательный объект Audio Clip (Аудиоклип), значок которого имеет вид тарелки громкоговорителя (рис. 6.44).
Создание средств интерактивного взаимодействия с объектами VRML-сцены
383
Рис. 6.44.
Вид значков вспомогательных объектов Sound и Audio Clip в окнах проекций 3ds max
Создав значок вспомогательного объекта Audio Clip (Аудиоклип), настройте его параметры в свитке с таким же названием на командной панели Modify (Изменить), показанном на рис. 6.45.
Рис 6.45. Свиток параметров вспомогательного объекта Audio Clip
Укажите место расположения звукового файла в текстовом поле URL. Допускается использовать звуковые файлы форматов mid или wav. Установите флажки Loop (Цикл) для непрерывного циклического воспроизведения звука и Start On World Load (Запуск после загрузки сцены), чтобы звуковой файл был в готовности к воспроизведению сразу после загрузки сцены в окно VRML-браузера. Звук, однако, не будет слышен, пока камера не попадет в область пространства, заданную объектом Sound (Звук). Текстовое поле Description (Описание) позволяет ввести комментарий, который может отображаться некоторыми браузерами. Счетчик Pitch (Высота тона) позволяет изменять высоту звучания. Значение параметра, равное 1, соответствует исходной высоте звучания. Настроив объект Audio Clip (Аудиоклип), выделите значок объекта Sound (Звук) и настройте параметры этого объекта в свитке Sound (Звук) па командной панели Modify (Изменить) (рис. 6.46). Во-первых, установите размеры объемной области, при попадании в которую камеры наблюдения сцены будет включаться воспроизведение звукового файла. Область задается двумя эллипсоидами: внешним большего размера и красного
384
Глава 6. Настройка и экспорт сцен в формате VRML
цвета и внутренним меньшего размера и синего цвета. За пределами внешней красной области звук не слышен. Внутри синей области звук имеет максимальную громкость. В пределах между красной и синей областями громкость звука нарастает от нуля до максимума.
ШИТ Рис. 6.46. Свиток параметров вспомогательного объекта Sound
Размеры внешней эллиптической области задаются в счетчиках Max Front (Максимум спереди), Max Back (Максимум сзади); внутренней — в счетчиках Min Front (Минимум спереди), Min Back (Минимум сзади). Изменяйте значения в счетчиках, наблюдая за ростом размеров областей в окнах проекций. При использовании звуковых файлов формата wav можно установить флажок Spatialize (Пространственный), чтобы сделать звук объемным. Свяжите датчик включения звука с добавленным в сцепу звуковым файлом, используя кнопку Pick Audio Clip (Указать аудиоклип). Щелкните на кнопке, а затем щелкните на значке вспомогательного объекта Audio Clip (Аудиоклип). Счетчик Intensity (Интенсивность) позволяет регулировать громкость звучания. Счетчик Priority (Приоритет) задает относительный приоритет данного источника звука. Это бывает необходимо, если в состав сцены включено несколько источников звучания. Величина 0 соответствует низшему приоритету, 1 — высшему. Выполните экспорт сцены в формате VRML и продемонстрируйте управление включением звука за счет приближения камеры к объекту сцепы, перед которым размещен вспомогательный объект Sound (Звук).
Дополнительные возможности настройки VRML-сцен В этом разделе будут рассмотрены возможности настройки VRML-сцен, связанные с необходимостью редактирования VRML-кода, создаваемого модулем экспорта программы 3ds max. Необходимость в таких настройках возникает в связи с целым рядом ограничений, которыми обладает модуль экспорта.
385
Дополнительные возможности настройки VRML-сцен
Особенности отображения текстур в составе материалов Текстуры в составе материалов, экспортируемых из программы 3ds max, корректно отображаются в VRML-браузере только в том случае, если значения параметров в счетчиках U и V разделов Offset (Сдвиг) и Tiling (Кратность) в свитке Coordinates (Координаты) текстурной карты, находящемся в редакторе материалов 3ds max, не отличаются от принятых по умолчанию. Напомним, что исходными значениями этих параметров являются следующие величины: П в группе счетчиков Offset (Сдвиг): U = О, V = 0; D в группе счетчиков Tiling (Кратность): U = 1, V = 1. Если же возникает необходимость выполнить настройку этих параметров, результат отображения текстур в окне VRML-браузера может оказаться совсем не таким, как в 3ds max. Рассмотрим для примера простую сцепу, содержащую две расположенные рядом плоскости размером по 320x480 единиц (рис. 6.47). В сцену добавлены также два осветителя типа Omni (Всенаправленный), нацеленная камера и вспомогательный объект типа N a v l n f o (Навигация).
Рис. 6.47. Простая 30-сцена для тестирования особенностей отображения текстур после экспорта в формате VRML
На плоскости нанесены материалы с одинаковой картой текстуры типа Bitmap (Растровая) размером 640x480 пикселов (рис. 6.48) в разделе Diffuse Color (Диффузный цвет). Чтобы на каждой из плоскостей отображалась только нужная половина изображения, показанного на рис. 6.48, выполнена настройка параметров в счетчиках U и V разделов Offset (Сдвиг) и Tiling (Кратность) свитка Coordinates (Координаты) редактора материалов. Так, материал левой плоскости имеет следующие настройки параметров текстуры: П в группе счетчиков Offset (Сдвиг): U = 0,5; V = 0; П в группе счетчиков Tiling (Кратность): U = 0,5; V = 1.
386
Глава 6. Настройка и экспорт сцен в формате VRML
Рис. 6.48. Карта текстуры, использовавшаяся при тестировании в составе материалов
Материал правой плоскости имеет следующие настройки параметров в свитке Coordinates (Координаты): П в группе счетчиков Offset (Сдвиг): U - -0,5; V = 0; п в группе счетчиков Tiling (Кратность): U = 0,5; V = 1. Простая идея разбиения изображения паровоза па две плоскости состоит в том, чтобы можно было в дальнейшем выполнить анимацию поворота плоскостей, раскрывающихся подобно книжке, и управлять моментом начала этого раскрытия с помощью вспомогательного объекта TouchSensor (Датчик касания) категории VRML 97. После экспорта данной сцены и загрузки ее в VRML-браузер результат оказывается некорректным (рис. 6.49). Очевидно, имеют место паразитные сдвиги текстурных карт как по вертикальной, так и по горизонтальной текстурным координатам. 3 D:Y3dsmax6fcneshes\WRLU)V bugsjeport.WRL Файл
Правка
Вид
КЬбраиное
а
Сервис
Microso
Справка;
Вид той же сцены, что на рис. 6.47, в окне VRML-браузера
387
Дополнительные возможности настройки VRML-сцен
Чтобы понять причины этого сдвига, рассмотрим VRML-код, сгенерированный модулем VRML-экспорта (рис. 6.50), загрузив его в приложение Notepad (Блокнот). Отыщем в нем узлы Transform (Преобразование) с именами Planed и Plane02, соответствующие описаниям двух плоскостей. В теле данных узлов найдем узлы Appearance (Внешность), а в теле этих узлов — узлы TextureTransform (Преобразование текстуры).
• З А М Е Ч А Й И Е""
''
:;• Отобра
эртаЗ
DEF PlaneOl Transform {
shape { appearance Appearance { textureTransform TextureTransform { center 0.5 0.5 translation 1 0.5 scale 0.5 1
ЭЕР PlaneOZ Transform { shape { appearance Appearance { textureTransform TextureTransform { center 0.5 0. 5 translation 0 0.5 scale 0.5 1
Рис. 6.50. Фрагмент автоматически сгенерированного VRML-кода с описанием преобразований текстурных координат объектов Planed и Р1апе02 (многоточия заменяют пропущенные строки)
Узел TextureTransform (Преобразование текстуры) имеет три поля, для каждого из которых задается пара значений, разделенных пробелом и соответствующих горизонтальной и вертикальной текстурным координатам: D center (центр) — задает горизонтальную и вертикальную текстурные координаты центра изображения. Модуль VRML-экспорта всегда устанавливает для этого поля значения 0,5 и 0,5; D translation (смещение) — задает значения сдвига текстуры по горизонтальной и вертикальной текстурным координатам, которые являются аналогами параметров U и V из группы Offset (Сдвиг) свитка Coordinates (Координаты) редактора материалов 3ds max; П scale (масштаб) — значения коэффициентов масштабирования текстуры по горизонтальной и вертикальной текстурным координатам, которые являются аналогами параметров U и V группы Tiling (Кратность) свитка Coordinates (Координаты) редактора материалов 3ds max. Сопоставление математических выражений для пересчета текстурных координат в 3ds max и в стандарте языка VRML показывает, что для корректного отображения
388
Глава 6. Настройка и экспорт сцен в формате VRML
экспортированной текстуры значениями поля center (центр) в тексте VRML-кода должны быть числа (-0,5; -0,5). Значения поля translation (смещение) должны быть равны показаниям счетчиков U и V группы Offset (Сдвиг) свитка Coordinates (Координаты) из редактора материалов 3ds max, взятым с противоположным знаком. Значения поля scale (масштаб) должны быть точно равны показаниям счетчиков U и V группы Tiling (Кратность) свитка Coordinates (Координаты). Как можно видеть из рассмотрения VRML-кода, эти условия выполняются только для значений поля scale (масштаб). Не вдаваясь в причины этих несоответствий, исправим вручную VRML-код, сгенерированный модулем экспорта программы 3ds max. С этой целью, учитывая использованные в нашей тестовой сцене значения параметров U и V из групп Offset (Сдвиг) и Tiling (Кратность) свитка Coordinates (Координаты), зададим для левой плоскости (объекта Planed) следующие значения полей: D
center (центр): -0,5; -0,5;
a translation (смещение): -0,5; 0. Для правой плоскости (объекта Р1апе02) зададим следующие значения полей: П center (центр): -0,5; -0,5; п translation (смещение): 0,5; 0. Теперь откорректированный VRML-код должен выглядеть, как на рис. 6.51 (многоточия заменяют пропущенные строки).
ЗАМЕЧАНИЕ
.
вые значешя%олей1 ; : для; .разделения' ц ||||Си
'йЩ||ШЙ1
DEF PlaneOl Transform {
shape { appearance Appearance { textureTransform TextureTransform center -0. 5 -0.5 translation -0.5 0 scale 0.5 1 }
DEF Plane02 Transform { Shape { appearance Appearance { textureTransform TextureTransform center -0.5 -0.5 translation 0.5 0 scale 0 . 5 1 }
Рис. .( Фрагмент VRML-кода с описанием преобразований текстурных координат объектов Planed и Р1апе02 после коррекции значений полей center (центр) и translation (смещение)
Выполнив правку кода, сохраните файл и выполните обновление сцены в окне VRML-браузера. После этого изображения текстур в составе VRML-сцены начинают выглядеть корректно и точно так же, как в окнах проекций 3ds max (рис. 6.52).
389
Дополнительные возможности настройки VRML-сцен
3 D:i3dsmax6Vneshes\WRL\UV-bugs_report.WRL - Microsoft Interne.. Файл :
:Й "?тЙ! &»
Правка ..
:
..
•«""-.'
Вид fif-'fyf. <^/
Избранное .,
|-W^j [*Н
;
.*в*:
Ы
Сервис
Справка
.,(.:?"'':•••'.•• £-••" *j Пли*-!* '(:*Н (/"'
. ^ 11«иа
ПОИСК
Адрес:!"" D:\3dsmax6\meshes\WRL\UV-bugs_report.WRL
Мои компьютер
Использование анимированных текстур Ранее в этой главе уже указывалось, что стандарт VRML-97 допускает использование в составе материалов анимированных текстур, но только типа MPEG. В то же время программа 3ds max допускает использование в составе материалов анимированных текстур только формата AVI. Это затрудняет экспорт из программы 3ds max сцен с анимированными текстурами в составе материалов. Однако данное затруднение несложно преодолеть за счет правки VRML-кода, автоматически генерируемого программой 3ds max. Подготовьте для использования в качестве аиимировапных текстур два файла одной и той же анимации, сохраненных в формате AVI и MPEG. С этой целью можно, например, выполнить преобразование файла анимации формата AVI, созданного в программе 3ds max, в формат MPEG с помощью редактора видеоклипов, подобного программе Premier компании Adobe.
Вид в окне VRML-браузера той же сцены, что на рис. 6.49, после корректировки значений параметров пересчета текстурных координат объектов Planed и Р1апе02
СОВЕ Т
КЦ;И V в: группах;:счё|^икО:В/Щ;5е1 '(Сдвиг)5 !рДДрд;Щ^ |;(|<орр||и|ать1} , корректно ;вьЙяделгГ прсле
ры: • Ввести;';пч
ЗАМЕЧАНИЕ
: ' ' 'Виде :.:фа. йл9&::?топа:::Д,:т рд :: ; стандарта Video1 CD,:
1 Super Video ;CD •илЙ;
390
Глава 6. Настройка и экспорт сцен в формате VRML
Создадим в программе 3ds max достаточно простую сцену, имитирующую, к примеру, экран, па котором будет воспроизводиться аиимированная текстура, с кнопками «включения» и «выключения» (рис. 6.53).
Вид в окне проекции 3ds max простой трехмерной сцены, предназначенной для отработки приемов экспорта анимированных текстур в формате VRML
Добавим в состав сцены вспомогательный объект N a v l n f o (Навигация) и два вспомогательных объекта типа TouchSensor (Датчик касания). Укажем для первого из них в качестве объекта-переключателя (Trigger Object) геометрический объект, изображающий кнопку «включения», а для второго — геометрический объект, изображающий кнопку «выключения». Объекты действия в данном случае не требуется указывать, так как датчики касания нужны только для того, чтобы фиксировать моменты времени щелчка кнопкой мыши на объектах-переключателях. В дальнейшем мы научимся использовать эти моменты времени для включения и выключения анимации текстуры. Разместим в сцене один или два осветителя и камеру. Подготовим материал, в раздел Diffuse Color (Цвет диффузного рассеивания) которого поместим карту текстуры Bitmap (Растровая), использовав в качестве текстуры анимацию формата AVI. Применим этот материал к объекту, имитирующему экран. Текстура должна быть видна в окнах проекций и нормально воспроизводиться при включении режима воспроизведения анимации (рис. 6.53). Выполним экспорт сцены в формате VRML и откроем ее в окне VRML-браузера. Как и следовало ожидать, аиимированная текстура не будет видна па экране. Откроем файл с VRML-кодом сцены для редактирования в приложении Notepad (Блокнот). Отыщем узел, соответствующий описанию объекта, который имитирует экран для воспроизведения анимироваиной текстуры. В пашем случае экран имитирует объект Вох01, так что отыщем узел T r a n s f o r m (Преобразование) с именем Вох01. В теле узла найдем поле texture (текстура) со значением в виде узла ImageTexture (Текстура-изображение). Узел ImageTexture (Текстура-изображение) служит для описания статических текстур, не имеющих анимации, и, в свою
Дополнительные возможности настройки VRML-сцен
391
очередь, имеет единственное поле url, значением которого является путь к файлу аиимированиой текстуры, использованной в составе материала в программе 3ds max (многоточия заменяют пропущенные строки): DEF BoxOl Transform { texture ImageTexture { url "maps/Flag. avi "
Выполним небольшую правку кода. Изменим тип узла с ImageTexture (Текстура-изображение) на MovieTexture (Текстура-клип), а в поле u r l исправим тип файла с *.avi на *.mpg или *.m2v, в зависимости от того, какой тип файла в формате MPEG вы приготовили: DEF BoxGl Transform { texture MovieTexture { url "maps/Flag. m2v"
Сохраним файл и обновим содержимое окна VRML-браузера. Теперь текстура будет видна в окне браузера, однако анимация пока не воспроизводится и текстура выглядит как статичное изображение первого кадра видеоклипа (рис. 6.54).
D:\3dsmax6\meshes\WRL\MovieTexlure.WRI.
Анимированная текстура после правки кода видна в окне VRML-браузера, но пока как статичное изображение
Чтобы включить воспроизведение аиимированиой текстуры, необходимо добавить в тело узла MovieTexture (Текстура-клип) еще одно поле, loop (цикл).
392
Глава 6. Настройка и экспорт сцен в формате VRML
Значениями этого поля могут быть только две константы: TRUE (ИСТИНА) или FALSE (ЛОЖЬ). По умолчанию значением поля loop (цикл) является FALSE (ЛОЖЬ), поэтому анимироваиная текстура и не воспроизводится. Исправленный код должен выглядеть следующим образом:
ВНИМАНИЕ
DEF BoxOl Transform { texture MovieTexture { loop TRUE url "maps/Flag.m2v"
Снова сохраним файл и обновим содержимое окна VRML-браузера. Теперь анимировапная текстура будет непрерывно циклически воспроизводиться в окне браузера (рис. 6.55).
Файл
Правка
Вил
Избранное . Сервис
Справка
| П • ^ЖЗШШЖГ'ЭОШов йдрве :idP D!\3d5max6\meshes\WW.\MovieTexture.WRL
И5браннм :^МедаИЯ ^J Переход':*:: О
Анимированная текстура после правки кода непрерывно циклически воспроизводится в окне VRML-браузера
Внесем в код дополнительные правки, чтобы обеспечить возможность включения и выключения анимировапной текстуры. Узел MovieTexture (Текстура-клип) имеет поля startTime (время пуска) и stopTime (время остановки). Идея состоит в том, чтобы с помощью операторов пересылки ROUTE присвоить параметрам startTime (время пуска) и stopTime (время остановки) значения моментов времени касания датчиков типа TouchSensor (Датчик касания), введенных в трехмерную сцену.
Дополнительные возможности настройки VRML-сцен
393
Чтобы иметь возможность изменять значения полей узла MovieTexture (Текстура-клип), необходимо задать этому узлу имя с помощью ключевого слова DEF. С этой целью внесем в VRML-код следующую правку:
DEF BoxOl Transform { texture DEF Movie01 MovieTexture { loop TRUE url "maps/Flag.m2v"
Мы назвали узел MovieOI, но это имя может быть и другим, лишь бы оно больше не встречалось в тексте VRML-кода. Для управления запуском и остановкой анимации текстуры добавим в конец VRML-кода два оператора пересылки ROUTE. Введем строки: ROUTE TouchSensorOl-SENSOR.touchTime TO M o v i e O I . s t a r t T i m e ROUTE TouchSensor02-SENSOR.touchTime TO MovieOI.stopTime
Смысл этих строк в том, что время касания (touchTime) первого датчика касания (TouchSensorOl-SENSOR) присваивается времени старта (startTime) анимации текстуры с именем MovieOI, а время касания второго датчика касания (TouchSensor02-SENSOR) присваивается времени остановки (stopTime) анимации этой же текстуры. Теперь можно выключить циклический показ текстуры, заменив в ее описании значение TRUE поля loop на FALSE. Сохраните файл типа *.wrl, заново откройте его в окне VRML-браузера и убедитесь, что аиимированиая текстура видна и анимация включается и выключается щелчками на объектах, имитирующих кнопки «включения» и «выключения». Созданная сцепа имеет тот недостаток, что анимация текстуры выполняется теперь всего один раз. Для восстановления циклического характера анимации воспользуемся еще одним полем узла MovieTexture (Текстура-клип) — isActive (действует). При выключенной анимации параметр isActive (действует) имеет логическое значение FALSE (ЛОЖЬ). После включения анимации текстуры параметр isActive (действует) принимает логическое значение TRUE (ИСТИНА). Добавим в конец кода еще одну строку: ROUTE M o v i e O I . i s A c t i v e TO M o v i e O I . l o o p Смысл этого оператора в том, что значение поля, определяющего активность анимации текстуры (isActive) с именем MovieOI, присваивается параметру управления циклом (loop). При выключенной анимации параметр активности анимации имеет логическое значение FALSE (ЛОЖЬ), такое же значение приобретает и параметр цикличности loop (цикл). После включения анимации текстуры, когда ее параметр активности принимает логическое значение TRUE (ИСТИНА), это значение присваивается параметру цикличности loop (цикл), и анимация воспроизводится до тех пор, пока не будет выключена.
394
Глава 6. Настройка и экспорт сцен в формате VRML
Сохраните файл fig06-053.wri, заново откройте его в окне VRML-браузера и убедитесь, что анимированная текстура видна и анимация включается и выключается щелчками на объектах-кнопках, а показ включенной анимации текстуры происходит циклически вплоть до выключения.
Использование датчиков PlaneSensor, CyiinderSensor и SphereSensor В спецификации языка VRML-97 имеется ряд узлов, которые не имеют аналогов среди вспомогательных объектов 3ds max категории VRML 97. В частности, это касается узлов PlaneSensor (Датчик плоского перемещения), CyiinderSensor (Датчик цилиндрического поворота) и SphereSensor (Датчик сферического поворота). С помощью этих узлов могут быть реализованы такие интересные возможности интерактивного взаимодействия зрителя с объектами виртуальной трехмерной сцены, как перетаскивание объектов или их повороты с помощью мыши. Эти возможности можно осуществить за счет несложной правки VRML-кода, созданного модулем экспорта 3ds max. Для освоения навыков создания подобных узлов создайте сцену (см. рис. 6.3), включающую в свой состав опорную плоскость, три объекта типа Box (Параллелепипед), имитирующих подставки, и три размещенных на подставках объекта Teapot (Чайник), к которым будут применяться интерактивные преобразования. Слегка поверните средний чайник — это поможет нам в дальнейшем разобраться с особенностями реализации поворота объектов в VRML-коде. Добавьте свет, камеру. Поместите в состав сцены и настройте вспомогательный объект N a v l n f o (Навигация). Добавьте в состав сцены три вспомогательных объекта TouchSensor (Датчик касания), указав каждому из них в качестве объекта-переключателя (Trigger Object) один из объектов, подлежащих преобразованиям (рис. 6.56). Объекты действия (Action Objects) указывать не требуется. Датчики касания нужны нам для того, чтобы в ходе правки VRML-кода заменить описывающие их узлы на описания нужных нам интерактивных узлов.
Простая сцена, подготовленная для тестирования датчиков плоского перемещения цилиндрического и сферического поворотов
Дополнительные возможности настройки VRML-сцен
395
Выполните экспорт сцены в формате VRML и откройте его в окне VRML-браузера. Убедитесь, что курсор меняет свой вид при установке на любой из объектов-чайников, определенных в качестве переключателей; на курсор вспомогательного объекта TouchSensor (Датчик касания), имеющий вид руки. Откройте wrl-файл для редактирования в окне приложения Notepad (Блокнот). Задача состоит в том, чтобы заменить узел TouchSensor (Датчик касания) объекта TeapotOI на узел PlaneSensor (Датчик плоского перемещения), узел касания объекта TeapotOZ па узел CylinderSensor (Датчик цилиндрического поворота), а узел касания объекта TeapotOB на узел SphereSensor (Датчик сферического поворота).
Создание и настройка датчика плоского перемещения Узел PlaneSensor (Датчик плоского перемещения) позволяет реализовать с помощью мыши только плоские перемещения объекта, то есть перемещения только в плоскости XY локальной системы координат объекта. Если, к примеру, такая плоскость располагается параллельно плоскости экрана компьютера, то объект можно будет двигать в виртуальном пространстве VRML-сцены влево-вправо и вверх-вниз, но не на зрителя и не в глубину сцены. >
Для создания узла 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
**!«<:: iJJQ D:\3dsmax6\meshes^WRL\fig22-055.WRL
Рис. 6.60. При установке на объект, с которым связан узел SphereSensor, курсор меняет свой вид на курсор сферического поворота
Чтобы датчик сферического поворота начал действовать, добавьте в конец кода строку: ROUTE SphereSensorGl-SENSOR.rotation_changed TO T e a p o t O B . r o t a t i o n
402
Глава 6. Настройка и экспорт сцен в формате VRML
Смысл этой строки в том, что изменение координат курсора (rotation_changed) датчика сферического поворота (SphereSensorOI-SENSOR) присваивается значению поля rotation (поворот) объекта TeapotOB. Если теперь щелкнуть на объекте ТеароШЗ и перетаскивать курсор в произвольном направлении, то чайник будет крутиться вокруг своей опорной точки (рис. 6.61).
Файл:; Праека;: : В^д^Избранное
....
Сервис
Справка
..
Рис. 6.61. Датчик сферического поворота позволяет произвольным образом крутить связанный с ним объект вокруг его опорной точки
Ограничения углов поворота для этого датчика не предусмотрены. У всех трех типов интерактивных датчиков, рассмотренных в этом разделе, имеется поле autoOffset (автосдвиг), значением которого по умолчанию является константа TRUE (ИСТИНА). Такое значение этого ноля обеспечивает сохранение изменений в положении или ориентации объекта, внесенных пользователем, так что при следующей попытке применить этот же датчик новые изменения добавляются к предыдущим. Если установить для этого поля значение FALSE (ЛОЖЬ), то возможность накапливать изменения отключается. К примеру, вы поворачиваете объект с помощью датчика SphereSensor (Датчик сферического поворота) и отпускаете кнопку мыши. При последующей попытке повернуть этот же объект после щелчка на нем кнопкой мыши он сразу принимает свою исходную ориентацию, сбрасывая предыдущий поворот. За дополнительными сведениями о возможностях работы с трехмерными сценами формата VRML обращайтесь к спецификации языка VRML-97.
Алфавитный указатель Affect
# of Links Up, 172 % Along Path, 136 3 sides, 331
Absolute, 85, 186, 314 value, 103 Abut Selected, 305 Active, 170 Time Segment, 20, 39, 43 Viewport Only, 26 Adaptive Degradation Toggle, 32 Adaptive Degradation, 32 Add, 150, 152 External Event, 306, 323 Image Filter Event, 305, 313 Image Input Event, 305, 308 Image Layer Event, 305, 319 Image Output Event, 305, 322 Keys, 66, 71, 81 Link, 123 LookAt Target, 126 Loop Event, 306, 324 Note Track, 65, 76 Orientation Target, 134 Path, 136,320 Position Target, 138 Scene Event, 305-306 Selected, 113 Visibility Track, 65, 75-76 World as Target, 135 Adjust Pivot, 161 Transform, 161, 163 Adobe Premiere Transition Filter, 320 Advanced, 243 Affect Alpha, 329,334 Hierarchy Only, 162
(продолжение)
Object Only, 162 Pivot Only, 162 2 Buffer, 329 Air Resistance, 233, 274, 291 Align, 349 Selected Left, 305 Selected Right, 305 to Cursor, 66 to Object, 163 to Pivot, 163 To Surface, 101 toU, 147 t o V , 147 to World, 163 Alignment, 162,309 All, 32,51,337 Keys, 51 Objects, 209 Tangents, 63 Transform Keys, 51 Allow Upside Down, 137 Alpha Compositor, 321 Channel, 314 Alt Rays, 340 Amplitude, 151 Anchor, 371 Angle, 148,328,332,339 Angular Dashpot, 245 Animation, 15, 26 controller, 16 keys, 16 Sample Rates, 354 tracks, 16 Applied IK, 167 Apply Ease Curve, 66 Gradient, 186 Hue Globally, 328 IK, 175 Modifier, 237,240
404 Apply (продолжение) Multiplier Curve, 66 Only To Keys, 174 To, 85 ASec, 328,331 Assign, 64 Controller, 75, 93, 95, 121 Effects/Collisions, 230 Global Collisions, 232 Global Effects, 232 Object Collisions, 230 Object Effects, 230 To Children, 199,201 to Constant, 119 to Controller, 119 To Root, 199 Assume Skin Pose, 208 Attach Controls, 113 To, 100 To Rigid Body, 283 Attachment, 100 Parameters, 100 Audio, 102 Controller, 102 Auto, 152 Create Spline, 200 Expand, 59, 63 Key, 17,28 Rotate, 332 Scroll, 63 Select, 63 Snap, 196 Termination, 168, 172 Auto<0, 152 Auto-Align, 188 Automatic Resolution, 229 AutoPlay Preview File, 42 Available, 121 Parameter Sets, 231 Avatar, 347 Size, 359 AVI, 41 Avoid Self-Intersections, 276 Axial Align, 332 Transparency, 329 Axis, 137, 169, 331 Order, 117 Tripod, 204
Background, 40, 318, 353, 360 Bank, 137 Amount, 137 Bariccntric Morph, 104 Base Objects, 85 Scale, 104
Алфавитный указатель Bend, 276 Bezicr, 106 Float, 93 Bias, 149 Billboard, 367 Bind, 168, 174 Orientation, 169 Position, 168 to Follow Object, 174 to Space Warp, 294 Blend, 315 Amount, 315 Block, 93, 111 Control, 111 Parameters, 112 Blurlnt, 329 Bndg Box, 229 Cylinder, 229 Sphere, 229 Bone Coloring, 186 Edit Mode, 181 Editing Tools, 181 On, 187 Tools, 176, 181 Bones, 167, 176 Boolean, 115 Bounce, 228 Bounding Box, 40, 365 Break At Time, 269 Bright, 337 Brighten, 329 Brightest Star, 317 Brightness, 314 Browse, 323
Calc Intervals Per Frame, 233 Calculate on Export, 353 Properties Using, 227, 229 Car-Wheel Constraint, 246 Cent Fade, 329 Center to Object, 162 to Pivot, 162 Centered, 152 Channel, 104 Character, 206 Assembly, 206, 209 Assembly Node, 207 Members, 210 Characteristic Graph, 151 Child-Parent, 170 Children, 60 Choose Codec, 41 Device, 41 Sound, 103
405
Алфавитный указатель Circular, 331 Color, 330 Transparency, 330 Clamp, 339 Above/Below, 152 Clear Keyframes, 276 Keys, 174 Close, 325 Cloth, 274 Collapse Controller, 65 Collision, 359 Test, 228 Collisions, 232 for this OBJECT, 230 Color per Vertex, 352 RGB, 116 Command Line Options, 323 Composition, 318 Compression Quality, 41 Compressor, 41, 43 Connect, 156 Bones, 184 Console, 351 Constant, 73 Velocity, 137 Constrain Deformations, 276 to 100%, 106 Constraints, 278 Continuity, 149 Contrast, 314 Controller, 64 Properties, 51 Controllers, 75 Coordinate Interpolators, 352, 354 Copy, 170, 187 Controller, 75 Time, 78 to Object's Material, 228 Correct Negative Stretch, 188 Count, 317 Create, 118 Animation, 241 Bones, 176, 182 Character, 206 End, 182 Helpers, 200, 203 Object, 236, 238, 243 Rigid Body Collection, 255 Soft Body Collection, 269 Wind, 277 Cross Fade Transition, 321 Current Frame, 18, 24 Nodes, 86 Time, 27 Transform, 51
Curve Editor, 34 Type, 200 Curves, 63, 66, 72 Custom, 25, 109, 318 Attributes, 33, 85 Icons, 63 Range, 39 Size, 309 File Type, 41 FPS, 354 Cut Time, 78 Cycle, 73
Damping, 172, 272, 274, 291 Debug, 119 Delete Bone, 183 Controller, 64, 75 Current Event, 304 Key, 51 Keys, 257 Link, 124 LookAt Target, 126 Note Track, 76 Orientation Target, 135 Position Target, 138 Selected Keys, 51 Time, 78 Track View, 55 Density, 229,233,296 Depth, 296 Derived, 314 Destroy Character, 207 Devices, 309 Digits of Precision, 353 Dimmest Star, 317 Direction, 316, 333 Disable, 151 11 Collisions, 251 Display, 63, 157, 201 in Preview, 40 Links, 157 Dist Blur, 329 Fade, 329 Distance, 340, 370 Dither %, 307 Do Not Resize, 309 Don't Affect Children, 163 Dope Sheet, 77, 115 Drag, 145 Draw Curves, 71 Duration (frames), 307 Subdivisions, 307 Duty Cycle, 151 Dynamics, 224-225 Controls, 226
406
Ease, 171 Curve Out-of-Ranges Types, 67 From, 149 To, 149 Edge, 337 Edit Current Event, 304, 306 Keys, 77 Object, 226 Object List, 225 Range Bar, 304 Ranges, 77 Effect, 152 ID, 337 Effects, 231 in the SCENE, 230 on this OBJECT, 230 Elasticity, 251 Electric, 333 Enable Real-Time Device, 103 Sheltering, 282 Enabled, 195, 197, 313 End, 174 Color, 186 Frame, 254,312 Time, 26-27,85,232 Environment, 58 Euler Parameters, 117 XYZ, 116 Evaluate, 119 Every Calc Interval, 228 Frame, 228 Nth Frame, 40 Examine, 346 Exclude Left End Point, 80 Right End Point, 80 Execute Sequence, 304, 307, 324 Video Post, 324 Export, 351 Hidden Objects, 352 Selected, 352 Expression, 93, 118 Controller, 118 External Event, 300, 322 Extras, 79 f
Face, 101 Facets, 40 + Highlights, 40 Fade, 314,331 Fast, 108 Track View, 104 Fiery, 333
Алфавитный указатель File, 351 Compression, 43 Number Base, 45 Files, 43,309,314 Film, 25 Filter, 51,337 Event, 299,312 Path, 320 Plug-In, 313 Selection, 320 Filters, 69, 91 Fin Adjustment Tools, 186 Final Output, 151 fit, 349 Fix Vertices, 278 Flat Tangent, 110 Flip, 127, 137, 147 Flip-Book, 353-354 Flipped, 151 Fly, 345 Focal Limit, 334-335 Node, 334-335 Range, 334-335 Fog, 353,362 Follow, 137 Object, 167 Foreground, 318 Forward Kinematics, 154 Fractal Noise, 132 Fracture, 247, 267 Frame Count, 26 Numbers, 40 Rate, 25, 40 Frames, 15, 25, 310 Free Handle, 110 Freeze Length, 188 Non-Selected Curves, 64 Frequency, 132 Friction, 251, 272, 274, 291 From, 310 Full Res Objects, 209 Screen, 350 Function Curve Display, 69 Gaseous, 333 G-Buffer, 298 General, 42 Generate, 352 Geometry, 339 Ghosting, 175 Gimbal, 116 Global Collisions, 232 Effects, 231 Tracks, 58, 111
407
Алфавитный указатель Glow, 328, 330 Goto, 349 End, 23,30 Start, 23 Time, 52 Gradient, 338 Ground Colors, 361 Group, 332 l |
:
I :''1'Щ|:И£;ЦЙ
HD IK solver, 166 Headlight, 350,359 Height, 179 Help, 351 HI IK solver, 167 Hide behind geometry, 330 by Category, 69 by Controller Type, 69 Non-Selected Curves, 64 Hierarchy, 160 Hinge Constraint, 246 Hiperlink Jump, 373 Horiz/Vert Focal Loss, 334 Hue, 328,330,337
Icon Size, 209 IK, 161, 167 /FKSnap, 196 Chain Assignment, 199, 201 for FK Pose, 196 Name, 200 Parameters, 33, 37 Solver, 195 Solver Properties, 196 IK solver History Dependent, 166 History Independent, 167 Limb, 167 Image Alpha, 315 Driver, 309, 322 Input, 309 Input Options, 309, 314 Intput Event, 299, 308 Layer Event, 299, 319 Output Event, 300, 322 Size, 40 Images, 361 In, 110 Inactive, 251 in-betweens, 16 Indentation, 352 Inferno, 328,330,333 Info, 354 Inherit, 164 Initial
Background, 353 Fog, 353
Initial (продолжение) Navigation, 353 View, 353 Inline, 364 Insert, 151 Animation, 209 Animation to Frame, 85 Character, 207 Time, 78 URL, 365 Intensity, 328 Interactive IK, 168, 172 Update, 62 Inverse Kinematics, 154, 168, 172-173, 197 Inverted, 151, 314 Iterations, 197
Keep Progress Dialog, 325 Shape, 291 Key Filters, 19, 32 Mode Toggle, 27 Steps, 27 Tangents, 74 Key Info, 51, 53, 76, 105, 148 (Advanced), 96 (Basic), 96 In, 54, 107 Out, 54, 107 Key Mode Toggle, 23, 32 Keyable, 65 Icons, 63 keyframes, 16 Keys, 65,69,77 Keystone, 269 Kyes Every N Frames, 233
Label, 306 Landcsape, 295 Layer Plug-In, 319 Length, 26-27 Lens Effects Flare, 327 Effects Focus, 333 Effects Glow, 336 Flare Effects, 329 Flare Properties, 328 Level Of Detail, 368 LimblK solver, 167 Limited, 171 Linear, 74, 108, 120, 317 Dashpot, 245 Link, 121 All in Hierarchy, 204 All to Root, 204
408 Link (продолжение) Constraint, 95 Display, 157 Info, 161 Replaces Object, 158 Types, 204 links, 154 List, 93, 120 Controller, 120 Lit Wireframes, 40 Load/Save Parameters Sets, 231 Lock, 207 Effect, 333 Noise, 333 Range Bar to Scene Range, 307 Selection, 72 Tangents, 74 to Video Post Range, 307 Locks, 164 LOD, 368 Logarithmic, 317 LookAt, 124 Constraint, 125 Loop, 73,324 at the end, 310 Event, 300,323 Low Res Objects, 209 Luminance, 314
M Make Controller Unique, 75 Default, 94 Preview, 39 Selected Same Size, 305 Unique, 60, 65 Manual, 152 Navigation, 63 Mask, 313,337 Mass, 145, 229, 250, 255, 272, 274, 291 MastcrBlock, 111 Match Source File Time, 84 Material, 51, 85 Effect, 314 Effects Channel, 298 Materials, 33 Max, 331 Measure, 250 Media Player, 42 Mcdit Materials, 59 Merge Animation, 82, 209 Nodes, 86 Mesh, 228 Solid, 229 Min, 331 Mirror Paste, 170
Алфавитный указатель MM SS Ticks, 25 Mode, 316 Modes, 62 Modifiers, 33, 85 Modify Child Keys, 63,79 Subtree, 63, 79 Motion, 95, 195, 333 Blur, 317,329 Capture, 129 Motor, 247 Move /Rotate/Scale, 161, 163 Down, 151 Keys, 71 Pivot to Ccntroid, 227 Up, 151 MScc, 328,331 Multiplier, 312 Curve Out-of-Rangcs Types, 67 Multiply, 152
N Name, 69, 151 Navigation, 350 Navlnfo, 353,358 Negative, 315 Net Render, 325 Never, 227 New Sequence, 304 Next Frame, 23,32 Key, 23,27 Ngons, 353 No Alignment, 147 Linking, 204 Node Sources, 328 Noise, 93, 131 Controller, 132 Normal, 269 Normalize Time, 110 Normals, 352 Note Track, 65 Notes, 76 NTSC, 25 Num, 332 Weaves, 291 Number of Colors, 361 of Spline Knots, 200 of Times, 324
Object, 51 Channel, 298 ID, 336
409
Алфавитный указатель Object (продолжение) Mapping, 85 Parameters, 33, 37, 168, 172, 174 Properties, 187 Objects, 59 in Simulation, 225 in the SCENE, 225 in the SIMULATION, 225, 230 Occlusion, 330 Radius, 329 Off Scene, 330 On, 331 Once per Animation Frame, 354 Open Property Editor, 240, 250 Schematic View, 155 Sequence, 304 Options, 309, 314 Orientation, 134 Constraint, 134 Out, 110 of Range Types, 65 Output, 41 Size, 40, 324 Override Automatic Mass, 229 Automatic Volume, 229 Material Bounce, 228 Material Sliding Friction, 229 Material Static Friction, 228 Oversampling, 103
PAL, 25 Pan, 68,301,340,348 Parameter Curve Out-of-Rangc Types, 67, 73 Parent Space, 197 Parent-Child, 170 Paste, 170, 187 Controller, 75 Time, 78 to Existing Animation, 84 Path, 135 Parameters, 136 Percent of Output, 40 Percentage, 105 Perimeter, 337 Alpha, 337 Period, 151 Perturb Speed, 280 Time, 281 Phantom, 252 Phase, 151 Physical Properties, 228-229 Physique, 195 Pick Action Objects, 376, 378 End Joint, 196
Pick (продолжение) Object, 100 Objects, 370 Shape, 205 Start Joint, 196 Surface, 147 Target, 197 Trigger Object, 373 Ping Pong, 74, 324 Pivot, 160 Position, 181 Pixel, 338 plan, 347 Plane, 246, 332 Play Animation, 23, 31 Selected, 23, 32 Playback, 26 FPS, 40 Point-to-Path Constraint, 246 Point-to-Point, 246 Polygons Type, 353 Pop, 316 Position, 27, 32, 37, 100, 137, 197 /Rotation/Scale, 95 Constraint, 138 List, 120 Ranges, 79 Rotation/Scale, 139 XYZ, 138 XYZ Parameters, 138 Precedence, 170 Preference Settings, 42, 175, 197 Preferences, 338, 351 Prcfs, 329 Presets, 309 Preview, 327 Animation, 241, 247, 252 in Window, 241,252 Range, 39 Previous Frame, 23, 32 Key, 23,27 Primitives, 352 Prismatic Constraint, 246 Properties, 60, 65, 76, 243, 336, 339 Property Estimate Resolution, 229 ProxScnsor, 377 PRS, 139 Parameters, 95, 139 Pseudo Alpha, 316,321 Push, 316
Q Qty, 331 Quads, 353 Quality, 333
410
Алфавитный указатель
; Radial Blur, 333,335 Color, 330 Size, 331 Transparency, 330 Rag Doll Constraint, 246 RAM Player, 46 Ramp In, 132 Out, 132 Random, 317,332 Ranges, 79 Rays, 328,332 Raytrace Engine Globals, 58 reactor, 139, 238 Read image from clipboard, 323 Real Time, 26 Control, 103 Reassign Root, 184 Recalculate Properties, 227 Recouple Ranges, 80 Reduce Keys, 66, 72 Refine, 185 Relative, 85, 186 Repeat, 74 Remove, 67, 113, 151 Bone, 183 Sound, 103 Rename Preview, 42 Render, 325,330 Options, 306 Output, 43 Scene, 40, 42, 45 Rendering, 39, 42, 46, 298, 325 Level, 40 Replace, 113 Animation, 84 Re-Scale Time, 27 Reseed, 340 Reset, 163 All Animation, 209 Default Values, 277 Pivot, 163 Scale, 188 Stretch, 188 Resize to Fit, 309 restore, 349 Reverse Time, 78 Rigid Body Properties, 250 Ring, 328,331 Ripple, 281,296 roll, 348 Rotate, 340 Rotation, 27, 32, 37, 197 Axis, 118 Rotational Joints, 168, 170 Roughness, 132
Safe Frames, 40 Sample, 103 Rates, 354 Save Animation, 209 Character, 207 Preview As, 42 Sequence, 304 Scalar, 118 Scale, 27, 32, 37, 163, 332 Keys, 71 Keys — Time, 66 Time, 78 Values, 66,71 XYZ Parameters, 143 Scene Blur, 333 End, 308 Event, 299,306 Materials, 59 Motion Blur, 307 Options, 306 Range, 307 Start, 308 Screen Alignment, 368 Script, 143 Seed, 132,318,328 Select, 334 and Link, 154 File to Export, 351 Flare Objects, 328 LookAt Axis, 127 Time, 78 Selected, 20 Bone Color, 186 Key Stats, 63 Objects Only, 27 Pice, 269 Set Active, 121 Camera, 374 Key, 18,28,32 Key Filters, 32 Keys, 18,36-37 Name, 231 Position, 100 Skin Pose, 208 Settings, 62 Sharp, 332 Shear, 276 Show All Tangents, 74
Curves, 21 Ghosting, 175 Keyable Icons, 34, 63, 74 Non-Selected Curves, 64
411
Алфавитный указатель Show (продолжение) Only, 69 Progress Bar, 353 Selected Key Stats, 61, 63, 68 Tangents, 74 Simple Additive Compositor, 321 Wipe, 316,322 Simulation Controls, 233 Geometry, 263 Name, 225 Size, 204,309,328,330 Skin Pose, 208-209 Pose Mode, 208 Sky Colors, 361 Slide, 66 Keys, 71 Sliding Friction, 228 Joints, 168, 170 Slow, 109 Smooth, 40, 107 + Highlights, 40 Rotation, 144 Smoothness, 137 SMPTE-стандарт, 25 Snap Frames, 66, 73 Soft Select Settings, 66 Soften, 329 Solution, 197 Solve, 233 Sound, 58 Source, 336 File, 83 Nodes, 86 Objects, 83 Speed, 26,350,359 Spline IK Control, 205 IK Solver, 199 Options, 200 SplincIKSolver, 167, 198 Spring, 144, 245 Back, 171 Properties, 144 Tension, 171 Squeeze, 328, 330 Star, 328,332 Database, 317 Size, 317 Starficld, 317 Start, 174 Color, 186 Frame, 254,261,312 Time, 26-27, 85, 124, 232 With Current State, 276
Static Friction, 228 Step, 108 Height, 359 Stiffness, 272,274,291 Stop, 23, 31 Streak, 328,332 Stretch, 276 Surf Norm, 337 Surface, 146,229 Controller Parameters, 146 Options, 147 Swap Events, 304 Input, 321 Swivel Angle, 197
Taper, 179,332 Target Scale, 104 Targets, 105 ТСВ-контроллср, 147 Tension, 149 Terminator, 172 Terrain, 359 Thick, 331 Thickness, 291 This Object is Unyielding, 227 Output, 151 Wave, 151 Threshold, 103 Tick, 25 Offset, 119 Time, 53, 148 Configuration, 24 Display, 25 Output, 43, 45, 324 Scale, 233,280 Timing & Simulation, 232 Title, 354 To, 310 Tools, 76 TouchSensor, 374 Toy Car, 247 Track View, 54 View Pick, 111 Trackbar, 21 Tracks, 65 Trajectories, 102 Transform, 85, 163 Controllers, 354 Script, 95 Triangles, 353 Trigger Object, 373 turn, 348
412 U U Position, 147 Unbind, 174 Unbreakable, 269 Undamped, 337 Uncompressed, 44 Unlink Selected, 156 Unlink Selection, 155 Unlock, 207 Unyielding, 252, 285 Update, 327 Display w/Solve, 233 Viewports, 174 Use Bounding Box, 263 Bounding Sphere, 263 Current Transform, 27 Device, 41 IK Joint Damping, 233 IK Joint Limits, 233 Initial State, 226 Max's, 353 Mesh, 263 Mesh Convex Hull, 263 Proxy Mesh, 264 Range, 282 Soft Select, 66 Soft Selection, 277 Stand In, 321 User, 338 Utilities, 67, 225
V V Position, 147 Value, 54 Vary, 340 Vector, 118 Vertex Color Source, 353 Vertical Bias, 152 Vertices, 229 Video Post, 58, 298 Parameters, 308 View, 306,349 Preview, 42 Viewpoints, 350 Viewport Configuration, 32 Views, 175 Virtual Frame Buffer, 325 Viscosity, 296 Visibility Limit, 359 Range, 364 Track, 65 Tracks, 85 Visible Edges, 353 v ohimc, 229
Алфавитный указатель VP
End Time, 308 Queue, 327, 299 Start Time, 308 Timeline, 299 VRML 97 Exporter, 351
w Walk, 345 Water, 295 Wave Speed, 296 Waveform, 93, 150-151 Weight, 169 Whole, 336 Width, 179 Wind, 247, 280 Speed, 280 Wireframe, 40 World, 57 Analysis, 258 Info, 354 Write image to clipboard, 323
X, Y, Z Strength, 132 XYZ -масштаб, контроллер, 143 -положение, контроллер, 138
Z Buffer, 298, 314 Z Hi, 337 ZLo, 337 Zoom, 68 Extents, 301 Horizontal Extents, 68 Horizontal Extents Keys, 68 Region, 68, 301 Selected Object, 67 Time, 68, 301 Value Extents, 68 Values, 68
A аватар, 347 размер, 359 Алгоритмическое выражение, 93 Альфа-канал, фильтр, 315 Альфа-объединитель, фильтр, 321 анимация, 15
Блок, контроллер, 93,111 блокировать персонаж, 207 булевский контроллер, 115
Алфавитный указатель
В
:
Ул 'й
Ветер, 247, 280 Вкл./Выкл., контроллер, 115, 133 Вода, объемная деформация, 295 вставить персонаж, 207 вставка анимации, 209 вязкость воды, 296
глубина воды, 296 Границы, панель, 79
датчик касания, 374 приближения, 377 двойников показ, 175 Демпфирование, 272 Диаграмма ключей, окно, 77, 115 диаграмма линии ключей, 149 диапазон действия ключей, 61 Диапазоны, панель, 79 дочерние объекты, 154
Ж Жесткость, 272
Задать ключ, режим анимации, 32 Звездное поле, фильтр, 317
И Интерактивная обратная кинематика, 172 исходная поза, 208—209
К кадры, 15 карданная система координат, 116 Касательные ключей, панель, 74 Ключи меню, 65 панель, 69, 77 ключи анимации, 16 вставка времени, 78 вставка сегментов, 78 выделение сегмента, 78 вырезание трека, 78 добавление, 81 исключение первого ключа, 80 исключение последнего ключа, 80 копирование сегментов, 78 масштабирование сегмента, 78 обращение порядка следования, 78 удаление сегмента времени, 78 Контраст, фильтр, 314 контроллер анимации, 16
413 Контроллер, меню, 64 контроллеры анимации ТСВ-контроллер, 147 Алгоритмическое выражение, 118 Барицентрический морфинг, 104 Блок, 111 на основе ключей, 90 назначение, 75 Плавный поворот, 144 По Бсзье, 106 по положению, повороту и масштабу, 95 Прикрепление, 100 процедурные, 90 Цвет RGB, 116 Контроллеры, панель, 75 Кости настройка выростов, 186 переназначить корневую, 184 режим правки, 181 система объектов, 176 соединить, 184 создание, 176, 182 создать окончание, 182 убрать кость, 183 удалить кость, 183 уточнить, 185 цвет выделенной, 186 Кривые меню, 66 панель, 72
Л Линейный демпфер, 245 Линейный контроллер, 120 Линия взгляда, ограничитель, 124
I1111SSS
Марионетка, ограничитель, 246 масса, 250 Машина-колесо, ограничитель, 246 Машинка, 247 Микширование наплывом, фильтр, 321 Мнимый альфа-канал, 316 Мнимый альфа-канал, фильтр, 321 Мотор, 247
н Наплыв, фильтр, 314 Настройки, меню, 62 Негатив, фильтр, 315 Неоднородности, контроллер, 93, 131
О Обломки, 247 обратная кинематика, 154 интерактивная, 168 приложенная, 167
414 Обратная кинематика интерактивная, 172 объект-переключатель, 373 объекты-потомки, 154 объекты-предки, 154 окна диалога Lens Effects Highlight, 339 Оптические эффекты, фильтры, 315 Ориентация, ограничитель, 134 Отображение, меню, 63
Перехват движения, контроллер, 129 Персонаж, меню, 206 персонажные сборки, 206 Плоскость, 246 плотность воды, 296 Поверхность, ограничитель, 146 показать анимируемые треки, 63, 74 показать значки ключей, 34 Показать кривые, кнопка, 21 Положение, ограничитель, 137 Положение/Поворот/Масштаб, контроллер, 139 правка диапазонов действия, 77 ключей анимации, 77 принять исходную позу, 208 Присоединить анимацию, окно, 209 Пружина контроллер, 144 ограничитель, 245 прямая кинематика, 154 пульсации ветра, 281 Путь, ограничитель, 135
разблокировать персонаж, 207 разрушение персонажной сборки, 207 реактор меню, 238 Реакция, контроллер, 139 Редактор кривых, окно, 34 режим исходной позы, 208 Режимы, меню, 62 родительские объекты, 154
сборочный узел персонажной сборки, 207 сброс анимации, 209 свойства ключей, 76 Связь, ограничитель, 121 Сервис, панель, 76 Скольжение, ограничитель, 246 событие ввода изображений, 308 ввода изображения, 299 внешнее, 300 вывода изображений, 300
Алфавитный указатель событие (продолжение) вывода изображения, 322 композиции изображений, 299, 319 -сцена, 299, 306 -фильтр, 299 -цикл, 300, 323 события видеомонтажа, 299 цикл, 322 создание персонажной сборки, 206 сохранение анимации, 209 сохранить персонаж, 207 Список, контроллер, 93, 120 сплайновое ПС-решение, 198 средства правки костей, 181 столкновение, 359 строка треков, 21 Суммирующий объединитель, фильтр, 321 Сценарий, контроллер, 143
текущий кадр, 18 Ткань, модификатор, 274 Точка -путь, ограничитель, 246 -точка, ограничитель, 246 треки анимации, 16 Треки, меню, 65 трение, 251 туман, 362
Угловой демпфер, 245 управление поворотом по Эйлеру, 116 Уровень детальности, объект VRML, 368 установить исходную позу, 208
фантом, 252 фильтры выбора ключей, 32 фон сцены, 360 1 1 1 1 1 1 Цикл, контроллер, 93, 150
Шторка, фильтр, 316, 322
экстраполяция кривых анимации, 73 эластичность, 251 элементы персонажа, 210 1 1 1 1 1 1 1 1 1 Якорь, объект VRML, 371
Мэров Михаил Николаевич 3ds max. Реальная анимация и виртуальная реальность (+CD) Главный редактор Заведующий редакцией Руководитель проекта Художник Иллюстрация на обложке Корректор Верстка
Е. Строганова А, Кривцов Ю. Суркис Н. Биржаков Н. Золотарёв Н. Викторова Р. Гришанов
Лицензия ИД № 05784 от 07.09.01. Подписано в печать 30.11.04. Формат 70X100/16. Усл. п. л. 33,54, Тираж 4000 экз. Заказ № 1240. ООО «Питер Принт». 194044, Санкт-Петербург, пр. Б. Сампсониевский, д. 29а. Налоговая льгота — общероссийский классификатор продукции ОК 005-93, том 2; 953005 — литература учебная. Отпечатано с готовых диапозитивов в ФГУП «Печатный двор» им. А. М. Горького Министерства РФ по делам печати, телерадиовещания и средств массовых коммуникаций. 197110, Санкт-Петербург, Чкаловский пр., 15.
ПЗвАТЕПЬСКПЯ
UOM
r\^n*f Т7=/Э т mm т т imi^
WWW.PITER.COM
СПЕЦИАЛИСТАМ
книжного БИЗНЕСА;
ПРЕДСТАВИТЕЛЬСТВА ИЗДАТЕЛЬСКОГО ДОМА «ПИТЕР» предлагают эксклюзивный ассортимент компьютерной, медицинской, психологической, экономической и популярной литературы
РОССИЯ
Москва м. «Калужская», ул. Бутлерова, д. 176, офис 207, 240; тел./факс (095) 777-54-67; e-mail:
[email protected] Санкт-Петербург м. «Выборгская», Б. Сампсониевский пр., д. 29а; тел. (812) 103-73-73, факс (812) 103-73-83; e-mail:
[email protected] Воронеж ул. 25 января, д. 4; тел. (0732) 39-61 -70; e-mail:
[email protected];
[email protected] Екатеринбург ул. 8 Марта, д. 2676; тел./факс (343) 225-39-94, 225-40-20; e-mail:
[email protected] Нижний Новгород ул. Премудрова, д. 31а; тел. (8312) 58-50-15, 58-50-25; e-mail:
[email protected] Новосибирск ул. Немировича-Данченко, д. 104, офис 502; тел./факс (3832) 54-13-09,47-92-93,11-27-18,11-93-18; e-mail:
[email protected] Ростов-на-Дону ул. Калитвинская, д. 17в; тел. (8632) 95-36-31, (8632) 95-36-32; e-mail:
[email protected] Самара ул. Новосадовая, д. 4; тел. (8462)37-06-07; e-mail:
[email protected]
УКРАИНА
Харьков ул. Суздальские ряды, д. 12, офис 10-11; тел. (057) 712-27-05,712-40-88; e-mail:
[email protected] Киев пр. Красных Казаков, д. 6, корп. 1; тел./факс (044) 490-35-68,490-35-69; e-mail:
[email protected]
БЕЛАРУСЬ
Минск ул. Бобруйская, д. 21, офис 3; тел./факс (37517) 226-19-53; e-mail:
[email protected]
Ищем зарубежных партнеров или посредников, имеющих выход на зарубежный рынок. Телефон для связи: (812) 103-73-73. E-mail:
[email protected] Издательский дом «Питер» приглашает к сотрудничеству авторов. Обращайтесь по телефонам: Санкт-Петербург - (812) 327-13-11, Москва - (095) 777-54-67. Заказ книг для вузов и библиотек: (812) 103-73-73. Специальное предложение - e-mail:
[email protected]
Увлекаетесь трехмерной анимацией, мечтаете о разработке компьютерных игр, создании «мультиков», клипов или спецэффектов для кино и TV? Тогда эта книга — для вас! В этой книге вы найдете: • доступное и понятное описание всех имеющихся в программе 3ds max 6 средств и способов «оживления» трехмерных объектов, включая особенности настройки всех контроллеров, а также способы реализации метода обратной кинематики, применяемого в персонажной анимации; •
примеры работы с инструментами модуля reactor и приемы создания с его помощью анимационных клипов, где бестелесные трехмерные объекты ведут себя, как в реальном мире: сталкиваются, упруго отскакивают, разбиваются на части, колышутся на ветру, плавают или тонут (эксклюзив!);
•
практическое руководство по подготовке с помощью программы 3ds max 6 сцен и анимаций в формате виртуальной реальности VRML-97, в которых анимации могут, как в компьютерной игре, включаться и выключаться по желанию зрителя, ощущающего себя истинным героем трехмерного мира (эксклюзив!). На компакт-диске:
• множество примеров готовых анимаций, описанных в книге, и их реализации в 3ds max 6; •
примеры анимаций, выполненных средствами модуля reactor;
•
примеры сцен 3ds max 6, подготовленных для экспорта в формате VRML, и готовые VRML-сцены;
•
необходимые вспомогательные файлы: текстуры, звуки, программа для просмотра VRML-сцен, видеокодеки.
ISBN 5-469-00657-3 Заказ книг: 197198, Санкт-Петербург, а/я 619 тел.: (812) 103-73-74,
[email protected] 61093, Харьков-93, а/я 9130 тел.: (057) 712-27-05,
[email protected]
9"785469"006572"
www.piter.com — вся информация о книгах и веб-магазин