Текст
                    ВНУТРЕННИЙ МИР
3ds max 7
Шон Бонни
Стив Анзовин и др.
ВИЛЬЯМС
Неш
Riders i
Прилагается

ВНУТРЕННИЙ МИР 3ds max 7 Шон Бонни Стив Анзовин и др. Москва • Санкт-Петербург • Киев 2006
ББК 32.973.26-018.2.75 Б81 УДК 681.3.07 Издательский дом “Вильямс” Зав. редакцией С.Н. Тригуб Перевод с английского и редакция И.В. Берштейна По общим вопросам обращайтесь в Издательский дом “Вильямс” по адресу: info@williamspublishing.com, http://www.williamspublishing.com 115419, Москва, а/я 783; 03150, Киев, а/я 152 Бонни Шон, Анзовин, Стив. Б81 Внутренний мир 3ds Мах 7. : Пер. с англ. — М. : Издательский дом “Вильямс”, 2006. — 1120 с.: ил. — Парал. тит. англ. ISBN 5-8459-0951-1 (рус.) В книге подробно рассматриваются как новые, так и стандартные свойства, функ- ции и инструменты моделирования, текстурирования, анимации, освещения, визуа- лизации, компоновки и написания сценариев в 3ds max 7. Излагаемый материал до- полнен рисунками, упражнениями, практическими примерами из реальных проек- тов, полезными советами авторов, имеющих большой опыт производства анимаци- онной продукции для игр, кино, телевидения и архитектуры. Вспомогательный учебный материал прилагается на DVD-ROM. Книга адресована художникам, аниматорам и дизайнерам, имеющим опыт работы в 3ds max и стремящимся повысить свой профессиональный уровень. ББК 32.973.26-018.2.75 Все названия программных продуктов являются зарегистрированными торговыми марками соответст- вующих фирм Никакая часть настоящего издания ии в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирова- ние и запись на магнитный носитель, если на это нет письменного разрешения издательства New Riders Publishing. Authorized translation from the English language edition published by New Riders Publishing, Copyright © 2005 All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording oi by any information storage retrieval system, without permission from tire Publisher. Russian language edition is published by Williams Publishing House according to the Agreement with R&I Enterprises International, Copyright © 2006 ISBN 5-8459-0951 -1 (рус.) © Издательский дом “Вильямс’, 2006 ISBN 0-7357-1387-1 (англ.) © by New Riders Publishing, 2005
Содержание Введение 24 Часть 1 Нововведения в 3ds max 7 1 Новые элементы интерфейса и инструменты Интерфейс тот же самый вид............................... 29 Режим плоского затенения..............................30 Режим обхода.........................................31 Обход сцены на практике.............................33 Настройка режима Walkthrough .......................37 Переключение между диалоговыми окнами и редакторами.. 38 Новые элементы на основной панели инструментов........39 Изменения в меню......................................40 Меню File...........................................40 Меню Tools..........................................40 Меню Views......................................... 40 Меню Animation.....................................41 Меню Help..........................................41 Квадратные меню, вызываемые щелчком правой кнопкой мыши.41 Инструменты рационализация труда и экономия времени......42 Инструмент выделения Paint Selection Region . 42 Работа с инструментом Paint Selection Region...... .. 43 Команда Object Display Culling........................45 Выбор отображаемых объектов ........................46 Режим отображения Array Pi evicw.....................48 Создание спиральной лестницы.......................49 Новые инструменты выравнивания........................50 Инструмент Quick Align.............................51 Инструмент Clone and Align..........................52 Усовершенствованные инструменты привязки..............54 Опробование инструментов привязки...................55 Резюме...................................................57 2 Нововведения в моделировании Модификатор Edit Poly.....................................60 Режим Select Poly by Angle..............................61 Плавное выделение кистью................................62 Режим Make Planar.......................................64 Инструмент Bridge.......................................65 Построение перемычки.................................66
8 Содержание Инструмент Cut................................................... 68 Режим Turn Edges.............................................69 Режимы Paint Deformation и Relax.............................71 Модификатор TurboSmooth......................................74 Резюме.......................................................76 3 Нововведения в текстурировании Режим Highlight Seams.......................................77 Усовершенствования модификатора Unwrap UVW.................. 80 Кнопка-переключатель Absolute/Offset Mode................. 80 Кнопка Paint Select Mode.................................. 81 Кнопка Edge Loop...........................................81 Модификатор Projection...................................... 82 Проецирование карты Normal............................... 84 Ввод файлов формата MPEG 90 Копирование параметров текстур...............................91 Усовершенствования модификатора VertexPaint..................93 Диалоговое окно Adjust Color............................. 93 Палитра цветов............................................ 94 Режим Preserve UVs...........................................95 Режим Subsurface Scattering..................................97 Экспериментирование с подповерхностным рассеиванием........98 Резюме......................................................102 4 Нововведения в анимации 103 Вспомогательный объект Expose Transform.....................104 Применение вспомогательного объекта Expose Transform..... 105 Диалоговое окно Parameter Collector.......................108 Примечания к параметрам...................................109 Диалоговое окно Reaction Manager........................ ... 1 1 Организация реакции.......................................111 Модификатор Skin Wrap..................................... - .115 Модификатор Skin Morph......................................117 Режим Mirror в диалоговом окне Bone Tools...................120 Модуль character studio.....................................120 Режим Figure............................................. 121 Режим Footstep............................................124 Режим Motion Flow.........................................125 Режим Mixer и диалоговое окно Motion Mixer................126 Режим анимации двуногого объекта........................ 127 Резюме......................................................131 5 Нововведения в визуализации 133 Предварительно заданные фотометрические источники света... . 133 Свиток mental ray Shadow Map................................135
Содержание 9 Панель инструментов Render Shortcuts.........................137 Модификатор Renderable Spline............................... 140 Режим Motion Blur для источников света и камер...............142 Утилита Assign Vertex Colors.................................145 Резюме.......................................................148 Часть II Управление 3ds max 149 6 Написание сценариев 151 Настройка на нужный лад......................................153 Начните с псевдокода......................................153 Пользуйтесь справочным руководством по MAXScript..........153 Не стесняйтесь пользоваться готовыми сценариями.......... 153 • Пользуйтесь макрорегистратором, но не полагайтесь на него полностью..........................................154 Старайтесь по мере необходимости обобщать код сценария....154 Пользуйтесь удобным текстовым редактором для написания длинных сценариев........................................ 155 Установка текстового редактора TextPad для написания сценариев MAXScript....................................155 Рационализация труда: основные элементы сценария MAXScript......... 156 Знак $.................................................. 157 Команда show..............................................158 Пользование словарем из двух слов.........................159 Команды move, rotate, scale и контекстный указатель in coordsys.160 Автоматическое выполнение операций с помощью циклов for......... 161 Оператор where и команда classOf..........................162 Выключение источников света............................165 Случайные числа...........................................167 Ввод в сцену хаотичности с помощью цикла for и команды random 167 Массивы и их обозначения # () и [ ] ......................171 Анимация по сценарию MAXScript с помощью оператора at time......173 Анимация летающей в кафе мебели посредством оператора at time......................... 173 Настройка рабочей среды: создание элементов пользовательского интерфейса...................................................175 quickDraf . сценарий для оперативной настройки параметров визуализации...................................175 Разработка сценария....................................176 Контрольно-проверочный код.............................177 Оформление интерфейса..................................178 Создание работоспособного инструмента............... 183 colorClip сценарии для создания стыкуемой панели инструментов ... 188 Рекомендации по разработке сценария....................188 Написание сценария.....................................188 Дальнейшее изучение языка MAXScript..........................191
10 Содержание Часть III Моделирование 193 7 Точное моделирование Примитивы................................................... 195 Совершенствование примитивов........................... 196 Работа с массивами........................................198 Формы и сплайны...........................................202 Повышение точности с помощью форм.......................203 Разрезание и подгонка...................................206 Профили и формы...........................................209 Ввод деталей............................................213 Окончательная сборка......................................218 Завершающие штрихи.................................... 221 Резюме....................................................222 8 Моделирование окружающей среды Построение скалистой местности...............................224 Черновая разметка геометрической формы сцены............224 Проецирование карты местности...........................232 Повышение сложности модели с помощью материалов.........237 Проецирование карты смещения на модель утеса.........237 Перенос деталей с помощью проецирования карты Normal.240 Завершение создания модели утеса.....................243 Моделирование плоскости основания.........................246 Кратер....................................................250 Проецирование карты Normal на модель кратера....... 255 Кристаллы.................................................259 Создание растительности...................................262 Моделирование дерева.................................. 263 Ствол дерева.........................................263 Ветви дерева.........................................266 Корни из уже имеющихся каркасов и карт...............270 Переплетение двух деревьев...........................272 Крона дерева.........................................274 Трава...................................................278 Моделирование микромиров..................................282 Построение клетки....................................282 Текстурирование клетки...............................288 Микросреда...........................................290 Резюме....................................................292 9 Моделирование персонажей 293 Моделирование с помощью поверхностей подразделения........294 Моделирование свиньи из параллелепипеда.................294 Свиные ножки............................................299 Голова свиньи...........................................300
Содержание 11 Доводка модели свиньи....................................306 Присоединение хвоста..................................307 Ввод глазных яблок......................................310 Присоединение конечностей....................................313 Компоновка кисти руки....................................313 Завершение модели туловища...............................317 Моделирование мускулов.....................................321 Моделирование головы.......................................327 Формирование петель из ребер вокруг рта..................328 Моделирование носа.......................................336 Завершение модели головы.................................340 Моделирование глаз.........................................345 Карикатурные глаза.......................................345 Резюме.....................................................350 Часть IV Текстурирование 351 10 Проецирование текстур 353 Редактор материалов........................................354 Типы оттенителей.........................................355 Типы материалов..........................................356 Типы и образцы карт......................................358 Типы карт в 3ds шах...................................360 Архитектура в танце......................................362 Проецирование текстур......................................364 Проецирование карт на процедурные объекты................364 Модификаторы проецирования............................366 Практические приемы проецирования.....................368 Материал Multi/Sub-Object................................372 Проецирование карт на отдельные стороны параллелепипеда.372 Проецирование карт на отдельные стороны сложных объектов .... 375 Проецирование карт по принципу конструктора...........377 Методы наложения переводных картинок.....................377 Наложение переводной картинки........................ 378 Резюме.....................................................382 11 Разработка текстур 383 Планарное проецирование карт...............................383 Применение планарного проецирования для текстурирования....384 Проецирование процедурных карт.............................388 Проецирование карты Noise................................388 Применение карты Noise................................388 Проецирование карты Falloff..............................392 Коррекция отражения с помощью карты Falloff...........393 Применение карты Falloff для получения переливчатого эффекта.................................396
12 Содержание Создание материала рентгенограммы....................400 Дополнительные возможности применения карты Falloff..402 Рассеянное затенение....................................402 Создание поверхности сухого камня....................402 Создание поверхности мокрого камня...................405 Анимация водяного эффекта............................408 Многослойные материалы.................................. .409 Создание лакированной поверхности.......................409 Создание “сахарного” покрытия........................411 Усовершенствование эффекта с помощью отражений.......412 Резюме....................................................414 Часть V Освещение 415 12 Основы освещения 417 Раскрытие сюжета с помощью освещения................... 417 Три составляющие света....................................421 Типы источников света.....................................423 Стандартные источники света.............................424 Фотометрические источники света.........................425 Системы освещения.........................................427 Система солнечного света................................427 Система дневного света..................................431 Тины теней................................................434 Тени, формируемые методом проецирования карты теней.....435 Тени, формируемые методом трассировки лучей........... 442 Поверхн гныетени........................................447 Освещение персонажа.......................................449 Освещение персонажа направленным и заливающим светом....449 Яркое пятно и спад света................................453 Резюме....................................................458 13 Освещение для кино, видео и игр 459 Сочетание компьютерной графики и реальности............. 460 Подготовка и изучение исходного материала...............460 Освещение сцены.........................................462 Применение модуля Light Tracer..........................466 Визуализация освещения по элементам.....................471 Освещение для игр.........................................475 Освещение направленным светом...........................476 Освещение заливающим и специальным светом...............479 Модификатор VertexPaint.................................486 Сведение материалов.....................................489 Резюме....................................................492
Содержание 13 Часть VI Анимация 493 14 Введение в анимацию 495 Ограничения................................................496 Ограничения по присоединению............................496 Контроллеры управления по сценарию......................505 Работа с контроллером управления по сценарию..........507 Ввод и правка сценариев ..............................509 Простое присоединение...................................512 Модификатор Linked XForm..............................514 Ограничения по линии связи..............................518 Ограничения по поверхности и линии взгляда..............524 Сочетание ограничений с анимацией по ключевым кадрам..527 Рекурсивные ограничения.................................528 Ограничения по линии взгляда............................530 Ограничения по линии пути...............................533 Анимация ракеты.......................................536 Взвешивание влияния путей и передвижение по ним в процентах...........................................537 Одни пути внутри других............................ 539 Ограничения по положению................................540 Манипуляторы...............................................544 Связывание ползункового регулятора с управляемым параметром.545 Ввод частиц........-..................................546 Анимация ползунковых регуляторов........................549 Резюме.....................................................552 15 Модуль character studio 553 Возможности и преимущества character studio.............553 Снаряжение двуногих объектов...............................555 Создание двуногого объекта..............................555 Правка скелета двуногого объекта........................556 Режим Figure и файлы фигур..............................558 Модификаторы Physique и Skin...............................559 Применение модификатора Skin к каркасу с костями двуногого объекта.......................................560 Применение модификатора Physique к каркасу с костями двуногого объекта.......................................561 Основы анимации двуногого объекта..........................562 Анимация в произвольной форме и по следам............ 562 Кватернионы.............................................562 Установка ключевых кадров...............................564 Режим анимации двуногого объекта в произвольной форме......565 Анимация точек опоры....................................566 Режим анимации двуногого объекта по следам.................567
14 Содержание Создание и правка следов.................................567 Динамика шагов...........................................568 Инструменты анимации двуногого объекта.....................569 Инструменты выделения треков анимации...................569 Слои....................................................570 Анимация головы и тела двуногого объекта................571 Смещение веса...........................................572 Анимация параметра IK Blend............................ 573 Применение контроллеров управления по списку для вторичной анимации двуногого объекта................ 574 Копирование и вставка положения, позы и трека анимации двуногого объекта....................................... 574 Инструменты отображения..................................575 Последовательность движений организация движения по сценарию..............................................577 Правка фиксации движения...................................578 Смеситель движений.........................................581 Применение свойства Motion Mixer.........................582 Меню в диалоговом окне Motion Mixer...................583 Панель инструментов в диалоговом окне Motion Mixer....583 Кнопка Mixer Mode.....................................584 Фильтрация движений......................................584 Расположение клипов без перекрытия.......................589 Применение весов влияния треков..........................590 Установка весов.......................................592 Анимация весов........................................594 Четвероногие объекты и дополнительные кости................594 Толпа......................................................596 Использование системы Crowd..............................597 Создание толпы...........................................598 Увеличение толпы.........................................601 Резюме.....................................................605 Часть VII Частицы и динамика 607 16 Физика и динамика 609 Лед тронулся...............................................612 Выпуклые и вогнутые куски................................618 Создание кусков..........................................624 Метод сечения............................................625 Проверка и стабилизация....................................630 Первоначальная проверка разлома..........................632 Сохранение и просмотр столкновений.......................634 Создание ключевых кадров анимации столкновений........634 Сохраненные столкновения..............................636
Содержание 15 Фильтрация столкновений................................640 Стабилизация кусков.......................................641 Коррекция допусков на столкновение.....................644 Потери энергии и устойчивости..........................645 Анимация дельфина...........................................647 Имитация движения только средствами reactor...............647 Анимация твердого тела вручную............................649 Анимация параллелепипеда вручную.......................650 Анимация каркасного объекта дельфина вручную...........651 Компланарные и управляющие объекты.....................653 Невидимость............................................656 Анимация дельфина по ключевым кадрам...................657 Использование начального и конечного кадров............658 Сокращение числа ключевых кадров.......................661 Деформация каркаса........................................662 Повторная анимация управляющего объекта................663 Создание набора деформируемых каркасов.................664 Отмена столкновений дельфина и платформы...............665 Замедление реакции системы.............................666 Ускорение реакции системы..............................666 Присоединение деформируемого тела.........................668 Имитация движения воды......................................673 Возврат к анимации вручную................................673 Ввод в имитацию воды......................................673 Стабилизация льда.........................................674 Получение визуализируемой воды.........................676 Завершающие штрихи..........................................677 Резюме......................................................679 17 Введение в систему частиц Particle Flow 681 Элементы системы частиц.....................................683 Системы частиц, неуправляемые событиями.....................687 Управляемые событиями системы частиц........................689 Параметры источника частиц PF Source......................691 Свиток Setup...........................................691 Свиток Emission....................................... 692 Свиток Selection.......................................693 Свиток System Management...............................694 Свиток Script..........................................694 Окно Particle View....................................... 695 Строка меню...............................................696 Меню Edit..............................................696 Меню Select............................................697 Меню Display...........................................698 Меню Options...........................................698 Панель параметров.........................................700
16 Содержание Хранилище...............................................701 Панель описания.......................................701 Панель отображения событий............................. 701 События...............................................702 Правка событий....................................... 703 Действия .............................................. 704 Проверки ............................................ 705 Операторы........................................... 706 Потоки частиц.........................................707 Действия для правки.................................. 708 Связывание событий......................................710 Частицы для эффектов окружения.............................710 Создание источника частиц...............................711 Внешняя сила и столкновение........................... .719 Улавливание случайно отклонившихся частиц...............722 Составной объект BlobMesh 724 Поднимающиеся вверх пузырьки газа.......................729 Порождение оживляемой геометрической формы..............735 Эффект разбрызгивания...................................744 Эффект размазывания.....................................751 Эффект свечения.........................................757 Самостоятельная работа.....................................759 Резюме.....................................................759 18 Эффекты частиц 761 Траектория полета..........................................762 Создание следа от самолета............................. 762 Электричество..............................................769 Имитация молнии с помощью объектов, находящихся на сцене.769 Расщепление молнии......................................775 Рассеяние электрического поля ..........................778 Кэш частиц........................................... 783 Копирование потоков частиц .............................784 Имитация молнии по сценарию.............................786 Огонь.................................................... 791 Искры от взрыва.........................................791 Следы обгорания от взрыва.............................. 794 Тянущиеся следом языки пламени......................... 796 Дым....................................................... 799 След дыма.............................................. 799 Развевающийся дым.......................................802 Выделение частиц..................................... 806 Сценарии из потока частиц..................................810 Завершающие штрихи.........................................814 Частицы, неуправляемые событиями....................... 814
Содержание 17 Эффект видеомонтажа.......................................819 Резюме.......................................................822 Часть VIII Визуализация и компоновка 823 19 Основы визуализации 825 Средство визуализации ActiveShade............................826 Доступ к средству визуализации ActiveShade..............827 Команды и ограничения ActiveShade.......................828 Диалоговое окно Render Scene..............................829 Вкладка Common .........................................830 Вкладка Renderer........................................835 Сглаживание............................................ 836 Избыточная выборка......................................837 Вкладка Raytracer.......................................839 Диалоговое окно Environment and Effects.................. 842 Ввод атмосферной дымки..................................842 Объемное освещение......................................845 Объемный туман..........................................848 Огневой эффект..........................................851 Визуализация анимации.....................................855 Визуализация на рирпроекционом фоне.......................856 Дверь в склеп...........................................859 Печать и экспорт............................................ 863 Выбор формата страницы....................................863 Экспорт панорамных видов..................................864 Средство экспорта Shockwave 3D............................866 Повышение эффективности визуализации.........................867 Самостоятельная работа.......................................869 Резюме.......................................................869 20 Усовершенствованная визуализация 871 Материал Ink'n Paint.........................................874 Глобальное освещение с помощью Light Tracer..................881 Окрашивание...............................................882 Параметры Light Tracer....................................883 Адаптивная субдискретизация...............................885 Визуализация сцены с помощью Light Tracer................. 887 Подготовка сцены для визуализации с помощью Light Tracer.887 Альтернативные варианты глобального освещения.............889 Метод излучательн ости.......................................891 Источники света для метода излучательности................892 Элементы управления экспозицией...........................893 Вопросы применения материалов.............................895 Применение средства визуализации методом излучательности...897 Дополнительные сведения о методе излучательности........901
18 Содержание Модуль mental ray...........................................901 Источники света в mental ray.............................903 Преобразование источников света из 3ds max к тину mental lay.904 Материалы mental ray.....................................904 Настройка визуализации в mental ray......................906 Дополнительные сведения о mental ray.....................912 Самостоятельная работа......................................912 Резюме......................................................912 21 Компоновка 913 Основные понятия............................................914 Элементы визуализации.......................................914 Стратегии компоновки........................................921 Применение материала Matte/Shadow и исключение объектов...921 Окно Video Post.............................................932 Ввод фильт ров...........................................935 Размытость движения......................................943 Размытость движения объектов..........................944 Размытость движения изображения.......................947 Mnoi опроходная размытость движения...................949 Размытость движения сцепы.............................951 Самостоятельная работа......................................953 Резюме......................................................954 А Управление проектами 957 Подготовка производства: беглый анализ проекта..............957 Масштабы проекта.........................................957 Мера качества............................................958 Визуальный стиль.........................................958 Студийные ресурсы........................................959 Этапы выполнения проекта.................................960 Подготовка проекта и сцены..................................960 Управление файлами.......................................961 Подключаемые модули......................................962 Масштаб сцепы............................................963 Присвоение имен объектам.................................963 Экспорт и импорт.........................................965 Организация сцеп............................................965 Инструменты выделения....................................966 Слои.....................................................968 Сокрытие- и фиксация объектов............................969 Работа с объектами..........................................970 Видовые окна и работа с объектами в диалоговом режиме....970 Перемещение по крупным сценам............................971 Свойства объектов........................................972
Содержание 19 Клонирование.............................................972 Внешние ссылки...........................................974 Сворачивание стека модификаторов........................ . 976 Точность работы..........................................978 Материалы и освещение.......................................979 UV-просцировапие.........................................979 Редактор материалов......................................980 Источники света..........................................982 Анимация.................................................. 983 Расстановка и правка ключевых кадров.....................983 Кости, снаряжение и взвешивание..........................984 Повторное использование анимации.........................985 Визуализация................................................985 Визуализация в файлы разного типа........................985 Визуализация по элементам............................... 986 Визуализация в текстуру..................................987 Сетевая визуализация ................................... 988 Адаптация производственного процесса........................989 Средства подготовки......................................989 Специальная настройка пользовательского интерфейса.......990 Сценарии.................................................991 Резюме .....................................................991 Б Снаряжение и анимация персонажей 993 Основы снаряжения...........................................993 Кости....................................................995 Контроллеры и пользовательский интерфейс.................995 Деформации...............................................996 Анимация.................................................996 Иерархии и кинематика ......................................997 Прямая кинематика........................................998 Инверсная кинематика.....................................999 Принципы разработки снаряжения.............................1000 Снаряжение, повышающее производительность труда........ 1002 Снаряжение по уровням...................................1003 Снаряжение персонажа человека............................. 1007 Подготовка сцены в 3ds max..............................1009 Снаряжение ног персонажа...................................1009 Основные кости ног..................................... 1009 Управляющие объекты.................................... 1013 Решатели ИК............................................ 1013 Выравнивание точечных объектов..........................1016 Точки опоры.............................................1017 Специальные элементы управления для ног.................1019 Угол вращения.........................................1020
20 Содержание Наследуемое вращение................................1022 Перекатывание стопы.................................1024 Зеркальное отображение снаряжения ноги.................1028 Правка зеркально отображенного снаряжения ноги......1029 Правка зеркально отображенных контроллеров..........1032 Окончательная правка снаряжения ног....................1034 Ограничение углов вращения сочленений...............1035 Снаряжение туловища персонажа........................... 1036 Снаряжение позвоночника............................... 1036 Выступы на костях......................................1039 Формирование поведения позвоночника................... 1041 Элементы управления скручиванием....................1044 Завершение снаряжения позвоночника.....................1048 Снаряжение головы и лица персонажа...................... 1051 Снаряжение лица персонажа..............................1055 Окончательная правка снаряжения головы и позвоночника..1058 Снаряжение рук и их кистей...............................1061 Основное снаряжение руки...............................1061 Элементы управления рукой...............................1067 Снаряжение плеча.......................................1068 Специальный атрибут для сочетания разных видов вращения.1070 Автоматическое управление ключицей.....................1071 Сочетание прямой и инверсной кинематики руки...........1075 Специальные атрибуты для сочетания прямой и инверсной кинематики........................................ 1077 Снаряжение кисти руки..................................1081 Кости кисти руки.....................................1083 Элементы управления и вспомогательные объекты для кисти руки......................................1085 Окончательная правка снаряжения руки...................1091 Зеркальное отображение снаряжения руки...............1092 Зеркальное отображение снаряжения кисти руки.........1094 Окончательная компоновка снаряжения персонажа............1097 Анимация.................................................1099 Резюме...................................................1101 Ссылки.................................................1102 Предметный указатель ПОЗ
Об авторах Дуг Барнард (Doug Barnard) стал пользователем и автором книг о 3ds max еще с первой версии 3D Studio DOS. В настоящее время он использует 3ds max в облас- ти архитектурной визуализации и графического оформления декораций, а в даль- нейшем он хотел бы найти применение данному приложению в проектах мелиора- ции земель и дизайне мебели. Дуг живет со своей женой и вредным котом в Ки- Уэст, шт. Флорида, где он также обучается искусству айкидо. Джон А. Белл (Jon A. Bell) — автор книг, художник в области трехмерной графи- ки и консультант по программному обеспечению. Проработав около 10 лет редак- тором и автором публикаций в компьютерных журналах, Джон сменил в 1991 году поле деятельности, полностью посвятив себя компьютерной графике, где он рабо- тал над проектами для телевидения, кино, компьютерных игр, мультимедийных и печатных изданий. К его увлечениям относятся трехмерная компьютерная гра- фика, подводное плавание с аквалангом и туристические походы в экзотические места. Джон и его жена Джоан любят путешествовать по миру и постоянно воспи- тывают самого непослушного в мире кота Грейстоуна. Шон Бонни (Sean Bonney; www.anvil-studio.com)— художник в области ггрехмерной графики. Он окончил университет штата Виргиния и имеет степень бакалавра изобразительных искусств в области иллюстрации и дизайна. Шон ра ботал ведущим дизайнером региональной библиотечной системы высшего разря- да, был свободным художником-оформителем компьютерных игр на нескольких студиях. Он является одним из соавторов трех предыдущих книг по 3ds max, вы- шедших в издательстве New Riders: 3D Studio 4 Max Magic, 3D Studio Max 3 Magic и 3D Studio Max 3 Professional Animation. Он живет в историческом городе Фриде- риксбурге, шт. Виргиния, со своей прекрасной женой-библиотекарем и тремя не- поседливыми сыновьями. Марк Герхард (Mark Gerhard) был приглашен в 1990 году для тестирования первоначальной версии 1 3D Studio и подготовки агентов по продаже, преподава- телей и студентов в области трехмерного моделирования и анимации. Он испол- нял обязанности ведущего составителя технической документации и учебного материала по 3ds max в компании discreet. Компьютерную графику он начал пре- подавать еще в конце 1980-х годов, а в настоящее время обучает трехмерной ани- мации в неполном колледже Санта-Роза (с двухгодичным курсом) в Петалуме, шт. Калифорния. Марк выражает благодарность Дэвиду Дабермену (David Duber- man) и Майклу Маккарти (Michael McCarthy) за написание ряда разделов гла- вы 15. Дэвид является автором технической литературы по трехмерной графике, а в этой книге — автором разделов, посвященных свойствам Motion Mixer и Crowd подключаемого модуля character studio. Майкл — художник и компьютерный ани- матор, написал разделы, посвященные модификатору Physique, режиму В ped Animation и свойству Motion Capture этого же подключаемого модуля. Райан Грин (Ryan Greene) начинал свою деятельность в качестве художника на различных студиях, специализировавшихся на производстве видео- и телепродук- ции. Затем он занялся разработкой игр на студии Microsoft Game Studios. В настоя-
щес время Райан работает на студии Valkyrie Entertainment (www. valent .us), раз- рабатывая игры, а также видео- и киноэффекты для них. Он является аттестован- ным инструктором по 3ds max. В свободное от работы время он обучается фи шп- пинскпм боевым искусствам и посещает со своей женой Стефани уютные кабачки Сиэттла, шт. Вашингтон. А. Дж. Джеффериз (A. J. Jefferies; www.moonjam.com) увлекся трехмерным моделированием и созданием персонажей еще в 14 лет. Будучи пользователем 3ds max с 5 летним стажем, он работает в настоящее время в Великобритании па сту- дии Digital Progression, создавая иллюстрации с высоким разрешением для видео- игр и рекламы. Дэниел Мапахан (Daniel Manahan; www.danielmanahan.com)— вегетариа- нец, профессор, художник, музыкант, иевец, танцор, атлет, мастер по шахматам и го и, наконец, муж и отец. Он начал пользоваться 3ds max более 10 лет назад. В настоящее время Дэниел организовал недорогой курс обучения 3ds max при Центре занятости Абрама Фридмана (AFOC— Abram Friedman Occupational Cen- lei), Лос-Лпджслес, и в колледже Рио-Хондо, Уиттер, шт. Калифорния. Для Дэ- ниела нет большего счастья, чем видеть, как его бывшие студенты делают успехи в профессиональной карьере компьютерных художников и аниматоров. Джон Макфарланд (Jon McFarland) руководит проектным отделом в крупной компании, специализирующейся на проектировании и продаже учрежденческой и жилой недвижимости, где он целыми днями занимается созданием .макетов бу- дущих сооружений. Кроме того, он преподает 3ds max в колледже искусств и ди- зайна Виргинии Марти — небольшом художественном учебном заведении, офи- циально признанном государством, в Лэйквуде, шт. Огайо. Джон живет в предме стьс Кливленда со своей женой Люси и двумя сыновьями Заком и Джекобом. Сержио Мучиньо (Sergio Mucino) пользуется программными продуктами компании discreet, начиная с версии 3D Studio DOS R4. Свою профессиональную деяте п.пость он начал в качестве аниматора на студии Technologfa Grafica Indus- tiial, создавая коммерческие рекламные телепередачи, документальные и учеб- ные анимационные фильмы для таких корпоративных клиентов, как Kimberly- Clark, PepsiCo, Siclel, Atrax Producciones и Mercurio. В настоящее время он рабо- тает техническим постановщиком на студии Digital Dimension. Сержио преподаст трехмерную анимацию па высших курсах при Технологическом институте в Мон- террее, а также в других вузах и учебных центрах. Помимо анимации, он профес- сионально занимается музыкой. Эрин Николсон (Erin Nicholson) — художник, занимающийся трехмерной графикой! и анимацией в течение семи лет. Он принимал участие в многочислен- ных анимационных проектах, в том числе для телевидения и кинематографа. В настоящее время Эрин занимает должность ответственного за моделирование на студии Elliott Animation в Торонто канадская провинция Онтарио, где он не- давно руководил работами по созданию персонажей для художественного филь- ма, который вскоре должен выйти на экран. Джон Сигалл (Jon Seagull) — художник и аниматор, специализирующийся на трехмерном иллюстрировании архитектурных проектов. Созданные им изобра- жения нередко появляются в газетах журналах, книгах, а также на афишах, теле- видении и в кино. В настоящее время он является свободным художником, поль-
зуясь счастливой возможностью принимать участие в самых разных проектах и сотрудничать с организациями различного масштаба. Кроме того, Джои препо- дает 3ds max с 2000 года в Нью-йоркской школе дизайна Парсонса и предлагает услуги индивидуального обучения 3ds max в качестве инструктора, аттестованно- го компанией discreet. Он также является казначеем Нью-Йоркского общества ви- зуализаторов (New York Society of Renderers) профессиональной организации иллюстраторов архитектурных проектов. Джон живет в Ныо-Йоркс со своей же- ной Дебби Стив Анзовин (Steve Ansovin) и Джанет Поделл (Janet Podell) — отвез ствспный и литературный редакторы этой книги. У них в Эмхерсте, шт. Массачусетс, есть собст- венная фирма, специализирующаяся на издании книг и производстве упаковки. Стив является автором восьми книг по вычислительной технике и компьютерной графике. В 2000 году он основал студию Ansovin Studio (www.ansovin.com), специализирую- щуюся на выпуске компыот ерной анимации персонажей для кино, телевидения и игр. Джанет является одним из авторов и редакторов многих книг по истории США и ми- ровой истории, включая такие издания, как Известные факты из американской политики (Famous First Facts in American Politics) и Речи американских президентов, 2-е издание (Speeches of the American Presidents, 2nd Edition). Стив и Джанет живут в Эмхерсте с тремя детьми и двумя непослушными немецкими овчарками. Благодарности Выражаю искреннюю благодарность Аллану Маккею (Allan McKay) и Фредери- ку Спирсу' (Frederick Speers) — за разумные и дельные советы, моим соавторам — за терпение и преданность делу, Сами Сорйонену (Sami Sorjonen) — за проявлен- ную щедрость, Шерел Ингланд (Cheryl England) — за профессионализм и под- держку, а также Стиву Анзовину— за умелое руководство всем проектом. Огром- ную помощь в работе над книгой оказали литературные и научные редакторы, а производственный персонал издательства New Riders постарался сделать книгу очень высокого качества. Но больше всего я признателен трем своим сыновьям (Джеку, Кэйблу' и Куин- ну), без присутствия которых в моей жизни эта книга не увидела бы вовремя свет. Шон Бонни Об обложке Модель гуманоида была создана Сами Сорйоненом (s s@sci . f i; www. cgmill. com/ss) с использованием приложений Bds max 7 и /Brush. On текстурировал эту' модель с помощью материала Shadow/Light Falloff (Тень/Спад света). Затем мо- дель была внедрена в лаву, дополнена частицами и визуализирована Шоном Бон- ни. А Шоп Фили (Sean Feely) создал лозы на фоне данной модели.
Введение Уважаемые коллеги-художники, перед вами последнее издание серии книг Внутренний мир 3ds max. Авторы этой книги преследовали цель показать более глубоко, чем в стандартном учебном материале, входящем в состав версии 3ds max 7, сильные стороны отдельных инструментов и указать на их слабые сторо- ны, а также помочь вам взять на вооружение новейшие методы и испытанные приемы, применяемые в современной компьютерной графике. В этой книге предполагается, что читатель уже знаком с 3ds max, поскольку она не предназна- чена для начинающих. Тем не менее авторы попытались сделать учебный мате- риал данной книги ясным и полным, чтобы при изучении нового инструмента нужно было бы лишь изредка обращаться к оперативной справке. Материал книги не излагается в порядке какого-то определенного производст- венного процесса. Каждый читатель может выбрать для себя упражнения, в наи- большей степени соответ твующие роду его деятельности. В книге затрагиваются самые разные темы: от архитектуры до вулканов, вторжения инопланетян и пле- щущихся в воде дельфинов. Такое разнообразие тем позволяет продемонстриро- вать технологические операции, характерные для создания анимационных фильмов и разработки игр средствами компьютерной графики. Авторы стреми- лись показать методы, которыми читатель сможет пользоваться независимо от рода его деятельности. Так, например, упражнение по поражению самолета мол- нией может с тем же успехом использоваться для того, чтобы показать, как ги- гантский паук намечает свою жертву. Цель авторов книги — раскрыть возможно- сти 3ds max, чтобы читатель смог с пользой для себя применять на практике усво- енные знания и навыки. В последней версии 3ds max продолжено расширение возможностей этого серьезного инструмента для разработки игр. Данное приложение уже давно стало излюбленным инструментальным средством художников-оформителей игр, по- этому внедрение дополнительных инструментов, специально предназначенных для разработки игр, а также усовершенствование уже существующих инструмен- тов данной категории ради удобства работы с ними явно свидетельствует о том, что компания discreet намерена и далее удерживать господствующее положение на рынке программных продуктов трехмерной графики и анимации, предназна- ченных для разработки игр. Авторы книги, имеющие практический опыт художе- ственного оформления игр, делятся собственными приемами и методами, чтобы помочь читателю сделать 3ds max еще более удобным и обязательным инструмен- том разработки игр. За последние несколько лет сложность визуального ряда игр существенно воз- росла, а его качество вплотную приблизилось к качеству телепрограмм. Даже трехмерные модели, предназначенные для деформации в реальном масштабе времени, например, модели персонажей, начинают соперничать по сложности и глубине текстуры с их предварительно визуализированными аналогами. Это да- ет повод для детального анализа в данной книге наиболее эффективных и полез- ных инструментов 3ds max в свете их применения в обеих указанных областях.
Введение 25 Что же касается применения 3ds max для выполнения кинематографических и телевизионных проектов, то эти области компьютерной графики рассматрива- ются отдельно от разработки игр. Следовательно, данная книга окажется полез- ной для художников, интересующихся графикой реального времени, предвари- тельно визуализированной анимацией либо и той и другой дисциплиной. Я пользуюсь 3ds max, начиная с версии 1, и всякий раз с энтузиазмом воспри- нимаю каждую новую версию, усовершенствования технологических операций и новые замечательные свойства этого приложения. В ряде последних версий достигнут поразительный прогресс в усложнении систем частиц, совершенство- вании инструментов моделирования, написания сценариев, освещения, визуали- зации, снаряжения, не говоря уже о включении в состав 3ds max подключаемого модуля character studio. Будучи профессиональными компьютерными художника- ми, авторы этой книги подробно анализируют эти и другие замечательные свой- ства данного приложения, вводя читателей в свою творческую лабораторию. Итак, хватит вводных слов — пора за дело! Шон Бонни Примечание. Когда эта книга выходила из печати, компания Autodesk, учре- дитель discreet, объявила об изменении названий самой компании discreet и ее программного продукта 3ds max 7. Теперь discreet официально называется Autodesk Media and Entertainment, a 3ds max 7 — Autodesk 3ds Max® 7.
Часть I Нововведения в 3ds max 7 1 Новые элементы интерфейса и инструменты 2 Нововведения в моделировании 3 Нововведения в текстурировании 4 Нововведения в анимации 5 Нововведения в визуализации
Глава 1 Новые элементы интерфейса и инструменты Дэниел Монахан Интерфейс 3ds max 7 можно сравнить с приборной панелью автомобиля, на- ходящейся перед водителем. В этой связи курсор мыши можно рассматривать в качестве руля, а видовые окна — в качестве лобового стекла. Иик, отрегулируй- те сиденье, пристегните ремни и нажмите на газ чтобы перейти к рассмотрению нововведений в интерфейсе 3ds max 7. После усовершенствований интерфейса в этой главе будут рассмотрены новые инструменты, ускоряющие выполнение операций в 3ds max. В этой части данного приложения появился ряд новых свойств, которые нельзя обойти вниманием. Интерфейс: тот же самый вид Если вам уже приходилось пользоваться интерфейсом 3ds max, вас приятно удивит то обстоятельство, что в версии 3ds max 7 вам не придется осваивать со- вершенно новые функции интерфейса и клавиатурные эквиваленты команд. Об- щая схема расположения интерфейса в версии 3ds max 7 осталась той же, что и в версиях 4, 5 и 6. Явно заметны лишь два изменения в интерфейсе данного приложения: приведена в больший порядок исходная координатная сетка, а меню дополнены незначительным количеством пунктов. Эти дополнения упрощают доступ к общим функциям. Интерфейс стал чуть более интуитивным, а некоторые функции — более доступными в обычных и квадратных меню. Но в целом внеш- ний вид интерфейса остался без изменений. Теперь исходная координатная сетка окрашена более светлым и менее замет- ным цветом. И хотя эта сетка не так ясно видна, как прежде, она не мешает рабо- те с объектами в видовом окне во время моделирования.
30 Часть I. Нововведения в 3ds max 7 Режим плоского затенения Реалистичные эффекты и сложное освещение сцены визуализируются в видо- вом окне 3ds max 7 не совсем точно. Это вынужденная уступка производите тьности ради ускорения процесса перерисовывания экрана. Следовательно, затенения и текстуры, отображаемые в видовом окне, могут освещаться слишком сильно или, наоборот, слишком слабо, неточно образуя тени и подсветки, затрудняющие визу- альное представление сцены и работу с ней (рис. 1.1). Этот недостаток может усугу- биться при моделировании крупных объектов, затрудняя просмотр выделенных подобьекгов. При разворачивании объекта в перспективе подсветки от блестящих па сильном свету' поверхностей модели могут стать причиной появления отвле- кающих световых бликов и постепенного затемнения многоугольников. Рис. 1.1. Тени на модели персонажа Чертово яйцо Данный недостаток устраняется с помощью нового в 3ds max 7 режима ото- бражения Flat Shaded (Плоское затенение), который упрощает просмотр объек- тов при слишком сильном или же слабом свете (рис. 1.2). В режиме Flat Shaded геометрическая форма наблюдается как в пасмурный день. Освещение повсюду оказывается равномерным и без заметных контрастов а карты па поверхности объекта лучше видны. Равномерное освещение в видовом окне упрощает выполнение таких стандартных операций моделирования как выравнивание геометрической формы перемещение вершин, а также манипули- рование камерой. Режим Flat Shaded позволяет также точнее установить поло-
Глава 1. Новые элементы интерфейса и инструменты 31 жение объектов при обходе камерой сцены с растровыми картами на стенах. Если степы оказываются слишком темными вследствие затенения, в таком случае очень трудно правильно определить местоположение камеры. Рис 1.2. Новый режим Flat Shaded упрощает просмотр объекта, исключая подсветки. В этом режиме тени на модели персонажа Чертово яйцо отсутствуют Для того чтобы получить доступ к режиму Flat Shaded, щелкните правой кнопкой мыши в левом верхнем углу видового окна и выберите этот режим из всплывающего подменю Other (Другие режимы отображения). Подобным способом данный режг м включается и выключается, что удобно для работы с геометрической формой, кото- рой требуется плоское затенение. К сожалению, клавиатурный эквивалент для вклю- чения и выключения режима Flat Shaded отсутствует Выбор этого режима, как, впрочем, и остальных режимов затенения, не оказывает влияния па визуализацию. СОВЕТ__________________________________________________________________ Для моделирования на уровне подобъектов в активном режиме Flat Shaded необ- ходимо также активизировать режим Edged Faces (Окаймленные грани). Режим обхода Управление видовым окном относится, вероятно, к самым часто выполняе- мым операциям в Sds max. В новой версии даннох о приложения перемещение ка- меры по сцене в окне вида из камеры или же вида в перспективе упрощается в режиме обхода (Walkthrough).
32 Часть I. Нововведения в 3ds max 7 Режим обхода аналогичен перемещению в окружающей обстановке многих видеоигр. Он допускает использование комбинаций клавиш вместе с перемеще- ниями курсора мыши для обхода сцен в реальном масштабе времени. Для доступа к режиму обхода проще всего нажать клавишу со стрелкой вверх в активном окне вида из камеры или же вида в перспективе. С другой стороны, можно перейти к элементам управления видовыми окнами, щелкнуть на кнопке Pan View (Пано- рамный вид) или Truck Camera (Параллельное перемещение камеры на плат- форме) и выбрать режим Wa kthrough из всплывающей панели. Ниже приведен перечень элементов управления дос тупных в режиме обхода. • Для перемещения камеры вперед нажмите клавишу <W> или клавиш}' со стрелкой вверх. • Для перемещения камеры назад нажмите клавишу <S> или клавишу со стрел- кой вниз. • Для перемещения камеры влево нажмите клавишу <А> или клавишу со стрел- кой влево. • Для перемещения камеры вправо нажмите клавишу <D> или клавишу со стрелкой вправо. • Для перемещения камеры вверх нажмите клавишу <Е> или комбинацию клавиш <8Ь1Й+стрелка вверх>. • Для перемещения камеры вниз нажмите клавишу <С> или комбинацию кла- виш <8ЫЙ+стрелка вниз>. • Для перемещения камеры вперед и влево, нажмите клавиши со стрелками вверх и влево и перетащите курсор мыши в режиме обхода. То же самое происходит и после нажатия клавиш <А> и <W>. А для перемещения каме- ры в других направлениях по диагонали достаточно нажать комбинации соответствующих клавиш. • Для переключения между двумя разными режимами, когда нацеливание ка- меры ограничивается направлением только влево либо вправо или же когда камера может быть неограниченно нацелена в любом направлении, нажми- те клавишу пробела. Клавиша пробела действует только в сочетании с пе- ремещениями курсора мыши, но не в комбинации с другими клавишами, и поэтому не оказывает влияния на перемещения с помощью других клавиш. • Для замедления движения камеры во время обхода нажмите клавишу <[>, а для ускорения ее движения — клавишу <]>. Удерживайте эти клавиши на- жатыми или же нажимайте их многократно для эффективной настройки ускоренного или замедленного движения камеры во время обхода. Нажати- ем клавиши <Q> осуществляется переключение между ускоренным и нор- мальным режимом обхода, а нажатием клавиши <Z> — переключение между замедленным и нормальным режимом обхода. При перемещении в режиме обхода следует иметь в виду ряд особенностей движения камеры в активизированном режиме Orthographic Projection (Ортого- нальная проекция) В частности перемещение вперед или назад не дает никакого
Глава 1. Новые элементы интерфейса и инструменты 33 результата, а объекты, расположенные вблизи камеры, будут казаться такого же размера как и отдаленные объекты. Это происходит потому, что в ортогональ- ном виде отсутствует перспектива. В действительности камера по-прежнему пе- ремещается по сцене вперед или назад. НА ЗАМЕТКУ К сожалению, режим Walkthrough не действует в окнах видов из источников света, несмотря на то, что они подобны окнам вида из камеры или вида в перспективе. Обход сцены на практике Прежде чем пользоваться командами режима Walkthrough в конкретных сценах, необходимо приобрести пра ические навыки их выполнения. Следует также иметь в виду, что в активном режиме Walkthrough все действия регистрируются для единой отмены. Поэтому если сделать несколько движений, а затем выбрать коман- ду отмены Undo, произойдет отмена не одного, а всех движений сразу. НА ЗАМЕТКУ Если при перемещении курсора вверх или вниз панорамирование камеры проис- ходит только влево или вправо, это означает, что любое движение по вертикали в режиме обхода заблокировано. Для установки или снятия такого ограничения достаточно ажать клавишу пробела. Итак, попрактикуйтесь в применении режима Walkthrough в следующей пред- варительно подготовленной сцене. 1. Откройте сцену из файла \Project Files\Ch01_InterfaceAndTools\ Walkthrough mode start .max на прилагаемом к этой книге DVD (рис. 1.3). 2. Выделите камеру, активизируйте и разверните на весь экран окно вида из камеры. Рели выделение камеры случайно отменено, выделите ее с помо- щью кнопки и диалогового окна Select By Name (Выделение по имени). 3 Активизируйте режим Auto Key (Автоматическая расстановка ключевых кадров) и перейдите к кадру 20. 4. Активизируйте режим Walkthrough, нажав клавишу со стрелкой вверх. Для доступа к кнопке этого режима, возможно, придется выбрать ее из всплы- вающей панели вместо кнопки Truck Camera. 5. Перемещайте курсор мыши в окне вида из камеры до тех пор, пока тре- угольник не окажется посредине видового окна (рис. 1.4). Для перемеще- ния по вер икали, возможно, придется нажать клавишу пробела.
34 Часть I. Нововведения в 3ds max 7 Рис. 1.3. Загруженная сцена содержит множество объектов для обхода в режиме Walkthrough Рис. 1.4. Режим обхода активизируется после выбора кнопки Walkthrough, включения режима Auto Key, перехода к кадру 20 и нацеливания камеры на треугольную форму
Глава 1. Новые элементы интерфейса и инструменты 35 В кадрах 0 и 20 устанавливаются ключевые кадры, по это еще не все. Необ- ходимо переместить камеру вперед к мест}' ее назначения. Эта процедура будет далее повторяться для каждой последовательности кадров. 6. Нажмите клавишу <W> или же клавишу со стрелкой вверх, чтобы перемес- тить камеру вперед до тех пор, пока треугольник не заполнит собой весь вид из камеры (рис. 1.5). После нажатия клавиши <S> или же клавиши со стрелкой вниз камера перемещается назад. Перемещение курсора также способствует настройке вида. Рис. 1.5. Камера приближается к треугольнику и готова пройти сквозь него 7. Перейдите к кадру 40. Перемещайте курсор до тех пор, пока крут не ока- жется в центре вида из камеры (рис. 1.6). 8 Перемещайте камеру вперед до тех пор, пока крут нс заполнит собой весь вид из камеры (рис. 1.7). Процедура установки целевых объектов по центру вида из камеры и ее по- следующего перемещения вперед будет повторяться далее в этом упражне- нии через каждые 20 кадров до тех пор, пока камера не займет новое поло- жение.
36 Часть I. Нововведения в 3ds max 7 9. Воспользуйтесь кнопкой Next Key (Следующий ключевой кадр), чтобы по- степенно дойти до кадра 60. В этом кадре звезда заполняет собой весь вид из камеры. Перемещайте курсор до тех пор, пока звезда не окажется в цен тре вида из камеры. Продолжите выполнение описанных выше операций в следующих пу'нктах данного упражнения. 10 Пройдите сквозь тороид в кадре 80. 11. I [ ройдит е сквозь квадрат в кадре 100. 12 Пройдите сквозь пятиугольник в кадре 120. 13. Пройди те сквозь шест икопечпую звезду в кадре 140. 14. Перейдите к кадру 160 и пройдите сквозь спираль. 15. Воспроизведите полученную анимацию. Камера должна точно пройти сквозь каждую упомянутую выше форму. Рис. 1.6. Круг оказывается в центре, и можно продолжать перемещение камеры вперед
Г лава 1. Новые элементы интерфейса и инструменты 37 Рис. 1.7. Ползунок временной шкалы анимации находится на кадре 40, где установлен клю- чевой кадр, и теперь можно пройти сквозь круг Нас ройка режима Walkthrough Допустим, что во время обхода сцены совершен ряд позиционных ошибок, в некоторых кадрах анимации неверно установлены ключевые кадры. Если каме- ра неточно проходит сквозь отдельные формы, в таком случае следует перейти к соответствующим ключевым кадрам и внести необходимые коррективы, исполь- зуя инструменты настройки режима Walkthrough следующим образом. 1. Активизируйте режим Key Mode во время правки ключевых кадров, чтобы упростить перемещение ползунка временной шкалы анимации между клю- чевыми кадрами, а затем внесите необходимые изменения в положение ка- меры. Кнопка переключения на режим Key Mode находится в правом ниж- нем углу интерфейсе! слева от поля ввода номера кадра. 2. Если режим Auto Key все еще активен, включите режим Key Mode и вос- пользуйтесь кнопкой Next Key, чтобы пройти по всем ключевым кадрам, постепенно дойдя до кадра 60, где звезда полностью заполняет вид из ка- меры. Перетаскивайте курсор до тех пор, пока звезда не окажется в центре данного вида.
38 Часть I. Нововведения в 3ds max 7 3. Внесите, если требуется, аналогичные изменения в других ключевых кад- рах, добившись того, чтобы в этих кадрах формы оказались в центре вида из камеры. 4. По завершении правок выключите режимы Auto Key и Walkthrough, чтобы не создать случайно лишние кадры анимации. Переключение между диалоговыми окнами и редакторами В версии 3ds max 7 появилась новая возможность закрывать диалоговые окна и редакторы, используя те же самые клавиатурные эквиваленты команд, с помо- щью которых они открываются. Если в предыдущих версиях нажатием клавиши <М> можно было лишь открыть редактор материалов, то теперь он закрывается с помощью той же самой клавиши. Ниже приведен полный перечень диалоговых окон и редакторов, которые от- крывают и закрывают одними и теми же клавиатурными эквивалентами команд. • Перемещаемая панель ActiveShade Floater. • Окно Asset Browser. • Диалоговое окно Bone Tools. • Редактор Channel Info. • Перемещаемая панель Clone and Align Tool • Перемещаемая панель D splay Floater. • Диалоговое окно Environment and Effects (клавиша <8>) • Диалоговое окно Grid and Snap Settings. • Диалоговое окно Layer Manager. • Диалоговое окно Light Lister. • Редактор Material Editor (клавиша <M>). • Окно Material/Map Browser. • Окно MaxScript Listener (функциональная клавиша <F11>). • Окно Messages модуля menial ray. • Диалоговое окно Parameter Collector (комбинация клавиш <Ail+2>). • Редактор Parameter Editor (комбинация клавиш <Atl+l>). • Окно RAM Player. • Диалоговое окно Rename Objects. • Диалоговое окно Render Scene (функциональная клавиша <F10>). • Диалоговое окно Render to Texture (клавиша <0>) • Редактор Rigid Body Property Editor. • Перемещаемая панель Selection F oater • Перемещаемая панель Spacing Tool (комбинация клавиш <Shift+I>). • Перемещаемая панель Transform Type-In (функциональная клавиша <F12>). • Диалоговое окно Video Post.
Г лава 1. Новые элементы интерфейса и инструменты 39 Если клавиатурный эквивалент команды для открытия диалогового окна отсутст вует или же вы не можете его запомнить, диалоговые окна можно закрыть с по- мощью комбинации клавиш <Ctrl+~>. Новые элементы на основной панели инструментов На основной панели инструментов появились два новых элемента: Paint Selec- tion Region и Render Shortcuts (рис. 1.8). Рис. 1.8 Новые элементы Paint Selection Region и Render Shortcuts на ос- новной панели инструментов Нажмите клавишу <Q> несколько раз, чтобы посмотреть по очереди все вари- анты выбора областей выделения: Rectangular Selection Region (Прямоугольная область выделения), Circular Selection Region (Круглая область выделения), Fence Selection Region (Область выделения в виде ограждающей рамки). Lasso Selection Region (Область выделения в виде лассо), а также новый вариант Paint Selection Region (Область выделения кистью). В режиме Paint Selection Region область вы- деляется путем перетаскивания по ней курсора мыши вместо обычного вытяги- вания вокруг нее рамки выделения. С помощью команды Render Shortcuts (Оперативно доступные параметры ви- зуализации) выбираются предварительно заданные параметры, упрощающие на- стройку параметров в диалоговом окне Render Scene (Визуализация сцены). Они также определяют порядок работы в диалоговом режиме быстрой визуализации (Cluck Render). Достаточно установить оперативно доступные параметры визуа- лизации, чтобы они автоматически использовались в режиме быстрой визуализа- ции. Для доступа к этим параметрам следует щелкнуть правой кнопкой мыши на любом сером участке основной панели инструментов и выбрать команду Render Shortcuts из всплывающего контекстного меню.
40 Часть I. Нововведения в 3ds max 7 Ниже приведен ряд новых элементов на других панелях инструментов • Кнопка переключения режима Snaps Use Axis Constraints (Ограничение по осям координат во время привязки) на панели инструментов Axis Con- straints. • Инструмент Clone and Align (Клонирование и выравнивание), доступный на панели инструментов Extras (Дополнительные средства). • Панель инструментов привязки Snaps Изменения в меню Ряд изменений и дополнений был внесен и в меню. Одни пункты меню теперь имеют более логичное расположение, другие переименованы, а третьи появи- лись лишь в версии 3ds max 7. Никаких революционных изменений в этой части интерфейса не произошло, тем не менее, новые и исправленные пункты меню, безусловно, ускоряют и рационализируют выполнение последовательности опе- раций в данном приложении. Меню File В версии Sds max 7 внедрена утилита File Link Manager (Администратор связы- вания файлов), обеспечивающая обновление в этом приложении рисунков из файлов с. расширением .dwg, созданных в AutoCAD, Mechanical Desktop и Archi- tectural Desktop после их видоизменения в исходном приложении. Утилита File Link Manager доступна из главного меню File. НА ЗАМЕТКУ Для того чтобы видеть объекты из файлов с расширением . dwg после их связы- вания, необходимо установить соответствующие средства доступа к объектам (Object Enablers), доступные для Web-саите компании Autodesk для упомянутых выше программных продуктов. Меню Tools В меню Tools (Инструменты) доступны новые инструменты, Qu ck Align (Быстрое выравнивание) и Clone and Align, применяемые для точного размеще- ния объектов на сцене. Для выбора инструмента Quick A ign служит комбинация клавиш <Shift+A>. А инструмент Clone and Align выполняет дополнительную функцию для создания копии исходного объекта в нескольких местах назначения. Меню Views В меню Views (Виды) введена команда Object D'splay Culling (Выборочное ото- бражение объектов), имеющая также клавиатурный эквивалент <Alt+O>. Пара- метры настройки режима, устанавливаемого после выполнения этой команды, доступны на панели Utilities (Утилиты). Команда Object D splay Си ling служит для ускорения процесса отображения крупных сцен в видовых окнах При этом от- дельные объекты скрываются или же отображаются в виде ограничивающего их
Глава 1. Новые элементы интерфейса и инструменты 41 объема. Достаточно указать, насколько быстро должно происходить от обряжение сцены в видовых окнах, чтобы по команде Object Display Culling было автоматиче- ски отобрано оптимальное число объектов, необходимое для достижения тре- буемой скорости отображения. Команда Object Display Culling не оказывает ника- кого влияния на единственный объект со множеством многоугольников. Меню Animation Меню Animation дополнено следующими командами: Parameter Editor (Редактор параметров), Parameter Collector (Накопитель параметров). Reaction Manager (Администратор реакций) и Delete Selected Animation (Удалить выде- ленную анимацию). Команда Parameter Editor—это нс новая а лишь переимено- ванная команда Add Custom Attribute (Ввести специальный атрибут), имеющая клавиатурный эквивалент <Ак+1>. Команда Parameter Collector служит для удоб- ства установки и настройки в едином месте интерфейса полезных параметров, подвергаемых анимации, и имеет клавиатурный эквивалент <Ak+2>. С помощью команды Reaction Manager настраиваются параметры контроллера управления реакцией (Reaction Controller) и организуется управление анимацией одних объ- ектов посредством других объектов, а с помощью команды Delete Selected An ma- tion удаляются все ключевые кадры анимации выделенного объекта. Меню Help Меню Help (Справка) дополнено командой License Borrowing (Заимствование лицензии). Эта команда доступна только при установке 3ds max 7 в сети, а при ус- тановке на автономном компьютере пункты ее подменю недоступны. Команда Li- cense Borrowing намного упрощает управление общим фондом разрешенных ко- пий 3ds max 7 в сети, когда эти копии необходимо заимствовать для компьюте- ров, не подключенных к сети. Теперь лицензию можно получить из общего фон- да для организации работы па автономном переносном компьютере, например, для деловой презентации или удаленного доступа из дому. По завершении работы лицензия возвращается в общий фонд. Как правило, для работы на переносном компьютере приходится приобретать отдельную копию 3ds max, поэтому команда License Borrowing позволяет существенно экономить средства. Квадратные меню, вызываемые щелчком правой кнопкой мыши Если щелкнуть правой кнопкой мыши, появится одно из квадратных меню, ко- торые служат для быстрого доступа к функциям, обычно скрытым внутри интер- фейса. Дополнительные квадратные меню вызываются нажатием клавиши <Ctrl>, <Sliift> или <Alt> и щелчком правой кнопкой мыши. Стандартное квадратное меню было дополнено командами Select (Выделить) и Dope Sheet (Подготовительная таблица). А квадратное меню, вызываемое до- полнительным нажатием клавиши <Ак>, содержит новые команды Reaction Man- ager и Delete Selected Animat on. Как упоминалось выше, команда Delete Selected Animation удаляет все ключевые кадры анимации, установленные для выделенных объектов. А команда Dope Sheet обеспечивает еще один режим правки ключевых кадров, в котором пользователь может видеть все пределы анимации нескольких объектов и оценивать взаимосвязь между ними.
42 Часть 1. Нововведения в 3ds max 7 В квадратное меню, вызываемое дополнительным нажатием клавиши <Shift>, введена команда Grid and Snap Settings (Параметры сетки и привязки), а также команды переключения следующих режимов привязки: Grid Points (Привязка к точкам сетки), Pivot (Привязка к точке опоры), Vertex (Привязка к вершине), Midpoint (Привязка к средней точке), Edge/Segment (Привязка к ребру или сег- менту') и Face (Привязка к грани). Инструменты: рационализация труда и экономия времени Как известно, времени всегда не хватает, тогда как имеющееся время нередко может быть потрачено впустую. Всякий раз, когда npoi рамма трехмерной анима- ции позволяет экономить время и ускоряет выполнение операций, ее нужно бла- годарить за это, поскольку слишком часто операции в трехмерной среде, направ- ленные на решение конкретных задач или достижение определенных эффектов, заставляют пользователя предпринимать намного больше шагов, чем их должно быть на самом деле. К счастью, в последовательность выполняемых операций 3ds max 7 введены незначительные, но существенные усовершенствования, позволяющие значи- тельно экономить драгоценное время. К их числу относятся следующие свойства. • Инструмент выделения Paint Selection Region • Команда Object Disp ay Culling • Режим отображения Array Preview • Инструмент Quick Align • Инструмент Clone and A ign • Усовершенствованные режимы привязки Инструмент выделения Paint Selection Region Инструмент Paint Selection Region обеспечивает новый метод выделения ана- логично инструменту Lasso Selection Region. Вместо того чтобы обводить выде- ляемые объекты рамкой выделения, в данном случае достаточно протащить по ним курсор мыши, как при нанесении мазка кистью. Этот инструмент отлично подходит для выделения неровных, по вполне определенных участков. Как и в других методах выделения, при нажатии клавиши <Alt> отдельные объекты удаляются из выделенной совокупности, а при нажатии клавиши <Ctrl> — вводятся в нее. По умолчанию размер кисти инструмента Paint Selection Reg on составляет 20 единиц, однако он может быть изменен во вкладке General (Общие параметры) диалогового окна Preferences (Глобальные параметры). Размер кисти можно изменять и в диалоговом режиме, но для удобства выполнения команд Paint Selection Size Down (Уменьшить размер кисти выделения) и Paint Selection Size Up (Увеличить размер кисти выделения) придется установить специальные клавиатурные эквиваленты в диалоговом окне Customize User Interface
Г лава 1. Новые элементы интерфейса и инструменты 43 Работа с инструментом Paint Selection Region Прежде всего, необходимо установить специальные клавиатурные эквивален- ты для команд изменения размера кисти инструмента Paint Selection Region, а за- тем уже приступать к экспериментированию с этим новым инструментом 1. Выберите из главного меню команду Customize^Customize User Interface (Специальная настройка1^Специальная настройка пользовательского ин- терфейса). 2. Найдите и выделите команду Paint Selection Size Down в списке Acton (Действие), расположенном во вкладке Keyboard (Клавиатура) диалогового окна Customize User Interface. 3. Установите курсор в поле Hotkey (“Горячая” клавиша), нажмите сначала кла- вишу <Shift>, а затем клавишу <-> (знак “минус”) и щелкните на кнопке Ass gn (Назначить). Справа от команды Paint Selection Size Down в списке Acton появится назначенная для нее комбинация клавиш <Shift+-> (рис. 1.9). Рис. 1.9. После выбора кнопки Assign справа от команды Paint Selection Size Down в списке Action появится назначенная для нее комбинация клавиш <Shift+-> 4. Повторите описанную выше процедуру, назначив комбинацию клавиш для команды Paint Selection Size Up. А теперь выполните следующее упражнение, чтобы лучше понять особенности применения инструмента Paint Selection Region. 1. Откройте сцену из файла \Project Files\Ch01_InterfaceAndTools\ Paint Selection Region start .max на прилагаемом к этой книге DVD. Перейдите от окна вида сверху к окну вида в перспективе, чтобы лучше ви- деть вершины, образующие форму в виде буквы S, поднятую над примитив- ной плоскостью В данном упражнении необходимо выделить вершины и опустить их вниз таким образом, чтобы уменьшить толщину S образной формы.
44 Часть I. Нововведения в 3ds max 7 2. Выделите объект PlaneOl в окне вида сверху. Измените масштаб плоско- сти таким образом, чтобы заполнить ею все видовое окно. Если этого не удастся сделать, нажмите клавишу <Z>, чтобы показать выделенный объект полностью. 3. Активизируйте режим работы с подобъекгами-вершинами (Vertex) на панели Modify и нажимайте клавишу <Q> до тех пор, пока па основной панели инст- рументов не появится инструмент Paint Selection Region. Затем выделите ки- стью вершины, расположенные посредине S-образпой формы (рис. 1 10). Рис. 1.10. Вершины S-образнои формы, выделенные кистью инструмента Paint Selection Region 4. Перейдите к виду в перспективе и активизируйте инструмент Select and Move (Выделить и переместить). Введите значение 0,0 в ноле Z из области Transform Type-in (Ввод координат преобразования) в нижней части ин- терфейса (рис. 1.11). 5. Откройте сцену из файла \Project Files\Ch01_InterfaceAndTools\ Paint Selection Region finish.max па прилагаемом к этой книге DVD, чтобы увидеть конечный результат Безусловно, эти же вершины можно было выделить и с помощью инстру- мента Fence Selection Region или Lasso Selection Region, по в таком случае пришлось бы делать многочисленные щелчки кнопкой мыши. А для выде- ления инструментом Paint Selection Region достаточно сделать один мазок кистью.
Глава 1. Новые элементы интерфейса и инструменты 45 Рис. 111 Вид в перспективе вершин, выделенных и опушенных вниз на величину О, О по оси Z Команда Object Display Culling Команда Object Display Culling позволяет ускорить обновление изображения на экране, быстро скрывая одни объекты и показывая другие чтобы наиболее эф- фективно использовать оперативную память, доступную для о тображения объек- тов, а следовательно, повысить эффективность вывода сцепы па экран. По суще ству при выполнении команды Object Display Culling принимается решение, сле- дует ли отображать па экране отдельные объекты с полным разрешением или же в виде ограничивающего объема в зависимости от их удаленности от камеры, числа многоугольников, из которых состоят эти объекты, а также от частоты кад- ров, установленной для воспроизведения анимации в видовых окнах. Если огра- ничивающими факторами служат объем экранной памяти и производительноегь видеоплаты, что, как правило, и бывает при отображении крупных сцеп со мно- жеством сложных объектов, команда Object Display Culling позволяет действи- тельно сэкономить время, а иногда и труд, в процессе работы над сцепами, если для этого нет других возможностей (рис. 1.12).
46 Часть I Нововведения в 3ds max 7 ? LU©!©? j-f- / ' UtrferaZ ~~ "I More. .1 Sets ”*5 I 1*i ’ _____Asset Brower Camera Natch I _________Cofapte Cob Measure Mctbri Capture____jj Rest XForm ____MAXScrpt______ teeboi____________, ~- --------------------- l^J dkectPupteyOilmQ 17 E at* J Framerefte jy-, * I Г* SelAdjust framerate I 17 Aflcci Scene XRefs ' Dtyectjs) culed -100 CdM ObjoCtr-------—il ir """ ® Display As Bcundnjj Box 1 . Cbra I Рис. 1.12. Команда Object Display Culling доступна на панели Utilities, а для переключения со- ответствующего режима отображения служит комбинация клавиш <Alt+O> Выбор отображаемых объектов Для того чтобы лущте понять, каким образом действует команда Object Display Culling, выполните приведенное ниже упражнение. На ход его выполнения может повлиять быстродействие вашего компьютера, поэтому устанавливайте большие значения параметров для быстродействующего компьютера и меныпие значения параметров для медленного компьютера, чтобы ясно видеть результаты выполне- ния команды Object Display Culling и в то же время избежать зависания системы. 1. Откройте сцену из файла \Project Files\Ch01_InterfaceAndTools\ Object Display Culling start.max на прилагаемом к этой книге DVD. Эта сцена открывается в окне вида в перспективе с массивом из 100 экземпляров параллелепипеда, преобразованных в редактируемые много- угольники (а не оставленных в виде примитивных параллелепипедов). 2. Панорамируйте и сделайте сцепу крупнее. Отображение в видовом окне 100 параллелепипедов, каждый из которых состоит из 6 многоугольников, на бы- стродействующем компьютере не вызовет особых затруднений. Затруднения начинаются по мере увеличения сложности каждого такого объекта. 3. Щелкните на кнопке More (Дополнительно), расположенной на панели Utilities, и выберите из списка команду Object Display Culling. 4. Установите флажок Enable (Активизировать), сбросьте флажок Self-Adjust Framerate (Самонастройка частоты кадров) и установите значение 30 в по- ле Target Framerate (Целевая частота кадров). Если сбросить флажок Self-Adjust Framerate, анимация в видовом окне будет гарантированно воспроизводиться с установленной целевой частотой 30 кадров в секунду. Эта достаточно высокая частота кадров обусловит выбо- рочное отображение некоторых объектов в виде ограничивающих объемов.
Глава 1. Новые элементы интерфейса и инструменты 47 5. Выборочное отображение объектов будет выполняться и в зависимости от числа многоугольников. из которых они состоят. Выделите один из парал- лелепипедов, перейдите к панели Modify, раскройте список модификато- ров, выберите из этого списка модификатор TurboSmooth и установите значение 4 параметра Iterations (Число повторений). Новый модификатор TurboSmooth тесно связан с модификатором Mesh- Smooth, однако он оптимизирован по скорости отображения сцены в видо- вом окне. В резулы ате установки значения 4 парамет pa Iterations модифи- катора TurboSmooth все шесть сторон каждого из 100 параллелепипедов бу- дут подразделены 4 раза, а следовательно, в сцепе появятся тысячи допол- нительных многоугольников, что суще<твенпо усложнит ее по сравнению с 600 исходными многоугольниками. Если ваш компьютер действительно быстродействующий, вы, скорее всего, не заметите больших изменений в производительности, поэтому попробуйте увеличить значение параметра Iterations, но не заходите слишком далеко, чтобы не довести систему до за- висания или даже до аварийно! о отказа. 6. I Топытайтесь панорамировать, изменить масштаб и развернуть сцену в пер- спективе. Обратите внимание на исчезновение все большего числа отдален- ных параллелепипедов по мере этих изменений в видовом окне (рис 1.13). &'Сот [BoxtJI | Рис 1 13 В этой сцене выделен передний параллелепипед а параллелепипеды на заднем плане отображаются лишь выборочно при целевой частоте 30 кадров в секунду
48 Часть I Нововведения в 3ds max 7 7. Установите значение 15 параметра Target Framerate и попытайтесь выполнить панорамирование сцены, как и прежде. Теперь в видовом окне отображается больше параллелепипедов, хотя это делается по-прежнему медленно (рис. 1.14). ’|Воя01 UWies ± 11 ~ Obtecl D splay Cd rig R Enable Target Fwrne’ate II Г“ SeU-Adpjst Framerate p Affect Sceft-XRefs Objects cried -38 i - CuBed Db|ect$ —----------- j C Hidden Display As Bcwdng Зон dose Рис. 1.14. При уменьшении целевой частоты до 15 кадров в секунду на заднем плане вновь появляются исчезнувшие было параллелепипеды Данную сцену в завершенном виде можно загрузить из файла \Project Files\Ch01_InterfaceAndTools\Object Display Culling finish, max па прилагаемом к этой книге DVD. Режим отображения Array Preview Новый для версии 3ds шах 7 режим отображения Array Preview (Предвари тельный просмотр массива) применяется при копировании объектов и точном их расположении на сцене. В предыдущих версиях для этой цели приходилось по- стоянно обращаться к диалоговому окну Array, вводить новые значения и наблю- дать полученные результаты, которые отображались только после принятия вне- сенных изменений. Теперь же полученные результаты можно наблюдать в диало- говом режиме, что ускоряет процесс внесения изменений. Это еще одна крупная мера, принятая в 3ds max 7 ради экономии времени. НА ЗАМЕТКУ Диалоговое окно Array не допускает изменения своего размера, а следователь- но, панорамирование или изменение масштаба сцены становится недоступным, когда это диалоговое окно открыто. Поэтому, прежде чем открыть диалоговое окно Array, непременно сделайте сцену полностью видимой, чтобы вам было удобнее просматривать в ней новые объекты.
Глава 1. Новые элементы интерфейса и инструменты 49 В режиме Array Preview имеется также возможность предварительного просмотра сцепы содержимого в виде ограничивающих объемов, а не полностью визуализиро- ванной геометрической формы. Это удобно для работы в диалоговом режиме с круп- ными сцепами, где в результате создания массива из многих объектов может сущест- венно замедлиться реакция 3ds max на действия пользователя в видовых окнах. Создание спиральной лестницы Проверьте возможности режима Array Preview на примере создания спираль- ной лестницы в следующем упражнении. 1. Откройте сцепу из файла \Project Files\Ch01_InterfaceAndTools\ array start .max на прилагаемом к этой книге DVD. Обратите внимание па то, что эта сцена панорамирована и масштабирована в видовом окне и состоит из одного объекта Stair (Ступенька), отображаемого в левом нижнем углу видового окна. Благ одаря этому па экране остается достаточно места для отображения диалогового окна Array и одновременного просмот- ра новых копий объекта Stair. Выделите объект Stair, обратив внимание на то, что точка опоры этого объекта отдалена от него и находится в начале системы мировых координат (рис. 1 15). Рис. 1.15. Эта сцена панорамирована таким образом, чтобы оставить доста- точно места для предварительного просмотра массива объектов наряду с ото- бражением диалогового окна Array Точка опоры объекта отдалена от него
50 Часть I. Нововведения в 3ds max 7 2. Выделите объект Stair и выберите инструмент Array из главного меню Tools. Откройте диалоговое окно Array и выберите в нем кнопку переключатель Instance (Экземпляр), чтобы изменения в выделенном объ- екте Stair распространялись и на его копии, которые будут созданы далее в этом упражнении. 3. Расположите диалоговое окно Array в правом нижнем углу экрана, чтобы лучше видеть получаемые копии выделенного объекта. 4. Установите значение 15 в поле Z Move (Перемещение по оси Z), значение -10 в поле Z Rotate (Вращение вокруг оси 7) и значение 20 в поле Count (Число элементов массива), а затем щелкните на кнопке Prev ew. В данном примере можно оставить сброшенным флажок Disp ay as Box (Отображать в виде параллелепипеда), поскольку число многоугольников в данной сцене неве- лико. В итоге появятся ступеньки, располагаемые одна над другой по дуге (рис. 1.16). Следует иметь в виду, что инструмент Array копирует объекты в зависимости от местоположения их точки опоры. Именно поэтому копи руемые ступеньки располагаются по дуге, определяемой расстоянием меж ду ступенькой и ее точкой опоры. Рис. 1.16. Предварительно просматриваемым вид ступенек спиральной лестницы Новые инструменты выравнивания Как правило, инструмент Align используется в 3ds шах для точного расположе- ния и ориентации одного объекта относительно другого. В диалоговом окне Align Selection (Выравнивание выделенного) можно указать ту часть выделенного объ-
Глава 1. Новые элементы интерфейса и инструменты 51 екта, которую требуется выровнять относительно соответствующей части целе- вого объекта. Остальные параметры в этом диалоговом окне определяют оси вы- равнивания, а также итоговую ориентацию и масштаб целевого объекта. Инструмент Quick Align Стандартный инструмент Align обеспечивает полный контроль многих аспектов процесса выравнивания объектов. Но зачастую требуется всего лишь переместить один объект в точку опоры друтого Для этой цели намного проще и быстрее вое пользоваться новым инструментом Quick Align (рис. 1.17). Эют инструмент выби- рается из всплывающей панели инструментов выравнивания, доступной па основ- ной панели инструментов, или же нажатием комбинации клавиш <Shift+A>. Инструмент Quick A ign Рис. 1.17. Инструмент Quick Algn является вспомогательным, дополняя в 3ds max 7 стан- дартный инструмент Align. Достаточно выделить исходный объект и переместить его инст- рументом Quick Al gn к целевому объекту Инструмент Quick Align действует мгновенно и нс требует выбора или на- стройки дополнительных параметров в диалоговом окне — достаточно выбрать этот инструмент, чтобы переместить один или несколько выделенных объектов к единственному целевому объекту.
52 Часть I. Нововведения в 3ds max 7 Инструмент Clone and Align Нередко один или несколько выделенных объектов приходится копировать в месторасположение ряда других объектов. Для этой цели и служит инструмент Clone and Align. Он подобен инструменту Quick Align, по при этом позволяет вы- брать на сцене объекты, которые станут целевыми для выделенных исходных объектов. Кроме того, в диалоговом окне Clone and Align предоставляется воз- можность смещать, изменять ориентацию и масштабировать копируемые объек- ты относительно любых указанных координат XY7. Для изучения возможностей инструмента Clone and Align в следующем упраж- нении вам предстоит создать копии стойки лестничных перил для каждой ступе- ни лестницы. 1. Откройте сцену из файла \Project Files\Ch01_InterfaceAndTools\ clone and align start .max па прилагаемом к этой книге DVD. Эта сцена открывается в окне вида в перспективе и состоит из тех же самых объектов, что и в предыдущем упражнении, кроме дополнительно введенного объекта стойки лестничных перил (Post), который и предстоит вам скопировать. 2. Выделите объект Post и выберите инструмент Clone and Align из главного меню Tools (рис. 1.18) Рис. 1.18. Сначала выделите объект Post и лишь затем выберите инструмент Clone and Align из главного меню Tools
Глава 1. Новые элементы интерфейса и инструменты 53 Опсроегся диалоговое окно Clone and Align (рис. 1.19). К счастью, это диа- логовое окно позволяет панорамировать и масштабировать вид сцены, чтобы следить за тем, что в пей, собственно, происходит. Рис. 1.19. Объект Post копируется и располагается на каждом объекте Stair, выбранном из списка в окне Pick Destination Objects (Выбор целевых объектов) 3. Щелкните па кнопке Pick List (Выбрать из списка) и выделите все объекты Stair. Следует иметь в виду, что вновь создаваемые стойки лестничных перил должны перекрываться и располагаться друг за другом в точках опо- ры ступенек. 4. Разверните сцену в перспективе, чтобы ясно видеть каждую стойку лест- ничных перил. Установите значение -185 в поле X и значение -10 в поле Y из области Offset (Local) (Смещение относительно локальных осей) в диа- логовом окне Clone and Align. Объект Post будет скопирован и распо южен на каждом объекте Stair (рис. 1.20).
54 Часть I. Нововведения в 3ds max 7 Рис. 1.20. Визуализированный вариант спиральной лестницы с дополни- тельно введенными источниками света и плоскостью основания В завершенном виде данную сцену' можно посмотреть в файле \Project Files\Ch01_InterfaceAndTools\clone and align finish.max на прилагаемом к этой книге DVD. Усовершенствованные инструменты привязки Иногда точность намного более важна, чем удобство работы,— даже при ху- дожественном моделировании и оформлении трехмерных сцен. В тех нередких случаях, когда требуется особая точность, па помощь приходят инструменты привязки (Snaps). Но когда пет времени, не помогают и они. Именно для таких случаев инструменты привязки были усовершенствованы в версии 3ds max 7. Теперь, в частности, благодаря привязке к точкам сетки при создании линии обеспечивается точность расположения вершин па пересечениях исходной ко- ординатной сетки. В предыдущих версиях 3ds max для этой цели сначала прихо- дилось устанавливать наиболее подходящий шаг сетки. Предварительный просмотр результатов привязки —это еще одно вспомога- тельное средство для точного расположения объектов. Раньше для привязки объ-
Глава 1 Новые элементы интерфейса и инструменты 55 екта приходилось устанавливать курсор рядом с т очкой сетки и щелкать кнопкой мыши, хотя результат отнюдь не всегда оправдывал ожидания, и поэтому опера- цию приходилось повторять еще раз. Теперь же в версии 3ds max 7 имеется воз- можность предварительного просмотра результатов привязки объекта перед тем, как перемещать его к месту привязки. Если курсор находится на расстоянии не более 30 пикселей от сетки, то предварительный просмотр позволяет увидеть конкретное место привязки объекта. Если же курсор находится па расстоянии не более 20 пикселей от сетки, произойдет привязка. Следовательно, увидев заранее место привязки объекта, вы можете откорректировать положение курсора мыши, чтобы привязка произошла именно там, где нужно. Параметр Snap Radus (Радиус привязки) определяет расстояние, па котором будет происходить привязка, а параметр Snap Prev ew Radius (Радиус привязки для предварительного просмотра) — расстояние, на котором привязка предполагается, но фактически не происходит. Для того чтобы параметр Snap Preview Rad us дей- ствовал правильно, установите его значение больше, чем значение параметра Snap Radius. Ведь если значения этих параметров слишком близки друг к другу, предва- рительный просмотр результатов привязки вряд ли станет возможным. Опробование инструментов привязки В следующем упражнении приведен пример применения усовершенствованных свойств инструментов привязки В этом упражнении прямоугольник будет переме- щен таким образом, чтобы один из его углов оказался в конкретной точке сетки. 1. Создайте в окне вида в перспективе прямоугольник длиной и шириной 50 единиц. 2. Щелкните правой кнопкой мыши па любом сером участке основной панели инструментов и выберите команду Snaps из всплывающего контекстного меню (рис. 1.21) Панель Snaps открывается также щелчком правой кноп- кой мыши ниже поля с элементом View (Окопная система координат) в рас- крывающемся списке Reference Coordinate System (Система опорных коор- динат) на основной панели инструментов. На открывшейся панели актив- ны кнопки Snap to Grid Points (Привязка к точкам сетки) и Snap to Grid Endpo nt (Привязка к конечной точке). Панель Snaps может быть присты- кована для удобства работы к верхнему краю экрана. 3. Щелкните правой кнопкой мыши на кнопке Snaps, расположенной на ос- новной панели инструментов Откроется диалоговое окно Grid and Snap Settings. Убедитесь в том, что в этом диалоговом окне установлены только флажки Snap to Grid Points и Snap to Grid Endpoint. 4. Нажмите клавишу <S>, чтобы активизировать кнопку Snaps. Перетащите инструментом Select and Move левый верхний угол прямоугольника в точку с координатами (0,0,0). В качестве нового свойства версии 3ds max 7 появится голубая резиновая пить, обозначающая предыдущее и последую- щее месторасположение прямоугольника после его перемещения в центр системы координат (рис. 1.22).
56 Часть I. Нововведения в 3ds max 7 Рис. 1.21. Создайте прямоугольник в окне вида в перспективе Рис. 1.22. Голубая резиновая нить обозначает изменение положения объекта во время его привязки. Обратите внимание на то, что панель Snaps пристыкована к верхнему краю экрана
Глава 1. Новые элементы интерфейса и инструменты 57 Как следует из полей Transform Type-In в нижней части экрана, точка опоры прямоугольника теперь находится в точке с координатами (-25,-25,0), по- скольку левый верхний угол прямоугольника теперь находится в точке с ко- ординатами (0,0,0) а его длина и ширина составляет 50 единиц Резюме На первый взгляд, в интерфейс версии 3ds max 7 внесены незначительные из- менения, но эти изменения стоит изучить и взять на вооружение. Меню и панели инструментов теперь стали более удобными для поиска конкретных функций. Режим Flat Shaded дает возможность наблюдать модели без помех, не отвлекаясь на подсветки и темные участки. А режим Walkthrough предоставляет такую же свободу перемещения и анимации камеры, как и при прохождении окружающей обстановки в видеоигре. Благодаря этому намного упрощается создание архитек- турных видов “с высоты птичьего полета” Ускоренное открытие и закрытие диа лотовых окоп кажется не самым заметным на первый взгляд усовершенствовани- ем интерфейса, тем не менее, оно позволяет экономить время, когда открывать и закрывать диалоговые окна приходится десятки, а то и сотни раз в день. Кроме того, последовательность операций упрощае тся и ускоряется благодаря новым инструментам, командам и режимам, внедренным в версии 3ds max 7. Так, с помощью ипструмснта Paint Selection Region намного ускоряется объектов и по- добъектов а благодаря команде Object Display Culling — обновление изображения в видовом окис. Режим Array View теперь намного удобнее для работы с массива- ми объектов, новые инструменты выравнивания работают быстрее и надежнее, а инструмеп гы привязки обеспечивают более предсказуемые результат ы. Все эти новые свойства интерфейса и инструментов вы сможете быстро осво- ить, прорабатывая материал последующих глав данной книги. Желаем приятно провести время!
г „ „ в „ 7 1 Л (1 о (1 Д Нововведения в моделировании Дэниел Манахан Моделирование — одно из основных достоинств 3ds max, и в версии 7 оно бы- ло усовершенствовано благодаря внедрению новых модификаторов и дополни- тельных функций редактируемого многоугольника (Editable Poly), В этой главе рассмотрены следующие средства моделирования, характерные для версии 7. • Модификатор Edit Poly. • Режим Select Poly by Ang e. • Режим плавного выделения кистью. • Режим Make Planar. • Инструмент Bridge • Инструмент Cut. • Режим Turn Edges. • Режимы Paint Deformation и Relax. • Модификатор TurboSmooth.
60 Часть I. Нововведения в 3ds max 7 Модификатор Edit Poly Новый модификатор Edit Poly (Правка многоугольника) аналогичен модификато- ру Edit Mesh (Правка каркаса), однако у него гораздо больше возможностей. В частно- сти, в модификаторе Edit Mesh отсутствуют функции для выделения ребер кольцом (Ring) или петлей (Loop), а параметры и положение вершин не подлежат анимации. А модификатор Edit Poly позволяет работать с большинством средств моделирования, доступных на уровне редактируемого многоугольника (Editable Poly). Наличие модификатора для правки модели дает следующее важное преимуще- ство при выполнении последовательности операций: все изменения сохраняются в одном модификаторе. Это позволяет удалить модификатор как слой и вернут ься к тому, что было до применения модификатора. По существу, это аналогично вы- полнению одной крупной операции отмены, возвращающей к исходному вариан- ту' модели, существовавшему'до правки. Однако данное преимущество имеет одно важное ограничение: вместе с мо- дификатором Edit Poly со сцены удаляются и все присоединенные к нему объек- ты, причем они будут утрачены навсегда, если не перезагрузить сцену. В связи с этим рекомендуется следующее: если объект должен быть присоединен к моди- фикатору Edit Poly, его следует сначала скопировать на тот случай, если придется удалить данный модификатор. С другой стороны, можно отсоединить его эле- мент <хг исходного объекта перед тем, как удалять модификатор Edit Poly НА ЗАМЕТКУ Модификатору Edit Poly можно найти следующее полезное применение: если выделить с его помощью подобъекть, то применение любых модификаторов, находящихся в стеке выше данного модификатора, будет ограничено выделен- ной областью. Аналогичным образом действует и модификатор Edit Mesh Одно из замечательных свойств модификатора Edit Poly состоит в возможно- сти анимации его функций с помощью кнопки-переключателя Mode (Моделиро- вание) или Animate (Анимация). Однако на каждый модификатор Edit Poly прихо- дится только одна совокупность выделенных с его помощью подобъектов, кото- рые подлежат анимации. В модификаторе Edit Poly анимация должна осуществ- ляться в последнюю очередь, но до перехода в режим Model, иначе ключевые кад ры будут утеряны. В активном режиме An mate можно лишь зафиксировать ключевые кадры. При этом все ключевые кадры анимации будут утеряны, но внесенные изменения ос тапутся. Щелчок па кнопке Commit (Зафиксировать) дает такой же результат, как и сворачивание стека и создание нового модификатора Edit Poly (рис. 2.1).
Глава 2. Нововведения в моделировании 61 Wink felt eye 3] Modifiet List Q □ Edit \ □ Editable •*. "Л 1 Show Cage i Grid-100 I Add Time Tag ‘ Model G Annate Relax Commit ; Seteckon 0 в Use Stack Selection 11 - EAGeoffHty ~ ~|- Repeal Last | Constants | Nene jJ ( ' 1“ PietetveUVs □ 'reete Collapse Д-&3 ig| -Oe-Pdi □! 5 - I Г Spit li __ Sbce | ResetPtore I ' U I MSmooth ,□ csseaate |p| 66*6 Rana | X| y| z| ViewAtigr G dA6qn_] Relax {□' .’del°ecte. | Hamed S ejections. Cc» j Paste | P F^l.rjsz-Vefues | + Soft Selectron |i | + Ed< Vertices [i | » Paint Detamatron lObieaSel S E X[ 2fck ot cfck-and-dtag to select objects Q fflWSUfs'eiect'ed Д *** <n E ll> j>H 4- J? ______| Set Key Кф Fillets. « p z © > Рис. 2.1. В этом примере анимации подлежит параметр Iterations новой функции Relax мо- дификатора Edit Poly. После щелчка на кнопке Commit происходит сворачивание внесенных изменений и удаление ключевых кадров анимации Режим Select Poly by Angle В редактируемом каркасе ы модификаторе Edit Poly появилась новая возмож- ность выделять многоугольники в зависимости от их утла расположения относи- тельно выделенного в текущим момент многоугольника. После выделения много- угольника выделяются все соседние многоугольники угол расположения которых не превышает заданный порог. Кроме того, многоугольники, находящиеся рядом с автоматически выделяемыми многоугольниками, могут быть добавлены в сово- купность выделения, если угол их расположения также не превышает заданный по- рог. Подобным образом можно расширять совокупность выделения многоугольни- ков, используя режим Select Poly by Angle (Выделение многоугольников по углу рас положения), до тех пор, пока утол их расположения не превысит заданный порог. А для чего нужен режим Select Poly by Angle’ Прежде всего, он удобен для тек- стурирования ландшафтов. С его помощью можно, например, выделить много- угольники па определенном склоне и наложить на них конкретную карту' текстуры склона. Для того чтобы попять, как э тот режим работает, необходимо немного по- экспериментировать. Так, если щелкнуть па одном многоугольнике шестистороп- него куба при установленном пороге 90° будут выделены все многоугольники этого
62 Часть 1 Нововведения в 3ds max 7 объекта. При этом выделяется многоугольник на противоположной стороне куба, несмотря на то, что угол его расположения отличается па 180°. Сначала на предмет выделения оцениваются все соседние многоугольники, а затем следующие? находя- щиеся по соседству многоугольники, и так до тех пор, пока не останутся соседние многоугольники, углы расположения которых не превышают заданный порог для расширенной совокупности выделения. Если щелкнуть на выделенном многоуголь- нике и нажать клавишу <Alt> для удаления многоугольников из совокупности выде- ления при установленном пороговом угле 90°. произойдет отмена выделения всех многоугольников куба. Очень важно правильно установить пороговый угол By Angle. Если он слиш- ком велик, результаты могут оказаться непредсказуемыми, включая и выделение ненужных многоугольников. Поэтому лучше установить малый пороговый угол, чтобы быстро выделить многоугольники, практически находящиеся в одной плоскости (рис. 2.2). Так, при значении 0,0 параметра By Angle выделяются только коплапарные многоугольники. Рис. 2.2. В этом примере установлен пороговый угол 3. После выделения одного много- угольника в совокупность выделения автоматически добавляются все остальные многоуголь- ники, угол расположения которых не превышает 3 Плавное выделение кистью Плавное выделение (Soft Selection), доступное только' па уровне редактируемого многоугольника и модификатора Edit Poly представляет собой способ создания маски для других модификаторов, находящихся выше в стеке. Как правило, для того чтобы иметь возможность плавного выделения, приходится выполнять обычное выделение. Плавное выделение обозначается цветным участком вокруг выделенно- го подобъекта. При этом обычное выделение, обозначенное красным цветом, ок-
Г лава 2. Нововведения в моделировании 63 ружено целой гаммой цветов, обозначающих интенсивность плавного выделения Наиболее сильное влияние плавного выделения обозначается оранжевым цветом, а по мере его убывания — желтым, зеленым и, наконец, синим цвето-м. В 3ds max 7 плавное выделение можно теперь выполнять кистью вместо его ради- ального распространения, как прежде, причем не выполняя предвари гельно обычное выделение. Это более художественный и контролируемый способ создания совокуп- ностей выделения. Щелкните на кнопке Paint (Раскрасить кистью) в свитке Soft Se- lection, чтобы получить доступ к данном}' свойству плавного выделения (рис. 2.3). По- лученное выделение можно передать вверх по стек}'друтим модификаторам. Рис 2.3. Несмотря на то что ни одна из вершин не выделена, плавное выделение можно вы- полнять кистью, выбрав новую кнопку Paint в свитке Soft Selection Модификатор, применяемый к плавному выделению, даст частичный эффект в зависимости от веса подобъектов, обозначаемых разным цветом в области плав- ного выделения Модификатор Bend (Изгиб), применяемый к плавному выделе- нию, сгибает лишь явно выделенный участок, а участок плавного выделения сги- бается частично в зависимости от степени влияния плавного выделения. В таких режимах видоизменения редактируемого многоугольника, как Relax (Ослабить) и Make Planar (Сделан» плоским), также учитывается плавное выделение. Обычно плавное выделение определяется радиусом распространения от вы- деленной вершины, изменяя цвет своего влияния при преобразовании вершины. Это происходит потому, что когда вершины деформирукхгея и перемешаются в новое положение, изменяется и расстояние от выделенной обычным образом вершины до плавно выделяемой вершины. В версии 3ds max 7 появилась новая
64 Часть I. Нововведения в 3ds max 7 возможность раскраски кистью (Paint) и блокировки плавного выделения (Lock Soft Selection). В этом режиме можно видоизменять и преобразовывать плавное выделение, не меняя цвет его влияния Режим Make Planar Если требуется сделать плоскими некоторые многоугольники из совокупности обычного или плавного выделения подобъектов, для этой цели служит режим Make Planar, в котором совокупность выделения делается ровной по среднему уг- лу ее составляющих. В модификаторе Edit Poly режим Make Planar игнорирует плавное выделение ы воздействует только па обычное выделение. Новый ряд кнопок X, У Z, расположенных справа от кнопки Make Planar в свит- ке Edit Geometry (Правка геометрической формы), позволяет делать плоской сово- купность обычного или плавного выделения относительно выбранной локальной оси объекта (рис 2.4). Так, если выполнить плавное выделение кистью, а затем щелкнуть па кнопке Z, оно станет плоским относительно локальной оси Z объекта. Рис. 2.4. Многоугольники геосферы (слева) сделаны плоскими в режиме Make Planar и распо- ложены теперь под средним для данной совокупности выделения углом. Та же самая сово- купность выделения многоугольников геосферы (справа) сделана плоской относительно оси Z
Глава 2. Нововведения в моделировании 65 Цвет плавного выделения обозначает влияние режима Make Planar па это вы деление. Совокупность выделения становится все более плоской после каждого щелчка на кнопке Make Planar и кнопках соответствуют дих локальных осей. Инструмент Bridge Инструмент Bridge (Перемычка), доступный из свитка Edit Borders (Правка границ), позволяет вытягивать соединение из двух выделенных границ. С помо- щью инструмента Bridge образуется плавный переход, если обе выделенные гра- ницы имеют одно и то же число ребер или сходную форму при разном количестве ребер. Если число ребер на двух соединяемых границах отличается, инструмент Bridge создает трехсторонние многоугольники, покрывающие эту разницу, хотя результат такой операции может оказаться непредсказуемым. Инструментом Bridge можно, например, пользоваться при моделировании кисти руки отдельно от плеча, вытянув перемычку' между' ними в виде предплечья. С помощью параметров Segments (Число сегментов) и Taper (Сужение) настраи- вается длина перемычки и степень сужения либо расширения ее поперечного се- чения (рис. 2.5 и 2.6). Рис 2 5. Разрыв между плечом и кистью — идеальное место для применения инструмента Bridge
66 Часть I. Нововведения в 3ds max 7 Рис. 2.6. В этом примере с помощью параметра Segments созданы три сегмента в многоугольнике перемычки между выделенными граница- ми. Параметр Taper определяет степень сужения или расширения пе- ремычки | СОВЕТ______________________________________________________________ К сожалению, параметр Smooth (Плавность) не обеспечивает автоматическое сопряжение перемычки с исходной моделью на ее границе. Для плавного со- пряжения перемычки с границей модели выделите соответствующие ребра, преобразуйте их в выделенные многоугольники и сгладьте их. Для прео разо- вания выделенных ребер в выделенные многоугольники нажмите клавишу < Ctrl > и щелкните на кнопке Polygon с пиктограммой многоугольника в свит- ке Selection. Построение перемычки В приведенном ниже упражнении демонстрируются особенности построения перемычки. В этом примере перемычка образуется внутри параллелепипеда. 1. Откройте сцену из файла \Project Files\Ch02_NewModeling\Bridge interior start .max па прилагаемом к этой книге DVD. Эта сцена исход- но содержит объект с двумя отверстиями. А поскольку граница представля- ет собой совокупность выделения разомкнутых ребер, в данном объекте имеются две границы, между которыми и будет построена перемычка.
Глава 2. Нововведения в моделировании 67 | НА ЗАМЕТКУ___________________________________________________________ При открытии файла сиены для данного упражнения может появиться преду преждающее сообщение о несоответствии масштаба шкалы. Если единицы из- мерения играют важную роль при выполнении конкретного упражнения, выбе- рите вариант Adopt the file's Unit Scale (Принять масштаб шкалы), установленный в загружаемом файле сцены). 2. Выделите объект, а затем перейдите к панели Modify. 3. Нажмите комбинацию клавиш <Ctil+A>, чтобы выделить все границы 4. Щелкните на кнопке Settings (Параметры), расположенной справа от кнопки Bridge в свитке Edit Borders. Выберите кнопку-переключатель Use Border Selection (Использовать выделенные границы) в открывшемся диа- логовом окне Bridge и установите значение 4 параметра Segments, а также значение -2,0 параметра Taper (рис. 2.7). Рис. 2.7. Между двумя границами образуется внутренняя перемычка Чем больше сегментов используется для построения перемычки, тем более округ- лой становится кривизна сужения. При отрицательном значении параметра Taper перемычка получается вогнутой по мере ее вытягивания в отверстии объекта.
68 Часть I. Нововведения в 3ds max 7 Для проверки полученных результатов откройте сцепу в завершенном виде из файла Files\ChO2_NewModelingXBridge interior finish.шах на прила гаемом к этой книге DVD. Инструмент Cut Разрезание ребра представляет собой один из способов ввода дополнительных вершин на уже имеющихся ребрах и разделения многоугольников на большее число частей. Если модели требуется придать большую кривизну, нарезка допол- нительных сегментов в противоположном этой кривизне направлении позволяет образовать округлый переход. В предыдущих версиях 3ds max при разрезании многоугольника появлялись лишние ребра, для удаления которых приходилось прилагать дополнительные усилия: выделить ребро и нажать клавишу <Backspace> (рис. 2.8) Рис. 2.8. Белыми линиями обозначены лишние ребра, обра- зующиеся при использовании инструмента Cut в 3ds max 6 и более ранних версиях этого приложения В версии 3ds max 7 инструмент Cut (Разрез) был усовершенствован таким об- разом, чтобы новые ребра создавались только в том месте, где был выполнен щелчок. Лишние ребра при этом не образуются (рис. 2.9).
Глава 2. Нововведения в моделировании 69 Рис. 2.9. При использовании инструмента Cut в версии 3ds max 7 лишние ребра уже не образуются Режим Turn Edges Возможность поворачивать ребра, присущая редактируемому каркасу, была введена в функции редактируемого многоугольника лишь в версии 3ds max 7. Те- перь в редактируемом многоугольнике можно выделить ребро и повернуть сто в другом направлении. Эга операция оказывает влияние только на невидимые ребра, обозначенные пунктирными, а не сплошными линиями. С функциональной точки зрения режим Turn Edges (Повернуть ребра) дейст- вует в редактируемом многоугольнике таким же образом, как и в редактируемом каркасе. Для того чтобы повернуть ребро, достаточно сначала щелкнуть на кноп- ке Turn в свитке Edit Edges (Правка ребер), а затем на невидимом ребре (обозначенном топкой пунктирной линией). Невидимое ребро расположится по другой диагонали, проведенной из противоположных углов (рис. 2.10). Если невидимые ребра расположены в направлении, противоположном кри- визне модели, на ее поверхности появляется отвлекающий внимание зигзагооб- разный рисунок. Такой рисунок появляется в виде заострения на том участке мо- дели, где деформация должна быть плавной и криволинейной. Такое обычно происходит на тех участках модели, где деформация происходит против естест- венных очертаний (рис. 2.11 и 2.12).
70 Часть I Нововведения в 3ds max 7 SeWrlxtfi j . | Q (9 By Vertex Г“ flnoie Backfocirvj । r -F —;l I' Rng _ oop______________1 j Edge 3 Selected • » " Scfl Seteclbn ' |, : EdiTdy» | Rerr-ose _ Spfa тслУеЛек j _ Wdd 3 | Exit de |C]j Target Weld | I Pander |st _Conrec' jol | Deate Shape From Sdcrt ! | il I ClW!° *' ’ ГI Рис. 2.10. Повернутое невидимое ребро, обозначенное пунктирной линией Z&| ®|® Т Рис. 2.11. При перемещении вершин вверх образовались заострения, поскольку ребра не повторяют очертания модели. Два ребра повернуты в направлении кривизны модели
Глава 2. Нововведения в моделировании 71 Рис 2.12. Та же самая модель с ребрами, повернутыми в направлении ее очертаний. Теперь модель выглядит менее заостренной после подня ия выделенных по диагонали вершин Режимы Paint Deformation и Relax Моделирование может превратиться в утомительное занятие, если во время ваяния формы объекта приходится выделять, выталкивать или втягивать бук- вально каждую вершину. В новом свитке Paint Deformation (Деформация кистью), доступном в версии 3ds max 7 на уровне редактируемого многоугольника, предос- тавляется возможность протащить курсор мыши (или световое перо графическо- го планшета) по деформируемому участку модели. При каждом мазке кистт ю вид которой принимает курсор мыши, вершины на поверхности каркаса выталкг ва- ются или втягиваются в направлении нормалей каждого многоугольника или ло- кальных осей X, Y. Z объекта (рис. 2.13 и 2.14). (Нормали — это векторы, перпен- дику тарные плоскости многоугольника.) Как видно на рис. 2.13, деформация модели будет происходить по локальной оси Z. В режиме Paint Deformation курсор изменяет свой вид па круглую кисть размером 10 (параметр Brush Size). Короткая линия исходящая из круга кисти, обозначает нажим кисти равный в данном случае 5 (параметр Brush Strength). На рис. 2 14 показан результат деформации в режиме Paint Deformaton. Для сглаживания заострений на каркасе, образовавшихся в результате деформации кистью, можно воспользоваться кистью в режиме Relax.
72 Часть I. Нововведения в 3ds max 7 • । Fush/Pdl Diedion-----1 | C 0 iqnsl Hoimafe I C DHarmed Noimeis 1 I ranrftxm a»s i I | Г x r Y « zl Push/fM «Ъе C BiushSce |10 6 Brush S. length (Го Jj Рис. 2 13. Paint Deformation — это новый метод деформации многоугольников Cwimrt__' Cancel Рис. 2.14. Применение кисти в режиме Relax для сглаживания результатов деформации ки- стью в режиме Paint Deformation СОВЕТ В свитке Paint Deformation доступны те же элементы интерфейса, что и в модифи- каторах VertexPant (Раскраска вершин) и Skin (Кожный покров). Результаты де- формации кистью можно также зеркально отображать на другую сторону модели.
Глава 2. Нововведения в моделировании 73 В свитке Edit Geometry находится новая кнопка Relax (не пугать с одноимен- ной кнопкой в свитке Paint Deformation). Она активизирует режим, который служит определенного рода дополнением режима Paint Deformation. В режиме Relax (Ослабление) сопрягаются участки модели, на которых поверхность ока- зывается сморщенной или слишком заостренной. Такая возможность может стать настоящим благом для тех художников, которые создают персонажи и другие органические объекты. В режиме Relax вершина каждого многоуголь- ника из области влияния кисти перемещается в среднее положение относи- тельно соседних с ней вершин. Это подобно разглаживанию складок и смягче- нию жестких краев модели. Режим Relax введен в модификатор Edit Poly и редактируемый многоугольник. Для работы в режиме Relax достаточно выполнить обычное или плавное выделе- ние подобъектов и открыть диалоговое окно Relax, чтобы настроить параметры этого режима. А поскольку в данном случае не н>жно сворачивать модификаторы в стеке, то можно выделить следующую совокупность подобъектов и вновь вы- полнить ослабление в режиме Relax (рис. 2.15 и 2.16). iPlaneOl Modifier List □ Editable Selection Shrrk Grow Soft Selector) * Subdivision Displacement Paint Defamation Г” By Vertex Г Ignore В ackfacing Г” By Angle: 14- Edit Polygons Polygon P ofcjjcfcs n Suf ace Рис. 2.15. Эти заостренные неровные многоугольники вполне пригодны для ослабления в новом режиме Relax 2284 Pofcigons Selected
74 Часть I. Нововведения в 3ds max 7 Рис. 2.16. В результате установки значения 30 параметра Iterations выделенные многоуголь- ники получаются значительно сглаженными в режиме Relax Модификатор TurboSmooth Вероятно, вы уже знакомы с модификатором MeshSmooth и его способностью подразделять каркас для его сглаживания. Аналогично действует и модификатор TurboSmooth, но при этом он требует меньше оперативной памяти и работает намного быстрее. Модификатор TurboSmooth ускоряет стандартный процесс подразделения поверхностей при параллелепипедном моделировании. Как известно, приме- нение поверхностей подразделения при моделировании позволяет создать объект с малым числом многоугольников и превратить его в модель, которая становится в 4 раза более гладкой при каждом повторении данного процесса (рис. 2.17 и 2.18). Например, при однократном повторении куб подразделяется на 24-сторонний объект (6 сторонх4). А при каждом последующем подразделе- нии он подразделяется еще 4 раза. Для превращения куба в сферу данный про- цесс требуется повторить лишь 2 раза. Параллелепипедпое моделирование обычно начинается с преобразования параллелепипеда в редактируемый многоугольник (Editable Poly). После этого вытягиваются многоугольники и перемещаются новые вершины для деформа- ции поверхности модели. Затем применяется модификатор MeshSmooth пли активизируется функция NURMS (Неоднородный рациональный сглаженный каркас) в редактируемом многоугольнике для подразделения и последующего сглаживания поверхности модели.
Глава 2. Нововведения в моделировании 75 Рис. 2.17. Угловатый вид персонажа Чертово яйцо до применения модификатора TurboSmooth Рис. 2.18. Намного более гладкий вид персонажа Чертово яйцо (особенно в области глаз и колен) после применения модификатора TurboSmooth
7Ь Часть I. Нововведения в 3ds max 7 Модификатор TurboSmooth ускоряет процесс сглаживания, для выполнения которого в модификаторе MeshSmooth требуется тем больше времени, чем боль- ше этот процесс повторяется. Преимущество модификатора TurboSmooth состо- ит в том, что он позволяет использовать явные нормали. В этом случае расчеты выполняются быстрее чем при использовании нормалей из групп сглаживания исходного объекта. Тем не менее данный режим следует включать только в том случае, если выше модификатора TurboSmooth в стеке отсутствуют другие моди- фикаторы. В противном случае нормали буду! утрачены, а производительность может снизиться. Модификатору TurboSmooth присущи и некоторые недостатки: он нс позволя- ет изолировать многоугольники, работать на уровне подобъектов или выбирать другие методы подразделения. Модификатор TurboSmooth лучше всего применять па вершине стека или выше таких модификаторов анимации, как Skin. Если предполагается свернуть стек, сбросьте флажок Isoline Display (Показывать изолинии) в свитке параметров данно го модификатора, иначе в модели исчезнут внутренние ребра. Если не сбросить флажок Isoline D'splay, появятся ненужные вершины без поддерживающих их пере- секающихся ребер, и модель может оказаться искаженной и неуправляемой Резюме В последних версиях 3ds max новые средства моделирования внедряются, главным образом, в области редактируемого многоугольника. С появлением ново- го модификатора Edit Poly возможности этих средств расширились, а последова- тельность выполняемых операций стала более эффективной и удобной. Дефор- мация mhoi оугольников в режиме Paint Deformation означает новый и более ин туитивный подход к моделированию. Несмотря на то что инструмент Cut не яв- ляется новым средством моделирования, повышение точности делает его более удобным для работы Инструмент Bridge обеспечивает ускоренный способ фор мирования многоугольников между выделенными границами. А модификатор TurboSmooth экономит время обработки, повышая скорость отображения в видо- вых окнах благодаря применению более простого и эффективного метода шла живания. В целом эти новые средства должны повысить производительность труда при моделировании. В следующей главе будут рассмотрены новые средства текстурирования в 3ds max 7.
Глава 3 Нововведения в текстурировании Дэниел Манахан В 3ds max 7 введен ряд значительных и весьма полезных усовершенствований в порядок обращения с текстурами. Новые средства позволяют визуализировать и накладывать текстуры па модели для получения более реалистичного вида объек- тов. В этой главе рассматриваются следующие новые средства текстурирования. • Режим Highlight Seams. • У совершенство вания модификатора Unwrap UVW • Модификатор Projection. • Ввод файлов формата MPEG. • Копирование параметров текстур. • Усовершенствования модификатора VertexPaint. • Режим Preserve UVs. • Режим Subsurface Scattering. Режим Highlight Seams Режим Highlight Seams (Выделить швы), доступный в модификаторах Unwrap UVW (Развертка проекции UVW) и UVW Map (L VW-проецировапие карты), луч- ше всего понять, если представить себе, каким образом шьется скроенная одежда. Двухмерный кусок ткани кладется на ровный стол, обрезается по лекалу', а затем отделывается аппликациями, вышивкой и другими украшениями. Далее этот ку- сок ткани оборачивается вокруг ipexMcpiioro объекта (манекена портного и жи вого клиента) и сшивается в том месте, где сходятся его концы. В трехмерной среде текстурируемые объекты также “сшиваются”. В 3ds max 7 образующиеся при этом стежки называются тектурными швами. Упростить “сшивание” текстуры и призван режим High ight Seams.
78 Часть I. Нововведения в 3ds max 7 Рассмотрим применение режима Highlight Seams на примере трехмерного рукава. Обычно рукав имеет цилиндрическую форму, поэтому для его текс курирования сле- дует выбрать цилиндрическое проецирование карт (Cylindrical Mapping) (рис. 3.1). Рис. 3.1. Цилиндрическое проецирование карт применяется для текстурирования объектов, имеющих форму, напоми нающую цилиндр Как правило, рукав сшивается от подмышки до кисти руки с внутренней сто- роны, обращенной к телу, чтобы был не так заметен шов или же недостатки со- единения ткани по шву. Аналогичным образом в 3ds max 7 можно повернуть шов на рукаве- к ei о внутренней стороне, чтобы линия шва стала менее заметной на текстуре Если па этапе моделирования предусмотри гь расположение шва тексту- ры гам, где его не будет видно в камеру, то можно свести к минимуму видимые ис- кажения после визуализации объекта. В режиме Highlight Seams шов текстуры выделяется светло-зеленым цветом па обьекте-плоскости. к которому применен модификатор Unwrap UVW (рис. 3.2) В обоих модификаторах. Unwrap UVW и UVW Мар, допускается отображение га кого шва. А чю же другие типы объектов? В отличие от плоскости, которая является ра- зомкнутым объектом, сфера замкнута и не имеет границ. По умолчанию для надо жепия на сферу текстур применяется сферическое проецирование карт (Spherical Mapping), а образующийся при этом шов текстуры представляет собой прямую ли пию, идущую от северного к южному полюсу сферы аналогично линии меридиана. Если создать сферу со стандартными координатами сферического проецирования и применить к пей модификатор Unwrap UVW, па этом объекте появится видимый шов текстуры, проходящий от одного полюса сферы к другому. Любая текстура, на кладываемая на сферу' снизу или сверху, сильно искажается (рис. 3.3). Такой пюв текстуры на сфере определяет начало и конец наложения любой двухмерной карты ио краю текстуры. Во время визуализации край текстуры при
Глава 3 Нововведения в текстурировании 79 пимает вид неестественно распоротого шва или прорехи в текстуре, а следова тельно, он должен быть закрыт или расположен так, чтобы его не было видно по- сле визуализации. К сожалению, режиму Highlight Seams присущи определенные недостатки. Выделенным швом нельзя манипулировать в видовом окне Определить ребра модели, которые проходят по шву текстуры, можно лишь двумя способами: с по- мощью гиз.мо модификатора UVW Мар или правки в окне Edt UVWs (Правка проекций UVW) модификатора Unwrap UVW В модификаторе UVW Мар шов текстуры повторяет любые преобразования на уровне подобъекта-гщмо. А в модификаторе Unwrap UVW швом текстуры можно более или менее манипулировать только непосредственно в окне Edit UVWs. Но при этом можно воспользоваться инструментами выделения, преобразования и объединения ребер шва па проекции UVW. Эти изменения немедленно отра- жаются на модели: как в видимой части текстуры, так и в области ее шва. Бла1 о- даря усовершенствованиям модификатора Unwrap UVW, рассматриваемым в сле- дующем разделе, правка шва текстуры существенно упрощается es.||^L ж» s 2-Э6АМ Рис. 3.2. В режиме Highlight Seams шов текстуры обозначается светло-зеленой линией на границе плоскости, на которой развертывается проекция UVW
80 Часть I. Нововведения в 3ds max 7 Рис. 3.3. Вертикальная линия, идущая по сфере сверху вниз, обозначает шов текстуры, ко- торый сводится в небольшую точку сверху и снизу сферы Усовершенствования модификатора Unwrap UVW Помимо возможности отображать шов текстуры в окне Edit UVWs, в модифи- каторе Unwrap UVW был введен ряд других усовершенствований, упрощающих работ}' с проекциями UVW. Рассмотрим вкратце эти усовершенствования. Кнопка-переключатель Absolute/Offset Mode Кнопка-переключатель Absolute/Offset Mode (Режим ввода коордип i UVW в абсолютной форме или со смещением) действует как стандартный элемент ин- гсрфейса для перемещения объектов или подобъектов. Когда эта кнопка выклю- чена, значения, вводимые в полях U, V и W, опрсде яки точные координаты по ложепия выделенной совокупности относительно карты. А когда она включена выделенная совокупность смещается относительно своего предыдущего положе- ния на величину, введенную в полях U, V и W (рис. 3 4).
Глава 3. Нововведения в текстурировании 81 Рис. 3.4. Новая кнопка-переключатель Absolute/Offset Mode расположена на левом краю об- ласти Transform Type-In диалогового окна Edit UVWs. А на правом краю области Selection Modes находится новая кнопка Paint Select Mode. Светло-зеленые линии шва текстуры ото- бражаются на модели персонажа Чертово яйцо после сведения проецируемой карты Кнопка Paint Select Mode Кнопка Paint Select Mode позволяет выбрать в окне Edit UVWs такой же режим выделения подобьектов кистью, как и в стандартном интерфейсе. Слева от этой кнопки с пиктограммой кисти находятся кнопки со знаком ‘‘плюс” и “минус”. С их помощью изменяется размер кисти выделения. Для выхода из режима выделения кистью достаточно щелкнуть правой кнопкой мыши в окне Edit UVWs или же ак- тивизировать инструмент Move, Rotate или Scale (см. рис. 3.4). Кнопка Edge Loop С помощью кнопки Edge Loop (Петля из ребер) в окне Edit UVWs можно выде- лять петли из ребер (рис. 3.5). Это аналогично расширению петли из ребер в ре- дактируемом многоугольнике.
82 Часть I. Нововведения в 3ds max 7 СОВЕТ Кнопка Edge Loop Рис. 3.5. Чтобы выделить петлю из ребер, щелкните сначала на белом ребре, а затем на кнопке Edge Loop. Этот режим действует аналогично выделению петли из ребер в редактируемом многоугольнике Выделение петли из ребер светло зеленого цвета в районе шва текстуры может привести к непредсказуемым результатам. Поэтому для получения более на дежных результатов выделяйте в петлю только белые ребра. Все рассмотренные выше свойства позволяют установить правильные коор дипаты проецирования текстуры. Это очень важно для применения нового мо дификагора Projection, рассматриваемого в следующем разделе. Модификатор Projection В модификаторе Projection (Проекция) реализованы новые способы передачи координат проецирования текстур из одной модели в другую. В частности, неко- торые данные из канала вершин внутри геометрической формы одного объекта
Глава 3. Нововведения в текстурировании 83 могут быть перенесены при проецировании на другой объект. Результат далеко не всегда получается предсказуемым, а при некоторых обстоятельствах перено симые данные искажаются. Тем нс менее, применяя модификатор Projection, в определенных ситуациях можно сэкономить время. Для того чтобы лучше понять, как действует этот модификатор, выполните следующее упражнение по переносу координат проецирования текстуры из одно- го объекта-плоскости на другой. 1. Откройте сцену из файла \ Project Fi es\Ch03_NewTextures\project UV start.max на прилагаемом к этой книге DVD. Обратите внимание на то, что многоугольники па верхней плоскости деформированы в форме за- вихрения. Эту деформацию необходимо спроецировать на нижнюю плос кость с педеформированными многоугольниками. 2. Выделите объект Project From Plane (Исходная плоскость проецирова- ния), примените к нему модификатор Projection и сбросьте флажок Саде (Каркас) в одноименном свитке параметров модификатора Projection (рис. 3.6) Рис. 3.6. Модификатор Projection применяется к объекту Project From Plane при сбро- шенном флажке Саде В данном случае каркас не отображается, поскольку' он лишь отвлекает вни- мание. Его оюбражение бо гее уместно для криволинейных и органических объектов Он позволяет проверить, насколько полно проекция охватывает целевой объект (Каркас будет использован в следующем упражнении.)
84 Часть I. Нововведения в 3ds max 7 3. Щелкните сначала на кнопке Pick (Выбрать) в свитке Geometry Selection (Выделение геометрической формы), а затем на объекте Project То Plane (Целевая плоскость проецирования). 4. Щелкните па кнопке Add в свитке Projection. 5. Щелкните на кнопке Project в том же свитке (рис. 3.7). Рис. 3.7. Щелкните на кнопке Project, чтобы перенести координаты проецирования текстуры завихрения из объекта Pro ject From Plane на объект Project То Plane Проецирование карты Normal К новым свойствам модификатора Projection относится также возможность формировать карт}' Normal (Нормаль) на позиции карты Bitmap (Растр) в мате риале непосредственно из геометрической формы других объектов, находящихся на сцене. Карта Normal, называемая также Normals в некоторых частях интер фейса 3ds max, представляет собой изображение RGB, содержащее информацию о кривизне кар I ы Bitmap. Карта Normal содержит больше информации (по 256 уров- ней яркости на каждый канал цвета), чем полутоновая карта, содержащая всего 256 уровней яркости поэтому ее точность выше. Капал красного определяет влияние слева и справа, капал зеленого — влияние сверху и снизу, а капал синего — влияние в глубину и из глубины растра. Отвлечемся немного в сторону и поясним, для чего, собственно, нужно про- ецирование карты Normal с помощью модификатора Projection. Основное назна- чение такой операции состоит в проецировании сложного объекта с высоким разрешением на простой угловатый объект с низким разрешением. Как известно, простые объекты с малым числом многоугольников рассчитываются быстрее и более пригодны для имитации динамики, управления сценой, а в конечном иго-
Глава 3. Нововведения в текстурировании 85 ге, для визуализации. В частности игровые механизмы реального времени лучше всего работают с моделями, имеющими малое число многоугольников. Однако объект с малым числом многоугольников должен как можно точнее соответство- вать своем}' аналогу с большим числом многоугольников. Его карта Bitmap должна отображать ту же самую кривизну Благодаря своему более высокому разрешению карты Normal дают лучшие результаты, чем полутоновые карты как правило, применяемые для проецирования растровых изображений. Поэтому они и при- меняются, главным образом, для текстурирования моделей с малым числом мно- гоугольников, предназначенных для игровых механизмов. Во многих современ- ных играх визуализация сцен обычно происходит в реггльном масштабе времени, а для этого сцена должна состоя гь из как можно меныпего числа многоу ольни ков. Сильно детализированные текстуры, применяемые на позициях карт цвета рассеяния (Diffuse Color) и рельефности (Bump) благодаря проецированию карт Normal, в значительной степени компенсируют потери деталей в модели на уров- н е многоугольников. В следующем упражнении вам предстоит воспользоваться проецированием карты Normal для текстурирования простого объекта-плоскости объектом того же типа, но с более высоким разрешением. 1. Откройте сцену из файла \ Project Files\Ch03_NewTextures\project Normal to Bump start .max па прилагаемом к этой книге DVD. Выдели- те объект Project То Plane Нажмите клавишу <0> — клавиатурный эк- вивалент команды открьния диалогового окна Render То Texture (Визуали- зация в текстуру). 2. Установите флажок Enabled (Активизировано) в области Projection Mapping (Наложение проекции карты) из свитка Objects То Ваке (Объекты для све- дения). Щелкните на кнопке Pick и введите объект Project From Plane в список целевых объектов в открывшемся диалоговом окне Add Targets. Щелкните на кнопке-переключателе Use Existing Channel (Использовать существующий канал), расположенной справа от меток Object и Sub-Object, и убедитесь в том, что в соответствующем поле Channel установлен номер канала 1 (рис. 3.8). К объекту Project То Plane автоматичес и применяется модификатор Pro ection А поскольку для объекта Project То Plane уже назначены ко- ординаты проецирования, выключите режим Use Existing Channel, чтобы исключить сведение карты в диалоговом окне Render То Texture НА ЗАМЕТКУ Для сохранения полного контроля над процессом наложения проекций текстур выберите самостоятельно координаты проецирования перед открытием диало- гового окна Render То Texture и оставьте активным режим Use Existing Channel.
86 Часть I. Нововведения в 3ds m* 7 Name Project To Flare у cfck-anddi %; to «eted Objects to Bake Object $ub-Ob|ect E< Charnel Channel Pan View» Render Render UiwxapOr^> Dote Oignal С C ---------1 - . -- e^ed a <* General Setting; । Mapping Coordinates — Object. ® Ute Еюйюд Channel 1 C U&eAutomaftic UfMtap Sub Objects: A Use Existing Charnel C Use Autema’ic Unwrap __Cteai Urwrappeii AddTwncTeg Channel 1 Channel. 1 Рис. 3.8. Для того чтобы начать процесс проецирования карты Normal, выберите объект Project From lane и режим Use Existing Channel Selected Object Setfrigs P Enabled Paddng- j|2 Cf -Pttjecbon Mappng ...................д- - P Enabled } No Projecbon Modfer] J Pick., j Octant | ; R? Object Level P Sub-Object Level? <* PuHoBeked Malena! r Pul 10Baked Material A FuiSce C Proportional ; Individual « Al Selected Г Al Prepared I * Outpu • | [♦ Beked M&icnal ' ' ~|‘ ♦ ~ Autcxnata Маррэтд j 3. Установите флажки Shaded (Затененный вид) и Point to Point (По точкам). Затем установите значение 130 в поле Amount (Величина). Благодаря установке флажков Shaded и Point to Point становится видимой область, используемая в каркасе для наложения проекции карты Normal После ввода указанного выше значения в поле Amount вновь устанавливает- ся исходное значение 0,0. Если по какой-либо причине требуется вернуть синий каркас в исходное положение, щелкните на кнопке Reset (Сброс) и вновь введите в поле Amount величину, на которую необходимо раздвинуть каркас. Если каркас не полностью охватывает исходный объект, несовмещенные участки будут обрезаны в окончательно сформированном изображении (рис. 3.9). 4. Щелкните па кнопке Add в свитке Output (Вывод) диалогового окна Render То Texture, а затем выберите вариант NormalsMap из списка в открывшемся окне Add Texture Elements (Ввод элементов текстуры). Убедитесь в том, что в раскрывающемся списке Target Map Slot (Позиция целевой карты) вы бран элемент Bump. Установите размер карты 1024 в поле Size щелкнув на кнопке с меткой 1024. Щелкните сначала на кнопке переключателе Baked (Сведенная карта) в столбце Render, а затем па кнопке Render в нижней части диалогового окна Render То Texture (рис. 3.10).
Глава 3. Нововведения в текстурировании 87 Рис. 3.9. Каркас полностью охватывает объект Project From Plane Рис. 3.10. Карта Normal визуализируется и затем применяет- ся на позиции карты рельефности (Bump) На этом рисунке диалоговое окно Render То Texture показано на завершаю- щей стадии, предшествующей визуализации карты Normal
88 Часть I. Нововведения в 3ds max 7 Благодаря установке размера карты 1024 в поле Size при проецировании формируются дополнительные пике ели, придающие визуализированном}' изображению более четкий и детализированный вид. Визуализированное изображение появляется па позиции карты Bump в материале She I (Оболочка), который автоматически назначается для объекта Project То Plane, по исходно он не виден в редакторе материалов. Для правки этого материала необходимо поместить его на одной из свободных позиций в ре- дакторе материалов. 5. Активизируйте третью позицию образца материала. Щелкните сначала па кнопке Pick Material from Object (Выбрать материал из объекта) с пикто- граммой пипетки а затем выберите объект Project То Plane (рис. 3.11). Рис. 3.11. Материал Shell, применяемый к объекту Project То Plane, находится на третьей позиции образца в редакторе материалов Материал Shell состоит из двух других материалов исходного (Origins ) и сведенного (Baked). Для отображения в видовом окне или же для визуа- лизации можно выбрать материал Original или же мапериал Baked. Если выполнить визуализацию па данном этапе, материал Baked сформирует па объекте Project То Plane такой же рельеф, как и на объекте Project From Plane. Далее в этом упражнении рельеф будет намеренно приподнят еще выше, чтобы сделать его явно заметным.
Глава 3. Нововведения в текстурировании 89 6. Щелкните на кнопке, расположенной ниже метки Baked Material (Сведен- ный материал), чтобы поправить данный материал Установите значение 50 в поле Specular Level (Уровень зеркального отражения) из свитка Blinn Basic Parameters (Основные параметры затенения по Блинну), а также зна- чение 300 в поле Bump Amount (Величина рельефности) из свитка Maps (Карты) (рис. 3.12). Рис. 3.12. Рельеф намеренно приподнят, чтобы его было лучше видно в оконча- тельно визуализированном изображении 7. Выполните визуализацию в окне вида в перспективе (рис. 3.13). | СОВЕТ__________________________________________________________________ Как равило, для формирования карты Normal используются две разные модели: одна с высоким разрешением, а другая - с низким Однако этим применение модификатора Projection не ограничивается В качестве целевого объекта для модификатора Projection может служить и сама исходная модель. Сравните полученные результаты со сценой из файла \Project Files\ Ch03_NewTextures\project Normal to Bump finish.max па прилагаемом к этой книге DVD. Файл изображения Pro ject to PlaneNormalsMap. tga те- перь находится не только па DVD, по и в папке \3ds max7\Images па жестком диске вашего компьютера. Он потребуется для визуализации данной сцены.
90 Часть I. Нововведения в 3ds max 7 Рис. 3.13. Рельеф из объекта Project From Plane, спроецированный на объект Proj- ect То Р Lane НА ЗАМЕТКУ В версии 3ds max 7 теперь можно использовать средство визуализации mental ray для всевозможных применении функции Render То Texture включая и про- ецирование карты Normal Ввод файлов формата MPEG В 3ds max 7 нельзя выводить результаты визуализации в файлы фильмов фор- мата MPEG. Однако файлы формата MPEG можно импортировать и использовать вместо растровых изображений в текстурных картах при проецировании изо- бражений с помощью источников света, в качестве фоновых изображений видо- вых окоп и окружения, в событиях ввода изображений при видеомонтаже в диа- логовом окне Video Post и т.д. Эта новая и очень удобная функция предоставляет еще одну возможность для ввода изображений в сцепы (рис. 3.14).
Глава 3. Нововведения в текстурировании 91 Рис. 3.14. Фильмы формата MPEG теперь могут вводиться в 3ds max 7 там, где применяются изо- бражения, например на позиции карты рассеяния в редакторе ма ериалов Копирование параметров текстур Если вам надоело постоянно записывать значения RGB используемых цветов или перетаскивать их па нужную позицию материала, то теперь вы можете вы- звать контекстные меню, щелкнув правой кнопкой мыши, чтобы скопировать и вставить эти значения цветов, параметры материалов и растров, сэкономив время и избавив себя от лишних хлопот. Если раньше копируемый цвет или дру- гой параметр материала приходилось пере таскивать в нужное место, например, цвет окраски источника света — на образец цвета зеркального отражения (Specular Color), чтобы сделать эти цвета одинаковыми, то теперь достаточно щелкнут ьнравой кнопкой мыши на нужном образце цвета, карте или материале и вы брать из контекстного меню команду Сору (Скопировать) или Paste (Вставить) (рис. 3.15). Этим, на первый взгляд, незначительным усовершенствованием вы, скорее всею, будете постоянно пользоваться в своей работе. При копировании и вставке материал или карту можно вставить в качестве копии или экземпляра. В последнем случае сохраняется связь между оригиналом и копией, и поэтому изменения в исходном материале будут отражаться на полу ченном экземпляре этого материала (рис. 3 16 и 3.17)
92 Часть I. Нововведения в 3ds max 7 x *\- ea о ® ГГ« m. |01 - Default Standaid Г Wee I” 2-Sided Г Face Map Г Faceted |в1т Shader Basic Parameters Ге -Specular Htghiijhts Рис. 3.15 Цвет рассеяния (Diffuse) копи- руется и вставляется на позиции образца цвета самосвечения (Self-Illumination) |“j= Ambient — Diffuse: — Specular Рис. 3.16. Карта, находящаяся на пози- ции карты цвета рассеяния (D ffuse Color) вставляется в качестве экземпляра на по- зиции карты рельефности (Bump) Рис. 3.17. Материал на первой позиции образца вставляется в качестве экземпляра на позиции второго образца материала E Копирование и вставка таких параметров, как цвет, .может быть осуществлена не только в редакторе материалов, но и в других элементах 3ds max , включая источники света, диалоговое окно Environment and ffects (Окружение и эффек- ты) и модификатор VertexPaint.
Глава 3. Нововведения в текстурировании 93 Усовершенствования модификатора VertexPaint Усовершенствования модификатора VertexPaint коснулись, главным образом, его диалогового окна Adjust Color и новой палитры цветов (Color Palette). Рас- смотрим вкратце эти усовершенствования. Диалоговое окно Adjust Color Диалоговое окно Adjust Color (Коррекция цвета) предназначено для внесения корректив в оттенок (Hue), насыщенность (Saturation', значение (Value) и основ- ные составляющие любого цвета (красный, зеленый и синий — RGB). В этом диало- говом окне можно также настраивать контраст (Contrast), коэффициент коп грае г- ности (Gamma) и уровни света (Highlight) и тени (Shadow) по гистограмме, которая служит удобным средством контроля указанных параметров цвета в диалоговом ре- жиме и дает наглядное представление об их < о< тоянии и влиянии па цвет. Гистограмма показывает, каким образом цвета распределяются в совокупно- сти выделенных вершин в зависимости от входных уровней света и тени и полу- тонов, определяемых коэффициентом контрастности. Перемещением стрелок под гистограммой управляют соответствующие счетчики (рис. 3.18- .20). Рис. 3.18. Вид объекта-плоскости с откорректированном гистограммой в диалоговом окне Adjust Color. Коэффициент контрастности установлен равным 1,0. Сравните полутона в за- вихрении на этом и двух следующих рисунках
94 Часть I. Нововведения в 3ds max 7 Рис. 3.19. Коэффициент контрастности установлен равным 0,3. В области полутонов завихрение получается более тонким и темным Рис. 3.20. Коэффициент контрастности установлен равным 3,0. В области полутонов завихрение получается более толстым и светлым Палитра цветов Новая палитра цветов в модификаторе VertexPaint позволяет формировать и править цвета. Эту палитру можно сохранить и загрузить из файла ССВ (Color Clipboard — Цветовая панель). В частности, цвета можно перетащить из всплы вающей цветовой панели и сохранить их в палитре цветов вершин для пос тедую- щей загрузки. А для правки цветов в контекстном меню доступны новые свойства копирования и вставки (рис. 3.21).
Глава 3. Нововведения в текстурировании 95 Рис. 3.21. Палитра цветов позволяет сохра- нять цвета вершин в удобном месте Режим Preserve UVs Сохранение каналов проецирования карт представляет собой удобный способ внесения корректив в продольно-поперечные координаты проецирования UV непосредственно в видовом окне, не прибегая к соответствующим функциям мо- дификатора Unwrap UVW. Благодаря этому при настройке модели после измене- ния наложенной на нее текстурной карты удобнее вносить незначительные из- менения в положение вершин модели, чтобы лучше подогнать по ней текстуру. Новый флажок, активизирующий режим Preserve UVs (Сохранить координа- ты проецирования UV), введен в свиток Edit Geometry редактируемого много- угольника и модификатора Edit Poly (рис. 3.22) Когда этот флажок установлен вершина или другой подобъект “пронизывает” координаты UV, как если бы тек стура оставалась на месте, а модель продолжала деформироваться.
96 Часть 1. Нововведения в 3ds max 7 Рис. 3.22. Объекты А и В являются копиями верхнего объекта. Искажение текстуры на объекте А — это привычное явление для перемещения вершин. А на объекте В искажении текстуры не происходит, поскольку установлен режим Preserve UVs Прежде чем пользоваться данным методом непременно сохраните предыду- щие результаты своего труда! Если переместить вершины слишком далеко, коор динаты проецирования текстуры могут быть искажены. Так, если поместить вер- шину четырехстороннего многоугольника внутри треугольной формы, после- дующие ее перемещения могут привести к искажению координат проецирования текстуры (рис. 3.23) Рис. 3.23. Вершина из правого верхнего угла пере- мещена внутрь треугольной формы (А). Когда же она перемещается обратно в свое исходное поло- жение, текстура искажается и становится непри- годной для дальнейшего использования Если в модели используется несколько каналов проецирования в диалоговом окне Preserve Map Channels (Сохранение каналов проецирования), доступном с помощью кнопки Settings, расположенной справа от флажка Preserve UVs, можно указать конкретные сохраняемые каналы (рис. 3.24).
Глава 3. Нововведения в текстурировании 97 Рис. 3.24. В диалоговом окне Preserve Map Channels можно указать каналы проецирования текстуры, которые должны сох аняться при перемещении вершин Режим Subsurface Scattering Подповерхностное рассеивание (Subsurface Scattering — SSS) является одним из самых замечательных среди последних достижений в области текстурирова ния. Такие материалы, как плоть, воск или алебастр, допускают частичное про- никновение и отражение света. В итоге получается эффект поверхностной полу- прозрачности характерный для органических материалов. В отсутствие подпо- верхностного рассеяния кожный покров, в частности выглядит совершенно не- прозрачным, а значит, ему недостает реализма и теплоты. Если применяются обычные методы визуализации, то такие казалось бы, по- лупрозрачные объекты, как бумага, могут быть визуализированы совершенно не- прозрачными и не пропускающими свег. Этот недостаток устранен благодаря внедрению четырех новых алгоритмов затенения по методу SSS (или так назы ваемых оттенителей SSS) в средстве визуализации mental ray (рис. 3.25). Два из них специально предназначены для визуализации кожного покрова. Существенный недостаток подобных оттенителей SSS состоит в том, что они не согласуются с материалами Composite (Составной), Shellac (Шеллачный), Top/Bottom (Верхний и нижний) и Double Sided (Двухсторонний). Для того чтобы преодолеть этот недостаток и представить модель таким образом, как будто она сделана из нескольких материалов, необходимо использовать растровые изобра- жения, имитирующие затенение. СОВЕ Изучая особенности управления оттенителями SSS, добейтесь сначала преуве- личенного эффекта полупрозрачного освещения, а затем внесите в него коррек тивы, чтобы результаты визуализации получились более реалистичными.
98 Часть I. Нововведения в 3ds max 7 Рис. 3.25. Персонаж Чертово яйцо, визуализированный с применением одного из вновь внедренных оттенителей SSS в mental ray. Задний свет пронизывает тонкие участки модели, в том числе уши и руки Экспериментирование с подповерхностным рассеиванием В следующем упражнении вам предстоит исследовать параметры оттенителя SSS, позволяющие добиться преувеличенного эффекта подповерхностного рас- сеивания. 1. Откройте сцену из файла \Project Files\ChO3 NewTexturesXsss start.max на прилагаемом к этой книге DVT) Данная сцепа исходно со- держит объект-тор, наблюдаемый в окне вида из камеры CameraOl. Всена- правленный источник света в центре тора обеспечивает освещение, рас сеивающееся по поверхности данного объекта. Для тора назначен матери- ал находящийся на позиции первого образца в редакторе материалов. 2- Визуализируйте данную сцену в окне вида из камеры (рис. 3.26)
Глава 3. Нововведения в текстурировании 99 Рис. 3.26. При назначенном для тора стандартном материале свет не дос- тигает его передней поверхности, которая остается темной после визуали- зации сцены 3. Для тора необходимо назначить отюнитель SSS. С этой целью замените в редакторе материалов стандартный материал (Standard) на материал SSS Fast Material (mi) (Материал быстрого подповерхностного р гссеивания для визуализации в mental ray) и визуализируйте сцену. Особых изменений после визуализации этой сцены не заметно. По устанав ливаемым по умолчанию параметрам данного материала трудно судить ка- кие из них позволяют сделать преувеличенным эффект подповерхностного рассеивания. 4. Выберите белый цвет на передней (Front Surface scatter color) и задней по- верхности рассеивания (Back surface scatter color) в свитке Diffuse Subsur- face Scattering (Распространение подповерхностного рассеивания). 5, Установите значение , 0 параметров Front Surface scatter weight (Вес рас- сеивания па передней поверхности) и Back surface scatter weight (Вес рас сеивания на задней поверхности). Цвет рассеивания теперь становится белым. А благодаря увеличению веса рассеивания эффект становится более ярким и явным (рис. 3.27). 6. Установите значение 1000 параметра Number of Samples Число выборок) в свитке SSS Fast Material (mi) Parameters. Это замедлит визуализацию, хо- тя и ненамного. Чем больше число выборок, тем менее зернистым получа- ется визуализированное изображение.
100 Часть I. Нововведения в 3ds max 7 S- X. <P I |01 Default Diffuse Sut urtaceSca erm вй Q. W Ji .4 "7] Fast Mater al [m 'Mater a? Map Browser КS Fast Material (mi E Ambient / Extra hght Overall diffuse coJocfttion Unscattered difuse color Unscattwed difuse weight. Frort suface scatter colo Front surface scatter weight Front surface scatter radius Back surface scatter соки Back surface scatter weight Back surface scatter radius Back surface scatter depth —Browse From;- - r MUbbtay C МЙ Editor C Selected C Scene New r Show •Г* ap> l~ ncom'palible ’ Г“ ByOb =st 0 Architectural 0 Blend - 0 Composite Q DGS Material (phy$ics_phen 0 Double Sided О Glass (physics_phenj 0 Ink'n Paint 0 Matte/Shadow О mental ray 0 Mdti/Sub-Ob ecl 0 Rajtrace 0 Shef Material 0 Shellac О fi₽S Fest MateiraHmij О SSS Fast Skin Material (mi) Q SSS Fast Skm Material+Drsp ace (mi О SSS Physical Material (m 0 Standard 0 Top/Bottom Рис. 3.27. Параметры материала SSS Fast Material (mi), применяемого к тору 7. Установите значение 0,002 параметра Scale conversion factor (Коэффи- циент изменения масштаба) в свитке Advanced Options (Дополнительные параметры) (рис. 3.28). Scatter group |А Lightmap size (m of render sue]. 150 0 tj Number of sanies 11 COd Cj I Bump shader Bump(3dsmax) (Bump 3d$maxj J , Advanced options..... ' | Lightmap gamma curve . | 5 3 Scatter indirect illumination Г Secte conversion factor . | ili№ j Scatter Bias (+Л10)......................... 1 11 Faloff strength ...................... ... |2 11 Screen' (soil jmpos.ling of layers........:p Рис. 3.28. Параметр Number of Samples оказы- вает влияние на зернистость визуализирован- ного изображения А параметр Scale conversion factor приводит масштаб эффекта полупро- зрачности в соответствие с размерами модели
Глава 3. Нововведения в текстурировании 101 Значение 0,002 параметра Scale conversion factor в 500 раз меньше его ис- ходного значения 1,0. Если установить это значение слишком малым, эф- фект подповерхностного рассеивания будет равномерно распределен по всему визуализированному' изображению, а поверхность будет иметь пло- ский а не объемный вид. Чем меньше значение параметра Scale conversion factor, тем меньше стано- вится рассчитываемая модель. В данном случае это все равно, что создать уменьшенную в 500 раз модель тора! Кроме того, действие параметра Scale Conversion factor сильно зависит от выбранных в 3ds max 7 единиц измере- ния. Поэтому параметр Scale conversion factor необходимо оптимально на- страивать для каждой сцены в отдельности, Значение 0,002 параметра Scale conversion factor не позволяет добиться достаточно реалистичных результатов визуализации кожного покрова. Од- нако оно вполне пригодно, например, для подсвечиваемых сзади свежесре- занных, сочных гроздей винограда. Освоив особенности настройки пара- метров данного материала, попробуйте установить на сцене окрашенные другим цветом источники света, чтобы добиться эффекта цветного подпо- верхностного рассеивания. 8. Визуализируйте данную сцену, чтобы посмотреть внесенные в нес изме пения (рис. 3.29). Для сравнения результатов откройте сцену из файла \Project Files\ChO3_NewTextures\sss finish.max на прилагае- мом к этой книге DVD. Рис. 3.29. Свет проникает сквозь переднюю поверхность тора, как будто это освеше ный сзади или полупрозрачный объект
102 Часть I. Нововведения в 3ds max 7 СОВЕТ Если моделируется более крупный объект, значение параметра Scale convers on factor придется уменьшить еще больше, чтобы добиться аналогичного эффекта подповерхностного рассеивания Для ввода значений меньше 0,001 необходи- мо увеличить точность установки счетчика (Spinner Precision) до трех десятич- ных разрядов во вкладке General диалогового окна Preference Settings (Глобаль- ные параметрь настройки). Резюме Рассмотренные в этой главе новые средства текстурирования должны помочь вам ускорить данный процесс и повысить реализм визуализируемых сцен. Режим Н ghlight Seams позволяет наглядно представить шов текстуры и точнее преду- смотреть результаты ее визуализации Режим Pain Selection упрощает выбор ко- ординат проецирования текстуры Модификатор Projection дает возможность пе- реносить данные моделирования из одного объекта па другой. Копирование и вставка параметров текстур представляет собой намного более интуитивный и быстрый способ переноса информации о текстурах из одного материала в дру- гой. Сохранение каналов проецирования позволяет точнее прогнозировать рас- пределение координат проецирования карт и вносить коррективы во время мо- делирования. Материалы подповерхностного рассеивания обеспечивают быст- рый способ имитации эффектов, связанных с прохождением света сквозь объект. Освоение новых средств текстурирования следует, как всегда, начинать с просто- го изучения, чтобы понять их главные особенности, а затем можно попробовать добиться преувеличенных эффектов и, наконец, применить эти средства в более сложных сценах. Упомянутым выше новым средствам текстурирования будет уде- лено дополнительное внимание в последующих главах данной книги, посвящен пых вопросам визуализации.
Глава 4 Нововведения в анимации Дэниел Манахан В версии 3ds max 7 внедрены совершенно новые инструменты для анимации. Теперь сбор информации и последовательность операций стали как никогда бо- лее удобными благодаря внедрению следующих средств анимации • Вспомогательный объект Expose Тransform • Диалоговое окно Parameter Collector. • Диалоговое окно Reaction Manager. • Модификатор Skin Wrap. • Модификатор Skin Morph • Режим Mirror в диалоговом окне Bone Tools. Модуль character studio, являющийся средой процедурной анимации персона- жей, теперь входит как неотъемлемая часть в состав 3ds max 7. В этой 1лаве рас- сматриваются эффективные режимы анимации из этого модуля, включая ряд следующих новых режимов. • Режим Figure. • Режим Footstep. • Режим Motion Flow. • Режим Mixer и диалоговое окно Motion Mixer. • Р жим анимации двуногого объекта Все эти новые средства анимации будут освещены в данной главе.
104 Часть I. Нововведения в 3ds max 7 Вспомогательный объект Expose Transform С помощью вспомогательного объекта Expose Transform (Раскрытие преобра- зования) теперь можно немедленно показать значения положения, вращения и масштаба порожденного объекта относительно его родительского объекта. Это имеет важные последствия для применения инструментов снаряжения по сцена- рию и процедурной анимации. В частности, информация об угле поворота пред- плечья относительно плеча теперь может быть введена в сценарий или же ис- пользована при связывании параметров для управления анимацией плеча персо- нажа без предварител! ного сбора необходимых сведений о положении, враще- нии и масштабе порожденного объекта, поскольку все эти данные сразу же предоставляются вспомогательным объектом Expose Transform. Достаточно выбрать подчиненный узел, чтобы вспомогательный объект Ex- pose Тransform автоматически связал подчиненный узел с родительским. Сбросив флажок Parent (Родитель) в свитке Parameters вспомогательного объекта Expose Тransform, можно выбрать на сцене любой другой объект и извлечь значения от- носительно исходного подчиненного узла. Справа от каждого оаскрываемого параметра в свитке Exposed Values (Раскрытые значения) находится кнопка с меткой М. После щелчка на этой кноп- ке правильное имя преобразования копируется в буфер обмена Windows. Так, ес- ли выбрать кнопку М справа от значения координаты L в области Local Euler An- gles (Углы эйлерового вращения вокруг локальных осей), в буфере обмена Win- dows сохранится строка $ExposeTransformOl. localEulerZ. Нажав комбина- цию клавиш <Cirl+V>, можно вставить эту строку в окно любого текстового редактора Windows или редактора сценариев MaxScript (рис. 4.1). В данном случае активизирована кнопка Pin Stack (Закрепить стек) поэтому изменения в кости 2, происходящие в результате преобразований кости 3 наблюдаются во вспомога- тельном обвеете Expose Transform. Несмотря на то что выделена кость 3, в за- крепленном стеке модификаторов отображаются параметры вспомогательного объекта Expose Transform. С помощью вспомогательного объекта Expose Trans- form можно проследить взаимосвязь по углу поворота между костью 2 и се роди- тельским объектом — костью 1, а с помощью кнопки М— скопировать соответст- вующее имя преобразования в буфер обмена для последующей его вставки в соот ветствующем месте сценария MaxScript. В строке кода сценария $ExposeTransf ormOl. localEulerZ постоянно от- слеживается и возвращается текущее значение локальной оси Z эйлерового вра- щения объекта ExposeTransf ormOl. К этой информации могут обращаться дру- гие объекты, находящиеся па сцене, для выполнения любого количества дейст- вий до тех пор, пока текущее значение удовлетворяет определенным требовани- ям и находится в заданных пределах.
Глава 4 Нововведения в анимации 105 Рис. 4.1. Пример применения вспомогательного объекта Expose Transform. Кость! является порожденным объектом кости 2 и связана с ней по углу поворота Применение вспомогательного объекта Expose Transform Принцип действия вспомогательного объекта Expose Transform можно проде- монстрировать на примере использования данных преобразования для управления анимацией. Сцена в приведенном ниже упражнении состоит из трех объектов, плоскости, параллелепипеда и цилиндра. С помощью данного вспомогательного объекта необходимо раскрыть расстояние между плоскостью и параллелепипедом и использовать значение этого расстояния для управления анимацией цилиндра. Чем дальше параллелепипед находится от плоскости, гем больше цилиндр сгибается. 1. Откройте сцену из файла \Project Files\Ch04_NewAnimation\expose transform start. шах на прилагаемом к этой книге DVD. 2. Выделите объект Expose Transform, щелкните на кнопке с меткой Expose Node (Раскрыть узел) из свитка Parameters па панели Modify и выберите па- раллелепипед. Кнопка с меткой Local Reference Node (Локальный опорный узел) недоступна, поскольку' установлен флажок Parent. Это означает, что при установленном флажке Parent можно наблюдать информацию только о родителе выбранного объекта.
106 Часть I. Нововведения в 3ds max 7 3. Сбросьте флажок Parent щелкните па кнопке с меткой Local Reference Node и выберите плоскость (рис. 4 2). Рис. 4.2. Когда флажок Parent сброшен, плоскость может быть назначена в качестве локаль ного опорного узла. Взаимосвязь по расстоянию Distance То Reference между параллелепи- педом и плоскостью составляет 0,0 Обратите внимание на то, что значение параметра Distance То Reference (Расстояние до опорного узла) равно 0,0, поскольку точки опоры паралле- лепипеда и плоскости находятся в одном и том же месте. Л теперь необхо- димо связать сгибание цилиндра с расстоянием от точки опоры плоскости до точки опоры параллелепипеда (т.е. со значением параметра Distance То Reference во вспомогательном объекте Expose Transform). 4. Щелкните на цилиндре, чтобы выделить его, а затем щелкните на нем пра- вой кнопкой мыши и выберите команду Wire Parameters (Связать парамет- ры) из всплывающего контекстного меню Затем выберите пункт Modified Objects Bend^Angle (Видоизмененный объскт^Сгибанис^Угол) из вен гы- вающего далее каскадного меню (рис. 4.3). 5. Как только от цилиндра протянется пунктирная линия, щелкни ie па вспомога- тельном объекте Expose Transform и выберите пункт Object (ExposeTransform- Helper)1‘«-Distance (Вспомогательный объект для раскрытия преобразования1^ Расстояние) из всплывающего каскадного меню (рис. 4.4).
Глава 4. Нововведения в анимации 107 Рис. 4.3. Выбор угла сгибания цилиндра Рис. 4.4. Выбор расстояния, раскрываемого вспомога- тельным объектом Expose Transform 6. Откроется диалоговое окно Parameter Wiring (Связывание парамет ров). Щелкните сначала на кнопке One Way Connection (Односторонняя связь) со стрелкой влево, а затем на кнопке Connect (Соединить) (рис. -1.5).
108 Часть I. Нововведения в 3ds max 7 [Parameter Wring #1 Cyh' derOI IffiEend @[£g Center Position XYZ • © ИЙ Gizmo; Position/R otatron/Scaie —|”t)irection •.-fl |LowaUmit —|j |Uppeiljmit ф Cylinder (Object) 02 - Default <] Expression for CyfindeOTs Angle D’stance £ - World Position X. Expose Float C ntrol World Postion Y Expose Float Control EWorld Position Z Expose Float Co trol Jnjxl ExposeTransformOI control tSrecLoh [Sfworld Pounding Box Size Expose Po nt3 Contro । World Bounding Box Width: Expose Floet ontrc"” : EWorld Bounding Box Length. Expose Float Cont RF^W rid Bounding Box Height Exp se Floet Contn --(f^Angle Expose Float Control U~~|Trme Offset Рис. 4.5. Между параметрами угла сгибания цилиндра (Bend Angle) и пара- метром расстояния (Distance) во вспомогательном объекте Expose Transform установлена односторонняя связь 7. Выделите параллелепипед и переместите его вверх, вниз, влево и вправо. Затем выделите плоскость и переместите ее вверх, вниз, влево и вправо. Независимо от того, в каком направлении перемещается цилиндр или плос- кость, чем дальше они друг от друга, тем больше сгибается цилиндр. Для про- верки полученных результатов откройте сцену из файла \Project FilesX Ch04_NewAnimation\expose transform finish.max па прилагаемом к этой книге DVD. Диалоговое окно Parameter Collector Диалоговое окно Parameter Collector (Накопитель параметров) позволяет ото- бражать параметры нескольких объектов или элементов сцены в одном спсци ально организованном месте. Благодаря сосредоточению важных параметров в одном месте экономится время на поиск по всему приложению каждого из этих параметров, когда требуется их анимация (рис. 4.6). СОВЕТ Если диалоговое окно Parameter Collector закрыто, его можно открыть из меню Animat on или же нажатием комбинации клавиш < Alt+2 >. Следует, однако, иметь в виду, что если объект удаляется со сцены, его пара- метры, накопленные в диалоговом окне Parameter Collector, не удаляются. Для то- го чтобы удалить эти параметры, выделите их и щелкните па кнопке Delete Se- lected (Удалить выделенное) диалогового окн; Parameter Collector
Глава 4. Нововведения в анимации 109 CoflKtion Edt Parameters RoW. $DcvfedEgg P-vanwtar; Д+] Potion | - - Pot***"1 ; ,—Y Potion JQZ Poafion Г- •££] Rotation I i—|T7]X Rotation —1Г~|У Rotation • L. ]Z Rotation •• -g]Scrfe Modified Object -^btaohw - ЕУI 1 Moi*h dosed |T«flS Avalabte ff3j|2] Mouth ooh Torpei AvsJobte] Mi nflh ash (Terfid!Avv.'iobSel ДЯ(4J Wiik left eye 0 aajetAvailable) gC][5}Wnkn^'fcve [ifaurfAvalable! .. Editable PcMOWed) О Material «25 10 Modth closed -(g) Mouth ooh Ф Mouth ash ф Wrh left eye : ($} Wilk ndit eye p]Mouth *loted |o d PJMorthMh ГТ [ИГ 3)Motfh«h Г f'1' Г |4|Wirt lelreve JOO Рис. 4.6. Цели морфинга персонажа Чертово яйцо сосредоточены в диалоговом окне Paramete Collector для их последующей анимации Примечания к параметрам Еще одним полезным элементом рационализации труда является возможность делать примечания к каждому параметру в диалоговом окне Parameter Collector. Подобным образом можно передавать по производственному конвейеру полез- ные советы, например, от технического постановщика, снаряжающего персона- жи, к аниматору. Для ввода примечаний необходимо щелкнуть на кнопке слева от выбранного параметра и открыть диалоговое окно Notes, выбрав команду Edit^Edit Notes (Правка1^! 1равка примечаний) из меню диалогового окна Parameter Со lector. В диалоговом окне Notes можно ввести важную информацию о выбранном пара- метре Одно примечание может быть присоединено к нескольким параметрам. В следующем упражнении демонстрируется порядок накопления параметров в диалоговом окне Parameter Collector. 1. Создайте примитивный параллелепипед 2. Откройте миниатюрный редактор кривых (Mini Curve Editor) и выберите параметр вы<о гы параллелепипеда (Object (Box) ^Height). 3. Щелкните правой кнопкой мыши и выберите команду Collect Parameters (Накопить параметры) из всплывающего контекстного меню (рис. 4.7).
110 Часть I. Нововведения в 3ds max 7 Рис. 4.7. Накопление параметра высоты параллелепипеда в диалоговом окне Parameter Col ector 4. В диалоговом окне Parameter Collector появится свиток Parameters. С по- мощью кнопки Multiple Edits (Многократные правки) можно одновремен- но настраивать счетчики нескольких параметров. Это удобно для па- стройки двух сходных параметров. Например, параметры управляющие морганием правого и левого глаза персонажа, лучше всего настраивать одновременно. Кнопка-переключатель режима Absolute/Relative действует таким же образом, как и в стандарт ном интерфейсе. Исходные значения параметров можно изме- нять на абсолютную величину, вводя конкретное значение, либо на относитель- ную величину, смещая исходное значение на введенную величину. Так, если тре- буется изменить относительный радиус чайника от 10,3 до 25,0, введите отно- сительное значение радиуса 14,97 (10,3 +14,97 = 25,0). Но если значение было смещено па 5 единиц, а теперь его требуется сместить еще на 5 единиц, то снача- ла необходимо установить относительное значение в 0.0. а затем еще раз ввести 5 единиц, что не совсем логично.
Глава 4. Нововведения в анимации 111 Диалоговое окно Reaction Manager В анимации, управляемой событиями, один объект обычно управляет анима- цией другого. Допустим, что требуется повернуть один чайник в зависимости от ориентации другого чайника. Для создания взаимно-однозначной связи между этими объектами проще всего воспользоваться ограничением по ориентации (Orientation Constraint) или же связать параметры обоих чайников. Новое диалоговое окно Reaction Manager (Администратор реакций) упрощает процесс связывания параметров и дает возможность использовать функциональ- ную кривую для внесения изменений в анимацию. Так, объект, оживляемый с по- стоянной скоростью, может управлять анимацией другого объекта по форме функциональной кривой. Диалоговое окно Reaction Manager обеспечивает точ- ное управление сложной анимацией и снаряжением с помощью единственного ползункового регулятора. Например каждой костью длинной шеи динозавра можно управлять всего лишь одним ползунком. Подобные схемы управления анимацией вполне логично называются кон- троллерами управления реакцией (Reaction). Существует пять разновидностей таких контроллеров: Position Reaction (Управление реакцией по положению). Rotation Reacton (Управление реакцией по вращению), Point3 Reaction (Управле- ние реакцией по трем точкам), Scale Reaction (Управление реакцией по масшта- бу) и Float Reaction (Управление реакцией с плавающей точкой). Настройка кон- троллера Reaction выполняется в диалоговом окне React on Manager, доступном из главного меню Animation, или же из квадратного меню, вызываемого нажатием клавиши <Alt> и щелчком правой кнопкой мыши Процесс настройки контролле- ра Reaction довольно прост: необходимо лишь организовать главный узел для управления любым числом подчиненных объектов. НА ЗАМЕТКУ Упомянутые вь ше контроллеры Reaction заменяют кон роллерь данного типа из предыдущих версий 3ds max. Любой существующий контроллер Reaction преоб- разуется в контроллер Reaction из версии 3ds max 7 Организация реакции В следующем упражнении демонстрируется организация реакции одного объ екта на другой. 1 Откройте сцену из файла \Project Files\Ch04_NewAnimation\manager start .max на прилагаемом к этой книге DVD. Данная сцена исходно содержит два примитивных цилипдра. Высота перв< го из них будет служить для управле- ния анимацией высоты другого. Кроме того будут установлены пределы влия- ния на перемещение второго цилиндра. 2. Выделите второй цилиндр и откройте диалоговое окно Reaction Manager (рис 4 8).
112 Часть I. Нововведения в 3ds max 7 File Edit Tools Group Views Create Modfiets Character reactor [Animation Graph Editors Rendering Customize MAXScript Help IK Solvers Show Selected j Constraints Wire Parameters Edit Mode f States > React» Manager Parameter Ecitor Parameter Colector Alt+1 Aft+2 Transform Controllers Position Controlers Rotation Centro lers Scale Controfiers D ag to move. Ctrl-cEck or draj Рис. 4.8. Открытие нового для версии 3ds max 7 диалогового окна Reaction Manager. Оно позволяет быстро установить взаимосвязь между анимацией двух объектов + Mate Preview. View Prev ew. Rename Preview De etc Selected Animation *ftl. .. s S X 3. Для установки ведущего объекта и его параметра щелкните сначала на кнопке Add Master (Добавить ведущий параметр), а затем па левом цилинд- ре и выберите пункт Object (Cylinder)1^ Height (Объект-цилиндр1^ Высота) из всплывающего меню. 4. Для установки подчиненного объекта и его параметра щелкните сначала на кнопке Add Slave (Добавить подчиненный параметр), а затем на правом цилиндре и выберите пункт Object (Cylinderj^Height из всплывающего ме- ню (рис. 4.9). 5. Щелкните на кнопке Create State (Создать состояние). Дважды щелкните, чтобы выделить каждое значение и ввести следующее: Stated - 50; Cylinder02/Height = 50;State02 = 100;Cylinder02/Height = 100 (рис. 4.10). Высота правого цилиндра будет изменяться в пределах от 50 до 100 при из- менении высоты левого цилиндра в тех же пределах.
Глава 4. Нововведения в анимации 113 Рис. 4.9. Левый цилиндр становится подчиненным объектом. Его высота будет соответственно реагировать на высоту правого ци- линдра как ведущего объекта. В списке States вводится первое состояние Рис. 4.10. В список States вводится второе состояние, а затем изменяют- ся значения каждого состояния и высоты второго цилиндра
114 Часть I. Нововведения в 3ds max 7 6. Щелкните правой кнопкой мыши па каждом узле графика в нижней части диалогового окна Reaction Manager и замените эти узлы на угловые точки Безье Переместите левую ючку Безье вверх а правую вниз рис. 4.1 Если требуется, выберите кнопку Zoom Extents, чтобы показать график полностью в диалоговом окне Reaction Manager. График функциональной кривой определяет характер реакции высоты правого цилиндра на измене- ние высоты левого цилиндра в пределах от 50 до 100. Рис. 4.11. Функциональная кривая уже не напоминает прямую наклонную линию. Реакция правого цилиндра будет происходить под воздействием формы этой кривой 7. Включите режим Auto Key и перейдите к кадру 100. Установите высоту 150 левого цилиндра па панели Modify. Воспроизведите анимацию (рис. 4.12). При значениях ниже 50 и выше 100 изменение высоты левого цилиндра не оказывает никакого влияния на высоту правого цилиндра. А в пределах от 50 до 100 высота правого цилиндра изменяется причем это изменение происходит но заданной форме функциональной кривой реакции. Для проверки полученных результатов откройте сцену из файла \Project Files\Ch04_NewAnimation\ manager finrsh max па прилагаемом к этой книге DVD.
Глава 4. Нововведения в анимации 115 Рис. 4.12. Высота левого цилиндра изменяется в пределах от 30 до 150 в течение 100 кадров анимации Модификатор Skin Wrap Сначала, как правило, моделируется тело персонажа, а сто одежда добавляется впоследствии в качестве отдельной геометрической формы. Если же требуется поме- нять одежду на .модели, для этой цели необходимо составить удобную последователь- ность операций, позволяющую выполнять анимацию одного персонажа с разными вариантами одежды, не прибегая к установке новых оболочек и весов вершин в мо- дификаторе Skin для каждой детали одежды. Внедренный в версии 3ds max 7 новый модификатор Skin Wrap (Охват кожного покрова) упрощает последовательность опе- раций во время анимации объектов, охватывающих модель персонажа. С помощью модификатора Skin Wrap можно осуществить анимацию персона- жа (или же любого другого объекта), переделать или одеть его модель и исполь- зовать исходную модель персонажа в качестве замещающей для управления пере- деланной моделью. .Это очень удобно для организации производства па студии, поскольку аниматорам уже не нужно жда'Ъ, пока разработчики моделей завершат переделку исходной модели, — анимация может выполняться параллельно с до- водкой исходной модели При этом исходная модель (или же ее копия с малым числом многоугольников) используется в качестве замещающей модели. А впо следствии доработанная модель подставляется вместо замещающей.
116 Часть I. Нововведения в 3ds max 7 Модификатор Skin Wrap применяется к персонажу (или же любым другим объектам, которыми требуется манипулировать), причем в движение приводится его исходная модель. Допустим, что на персонаж который уже был подвергнут анимации, нужно надеть шляпу и перчатки. Для это! о достаточно выбрать моди- фикатор Skin Wrap из списка модификаторов и примени! ь его к шляпе и перчат- кам, связав его с исходной моделью персонажа. Шляпу и перчатки необходимо правильно расположить относительно головы и кистей рук персонажа, которые они должны покрывать. Этот процесс проще продемонстрировать на примере расположения примитивных объектов на плоскости. У модификатора Skin Wrap имеется уровень подобъектов, называемый Control Vertices (Управляющие вершины). Каждая управляющая вершина получается из вершин оживляемого управляющего объекта и оказывает сферическое влияние аналогично оболочке модификатора Skin. В соот ветствии с этой оболочкой влия пие оказывается на вершины объекта с модификатором Skin Wrap. Размер обо- лочки определяется параметром Distance Influence (Влияние па расстоянии) из свитка Parameters модификатора Skin Wrap (рис. 4.13). ф В 5ХЙ 1— Coniid Vertices Рис. 4.13. Модификатор Skin Wrap применен к каждому объекту, находящемуся на плоско сти, которая введена в список управляющих объектов. А параметр Distance Influence опреде ляет радиус сферическом оболочки влияния модификатора Skin Wrap w I fl Г | , Farametes? | PlaneDI Add | Remove Defoirnalton Engirt |v«tex Defofmahon Fdlof |10 :| Distance Iril :|о'з' Face Limit Cj Г В tnd To Base Mesh lendD^r.e F 2 Если установить слишком малое значение параметра Distance Influence или же расположить объект с модификатором Skin Wrap слишком далеко от управляю щих вершин, оживляемый управляющий объект не будет оказывать никакого влияния. Если же установить слишком большое значение параметра Distance In- fluence, анимация каждой управляющей вершины будет охватывать лишние вер- шины объекта с модификатором Skn Wrap, что может привести к нежелатель- ным, а возможно, и неприемлемым результатам. Значение параметра Distance Influence присваивается глобально всем управ- ляющим вершинам, несмотря на то, что для каждой управляющей вершины это нужно делать индивидуально. Для организации индивидуального влияния лправ-
Г лава 4. Нововведения в анимации 117 ляющих вершин в умеренных масштабах воспользуйтесь параметром Local Scale Multiplier (Локальный масштабный множитель). В то же время необходимо сде- лать оболочку каждой управляющей вершины достаточно большой для влияния на нужные вершины объекта с модификатором Skin Wrap. Оптимальные значе- ния параметров обычно определяются методом проб и ошибок После того как будут правильно подобраны размеры оболочек, можно присту- пать к деформации исходного объекта, вместе с которым деформируются и объ- екты с модификатором Skin Wrap (рис. 4.14). Рис. 4.14. При перемещении вверх отдельных вершин плоскости вместе с ними перемещают- ся и объекты в пределах области влияния сферических оболочек модификатора Skin Wrap | НА ЗАМЕТКУ______________________________________________________ Her рем нно установите масштаб 100% исходного объекта по осям X, Y и Z, иначе форма области влияния его управляющих в ршин не будет сферической и эти верши ы буду ка ывать влияние на модель с модификатором Skin W ар непред- сказуемым образом Вос ользуит ь нопкой Reset XForm (Сбросить модификатор преоб ова ия) на нели Utilities, чтобы поправить масштаб модели. Модификатор Skin Morph Для реалистичного сгибания руки персонажа требуется сложная дсфцр лация. Общий объем руки не меняется, однако ее бицепсы вздуваются, трицепсы растягива ются, а кожа собирается в складки и стягивается па внутренней стороне локтя. Для получения нужных складок и исключения ненужных в 1 > max приходится тратить немало времени, поскольку в этом приложении отсутствует собственная система де формации мускулов, позволяющая автоматизировать данный процесс. Поэтому' для получения приемлемого вида деформаций кожного покрова персонажа приходится выполнять сложные манипуляции с модификатором Skin в диалоговом режиме
118 Часть I. Нововведения в 3ds max 7 Теперь эт от процесс может быть упрощен благодаря внедрению нового модифи- катора Skin Morph (Морфинг кожного покрова). С сто помощью можно точно на страивать анимацию используя кости для выполнения корректирующего морфинга на трудных участках складок и вздутых мышц. По существу, модификатор Sk n Morph позволяет быстро создать простые варианты системы мускулов. Так, при сгибании руки и вздутии ее мышц необходимо установить деформацию модели, когда порож денная кость (предплечья) располагается под определенным утлом относительно ее родительской кости (плеча). Каркас руки деформируется в одну' и другую сторону вся- кий раз, когда эта взаимосвязь по углу расположения подлежит аешмации с помощью модификатора Skin Morph, применяемого в стеке выше модификатора Skin Рассмотрим особенности модификатора Skin Morph на примере его примене- ния к модели персонажа Чертово яйцо, хотя вы можете воспользоваться для этой цели и собственным персонажем или же другим объектом. И гак, примените мо- дификатор Skin Morph к модели, установите флажок Beginner Mode (Режим для начинающих) и создайте цель морфинга, или просто морф, для требуемою изме- нения угла расположения костей (рис 4.15). Обязательно введите кости в список из свитка Parameters модификатора Sk n Morph. Рис. 4.15. Модификатор Skin Morph применяется к модели персонажа Чертово яйцо после модификатора Skin, но перед модификатором TurboSmooth. Затем для требуемого измене- ния угла расположения костей создается морф Для правки у модификатора Skin Morph имеется уровень подобъектов-точек (Points). Изменения этих точек регистрируются в зависимое с и от изменения угла расположения кости. Всякий раз, когда кость устанавливается под регистрируе- мым утлом, эти точки деформирую с ся. Для того чтобы исключить влияние не- скольких морфов друг па друга, установите* как можно меньшее значение пара- метра Influence Angle (Угол влияния) (рис. 4.16).
Глава 4. Нововведения в анимации 119 Рис. 4.16. Угол расположения плечевой кости определяет деформацию точек во время мор- финга. А параметр Influence Angle позволяет исключить взаимное влияние морфов Если флажок Beginner Mode с брошен, морфы создаются в 3cls max 7 автомати- чески, а следовательно, щелкать на кнопке Create Morph (Создать цель морфинга) для этой цели уже не требуется. Если осуществить анимацию вершин на предплечье персонажа Чертово яйцо, они деформируются в том направлении, куда были перемещены точки модифи- катора Skin Morph (рис. 4.17). Рис. 4.17. Мышцы предплечья персонажа Чертово яйцо вздуваются в зависимости от угла расположения костей
120 Часть I. Нововведения в 3ds max 7 Режим Mirror в диалоговом окне Bone Tools Создавать и снаряжать все кости для явно симметричного персонажа нс имеет смысла, поскольку это лишняя трата времени. На самом деле достаточно снарядить лишь одну сторону модели персонажа, а затем зеркально отобразить снаряженные кости на другую его сторону. Такая возможность появилась в вер- сии 3ds max 7 благодаря внедрению новой кнопки Mirror (Зеркальное отобра- жение) в свитке Bone Editing Tools (Инструменты правки костей) диалогового окна Bone Tools. Кости, выделенные для зеркального отображения, получают имена исходных костей, но с дополнением (mirrored), обозначающим зер- кально отображаемую кость (рис. 4.18). СОВЕТ Зеркально отображаемые кости не являются экземплярами исходных костей, по- этому зеркальное отображение костей на одной стороне модели персонажа следует выполнять только после того, как будет полностью завершено и поправ- лено их снаряжение. Рис. 4.18. Новая кнопка Mirror, доступная в диалоговом окне Bone Tools, открывает диалого- вое окно для выбора оси зеркального отображения костей Новые кости получают имена ис- ходных костей, но с дополнением (mirrored) Модуль character studio Наконец го модуль character studio, существовавший ранее в виде отдельной программы, включен в состав версии 3ds max 7. Этот модуль работает со стан- дартными для 3ds max костями взвешенными контроллерами, инструментами анимации по ключевым кадрам и режимами формирования кожного покрова. Во лее подробно модуль character studio рассматривается в главе 15, а здесь дается лишь краткий обзор его новых свойств.
Глава 4. Нововведения в анимации 121 В модуле character studio доступны самые разные инструменты для обеспе- чения точности и устранения ошибок в анимации персонажей с помощью ряда специально связанных объектов, носящих общее название Biped (Двуногий объект). Правая сторона объекта Biped обозначается зеленым цветом, а ле- вая синим, чтобы упростить отображение элементов его снаряжения и ани- мации (рис. 4.19). С помощью объекта Biped можно довольно быстро создать готовое снаряже- ние персонажа и настроить параметры его создания. Большинство параметров настройки объекта Biped доступно на панели Motion Ниже будут вкратце рас- смотрены режимы анимации этого двуногого объекта. Рис. 4.19. Двуногий объект Biped из модуля character studio, установленный в позу боксера Режим Figure Режим Figure (Фигура), доступный в свитке Biped на панели Motion позволяет сформировать внутреннее строение двуногого объекта, а по существу, — автомати- ческую систему снаряжения. В свитке Structure (Строение) назначаются следующие элементы строения тела двуногого объекта: Arms (Руки), Neck Links (Звенья шеи), Spine Links (Звенья позвоночника), Tail Links (Звенья хвоста), Ponytail Links (Звенья первой прически “конский хвост”) Ponytail2 Links (Звенья второй причес- ки “конский хвост”), Fingers (Пальцы рук), Finger Links (Звенья пальцев рек) Toes (Пальцы пог), Toe Links (Звенья пальцев ног), Props (Реквизит), Ankle Attach
122 Часть I. Нововведения в 3ds max 7 (Соединение в области лодыжки), Heght (Высота), Triange Pelvis (Треугольный таз), Forearm Twist (Выворачивание предплечья), Forearm Links (Звенья предпле- чья), а также Body Туре (Тип строения тела) (рис. 4.20). V. |ВрО1 —————р Selection Level Sub Object '['""’r-k-i'i ___________ Paameteis Trajectore^ ГТ’ !! ft i " ►f & в £ |- Structure ] Arms P Neck Links: |i Cj Spine nks: (T; | | Leg Links. Г;! TaiILnk$j5~ tj РопИаП bnk :| PonytaL? Links: [Г C] Fingers: |Tc| Fnger Links: | *] Toes- C] T oe Links- |T~ t] Props. 1 Г2 ГЗ Г Ankle Attach [&2 C| j Height- (205 484 C] TimtmJb Pelvis p Fcreatro Twist Г~ 1 Body ype —------------------ | Skeleton ж 1 Рис. 4.20. В свитке Structure, доступ- ном в режиме Figure работы модуля character stud о, представлены многие параметры для специальной настрой- ки строения тела двуногого объекта Режим F gure служит для выравнивания, масштабирования и вращения от- дельных частей строения двуногого объекта в соответствии с конкретной моде- лью персонажа. Двуногий объект позволяет экономить время при организации снаряжения персонажа, поскольку допускает копирование и вставку зеркально отображаемых костей в разных положениях и позах с помощью соответствующих кнопок из свитка Сору/Paste (рис 4.21) Достаточно снарядить лишь одну сторо- ну двуногого объекта, а в режиме Figure будет автоматически снаряжена другая его сторона. Благодаря правильному выравниванию двуногого объекта в режиме Figure экономится время, которое в противном случае приходится тратить на внесение корректив в анимацию па уровне модификатора Skin (рис. 4.22)
Глава 4 Нововведения в анимации 123 Рис. 4.21. Положение левой руки двуногого объекта скопировано и зеркально отображено на его противоположной с ороне Рис. 4.22. Отдельные части тела двуногого объекта масштабированы и повернуты в соответствии с позой персонажа Чертово яйцо. После этого остается лишь выров- нять и расположить двуногий объект внутри геометрической формы пер онажа
124 Часть I. Нововведения в 3ds max 7 Режим Footstep В модуле character studio доступны разнообразные полезные инструменты и вспо- могательные средства анимации. В частности, режим Footstep (Следы) позволяет осуществить на сцене анимацию ходьбы персонажа, снаряженного двуногим объ- ектом. Принцип организации такой ходьбы довольно прост- режим Footstep ак тивмзируется из свитке Biped на панели Motion, когда выделена любая часть дву- ногого объекта. После активизации кнопки Create Footsteps (Создать следы) в свитке Footstep Creation (Создание следов) достаточно установить последова тельными щелчками позиционные маркеры, называемые следами, для обозначе- ния места и времени совершения двуногим объектом ходьбы бега или прыжка. Левый и правый под объекты-следы образуют соответствующий путь для стоп двуногого объекта. Эти следы привязывают стопы двуногого объекта к земле в за- данных кадрах анимации. В активном режиме Footstep можно лишь выделять, удалять располагать по- ворачивать следы двуногого объекта и изменять их длительность. А правка вре- мени ых характеристик анимации ходьбы осуществляется в режиме Dope Sheet редактора кривых (рис. 4.23). Тело двуногого объекта сразу же реагирует на из- менения формы функциональной кривой анимации его ходьбы. Рис. 4.23. В версии 3ds max 7 в квадратное меню была введена команда доступа к режиму Dope Sheet редактора кривых, где зеленые и синие треки следов обозначают анимацию движения соответствующих стоп двуногого объекта
Глава 4 Нововведения в анимации 125 Во время ходьбы ноги двуногого объекта могут находиться в четырех положе- ниях стояние, движение, касание и поднятие. Когда нога стоит, она привязана к земле. Когда нога движется, она перемещается от одного следа к другом)'. Если ноги двуногого объекта движутся одновременно, в таком случае он прыгает, бе- жит или же совершает любое другое движение обеими стопами в воздухе При расстановке следов автоматически устанавливаются ключевые кадры анимации остальных частей тела двуногого объекта Так, если у двуногого объек- та имеется хвост, он автоматически покачивается в такт ходьбы. Между следами можно установить произвольные промежутки, чтобы приспособить анимацию двуногого объекта к движениям, не предполагающим привязку' стоп к земле, ко- гда, например, персонаж плывет или откидывается на спинку стула. Как только анимация двуногого объекта будет завершена, ее можно сохранить для применения в других режимах анимации character studio включая режимы Motion Flow, Mixer и Motion Mixer. С другой стороны, эту анимации можно приме- нить к толпе других двуногих объектов. СОВЕТ Следы должны быть создань до применения дополнительной анимации к лю- бым частям тела двуногого объекта В против ом случае вместо анимации от дельных частей тела двуногого объекта получится его анимация в про звольной форме, не допускающая последующий ввод следов. Режим Motion Flow Режим Motion Flow (Последовательность движений) активизируется из свитка Biped. В этом режиме можно воспользоваться сохраненными ранее фрагментами анимации двуногого объекта в том числе из файлов с данными фиксации движе- ния, и создать переходы между' ними. Так, загрузив анимацию балетных движе- ний двуногого объекта, можно сделать переход к анимации этого же объекта, по- скользнувшегося на банановой кожуре. В итоге получается комическая анимация, в которой двуногий объект совершает сначала несколько шагов в танце, а затем, поскользнувшись, падает (рис. 4.24). Такой монтаж фрагментов процедурной анимации может оказаться очень удобным, однако следует иметь в виду, что эти фрагменты анимации могут не вполне состыковываться друг с другом. Ведь модулю character studio неизвестно, насколько комичным должно быть падение танцующего двуногого объекта и как сильно он должен удариться о землю. В таких случаях просто нс обойтись без проверенных временем методов ручной анимации по ключевым кадрам.
126 Часть I. Нововведения в 3ds max 7 3 [To Selection Level: Sub-Object p Parameters T atectones J I - B<»d * !! I & Ъ *4 Й Рис. 4.24. Режим Motion Flow позволяет делать переходы между несколькими ви- дами анимации двуногого объекта. В данном случае двуногий объект совершает сначала несколько шагов в танце, а затем, поскользнувшись, падает |- - MobonFkw ; 205/272 Scripts i |scr ptl 4 I jJOOO'BALLET (hans tic I 0184: BANANA (transition to] Start Position X: Start Position Y: 3 Режим Mixer и диалоговое окно Motion Mixer Режим Mixer (Смеситель) доступен из свитка Biped а диалоговое окно Motion Mixer (Смеситель движений) открывается из свитка Biped Apps (Приложения двуногого объекта). Режим Mixer и диалоговое окно Motion Mixer действуют со вместно. В активном режиме Mixer изменения, происходящие с двуногим объек- том в диалоговом окне Motion Mixer, отображаются в видовых окнах. При этом становшся доступной кнопка Save File. Диалоговое окно Motion Mixer служит для смешения разных видов анимации двуногого объекта и изолирования отдельных частей его тела. Например, можно взять анимацию верхней части тела двуногого объекта и объединить ее в единый фрагмент с анимацией нижней части тела это го объекта (рис. 4.25). Такой способ монтажа позволяет экономить время, когда требуется перемещать множество персонажей, совершающих несколько движе- ний. Характер и временной отрезок анимации верхней части тела двуногого объ екта регулируется в редак т оре кривых.
Глава 4. Нововведения в анимации 127 |В'рО1 Pelvis Selection Level I- Sped * !! £ *4 Ы «Г Рис 4.25. В активном режиме Mixer изменения, происходящие с двуногим объектом отображаются в видовых окнах Трек анимации рук в верхней части тела двуногого объекта изолируется и смешивается с треком анимации движении нижней части тела этого объекта. В итоге двуногий объект размахивает руками во время ходьбы В диалоговом окис Motion Mixer имеется также возможность для графической правки и искажения временных отрезков анимации. В частности, движение дву- ногого объекта можно замедлить в течение заданных кадров, а затем вновь дове- сти ею до нормальной скорости. Смешанные подобным образом движения дву- ногого объекта вводятся затем в единый файл для окончагетьной анимации. Режим анимации двуногого объекта После создания двуногого объекта, ввода следов ходьбы и смешения его движе ний возникает потребность в настройке анимации данного объекта. Гели следы верно расставлены в пространстве и времени, то анимация головы и таза двуногого объекта может происходить по-разному Следовательно необходимо выйти из всех упомянутых выше режимов и перейти в режим анимации двуногого объекта. В этом режиме можно выделять и подвергать анимации отдельные части тела дву- ногого об1>екта (например, руки и голову), используя стандартные методы расстанов- ки ключевых кадров и кинематики. Кроме того, с помощью параметра IK Blend (Переход к инверсной кинематике) из свитка Key Info (Сведения о ключевых кадрах) можно постепенно переходит ь о г прямой к инверсной кин юматикс и обратно. При прямой кинематике анимация происходит вниз по иерархической цепочке костей от родителя к потомку. Так, если перемещается плечо, то вместе с ним не
128 Часть I. Нововведения в 3ds max 7 ремещается и кисть руки двуногого объекта, поскольку она является порожденным объектом предплечья. Совсем иначе действует инверсная кинематика (ПК). В этом случае анимация происходит вверх по иерархической цепочке костей от потомка к родителю. Так, если временно ограничить движения кисти руки двуногого объек- та пределами перемещения другого объекта, то вместе с этим объектом в заданных пределах будет перемещаться кисть и вся рука в целом. Следует, однако, иметь в ви- ду, что при ИК вращение плеча не будет иметь смешанный эффект в зависимости от значения параметра IK В end, установленного в конкретном ключевом кадре. Многие аниматоры предпочитают выполнять анимацию тела персонажа по частям, используя в основном лишь одну систему кинематики, но на самом деле для эффективной анимации персонажей требуются обе системы. Поочередный переход от прямой к инверсной кинематике и обратно позволяет точнее контро- лировать анимацию и пользоваться таким специальными возможностями, как управление кистями рук и стопами путем перемещения объектов по сцепе. При определенном сочетании прямой и инверсной кинематики упрощается анимация бросания и ловли, а также передачи предметов из рук в руки. Столь простые, на первый взгляд, действия, как пи страшно, очень трудно подвергаются анимации с помощью лишь одной системы кинематики. Сам же метод передачи предмета (например, мяча) из одной руки двуногого объекта в другую достаточно прост. Для этого необходимо сначала создать клю- чевой кадр, щелкнув на кнопке Set Key (Установить ключевой кадр), выбрать не редаваемый объект (в данном случае мяч) и установить значение 1,0 в поле па раметра IK Blend Благодаря этому оживляемый мяч передается из правой руки двуногого объекта в левую (рис. 4.26). Еще одно нововведение в 3ds max 7 состоит в том, что теперь можно устано- вить момент, когда голова двуногого объекта направляется в сторону других оживляемых на сцене объектов и затем следует за ними. В частности, голова дву- ногого объекта будет сначала следить за одним проходящим мимо объектом, а за- тем за другим объектом, движущимся в противоположном направлении. Доста- точно осуществить анимацию этих объектов, и голова двуногого объекта после- дует за ними. В следующем упражнении показано, как это делается 1. Выделите голову двуногого объекта. Разверните область Head (Голова) в свитке Key Info и воспользуйтесь кнопкой Select LookAt Target (Выбрать цель для сле- жения), чтобы выбрал ь на сцене отслеживаемый объект (рис 4.27). После того как объекл будет выбран в качестве отслеживаемого головой двуногого обл.екта. от может быть подвергнут анимации. Для анимации па- раметра Target Blend (Смешение с целью) необходимо также установить ключевые кадры. Так при значении 0,0 параметра Target Blend голова двуногого объекта не обращает никакого внимания на движения целевою объекта. При значении 1,0 злого параметра голова двуногого объекта вы иуждепа следить па целевым объектом. А при изменении значения пара метра Target Blend от 0,0 до 1,0 голова двуногого объекта будел' частично следить за оживляемым целевым обл>екгом. В данном случае в качестве це- левого объекта выбран чайник, за которым голова двуногого объекта будет следить в кадре 30 А для того чтобы голова двуногого объекта перестала следить за чайником, можно установить дополни тельные ключевые кадры.
Глава 4. Нововведения в анимации 129 |^.'Л'О|ВДТ| |Вр01 LHand ' Selection Level: ----------3 Pa'ameiefs reject» e$ Epw Key n1o Ke^iarwng Tools ]~ Ссру/Райе Assign Conltoltei Laye?; Motion CapUae Рис. 4.26. Передача мяча в режиме перехода к ИК Blend |lfe Ankle Tension- ] о Select Pivot । Г on to Rev К Key Г Body ® btect Г FooiBell -•-Head-----•———;----------- ТГГПГП г' 30 4Р | BipOl Head Г? Sctecbon Levek . |~~..... '-J | Parameters Trajectories r[ 4- i ed | r| - ’ •Key nfo ‘ ^^|777[зГ“ & >6 • Д Д A, *TCB------------------ ♦IK------------------- Head Target Biend. rar~ , T eapotOI ♦Body------------------— ♦Prop----------------- . Рис. 4.27. В свитке Key Info можно ус- тановить ключевой кадр, выбрать от- слеживаемый объект и осуществить анимацию параметра Target Blend
130 Часть I. Нововведения в 3ds max 7 2- Щелкните на кнопке Set Key в свитке Key Info, выбрав предварительно кад- ры анимации, где голова должна следовать за оживляемым объектом. 3. Значение параметра Target Blend может быть установлено в пределах от 0,0 до 1,0, в зависимости от того насколько внимательно голова двуного- го объекта должна следить за оживляемым объектом. Целевой отслеживаемый объект может быть подвергнут анимации до или по- сле ввода значений параметра Тarget Blend. НА ЗАМЕТКУ Для головы двуногого объек а можно выбрать лишь один отслеживаемь й объ- ект. С этой целью лучше всего выбрать невизуализируемый вспомогатель ыи объект, использующим ограничение по линии связи (Link Constra'nt) с каждым оживляемым объектом в разных кадрах анимации. Ниже вкратце перечислены другие новые свойства двуногого объекта в модуле character studio. Более подробно с ними можно ознакомиться в справке по charac- ter studio, доступной из оперативной справочной системы 3ds max 7 после выбо- ра команды Help^User Reference (СправкаЧ>Справочник пользователя). • Точку опоры стопы в двуногом объекте можно смещать с задней стороны стопы на переднюю в разных кадрах анимации. Когда положение точки опоры стопы подлежит анимации вес идущего двуногого объекта более реалистично переносится с одной стопы на другую. • В двуногий объект встроена система анимации вращательных движений, ис- ключающая ненужное переворачивание конечностей (это типичный недос- таток снаряжения персонажей, возникающий в основном из-за ограничений, присущих решателям ИК, и по причине использования данных эйлерова вращения, а не кватернионов). Благодаря этому становится возможной ани- мация вращения сочленений двуного! о объекта, не требующая установки до- полнительных ключевых кадров для устранения недостатков снаряжения. • Во многих случаях требуется просматривать несколько предварительных ва- риантов анимации, чтобы выбрать среди них наиболее подходящий. В этом ол ношении объект Biped предоставляет такие же удобства как и программы редактирования фотографий, позволяющие работать со слоями изображе- ний. Введя анимацию в слои, можно включать и исключать отдельные ее фрагменты, а затем окончательно сводить их в единый трек • Для манипулирования треками анимации и позами персонажей служит ви- зуальный буфер обмена, позволяющий без труда находить и подставлять данные о позах разных персонажей. • В приложении двуногого объекта под названием Workbench (Рабочее ме- сто), имеется целый ряд инструментов для правки и устранения недостат- ков снаряжения персонажей, проявляющихся во время их анимации, на- пример нежелательного подергивания. С помощью этих инструментов можно сгладить функциональные кривые анимации по ключевым кадрам, чтобы сделать движения персонажей более естественными.
Глава 4 Нововведения в анимации 131 . • Данные фиксации движения двуногого объекта можно импортировать, править или иным образом манипулировать ими. В character studio имеются инструменты для настройки файлов с данными фиксации движения, не со- гласующимися со сценой 3ds max 7. • Для опробования, включения и исключения разных вариантов анимации служат слои. В частности, анимацию позвоночника двуногого объекта мож- но поместить в отдельном слое. Когда применяется этот слой, персонаж будет по-другому покачиваться во время ходьбы. Если изменения в этом слое вас не удовлетворяют, вы можете их исключить или вообще удалить, вернувшись к предыдущему варианту анимации. Слои можно расположить рядами, чтобы скомпоновать из них многие виды движения, а затем свести их в единую анимацию. • Для объединения разных сохраненных фрагментов анимации двуногого объекта в группу персонажей с разными повадками служит свойство Crowd (Толпа). Действия двуногих персонажей можно организовать таким обра- зом, как будто они привлекаются или отстраняются другими объектами или действующими на сцене персонажами. Резюме В целом в версии 3ds max 7 внедрены впечатляющие новые инструменты. Од но лишь внедрение модуля character studio превращает 3ds max в ведущее прило- жение в области процедурной анимации. Свойства двуногого объекта в модуле character studio предоставляют отличную возможность для быстрого создания простой анимации, получение которой традиционными методами потребовало бы намного больше времени. Новые средства деформации позволяют создавать более правдоподобные персонажи. Некоторые новые инструменты анимации до вольно сложны и их возможности были едва лишь затронуты в этой главе (например, свойства инструментов смешения движения и расположения слоями). Тем не менее они способны внести значительные улучшения в анимационный производственный конвейер. Упомянутые выше новые инструменты анимации принесут несомненную пользу при подготовке сцен к визуализации, нововведения в которой рассматри ваются в следующей главе.
Нововведения в визуализации Дэниел Монахан За последние несколько лет наблюдался значительный прогресс в развитии ме- тодов визуализации, вызванный потребностью в формировании средствами ком пыотерпой графики более детализированных изображений, которые было бы трудно отличить от настоящих. В версии 3ds max 7 доступны усовершенствованные варианты механизмов визуализации mental ray и по методу излучательности с по- строчной разверткой, причем особый прогресс достигнут в отношении точности освещения и формирования теней, что так важно для реалистичной визуализации. В этой главе рассмотрены следующие нововведения в визуализации, повы тающие эффективност ь окончательного оформления сцен в 3ds max 7. • Предварительно заданные фотометрические источники свега. • Сви гок mental ray Shadow Map. • Панель инструментов Render Shortcuts • Модификатор Renderable Spline. • Режим Motion Blur для источников свеча и камер. • Ут илитa Assign Vertex Colors Предварительно заданные фотометрические источники света Организация качественного освещения имеет большое значение и обычно осуществляется на завершающих стадиях непосредственно перед визуализацией сцены, хотя в некоторых технологических цепочках осветительные приборы расставляются па этапе предварительного визуального представления или раз- мст и сцены. Нс в любом случае необходимо убедиться в том, что источники све- та расставлены правильно, а их интенсивность и окраска дополняют сцену. Но- вые предварительно заданные, а по существу, готовые фо i ометрические источ ники све га намного упрощают данный процесс.
134 Часть I. Нововведения в 3ds max 7 Если, например, сцену необходимо осветить реалистичной лампочкой мощно- стью 60 Вт, соответствующий источник света можно выбрать из главного меню с помощью команды Create^Lights^Photometric Lights^Presets^eO W Bulb (Создать1^ Источники света^Фотометрические источники света1^Предварительно заданные источники светив Лампочка мощностью 60 Вт). Это те же самые источники света, что и в предыдущей версии 3ds max, только т еперь они предварительно настроены и готовы к применению (рис. 5.1). Рис. 5.1. Этот источник света предварительно настроен как фотометрический для реали- стичной имитации освещения стандартной лампочкой накаливания мощностью 60 Вт К фотометрическом}' типу относятся, в частности, свободно направленные точечные источники света. Аналогично всенаправленным источникам света, свободно направленные точечные источники излучают свет из одной бесконечно малой точки. И подобно стандартном}' свободно направленному прожектору, эти источники света не направлены па конкре i ную цель, определяющую угол их дей- ствия. Для того чтобы нацелить свободно направленный источник света его не- обходимо выделить и повернуть в нужном направлении вручную. В источнике света распределительного типа определяется сила его света (или ин- тенсивность излучаемого света) относительно направления и расстояния от источ- ника. В раскрывающемся списке Distribution из свитка Intensity/Со or/ Distr bution (Интенсивность/Окрасу/ Распределение) можно выбрать тип источника по диа- грамме распределения силы его света изотропный (Isotropic), прожекторный (Spotlight) или паутинчатый (Web). При изотропном распределении свет равномерно распространяется во всех направлениях При прожекторном распределении луч све- та получается сфокусированным а параметры Hotspot/Beam (Яркое пятно/Луч света)
Глава 5. Нововведения в визуализации 135 и Falloff/Field (Спад/Поле действия) из свитка Spotlight Parameters (Параметры про- жектора) определяют самую яркую точку и спад интенсивности света на краях его лу- ча. Паутинчатое распределение силы света носит более сложный характер и требует загрузки специального файла для определения интенсивности света в окружающем трехмерном пространстве. Файлы паутинчатого распределение силы света могут быть представлены в форматах фотометрических профилей по стандартам IES (Illuminating Engineering Society— Общество инженеров-светотехников), CIBSE (Chartered Institution of Building Services Engineers — Институт дипломированных ин- женеров коммунальных услуг) или LTLI (Датская лаборатория освещения). Если фо- тометрический профиль отсутствует в папке 3dsmax7\maps, соответствующий файл молено получить у конкретного производителя осветительного оборудования, загру- зив его, в частности, из Internet (рис 5.2). Рис. 5 2 Файл фотометрического паутинчатого профиля освещения может быть представлен в стандартных форматах IES, CIBSE и LTLI Свиток mental ray Shadow Map В предыдущих версиях 3ds max полупрозрачные тени, отбрасываемые полу- прозрачными или же совершенно прозрачными объектами, можно было полу чать только при выборе типа теней Ray Traced Shadows (Тени, формируемые ме- тодом трассировки лучей) из свитка General Parameters (Общие параметры) ис точника света. А стандартный метод проецирования карты теней давал только сплошные, ровно окрашенные тени
136 Часть I. Нововведения в 3ds max 7 В версии 3ds max 7 появился дополнительный свиток mental ray Shadow Мар (Карта теней для модуля mental ray) (рис. 5.3), который позволяет настроить режим визуализации прозрачных теней, формируемых методом проецирования карты те- ней. Благодаря этому новому свойству прозрачные объекты, освещаемые источни- ком света, в котором данное свойство активизировано, могут отбрасывать прозрач- ные и полупрозрачные тени (рис. 5.4). А параметр Filter Color (Цвет фильтра), уста- навливаемый в материале такого объекта, определяет окраску' отбрасываемой тени. Рис. 5.3. Если в свитке General Parameters ис- точника света выбран тип тени mental ray Shadow Мар и установлен флажок Shadows On активизирующий тени, появляется до полнительныи свиток mental ray Shadow Map, в ото ом с помощью флажка Enabled из об- ласти Transparent Shadows устанавливается режим формирования прозрачных теней Рис. 5.4. Визуализированный персонаж Чертово яйцо имеет стеклянный вид и от- брасывает полупрозрачную тень благодаря активизированному режиму формиро вания теней mental ray Shadow Map
Глава 5. Нововведения в визуализации 137 Панель инструментов Render Shortcuts Оперативно доступные параметры визуализации позволяют быстро выпол- нить настройку в диалоговом окне Render Scene в соответствии с тремя разными наборами предварительно заданных параметров А, В и С. Для доступа к этим наборам параметров на перемещаемой панели инструмен- тов Render Shortcuts щелкните правой кнопкой мыши на пустом участке основ- ной панели инструментов и выберите команд}7 Render Shortcuts из всплывающего контекстного меню. Перетащите панель инструментов Render Shortcuts вверх, пристыковав ее снизу к основной панели инструментов (рис. 5.5). Панель инструментов Render Shortcuts Рис. 5.5 Панель инструментов Render Shortcuts, перемещенная вверх и пристыко ванная снизу к основной панели инструментов | СОВЕТ____________________________________________________________________ Если пристыковать панель инструментов Render S ortcuts сверху, выбрав коман- ду Тор из контекстного меню, вызываемого щелчком правой кнопкой мыши, она скрое ся за основной панелью инструментов, а не пристыкуется к ней снизу. В таком случае пристыкуйте данную панель методом перетаскивания. В следующем упражнении демонстрируется применение свойства Render Shortcuts для присваивания кнопкам А, В и С на данной панели инструментов оперативно доступных параметров визуализации, включая и установку средств визуализации. 1. Убедитесь в том, что в свитке Assign Renderer (Назначение средства визуали- зации) из вкладки Common (Общие параметры) диалогового окна Render Scene в качестве текущего выбрано стандартное средство визуализации с по- строчной разверткой (Default Scanline Renderer). В противном случае ще пе- ни к- на кнопке с меткой “...” справа от раскрывающегося списка Product on (Производство) и выберите средство визуализации Default Scanline Renderer из списка в открывшемся диалоговом окне Choose Renderer (Выбор средства визуализации) (рис. 5.6).
138 Часть I. Нововведения в 3ds max 7 Рис. 5.6. Установка стандартного средства визуали- зации с построчной разверткой в качестве текущего средства визуализации в том случае, если в текущий момент выбрано средство визуализации mental ray 2. Нажмите клавишу <Shift> и щелкните па кнопке оперативного выбора па- раметров визуализации, обозначенной меткой А на панели инструментов Render Shortcuts (рис. 5.7) Рис. 5.7. Нажмите клавишу < Shift > и щелкни- те на кнопке А, чтобы назначить ее для опера- тивного выбора параметров визуализации В раскрывающемся списке справа от кнопок А В и С появится буква “а” указывающая на то, что кнопка А назначена для оперативной установки стандартного средства визуализации с построчной разверткой. Аналогич ным образом назначьте далее оперативную установку средства визуализа- ции mental ray для кнопки В 3. Выберите средство визуализации mental ray в свитке Assign Renderer
Глава 5. Нововведения в визуализации 139 4. Нажмите клавишу <Shift> и щелкните иа кнопке оперативного выбора пара- метров визуализации, обозначенной меткой В. В раскрывающемся списке справа от кнопок А, В и С появится буква “Ь”, указывающая на то, что кнопка В назначена для оперативной установки средства визуализации mental ray. 5. Для обоих средств визуализации по умолчанию установлены выходные размеры изображения 640x840. Однако пробную визуализацию лучше вы- полнять при меньших размерах ради экономии времени. Поэтому для кнопки С можно назначить установку меньших размеров изображения. Для этого щелкните на кнопке с меткой 320x240 в области Output Size (Выходной размер) из свитка Common Parameters диалогового окна Render Scene (рис. 5.8), а затем щелкните на кнопке С. Ь агодаря этому упрощает- ся переход от размеров изображения при пробной визуализации к его раз- мерам при окончательной визуализации и обратно. Render Scene: mental ray Renderer Indirect Ifcminati.. Processing Fie er'E ments | Renderer | Common acameter , • } r Time Output-—“—*—:......:----;-----:----7—-------j ’ Common-. Srgie Every Nth f erne: j t C Active Time Segment C To 00 C Range. [O C] To | 00 Cj File Number Base' |(i C Frames . |l .3 5.-12 ' Output S и |c stem 3 ApertureWfdthfmmJ j 35 0 £} Width (320^ Height |W" гладе Aspect 11.333 ЗЖ® 720x486 I 640x480 I 800x600 | i Рис. 5.8. Установка выходных размеров изображения 320x240 6. Для проверки правильности действия кнопок оперативного выбора пара- метров визуализации создайте чайник в окне вида в перспективе, выберите предварительно заданные параметры визуализации “а” из раскрывающего- ся списка на панели инструментов Render Shortcuts, щелкните на кнопке Load (Загрузить) и нажмите комбинацию клавиш <Shift+Q>. С другой сто- роны, щелкните на кнопке А для оперативного выбора параметров визуа лизации и нажмите комбинацию клавиш <Shift+Q>. В любом случае выпол- няется быстрая визуализация в окне вида в перспективе с использованием стандартного средства визуализации с построчной разверткой. 7. Щелкните на кнопке В и вновь выполните быструю визуализацию В этом случае выбирается средство визуализации mental ray и выходные размеры изображения 640x840. 8. Щелкните на кнопке С и еще раз выполните быструю визуализацию На этот раз средство визуализации mental ray выводит изображение разме- рами 320x240.
140 Часть I. Нововведения в 3ds max 7 Оперативный доступ к параметрам визуализации обладает рядом других свойств. При оперативной загрузке предварительно заданных параметров визуализации мож- но выбрать конкретную категорию, к которой они принадлежат (рис. 5.9). Подобным образом разные категории предварительно заданных параметров становятся оперативно доступными в определенном сочетании. Так, если в теку- щий момент выбраны предварительно заданные параметры “с”, то для загрузки выходного размера изображения из набора параметров “а” достаточно выбрать категорию Common (рис. 5.10). 3d$max.$ca*T8ne no.advanced lighting drak 3dsmax.$canhne no. advanced.lighng.igh 3d$max.scarAne radxKily.dfaft 3d sm ax scanline jediosity.high mental tap.hidden.kne contours mental rap no gidraft mentaUap nogah** Рис. 5.9. Оперативная загруз-- ка предварительно заданных параметров визуализа ии Рис. 5.10. Выбор категории Common из оперативно доступного набора предва- рительно заданных параметров “а” для загрузки в набор параметров “с" Если предварительно заданные параметры были назначены так, как описано выше, то в результате средство визуализации mental ray будет выводить изобра- жение размером 640x480. Это все равно, что выбрать предварительно заданные параметры “Ь”. Если нажать клавишу <Shift> и щелчкнуть на кнопках А, В и С, то можно переназначить новые оперативно доступные параметры визуализации. Модификатор Renderable Spline В 3ds max визуализации подлежат только объекты, состоящие из многоуголь- ной геометрической формы. Источники света, камеры, вспомогательные объек гы и пространственные исказители вообще не визуализируются, поскольку они не состоят из многоугольников. А сплайны визуализируются только в том слу- чае, если в свитке Rendering установлен флажок Renderable (Визуализируемый). В этом режиме сплайны преобразуются в геометрическую форму, состоящую из многоугольников, что дает возможность устанавливать толщину сплайна и число его сторон. Но такой подход не лишен недостатков. Например, круг большой толщины визуализируется как примитивный тор (рис. 5 11). С помощью утилиты File Link Manager сплайновые объекты можно присоеди- нить к сцепе и сделать их визуализируемыми, установив флажки Renderable и Display Render Mesh (Показывать визуализированный каркас) во вкладке Ren- dering диалогового окна данной утилиты (рис. 5.12).
Глава 5. Нововведения в визуализации 141 Рис. 5.11. Круг толщиной 20 после визуализации в режиме Renderable похож, скорее, на тор Рис. 5.12. Для свя ывания этой геометр ческой формы со сценой во вкладке Rendering диалогового окна File Link Manager установлены флажки Renderable и Display Render Mesh
142 Часть I. Нововведения в 3ds max 7 Но в этом случае все визуализируемые сплайны, присоединяемые с помощью утилиты File Link Manager, получаются одного и того же размера. Новый модификатор Renderable Spline (Визуализируемый сплайн) позволяет выбрать те сплайны, которые будут визуализированы, и те, что не должны быть визуализированы, что делает более удобным процесс подготовки подобных объ- ектов к визуализации. Для визуализации нужно просто отобрать соответствую- щие сплайны, связанные со сценой, установив или же сбросив флажок Renderable в модификаторе Renderable Spline, применяемом к этим объектам. Модификатор Renderable Spline предоставляет больше возможностей для подготовки сплайнов к визуализации, чем утилита File Link Manager (рис. 5.13). Рис. 5.13. Для этого сплайна в свитке параметров нового модификатора Renderable Spline установлен флажок Renderable и выбрана соответствую- щая толщина Кроме того, модификатор Renderable Sp ine может быть распространен в виде экземпляров на многие сплайны — даже па те, что не находятся в связанных фай лах. Благодаря этому установка или сброс флажка Renderable для одного сплайна будет оказывать влияние на все остальные сплайны. Режим Motion Blur для источников света и камер В версии 3ds max 7 режим Motion Blur (Размытость движения) теперь доступен для источников света и камер, эффекты которых поддерживаются в средстве ви- зуализации mental ray. Достаточно подвергнуть анимации положение или враще-
Глава 5. Нововведения в визуализации 143 цис камеры либо источника света, и движущееся изображение окажется в итоге размытым. Эффект размытости света от подвижного источника хорошо заметен в области теней, отбрасываемых объектами, освещаемыми на сцене этим источ- ником света. В следующем упражнении демонстрируется порядок визуализации подвижных теней. 1. Сбросьте флажок Enable в области Shadow Maps из свитка Shadows & Ds- placement (Тени и смещение) во вкладке Renderer диалогового окна Render Scene для выбранного средства визуализации mental ray, иначе результаты получатся неприемлемыми. В отсутствие размытости движения при освс щении объекта подвижным источником света получаются очень четкие те- ни с резко очерченными краями (рис. 5.11). Рис. 5.14. Персонаж Чертово яйцо, визуализированный при отключенном режиме фор- мирования теней методом проецирования карты теней. В итоге тени получаются резкими и имеют ровные края 2. Введите размытость движения. Для этого разверните свиток Camera Ef- fects (Эффекты камеры) во вкладке Renderer и установите флажок Enable в области Motion Blur.
144 Часть I. Нововведения в 3ds max 7 3. Установите новый флажок Blur All Objects (Размыть все объекты) в области Motion Blur. Этот режим автоматически оказывает влияние на свойство раз- мытости всех объектов, включая источники света и камеры. Благодаря ус- тановке флажка Blur All Objects отпадает потребность устанавливать данное свойство вручную для каждого объекта в отдельности, а значит, экономится время, причем экономия времени зависит от сложности сцепы (рис. 5.15). При установленных выше параметрах тени от оживляемого источника полу- чаются размытыми. Такая размытость будет тем больше, чем дальше тени залега- ют от источника света (рис. 5.16). Рис. 5.15. После активизации режима Mot on В ur находящиеся на сцене объек- ты становятся размытыми
Глава 5. Нововведения в визуализации 145 Рис. 5.16. Тени, отбрасываемые стопами персонажа, оказываются более резкими чем тени от верхней части его тела. Эффект размытости движения тени перемещается по горизонта- ли вместе с источником света, и поэтому тени от рук также размываются по горизонтали Утилита Assign Vertex Colors Средство визуализации по методу излучательности имитирует взаимодействие ис- точников света с окружением. Так, если белый объект находится в комнате с синими стенами и оранжевым потолком, верхняя сторона этого объекта приобретает оран жевый оттенок, а боковые стороны синий в результате рассеянного отражения све- та от стен и потолка. Однако метод излучательности, несмотря на то, что его приме- нение весьма желательно в сцепах, не лишен недостач ков и ограничений. Визуализация по методу излучательности одного кадра выполняется относи- тельно быстро, однако перед визуализацией каждого последующего кадра при- ходится всякий раз получать решение излучатсльности для всей сцены, а для этого требуется немало времени, особенно в сложных сценах. Кроме того, ме- тод излучательности требует, чтобы объекты строго находились па своих мес- тах и не двигались после того, как будет получено решение излучательности В противном случае текстуры приобретут хаотичный и неприемлемый вид. Это ограничение можно обойти, установив флажок Regather Indirect Illumination (Повторить выборку данных освещения отраженным светом) из свитка Ren- dering Parameters во вкладке Advanced Lighting (Усовершенствованное освеще- ние) диалогового окна Render Scene Но при этом повое решение излучатель-
146 Часть I. Нововведения в 3ds max 7 пости будет формироваться для каждого кадра, а следовательно, намного за- медлится визуализация всей сцены Утилита Assign Vertex Colors (Назначение цветов вершин) позволяет выполнять анимацию задним числом, чтобы исключить упомянутые выше недостатки визуали- зации или ее чрезмерное замедление. К сожалению, в модуле mental ray утилита As- sign Vertex Colors не поддерживается, поэтому ее можно использовать только при установленном стандартном средстве визуализации с построчной разверткой. НА ЗАМЕТКУ Цвета могут назначаться как для вершин, так и для граней Назначение цветов по граням (Color by Face) осуществляется менее точно, хотя расчеты произво- дятся быстрее А при назначении цветов по вершинам (Color by Vertex) во внима- ние принимается каждая вершина грани, поэтому данный метод оказывается точнее, хотя расчеты производятся медленнее. Основная последовательность операций такова 1. Организуйте освещение сцены. 2. Получите решение излучательности 3. Выполните сведение цветов вершин с помощью утилиты Assign Vertex Colors. 4. Выполните, если требуется, дополнительную анимацию 5. Выполните окончательную визуализацию. Решение излучательности формируется во вкладке Advanced Lighting диалогово- го окна Render Scene При выборе кнопки Start расчитывается освещение сцены и формируется решение излучательности. Время, необходимое для такого расчета, зависит от масштабов сцены, количества источников света в ней и уровня точно- сти, определяемого парамегром Initial Quality (Первоначальное качество). Как только будет получено решение излучательности, необходимо открыть утилиту Assign Vertex Colors, выбрав ее из списка утилит, доступного с помощью кнопки More панели Utilities. В предыдущей версии 3ds max окончательная выборка производилась по цветам вершин, и ее нельзя было пропустить. А в версии 3ds max 7 доступен вариант Radiosity, Reuse Drect Illumination from Soluton (Повторно использовать данные ос- вещения прямым светом из полученного решения излучательности), благодаря кото- рому расчеты производятся быстрее а окончательная выборка опускается. Если же окончательная выборка использовалась для формирования решения излучательности и ее требуется произвести по цветам вершин, следует выбрать вариант Radiosity Ren- der Direct Illumination (Визуализировать освещение прямым светом по методу излуча- телыюсти). Опустив окончательную выборку', можно ускорить расчеты, хотя и за счет ухудшения качества визуализированного изображения При выборе кнопки Assign to Selected (Назначить для выделенного) производится сведение полученного решения излучательности в цвета вершин выделенного объекта (рис 5.17). После того как будут назначены цвета вершин, в стеке модификаторов выде- ленного объекта появится модификатор VertexPaint Это дает возможность от- корректировать цвета вершин Добившись удовлетворительного результата та-
Глава 5. Нововведения в визуализации 147 кой коррекции, введите карт}' Vertex Color на позиции карты цвета рассеяния (Diffuse Color) в материале выделенного объекта и визуализируйте сцену Теперь цвета вершин можно назначать на уровне модификатора VertexPaint, используя те же средства, что и в утилите Assign Vertex Colors (рис. 5.18). | TorusCl Щ Charnel---------—-—---------i Vertex Cokx Г Vertex IBum Г Vertex Alpha Г Map Channel l~i! Name: -none- Ltght Model---------——— bfihtmg * Diffuse Г bsftmgOrty C diffuse Only j- Cufef assignment-•-------— Cokx by Face 4® Cola by Vertex j- Rendenpg Options--------- Г shadows ’ | Г* Mapping C No Rarfesrty | <® Radjoaty- Reuse Direct | :!8ucn.- Irom Solution C. Radiosity, Render Direct йипмпейоп C Radiosity. Indirect Bum. Oruy Reminder | ’ Regatherrng scShab'ed Radiosity Setup,.. | Рис. 5.18. В версии 3ds max 7 свиток Assign Vertex Colors модификатора VertexPaint был дополнен новыми ре- жимами визуализации, согласующи- мися с аналогичными режимами из утилиты Assign Vertex Colors Рис 5.17. Выберите кнопку-переключа- тель Radiosity, Reuse Direct Illumination from Solution из свитка утилиты Assign Vertex Colors на панели Utilities, чтобы назначить цвета вершин для выделенного объекта В модификаторе VertexPaint имеется также возможность для размытия цветов вершин. Благодаря такому размытию отчасти сглаживается нежелательная воло- сатость или чрезмерная резкость краев па границах цветовых переходов однако излишняя размытость приводит к ненужному смазыванию на тех участках кото- рые должны быть резкими. Поэтому размытие сглаживаемых участков следует выполнять только один или, в крайнем случае, два раза (рис. 5 19).
148 Часть I. Нововведения в 3ds max 7 Рис. 5.19. Персонаж Чертово яйцо, визуализированный с цветами вершин, размытыми в модифи- каторе VertexPaint. Для окончательной визуализации решение излучательности не потребовалось, несмотря на то, что метод излучательности использовался для формирования цветов вершин Резюме Новые средства и усовершенствования в версии 3ds max 7 позволяю! экономить время па подготовке и визуализации сцен. В частности, предварительно заданные фотометрические источники света упрощают организацию подходящего освеще- ния сцен. Тени, визуализируемые в модуле mental ray, теперь могут быть частично прозрачными. Предварительно заданные параметры визуализации, оперативно доступные на панели Render Shortcuts, намного ускоряют переход от одних пара метров и режимов визуализации к друтим без дополнительной их настройки. Ви- зуализация сплайнов теперь организована более эффективно благодаря новому мо- дификатору Renderable Spline. Режим размытости движения в модуле mental ray по- зволяет получать более качественные тени от подвижных источников света и вво- дить эффекты размытости в изображение вследствие движения оживляемой камеры. И, наконец, метод излучательное ги значительно усовершенствован благо- даря тесному' взаимодействию с режимом назначения цветов вершин.
Часть II Управление 3ds max 6 Написание сценариев
Гл а в а 6 Написание сценариев Джон Сигалл Художники не любят заниматься рубинными задачами в трехмерной среде. В конце концов, компьютеры для того и существуют, чтобы выполнят ь подобные малоприятные для творческих личностей задачи. Но это в идеале, а в действи- тельности нередко бывает иначе, кбгда приходится до поздней ночи править сцепы, чтобы сдать работ}' в срок. (Если ваши наивные прсдс гавлсния о безгра- ничных возможностях вычислительной техники еще не развеялись, сделайте за- кладку на этой главе, чтобы в свое время вернуться к ней и прочитать ее еще раз.) Инструменты 3ds max замечательны, но иногда кажется, что они работают не совсем так, как хотелось бы в данный момент. А еще лучше, если бы у художника было такое чудодейственное средство, которое не заставляло бы его засиживать- ся допоздна за работой и вовремя ложиться спать. В подобные моменты всякому художник}' хочется стать хоть на мгновение волшебником, чтобы изобрести так необходимое ему средство. Но, к счастью, для этого не нужно быть волшебником, поскольку в вашем рас- поряжении уже находится такое замечательное средство, как язык написания сценариев MAXScript, иногда еще называемый MXS. Если у вас имеется счастли- вая возможность работать вольным художником или же на студии (в частности, техническим постановщиком), значит, вам уже известны сильные стороны языка MAXSciipt, хотя одна лишь мысль о написании программы может по-прежнему вызывать у ва неприятные ассоциации. Многие художники внутренне сопротивляются перспективе написания сцена- риев MAXScript. Им этот предмет кажется слишком технически сложным, а по- том}' и не очень приятным для изучения и практически бесполезным из за малого опыта программирования, который они не очень-то стремятся приобрести. Все эти опасения вызваны двумя сторонами медали MAXScript: с одной сторо ны, это готовые, отлаженные сценарии, написанные опытными техническими постановщиками или же доступные для загрузки из Internet, а с другой — интерак тивный приемник команд (Listener), в котором можно вводить команды 3ds max для манипулирования сценами. Что касается первой стороны, то большинство пользователей, нс имеющих опыта написания сценариев MAXScript, пугает один лишь вид кода относительно сложного сценария. Но с другой стороны, MAXScript нетрудно освоить в диалоговом режиме, в чем, собственно, и состоит его основ- ная польза для обычного художника, работающего в условиях производства.
152 Часть II. Управление 3ds max Поначалу подобные опасения в отношении MAXScript возникали и у меня са- мого. Но однажды мне пришлось решать сложную производственную задач}', ко гда клиент попросил меня смоделировать сооружение, покрытое десятками ты- сяч наполовину произвольно ориентированных панелей. Система частиц для этой цели не годилась, поскольку' она могла дать слишком произвольные резуль- таты, а моделирование панелей вручную значительно отдалило бы сроки выпол- нения заказа, не говоря уже о том, насколько это был бы адский труд. Времени на раздумья у меня не было, и я тотчас же обратился к справочному' руководству и учебному материалу по MAXScript, а также за советами к опытным участникам форума по MAXScript, организованного компанией discreet. И через пару дней методом проб и ошибок мне все же удалось получить нужный блок кода. Этот опыт открыл мне глаза на то количество операций, которые приходилось повторять изо дня в день и которые можно было бы автоматизировать средствами MAXScript. Поначалу' я тратил на программирование не меньше времени, чем на выполнение этих операций вручную, по вскоре я обнаружил, что открытие окна Listener и ввод одной или двух строк кода стали для меня столь же естественными и важными аспектами работы в 3ds max, как и доступ к модификатору или утилите. Изучение MAXScript, по существу, преследует одну' цель рационализировать работу с 3ds max в диалоговом режиме. Даже скромные познания в MAXScript по зволяют общаться с 3ds max на языке этого приложении. Аналогично, знание иностранного языка (пусть и несовершенное) позволяет избежать многих ослож- нений и неприятностей во время пребывания за границей. Возможности MAXScript будут представлены в этой главе с двух точек зрения: изучение диалоговых команд MAXScript для выполнения типичных операций и создание простых утилит для получения общего представления об особенно- стях инструментов, работающих по сценарию. Таким образом, эта глава разделе- на на две следующие части. • Рационализация труда. Изучение основ MAXScript для автоматизации ти- пичных рутинных задач. В этой части даются основы программирования для тех кто вообще не знаком с MAXScript, и уделяется основное внимание построчному вводу команд сценария в окне Listener. • Настройка рабочей среды. Создание элементов пользовательского ин терфейса, специально настраиваемых на конкретный рабочий процесс. В этой части представлены основы создания более длинных сценариев и рассматривается применение визуального редактора Visual MAXScnpt (VMXS) для создания интерфейсов этих сценариев. В данной части будут созданы две экономящие время утилиты, одна — для автоматической настройки параметров предварительной визуализации, а другая — для замены утилиты Color Clipboard и пристыковки к основной панели инструментов Основное внимание в этой главе уделяется особенностям планирования и на- писания кода сценария MAXScript. Назначение данной главы не сделать из вас технического постановщика (для углубленного изучения MAXScnpt имеется не- мало подходящего учебного материала), а снабдить вас простыми инструмента- ми помогающими решать рутинные задачи и рационализировать ваш труд.
Глава 6. Написание сценариев 153 Настройка на нужный лад Для того чтобы MAXScript стал эффективным инструментом вашей рабочей среды, вам, возможно, придется выработать в себе ряд новых привычек. В этом разделе даются некоторые рекомендации относительно подхода к написанию ко- да любого сценария перед тем, как углубляться в подробности данного процесса. Начните с псевдокода Псевдокод — это код, не имеющий прямого отношения к конкретному языку программирования. Он представляет собой ряд инструкций для написания сце- нария. Псевдокод может быть даже важнее самого кода. Ведь если ясна логиче- ская последовательность выполнения сценария, то остается лишь правильно представить ее в синтаксисе языка MAXScript. С художественной точки зрения данный процесс выглядит следующим образом: после того, как будет составлена общая композиция произведения, можно уделить внимание ее деталям. Пользуйтесь справочным руководством по MAXScript Значение оперативной справки трудно переоценить. При написании сценария я лично очень часто обращаюсь к этому справочному документу. Справочное руко- водство по MAXScript, доступное с помощью команды Help^MAXScript Reference, в какой-то степени напоминает словарь иностранного языка, поскольку вы пользуе- тесь им для правильного перевода псевдокода на язык сценария MAXScript. Справка оказывается менее полезной, когда возникают вопросы, касающиеся общей сгрукгуры программы, хотя в версии 3ds max 1 в оперативную справку по MAXScript включен целый ряд наглядных примеров программирования на языке MAXScript. Оперативно доступная справка по MAXScript позволяет также выяснить, что можно и чего нельзя включать в сценарий. Далеко не все функции 3ds max могут быть включены в сценарий, особенно это касается тех частей данного приложения, которые мало изменились с момента внедрения языка MAXScript в версии 2. В по- добных случаях па помощь приходит оперативная справка, позволяющая сэконо- мить немало бесплодных усилий Так, в статье loft оперативной справки указано, что составные объекты лофта не могут быть построены по сценарию MAXScript. Не стесняйтесь пользоваться готовыми сценариями Если вы не знаете, как автоматизировать конкретную задач}', попробуйте най ти подходящий готовый сценарий, выполняющий аналогичные функции, и при- способьте его под свои нужды. Это весьма распространенная практика, позво- ляющая сэкономить время, затрачиваемое на переписывание большей части ко- да, чтобы не изобретать его снова. Кроме того, анализируя структуру готового сценария, можно изучать новые методы решения отдельных задач или оптимиза- ции самого кода сценария. Следует, однако, иметь в виду что если большая часть кода сценария или даже несколько функций написаны кем-то другим, то ради приличия необходимо упомянуть автора заимствованного кода в своем сценарии. Прежде всего ознакомьтесь с условиями лицензионного соглашения, которые
154 Часть II. Управление 3ds max обычно сопутствуют готовому сценарию, чтобы убедиться в том, что автор не возражает против использования кода его сценария, или же обратитесь к нему за разрешением по электронной почте. Кто знает, возможно, автор готового сцена- рия окажет вам дополнительную помощь в написании вашего собственного сце- нария. Готовые сценарии, написанные пользователями 3ds max, можно, в частно- сти, найти по адресу www. scriptspot. com. Пользуйтесь макрорегистратором, но не полагайтесь на него полностью В меню MAXScript имеется команда Macro Recorder (Макрорегистратор), реги- стрирующая команды, которые выбираются для выполнения из интерфейса 3ds max. Так, если требуется написать сценарий по созданию сферы, активизируйте Macro Recorder и создайте сферу, выбрав соответствующую команду в интерфей- се. В Macro Recorder будет зарегистрирована команда аналогичная следующей (для ее просмотра откройте окно MAXScnpt Listener): Sphere radius:6.57503 smooth:on segs-32 chop:0 slice:off sliceFrom:0 sliceTo:0 mapCoords:on recenter:off pos:[-2.50576 -0.672316,0] isSelected:on Если вы хотите создать сферу по сценарию, то теперь у вас есть пример кода для решения подобной задачи. Для написания простых сценариев аналогичным образом достаточно сначала зарегистрировать целый ряд событий, а затем пере- тащить записанный текст сценария из Macro Recorder на панель инструментов, где появится соответствующая кнопка. После нажатия этой кнопки будут повто- ряться записанные действия. НА ЗАМЕТКУ В Мас о Recorder не регистрируются все действия, которые могут быть введены в сценарий, а кроме того, код этих действий далеко не всегда формируется пра- вильно. В некоторых случаях Macro Recorder предоставляет еверную информа- цию, а зачастую регистрируемые команды содержат много дополнительных пара метров Поэтому Macro Recorder следует использовать по прямому назначению Так, если действие не записано в Macro Recorder или же не выполняется после вставки в сценарий, обратитесь за помощью к справочному руководству чтобы внести необходимые поправки в сценарий и сделать его работоспособным Старайтесь по мере необходимости обобщать код сценария В условиях производства нередко приходится писать сценарии для конкрет- ной рабочей ситуации. Допустим, что аниматору требуется переместить на по- верхности 10 объектов определенным образом. Для этой цели можно написать сценарий, жестко закодировав в нем 10 перемещаемых объектов Такой сценарий пишется быстрее, поскольку в данном случае не нужно создавать специальный интерфейс, заранее предусмотрев реакцию объектов на действия по сценарию Но, с другой стороны, сценарий получается одноразовым, пригодным только для данного конкретного случая. Если же впоследствии возникнет аналогичная зада- ча, для ее решения придется переписать большую часть кода сценария Следова-
Глава 6. Написание сценариев 155 телыю, учитесь обобщать код или ; елать его более специализированным в зави- симости от конкретной ситуации. Если я не знаю точно, буду ли повторно пользоваться кодом сценария, я снаб- жаю его обширными комментариями и сохраняю его в папке с наскоро написан- ными сценариями. Когда же этот код потребуется вновь, я обобщаю его или же просто вставляю в него другие жестко задаваемые значения, не тратя много вре- мени и труда на выяснение функций данного кода. Пользуйтесь удобным текстовым редактором для написания длинных сценариев В 3ds max встроен текстовый редактор, доступный с помощью комаи ы МАХ- Script"=: New MAXScript однако этому редактору присущи следующие недостатки: если выполнение сценария приводит к аварийному отказу 3ds max, данный сце- нарий теряется, а вместе с ним и большая часть проделанной работы. Поэтому я лично предпочитаю править свои сценарии во внешнем текстовом редакторе, например, в NotePad компании Microsoft, а особенно в TextPad компании Helios Software (www.textpad.com). Текстовый редактор TextPad удобен по следующим причинам: он лучше форматирует код, быстрее и надежнее, чем встроенный в 3ds max редактор, выделяет синтаксис, позволяет выполнять поиск и замену одно- временно в нескольких документах, в том числе и с помощью регулярных выра- жений, а также обеспечивает интерфейс, снабженный вкладками для многих файлов, что удобно для одновременной правки нескольких сценариев. НА ЗАМЕТКУ Без встроенного в 3ds max текстового редактора MAXScript Editor не обойтись, пожалуй, лишь при использовании визуального редактора Visual MAXS ript (VMXS) для создания элементов интерфейса. Ведь визуальный редактор VMXS записывав формируемый им код только в окне редактора MAXScript Editor. Этот код може быть затем скопирован и вставлен в окно текстового редакт pa TextPad. Оц ночная версия текстового редактора TextPad, а также файл MAXScript. syn, необходимый для выделения синтаксиса, находятся в папке \Project Files\ ChO6_Scripting па прилагаемом к этой книге DVD. Следует иметь в вид}', что тек- стовый редактор TextPad — это коммерческий программный продукт, поэтому его не- обходимо зарегистрировать, если вы собираетесь пользоваться им по истечении пе- риода его оценки. Установка текстового редактора TextPad для написания сценариев MAXScript 1. Запустите программу установки текстового редактора TextPad. 2. Скопируйте файл MAXScript.syn из папки \Project Files\ChO6_ Scripting на прилагаемом к этой книге DVD в папку Program Files\ TextPad4\system на жестком диске своего компьютера. (Если на вашем компьютере отсутствует накопитель на DVD, загрузите этот файл из Inter- net по адресу www.textpad.com/add ons/synh2m.html.) 3. Запустите текстовый редактор TextPad и выберите команду Configurer New Document Class (На тройкаГ Создать класс документа).
156 Часть II. Управление 3ds max 4. Введите класс документа MAXScript в окне мастера создания документов и щелкните на кнопке Next (Далее). 5. Введите члены класса * . ms, * . mcr и щелкните на кнопке Next. 6. Установите флажок Enable syntax highlighting (Активизировать выделение синтаксиса), выберите файл MAXScript. syn из раскрывающегося списка и щелкните па кнопке Next 7. Проверьте выбранные варианты установки на итоговом экране и щелкните па кнопке Finish (Завершить). Рационализация труда: основные элементы сценария MAXScript Сценарий MAXScript может взять на себя решение многих рутинных задач во время работы в 3ds max. Имея в своем распоряжении несколько простых команд, можно автоматизировать часто выполняемые операции и даже подойти к реше- нию некоторых рутинных задач совершенно с другой стороны. Назначение этого раздела — не сделать из вас опытного составителя сценариев MAXScript, а снаб- дить вас простыми инструментами, помогающими автоматизировать рутинные задачи, не обращаясь к услугам технического постановщика и не отыскивая гото- вые сценарии па Web-сайте Scriptspot. Для работы со сценарием MAXScript в диалоговом режиме служит приемник команд (Listener), вызываемый командой MAXScriptd>MAXScriptListener. В окне Listener можно вводить команды сценария, чтобы сразу же их выполнять, и в этом же окне выводятся результаты выполнения команд сценария MAXScript (рис. 6.1). Вводимые вручную команды выделяются в окне Listener черным цветом, тогда как реакция MAXScript на их ввод выделяется синим цветом (результаты выполнения команд) и красным цветом (сообщения об ошибках). Для начала вам потребуются следующие основные элементы языка MAXSci ipt. • $ • show • move • rotate (eulerAngles X Y Z) • scale • in coordsys • for • where • classOf • random • # () и [ ] • at time Рассмотрим их по очереди.
Глава 6. Написание сценариев 157 Приемник команд Пользовательский ввод Вывод результатов регистрации действий в Macro Recorder (только для чтения) Результаты выполнения команд сценария MAXScnpt (выделяются синим цветом) Сообщение об ошибке в сценарии MAXScript (выделяется красным цветом) Рис. 6.1. Окно MAXScript Listener Знак $ Знаком $ обозначается текущее выделение. Он наиболее удобен для обозначе- ния только одного выделенного объекта, а если выделено несколько объектов, то он ведет себя несколько иначе. Для чего же нужен этот знак? Пожалуй, для удоб- ства поиска и изменения в сценарии свойств объектов, находящихся на сцене. Доступ к свойствам текущего объекта осуществляется с помощью выражения $.свойство, например $ .radius или $ .height. Аналогично большинству дру- гих элементов 3ds max, свойства организованы в иерархии. Это означает, что од- ни свойства могут иметь другие свойства, разделяемые точками, как, например, $material.diffusemap. coords .U_Tiling, т.е. параметр U Tiling (Мозаичное расположение в поперечном направлении) карты цвета рассеяния (Diffuse Color) в материале выделенного объекта. Если ввести одно лишь имя свойства, в окне Listener появится его значение. Для присваивания нового значения свойству служит выражение $ . свойство - новое_значение. А для ввода относительных значений служат операторы +=, -= и /=, как, например, в выражении $radius /=2, в котором радиус выделенного объекта делится наполовину (при условии, что должно изменяться свойство ра- диуса этого объекта). НА ЗАМЕТКУ При вводе команд сценария MAXScript в окне Listener непреме <но пользуйтесь кла- вишей <Е ter> на вспомогательной цифровой клавиатуре, а не на основной. В пер- вом случае введенная команда всегда выполняется, а во втором — в окне Listener ожидается ввод последующих команд. Если же требуется ввести команды, но не вы- полнять их, пользуйтесь клавишей < Enter> на основной клавиатуре.
158 Часть II. Управление 3ds max Вводимое значение свойства совсем не обязательно должно быть простым числом. Вместо него могут быть указаны математические выражения, другие свойства или даже математические операции над этими свойствами. Для ссылки на конкретный узел после знака $ можно также указать имя объек- та и далее его свойства, например $Вох01.height. Пользуясь метасимволами * и ?, как, например, $Вох*, можно устанавливать свойства для всего перечня выде- ленных объектов данного типа. (Обращение со многими объектами более под- робно рассматривается далее в этой главе.) НА ЗАМЕТКУ | Если в именах объектов имеются пробелы, такие имена следует указывать в оди- ночных кавычках, например $ 'my box'. Команда show Л как узнать, что у объекта имеется какое-то свойство? Как следует из приве- денных выше примеров, у объекта может быть столько свойств, что их имена трудно запомнить. Поэтому для отображения перечня свойств объекта в окне Listener служит команда show. Так, если выделить параллелепипед и ввести ко- манду show $, в окне Lstener появится следующий перечень свойств данного объекта: .height : float length : float .lengthsegs : integer .width : float .widthsegs : integer .mapCoords : boolean .heightsegs : integer false Слева от двоеточия указывается имя свойства, а справа — предполагаемый тип его значения (не обращайте внимания на логическое значение false в конце данного списка — оно не имеет никакого отношения к свойствам объекта). Если попытаться присвоить свойству объекта значение неверного типа, как, напри- мер в выражении $ Sphered 1. radius = false, в окне Listener появится сооб- щение об ошибке. В приведенной ниже врезке поясняются некоторые типы зна- чений, общепринятые в сценариях, а также форматы их присваивания. Следует иметь в виду, что в окне Listener отображаются не все свойства объекта. Все объекты а также определенные классы объектов разделяют некоторые общие свойства, в том числе name (имя), material (материал) и renderable (визуализи- руемый объект), которые ради простоты не отображаются. Это же относится и к свой- ствам модификаторов и ряду других дополнительных свойств. Полный перечень та- ких свойств можно найти в разделе “General Node Properties” (Общие свойства узла), а также в статье “Common Properties, Operators and Methods” (Общие свойства, one раторы и методы) справочного руководства по MAXScript (как видите, оперативная справочная система рекомендовалась выше не зря).
Глава 6. Написание сценариев 159 | НА ЗАМЕТКУ__________________________________________________________ Обозначение некоторых типов переменных, общепринятых в сценариях MAXScript. • integer целое число • float: десятичное число • string: строчное значение, вводимое в двойных кавычках: "hello, world" • boolean: истинное значение (true или on) либо ложное значение (false или off) • point2; координаты по двум осям, вводимые в квадратных скобках и через запятую: [1,2] • point3: координаты по трем осям, вводимые в квадратных скобках и через запятую: [1,2,3] • color: значения RGB, вводимые в круглых скобках, но без запятых после слова color: (color 128 128 128) Если у одних свойств объекта имеются другие свойства, последние также мож- но показать с помощью команды show. Так, если требуется определить порядок просмотра или настройки свойств материала параллелепипеда, необходимо вве- сти команду show $Вох01.material. Если же затем потребуется определить свойства карты цвета рассеяния в материале параллелепипеда, для этого следует найти в перечне свойств, полученных после выполнения предыдущей команды, имя свойства для карты цвета рассеяния и указать его в следующей команде: show $Вох01 .material. dif fusemap, и т.д. Пользование словарем из двух слов Что же такого особенного позволяют делать лишь два упомянутых выше слова, или элемента языка MAXScript, чего нельзя было делать раньше? Они позволяют делать следующее. • Находить и изменять любой параметр объекта, расположенного на сцене, даже если этот объект скрыт, зафиксирован или введен в группу. * • Быстро устанавливать какой угодно параметр любого объекта, включая и ко- пирование параметров из одного объекта в другой и установку значений с ис- пользованием математических выражений. • Одновременно устанавливать свойства многих объектов, используя мета- символы * и ?. Не так уж и плохо для двух слов. А теперь вооружитесь словарем из этих двух слов и попробуйте определить назначение каждой приведенной ниже строки ко- да сценария MAXScript. SBoxOl.height = $Вох02.height $Вох01.height = $Вох01.length = $Вох01.width - 10 $Sphere01.radius = $Box01.height/2
160 Часть II. Управление 3ds max $Вох01.height = 10 $Вох01.ishidden = false $Omni*.mu tiplier /= 2 $Box.material = $Sphere01.material $Spot*.on = false Ниже поясняется назначение каждой приведенной выше строки кода сцена- рия MAXScript. • Установить высоту первого параллелепипеда такой же, как и высота второ- го параллелепипеда. • Превратить первый параллелепипед в куб со стороной 10. • Установить радиус первой сферы равным половине высоты первого парал- лелепипеда (иными словами, сделать оба объекта одинаковыми по высоте). • Установить высоту 10 всех объектов, имена которых начинаются на Box. • Показать все объекты, имена которых начинаются на Box. • Уменьшить наполовину параметр Multiplier (Множитель) для всех объектов- источников света, имена которых начинаются па Omni. • Назначить для всех объектов, имена которых начинаются на Box, матери- ал, назначенный для первой сферы. • Установить логическое значение false параметра on для всех объектов,1 имена которых начинаются на Spot. (Данная строка скорее всего, окажет- ся неработоспособной по причинам, которые поясняются далее в этой гла- ве. Она приведена лишь для того, чтобы показать разнообразие задач, ко- торые допускают автоматизацию по сценарию MAXScript.) Команды move, rotate, scale и контекстный указатель in coordsys А теперь ознакомимся еще с четырьмя элементами, которые можно использо- вать в сценариях MAXScript. Как следует из названий команд move, rotate, scale, они выполняют перемещение, вращение, масштабирование, а контекст- ный указатель in coordsys — выбор системы координат. Необходимо лишь вы- яснить их синтаксис. Для команды move координаты XYZ указываются в квадратных скобках через запятую (это значение типа point3). Так, команда move $Вох01 [10,0,0] перемещает параллелепипед на 10 единиц в положительном направлении по оси X. Следует иметь в виду, что это относительное перемещение. А для абсолютного перемещения служит свойство position выбранного объекта Так, команда $Вох01.position = [10,0,0] перемещает параллелепипед в точку с координатами (10,0,0) мирового про страпства.
Глава 6. Написание сценариев 161 Значения параметров команды rotate указываются несколько сложнее. Для этой цели придется пополнить словарный запас типом значения eulerAngles. Оно заменяет сложные математические выражения для указания параметров вращения в трехмерном пространстве в виде соответствующих углов поворота вокруг осей X, Y и Z. Как и аналогичный контроллер управления по эйлерову вращению (Euler XYZ Rotation), данный способ испытывает серьезные затрудне- ния в связи с произвольным вращением и блокировкой рамки (условием при ко- тором после значительного эйлсрового вращения оси XYZ перестают быть пер пендикулярными в строгом математическом смысле, и поэтому не все виды вра- щения становятся после этого возможными). Тем не менее этим методом удобно пользоваться благодаря его практичности. Так, команда rotate $Вох01 (eulerAngles 90 90 0) поворачивает объект на 9 0° вокруг оси X и еще на 9 0 вокруг оси Y. В команде scale для преобразования используется числовое значение типа point3, как и в команде move, но при этом значение 1 означает масштаб 100%, поэтому команда равномерного масштабирования параллелепипеда па 50% будет иметь следующий вид: scale $Вох01 [.5, .5, .5] По умолчанию все упомянутые выше преобразования происходят в системе мировых координат А для аналогичных преобразований в локальной, родитель- ской или любой другой системе координат соответствующая команда предваряет- ся контекстным указателем in coordsys конкретной системы координат. Так, команда in coordsys local move $Box01 [10,0,0] перемещает первый параллелепипед на 10 единиц по оси X локальных, а не ми- ровых координат. Автоматическое выполнение операций с помощью циклов for А теперь перейдем к рассмотрению, бесспорно, самого важного средства ав- томатизации в MAXScript — цикла for. В псевдокоде он записывается следующим образом: for переменная in список do действия Такой цикл означает следующее: выполнить действие (или последователь- ность действий, включая целый ряд команд или другие циклы) над каждым эле- ментом списка. С этого, собственно, и начинается подлинная автоматизация ру- тинных задач, о которой постоянно идет речь в этой главе. Так, в цикле for i in selection do (i.wirecolor = color 0 128 0) переменная носит имя i (обычно принятое в программировании, хотя оно может быть любым), список представлен ключевым словом selection, которое обозна- чает выделенные в текущий момент объекты, а в качестве действий устанавлива- ется конкретное свойство объекта (в данном случае выбирается ярко-зеленый цвет). В псевдокоде данный цикл записывается следующим образом:
162 Часть II. Управление 3ds max Для (каждого объекта) в (совокупности выделения) выполнить (выбрать ярко-зеленый цвет) Следует иметь в виду, что на каждом шаге выполнения цикла переменная i за- меняет конкретный объект. Таким образом, все действия над одним объектом, в том числе преобразование, запрос, изменение его свойств или любое сочетание этих действий, автоматически распространяются в цикле на весь список объек- тов путем замены знака $ или $имя_объекта на переменную i и указания коман- ды после оператора do. В приведенном выше примере для обработки в цикле for используется список объектов selection, но для этого имеется и много других возможностей, в том числе указание предварительно заданных ключевых слов (objects, geometry lights, cameras, helpers, shapes, systems, sceneMaterials, meditMate- rials и spacewarps), имен с метасимволами, как, например, for i in $Box* do i .height = 10, чисел или явно определенных списков объектов, называе- мых массивами (подробнее об этом речь пойдет далее в этой главе). Имея в своем арсенале цикл for, можно вплотную приступать к автоматизации рутинных за- дач. Так, цикл for i in $*Omni* do (i,multiplier*0.5) означает следующее: ослабить наполовину освещение всенаправленным источ ником света. А цикл for i in selection do i.material = $Box01.material означает следующее: назначить для всех выделенных объектов материал, назна- ченный для первого параллелепипеда. Кроме того, в одной строке цикла for после оператора do можно ввести не- сколько команд, заключив их в скобки и отделив друг от друга точкой с запятой. Так, цикл for i in geometry do (i.motionblur = #image; i.motionBlurOn = true) означает следующее включить режим размытости движения и установить размы тость движения изображений для геометрической формы сцены. НА ЗАМЕТКУ Одна из самых распространенных ошибок, вносимых Macro Recorder в код MXS, за- ключается в использовании знака $ для ссылки на выделенный в текущий момент объект. Знаком $ обозначается конкретный объект, если выделен единственный объект, а в операторе selection — несколько выделенных объектов. Поэтому в по- вторно используемом коде рекомендуется удалить все ссылки, которые делаются с помощью знака $. Для этого, в частности, можно ввести комацдь из Macro Re- corder в тело цикла for и заменить в этих командах знак $ на переменную i Оператор where и команда classOf Рассмотрим следующий ошибочный цикл for, в котором предпринимается попытка выключить все присутствующие на сцене источники света: for i in lights do i.on = false
Г лава 6. Написание сценариев 163 Если сцена содержит какие-нибудь нацеленные источники света, при выпол- нении данного цикла появится следующее сообщение об ошибке: — Error occurred in i loop Frame: i: $Target:SpotOl.Target @ [-11.212518,-15.219044,0.000000] — Unknown property. on" in $Target:SpotOl.Target @ [-11.212518 - 15.219044,0.000000] Проанализируем это сообщение об ошибке построчно. • В коде цикла for с переменной i возникла ошибка. • Если бы это была ошибка анимации, в данной строке был бы указан помер кадра. • Когда произошла ошибка, переменная i обозначала целевой объект SpotOl. Target с указанными координатами • Ошибка состоит в том, что в объекте не было установлено свойство on. Иными словами, ошибка заключалась в том, что, указав ключевое слово lights, мы тем самым включили в цикл for все источники света, но у этих целевых объек- тов отсутствует свойство on. Для исправления данной ошибки необходимо исклю- чить целевые объекты из обработки в данном цикле. Именно для этого служит опе- ратор where и команда classOf Оператор where позволяет отобрать действия для цикла for, введя логиче- ский оператор, проверяемый на истинность па каждом шаге цикла. Если этот оператор истинен на данном шаге цикла, код тела цикла выполняется. В против- ном случае данный шаг цикла пропускается. В простейшем виде такой цикл запи- сывается следующим образом: for i in selection where (false) do действия Этот цикл не выполняется до тех пор, пока условие for i in selection where (true) do действия истинно для каждого выделенного объекта. Для того чтобы извлечь из такого цикла практическую пользу, необходимо ввести после оператора where выражение, определяющее истинное (true) или ложное (false) логическое значение. А для этой цели потребуются дополнительные опера- торы. В табл. 6.1 и 6.2 приведен ряд способов сравнения двух значений. Таблица 6.1. Операторы сравнения числовых значений Знак сравнения Что означает Пример Результат сравнения == Равно 1 == 2 1 == 1 false true I = Не равно 1 != 2 11=1 true false > Больше 1 > 2 2 > 1 false true
164 Часть II. Управление 3ds max Окончание табл. 6. Т Знак сравнения Что означает Пример Результат сравнения < Меньше 1 < 2 true 2 < 1 false >= Больше или равно 1 >= 2 false 1 >= 1 true 2 >= 1 true <= Меньше или равно 1 <= 2 true 1 <= 1 true 2 <- 1 false Таблица 6.2. Операторы сравнения логических значений Оператор Истина, если Пример Результат сравнения and Истинны оба false and false false логические true and false false значения true and true true or Истинны оба false or false false или одно из двух true or false true значений true or true true not Изменяет одно логическое not true false значение на другое not false true Рассмотрим ряд примеров. Так, цикл for i in $Вох* where (i.height > 10) do i.height = 10 означает следующее: установит ь высоту' 10 для всех объектов, которые выше этой величины и имена которых начинаются на Box. А цикл for i in $Вох* where (i.height > 9) and (i.height < 11) do i.height = 10 означает следующее: установить высоту' 10 для всех объектов, высота которых находится в пределах от 9 до 11 и имена которых начинаются па Box. Цикл for i in geometry where (i.material == undefined) do i.isHidden = false означает следующее: показать всю геометрическую форму, для которой не назна- чен материал. И, наконец, цикл for i in shapes where (i.baseobject.renderable == true) do i.name = "RS_" + i.name означает следующее: добавить префикс RS_ в начале имени всех визуализируе- мых сплайнов, чтобы упростить их выделение по имени
Глава 6. Написание сценариев 165 НА ЗАМЕТКУ Свойство renderable сплайнового объекта, доступное с помощью оператора оЬjесt.baseobject.renderable, отличается от аналогичного свойства, являю- щегося общим для всех объектов. Это же относится и к свойству castshadows ис- точников света, которое также может быть как индивидуальным, так и общим для всех источников света. А теперь вернемся к ошибочному циклу for, рассматривавшемуся в начале этого раздела. В данном цикле необходимо организовать проверку типа объекта с помощью команды classOf, введя ее в оператор where. Каждый объект в 3ds max принадлежит определенному классу — категории, компоненты которой разделяют общие сходные параметры и поведение. Парал- лелепипеды и сферы являются классами, которые, в свою очередь, отличаются от класса редактируемого каркаса. Например, при вводе команды classof $Вох01 возвращается значение Box. Аналогично команде show, команда classOf может использоваться для полу- чения справки, но не об именах свойств, а об именах классов. Но в отличие от команды show, эта команда возвращает значение, которое может использоваться при проверке истинности выражения. Так, в результате сравнения в выражении classof $Вох01 == Box возвращается логическое значение true. А для ввода подобного выражения в опе- ратор where его достаточно заключить в круглые скобки. Например цикл for i in geometry where (classof i == Box) do i.height *= 2 означает следующее: увеличить вдвое высоту всех параллелепипедов независимо от их имени. Команде classOf присуща еще одна особенность. Если, например, применить к параллелепипеду модификатор Bend, то команда classof $Вох01 возвращает значение Editable_mesh вместо Box. Имя класса отражает текущее, а не исходное состояние объекта (если отключить модификатор, команда classOf вновь возвратит значение Box). Поэтому для проверки имени класса, исключая все модификаторы, применяется команда classOf $Вох01.baseobject определяющая самый нижний элемент на дне стека модификаторов и возвра- щающая, как и прежде, значение Box. Выключение источников света Итак, поправим рассмотренный ранее пример ошибочного цикла for, ис- пользуя оператор where и команду classOf. Предыдущая попытка выполнить данный цикл для выключения всех источников света на сцене for i in lights do i.on = false
166 Часть II. Управление 3ds max оказалась безуспешной, поскольку нельзя было установить свойство on целевых объектов. Для исправления этой ошибки необходимо внести в цикл поправки, а именно: пропустить в нем целевые объекты Это очень важный и полезный метод пакетной обработки таких объектов, как источники света или камеры. Для его опробования выполните следующее упражнение. 1 Установите 3ds max в исходное состояние 2. Создайте на сцене несколько источников света, включая по крайней мере один нацеленный прожектор (Target Spot) или нацеленный направленный источник света (Тarget D rect) 3. Выделите одну из целей источников света в видовом окне и введите classOf $ в окне Listener. В итоге возвратится имя класса Targetobj ect. 4. Теперь, когда известно имя класса, проверьте на всякий случай правиль- ность полученного выше результата, введя выражение classOf $ == Targetobject при проверке истинности которого возвращается логическое значение true Итак, теперь точно известно, что именно следует указывать в опера- торе where для отсеивания целевых объектов (в данном случае целей ис- точников света). 5. Введите в окне Listener следующий цикл: for i in lights where (classOf i != targetobject) do i.on = false Все источники света выключаются благополучно без каких-либо сообщений об ошибках в окне Listener Теперь вы на практике убедились в истинных возможностях цикла for управ- лять сценой. В частности, по условию в данном цикле можно изменять по очере- ди свойства тысяч объектов. Ниже приведен ряд других полезных примеров при- менения цикла for. Так, цикл for i in cameras where (classOf i != targetobject) do i.inpassenable = true означает следующее: активизировать многопроходные эффекты для всех камер. Цикл for i in geometry where (i.material == $Box01.material) do i.isHidden = false означает следующее: показать все объекты с общим материалом, назначенным для объекта BoxOl. Благодаря этому преодолеваются ограничения, присущие функции кнопки Select by Material (Выделить по материалу) из редактора мате- риалов, которая принимает во внимание только видимые объекты. Цикл for i in geometry where i material == undefined do print i.name означает следующее: вывести имена всех объектов без назначенных материалов. Цикл for i in lights where (classOf i = targetobject) do i.multiplier *- 1.05 означает следующее: увеличить на 5% яркость всех присутствующих на сцене ис- точников света
Г лава 6. Написание сценариев 167 Цикл for i in lights where (classOf i != targetobject) do (i.showCone i.showNearAtten = i.showFarAtten = off) означает следующее: выключить режимы отображения пределов распространения конуса и ослабления света для всех нацеленных прожекторных источников света. И наконец, цикл for 1 in shapes where (i.baseobject renderable == true) do (i.isHidden = false; selectMore i) означает следующее: показать и выде тть все визуализируемые сплайны. Теперь вы можете и сами найти многочисленные примеры применения цикла for для автоматизации наиболее неприятных для вас рутинных операций, так что начните с команды show, чтобы определить нужные вам свойства и объекты, а затем составьте соответствующие циклы for для автоматического управления этими элементами сцены. Случайные числа Получение высококачественных изображений трехмерных сцен зачастую свя- зано с преодолением неприятной особенности компьютера приводить сцену в идеальный порядок и делать ее слишком совершенной. Слишком правильные, упорядоченные и идеально построенные сцены нарушают иллюзию реальности, и поэтому большинство методов из арсенала художников направлено на то, чтобы хоть как-то нарушить идеальность сцены и тем самым вдохнуть в нее жизнь. Од- нако беспорядок, вводимый в сцеггу вручную, не всегда придает ей достаточно произвольный характер. Если вам когда-нибудь приходилось работать с система- ми частиц, значит, вам хорошо известно, что элементы управления случайным распределением частиц играют решающую роль в создании правдоподобного эффекта. В этом отношении команда random является замечательным средством ввода хаоса в отдельные части сцены (разумеется, тщательно контролируемым образом!). Она примеряется следующим образом: random значение 1 значение 2 где оба значения относятся к одному и тому же типу и определяют верхний и нижний пределы допустимого диапазона значений. А теперь можно воспользоваться освоенными уже элементами языка MAX- Script для того, чтобы придать сцене хаотичную правдоподобность. Ввод в сцену хаотичности с помощью цикла for и команды random 1. Откройте сцену из файла \Project Files\ChO6_Scripting\cafe_ start .max на прилагаемом к этой книге DVD Эта сцена содержит экземп- ляры столов и стульев, расставленных с роботоподобной точностью. НА ЗАМЕТКУ Данная сцена организована таким образом, чтобы окно Listener было пристыковано к видовому окну. Для этой цели щелкните правой кнопкой мыши на метке видового окна и выберите из всплывающего контекстного меню команду Views^Extended1^ MAXScript L stener (Виды^Дополнительные^Приемник команд MAXScript).
168 Часть II. Управление 3ds max 2- Визуализируйте сцену в виде из камеры, как показано на рис. 6.2, а затем за- грузите ее визуализированное изображение в капал А средства воспроизве- дения из оперативной памяти, используя кнопку с пиктограммой чайника в диалоговом окне RAM Player. Изменения в данной сцене будут незначи- тельными, поэтому потребуе тся точное сравнение ее вариантов до и после внесения этих изменений. Рис. 6.2. Сцена в кафе выглядит прекрасно, но слишком упорядоченно. Модели мебели вос- производятся с любезного разрешения Скотта Онстотта (ww. scottonstott. com) 3. 11режде всего необходимо добиться того, чтобы расположение ножек всех столов не было совершенно одинаковым. Для этого активизируйте окно Listener и введите в нем следующую строку- кода: for i in $*Table* do rotate i (eulerAngles 0 0 (random -ISO 180)) Приведенная выше строка кода означает следующее: повернуть каждый объект, имя которого начинается на Table, вокрут оси Z на произвольную величину. Рассмотрим более подробно конец упомянутой выше строки кода. Каждая такая строка интерпретируется как выражение. Это означает, что интер- претация завершается определением конкретного значения. Э го также оз- начает, что любая составная часть строки кода может представлять собой отдельное выражение, которое практически ничем не отличается по своим
Глава 6. Написание сценариев 169 функциям от простого значения, поскольку в нем также вычисляется пред- полагаемое значение. Когда интерпретация рассматриваемой строки кода доходит до оператора random, получаемое в итоге значение просто вводится в данном месте кода. Круглые скобки определяют порядок вычислений, как и в обычном матема тическом выражении 2 + 3 * 2 = 8, однако (3 + 3) * 2 = 10. А теперь необходимо немного сместить каждую группу столов па полу. Для того чтобы стулья оставались правильно расположенными относительно столов, их следует переместить вместе. Конечно, это можно было бы сде- лать и но сценарию MAXSci ipt, хотя и с помощью более сложного кода. Од- нако в данном упражнении применяется более простой способ, чтобы не тратить па программирование больше времени, чем на выполнение опера- ций вручную. 4. Выделите каждую группу стульев и свяжите их с ближайшим столом, ис- пользуя инструмент Select and Link (Выделить и связать). 5. Как только стулья будут связаны со столами, введите в окне Listener сле- дующую строку кода: for г in $*Table* do move i [(random -5 5), (random -5 5) 0] Теперь столы расставлены в чуть менее строгом порядке. Как и в предыду- щей строке кода, в данном случае координаты X и Y вычисляются с помо- щью выражений, а координата Z остается равной 0, поскольку все объекты должны оставаться на полу. А сейчас поясним, почему в данной строке использован цикл for вместо команды move $*Table* [(random -5 5), (random -5 5),0] Если выполнить эту команду, выражения с оператором random будут вы- числены только один раз, и одни и те же случайные значения координат X и Y будут применены сразу ко всем объектам. С другой стороны, на каждом шаге цикла for генерируются разные случайные значения этих координат, и поэтому объекты по-разному перемещаются относительно друг друга. Следовательно, в зависимости от конкретной ситуации можно использо- вать любой из этих способов введения в сцену эффекта произвольности. А теперь расставьте стулья в чуть более произвольном порядке В целом их требуется, скорее, выдвинуть или задвинуть, а не просто сместить по гори- зонтали, по для этого команду move следует применить к четырем стульям, расположенным вокруг каждого стола, в локальном пространстве. 6. Как было показано выше, с помощью контекстного указателя in coordsys local преобразования организуются в локальном, а по в мировом про- странст ве Поэтому введите следующую строку кода: for г in $*chair* do in coordsys local move i [(random 63), (random 1 1), 0] чтобы добиться требуемого результата. Стулья выдвигаются и задвигаются в направлении локальной оси X, поэтому в это перемещение вводится
170 Часть II. Управление 3ds max большая произвольность, а в перемещение по локальной оси Y— меньшая произвольноегь. Координата Z, как и прежде, остается равной 0. 7. Измените еще немного ориентацию стульев таким же образом, как это бы- ло сделано ранее со столами, и на этом правку сцены можно завершить: for i in $*chair* do rotate i (eulerAngles 0 0 (random -5 5)) 8. Визуализируйте сцену в виде из камеры и загрузите ее визуализированное изображение в канал В средства воспроизведения из оперативной памяти (рис. 6.3). Рис. 6.3. Незначительная хаотичность, введенная в сцену, придает ей более реалистичный вид Как видите, незначительная хаотичность позволяет вдохнуть в сцен)' больше жизни, не нарушая правдоподобное расположение четырех стульев вокруг каждого стола. Ведь необходимо создать такое впечатление, что ст оды и стулья расставлены обслуживающим персоналом кафе, а не роботами. Возможно, зрители и не заметят особых отличий в данной сцене, однако они непременно их почувствуют. И для этого потребовалось ввести всего лишь четыре строки кода MAXScript! В завершенном виде данную сцепу' можно посмотреть в файле Files\ChO6_ Scripting\cafe_01 .max на прилагаемом к этой книге DVD. Если продолжить работу над этой сценой, то можно расположить, повернуть и масштабировать в произвольном порядке столовые приборы и цветы на столах и т.д.
Глава 6. Написание сценариев 171 Ниже мы рассмотрим еще несколько элементов языка MAXScript, чтобы вы могли во всеоружии приступить к написанию собственных сценариев. Массивы и их обозначения # () и [ ] Массив представляет собой список данных. Обозначаются массивы знаком решетки и круглыми скобками, в которые заключены отдельные элементы масси- ва, разделенные запятыми: myArray = #(SBox01, $Вох02, $ВохОЗ) В приведенной выше строке кода определяется переменная myArray, заме- няющая собой список из трех параллелепипедов. Для доступа к отдельным эле- ментам массива достаточно ввести имя этого массива, а затем его индекс, обозна- чаемый числом в квадратных скобках. Это число обозначает положение в массиве того элемента к которому осуществляется доступ. Так, при вводе строки кода myArray[2] возвращается значение, аналогичное следующему: $Вох: $Вох02 @ [6.800152, 13.702519, 0.000000] А при вводе строки кода myArray[ ] height осуществляется доступ к параметру высоты объекта Вох02. В массивах хранится большинство встроенных структур данных, а благодаря индексу массива они становятся доступными для обработки в цикле for, как, на- пример, в следующей строке кода: for 1 in 1 to 3 do myArray[i].height = i*10 На каждом шаге этого цикла значение переменной i увеличивается па 1 и за- тем последовательно устанавливается высота 10 объекта Вох01, высота 20 объ- екта Вох02 и высота 30 объекта ВохОЗ. Иными словами, с помощью двух строк кода получается простой сценарий для построения лестницы. Используя команду random и встроенный массив meditMaterials, можно аналогичным способом произвольно назначить материалы для группы объектов. Допустим, что в завершающем кадре с толпой из 12 человек для имитации фигу- ры каждого человека используются текстурированные плоскости. С этой целью материалы для фигур 12 человек загружаются на позиции образцов в редакторе материалов, затем выделяются плоскости и вводится следующая строка кода: for i in selection do i.material = meditMaterials[(random 1 12)] В результате вычисления выражения (random 1 12) получается числовой индекс массива, генерируемый случайным образом на каждом шаге цикла, а сле- довательно, первые 12 материалов из редактора материалов произвольно назна- чаются для каждой выделенной плоскости. Стек модификаторов объекта также представляет собой массив, причем эле- мент массива modifiers [1] соответствует вершине стека. Если длина массива неизвестна, для ее определения можно воспользоваться свойством count масси- ва. Так, при вводе строки кода for i in 1 to $.modifiers.count do $.modifiers[i].Enabled = true активизируются все модификаторы выделенного объекта.
172 Часть II. Управление 3ds max При обработке стека модификаторов нескольких объектов возникает потреб- ность в нескольких строках кода, поскольку одна строка становится слишком сложной для чтения и отладки. Для создания многострочных сценариев необхо- димо открыть редактор MAXScript Editor, воспользовавшись командой MAXScript^New Script, вместо окна Listener. Для выполнения кода, введенного в редакторе MAXScript Editor, служит команда F le^Evaluate Al (Файл^Вычислить все), которую следует выбрать из меню в окне этого редактора. for i in geometry where (i.modifiers.count > 0) do ( for j in i.modifiers where ((classOf j == meshsmooth) or (classOf j == Turbosmooth)) do ( j.useRenderlterations = true j.useRenderlterations = 3 j.iterations = 1 ) ) В приведенном выше фрагменте кода круглые скобки и обрывы строк служат для повышения удобочитаемости этого кода. Они позволяют без труда выделять отдельные блоки кода. В первом цикле данного фрагмента кода, как и в предыду- щих примерах циклов for, выполняются определенные действия над выделен- ными объектами. В данном случае это второй цикл for с индексной переменной j выбранной именно так для того, чтобы не путать ее с переменной i, используе- мой в первом, внешнем цикле. В псевдокоде приведенный выше фрагмент кода записывается следующим об- разом: Для всей геометрической формы, по крайней мере с одним модификатором, вы- полнить ( для каждого модификатора MeshSmooth и TurboSmooth данного объекта вы- полнить ( включить в модификаторе режим повторений при визуализации установить в модификаторе число 3 повторений при визуализации установить в модификаторе число 1 повторений при отображении в видовом окне ) ) Во втором, внутреннем цикле for сначала выбирается каждый объект, обо- значенный переменной i, а затем он присваивается в качестве значения пере- менной j. Затем проверяется наличие в этом объекте модификатора MeshSmooth или TurboSmooth. И если таковые имеются, то выполняется ряд операций: уста- навливается флажок Render Iterations (Число повторений при визуализации), значение 3 параметра Render Iterations, а также значение 1 параметра Iterations (Число повторений при отображении в видовом окне). Обратите внимание на две закрывающие скобки в конце данного фрагмента ко- да Для правильного выполнения кода число открывающих и закрывающих скобок должно быть одинаковым. Ввод скобок с отступом повышает удобочитаемость кода и позволяет правильно расставить открывающие и закрывающие скобки
Глава 6. Написание сценариев 173 НА ЗАМЕТКУ После нажатия комбинации клавиш < Ctrl + В > в окне редактора MAXScr pt Edi- tor вьделяется весь текст кода заключенный в ближайшие круглые или квад- ратные скобки. А после нажатия комбинации клавиш <Ctrl + M> в окне тексто- вого редактора TextPad курсор перемещается к ближайшим квадра ным скоб- кам Это удобно для проверки правильности закрытия скобок в тексте кода. Анимация по сценарию MAXScript с помощью оператора at time Итак, достигнут последний основной элемент, необходимый для написания сценариев MAXScript. С помощью оператора at time осуществляется анимация по сценарию MAXScript, а также изменение статических параметров объектов. Этот оператор используется следующим образом: at time кадр после чего следует любой действительный элемент языка MAXScript. При выпол- нении действий по сценарию ключевые кадры будут устанавливаться тогда и только тогда, когда установлен режим Auto Key. НА ЗАМЕТКУ Действие оператора at time равнозначно перемещению ползунка временной шка- лы анимации и выполнению конкретной операции. Если же в интерфейсе 3ds max не установлен режим Auto Key, ключевые кадры не будут устанавливаться при выполне- нии кода сценария. В следующем упражнении возможности оператора at time и ряда других уже известных вам элементов языка MAXScript будут использованы для оперативной анимации объектов. Когда такие детали анимации, как объекты заднего плана или же большое число одновременно оживляемых объектов, не столь существен- ны, анимация по сценарию MAXScript позволяет сэкономить немало времени. Анимация летающей в кафе мебели посредством оператора at time 1. Откроите сцену из файла \Project Files\ChO6_Scr pting\cafe_ haunted_start .max на прилагаемом к этой книге DVD Это та же самая сцена кафе, что и в предыдущем упражнении этой главы, только она немно- го изменена. НА ЗАМЕТКУ Свечение, которое появляется после визуализации сцены, было получено с ис- пользованием эффекта визуализации. 2. По сценарию мебель в кафе должна парить в воздухе словно привидения, но для установки соответствующих ключевых кадров требуется немало времени. Поэтому выберите команду MAXScr pttOpen Script и загрузите
174 Часть II. Управление 3ds max код сценария из файла \Project Files\ChO6_Scripting\haunted_ furniture.ms на прилагаемом к этой книге DVD или же введите в окне редактора MAXScript Editor следующий листинг: for i in $*table* do ( for j in 1 to 3 do ( at time ((j*30) + random -10 10) i.position.z = (random 5 30) at time ( (j*30) + random -10 10) rotate i (eulerangles (random -2 2) (random -2 2) (random -30 30)) ) ) for i in $*chair‘ do ( for j in 1 to 3 do ( at time ((j*30) + random -10 10) in coordsys local move i [(random 2 2),(random -2 2),(random -6 6)) at time ( (j*30) + random -10 10) rotate i (eulerangles (random -2 2) (random -2 2) (random -5 5)) ) ) 3. Включите режим Auto Key. 4. Выполните введенный выше сценарий, воспользовавшись командой File^ Evaluate АН, выбираемой из меню в окне редактора MAXScript Editor. 5. Выключите режим Auto Key. Если вас не удовлетворяют полученные ре- зультаты, дважды выполните команду отмены Undo и вновь запустите сце- нарий па выполнение, чтобы получить другие результаты случайного рас- пределения значений. Данный сценарий представляет собой расширенный вариант сценария для произвольного перемещения стульев и столов из предыдущего упражнения, посвященного вложенным циклам for и произвольным преобразованиям. Это расширение сделано в трех измерениях пространства, а также во вре- мени. В псевдокоде данный сценарий имеет следующий вид: Для всех объектов, имена которых начинаются на Table, ( установить в кадрах 30, 60 и 90 ключевые кадры анимации вращения вокруг оси Z в пределах от 5 до 30 градусов установить в кадрах 30, 60 и 90 ключевые кадры анимации вращения до 2 градусов вокруг осей X и Y и до 30 градусов вокруг оси Z ) Для всех объектов, имена которых начинаются на chair, ( установить в кадрах 30, 60 и 90 ключевые кадры анимации перемещения до 2 единиц по локальным осям X и Y и до 6 единиц по оси Z установить в кадрах 30, 60 и 90 ключевые кадры анимации перемещения до 2 единиц по локальным осям X и Y и до 5 единиц по оси Z
Глава 6. Написание сценариев 175 Очевидно, что конкретные числовые значения в приведенном выше сценарии выбираются из эстетических соображений. Но основная структура этого сцена- рия остается достаточно гибкой. Следует также иметь в виду, что, в отличие от анимации под управлением сис- темы частиц и модификаторов рассматриваемый здесь подход служит лишь в ка честве отправной точки для расстановки ключевых кадров вручную. Так, если требуется привести в движение только три стола, достаточно поправить вручную соответствующие ключевые кадры. Без сценария на подобную анимацию (даже несмотря па то, что она отнюдь не идеальна) пришлось бы затратить немало руч- ного труда. Таким образом, используя лишь несколько элементов языка MAXScript, можно организовать пакетную обработку объектов внести элементы произвольности в сцену и даже сформировать анимацию! Даже эти основы написания сценариев могут служить универсалып.ши и эффективными средствами рационализации труда в 3ds шах. Настройка рабочей среды: создание элементов пользовательского интерфейса Для тех, кто не хочет останавливаться на достигнутом и желает научиться соз- давать собственные инструменты со специальным интерфейсом, в этом разделе представлен процесс создания простого инструмента, который должен работать в режиме перемещаемой и стыкуемой панели. С этой целью будут рассмотрены особенности написания контрольно-проверочного кода, создания прототипа пользовательского интерфейса в визуальном редакторе Visual MAXScript и объе- динения кода с интерфейсом для получения работоспособного инструмента. quickDraft: сценарий для оперативной настройки параметров визуализации Предварительно заданные параметры визуализации, внедренные в версии 3ds шах 6, отлично подходят для манипулирования многочисленными параметрами вывода или многопроходной поэлементной визуализации в крупных проектах, но, па мой взгляд, они замедляют работу всякий раз, когда мне требуется выклкг чить несколько режимов для ускорения пробной визуализации. В той же самой версии окно Render Scene было снабжено целым рядом вкладок, и теперь можно очень легко забыть вновь активизировать выключенные режимы перед продол жительной окончательной визуализацией, что вносит излишнее напряжение в работу. Так нужно ли ждать и надеяться на то, что разработчики 3ds max внесут соот ветствующие коррективы в версии 8? Конечно, нет! Средствами MAXScript не- трудно создать инструменты со специальным интерфейсом. Сценарий, который будет написан в этом разделе, называется quickDraft (Черновик), Он предна- значен для того, чтобы упростить настройку параметров визуализации и тем са- мым сократить число обращений к диалоговому окну Render Scene.
176 Часть II. Управление 3ds max Разработка сценария Сначала необходимо поставить цели разработки аналогично раскадровке ани- мации, чтобы придерживаться поставленной цели, постепенно углубляясь в дета- ли. Разработка рассматриваемого здесь сценария преследует следующие цели. • Управление включенным/выключенным состоянием различных режимов, ускоряющих работу средства визуализации с построчной разверткой. • Быстрый, универсальный доступ к параметрам предварительной визуали- зации. • Компактность интерфейса с учетом ценности полезной площади экрана. Как следует из приведенного выше перечня, реализация двух первых целей разработки сценария не составит большого труда. Нужно лишь точно выяснить, настройку каких именно параметров визуализации должен допускать создавае- мый инструмент. Вот список этих параметров. • Render Hidden Geometry (Визуализировать скрытую геометрическую форму). • Rendered Frame Window (Вывод в окно визуализированного кадра). • Save File (Сохранить в файле). • Elements Active (Активные элементы). • Antialiasing (Сглаживание). • Disable All Samplers (Отключить все выборки). • Shadows (Тени). • Area Lights/Shadows as Points (Поверхностные источники света как точеч- ные и соответствующие тени от них). • Enable Raytracing (Активизировать трассировку лучей). • Atmospherics (Атмосферные эффекты). • Render Effects (Эффекты визуализации). • Displacement (Смещение). • Video Сокэг Check (Контроль цвета видеоизображения). • Auto Reflect/Refract and Mirrors (Автоматическое отражение или преломле- ние и зеркальные отражения). Как видите, список получился довольно длинный. Ради простоты из него был вычеркнут ряд параметров, которые первоначально казались мне полезными, но, по существу, мне лично редко приходится ими пользоваться. Разумеется ваш список параметров визуализации может быть иным. В частности, вам могут по- требоваться режимы размытости движения, а возможно, вы захотите создать аналогичный инструмент для настройки параметров средства визуализации men- tal ray или же другого подключаемого модуля визуализации от независимого про- изводителя. Следует лишь не забывать о главном — рационализации своего труда.
Глава 6. Написание сценариев 177 Контрольно-проверочный код Прежде чем тратить время на создание сценария, целесообразно убедиться в ра- ботоспособности намеченных функций автоматизации в MAXScript. И начинать такую проверку лучше всего со справочного документа по MAXScript. Итак, выпол- ните следующее. 1. Откройте окно Listener, а затем окно MAXScript Reference, выбрав команду Help^MAXScript Reference. 2. В создаваемом сценарии управлению подлежит средство визуализации, по- этому выберите вкладку Search (Поиск) в окне MAXScript Reference, введи те ключевое слово renderer (т.е. средство визуализации) для поиска и щелк- ните на кнопке List Topics (Разделы). Дважды щелкните в появившемся списке на первом разделе “Renderers” (Средства визуализации). НА ЗАМЕТКУ Все найденные экземпляры искомого слова выделяются на странице справочни- ка. Это удобно для поиска конкретной команды в длинном перечне, но в то же время отвлекает внимание, если слово неоднократно появляется на странице. Поэтому вь берите команду Options^*Search Highlig t Off (Параметры1^ Выключить подсвечивание) в окне MAXScript Reference, если требуется избавиться от выде- ления найденных слов. 3 4 5 3. Первым по списку в справочнике следует свойство renderers. current. Введите его в окне Listener, обратив внимание на возвращаемое значение Default_Scanline_Renderer:Default_Scanline_Renderer (при ус- ловии, что в текущий момент выбрано стандартное средство визуализации с построчной разверткой). 4. Перейдите в конец страницы справочника и щелкните на ссылке Default_ Scanlinle_Renderer: Renderclass. Появится страница со свойствами стандартного средства визуализации с построчной разверткой, которые могут быть установлены в сценарии MAXScript. Некоторые из них относятся к приведенному выше списку па- раметров, которые требуется автоматически настраивать по сценарию quickDraf t, например, второе по списку свойство . shadows. 5. Откройте диалоговое окно Render Scene, щелкните на вкладке Renderer, установите в ней флажок Shadows а затем введите в окне Listener следую- щую строку кода: renderers.current.shadows - false После нажатия клавиши <Enter> на вспомогательной цифровой клавиатуре флажок Shadows будет сброшен. Он может быть вновь установлен, если в ука- занной выше строке присвоить логическое значение true свойству . shadows. Таким образом, вы нашли нужный код для автоматического управления флаж- ком Shadows в сценарии и убедились в его работоспособности.
178 Часть II. Управление 3ds max 6. Найдите в справочнике имена остальных проверяемых функций по приве- денному выше списку Некоторые из них перечислены на той же странице справочника, в том числе свойства . antiAliasing, . enabl ePixel Sampler, а остальные, возможно, придется искать в других разделах и, в частности, в разделе “Render Scene Dialog” (Диалоговое окно визуализации сцены). Неко- торые параметры, скорее всего, придется настраивать другим методом, по- скольку они не являются свойствами, подчиненными свойству renderers. current. Здесь недостаточно места для подробных пояснений, поэтому об остальных свойствах см. комментарии к рабочему коду в файле \ Project Files\ChO6_Scripting\quickDraft_proof_of_concept.ms (или же в файле quickDraft_proof_of_concept_rus .ms в русском варианте) на прилагаемом к этой книге DVD. Оформление интерфейса А теперь, когда известно, что нужно делать и можно ли это делать в сценарии, настал черед компоновки интерфейса создаваемого инструмента. Несмотря на то что пользовательский интерфейс можно программировать вручную и что многие опытные составители сценариев предпочитают поступать именно таким обра зом, интерфейс компонуется также методом перетаскивания в утилите Visual MAXScript (VMXS) (рис. 6.4). Кнопка выбора Ready B&l -!□! х| Property Value Окно компоновки punnamedRoMout Visual MAXScript Value Event Handlers He Layout й & q x 4s> e x Типы реквизитов окна Страница свойств dass name caption x-pos y-pos width height enabled rollout unnamedRollout Untitled 10 10 162 300 true Рис. 6.4. Визуальный редактор Visual MAXScript представляет собой универсальный инструмент перетаскивания для компоновки интерфейсов, работающих по сценарию
Глава 6. Написание сценариев 179 Ниже приведена процедура компоновки интерфейса для инструмента, рабо тающего по сценарию quickDraf t. 1. Выберите команду MAXScript1^ New Script из главного меню. 2. Выберите команду Edit^New Rollout (Правка1^ Новый свиток) из меню в окне редактора MAXScript Editor. Обратите внимание на то, что окно редактора MAXScript Editor становится недоступным. Остальная часть сценария блоки- руется вплоть до закрытия окна визуального редактора Visual MAXSci ipt. НА ЗАМЕТКУ Визуальный редактор Visual MAXScript открывается двумя способами: с помо- щью команды MAXScript^Visual MAXScnpt Ed tor из главного меню либо по од- ной из команд Edit^New Rolout или Edit^Edit Rollout из меню в окне редактора MAXScript Editor, причем выбранный способ доступа к этому редактору оказыва- ет влияние на его работу. Если визуальный редактор Visual MAXScript открывается из главного меню, соз- даваемый код пользовательского интерфейса необходимо сохранить в файле сценария с расширением .ms, а затем открыть этот файл, скопировать и вста- вить из него код в текст создаваемого сценария, чтобы использовать его в дан- ном сценарии. Если же визуальный редактор Visual MAXScript открывается из окна редактора MAXScript Editor, он автоматически связывается с текстом создаваемого сцена рия А посредством команды File^Save код пользовательского интерфейса вво- дится в текст сценария. Как правило, это более удобный способ для работы над сценарием. 3. В правой части окна визуального редактора Visual MAXScript находится страница свойств, на которой представлены свойства редактируемого свитка. Измените значение свойства name на quickDraf t_rollout и зпа чение свойства caption на quickDraft в столбце Value одноименной вкладки па данной странице. Свойство name служит для ссылки па созда- ваемый свиток в коде сценария, а свойство caption определяет заголовок окна инструмента в интерфейсе. 4. Установите значение 111 свойства width и значение 216 свойства height. Такие размеры свитка позволяют сделать его компактным и в то же время зарезервировать в нем достаточно места для флажков и их меток. 5. Щелкните на пиктограмме реквизита флажка (Check Box), расположенной в нижней части окна VMXS, а затем перетащите флажок в находящуюся слева серую область компоновки интерфейса. Слева появится флажок Checkbox а справа — его свойства вместо свойств свитка (рис. 6.5). 6. Установите значение hidden (Скрытый) свойства name, а также значение Render Hidden (Визуализация скрытого) свойства caption. СОВЕТ В значении свойства name не должно быть пробелов или же цифры в качестве первого символа.
180 Часть II. Управление 3ds max Пиктограмма реквизита флажка Рис. 6.5. Щелкните на пиктограмме реквизита флажка, а затем пе- ретащите этот реквизит в область компоновки интерфейса, чтобы создать флажок 7. Если надпись для флажка выглядит несколько обрезанной, исправьте это по- ложение, перетащив соответственно маркеры изменения размеров флажка. 8. Установите значение 14 свойства height на странице свойств. Это типич- ная высота для большинства элементов пользовательского интерфейса. 9. Выберите команду Filers* Save в окне VMXS. Код формирования свитка за- писывается в окне редактора MAXScript Editor, хотя оно по-прежнему оста- ется недоступным. | СОВЕТ_________________________________________________________________ В редакторе MAXScript Editor отсутствует команда отмены. Поэтому почаще со- храняйте код пользовательского интерфейса, чтобы закрыть и еще раз открыть этот редактор й вернуться к предыдущему варианту сценария, если была допу- щена ошибка. 10. Создайте еще один флажок, щелкнув на кнопке инструмента Selection в ле- вом нижнем углу окна VMXS выделив флажок Render Hidden и нажав по очереди комбинации клавиш <Ctrl+C> и <Ctrl+V>, чтобы скопировать и вставить этот флажок на новом месте. Перетащите скопированный фла- жок, расположив его ниже исходного флажка, а затем установите значение rfw свойства name а также значение RFW (Вывод в окно визуализированно- го кадра) свойства caption. Если этот флажок располагается не совсем
Глава 6. Написание сценариев 181 точно на нужной позиции, это положение будет исправлено далее специ альными инструментами выравнивания, доступными в окне VMXS для окончательной правки скомпонованного интерфейса. 11. Повторите п. 10 данной процедуры еще 9 раз, чтобы создать в общем 11 флажков, используя имена, приведенные в табл. 6.3. Таблица 6.3. Свойства элементов интерфейса quickDraft Имя Надпись hidden Render Hidden rfw RWF save Save File elements Elements Active aa Antialiasing samp Disable Samp. Shad Shadows area Area as Point raytrace Raytracing atmo Atmospherics displace Displacement После того как созданы все флажки с соответствующими именами, настало время их выровнять. 12. Выберите команду File^Save в окне VMXS, чтобы записать код элементов пользовательского интерфейса в окне редактора MAXScript Editor. Это даст вам возможность вернуться к предыдущему варианту компоновки, если вас не удовлетворят результаты последующего выравнивания флажков в свитке. 13. Если инструмент Selection все еще активен в окне VMXS, обведите все флажки рамкой выделения и выберите сначала команду LayoutsAlign^Left (Компоновка^Выровнять^По левому краю), а затем команду Layouts Space Evenly^Down (Компоновка^Расставить равномерной Вниз). Если же такая компоновка интерфейса вас не устраивает, вернитесь к предыдущему ее варианту, расположите флажки вручную и повторите указанные команды выравнивания. Если требуется вернуться к предыдущему варианту компоновки, закройте окно VMXS, не сохраняя результатов, а затем выберите команду Edit^Edit Rollout (Правка^Правка свитка) в окне редактора MAXScript Editor. Про- должайте правку компонуемого интерфейса до тех пор, пока не добьетесь удовлетворительного результата. В своем варианте компоновки я решил расположить флажок Area as Point с отступом вправо относительно флажка Shadows, поскольку пользоваться им нецелесообразно, если тени вообще отключены (рис. 6.6).
182 Часть II. Управление 3ds max ЕЗ quickDraft rotfout - Visual MAXScnpt |n|x| File Ecit Layout l=) O' В ® X | :S:: | Value Evert Handers Property Value class rollout name quickDraft_rollout caption quickDraf! x-pos 10 y-pos 10 wdth 111 height 221 enabled true I- Render Hdden Г RFW Г Save Fife I- Elements Active l~ Ant aliasing П Disable Samp Г Shadows l~ Area as Pont II Raybacng Г Atmospherics Г” Displacement Ready Рис. 6.6. Команды выравнивания и равномерной расстановки элемен тов интерфейса позволяют окончательно поправить его компоновку к НА ЗАМЕТКУ__________________ Для пошагового перемещения элементов интерфейса вое ользуитесь клавишами со стрелками, а для ограничения их перетаскивания мышью по прямой линии до- полнительно нажмите клавишу < Shift >. 14. Добившись удовлетворительного результата компоновки интерфейса, выбе- рите команду File^Save в окне VMXS, закройте редактор Visual MAXScript и сохраните полученный сценарий в файле quickDraf t_interface01 .ms. Вновь откройте окно VMXS, нажав функциональную клавишу <F2>. Компо- новку интерфейса, приведенную на рис. 6.6, можно посмотреть в файле \Project Files\Ch06_Scripting\quickDraft_interface01.ms на при- лагаемом к этой книге DVD По замыслу в сценарии quickDraft используются два типа элементов управ- ления: те, что связаны с сохранением файлов и могут изменяться в зависимо- сти от конкретного проекта, и те, что ускоряют визуализацию и практически всегда у танавливаются одинаково при визуализации в условиях производст- ва. В компоновке интерфейса, приведенной на рис. 6.6, обе группы элемен- тов управления разделены небольшим пустым пространством, но было бы еще лучше разделить их более четким визуальным ориентиром. Щелкните на пиктограмме реквизита группового блока (Group Box), распо- ложенной слева от пиктограммы реквизита флажка, которой вы уже поль- зовались ранее, и вытяните рамку вокруг каждой из упомянутых выше групп флажков.
Глава 6. Написание сценариев 183 15. Откорректируйте границы каждого группового блока маркерами изменения его размеров, а затем установите значения Render Controls (Элементы управления визуализацией) и Speed-Ups (Элементы ускорения визуализации свойства caption обоих групповых блоков (рис. 6.7). Аналогичная компоновка находится в файле \Project Files\ChO6_Scripting\quickDraft_ interface02 .ms на прилагаемом к этой книге DVD. I® quickDraft rollout - Visual -|D|X| gle £dt Layout Й Q ® X r- Render Controls — Render Hidden ! Г RFW ' Г” Save File I- Elements Active Speed-Ups —- —i Antialiasing | B 1“ Disable Samp. f~ Shadows I f~ Area as Point Raj^iacng Atmospherics Displacement —.-------------. Value Event Handles Property Value dass rollout name quickDraft_rolloul caption quickDraft x-pos 10 y-pos 10 width 111 height 221 enabled true ___I o<| j/J LJi H Ей ISb" ebc ,b P ff 1J t 0 щ Ready j’j ✓ Рис. 6.7. Пользовательский интерфейс инструмента quickDraft в завершенном виде 17. Выберите команду File^Save в окне VMXS чтобы записать код окончательно скомпонованного интерфейса в редакторе MAXScript Editor, закройте окно VMXS и сохраните сценарий в файле quickDraf t_interface02 .ms. Итак, вас можно поздравить с завершением компоновки пользовательского интерфейса средствами Visual MAXSciipt. А теперь необходимо связать кон трольно-проверочный код с кодом этого интерфейса, чтобы он запускался па вы- полнение в качестве специального инструмента непосредственно в 3ds max. Создание работоспособного инструмента 1. Вновь откройте окно VMXS из окна редактора MAXSc pt Editor (если вы не продолжаете работу с предыдущего упражнения, откройте сначала файл \Project Files\ChO6_Scripting\quickDraft_interfaceO2.ms на прилагаемом к этой книге DVD) 2. Выберите команду MAXScript^Open Script из главного меню, а затем от- кройте файл Project Files\ChO6_Scripting\quickDraft proof of concept .ms на прилагаемом к этой книге DVD.
184 Часть II. Управление 3ds max 3. Установите флажок Render Hidden в окне VMXS и щелкните на вкладке Event Handlers (Обработчики событий), расположенной в верхней части страницы свойств. Обработчики событий представляют собой блоки кода, запускаемые на вы- полнение при наступлении определенных событий. Одно из таких событий происходит при установке или сбросе флажка. Когда пользователь щелкает на флажке в интерфейсе сценария MAXScript, запускается на выполнение (или вызывается) код обработчика событий changed и ему в качестве пе- ременной state передается текущее состояние сброшенного или же уста- новленного флажка. 4. Щелкните на обработчике событий changed. Откроется окно Edit Event Handler (Правка обработчика событий). В нем может быть введен код, ко- торый требуется связать с изменением состояния флажка Render Hidden. 5. Найдите элемент Render Hidden в контрольно-проверочном коде, скопи- руйте и вставьте его в окно Edit Event Handler (рис. 6.8), а затем щелкните на кнопке ОК. Повторите эту же процедуру для остальных элементов поль- зовательского интерфейса. со.|-|п| х| £) (3 Q X Ч» © X due Event Handeri Event Handlers Цchanged on bdden charged al do cendHidden state rendersceneDialog.update() -Render Qrtrok Rende Hidden J- RFW * Г~ Save Fie Г Elements Active Speedtips Г Anbabamg Г” шЫеЗшпр Shadows Г Area es Pont «Г* Ra^iacng Г Atiwipbenct Г" Dtsplecemenl Testing shows thee this method does not Chtow errors if the render die so we сев throw it in to each event handler without error checking. It И - Ready Since these ere systn globals, we can Just query the* on Open without —<ГВ rendShoWFB • state renderSceneDielоg.update() —Save File r^nriKav^Fi le • RMf* Рис. 6.8. Копирование контрольно-проверочного кода в окно Edit Event Handler НА ЗАМЕТКУ Для флажка Elements Active в файле контрольно-проверочного кода имеются два элемента В первом из них указан код обработчика событий, а второй слу- жит лишь для примера и не используется в данном сценарии.
Глава 6. Написание сценариев 185 6. Выберите команду File^Save в окне VMXS, чтобы записать код пользова- тельского интерфейса в редакторе MAXScript Editor, закройте окно VMXS и сохраните сценарий в файле quickDraf t_interface03 .ms. Итак, инструмент практически готов для проверки. Осталось лишь ввести в конце сценария строку кода, открывающую свиток данного инструмента в режиме перемещаемой панели с введенными ранее элементами пользова- тельского интерфейса. 7. Введите после закрывающей скобки в самом конце кода сценария следую- щую строку: createDialog quickDraft_rollout width:lll height:216 escapeEnable:false 8. Выберите команду File^Evaluate All из меню в окне редактора MAXScript Editor. Код сценария открывает панель, перемещаемую и полностью рабо- тоспособную в интерфейсе 3ds шах. Откройте диалоговое окно Render Scene и проверьте состояние каждого флажка, используемого в сценарии quickDraft, наблюдая за состоянием соответствующих элементов управ- ления в диалоговом окне Render Scene, чтобы убедиться в работоспособно- сти данного сценария. Если в сценарии отсутствуют опечатки, все элементы управления должны работать правильно, однако для согласования их состояний с состояниями соответствующих элементов управления в диалоговом окне Render Scene, возможно, потребуется сделать не один, а два щелчка на каждом из них. Для устранения этого недостатка в сценарий необходимо ввести дополни- тельный обработчик событий, устанавливающий флажки в то состояние, в котором сцена находится при открытии панели инструментов quickDraft в первый раз. Этот обработчик событий принадлежит не отдельным эле- ментам пользовательского интерфейса а самому свитку. 9. Вновь откройте окно VMXS, выделите сам свиток и перейдите ко вкладке Event Handlers. У данного свитка имеется обработчик событии open, который вызывается при первом запуске перемещаемой панели. В этот обработчик событий не- обходимо ввести код, устанавливающий состояние каждого флажка па пе- ремещаемой панели в соответствии с состоянием аналогичного элемента управления в диалоговом окне Render Scene. Элементы пользовательского интерфейса представляют собой объекты с определенными свойствами аналогично всем остальным элементам сценария MAXScript, поэтому для установки флажка в нужное состояние достаточно получить из сцены со- стояние соответствующего элемента управления и присвоить его в виде значения свойству state данного флажка. Для того чтобы не тратить лишний труд па создание обработчика событий open, достаточно заменить в контролыю-проверочно.м коде операции за- писи на операции чтения значений состояния соответствующих элементов управления из диалогового окна Render Scene. 10. Щелкните на обработчике событий open, а затем введите следующий фраг- мент кода в диалоговом окне Edit Event Handler (или скопируйте и вставьте его из файла \Project Files\ChO6_Scripting\quickDraft_open_ handler. ms на прилагаемом к этой книге DVD):
186 Часть II. Управление 3ds max hidden.state = rendHidden rfw.state = rendShowVFB save.state = rendSaveFile re = maxops. getCurRenderEleinentMgr () elements.state = re.getElementsActive() -- getElementsActive() is a function that returns a boolean value aa.state = Tenderers.current.antiAliasing samp.state = not Tenderers.current.enablePixelSampler shad state = Tenderers.current.shadows area.state = rendSimplifyAreaLights rt = rayTraceGlobalSettings() raytrace.state = rt.enable_raytracing atmo.state = rendAtmosphere displace.state = renderDisplacements 11. Вновь выберите команду File^Save в окне VMXS, чтобы записать введен- ный код в окне редактора MAXScript Editor, закройте окно VMXS и сохра- ните сценарий в файде quickDraf t_interface04 .ms. Выберите команду File1^Evaluate АП из меню в окне редактора MAXScript Editor, чтобы запус- тить па выполнение текущий вариант сценария. Теперь при открытии панели данного инструмента состояния ее флажков должны отражать текущее состояние сцепы. Сравните этот вариант сцена- рия с предыдущим. 12. Было бы неплохо, если бы по сценарию текущая панель инструментов quickDraft закрывалась при ее повторной активизации. Эю можно сде- лать с помощью команды destroyDialog, введя ее в самом начале сцена- рия перед строкой определения свитка: try(destroyDialog quickDraft_rollout) catch)) Функции try () и catch () очень полезны для решения самых разных задач в сценарии. Если код помещается внутри оператора try(), любые возникаю- щие ошибки приводят к выполнению кода внутри оператора catch () вместо аварийного останова сценария с выводом сообщения об ошибке. Но посколь- ку в приведенной выше строке код внутри оператора catch () отсутствует, то любые ошибки в сценарии (в частности, отсутствие перемещаемой панели quickDraf t_rollout для удаления) будут игнорироваться. Без функций try () и catch () в сценарии произойдет аварийный сбой, если в интерфейсе не окажется перемещаемой панели quickDraft_rollout, предназначенной для удаления. А при наличии этих функций сценарий будет работать правильно независимо от того, открывается ли новая перемещае- мая панель или же заменяется уже существующая. 13. Выполните сценарий quickDraft при открытой и закрытой перемещае- мой панели инструментов и убедитесь в том, что старая панель правильно удаляется. Осталось сделать последний шаг: ввести ряд строк, чтобы превратить код в макросцепарий (macroSciipt). Макросценарии содержат дополнительные сведения которые позволяют назначать их для комбинаций клавиш, кно- пок панели инструментов или пунктов квадратных меню. Они хранятся в файлах с расширением . тс г, а не .ms. При запуске макросцснария код сценария не выполняется сразу. Вместо этого в каталоге \UI\MacroScripts создается несколько видоизмененная копия это- го сценария, а работающий по сценарию инструмент становится доступным
Глава 6. Написание сценариев 187 в диалоговом окне Customize User Interface (Специальная настройка пользова- тельского интерфейса). Таким образом, этот инструмент можно сделать неотъ- емлемой частью пользовательского интерфейса. На самом деле большинство встроенных в 3ds max инструментов представляют собой макросценарии. | НА ЗАМЕТКУ_____________________________________________________________ Если требуется видоизменить макросценарий, уже существующий в папке \ui\ MacroScripts, отредактируйте копию этого сценария, перенеся его файл с расши- рением .mcr в другую папку, а затем открыв его из меню MAXScript, чтобы напра- вить рабочий вариант данного макросценария. Благодаря этому сохраняются связи между элементами интерфейса из исходного макросценария после его правки. 14. Введите в начале сценария следующую строку кода: macroScript quickDraft Category: "Render" Tooltip:"quickDraft" ( Это означает, что сценарий появится в качестве нового инструмента с меткой quickDraft в категории Render диалогового окна Customize User Interface. В начале сценария введена открывающая скобка, поэтому во избежание ошибок в конце сценария необходимо ввести соответствующую закрываю- щую скобку: ) 15. Сохраните макросценарий в файле quickdraf t_f inal .mcr. 16. Выберите команду MAXScript1^ Run Script найдите сохраненный ранее файл макросценария quickdraft_final .mcr и щелкните на кнопке Open. При этом не произойдет ничего особенного. Однако инструмент quickDraft появится в качестве доступной команды в диалоговом окне Customize User Interface. Окончательный вариант сценария можно найти в файле \Project Files\ChO6_Scripting\quickdraf t_final .mcr на прилагаемом к этой книге DVD. 17. Выберите команду Customize^Customize User Interface, перейдите ко вкладке Quads (Квадратные меню) диалогового окна Customize User Inter- face и выберите вариант Render из раскрывающегося списка Category. Най- дите инструмент quickDraft в списке Action (Действие) и перетащите его в удобное место внутри стандартного квадратного меню, вызываемого щелчком правой кнопкой мыши в видовом окне (Default Viewport Quad). 18. Закройте диалоговое окно Customize User Interface и щелкните правой кнопкой мыши в видовом окне. Выберите команду quickDraft из всплывающего квадрат- ного меню, чтобы запустить созданный вами сценарий на выполнение. Итак, вы разработали, проверили, написали, отладили сценарий MAXScript и установили в интерфейсе 3ds max собственный инструмент, работающий по этому сценарию. Принципы и методы создания данного инструмента могут быть применены для построения практически любого элемента интерфейса, которым вы предполагаете часто пользоваться в своей работе.
188 Часть II. Управление 3ds max colorClip: сценарий для создания стыкуемой панели инструментов Иногда даже самая маленькая перемещаемая панель заслоняет собой полезную площадь экрана. Начиная с версии Sds шах 5, у составителей сценариев появилась возможность создавать стыкуемые панели инструментов из собственных свитков. Такие панели могут содержать любые элементы пользовательского интерфейса, доступные в сценарии MAXSciipt, но аккуратно вписывающиеся в компоновку стандартной для 3ds max панели инструментов. В этом разделе будет создан инструмент, заменяющий собой стандартную ути- литу Color Clipboard, доступную на панели Utilities, и работающий в режиме пере- мещаемой панели, аккуратно стыкуемой к основной панели инструментов. Ана- логично сценарию quickDraft, цель создания данного сценария — сэкономить число обращений к трудно доступным частям интерфейса 3ds max и тем самым ускорить последовательность выполняемых операций. Рекомендации по разработке сценария Для того чтобы вписать элементы пользовательского интерфейса в панель ин- струментов, необходимо уделить особое внимание их размерам, чтобы высота дан- ной панели была такой же, как и у панелей, к которым опа должна стыковаться. Кроме того, па этой панели не должно быть слишком много инструментов, по- скольку в пользовательском интерфейсе может оказаться недостаточно места для ее стыковки, особенно при малом разрешении. Исходя из этих соображений, необхо- димо создать панели инструментов с шестью образцами цвета — это удачное соче- тание размеров и функциональности перемещаемой панели инструментов. Создание такого сценария упрощается благодаря функциям перетаскивания, встроенным в элементы пользовательского интерфейса, предназначенные для выбора цвета. Для образцов цвета код обработки событий не требуется, поэтому' создавать контрольно-проверочный код в данном случае не нужно. Написание сценария Если контрольно-проверочный код сценария не требуется, то можно сразу же переходить к его написанию. Поиск методом проб и ошибок оптимальных значе- ний для компоновки интерфейса может превратиться в продолжительный про- цесс, поэтому эти значения представлены далее уже в готовом виде. 1. Откройте новое окно редактора MAXScript Editor и выберите команду Editor» New Rollout, чтобы запустить визуальный редактор Visual MAXScnpt. 2. Введите на странице свойств свитка следующие параметры: name: colorClip caption: Color Clipboard width: 160 height: 30 3. Создайте в свитке новый элемент пользовательского интерфейса для выбора цвета (Color Picker). Его размеры и местоположение в данный момент особо го значения не имеют, поскольку они будут установлены позже вручную.
Глава 6. Написание сценариев 189 4. Установите на странице свойств следующие свойства элемента выбора цвета: caption: удалите стандартную надпись, оставив это свойство незаполненным x-pos: 2 y-pos: 3 width: 20 height: 20 color (color 128 128 128) 5. Скопируйте и вставьте элемент выбора цвета пять раз, устанавливая всякий раз вручную его свойство x-pos: 26, 50, 98, 122. Свойство y-pos для всех образцов цвета должно оставаться равным 3. 1 еперь скомпонованный ин- терфейс должен выглядеть так, как показано на рис. 6.9. Дополнительное пространство по горизонтали настраивается с помощью маркеров измене- ния размеров при перетаскивании перемещаемой по сценарию панели. Рис. 6.9. Компоновка панели инструментов colorclip в окне ре- дактора Visual MAXScript 6. Запишите код пользовательского интерфейса в редакторе MAXScript Editor, выбрав команду File^Save, и закройте окно VMXS. 7. Сохраните сценарий в файле colorClip_layout .ms. 8. Введите заголовок и окончание макросценария, а также объявление диало- гового окна аналогично сценарию quickDraft. Итак, введите в начале сценария следующий фрагмент кода: macroScript Colorclip Category:"Color Clipboard" Tooltip:"Toolbar Color Clipboard' ( try(destroyDialog colorclip)catch()
190 Часть II. Управление 3ds max А в конце сценария введите следующий фрагмент кода: createDialog colorClip width:160 height:30 style #(#style_toolwindow) escapeEnable:false ) 9. Для того чтобы сделать панель стыкуемой, потребуются еще две строки ко- да. Поэтому введите в конце сценария одну строку кода в промежутке между строкой, начинающейся на createDialog, и последней закрывающейся скобкой: cui.registerdialogbar ColorClip style:#(#cui_dock_horz, #cui_floatable,#cui_handles) minsize:(160 30] maxsize:[160,30] В этой строке кода указывается на необходимость интерпретировать пере- мещаемую панель как стыкуемую. 10. Введите в начале сценария еще одну' строку кода в промежутке между' первой открывающейся скобкой и строкой, начинающейся на try (destroyDialog: try(cui.unregisterdialogbar ColorClip)catch() Эта строка кода необходима для того, чтобы сначала вернуться к обычному' виду' панели с помощью метода cui .unregisterdialogbar, а затем избавиться от стыкуемой перемещаемой панели с помощью метода destroyDialog. 11. Сохраните сценарий в файле colorClip_complete.ms 12. Зарегистрируйте макросцепарий, выбрав команду MAXScript^Run Script и найдя файл сохраненного ранее сценария на жестком диске либо файл colorClip_complete .ms на прилагаемом к этой книге DVD 13. Откройте окно Customize User Interface и назначьте команду для вызова перемещаемой панели выбора цвета (ColorClip) из квадратного меню или же из основной панели инструментов (рис. 6.10). 14. Активизируйте стыкуемую панель инструментов ColorClip и проверьте ее работоспособность (рис. 6.11). НА ЗАМЕТКУ | Требования к размерам панели инструментов зависят от состояния флажка Use I Large Toolbar Buttons (Использовать крупные кнопки на панели инструментов) доступного во вкладке General диалогового окна Preferences, открываемого с помощью команды Customize^Preferences. В приведенном ниже упражнении используются размеры для небольшой панели инструментов. Если же вы пользуетесь крупными кнопками, ограничьтесь четырьмя образцами цвета вместо шести, высотой 39 и шириной 152 свитка, промежутком 32 между образцами цвета, а также размерами 32x32 окна селектора цвета вместо приве денных ниже значений. Завершенный вариант сценария для крупных пиктограмм можно найти в файле Project Files\Ch06_Scripting\colorClip_large.mcr на прилагаемом к ЭТОЙ книге DVD.
Глава 6. Написание сценариев 191 fe? Customize User Interface Keyboard | Toolbars [ Quads Group |Mmi Ul ———— Category | Cokx Clipboard Action|_____________ -21 xj Menus Colors |Defadt Viewport Quad New I Dete*e I Re’-ctne . I Toolbar Color Clipboard Menus________________________ Animation Animation Constraints Animation IK Solvers Animation Position Control ers Animal on Rotation Control ers Animal on - Scale Controllers Quad Shortcut. ] [v Show Al Quads Рис» 6.10. Назначьте команду вызова макросценария Colorclip из квадратного меню ll^Unt'tled 3dsmax 7 Fie Edit Took Group Views Cre Рис. 6.11. Стыкуемая панель инст- рументов Colorclip в действии Дальнейшее изучение языка MAXScript В этой главе вам удалось создать два специальных интерфейса, используя всего лишь 10 элементов языка MAXScript (не считая, конечно, обработчиков собы- тий). Можно надеяться, что данная глава открыла вам глаза па возможности язы- ка MAXScript, и теперь он стал вам понятнее. Итак, подведем краткие итоги. • Даже скромными средствами MAXScript можно добиться многого. В этой главе вы освоили лишь малую часть из арсенала средств MAXScript: от команды show до цикла for. Но и этого вполне достаточно для органи- зации пакетной обработки практически любых элементов сцены с помо- щью нескольких строк кода, вводимых в окне Listener. А благоразумно ис- пользуя команду random, можно создавать весьма правдоподобные сцены и анимацию при минимальных затратах труда.
192 Часть II Управление 3ds max • Помощь нужна всем. Справочный документ по MAXScript необходим даже для технических постановщиков, профессионально занимающихся написа- нием сценариев. Обращайтесь к этому документу' постоянно, пользуясь раз- личными функциями поиска. Кроме того, в оперативном режиме доступно немало полезных готовых сценариев, поэтому не стесняйтесь пользоваться ими и ставить конкретные вопросы относительно написания сценариев MAXScript на форуме, организованном компанией Discreet, указав, разуме- ется, свое настоящее имя • Быстрое создание интерфейсов в визуальном редакторе Visual MAX- Script. В этой главе вы научились пользоваться визуальным редактором Visual MAXScript для компоновки работоспособного интерфейса специаль- ного инструмента отдельно от кода сценария. После этого для завершения процесса создания инструмента достаточно было ввести контрольно- проверочный код в обработчики событий каждого элемента пользователь- ского интерфейса, чтобы организовать его правильное функционирование, а затем устранить в рабочем порядке любые возникшие неполадки. • Создание специальных стыкуемых панелей инструментов с использо- ванием реквизитов окон MAXScript. В этой главе было показано, насколь- ко эффективно код пользовательского интерфейса перемещаемых панелей инструментов создается из свитков. Кроме того, эти панели можно сделать стыкуемыми. В целом навыки, приобретенные в этой главе, помогут вам пополнить свой ар- сенал замечательными инструментами, экономящими немало времени. Главное — найти полезное применение сценариям в своей работе, даже если поначалу их написание будет продвигаться медленно. Ниже перечислены некоторые явные признаки, свидетельствующие в пользу написания сценариев. • Рутина. Такие часто повторяющиеся операции, как настройка одних и тех же параметров для множества объектов или же выполнение одной и той же последовательности действий во многих файлах сцен, могут быть автома- тизированы по сценарию с помощью цикла for. • Боли в запястьях. 3ds max — довольное крупное приложение, а его пользо- вательский интерфейс предоставляет всем художникам все необходимые и в тоже время универсальные средства для работы. Если же вам приходив ся постоянно щелкать кнопкой мыши, чтобы добраться до какого-нибудь скрытого диалогового окна, поскольку этого требует работа, рассмотрите возможность создания специального диалогового окна, чтобы упростить доступ к нужным функциям. Итак, определив задачу, которая требует автоматизации по сценарию, вос- пользуйтесь принципами и методами, рассмотренными в этой главе, для разра- ботки, проверки идеи и реализации принятого решения в виде сценария. Теперь у вас имеются все возможности, чтобы сократить свой рабочий день!
Часть III Моделирование 7 Точное моделирование 8 Моделирование окружающей среды 9 Моделирование персонажей
Гл а в а 7 Точное моделирование А. Дж. Джеффериз Архитекторы создают наглядные визуализации целых городов, прежде чем начнется их строительство. Разработчики рекламируют проигрыватель формата MP3 задолго до начала его производства. Инженеры испытывают опытные об- разцы автомашин, не покидая своих рабочих мест. И все это делается в трехмер ной среде. Для представления реальных объектов средствами трехмерного моделирова- ния требуется тщательное планирование и внимание к деталям. Для многих по пятня “точность” и “компьютер ’ являются синонимами, по это же можно сказать и о понятиях “человек” и “ошибка”! Как же соблюсти точность, если мы по своей природе склонны к ошибкам? На самом деле для достижения требуемой точности в трехмерном моделировании нс нужно иметь ученую степень в области ма тематики, носить очки в роговой оправе и иметь патологическую привычку надевать лабораторный халат. Вместо этого 3ds max обеспечивает нам требуемую точность даже при выполнении самых элементарных операций. В этой главе будут продемонстрированы разные методы построения кухонной сцены и в то же время рассмотрены некоторые основы мо- делирования. Примитивы К примитивам в 3ds max относятся евклидовы твердые тела и другие готовые объекты, которые могут служить в качестве отправной точки для создания каких угодно объектов. Например, клиент может попросить вас создать быструю визуа лизацию 20 автомашин, с визгом проносящихся по треку, а возможно, вам требу- ется лишь набросать вчерне сцену для анимации. В любом случае самое опера- тивное решение задачи состоит в использовании примитивов, позволяющих очень быстро и эффективно скомпоновать сцепу. Кроме того, многие объекты могут быть созданы из стандартных примитивов, в том числе лампа — из цилинд- ра или трубы, а обеденный стол — из пяти параллелепипедов.
196 Часть III. Моделирование Совершенствование примитивов В следующем упражнении вам предстоит разметить основную конструкцию кухни, а затем перейти к созданию специальной мебели и кухонных принадлеж- ностей полностью из примитивов. 1. Откройте сцену из файла \Project Files\Ch07_PrecisionModeling\ 07 _Kitchen Start .max па прилагаемом к этой книге DVD. Как видите, данная сцена содержит пустое помещение, состоящее из не- скольких частей (рис. 7.1). Это исходная конструкция кухни В первую оче- редь необходимо выложить плитки пола. Рис. 7 1. Сцена с пустой кухней | НА ЗАМЕТКУ ________________________________________________ Стены, отсутствующие в модели кухни, удалены лишь временно с помощью мо- дификаторов Mesh Select (Выделение каркаса) и DeleteMesh (Удаление каркаса). Отключив эти модификаторы по завершении работы над данной сценой, можно восстановить стены, чтобы получить единую конструкцию кухни. 2. Для упрощения моделирования скройте большую часть сцены, оставив лишь тс ее элементы, которые потребуются для работы. В настоящий момент объ- екты кухни зафиксированы, поэтому уст ановите флажок Hide Frozen Objects (Скрыть зафиксированные объекты) из свитка Hide на панели D splay.
Глава 7 Точное моделирование 197 3 Оставшийся прямоугольник обозначает площадь пола. Как видно на панели Modify, пол имеет размеры 400 единиц по ширине на 300 единиц по высоте Эти размеры послужат основанием для правильного выкладывания плиток пола. Щелкните правой кнопкой мыши на кнопке всплывающей панели Snaps Toggle, расположенной на основной панели инструментов, чтобы от- крыть диалоговое окно Grid and Snap Settings. Установите в этом окне фла жок Grid Points. Привязка, более подробно рассматривавшаяся в главе 1, представляет со- бой быстрый и точный способ определения места для расположения объ- ектов на сцене. Данная сцена построена с помощью сетки, поэтому поль- зуйтесь сеткой и далее в качестве направляющей для объектов. 4. Перейдите к панели Create, щелкните на кнопке Geometry, выберите из раскрывающегося списка Subcategory (Подкатегория объектов) вариант Extended Primitives (Дополнительные примитивы) и щелкните на кнопке ChamferBox (Скошенный параллелепипед). Раскройте окно вида сверху на весь экран и вытяните параллелепипед в левом верхнем углу пола. Устано- вите размеры 20x20 этого параллелепипеда, привязав его к сетке (рис. 7.2) а затем щелкните еще два раза, чтобы завершить создание данного объекта. Torus Knot I ChamferBcx ChamleiCyt Off ark | Capsule 1 Spindle | LEXt Gengon | С-Ext j * PngWave * Hose Snaps 1 Options Home Grid User G ids ИГ •«•Toff' О Grid Lines ljT Bounding Box 0 Г Tangert И C Endpoint 0 Г Мфогй V Г Center Face | Standard ~~~ О Grid Poiris A 1“ Frvoi h Г Ferpencfcdar + Г Vertex □ Г~ Edge/Segmant А Г* Face Рис 7.2. Создание скошенного параллелепипеда с привязыванием его к сетке 5. Как только скошенный параллелепипед будет создан, установите вручную следующие его параметры. • Поле Height (Высота) = 1,0.
198 Часть III. Моделирование • Поле Fillet (Скругление) = 0,2. • Поле Fillet Segments (Число сегментов скругления) = 1. • Флажок Smooth (Сгладить) — Сброшен. Благодаря уменьшению значения параметра Fillet Segments упрощается геометрическая форма в сцене и в то же время сохраняются четкие очерта- ния краев плиток. Этот эффект еще более усиливается после сброса флажка Smooth. Работа с массивами Массив — это всего лишь ряд сходных, равномерно расставленных объектов. Несмотря на то что поначалу инструмент Array (Массив) труден для освоения, без него просто не обойтись, когда на сцене требуется расставить многие копии объ- ектов, например, плиток. Как следует из предыдущего упражнения, размеры каж- дой плитки составляют 20x20, а ширина пола — 300 единиц. Таким образом, про- стым делением 300 на 20 мы получаем 15 копий плиток, располагаемых по оси X. В следующем упражнении этими плитками будет выложен пол. 1. Теперь, когда имеется отдельная плитка, необходимо скопировать ее, чтобы покрыть пол. Щелкните правой кнопкой мыши на пустом месте основной па- нели инструментов, чтобы раскрыть список доступных панелей инструмен- тов, и выберите панель Extras а затем откройте диалоговое окно Array. 2. Введите значение 15 в поле 1D Count (Число элементов одномерного мас- сива) из области Array Dimensions (Размерность массива), а также значение 20 в поле X из области Incremental (Пошаговое расположение). Выберите кнопку-переключатель Instance (Экземпляр) в области Type of Object (Тип объекта) и щелкните на кнопке Preview (Предварительный просмотр), что- бы посмотреть полученные результаты установки массива плиток (рис. 7.3). СОВЕТ Если нажать комбинацию клавиш < Ctrl + N >, когда курсор находится на стрелке счетчика или в поле ввода значения параметра, откроется диалоговое окно Nu- merca Expression Evaluator (Вычисление числового выражения В этом окне можно выполнять расчеты, аналогичные приведенному выше, а их результаты автоматически вставляются в качестве нового значения параметра 3. Для того чтобы расположить плитки и по оси Y, выберите кнопку- переключатель 2D (Двухмерный массив) и установите значение -20 в поле Y из области Incremental Rows Offset (Пошаговое смещение рядов массива). Если теперь увеличить значение параметра 2D Count (Число элементов двухмерного массива), ряды элементов массива расположатся друг за дру- гом вниз. Итак, установите значение 2 0 параметра 2D Count и щелкните на кнопке ОК, чтобы завершить выкладывание пола плитками (рис. 7.4).
Глава 7. Точное моделирование 199 Рис. 7.3. Предварительный вид массива плиток, выложенных по одной оси Рис. 7.4. Создание двухмерного массива плиток, выкладываемых по двум осям
200 Часть III. Моделирование 4. Для выкладывания пола использовались экземпляры плиток, поэтому для изменения размеров всех плиток достаточно поправить размеры лишь од- ной из них. А для того чтобы убедиться в этом на практике, выделите лю- бую плитку' и установите значение 3,0 ее параметра Height, а также значе- ние 0,5 параметра Fillet (рис. 7.5). Рис. 7.5. Изменение размеров плиток благодаря получению их экземпляров Теперь необходимо создать основание для кухонных шкафов. 5. Каждый шкаф должен иметь размеры 60x60, и поэтому для этой мебели необходимо освободить немного места. Выделите и удалите в окне вида сверху три столбца из 15 плиток и три ряда из 6 плиток, начиная с левого верхнего утла пола (рис. 7.6). 6. Не покидая окно вида сверху, создайте примитивный параллелепипед (Box) в любом месте сцепы, уставив его длину, ширину и высоту7 равной 60. При- свойте этому объекту имя UnitOl (Первый блок). 7. Откройте диалоговое окно Grid and Snap Settings и установите флажки Grid Points и Endpoint. Перейдите к окну вида в перспективе, выделите угол па- раллелепипеда и потяните его, чтобы привязать данный объект к точке сетки (рис. 7.7).
Глава 7 Точное моделирование 201 Рис. 7.6. Вид пола сверху после удаления плиток Рис. 7 7 Привязка параллелепипеда к сетке pncns Home b id User Grids I'Standard О P Grid Points А Г“ Prvo? h Г” Perpendculai 4- П Vertex □ Г" Edge/Segment Л Г Face О Г“ Grid Lines 3 П Boundns Box <5 Г~ Tangent 0 Р Endporni 0 П Midpont V Г Center, ее Cleat Al
202 Часть III. Моделирование 8. Вновь воспользуйтесь инструментом Array, чтобы создать пять экземпляров шкафа, расставив их по оси Y на расстоянии 6 0 единиц друг от друга. Затем создайте еще три экземпляра шкафа, расставив их по оси X аналогичным образом (рис. 7.8). Рис. 7 8. Скопированные параллелепипеды Текущий вариант сцены можно посмотреть в файле \Project Files\ChO7_ PrecisionModeling\07_Kitchen_Primitives .max па прилагаемом к этой книге DVD. Итак, основание кухни положено. Возможно, такой вид модели кухни не впечат- ляет, однако она может послужить хорошим основанием для ввода всех необходи- мых деталей. В следующем разделе вам предстоит воспользоваться сплайнами для ввода в сцену крышки кухонного стола и моделирования кухонного оборудования Формы и сплайны Ранее в этой главе демонстрировались преимущества параметрического управления формой примитивных объектов путем установки числовых значений их параметров. Однако у такого управления имеются и некоторые ограничения. В частности, манипулировать объектом, сохраняя универсальный характер изме- нения его структуры, можно лишь до определенной степени. В таком случае для построения моделей можно обратиться к двухмерным формам. Подобно много- угольным примитивам, в 3ds max имеется целый ряд исходных форм для модели- рования, в том числе окружность, прямоугольник и пр.
Глава 7. Точное моделирование 203 Повышение точности с помощью форм А сейчас займемся формированием рабочей поверхности (крышки стола) для кухонной сцены, используя прямоугольный сплайн в качестве основания данной формы. В следующем упражнении примитивы из предыдущего упражнения будут использованы в качестве образца для соблюдения точности моделирования. 1. Продолжите работу со сценой из предыдущего упражнения или же откройте ее из файла \Project Files\Ch07_PrecisionModeling\07_Kitchen_ Primitives. max на прилагаемом к этой книге DVD. 2. Выделите объект UnitOl и щелкните на кнопке Hide Unselected (Скрыть невыделенное) из панели Display. СОВЕТ Для повышения производительности труда очень важно периодически скрывать и отображать объекты. Удалив из виду лишние объекты, вы можете не только сосредоточить основное внимание на конкретном участке работы, но и ускорить реак ию 3ds max на свои деи вия 3. Увеличьте высоту шкафов, изменив значение их параметра Height с 60 на 80. 4. Перейдите к панели Create, щелкните сначала на кнопке Shapes (Формы), азатем на кнопке Rectangle (Прямоугольник) в свитке Object Туре (Тип объекта) и создайте в окне вида спереди прямоугольник длиной 7,0 и вы- сотой 60 (эти размеры можно ввести и вручную после создания объекта). Данная форма послужит основанием для крышки кухонного стола. Но по- скольку' она слишком острая, ее необходимо сгладить. 5. Активизируйте режим привязки к средней точке, установив флажок Mid- point в диалоговом окне Grid and Snap Settings. В итоге прямоугольник сов- падет с верхним краем объектаUnitOl (рис. 7.9). 6. Примените к прямоугольнику модификатор Edit Spline (Правка сплайна), перейдите на уровень подобъектов-вершин (Vertex) и переместите две вер- шины на правом краю прямоугольника в сторону от края шкафа (рис. 7.10). 7. Не покидая окна вида спереди, выделите вершину в верхнем правом углу прямоугольника и установите для сплайна значение 3,0 параметра Fillet в свитке Geometry на панели Modify (рис. 7.11). Щелкните на кнопке Unhide АН (Показать все) из панели Display, чтобы увидеть остальную часть сцены. 8. Итак, угол закруглен, и теперь можно применить модификатор Extrude (Вы ягивание) и установить значение -300 параметра Amount в свитке Ра- га eters этого модификатора (рис. 7 12). 9. От ройте редактор материалов и примените подходящий материал к крыш- ке кухонного стола.
204 Часть III. Моделирование Рис. 7.9. Привязка прямоугольника к верхнему краю шкафа Рис. 7.10. Расширение прямоугольника с помощью модификатора Edit Spline
Глава 7. Точное моделирование 205 Рис. 7.11. Скругление края поверхности с помощью параметра Fillet Рис. 7.12. Вытянутая крышка кухонного стола
206 Часть III. Моделирование Разрезание и подгонка Благодаря тому что изменения, внесенные в форму, сохраняются в модифика- торе Edit Spline, можно достаточно просто ввести на поверхности дополнитель- ные детали или удалить лишние. Попробуйте выключить этот модификатор, что- бы посмотреть его влияние на форму вытянутой поверхности, не забыв вновь ак- тивизировать его перед тем, как продолжить работу над сценой в следующем уп- ражнении. Для точного расположения плиток, как па настоящем полу, их необходимо разрезать и подогнать. 1. Разрежьте под углом 45° поверхность пола в ее углу. Для этого примените к данному объекту2 * * * * 7 модификатор Slice (Сечение) и поверните в окне вида сверху подобъект-плоскость сечения (Slice Plane) данного модификатора на -45° вокруг оси Z (рис. 7.13). 9 В Q Extiude El EditSpSne =— Vertex Segment 1— Sphne _ ReclAnnlr Рис. 7.13. Вращение плоскости сечения на -45° | - Sbce Parameters | Slice Type' Refine Mesh C Sull Mesh T’ Remove Top Г Remove Bottom Operate On: <7 ! О 2. Выберите кнопку-переключатель Remove Bottom (Удалить нижний край) в качестве вида сечения (Slice Туре) в свитке Slice Parameters (Параметры сечения). Выделите подобъект-плоскость сечения и перемещайте его вверх до тех пор, пока он не достигнет верхнего края. Активизируйте режим при- вязки к конечной точке, установив флажок Endpoint в диалоговом окне Grid and Snap Settings, чтобы выровнять плоскость сечения точно по углу шка- фов (рис. 7.14).
Глава 7. Точное моделирование 207 Рис. 7.14. Привязка плоскости сечения к углу шкафов 3. Не покидая окно вида сверху, воспользуйтесь инструментом Mirror (Зеркальное отображение), чтобы перевернуть крышку кухонного стола вокруг ее оси X, а затем выберите вариант Сору в области Clone Selection (Клонирование выде- ленного) в открывшемся диалоговом окне. 4. Щелкните на кнопке Angle Snap (Угловая привязка) из основной панели инструментов и поверните полученную выше копию крышки кухонного стола на 90° вокруг оси Z. 5. Если все еще активны кнопки привязки, а также режим привязки к конеч- ной точке, поместите крышку' кухонного стола на место, привязав ее к углу' крайнего справа шкафа (рис. 7.15). 6. Осталось лишь переместить плоскость сечения в модификаторе Slice дан- ной крышки кухонного стола на то же самое место, где находится другая плоскость сечения, чтобы расположить эти плоскости вровень друг с дру- гом. Выполните эту операцию в активном режиме привязки к конечной точке, т.е. к углу шкафа (рис. 7.16). 7. Сохраните данную сцепу в файле 07_Kitchen_Worktop. шах
208 Часть III. Моделирование Рис. 7.16. Расположение плоскостей сечения вровень друг с другом
Глава 7. Точное моделирование 209 Текущий вариант данной сцены можно посмотреть в файле \Project Files\ Ch07_PrecisionModeling\07_Kitchen_Worktop.max на прилагаемом к этой книге DVD. Итак, вы не только смоделировали крышку стола для кухонной мебели, по и научились без труда изменять структуру объекта. Профили и формы Рассмотрим другое применение сплайнов — в качестве профилей и форм для создания специальной геометрической формы. В следующем упражнении вам предстоит создать верхнюю часть газовой плиты и объединить ее модель с ку- хонной сценой. 1. Откройте сцену из файла \Project Files\Ch07_PrecisionModeling\ 07_Kitchen_Cooktop_Start .max на прилагаемом к этой книге DVD. Эта сцена состоит из нескольких примитивов типа скошенный цилиндр (Chamfer Cylinder), ряда предварительно нарисованных сплайновых форм и профильных кривых. Все эти формы будут использованы для моделиро- вания деталей и отделки верхней части газовой плиты. 2. Выделите сплайн hob_main_panels (Основные напели конфорок) в видовом окне или в диалоговом окне Select Objects (Выделение объектов) (рис. 7.17). Рис. 7.17. Выделенный сплайн панелей конфорок
210 Часть III. Моделирование 3. Примените к данному сплайну модификатор Bevel Profile (Скашивание профиля) на панели Modify. Щелкните на кнопке Pick Profile (Выбрать про- филь) в свитке параметров модификатора Bevel Profile и выберите в окне вида сверху сплайн Hob curve_profile (Криволинейный профиль кс - форок). Сбросьте флажок End (Конец покрытия) в области Capping (Покрытие) из свитка параметров данного модификатора. 4. Профиль проходит по периметру панелей конфорок, но не в том направле- нии, поэтому данное положение необходимо исправить. Перейдите на уро- вень подобъектов модификатора Bevel Profile, выделите подобъект Pro- file Gizmo (Гизмо профиля) и поверните профиль на 180° вокруг оси Z в окне вида в перспективе (рис. 7.18). Q 1=1 fevd Profile З (ft Profit? Gizmo Ш В Е able Vertex | Segment !— Spine | - Parameters | | I Bevel Rofde ; i Pctie'Hob_curve_pfoHe | Pic РгоЙе II .'V Generate Mappmg Coords. j • Cappng - 1 r Cap Type—j ‘J7 Start I 1 J* Morph h | Г* End | | <~ G id I Intersections Г Keep Lne.Faom Crossing | Separation. Я I Рис. 7.18. Вращение гизмо профиля на 180° 5. Если визуализировать верхнюю часть газовой плиты, ее поверхность будет просматриваться насквозь, поскольку ее грани обращены лицом не в том направлении, хотя и расположены верно. Для исправления этого недостат- ка необходимо повернуть нормали граней в противоположном направле- нии. Примените модификатор Normal (Нормаль) и установите флажок Flip Normals (Перевернуть нормали граней) (рис. 7.19).
Глава 7. Точное моделирование 211 Рис. 7.19. Поправленные нормали граней и скошенный профиль 6. Перейдите к окну вида сверху и выделите сначала форму hob_bar01 (Первый пруток на решетке конфорки), а затем перейдите к панели Create и выберите сначала категорию Compound Objects (Составные объекты) из раскрывающегося списка, а затем щелкните на кнопке Loft (Лофт). 7. Выберите форму для составного объекта лофта, чтобы осуществить ее лоф- типг вдоль заданного пути (т.е. формы hob_bar01) Щелкните па кнопке Get Shape (Получить форму) из свитка Creation Method (Метод создания) среди параметров объекта лофта. Перейдите к окну вида сверху и выберите прямоугольник Hob_bar_prof ile (Профиль прутка па решетке конфор- ки) (рис. 7.20). 8. Итак, основание для формы металлических прутков положено и теперь необходимо настроить некоторые устанавливаемые по умолчанию пара- метры, чтобы упростить моделирование этих объектов. Для этой цели ус- тановите флажок Optimize Shapes (Оптимизировать формы) в свитке Skin Parameters (Параметры покрова). Таким образом, в объекте лофта будет использовано столько шагов формы, сколько их выбрано в исходном объ- екте формы (в данном случае это означает использование меньшего коли- чества многоугольников) (рис. 7.21).
212 Часть III. Моделирование Рис. 7.20. Создание объекта лофта из сплайна Рис. 7.21. В результате оптимизации формы каркас получается более четким и легким
Глава 7. Точное моделирование 213 | НА ЗАМЕТКУ_________________________________________________________ Для создания составных объектов требуются два или более элементов. В част- ности, для объекта лофта это путь и форма, причем оба элемента должны быть сплайновыми объектами. После присоединения к объекту лофта форма пере мещается по заданному пути для формирования каркаса. Ввод деталей В реальной жизни объектам не присущи совершенно резкие очертания. Поэто му закругляя края и скругляя углы, можно добиться более естественной формы мо- дели, на поверхности которой появляются подсветки, а следовательно, модель не будет иметь искусственный вид, столь характерный для компьютерной графики. Очевидно, что чем больше деталей в модели, тем сложнее ее геометрическая фор- ма. Поэтому при построении модели необходимо принимать во внимание следую- щие обстоятельства: будет ли модель показана крупным планом и предполагается ли ее сравнение с настоящим объектом? Именно художнику приходится решать, в каком случае объекту требуется дополнительный уровень точности деталей. Для начала рассмотрим некоторые методы ввода столь важных мелких дета лей, продолжив совершенствование объекта лофта. Как упоминалось выше, структуру объектов лофта определяют два сплайна, выбранные в качестве формы и пути. Следовательно, любые изменения этих базовых сплайнов приводят к из мснспию результатов лофтинга. Это обстоятельство будет использовано в сле- дующем упражнении для того, чтобы упростить и ускорить ввод некоторых мел- ких деталей. 1. Вновь выделите объект hob_bar01, перейдите к панели Modify и примени- те на вершине его стека модификатор Edit Spline. 2. Перейдите на уровень подобъектов-вершин модификатора Edit Spline и выде- лите все вершины сплайна. Установите значение 0,3 параметра F llet и на- жмите клавишу <Enter> (рис. 7.22). Используя модификатор Edit Spline вместо непосредственной правки объ- екта, можно достаточно просто и быстро отменить или поправить любые внесенные изменения. Это очень удобно для работы над незавершенными моделями или же для воплощения творческих замыслов в жизнь. 3. Перейдите к окну вида в перспективе. Как видите, скругление оказало по- ложительное влияние на объект лофта, в результате чего углы получились более плавными (рис. 7.23). 4. Повторите предыдущие пункты данного упражнения для двух других сплайнов, обозначающих прутки па решетках конфорок, и примените к по- лученным объектам лофта металлический материал (рис. 7.24).
214 Часть III. Моделирование Рис. 7.22. Скругление вершин с помощью модификатора Edit Spline Рис. 7.23. Закругленные углы объекта лофта
Глава 7. Точное моделирование 215 Рис. 7.24. Вид прутков на решетках конфорок после лофтинга 5. Применение одной и той же формы для моделирования этих трех объектов лофта означает, что их поперечное сечение теперь можно изменить одно- временно. Вновь выделите прямоугольник Hob_bar_prof ile и установите значение 0,05 параметра Corner Radius (Радиус закругления углов) в свит- ке Parameters данного объекта (рис. 7.25). Результаты подобных изменений сказываются сразу: прутки равномер- но скругляются па краях и теперь не имеют резких, неестественных очертаний. 6. Создайте остальные прутки на решетках конфорок. Для этого выделите форму hob_bars и примените модификатор Bevel Profile, выбрав тот же самый профильный объектHob_bar_pгоfile (рис. 7.26). 7. Скопируйте созданные ранее прутки на другую сторону верхней части га- зовой плиты. Для этого выделите три основных прутка в окне вида свер- ху, сгруппируйте, зеркально отобразите и соответственно расположите их (рис. 7.27). 8. Остается лишь сгруппировать все элементы в единый объект и присвоить ему имя hob_complete (Завершенная конфорка) (рис. 7.28). 9. Сохраните данную сцену в файле 07_Ki tchen_Cooktop_Finish. max.
216 Часть III. Моделирование Рис. 7.25. Скругление краев на прутках с помощью параметра Corner Radius Рис. 7.26. Создание остальных прутков с помощью модификатора Bevel Profile
Глава 7. Точное моделирование 217 Рис. 7.27. Зеркальное отображение прутков на другой стороне верхней части газовой плиты Рис. 7.28. Группирование в единый конечный объект и присвоение ему имени
218 Часть III Моделирование Текущий вариант данной сцены можно посмотреть в файде \Project Files\ChO7_PrecisionModeling\07_Kitchen__Cooktop_Finish.max на при- лагаемом к этой книге DVD Итак, модель верхней части газовой плиты завершена, и теперь ее можно объ- единить с кухонной сценой Окончательная сборка При создании таких умеренно сложных сцен, как кухонная, всегда наступает момент, когда отдельные части необходимо объединить в единое целое. В то же время по мере такого объединения приходится постоянно вносить в сцену ка- кие-то дополнения, коррективы, усовершенствования. Подобные завершающие штрихи могут быть сделаны с использованием многих из тех методов точного моделирования, с которыми вы уже ознакомились, плюс еще один или два но- вых метода. В следующем упражнении вам предстоит объединить некоторые объекты со сценой и завершить отделку кухни. Но прежде необходимо вставить верхнюю часть газовой плиты на месте крышки кухонного стола. 1. Откройте сцену из файла \Project Files\Ch07_PrecisionModeling\ 07_Kitchen_Worktop.max на прилагаемом к этой книге DVD или же про- должите работу' со сценой из приведенного ранее упражнения по созданию крышки кухонного стола. 2. Выберите команду File^Merge (ФайлФОбъединить) и перейдите к файлу 07_Kitchen_Cooktop_Finish.max, сохраненному на жестком диске вашего компьютера либо на прилагаемом к этой книге DVD Выделите группу объектов hob complete в диалоговом окне Merge и щелкните на кнопке Open. Верхняя часть газовой плиты, казалось бы, находится на месте, но в данный момент она пересекает крышку кухонного стола. Для того чтобы она правильно вписалась в шкаф, придется проделать отверстие в крышке кухонного стола. 3. Добейтесь четкого вида верхней части газовой плиты в окне вида свер- ху, а затем создайте примитивный параллелепипед по периметру крыш- ки кухонного стола. Особая точность при этом не требуется, поскольку параллелепипед служит лишь для наметки проделываемого отверстия (рис. 7.29). 4. Выделите только что созданный параллелепипед и крышку' кухонного сто- ла, в которой требуется проделать отверстие, а затем выберите команду' Hide Unselected из всплывающего квадратного меню, вызываемого щелч- ком правой кнопкой мыши. 5. Перейдите к панели Create, выберите сначала категорию Compound Ob- jects из раскрывающегося списка, а затем щелкните на кнопке Boolean (Булевый составной объект).
Глава 7. Точное моделирование 219 Подобно объектам лофта, для булевых составных объектов требуется соз- дать п использовать два элемента: один — для вырезания, а другой для врезания, причем оба элемента должны иметь геометрическую форму. В булевой операции один элемент может использоваться для изменения структуры другого. В данном случае необходимо вычесть параллелепипед из крышки кухонного стола. /.ЖВТ О д Ъ а | Standard PrKrtrves \j Г Object Т}ре [ AutcGid Г Box Cone Sphere GedSphc e Cylinder Tube Torus P/antd Teapot Plane | - Name and CotoT Creation Method Cube ® |+ Keyboard Ent у | Length (53.879 £ Witfthj 73.309 C ' Height НЕЕ у Length Segsj ; Width Segsfl C H eicht S egs fl 2 P Generate Mapping Cooids Рис. 7.29. Создание примитивного цилиндра в окне вида сверху 6. Перейдите к свитку' Pick Boolean (Выбор булевого объекта) и щелкните сначала на кнопке Pick Operand В (Выбрать операнд В), а затем па паралле- лепипеде в видовом окне, чтобы выделить его. В крышке кухонного стола появится отверстие (рис. 7.30). 7. Отобразите все объекты па сцене, чтобы посмотреть, как модель газовой плиты вписывается в отверстие, проделанное в крышке кухонного стола (рис. 7.31). НА ЗАМЕТКУ В силу сложного и изменчивого характера булевых операций их результаты трудно предсказуемы. При их выполнении 3ds max приходится принимать в рас- чет пересечение с каждой гранью обоих операндов. Естественно, что эти труд- ности увеличиваются по мере усложнения исходной геометрической формы. Поэтому булевы операции чаще всего применяются для вычитания и объедине- ния простых объектов, чтобы добиться более точных результатов.
220 Часть Ill. Моделирование Рис. 7.30. Выполнение булевой операции для проделывания отверстия в крышке кухонного стола Рис. 7.31. Верхняя часть газовой плиты, встроенная в кухонный шкаф
Глава 7. Точное моделирование 221 Завершающие штрихи Итак, в кухонную сцепу введена и вписана геометрическая форма из другого файла. В следующем упражнении вам предстоит сделать то же самое, чтобы за- вершить работу над моделями шкафов. 1. Выберите команду File^Merge и перейдите к файлу 07_Kitchen_Cupboard_ Doors.max. Выберите группу объектов Cupboard Doors (Дверцы кухонного шкафа) в диалоговом окне Merge и щелкните па кнопке Open. Теперь сцепа со- держит две модели кухонного стола в одной группе. 2. Выберите инструмент Select and Move па основной панели инструментов, нажмите клавишу <Shifl> и создайте методом перетаскивания клопы шкафа вдоль оси Y, выбрав их тип Instance по ходу выполнения данной операции. 3. Если скопированные двери все еще выделены, выберите инструмент Align па основной панели инструментов и щелкните в сцепе на объекте Unit04. 4. Откроется диалоговое окно Align Selection (Выравнивание выделенного). Щелкните па кнопке-переключателе Pivot Point (Точка опоры) в области Cur- rent Object (Текущий объект), а также па кнопке-переключателе Maximum в области Target Object (Целевой объект). В итоге выделенная группа объек тов выровняется по дальнему краю шкафа. А поскольку шкаф требуется пере- местить только но одной оси, ограничьте данное преобразование одной лишь осью Y, установив соответствующий флажок в области Align Position (World) (Выравнивание положения в системе мировых коор щнат) (рис. 7.32). Рис. 7.32. Выравнивание шкафов
222 Часть III. Моделирование 5. Скопируйте и поверните модель шкафа, чтобы завершить создание компо- нентов кухни (рис. 7.33). Рис. 7.33. Компоненты кухни в завершенном виде Завершив создание основной кухонной сцены, вы можете попробовать сде- лать следующее: • Добавить подвесные шкафчики. • Создать обеденный стол из примитивов. • Смоделировать и вписать в кухонный шкаф раковину и кран. • Вытянуть шторы или же создать жалюзи, используя инструмент Array. Резюме В этой главе вы научились моделировать целый ряд объектов из самых элемен- тарных форм. Разбивая объекты па простейшие составляющие, можно понять, ка- ким образом сложные модели могут быть построены относительно просто, но в го же время точно. Попробуйте применить методы точного моделирования, описан- ные в этой главе, для моделирования настоящих объектов, которые вам приходится видеть каждый день. Уделите сначала внимание основным формам, азатем важным деталям модели (скругленным краям, щелям и углам). Добившись желаемого ре- зультата, вы можете перейти к воплощению в жизнь собственных замыслов. В следующих главах этой части будут рассмотрены более совершенные методы моделирования, имеющие отношение к созданию окружающей среды и персонажей.
Глава 8 Моделирование окружающей среды Эрин Николсон Для художника очень важно уметь передавать доступными ему изобразитель- ными средствами миры, возникающие в его воображении. Многие художники в какой-то степени нс в ладах с реальностью и предпочитают уходить от нее во время работы над своими произведениями. Благодаря возможностям компью- терной графики манящие воображение картины художников-фантастов теперь определяют визуальный стиль популярной культуры. Примером тому служит впе- чатляющая архитектура из серии фильмов “Властелин колец” и томные индуст- риальные пейзажи из игры “Doom 3". В 3ds max 7 имеются довольно хороню развитые инструменты для создания виртуальных окружающих сред, мало чем отличающихся от настоящих. Модели- рование окружающей среды в 3ds max может превратиться в свободное творчест- во. но в то же время стать непомерно сложной задачей, если ее не удается разбить на более мелкие и удобные для выполнения шаги. Таким образом, незначитель- ное планирование существенно упрощает работу над проектом. Именно такой подход и будет принят в этой главе. Сначала вы сами создаете самую простую окружающую среду. Затем заполняете ее привлекательными объ- ектами и вводите в нее атмосферу с освещением и ночным небом Для того чтобы сделать все это, необходимо хорошо представлять себе, что именно требуется для сцепы. А такое представление проще всего составить, ис- пользуя хорошо продуманный план. Однако независимо от того, насколько де- тально продуман план, он служит отличным средством для повышения произво- дительности труда. План может принимать вид фотографий, компоновок, каран- дашных набросков, составленных на компьютере эскизов и всего что угодно — лишь бы он служил визуальным ориентиром для ваших намерений. На рис. 8 1 представлен концептуальный эскиз, который я быстро набросал карандашом на бумаге. На нем без дополнительных деталей, которые можно вве- сти в дальнейшем, обозначены самые важные элементы сцепы и их взаимное расположение.
224 Часть III. Моделирование Рис. 8.1. План сцены, набросанный вчерне карандашом Имея перед собой план сцены, можно приступать к моделированию отдельных ее частей. На примере проекта для создания окружающей среды в этой главе по- степенно раскрываются особенности применения основных инструментов моде- лирования. а также ряда новых свойств, внедренных в версии 3ds max 7. Построение скалистом местности В этой главе демонстрируется применение карта Normal и свойств диалогового окна Render То Texture наряду с проецированием карт смещения (Displacement) в версии 3ds max 7. Кроме того, здесь рассматриваются как старые, так и новые функции моделирования и такие важные понятия, как многократное использова- ние объектов и выбор цвета Назначение этой главы научить вас пользоваться но- выми инструментами 3ds max в рамках единого проекта Черновая разметка геометрическом формы сцены Приведенный выше эскизный план дает ясное представление о том, какую сцену требуется моделировать, а остальное уже сделать намного проще. Сначала необходимо смоделировать скалистый утес на переднем плане сцены, что и будет сделано в следующем упражнении.
Глава 8. Моделирование окружающей среды 225 1. Начтите робот}' с новой сцены. Создайте сначала плоскость длиной 2000 единиц и шириной 3000 единиц. Оставьте без изменения количество сег- ментов в длину и ширину равным 4 (рис. 8.2). -и 1 Г | - Parameter? | Length 12000 0““ С Width|3GOO 0 : Length Segs [4 Z V/dth Segs.f- C Render Mulbplrers Scale, j-3 С I Density. (T0 C Total Faces 32 P Generate Mapping Coords. Рис. 8.2. Создайте плоскость, которая будет служить в качестве земли 2. Перейдите к панели Modify и выберите из списка модификатор Edit Poly, чюбы применить его к плоскости. 3. Посмотрите на утес, приведенный па рис. 8.1, и представьте себе, как будет . выглядеть его основание. Сначала необходимо создать форму этого осно- вания, а зат ем вытянуть утес в высоту. Для эт ой цели перейдите на уровень подобъектов-ребер (Edge) и создайте новые многоугольники, присоеди- ненные к исходной плоскости. Выделите ребро инструментом Select and Move, нажмите клавиш}' <Shift> и переместите ребро в нужном направле- нии. Это очень простой способ создания многоугольников из уже имеюще- гося объекта. Как показано на рис. 8.3, несколько ребер были выделены и перемещены вместе для создания новых многоугольников, соединенных друг с другом, а также с исходной плоскостью. 4. Продолжайте перемещать ребра описанным выше способом до тех пор, пока не пол}чите требуемую форму. Некоторые внешние ребра придется масшта- бировать чтобы сделать суженными ребра на границе утеса (рис. 8.4).
226 Часть III. Моделирование Рис. 8.3. Создание новых многоугольников из ребра, перемещаемого инструментом Select and Move при одновременно нажатой клавише < Shift > Рис. 8.4. Контур основания утеса
Глава 8. Моделирование окружающей среды 227 Далее необходимо вытянуть утес до нужной высоты, выделив все много- угольники его основания. Такое вытягивание будет выполнено в четыре этапа чтобы создать на боковых сторонах утеса горизонтальные участки которые нарушают монотонность его формы и делают ее более сложной и привлекательной. 5. Выделите все .многоугольники у основания утеса, а затем щелкните на кнопке Extrude в свитке Edit Polygons (Правка многоугольников) модифика- тора Edit Poly. Перетащите многоугольники вверх левой кнопкой мыши, сформировав первый уровень или горизонтальный участок (рис. 8.5). Рис. 8.5. Вытягивание утеса на определенную высоту | Edt Poly Mode ~| • Model Arwnate No Current Dperal*on> Г" Show Cage | Selection | □ 9 F I Г” Use Slack Selection | Г By Vertex I I” Ignore BackJacing . Г” By Angle | Z Shank Grow Gel Stack Selection 22 Po^gons Selected {4- Soil Selection | | - Edit Polygon; ' | Insert Vertex Extrude □ Ouline □ Bevel □ Inset □ Bridge □ Flp Hinge From Edge □ Extrude Along Spine П Edt Triangulation Relrrangulate Turn 6. Воспользуйтесь преобразованием масштаба, чтобы немного масштабиро- вать выделенные грани и тем самым сузить утес внутрь и поднять его вверх. В данном случае инструмент Extrude используется совместно с преобразо- ванием масштаба вместо инструмента Bevel, поскольку6 7 он позволяет со- блюдать границы формы исходной плоскости основания. А при использо- вании инструмента Bevel границы формы искажаются в зависимости от ве- личины скашивания, что в данном случае нежелательно. 7. Отмените выделение двух многоугольников, показанных на рис. 8.3, а затем продолжите вытягивание вверх до нового горизонтального участка. Вновь масштабируйте выделенные грани внутрь и отмените выделение очеред ной грани на границе вытягиваемой формы (рис. 8.(5). Повторите эту же операцию еще раз.
228 Часть IIL Моделирование Рис. 8.6. Второй вытянутый уровень |- Edit Poly М е | ’• Model 1 Anmote <No Current Opeialion> Г* Show Cage |- Setectwn ] □ 6> Г Use Slack Sefecbon Г* By Vertex Г Ignore В ackfacing Г ByAngfe I C Shrink Grow Gel Slack Selection 21 Po^gons Selected | i Soft Sritxbon | 1 - Edit Polygon; | Insert Vertex Extrude □ OurtB e □ Bevel □ nset П ВокЗде □ Ffp Hinge From Edge П . Extrude Along Spine □ Edit Tr angu alion Relrrangjlate Turn 8. Отмените выделение двух многоугольников, показанных на рис. 8.7 и вновь вытяните очередной уровень. Масштабируйте этот уровень не- много наружу, чтобы образовать небольшой выступ. Затем повторите вы- тягивание вверх па очень малую величину. Столь малое вытягивание по- зволяет оставить край утеса острым, когда в дальнейшем будет применен модификатор сглаживания. 9. Под каждым горизонтальным участком, или уровнем, необходимо также поместить петли из ребер, чтобы эти участки оставались плоскими и не ис- кривлялись при сглаживании объекта. Для этой цели выделите вертикалы ное ребро ниже каждого горизонтального участка, а затем щелкните на кнопке Ring (Кольцо) из свитка Select ОП модификатора Edit Poly. При этом выделяются ребра, соседние с выделенными ребрами на границе четырех- сторонних многоугольников. В данном каркасе выделенные ребра будут распространяться вокруг всего объекта, поскольку он состоит исключи- тельно из четырехсторонних многоугольников (рис. 8.8). 10. Если указанные выше ребра выделены, щелкните па кнопке Connect (Соеди- нить) в свитке Edit Edges (Правка ребер) модификатора Edit Poly. Таким об- разом, соседние ребра соединятся в непрерывную петлю из ребер (рис. 8.9).
Глава 8. Моделирование окружающей среды 229 Рис. 8.7. Завершающий вытянутый уровень { Edit Ро>/ Mode | • Model r Animate <No Ccrren» Operator» F Show Caps | ..Setegfen | 8 & Г Use Stack Selection I F By Vertex F ignore BacWacng F ByAngte | C Shmk Gtow Gel Stack Selection 1В Polygons Selected | ♦ Soil Selectron | | - Edu Polygons | Insert Vertex Extrude □ Ouhne C Bevel □ Inset □ Bridge □ Pip Hinge From Edge C E xlrude Along SpSne П Edit T ranculaton Relnanguhte Turn Рис. 8.8. Выделение кольца из ребер
230 Часть III. Моделирование Рис. 8.9. Ввод петли из ребер Edi Poly Mode * Model AnmsAe <No Cwrent Opesation> f~ Show Саде Selection □ (3 П Use Stack Selection Г By Vertex Г” Ignore Backlectng г,., . I : Shrink Grow Ring I Loop ] Get Stack Selection | 72 Edges Selected | ♦ Soft Setectioc | Edt Edges Remove ] Split__________j I Insert Vertex f Weld □ Exhude П Target Weld [ Chamie П Create Shape □ i E<BT'' i fan 11. Выберите вариант Edge из раскрывающегося списка Constraints (Ограничения) в свитке Edit Geometry (Правка геометрической формы) модификатора Edit Poly (рис. 8.10). Рис. 8.10. Выбор режима ограничения по ребрам 12. Отмените выделение всех упомянутых выше ребер, щелкнув на пустом участ- ке в видовом окне. Выделите ребро в самой нижней из вновь сформирован- ных петель и щелкните на кнопке Loop (Петля из ребер) из свитка Select on модификатора Edit Poly. При этом будут выделены только что созданные реб- ра. Если режим ограничения по ребрам все еще активен, перенесите данную петлю из ребер вверх вдоль вертикальных ребер, расположив ее ниже грани- цы самого нижнего горизонтального участка (рис. 8.11).
Глава 8 Моделирование окружающей среды 231 | - Selection 11 □ & I Г Use Stack 5ejection Г By Vertex | П Itjiore B*ckf*cng г - I £1 Shrink Grow Ring Loop Get Stack Selection 1 28 Edges Selected (» Soft Selection | I- Ed* Edges | Remove Split Insert Vertex Weld □ Extrude □ Target Weld Chamfer □ Connect □ Create Shape □ Edit Tn | EdtGeometiy | Repeat La« Constraints [Edge ; PreseiveUVs D Create Colapse Attach □ Detach '□ Slice Plane Г" Spit 45 50 55 GO 65 70 75 80 85 90 95 100 Рис. 8.11. Перемещение петли из ребер в режиме ограничения по ребрам | - election | J~ Use Stack Selectron ГЛ е*| J~ Ignore 8 ackfacng Shrink Grow 8 - i Get Stack Selection /Vertices Selected 14- Soft Selection ] Edit Vertices | Remove Break Extrude □ WeJd □ Chamfer □ TargetWeki Connect Remove Isolated Vertices Remove Unused Map Verts |- Edit Geometry ’__________Repeat Last Constraints-1 None * Г~ Preserve UVs □ Create Colapsc Attach В Detach □ j Slice Plane Spft Рис. 8.12. Завершенная форма утеса
232 Часть III. Моделирование 13. Повторите приведенную выше процедуру для двух других петель из ребер, чтобы расположить их вблизи границ соответствующих горизонтальных участков. Благодаря этому верхние края горизонтальных участков останут- ся плоскими при последующем сглаживании с помощью модификатора MeshSmooth или TurboSmooth. На данном этапе рекомендуется округлить и откорректировать форму утеса, выделив вершины или ребра и персмес тив их до получения нужной формы (рис. 8.12). Как ни странно, но на этом моделирование утеса завершается. Остальные его детали будут введены с помощью карт Displacement. После этого карта Norma бу- дет получена из смещенного каркаса с использованием диалогового окна Render То Texture. Для управления смещением утеса с помощью карт необходимо раз- вернуть координаты их проецирования на каркас утеса, что и будет сделано в сле- дующем упражнении. Проецирование карты местности Проецирование карт, или наложение различных текстур и эффектов освещения на поверхность трехмерного объекта, предоставляет немало возможностей для управления внешним видом моделей, будь то скалистые утесы или резиновые утки Едва ли не половину воздействия, оказываемого на зрителя, когда он смотрит па качественно сделанную трехмерную модель, обычно относят на счет текстур и ос- вещения. Поэтому не менее важную роль играет проецирование текс турных карт. В частности, модификатор Unwrap UVW является очень важным инструментом управления точностью отображения карт на любой трехмерной модели, и поэтому он будет интенсивно использоваться в следующем упражнении. Учитывая эти пред- варительные замечания, можно приступать к развертыванию модели утеса. 1. Итак, петли из ребер расположены под горизонтальными участками утеса, и теперь необходимо осуществить развертку данного объекта. Для этого вый- дите из режима работы с подобъектами, щелкните правой кнопкой мыши па модификаторе Edit Poly в стеке модификаторов объекта утеса и выберите из всплывающего контекстного меню команду Collapse АН (Свернуть все). Дан- ный объект преобразуется в редактируемый многоугольный каркас. 2. Выберите из списка модификатор Unwrap UVW, чтобы применить его к модели утеса. Перейдите па уровень подобъектов-грапей (Face), чтобы можно было выделять многоугольники утеса в пределах действия модифи- катора Unwrap UVW. Убедитесь в том, что в свитке Selection Parameters (Параметры выделения) данного модификатора установлен флажок Ignore Backfacing (Игнорировать невидимые грани). Далее необходимо развернуть объект утеса в передней, задней и верхней проекциях, а затем соединить края передней и задней проекций, чтобы по- лучить в итоге длинную многоугольную полосу для проецирования карт. 3. Обведите рамкой выделения все видимые многоугольники в окне вида спе- реди. Перейдите в режим выделения окна, щелкнув на кнопке Window/ Crossing (Окно/Пересечение) основной панели инструментов. Затем от- мените выделение верхних многоугольников объекта утеса, расположен-
Глава 8. Моделирование окружающей среды 233 ных перпендикулярно виду спереди. Нажмите клавиш}' <Ctrl> и щелкните левой кнопкой мыши, чтобы добавить к уже выделенным многоугольникам любые многоугольники, не охваченные спереди утеса рамкой выделения. Нажмите клавипгу <Alt> и отмените выделение любых многоугольников па задней стороне угеса (рис. 8.13). Р~ Selection Parameters fi? ignore Backfacing P Select By Element Г Planar Angle | 5 C Edt Reset UVWs Save. Load... Channel: * Map Channel: | £ C Vertex Color Channel Select SG Sub Object Params: Г X Parameters Averaged Normals J Display I r Show No Seams । Thin Seam Display i Thick Seam Display || П Prevent Reflattenna Рис. 8.13. Выделение многоугольников для планарной проекции | НА ЗАМЕТКУ______ В версии 3ds max 7 среди параметров модификатора Unwrap UVW появилась кнопка-переключатель Thick Seam Display (Отображение толстого шва) (см рис. 8.3), выбираемая по умолчанию в области Display (Отображение) из свитка Parameters данного модификатора. В видовом окне швы отображают я толстыми зелеными линиями, проходящими по краям швов вдоль поверхности модели. Эти швы можно сделать тоньше, щелкнув на кнопке-переключателе Thn Seam Display (Отображение тонкого шва), или же вообще отключить их отображение, щелкнув на кнопке-переключателе Show No Seams (Не показы- вать швы) в области Display указанного выше свитка. 4. Если на передней стороне утеса выделены все многоугольники, выровняйте планарную карту по оси Y, щелкнув на кнопке-переключателе Y в области Sub Object Params (Параметры подобъектов) из свитка Parameters, а затем щелкните на кнопке Planar Мар (Планарная карта). Щелкните на кнопке Edit в том же свитке, чтобы открыть окно Edit UVWs (Правка проекции
234 Часть III. Моделирование UVW). В этом окне отображается планарная проекция передней части кар- каса с перекрывающимися многоугольниками, на которые еще не наложена планарная проекция. Переместите многоугольники, выделенные па перед- ней стороне утеса, в сторону от перекрывающихся многоугольников ос- тальной части утеса. 5. Остальную час гь утеса нетрудно разделить па части. Для этого выберите из главного меню команду Edit^Select Invert (Правка^Обратное выделение). Выделенными окажутся многоугольники в остальной части утеса. Вновь щелкните на кнопке Planar Мар. Переместите в окне Edit UVWs много- угольники, па которые только что была наложена планарная карта, в сто рону от центра области UVW-проецирования (обозначенной синим квадра- том). Затем выделите верхние многоугольники утеса и выберите Z в качест- ве оси выравнивания планарной карты. Щелкните на кнопке Planar Мар в последний раз. Таким образом, получены развернутые планарные проек- ции верхней, передней и задней групп многоугольников (рис. 8.14). Рис. 8.14. Основные планарные проекции утеса в развернутом виде 6. На задней стороне утеса можно заметить некоторые перекрывающиеся ребра, т.е. там, где два отдельных вертикальных ряда вершин находятся близко друг к Другу. Для устранения этого недостатка переместите соответ- ствующие вершины вручную в окне Edit UVWs.
Глава 8. Моделирование окружающей среды 235 7. Итак, многоугольники правильно спрямлены, и теперь можно соединить вместе многоугольники передней и задней сторон утеса. Для этого перей- дите па уровень подобъектов-ребер, щелкнув на кнопке Edge Sub-Object Mode (Режим работы с подобъектом-ребром) в области Selection Modes (Режимы выделения), расположенной в нижней части окна Edit UVWs. Вы- делите все ребра па передней стороне утеса и зеркально отобразите их вы- брав инструмент Mirror Horizontal (Зеркальное отображение по горизонта- ли) на панели инструментов окна Edit UVWs. 8. Отмените выделение ребер на передней стороне утеса, а затем выделите обозначенные зеленым цветом ребра передних многоугольников, прохо- дящие по центру утеса. После выделения эти ребра становятся красными, а соответствующие ребра па задней стороне утеса — синими. Выберите ко- манду Tools'^Stitch Selected (ИпструментыФСостыковать выделенное). Сбросьте флажки Align Clusters (Выровнять скопления) и Scale Clusters (Масштабировать скопления) в открывшемся диалоговом окне Stitch Se- lected. Оставьте без изменения установленное по умолчанию значение 0,5 параметра Bias (Смещение) и щелкните на кнопке ОК, чтобы закрыть диа- логовое окно Stitch Selected. Далее необходимо переместить ребра, чтобы избавиться от их перекрывания, добившись в итоге такого же результата, как и на рис. 8.15. Ведь в данном случае преследуется цель разверну! ь объ- ект, не теряя его исходных пропорций. Рис. 8.15. Стыковка ребер
236 Часть III. Моделирование 9. Завершающий этап развертки объекта утеса состоит в том, чтобы вместить его проекции в область UVW-проецирования (обозначенную синим квадра- том и выровненную по сетке па заднем плане). Для этого необходимо соот- ветственно масштабировать отдельные проекции объекта. Это можно сде- лать автоматически с помощью команды Tools4>Pack UVs (Инструменты^ Уплотнить проекцию UV). Но при этом размеры отдельных частей объекта не приводятся в соответствие с его фактическим размером. А ведь эго очень важно, поскольку пропорции развернутого объекта должны оставаться таки- ми же, как и у эквивалентных частей трехмерной модели. В проз ивном случае это может привести к недопустимому растягиванию текстур па объекте. Для того чтобы сделать то же самое вручную, выделите отдельные элемен- ты и уменьшите их масштаб до нужного размера в области UVW-проеци- рования. После этого поместите их вплотную, по без перекрытия в области UVW-проецирования. Для более плотного расположения в области UVW- проецирования и максимального покрытия карты следует также масштаби- ровать боковые стороны модели по горизонтали. И хотя такое масштаби- рование по горизонтали несколько нарушает правило соблюдения пропор- ций, его можно впоследствии компенсировать за счет мозаичного распо- ложения карты по горизонтали в редакторе материалов. Но, как правило, необходимо все же соблюдать пропорции проекции UV по отношению к соответствующим многоугольникам исходной модели (рис. 8.16). Рис. 8.16. Вписывание проекции UV в область UVW-проецирования
Глава 8. Моделирование окружающей среды 237 На этом процесс развертывания объекта утеса завершается. Следующий этап состоит в применении материала к объекту утеса и смещению каркаса этого объекта с помощью модификатора мирового пространства Displace Mesh (WSM) в зависимости от конкретного применяемого материала. Повышение сложности модели с помощью материалов С помощью материала смещения создается требуемый вид геометрической формы поверхности без дополнительного ввода новых многоугольников. Ради про- стоты в данном проекте па позиции карты смещения (Displacement) в материале камня будут использованы процедурные карты, а на позиции карты цвета рассеяния (Di fuse Color) — ряд растровых карт. (Типы и методы проецирования карт более подробно рассматриваются в следующих главах.) К процедурным материалам, бли- же всего соответствующим образцам каменной породы, относятся процедурные карты Cellular (Ячеистая) и Smoke (Дым). В библиотеке материалов имеются и дру- гие процедурные карты, в том числе Noise (Зашумление) и Marble (Мрамор), но этому у вас всегда есть возможность для экспериментирования в поисках требуемо- го эффект». Кроме того, карты Displacement могут быть раскрашены. Обычно эю требует времени, по в данном случае это совершенно излишне. В настоящем разделе рассматривается проецирование карты Normal. Такое про- ецирование является разновидностью проецирования карты смещения и новым свойством 3ds шах 7, очень полезным для получения требуемого внешнего вида дета- лей без большого количества многоугольников в сцене. При подобном проецирова- нии данные геометрической формы поверхности представлены с помощью карты отображе шя цветов, чтобы обеспечить реагирование поверхности на свет и тень. Карта Normal преобразует информацию о векторах XYZ в карту RGB, где красный цвет обозначает вектор X (горизонталь), зеленый цвет— вектор Y (вертикаль), а си пии цвет — вектор Z (глубина). Когда такая карта накладывается на объект, ее каналы цвета придают объекту вид геометрической формы с большим числом детален. В этом отношении их можно сравнить с картами рельефности (Bump). Проецирование карты смещения на модель утеса А теперь введем в сцепу ряд карт. 1. Сохранив текущую сцену, откройте сцену из файла \Project Files\ChO8_ EnvironmentalModeling\Landscape CliffDisplace.max на прила' - мом к этой книге DVD. Эта сцепа содержит развернутые модели утеса с высо- ким и низким разрешением. При желании вы можете продолжить работу над своим вариантом сцепы, объединив с ней содержимое данного образцового файла, применив материал и скопировав модификаторы в каркасный объект утеса. Напомним, что для копирования модификаторов из одного объекта в другой достаточно щелкнуть правой кнопкой мыши на модификаторе в стеке и выбрать команду' Сору из всплывающего меню. Затем следует выделить объ- ект, щелкнув на нем в стеке модификаторов, и выбрать из всплывающего меню команду Paste или Paste Instanced (Вставить полученный экземпляр). 2- Обратите внимание на модель утеса с высоким разрешением HiRes_hero- clif f. Компьютеру требуется некоторое время, чтобы отобразить смещенный
238 Часть III. Моделирование каркас. В свитке Displacement Approx (Аппроксимация смещения) модифика- тора Displace Mesh (WSM), примененного к модели утеса HiRes_herocliff, установлены флажки Custom Settings (Специальные иастройкг) и Subdivision Displacement (Смещение подразделения), а также выбран метод подразделения Spatial and Curvature (Пространственный с кривизной). В полях обоих па а- метров, Edge (Край) и Distance (Расстояние), установлено значение 60, а в поле параметра Angle (Угол) — значение 30. Не вдаваясь в подробности, отметим, что чем больше значения этих трех параметров, тем меньше число много- угольников, формируемых методом подразделения. В целом, чем в меньшей степени геометрическая форма используется для получения требуемого эф фекта, тем лучше. Обратите также внимание па дополнительные параметры смещения, доступные с помощью кнопки Advanced Parameters в том же свитке. Среди них выбран способ подразделения Delaunay (Делонэ). Такой способ смещения не только дает паилучшие результаты, по и позволяет полущить очень плотные триангулированные каркасы (рис. 8.17). Рис. 8.17. Параметры настройки смещения В названии модели утеса используется термин “hero” - главное действующее лицо. В компьютерной графике этим термином обычно обозначаются моде- ли объектов или персонажей, которые занимают центральное место в сцепе и к которым приковано основное внимание зрителей. Следовательно, такая модель должна иметь привлекательный вид. В данной сцене эту роль играет утес на переднем плане, поэтому он и называется HiRes_herocliff, т.е. мо- дель утеса с высоким разрешенном как главное действующее лицо.
Глава 8. Моделирование окружающей среды 239 3. Откройте редактор материалов и обратите внимание на материал HiRes_ herocliff, примененный к модели HiRes_herocliff. Наиболее важна в нем позиция карты смещения (Displacement), поэтом}' уделите внимание прежде всего ей. Па позиции этой карты назначен материал Mix (Смешение), состоя- щий из карты Cellular, смешанной па 50% с картой Smoke. Обратите также внимание на большие размеры карт Cellular и Smoke (соответствешю 3000 и 2000). Такие размеры объясняются крупными масштабами модели утеса. НА ЗАМЕТКУ Процедурные карты отличаются от растровых тем, что они не зависят от разре- шения. Их размеры устанавливаются по соответствующим размерам объекта, на который они накладываются. А у растровых карт число пикселей фиксировано, а значит, и фиксировано их разрешение. Поэтому они проявляют мозаичность по мере увеличения размеров объекта, на который они накладываются. Обратите внимание на позицию карты цвета рассеяния (Diffuse Color) в ма- териале HiRes_heroclif f. На позиции этой карты также назначен матери- ал Mix, состоящий из карт Cellular и Smoke тех же размеров. Отличие состоит ливп> в том, что в образцах цвета карты Smoke изменены процедурные цвета и введены растры. Кроме того, карта смещения назначена на позиции карты рельефности (Bump), поскольку проецирование карт смещения и рельефно- сти основано па использовании одних и тех же полутоновых значений, вы- бираемых из этих карт (рис. 8.18). Рис. 8.18. Исследование позиции карты смещения в материален Res_herocliff
240 Часть 111. Моделирование 4. Отключите модификатор Displace Mesh, щелкнув на пиктограмме лампоч- ки рядом с его названием в стеке модификаторов. Как только результаты смещения перестану г отображаться в видовом окне, нажмите клавишу <Shifl> и щелкните па модели утеса, предварительно выбрав инструмент Select and Move. Откроется диалоговое окно Clone Options, которое позво- ляет создать копию перемещаемого объекта. Назовите эту новую копию утеса LoRes_heroclif f, т.с. модель утеса с низким разрешением как глав- ное действующее лицо. На эту модель будет спроецирована карта Normal. Перенос деталей с помощью проецирования карты Normal В следующем упражнении вам предстоит спроецировать карту' Normal для пе- реноса деталей из модели утеса с высоким разрешением на его модель с низким разрешением. Это своего рода перемещение материальных ценностей в трех- мерной среде. 1. Перетащите материал HiRes_heroclif f на другую позицию в редакторе материалов и переименуйте его па LoRes_heroclif f. Назначьте этот ма- териал для модели LoRes_heroclif f. 2. Если обе модели выровнены, а объект LoRes_herocliff выделен, нажмите клавишу' <0>, чтобы открыть диалоговое окно Render То Texture. Перейдите к области Projection Mapping в свитке Objects to Bake и установите флажок Enabled. Затем щелкните на кнопке Pick в этой же области и выберите объект HiRes_herocliff, указав тем самым текстуры объектов для сведения. (Сведение— это процесс объединения нескольких слоев текстур в единую текстуру.) В стеке модификаторов объекта LoRes_heroclif f появится мо- дификатор Projection. С его помощью визуализируемые текстуры будут пере- несены с объекта HiRes_heroclif f на объект LoRes_herocliff. (По су- ществу, это означает заимствование деталей у объекта с высоким разрешени- ем для объекта с низким разрешением.) Сбросьте флажок Sub-Object Levels, расположенный ниже кнопки Pick в области Projection Mapping из свитка Objects to Bake (рис. 8.19). 3. Щелкните на кнопке Options в области Project on Mapping, чтобы открыть диалоговое окно Projection Options. Выберите вариант Local XYZ в качест вс- системы пространственных координат для проецирования карты Normal. Благодаря этому карта Normal будет визуализирована без сведения в нее данных освещения. Это удобно в том случае, если объект, на который на- ложена карта Normal, потребуется использовать в других местах сцены, по- вернув его в разные положения, для чего, разумеется, сведение данных ос- вещения совершенно излишне. Как только будет выбрана указанная систе- ма координат, закройте диалоговое окно Projection Mapping (рис. 8.20).
Глава 8. Моделирование окружающей среды 241 •__________________________________________________- - | - Object; to Bake | biacl Sub Object Edge Name_________________ Channel Channel oddity] I LoRes_haoclfl fOSO Outputs) 1 2 SdtdedObjecl Settings-------------------------—-----------1 у Enabfed Paddrg. [5 * Prelection Mapping ———-------------—------ Enabfed Projection ▼ Pick . Options... У Obptcl Level Г Sub Object Levels • PultoB’kedM lenal Fut to Baked Material G it Г o-vrlr - I Mappng Coordinates Objecl. • Use Existng Channel , Г------— " Use Automatic Unwrap arTl । —Ц Cleat Unwrappers Individual • All Selected All Prepared ||- Output I File Натте________Ejemeni Hams ^Size Tara Sc«t • Alphabetical ~ By Type C ByCoku By Size List Types w* * Geometry All r*' Shapes None n? Lights Invert S* Cameras P Helpers Space itfatps Groups/Assembliet I? XRefs v Bone Objects Selection Sets r- : Г- Display Subbee Г” Case Sent live l~ z-fert Stevie* Dep*-»,»rf. Cancel Рис. 8.19. Выбор текстур для сведения и переноса с помощью проецирования карты Normal М| | Objects to Babe | Object Sub-Object Edge Name Channel Channel Padding LoRe$_heiocitf OSO Outputs) 1 Selected Object Settings V Enabled Parting p C Projection Nappng У Enabled IPigecbon ~ P"ck Options- p Object Level Г” Sub-Object Levels • Put to Baked Material Pul to Baked Material ( Mcppng Coosdnates Object- ’• Use Existing Cham J “ Use Automatic Unwrap ПГе I jE Clear Unwrappers ndvidual • All Selected AH Prepared I • Ray trace •' IV Match л/ Use Cage File Name _________Output__________ । E emenl Name Size^ ResdveHR --------------------—----------------------------1 Closest ’• Furthest I- Hit OnV» Matching Material ID V Ray miss check . Include Working Model Ray rrwss ccfoi. |~| | Noimal Map Space ---- *. r* World < Screen « LocalXvZ Г Tangent Tangent Di X: 1 Left • RifiKt Y Up •' Down , Height Map Min Height* pioo C Buffer nnn Height -4818.G24 Max Hei^M.|iao ; Вufte max Height 7 5.252 Рис. 8.20. Параметры визуализации в текстуру для карты Normal
242 Часть III Моделирование 4. Щелкните па кнопке-переключателе Use Existing Channel (Использовать су- ществующий канал) в области Mapping Coordinates (Координаты проециро- вания) из свитка Objects to Bake. Перейдите к свитку Output в диалоговом ок- не Render То Texture, щелкните на кнопке Add и выберите элемент Nor- malsMap из списка в открывшемся диалоговом окне Add Texture Elements Ос авьте без изменения размер визуализируемой карты 256 пикселей в об- ласти Selected Element Common Settings (Общие параметры настройки вы- бранного элемента) из свитка Output. В области Selected Element Unique Set- tings (Уникальные параметры настройки выбранного элемента) этого же свитка установите флажок Output into Normal Bump (Вывод в карту нормалей рельефности). Перейдите к свитку Baked Material и щелкните на кнопке- переключателе Output into Source (Вывод в исходную карту). Благодаря уста- новке двух последних параметров карта Normal выводится на позиции карты рельефности в материале объекта LoRes_herocliff (рис. 8.21). Objects to Bake Selected Object Settrigs v Enabled Object Sub Object Edge Name____________________Channel Channel Peddng LoRe _haocliff OSO Outputs) 1 Те. File Name Element Name | Size Dbtects and Sources LoRes_herocHf (0 SO Outputs) Tangent * Down P Ray miss check Reymtss color □ Filtering Options Г“ Crop Alpha Norma! Map Space Г World Г Tangent De X: Local XrZ i Y. Г Up Resolve Hi Closed '• Furthest Г Hit OrfyMalchrxj Material Ю Г“ Include Working Model BUfer min -4618.024 Biifer max Height 715.252 - Method - •-------- Retrace r UV Match Use Cage ndrviduai * All Selected AH Prepared Height Map | Mr Height poo Max Height (lO.lT Рис. 8.21. Параметры настройки расположения карты Normal в материале Projection Mapprg Enabled Projection ▼ Pick. Options... P Object Level Г Sub-Object Levels • Pul to Baked Material Put to Baked Material Mapping CoortSnates Obert • UseE^Charrel r Use Automatic Unwrap SynchAJ Gkobd SupersampJer None Setup. Oar Unwiappers 5. Если объект LoRes_herocliff все еще выделен, перейдите к панели Modify и обратите внимание на параметры модификатора Projection, автоматически введенного при настройке параметров в диалоговом окне Render То Texture 6. В списке из свитка Geometry Selection этого модификатора объект HiRes_ herocliff указан в категории Object Level (Уровень объекта). Синий кар- кас проекции вокруг объекта утеса имеет довольно беспорядочный вид, но это положение можно исправить. Перейдите к свитку Саде и щелкните на кнопке Reset. После этого установите значение 300 параметра Amount
Глава 8. Моделирование окружающей среды 243 в области Push (Выталкивание каркаса) в том же свитке, чтобы вновь охва- тить каркасом объект HiRes_heroclif f. 7. Теперь можно приступать к визуализации. Но прежде измените путь к вы- ходном}' файлу в свитке General Settings диалогового окна Render То Texture, указав папку, в которой хранятся карты. Щелкните на кнопке Render, распо- ложенной в нижней части данного диалогового окна, и посмотрите, что из этого получится (рис. 8.22). Сравните полученный результат с соответствуто- щей картой из папки \Project Files\Ch08_EnvironmentalModeling\ на прилагаемом к этой книге DVD. Рис. 8.22. Подготовка к визуализации Завершение создания модели утеса Красным цветом на визуализированном изображении утеса обозначены про- рехи в его каркасе или, вероятнее всего, те места где каркас проекции пересека- ется с каркасом объекта HiRes_herocliff (рис. 8.28). (При выводе, организуе- мом в диалоговом окне Render То Texture, невидимая карта Normal, находящаяся па позиции карты рельефности в материале LoRes_herocliff. также визуали- зируется в качестве карты типа Normal.) Эти недостатки будут устранены ниже для завершения модели утеса.
244 Часть III. Моделирование Рис. 8.23. Проверка результатов визуализации в текстуру на предмет обнаружения недостатков | НА ЗАМЕТКУ__________________________________________________________ Красным цветом в визуализированных изображениях иногда обозначаются про- пуски лучей во время трассировки. Этот цвет можно изменить в диалоговом ок не Projection Options, открываемом с помошью кнопки Options в области Projec- tion Mapping из свитка Objects to Bake. 1. Дпя того чтобы избавиться от упомянутых выше пересечений, придется при- бегнуть к манипулированию каркасом проекции (рис. 8.24). Для этого перей- дите па уровень подобъекта-каркаса (Саде) в модификаторе Projection, где можно манипулировать вершинами, образующими каркас проекции. Устано- вите флажок Shaded (Затененный вид) в области Display из свитка Саде. Лю- бой каркасный объект, пересекающий каркас проекции, окажется за преде- лами затененной поверхности данного каркаса. Как только станут видны трудные участки модели, выполните манипулирование вершинами каркаса проекции, чтобы он не пересекал эти участки. После внесения этих измене- ний вновь выполните визуализацию и проверьте визуализированное изобра- жение на наличие красных участков.
Г лава 8. Моделирование окружающей среды 245 Рис. 8.24. Манипулирование каркасом в модификаторе Projection Q S Protection I— Cafle — Face у— Element ..... ....... П_ЕфаЬ1еРаГу_2 Чй If о I IS 2. Установите размер 1024 пикселей визуализируемой карты в области Se- lected Element Common Settings из свитка Output. Визуализируйте карту Normal и закройте диалоговое окно Render То Texture. 3. Скройте модель утеса HiRes_herocliff и визуализируйте сто модель Lo- Res_herocliff. Теперь эта модель будет иметь такой вид как будто она смещена аналогично модели с высоким разрешением в визуализированном изображении. Для того чтобы сделать чуть более ровными края объекта LoRes_herocliff, в него можно ввести модификатор TurboSmooth. Но- вый для версии 3ds max 7 модификатор TurboSmooth является усеченным вариантом модификатора MeshSmooth, причем результаты сто применения намного быстрее отображаются в видовых окнах (рис. 8.25). 4. Откройте сцену из файла \Project Files\Ch08_EnvironmentalMode ling\Landscape_CliffNormalMap.max на прилагаемом к этой книге DVD, чтобы посмотреть конечный результат проецирования карты Normal на модель утеса с низким разрешением. Итак, вы ознакомились с основами смещения моделей с помощью проециро- вания карты Normal Приведенная выше последовательность операций наложе- ния карт Displacement и Normal будет вновь использоваться при моделировании плоскости основания на следующем этапе работы над проектом создания окру- жающей среды.
246 Часть III. Моделирование Рис. 8.25. Ввод модификатора TurboSmooth в модель утеса LoRes_heroclif f Моделирование плоскости основания Завершенную модель утеса можно использовать для получения на сцепе осталь- ных утесов и гор. Но прежде необходимо создать плоскость основания, чтобы по- местить па пей все эти утесы и горы. По сравнению с моделированием утеса для вас это будет довольно простое упражнение, особенно после того, как вы ознакомились с последовательностью операций наложения карт Displacement и Normal 1. Откройте новую сцепу в 3ds шах и создайте в окне вида сверху примитив- ную трубу (Tube) следующих размеров. • Radius 1 (Внешний радиус) = 3000. • Radius 2 (Внутренний радиус) = 29000. • Height (Высота) = 5000. • Cap Segments (Число сегментов покрытия) = 11. 2. Примените к трубе модификатор Edit Poly. Перейдите в этом модификато- ре на уровень подобъектов-многоугольпиков (Polygon) и обведите рамкой выделения всю нижнюю часть трубы в окне вида спереди. Затем щелкните несколько раз на кнопке Grow (Нарастить) в свитке Select ОП, чтобы выде- лить все грани, кроме сегментов верхнего покрытия трубы Удалите выде- ленные многоугольники. В итоге останутся только сегменты верхнего по- крытия трубы (рис. 8.26).
Глава 8. Моделирование окружающей среды 247 Рис. 8.26. Создание из примитивной трубы плоскости основания для долины 3. Присвойте видоизмененной трубе имя LoRes_valleyfloor (Долина с низ- ким разрешением). Объедините с текущей сценой модель утеса LoRes_ herocliff из файла предыдущей сцены или же из файла \Project Files\ Ch08_EnvironmentalModeling\Landscape_CliffDisplace.max на при- лагаемом к этой книге DVD. Переместите объект LoRes_valleyf loor вниз, чтобы он пересекал модель утеса чуть выше его нижнего края (рис. 8.27). 4. Выполните быстрое планарное (Planar) проецирование карты по оси Z па объект LoRes_valleyf loor с помощью модификатора UVW Мар. 5. Щелкните правой кнопкой мыши на объекте LoRes_valleyfloor и выбе- рите из правого нижнего квадратного меню команду Convert То1^ Convert to Editab е Poly (Преобразовать1^Преобразовать в редактируемый много- угольник). 6. Вновь щелкните правой кнопкой мыши на объекте LoRes_valleyfloor и выберите из правого нижнего квадратного меню команду Clone. Сделайте ко- пию объекта LoRes_valleyf loor и присвойте ей имя HiRes_val ley floor. 7. Откройте редактор материалов, перейдите на пустую позицию образца ма- териала и щелкните на кнопке Get Material (Получить материал). Щелкните на кнопке-переключателе Mt Library (Библиотека материалов) в области Browse From (Где смотреть) окна Material/Мар Browser, а затем щелкните на кнопке Open в области File этого же окна. Найдите файл \Project Files\ Ch08_EnvironmentalModeling\HiRes_valleyfloor.mat на прилагае- мом к этой книге DVD и откроите его (рис. 8.28).
248 Часть III. Моделирование Рис. 8.27. Расположение модели утеса LoRes_heroclif f на сиене Рис. 8.28. Загрузка файла библиотеки материалов Hi Res valleyf loor .mat
Г лава 8. Моделирование окружающей среды 249 8. Дважды щелкните на материале HiRes_valleyfloor, чтобы открыть его на пустой позиции образца материала. Назначьте этот материал для объек та HiRes_val ley floor. Затем примените к данному объекту модификатор Displace Mesh (WSM) со следующими параметрами. • Флажок Custom Settings —Установлен. • Флажок Subdivision Displacement —Установлен. • Кнопка-переключатель Spatial and Curvature — Выбрана. • Поля Edge, Distance. Angle 30,30,30. • Кнопка-переключатель Delaunay в области Subdivision Style — Выбрана. 9. Как только на модели HiRes_valleyf loor появится смещение, вернитесь к модели LoRes valleyfloor и введите дополнительные петли из ребер, воспользовавшись ипс грумептами Ring и Connect подобному тому, как это было сделано ранее с моделью утеса. Затем поднимите геометрическую форм}' модели LoRes valleyfloor, чтобы смещение па пей приб тизи- тельпо совпало со смещение па модели HiRes_val ley floor (рис. <8.29). |LoRes_g акфкле । Modfe List Q EcSablePc^ji If Selection Рис. 8.29. Получение геометрическом формы модели LoRes_val ley floor 10. Перемести i e материал HiRes_val ley floor на пустую позицию образца материала и присвойте ему имя LoRes_valleyf loor. Удалите карт) Mix па позиции карты Displacement в данном материале, а затем назначь! с ег о для модели LoRes_valleyfloor.
250 Часть III. Моделирование 11. Повторите для .моделей долины с высоким и низким разрешением процесс ви- зуализации в текстуру, описанный выше для аналогичных моделей утеса, чтобы сформировать карту' Normal. Затем скройте модель HiRes_valleyf loor, что- бы посмотреть результат проецирования карты Normal на модель LoRes valleyfloor. Сравните полученный результат со сценой из файла \Project Files\Ch08_EnvironmentalModeling\Landscape_Valley_Floor.max на прилагаемом к этой книге DVD 12. Откройте сцену из файла \Project Files\Ch08_EnvironmentalMode- ling\Landscape_Terrain.max на прилагаемом к этой книге DVD, чтобы посмотреть, каким образом сцепа заполнена видоизмененными копиями утеса В этом разделе вы научились создавать впечатляющую глубину и детализацию в окружающей среде, используя в умеренном количестве геометрическую форму, благодаря проецированию карты Normal. Для такого моделирования окружающей среды требуется время, но затем полученные модели могут быть без труда визуа- лизированы и повторно использованы, поскольку они содержат намного меньше данных, чем смещенные геометрические формы. Теперь можно переходить к следующему этапу работы над проектом создания окружающей среды. Кратер Возможно, кратер не такой страшный, как преисподняя, но это объект совер- шенно иного типа по сравнению с теми, что были созданы до сих пор в данной сцене. В следующем упражнении кратер будет расположен посредине плоскости основания. Для большей внушительности на кратер будет спроецирована карта Normal с чужеродными, светящимися красным светом рисунками, чтобы обозна- чить его мощь и адскую силу. Такие чужеродные рисунки могут быть созданы как с помощью инструментов рисования форм и контуров в Adobe Photoshop, так и посредством булевых опе- раций, выполняемых в 3ds max 7. В следующем упражнении используется карта, созданная подобными методами. 1. Начните работу' с новой сцепы и создайте примитивную трубу следующих размеров (рис. 8 30). • Radius 1 = 2900. • Radius 2 3400 • Height 7500. 2 Преобразуйте трубу в редактируемый многоугольник, выделите много- угольники на верхнем краю трубы и вытяните их приблизительно на 300 единиц (рис. 8.31).
Глава 8. Моделирование окружающей среды 251 Рис. 8 30. Создание примитивной трубы, которая будет превращена в кратер -и К Ей | - Selectron | □ в Г By Vertex Г" Ignore В acWacing Г" By Angle | С Shirk Grow 18 Po^gons Selected | + Soft Selectron | | - Er» Powers ~| Insert Vertex Erfrude П Outline О Bevel П Inset П Bndge П FSp Hinge From Edge П E Muds Along Spline □ Er» Tnangulaton Retnangdate Turn |- E jit Geometry | Repeal Last Constrants. | Hone Г” Preserve UVs П Create Colapse Attach П Detach Рис. 8.31. Выделение и вытягивание многоугольников на верхнем краю примитив- ной трубы
252 Часть III. Моделирование 3. Выделите вертикальные многоугольники, расположенные чуть ниже верх- него края трубы. Вытяните их наружу, чтобы создать фланец на верхнем краю трубы (рис. 8.32). •« II Г | Selection | В 0 Г By Vertex Г Ignore ВасИаситд Shrink Grow 18 Polygons Selected f » Sett Selection j Edit Polygons | Insert Vertex Exliude П Dutfrw П Bevel О Inset В Bridge П Flip Hinge From Edge □ Erfrude Along Spbne П lj Edit Triangdabon Relwigdate Turn | - Edit Geometry { Repeat Last Constraints; I None ' Г Preserve UVs C Create j Collapse | Attach П Detach [ Рис. 8.32. Создание фланца на верхнем краю трубы инструментом Extrude 4. Выделите каждый второй многоугольник вдоль полученного фланца и вы- тяните эти многоугольники наружу сначала на небольшую величину, а затем на большее расстояние, чтобы создать выступы по краю фланца. Затем вы- тяните многоугольники на краях выступов, чтобы заострить их. Удалите внешнюю часть трубы ниже фланца, чтобы оставить только ее внутреннюю часть и фланец. Введите дополнительные петли из ребер во внутренней части фланца, а также на верхней и нижней сторонах выступов Благодаря этому’ края фланца и выступов останутся острыми после применения моди- фикатора TurboSmooth (рис. 8.33). 5. Примените к трубе модификатор Unwrap UVW и разверните ее таким обра- зом чтобы верхняя сторона фланца вместе с выступами оказалась в области UVW-нроецировапия обозначенной синим прямоугольником в окне Ed t UVWs. Разверните внутреннюю часть трубы, чтобы она оказалась внутри развернутых многоугольников фланца в окне Edit UVWs (рис. 8.34).
Глава 8. Моделирование окружающей среды 253 | - Selection 1 Whote Object Selected | + Soft Selection | [ EdtGecmeliy | Repeat Last Constiarts । None Г Preserve UVs □ Create Attach □ U- |r SpU QuckSbce Cut MSmooth □ Tessellate П Make Planar X У Z View АЬрт Grid Align Relax □ Рис. 8.33. Ввод выступов и дополнительных деталей в модель кратера (при выклю ченном режиме отбора невидимых граней) I -и К е И Selection Р*вте ей ♦ л/ грехе Backfacing Г Select By Element Г" Pknar Angle |15.0 C Select MaUD П C Select SG p z | Parameters | Edt Reset UVWs Save Load Channel. • Map Channel p C I* Г Vertex Color Channel Sub Object Param. X , - Y I r z • Averaged Normals HcfiarMap Display. । (' Shew No Seams 1 Г Thin Seam D splay I - л .. Рис. 8 34. Модель кратера, развернутая и готовая к проецированию карты
254 Часть III. Моделирование 6. Присвойте трубе имя Pit_HiRes (Кратер с высоким разрешением) и при- мените к этой модели трубы модификатор TurboSmooth. 7. Перейдите к редактору материалов и выберите пустую позицию образца материала. Щелкните на кнопке Get Material, а затем на кнопке- переключателе Mtl Library в области Browse From окна Material/Map Browser. Загрузите библиотеку материалов из файла \Project Files\ChO8_Envi- ronmentalModeling\Fierypit.mat на прилагаемом к этой книге DVT). Дважды щелкните на материале HiRes Pit. Как видите, этот материал по- лучен из сочетания двух материалов: Red Lava (Красная лава) и Gray Metal (Серый металл), причем на позиции карты смещения последнего назначен чужеродный рисунок из файла Pit_Pattern. tga (рис. 8.35). Рис. 8.35. Загрузка материала HiRes_Pit и его назначение для модели кратера 8. 11римепите модификатор Displace Mesh (WSM) к модели кратера и устано- вите флажки Custom Settings и Subdivision Displacement Выберите метод подразделения Spatial and Curvature и установите значение 40 параметров Edge и Distance, а также значение 10 параметра Angle. Щелкните на кнопке Advanced Parameters и выберите способ подразделения Delaunay (рис. 8.36).
Глава 8. Моделирование окружающей среды 255 Рис. 8.36. Ввод модификатора Displace Mesh в модель кра ера -и I к е Ей Г tsplacemont Appro*. | Update Mesh К* Custom Sellings V Subdrrtswn Di« lajemen Г* SpIlMesh - Subdvtsion Presets | Low Medium Hk/i Stirf vision Method ' C Regular Steps: | Z | C Spatial | <“ Curvaiue * patial end Cixva’.uie Edge: |40 0 C Distance: [40 0 C Angle f- - Advanced Parameter.. Проецирование карты Normal на модель кратера Далее вам предстоит спроецировать карту Normal на модель кратера с низким разрешением. Теперь это не составит для вас большого труда, хотя и послужит в качестве дополнительной практики, чтобы разрешить любые вопросы, которые у вас еще могли остаться. 1. Выключите модификатор Displace Mesh в модели Pit_HiRes. Нажмите клавиш}' <Shift> и переместите эту модель, чтобы скопировать ее, а затем присвойте вновь полученной копии имя Pit_LoRes. Удалите модификатор из модели Pit_LoRes. 2. Скопируйте материал Pit_HiRes на пустую позицию образца материала и переименуйте его на Pit__LoRes. Удалите карту Displacement из материала Gray Metal и назначьте для модели Pit_LoRes материал Pit_LoRes (рис. 8.37). 3. Если модель Pit_LoRes все еще выделена, откройте диалоговое окно Ren- • der То Texture. Установите флажок Enabled в области Projection Mapping из свитка Objects to Bake и щелкните на кнопке Pick. Выберите модель Pit_HiRes в качестве исходного объекта для наложения проекции на це- левой объект Pit_LoRes. Щелкните на кнопке Options, а затем на кнопке- переключателе Local XYZ в области Normal Map Space (Пространство для проецирования карты нормалей) диалогового окна Projection Options. Щелкните на кнопке-переключателе Use Existing в области Mapping Coordi- nates из свитка Objects to Bake, оставив без изменения значение 1 в поле параметра Channel (рис. 8.38).
256 Часть III. Моделирование Рис. 8.37. Создание материала Pit LoRes из материала Pit_HiRes и его назначе- ние ДЛЯ модели Pit_LoRes Clee* Uriwiappets Al Selected Г Individual Output Pick Ust Selected Objtcl Selling: p Enabled СЭ Object Level Pit Hfies Views Render Render Unwrap Only Close Orighd. Baked Name PiLLoReS (0 SO Outputs] Рис. 8.38. Выбор объектов для сведения их деталей в карту Normal Channel. LhanneJ Padd no |Pi_LoRes |Modifier Let □ Projection V T uiboSmoolh | □ EdtabtePoly Padding. Г2 Rejection Mapping F? Enabled | Projection __r Options. RF Ob'ect Level I Sub Object Levels • Put to B^ed Material ' Put to Baked Material Mapping Coadnales Object * Use Existing Channel Г Use Automatic Unwrap Al Prepared GeomeVy Selection
Глава 8. Моделирование окружающей среды 257 4. Щелкните на кнопке Add в свитке Output, а затем из списка выберите элемент NormalsMap. Выберите вариант Bump из раскрывающегося списка Target Map Sot (Позиция целевой карты) в области Selected Element Common Set- tings и установите значение 1024 в поле Size. В области Selected Element Unique Settings этого же свитка установите флажок Output into Normal Bump. И наконец, установите флажок Output into Source в свитке Baked Material (рис. 8.39). Рис. 8.39 Настройка параметров формирования карты Normal в диалоговом окне Render То Texture 5. Теперь можно приступать к визуализации карты Normal. Но прежде убеди- тесь в правильности расположения каркаса проекции вокруг моделей Pit_LoRes и Pit_HiRes. Чтобы настроить этот каркас, щелкните на кнопке Reset и установите значение 200 параметра Amount в области Push из свитка Саде. После успешной визуализации карты Normal она появится в качестве карты Normal Bump в материале Gray Metal, входящем в состав ма- териала Pit_LoRes (рис. 8.40). 6. Осталось лишь объединить модель Pit LoRes со сценой ландшафта и про- верить, насколько удачно эта модель в нее вписывается. Откройте сцену из файла \Project Files\Ch08_EnvironmentalModeling\Landscape_ FieryPit .шах на прилагаемом к этой книге DVD чтобы посмотреть, как она выглядит на данном этапе работы над проектом (рис. 8.41).
258 Часть III. Моделирование Рис. 8.40. Результат вывода карты Normal в материале Gray Metal Рис. 8.41. Вид завершенной модели кратера после объединения с остальной окру- жающей средой
Глава 8. Моделирование окружающей среды 259 На этом рассмотрение методов моделирования объектов с проецированием кар1 ы Normal завершается. Разумеется, в моделирование сцены всегда можно внести дополнительные усовершенствования или же строить ее на основе уже имеющихся объектов. Приобретя навыки моделирования утесов, долины и кра- тера с использованием карт Normal и Displacement вы непременно почувствуете, как данный метод почти вошел у вас в привычку. Смещение всегда связано с оп- ределенными трудностями, тогда как применение карты Normal вполне оправды- вает ожидания. По сравнению с этим выполнить следующий этап создания окру- жающей среды — ее освещение с помощью ярко светящихся кристаллов — будет не так уж трудно Кристаллы Кристаллы — это неорганические вещества, которыми необходимо дополнить создаваемую сцепу окружающей среды. В данный момент эта сцепа выглядит тем- новатой и пустынной, поэтому' в нее следует ввести контрастирующие элементы, привлекающие внимание зрителей. Это будут кристаллы, светящиеся неярким голубым светом, контрастирующим с общей красноватой окраской сцепы. Такой свет придает сцепе холодноватый оттенок на ее краях, а посредине опа имеет те- плый оттенок. Даже если вы не стремитесь вложить в сцену особенно глубокий смысл, никогда не упускайте возможность предоставить зрителям пищу для раз- мышлений над своей работой. И в этом вам поможет правильно подобранная па- литра цветов. 1. Продолжите работу над проектом с повой сцены. Сначала создайте прими- тивную пирамиду (Pyramd) шириной (Width) и глубиной (Depth) 400 еди ниц, а также высотой (Height) 300 единиц (рис. 8.42). 2. Преобразуйте пирамиду в редактируемый многоугольник. Выделите ниж- ние многоугольники пирамиды и вытяните их инструментом Bevel вниз приблизительно на 1500 единиц, а затем уменьшите приблизительно в 2 раза масштаб вытянутой части пирамиды. Присвойте видоизмененной пирами- де имя CrystalOl (Первый кристалл) Это довольно простой способ соз- дания кристалла. 3. Перейдите к напели Hierarchy (Иерархия) и щелкните па кнопке Affect Pivot Only (Оказывать влияние только па точку опоры). Переместите точку оно ры вниз к нижней стороне кристалла (рис. 8.43). 4. Щелкните на кнопке Affect Pivot Only, чтобы отключить ее, затем нажмите клавишу <Shift> м создайте инструментом Rotate несколько копий кристал лов вокруг исходного объекта CrystalOl. Добившись нужного расположе- ния кристаллов, выберите объект CrystalOl и щелкните па кнопке Attach List (Присоединить список), расположенной справа от кнопки Attach в свитке Edit Geometry. Выдели те в списке все копии кристаллов и присое- дините к ним объект CrystalOl (рис. 8.44).
260 Часть III. Моделирование Рис. 8.42. Создание пирамиды Рис. 8.43. Видоизменение точки опоры кристалла . I У. & Е? т jPyramidOl Pivot IK Link Info! J- Adjust Pivot । Move/Rota'e/Scale---------- ' Affect Prvot Only Affect Object Qnfr | I Affect Hiejaichy Only | r- Alignment-------- Center to Object [ Align to Object Aiyn iWc<ld Prvrt Reset Prvot Transform | I Move/Rotate/Scale------------ Don't Affect Children Re;et-------------------- Twnsform , Scale
Глава 8. Моделирование окружающей среды 261 Рис 8.44. Создание скопления кристаллов и их соединение друг с другом 5. Перейдите в редактор материалов, выберите пустую позицию образца мате- риала и щелкните на кнопке Get Material. Щелкните на кнопке-переключателе Mtl Library в области Browse From окна Material/Map Browser, а затем щелкните на кнопке Open в области File этого же окна. Загрузите библиотек} материалов из файла\Project Files\Ch08_EnvironmentalModeling\Crystals.mat па прилагаемом к этой книге DVD. Назначьте для модели CrystalOl мате- риал типа Raytrace неяркого голубого цвета. В канале проецирования эффек- тов этого материала (Material Effects Channel) установлено значение 1. Эго дает возможность назначить эффект свечения для кристалла, как только он будет объединен с основной сценой. Сохраните полученный результат в фай ле Crys ta101.max. 6. Откройте сцену из файла Landscape_FieryPit .max, объедините с ней модель CrystalOl, а затем скопируйте эту модель на сцене, расположив полученные копии у подножия утесов. Каждый из кристаллов можно до- полнить свечением и источниками света, чтобы выделить их на сцене. Для того чтобы посмотреть, как в конечном итоге должна выглядеть сцена, от- кройте ее из файла \Project Files\Ch08_EnvironmentalModeling\ Landscape_Crystals .max на прилагаемом к этой книге DVD. В этой сце- не кристаллы дополнены свечением (Glow) из эффектов в объективе (Lens Effects), а всенаправленные источники света освещают утесы вблизи кри- сталлических образований. Кроме того, в сцене присутствует красное объ- емное освещение, идущее из глубины кратера и придающее сцене более
262 Часть III Моделирование эффектный вид. Если требуется ускорить визуализацию, уменьшите до 20 значение параметра Sample Range (Диапазон выборки) для красного объ- емного освещения, хотя при слишком малых значениях этого параметра после визуализации возникает неприятный артефакт полосатости. Итак, сцена окружающей среды постепенно начинает вызывать своим видом определенный интерес. А благодаря тому что эта сцена содержит небольшое чис- ло многоугольников, она визуализируется относительно быстро (рис. 8.15). Не- обходимую cieneiib детализации и глубину утесам и долине придает проецирова- ние карты Normal. Кратер и светящиеся красным светом чужеродные рисунки приковывают к себе основное внимание, а утесы освещены как лунным светом, так и светящимися кристаллами Туман сообщает сцене некоторый палет таинст- венности. а звездное небо — холод и безмолвие. Рис. 8.45. Визуализированное изображение сцены из файла Landscape_Crystals.max Следует ли считать эту сцену завершенной? Вряд ли. Любую сцен}' окружаю- щей среды всегда можно сделать более интересной и содержательной. Возможно данной сцепе недостает растительности. Создание растительности Огромное разнообразие окружающей нас флоры просто поражает воображе- ние. По последним оценкам число только растительных видов на Земле составля- ет около 450 тысяч, причем еще нс изученных — 50 тысяч. Конечно, такое разно-
Глава 8. Моделирование окружающей среды 263 образие растительного мира едва ли возможно воссоздать средствами компью- терной графики, тем не менее, можно хотя бы попытаться создать его иллюзию. В этом разделе вам предстоит создать небольшой образчик растительной жизни, которым можно заполнить полученную ранее сцену окружающей среды. Не сле- дует ограничивать себя лишь одним ландшафтом. Ведь моделирование расти- тельности — это отличная возможность для создания целой библиотеки растений для многократного использования в самых разных видах окружающей среды! Моделирование дерева Моделирование дерева может превратиться в весьма утомительное занятие, по- скольку деревья имеют сложную форму и насчитывают множество видов. Однако эту задачу можно разбить на более мелкие и удобные для выполнения части. От- дельные части дерева неоднократно повторяются, что позволяет упростить его мо- делирование. Поэтому назначение следующего упражнения — начать с простого и постепенно усложнять модель дерева, используя многократно повторяющиеся ее элементы. Если соблюдать правильный порядок, то можно очень быстро и с мини- мальными затратами труда построить относительно простую модель дерева. Ствол дерева 1. Начните моделирование дерева с новой сцены. Создайте примитивный па- раллелепипед (Box) следующих размеров. • Length (Длина) = 40. • Width (Ширина) = 40. • Height (Высота) =20. • Length Segments (Число сегментов в длину) = 2 • Width Segments (Число сегментов в ширину) = 2. • Height Segments (Число сегментов в высоту) = 1. 2. Введите в параллелепипед модификатор Edit Poly и выделите ребро на пе- ресечении двух перпендикулярных сторон параллелепипеда. Щелкните па кнопке Loop в свитке Selection, чтобы получить две петли из ребер, схо гя- щихся в центре на верхней и нижней сторонах параллелепипеда. 3. Масштабируйте эти выделенные совокупности ребер наружу в равной сте- пени по осям X и Y до тех пор, пока параллелепипед не приобретет форму, больше похожую на круг, если смотреть на него сверху (рис. 8 46). 4. Нарисуйте в окне вида спереди криволинейный сплайн над параллелепипе- дом (объект LineOl). Если этот сплайн находится над параллелепипедом и все еще выделен, перейдите к панели Hierarchy и щелкните на кнопке Affect Pivot Only. Затем выберите инструмент A ign на основной панели инструмен- тов и щелкните на параллелепипеде. Щелкните на кнопке-переключателе Pivot Point (точка опоры) и установите флажки X Axis, У Axis и Z Axis в диало- говом окне Align Selection, чтобы выровнять точки опоры сплайна и паралле- лепипеда, а также их оси XYZ. Затем щелкните на кнопке Affect Pivot Only из панели Hierarchy, чтобы отключить ее (рис. 8.47).
264 Часть III. Моделирование |- EOirroyiWQQg I < Model Anmale <No Current Operation: Рис. 8.46. Создание основной формы ствола дерева Г Show Cage I- Sriactior. | a s Г Use Stack Selection | Г B31 Vertex Г Ignore Backlacing Shrink Glow Ring Loop Get Stack Selector! 12 Edges Selected [*4- Salt Selection | |- Eeft Edges | Remove Split Insert Vertex Weld □ Extrude □ Target Wd J Chamfer В Corned □ Create Shape____□ Edit Tn Turn |- Eeft Geometry Repeat Last Constraints: | Adjust Pivot | Move/Rctate/Scate; Affect Pivot Only | Affect Object On&i Affect Hierarchy Only Aljrnrht Center to Object Align to Object Afign to World Pivot Reset Pivot | - Adjust T amform | Move/Rotdte/Scale------------ Dent Affect Children Reset —-------------------- Transform Scale |- Skin Pose 1 Enabled. । !•/ Position I P Rotation S' Sr* Рис. 8.47. Подготовка к вытягиванию многоугольников вдоль сплайна
Глава 8. Моделирование окружающей среды 265 5. Выделите четыре многоугольника на верхней стороне параллелепипеда и щелкните па кнопке Settings, расположенной рядом с кнопкой Extrude Aong Spline (Вытянуть вдоль сплайна). Откроется диалоговое окно Extrude Along Spline. Щелкните на кнопке Pick Sp ine (Выбрать сплайн) и выделите объект Lined в видовом окне. Установите флажок A ign Го I асе Normal (Выровнять по нормали грани) и установите значение -0,8 параметра Та per Amount (Величина сужения). Щелкните на кнопке ОК, чтобы закрыть диалоговое окно Extrude Along Spline. В результате выполнения этих дейст- вий сформируется ствол дерева (рис 8.48). Рис. 8.48. Вытягивание многоугольников вдоль сплайна 6. Прежде чем продолжить моделирование целесообразно выполнить раз- вертку ствола дерева таким образом, чтобы подготовить его к вводу ветвей Воспользуйтесь модификатором Unwrap UVW, чтобы развернуть ствол де- рева в три планарные проекции: переднюю, заднюю и верхнюю Сость куй- те переднюю и заднюю проекции ствола дерева, чтобы свести к минимуму швы, оставив отдельно отстоящей верхнюю проекцию (рис. 8.49).
266 Часть III. Моделирование Рис. 8.49. Быстрое разворачивание ствола дерева Ветви дерева Как и у настоящего дерева, ветви у трехмерной модели дерева вырастают из ствола. В следующем упражнении демонстрируется порядок их создания 1. Введите еще одну петлю из ребер в промежутке между двумя верхними пет- лями, чтобы создать ветви в верхней части ствола дерева. 2. После ввода дополнительной петли выделите каждое второе вертикальное ребро на боковой стороне в верхней части ствола дерева и увеличьте их масштаб, чтобы округлить поперечные сечения ветвей дерева (рис 8.50). 3. Создайте еще один сплайн (объект Line02), обозначающий кривизн}' ветви, а затем выделите два многоугольника в верхнем ряду на правой стороне ство- ла дерева. Щелкните па кнопке Extrude A ong Spline и выделите объект Line02, чтобы создать ветвь дерева. Используйте те же самые настройки ре- жима вытягивания вдоль сплайна, в том числе флажок Align То Face Normal и значение -0,8 параметра Taper Amount (рис. 8.51). 4. Выполните развертку ветви дерева таким же образом как и его ствола, прежде чем переходить к следующему пункту данного упражнения. 5. Выделите многоугольники на конце ветви дерева, а затем щелкните несколь- ко раз на кнопке Grow в свитке Selection, чтобы выделить всю ветвь. Нажмите клавишу <Shift> и скопируйте многоугольники данной ветви Щелкните на кнопке-переключателе Clone То Element (Клонировать в виде элемента) вот крывшемся диалоговом окне Clone Part of Mesh (Клонирование части карка- са). Поверните полученные копии перед многоугольниками в том месте, где новая ветвь должна соединяться со стволом дерева (рис. 8.52).
Глава 8. Моделирование окружающей среды 267 EoxOl f’Modifef List Q □ Unwrap UVW <? л 9 □ EdFFofc <7 — Vertex — Edge <7 - - Bolder Polygon Element I R™ ft 1 BO I- EdiPofrMcde * Mode} Anmate (No Current Uperat»on> f~ Show Cage | Selection | □ О Г Use Stack Esdectkn Г ByVeitex Г Igrnre Backfacng г Г-------------------: Sk/ink G Ring Loop Get Slack Selection 4 Edges Selected |« Soft Selection | Рис. 8.50. Подготовка ствола дерева к вытягиванию ветвей □ EdMbtePoly -ft HI П | election | в Г By Vertex Г Ignore Backfacrg П By Angle: | C Shrrk Grow 2 Polygons Selected | + Soft Selection | |- EdtPotyflora | Insert Vertex Eidrude В Outline В Bevel □ Inset В Bridge В Ftp I mge rom Edge □ Extrude Along S pbne В ЕЛ Triangulation Retriangdate Tun Рис. 8.51. Вытягивание ветви из ствола дерева
268 Часть III. Моделирование ГЬ EdtablePo^ "□ Рис. 8.52. Создание копии ветви дерева -Й ][ 6. Повторите эту же процедуру для двух других ветвей дерева. Удалите два многоугольника в том месте ствола, где будет присоединена следующая ветвь дерева. Щелкните правой кнопкой мыши на кнопке Snaps Toggle из основной панели инструментов, чтобы открыть диалоговое окно Grid and Snap Sett ngs. Установите флажки Vertex и End Point во вкладке Snaps, что- бы указать целевые объекты привязки. Закройте диалоговое окно Grid and Snap Settings. Воспользуйтесь инструментом 3D Snap (Трехмерная привяз- ка), чтобы привязать вершины ветви к тем вершинам, которые расположе- ны по краю отверстия в стволе дерева (рис. 8.53). 7. Выполнив описанную выше операцию привязки для каждой ветви дерева, перейдите на уровень подобъектов-границ (Border), обведите рамкой выде- ления границы между каждой ветвью и стволом и щелкните правой кнопкой мыши, чтобы вызвать квадратное меню. Выберите команд}' Convert to Vertex (Преобразовать в вершину) из левого верхнего квадратного меню. Все выде- ленные границы преобразуются в вершины, находящиеся вдоль этих границ. Затем воспользуйтесь инструментом Weld, чтобы объединить сразу все ветви дерева. Если вершины правильно привязаны на месте с помощью инструмен- та 3D Snap, их объединение не составит большого труда (рис. 8.54).
Глава 8. Моделирование окружающей среды 269 Рис. 8.53. Подготовка к присоединению скопированных ветвей со стволом дерева [tree | Modifier Ls$l j В Editable Poly 0 f— Vertex 1 Edge — Bolder 0 Polygon -- Element -w If 8 I В | - Selection [ □ « I Г* By Vertex I Г Ignore В ack feeing г -i- I c Shrirk Glow Ring loop 32 Edges Selected | + Scft Selection ( | Edit Bordets | Insert Vertex Cap Ertrude □ Bridge □ Chamfer □ Connect В Create Shape F om Selection Weight |To C Crease: [00 C Рис. 8.54. Преобразование границ в вершины перед объединением
270 Часть III. Моделирование Корни из уже имеющихся каркасов и карт А теперь, когда имеются ветви дерева, необходимо смоделировать его корне- вую систему. Сделать это будет намного проще из уже имеющейся геометриче- ской формы и карт ветвей. Это хороший пример повторного использования по- лученных результатов в др гих целях ради экономии времени и труда. 1. Необходимо скопировать ветви дерева, перевернуть их вверх дном и при- соединить к нижней части ствола, как описывалось выше. А поскольку раз- вертка всех этих частей дерева уже была выполнена ранее, развертывать корни не нужно (рис. 8.55). 2. Далее следует перестроить структуру развертки, чтобы уменьшить количе- ство швов и тем самым упростить впоследствии наложение карт на корни дерева. Для этой цели придется объединить ряд швов и изменить располо- жение развернутых ветвей и корней, хотя самая трудоемкая часть этой работы уже сделана. Откроите сцену из файла \Project Files\ChO8_ EnvironmentalModeling\Tree_Unwrapped.max на прилагаемом к этой книге DVD и посмотрите в диалоговом окне Edit UVWs, как должны выгля- деть все развернутые вместе части дерева (рис. 8.56). Рис. 8.55. Создание корней из ветвей
Глава 8. Моделирование окружающей среды 271 2 qjjpwpffcW В ЕАаЫеРо^ _ и а Selection Paramet_____ ♦ gnoreBackfecing 1“ Select By Element Г Ptarw Angle [W C Select MatiD I Of Select SG | | - Parameters ] Edit Reset UVWs Save.. Load., Channel' • Map Charnel. | C , j C Vertex Color Channel , Sub Object Params r X r Y r z * Averaaed Normals Рис. 8.56. Перестройка структуры развертки дерева в проекциях UVW для наложения карт 3. Воспользуйтесь плавным выделением (Soft Selection), чтобы установить ветви и корпи дерева в более естественное и разнообразное положение Активизируйте режим плавного выделения в свитке Soft Selection и щелк- ните па кнопке Paint (Раскраска), чтобы включить режим Paint Selection (Выделение кистью). Раскрасьте концы ветвей и переместите их в нужное положение. Сделайте то же самое и для корней. Плавное выделение можно выполнять и отдельно oi выделения кистью, настроив параметры Falloff (Спад) и Edge Distance (Расстояние до края), определяющие влияние на выделяемые вершины (рис. 8.57).
272 Часть III. Моделирование Рис. 8.57. Плавное выделение кистью отдельных частей корней для изменения их формы Переплетение двух деревьев В следующем упражнении дерево, уже развернутое и подготовленное к про- ецированию карт, будет повторно использовано для создания двух переплетаю- щихся деревьев. 1. Скопируйте дерево и оберните его копию вокруг оригинала. Для этого проще всего выделить ребра и щелкнуть на кнопке Loop, чтобы выделить петли из ребер в поперечных сечениях ствола дерева, а затем переместить эти поперечные сечения, расположив их вокруг ствола первого дерева и повернув их в новое положение. Обернуть второе дерево вокруг первого будет проще, если ввести ряд новых поперечных сечений (рис. 8.58). 2. Введите на деревьях отслоившиеся участки коры. Для этого выделите группу многоугольников, расположенных вдоль ствола дерева, выберите инструмент Select and Move, нажмите клавишу <Shift> и переместите их наружу, чтобы создать копии многоугольников в режиме Clone to Object (Клонировать в ви- де объекта) непосредственно над поверхностью ствола дерева. Таким обра- зом, полученные многоугольники будут повторять форму поверхности ство- ла. Для формирования из этих многоугольников оболочки определенной толщины воспользуйтесь модификатором Shell (рис. 8.59).
Глава 8. Моделирование окружающей среды 273 By Vertex Г~ опои Backfecrg г. : Shrnk Grow Д-оор Edge Sl^^teded | -t- Soft Selection j t- Edit Edges | | -4 Edit Geometiy | Sibdivison Surface | Г Use NURMS Subdivision 17 Smooth Resul ft/ IsoVie Display ’ r Display--------------— . I teutons: p Cj. I Smoothness. ГГЗ C | j-.-------------!---------- I Render-------------- ——' I Г Iteraihons: fl “ Zj I Г" Smoothness | t I , Separate By Smoothing Groups I Г Matetals Update 0 ion * Atoays ( Г V/hen Rendewig j Manually Рис. 8.58. Копирование дерева, ввод петель из ребер и переплетение обоих деревьев Рис. 8 59. Создание коры из многоугольников ствола дерева
274 Часть III. Моделирование Крона дерева Теперь необходимо дополнить большие ветви дерева мелкими ветками и ли стьями. В данном случае дерево по своей форме похоже па хвойное, поэтому вме- сто листьев уместнее создать хвою. 1. Для создания мелких веток дерева лучше всего скопировать одну большую ветвь п уменьшить ее масштаб на уровне подобъектов. Переместите точку опоры к основанию мелкой ветки, чтобы скопировать эту' ветку, нажав кла- вишу' <Shift> во время ее вращения. В итоге получится целый пучок веток. Но прежде чем создавать дополнительные ветки, необходимо снабдит ь их хвоей 2. Создайте хвойную иголку из небольшого объекта плоскости (Plane) с одним сегментов в ширину и длину, чтобы наметить форму' этой иголки. Как толь- ко будет получена модель хвойной иголки, сразу же примените к ней моди- фикатор UVW Мар и назначьте для нее материал с картой Gradient Ramp (Линейно изменяющийся градиент) зеленого цвета на позиции карты цве- та рассеяния. После наложения карты па модель хвойной иголки ее можно скопировать. А поскольку' точка опоры хвойной иголки находится т ее ос- нования, модель этой иголки можно без труда повернуть и скопировать, чтобы получить из нее целую хвою (рис. 8.60). Рис. 8.60. Хвойная иголка и ее материал 3. Создайте хвою из модели иголки, нажав клавишу <Shift> и повернув иголку' вокруг оси Y. Откроется диалоговое окно Clone Options, в котором можно указать число копий для создания по круту пучка из 8-10 иголок. Создайте
Г лава 8. Моделирование окружающей среды 275 еще один пучок иголок, повернув исходную иголку' вокруг оси 7 и установив полученный пучок под другим углом по сравнению с первым пучком иголок. И наконец, создайте еще один пучок иголок, повернув исходную иголку' во- круг оси Z под иным углом, чтобы добиться произвольной ориентации иго- лок в пучке (рис. 8.61). 4. Присоедините полученный в итоге совокупный пучок хвойных иголок к соз- данной ранее ветке дерева, чтобы образовать элемент его кроны, который затем можно скопировать по всем ветвям дерева (рис. 8.62). 5. Благодаря правильному расположению точки опоры из пучков хвойных иголок и веток можно сформировать целую крону дерева. И вся эта слож- ная крона получается из одной модели ветки и еще одной модели хвойной иголки. Это характерный пример, наглядно демонстрирующий преимуще- ства повторного использования уже имеющихся ресурсов для построения трехмерной модели (рис. 8.63). Ветки и хвойные иголки по-прежнему отделены от ствола и ветвей дерева, что дает возможность накладывать карты смещения на ствол и ветви. Такие модели деревьев могут служить для формирования карг Normal аналогично моделям утесов с высоким разрешением, использовавшимся ранее для визуа- лизации текстур, накладываемых па модели утесов с низким разрешением.
276 Часть III. Моделирование Рис. 8.62. Пучок хвойных иголок, присоединенный к ветке дерева Рис. 8.63. Крона дерева, сформированная из одной ветки и еще одной хвойной иголки
Глава 8. Моделирование окружающей среды 277 6. Откройте сцену из файла \Project Files\Ch08_Environmental Modeling} Tree_Displacement.max па прилагаемом к этой книге DVD, чтобы посмотреть полученный результат. Раскрашенная вручную карта па позиции карты цвета рассеяния использована в данном случае для смеще- ния каркаса. 7. Откройте сцену из файла \Project Files\Ch08_EnvironmentalMode- ling\Tree_NormalMap.max па прилагаемом к этой книге DVD, чтобы по- смотреть результат наложения на модель дерева с низким разрешением карты Normal, полученной в результате смещения (рис. 8.64). Рис. 8.64. Завершенная модель дерева с наложенной картой Normal Следует отметить, что масштаб модели дерева придется увеличить с помощью модификатора XForm, если ее предполагается использовать в сцене (см. рис 8.1). Для масштабирования одной модели или целой группы моделей лучше всего пользоваться модификатором XForm, поскольку он не оказывает отрицательного влияния на матрицы преобразования этих моделей. Более подробные сведения о матрицах преобразования можно найти по адресу www.paulneale. сот. При- веденное по этом}' адресу описание принципа действия в 3ds max матрицы пре- образования стоит прочитать, хотя оно и краткое.
278 Часть III. Моделирование Трава Земля в сцене окружающей среды по-прежнему выглядит голой, особенно во круг дерева. Поэтому в следующем упражнении будет смоделирована трава на вершине утеса, находящегося на переднем плане данной сцены. 1. Создайте плоскость следующих размеров (рис. 8.65). • Length = 400. • Width 30. • Length Segments = 4. • Width Segments = 2. Рис. 8.65. Создание плоскости, которая затем станет стебельком травы 2- Преобразуйте плоскость в редактируемый многоугольник. Выделите три верхние вершины этого объекта и щелкните на кнопке Collapse из свитка Edit Geometry. Присвойте данному объекту имя GrassBladeOl (Первый стебелек травы). 3. Установите сначала флажок Use Soft Selection (Использовать плавное вы- деление), а затем значение 200 параметра Falloff в свитке Soft Selector!. Сместите верхнюю вершину назад и вниз, а затем поверните ее таким обра- зом, чтобы плоскость приобрела изящную кривизну. Масштабируйте вер шину по оси X, чтобы постепенно сузить ст ебелек травы, сведя его кончик в точку. Выйдите из режима работы с подобъектами и примените сначала модификатор TurboSmooth к модели травы, а затем модификатор Unwrap UVW, чтобы каргы проецировалисьнаместо (рис. 8.66).
Глава 8. Моделирование окружающей среды 279 Рис. 8.66. Формирование стебелька травы и подготовка его к проецированию карт 4. Примените к модели травы стандартный (Standard) материал. Введите кар- ту Stucco (Штукатурка) па позиции карты цвета рассеяния и установите мо- заичное расположение (Tiling) 30 раз по X, оставив без изменения мозаич- ное расположение 1 раз по оси Y. Выберите два разных оттенка зеленого в обоих образцах цвета штукатурки. Присвойте данному материалу имя Grass. Полученную в итоге модель травы можно посмотреть в файле \Project Files\Ch08_EnvironmentalModeling\Grass.max на прила- гаемом к этой книге DVD (рис. 8.67). 5. Создайте аналогичным способом еще два стебелька травы в качестве видоиз- мененных копий оригинала. Сделайте одну' копию длиннее, а другую — пря- мее. Создайте еще одну' копию стебелька травы, сгибающегося в сторону. 6. Размножьте эти три стебелька травы, используя составной объект Scatter. Для этого выделите объект GrassBladeOl, перейдите к панели Create, щелкните па кнопке Geometry, выберите из раскрывающегося списка кате- горию Compound Objects (Составные объекты) и щелкните на кнопке Scatter (Разброс). Установите флажок Use Transforms Only (Использовать только преобразования) в свитке Scatter Objects (Объекты рассеяния). Ус- тановите значение 600 параметра Duplicates (Копии) в области Source Ob- ject Parameters (Параметры исходного объекта) из того же свитка. 1 итоге из объекта GrassBladeOl будет получено 600 стебельков травы. 7. Установите следующие значения параметров в области Local Translation (Местный перепое) из свитка Transforms (Преобразования): X = 900, Y = 200, Z= 900 (рис. 8.68).
280 Часть III. Моделирование Рис. 8.67. Простая модель стебелька травы Рис. 8.68. Применение составного объекта Scatter для распространения модели травы по сцене
Глава 8. Моделирование окружающей среды 281 8. Примените аналогичный метод для рассеяния объекта GrassBladeO2, но на этот раз установите следующие значения параметров в области Local Translation из свитка Тransforms: Ж 800, Y — 200, ~Z- — 800. А для рассеяния объекта GrassBladeO3 установите следующие значения этих же парамет- ров: X = 1000, Y= 200, Z = 1000. 9. Таким образом, по тучен небольшой клочок травы для размещения на верши- не утеса, находящегося на переднем плане сцепы окружающей среды. Ог- кройте сцеп}' из файла \Project Files\Ch08_EnvironmentalModeling\ Landscape_Fi nal .max на прилагаемом к этой книге DVD. Масштаб дерева для этой сцены был специально увеличен с помощью модификат ора XForm, после чего оно было помещено на вершине упомянутого выше утеса и допол- нено травой для более гармоничного сочетания с каменистой породой утеса. Кроме того, для данного утеса был назначен градиентный материал, чтобы сымитировать почвенный слой на его вершине (рис. 8.69). Рис. 8.69. Окончательно визуализированный вид сцены окружающей среды Если вы довели сцен} окружающей среды до логического завершения, то мо- жете себя поздравить с успешным окончанием данного проекта! Построение трехмерной сцены окружающей среды с самого начала - непростая задача, одна- ко затраченные усилия сторицей окупаются благодаря приобретению бесценного опыта По завершении данного проекта, посвященного созданию окружающей среды, вы уже сможете создавать собственные вымышленные ландшафты. Можно надеяться, что вы поняли, насколько важно правильно организовать работ}' над подобными проектами. Любое моделирование намного упрощается, если заранее
282 Часть ill. Моделирование спланировать отдельные его этапы. Благодаря этому сокращается подготови- тельный этап любого проекта. И, наконец, нс забывайте о возможности неодно- кратного использования ресурсов ради экономии времени и постепенно услож- нения сцен. Моделирование микромиров В этом разделе речь пойдет о битве микроскопического масштаба: наступле- нии макрофагов! В литературе по биологии можно встретить эффектные изо- бражения макрофагов (клет ок типа белых кровяных телец) со щупальцами, кото- рыми они хватают и пожирают бактерии. Макрофаги защищают нас от таких внутренних врагов, как бактерии, мелкие паразиты и другие враждебные биоло- гические формы, поражающие наш организм. Изображения клеток получают с помощью самых разных лабораторных прибо- ров, включая оптические микроскопы, растровые электронные микроскопы (РЭМ) и т.д. Каждый такой прибор позволяет получить уникальные данные о клетках и да- ет их собственное, характерное визуальное представление. В данном случае имити- руется представление, которое дает РЭМ. Для формирования изображения в РЭМ используются электроны, а не световые волны. Свойства поверхности, неразличи- мые для световых волн, без труда фиксируются намного более мелкими электрона- ми, которые направляются пучками на поверхность клетки и отражаются на соби- рающую пластину'. Однако в изображениях, сформированных РЭМ, отсутствует отражение, пре- ломление или поглощение разных волн света поверхностью клетки. Поэтому в них отсутствует информация о прозрачности и цвете. Исходное изображение, сформированное РЭМ, оказывается черно-белым, хотя оно искусственно окра- шивается для большего эффекта. Например, клетка может быть окрашена ярко- красным цветом а бактерия — ярко-желтым, причем обе — на темном фоне, под- черкивающем сложность строения клеточных форм Подобные изображения мо- гут быть весьма эффектными! Построение клетки В этом и последующих упражнениях вам предстоит воспроизвести войны на клеточном уровне, используя ряд замечательных инструментов в 3ds птах 7. Вна- чале будет соз таи макрофаг. 1. Начните работу в 3ds птах с повой сцепы, создав в окис вида сверху' прими- тивную сферу (Sphere) радиусом 30 единиц и с 18 сегментами. 2. Примените к сфере модификатор FFD (box) (Деформация произвольной фор- мы в виде параллелепипеда). Перейдите па уровень подобъектов-управляющих точек (Control Points) данного модификатора и переместите его решетку, чтобы получить требуемую форму тела клетки макрофага (рис. 8.70). 3. Нарисуйте в окне вида слева сплайн, поднимающийся по кривой вверх от тела клетки (рис. 8.71). Этот сплайн будет определять кривизну первого щупальца.
Глава 8. Моделирование окружающей среды 283 Рис. 8.70. Создание тела клетки макрофага из сферы Рис. 8.71. Рисование сплайна, определяющего кривизну щупальца
284 Часть III. Моделирование 4. Введите в стеке модификатор Edit Poly выше модификатора FFD (box). Вы делите ряд многоугольников и вытяните их ин высоту' 0 единиц. На первый взгляд такая операция кажется странной, однако после масштабирования этих многоугольников в их локальной системе координат появляется воз- можность создать мелкие многоугольники внутри крупных. Аналогичного результата можно добиться и с помощью инструмента Inset (Врезка) и по- следующего масштабирования для коррекции формы вновь врезанного многоугольника (рис. 8.72). 4а I '0 Е |- EdtPcIyMoje ~| Model С Anmate I <Nc Cunent Operation)- I” Show Cage I- Setecton . | s F Use Stack Selection F By Vertex ' F Ignore Backfacing F By Angle | * Shrink | Grow ! I Get Stack Selecton 4 Polygons Selected | + Soft Selecton | | - Edit Polygons i n$en Vertex Extrude ql Outline □' j Bevel П Inset С I Bridge □ _ Fhp J Нюде From Edge , Extrude Along Spins [0 Рис. 8.72. Создание локализованных деталей в модели тела клетки 5. Воспользуйтесь инструментом Extrude Along Spline для вытягивания неболь- ших щупальцев из каждого выделенного многоугольника. Если сделать это по очереди, каждую вытянутую форму' можно будет затем повернуть по-разному, сохранив общую их направленность вверх. Для каждого вытягиваемого щу- пальца ус гановите значение -0,8 параметра Taper Amount (рис. 8.73). 6. Для большего разнообразия нарисуйте еще один сплайн, такой же как и пер- вый, ио мсныпего размера, а затем вытяните дополнительные щупальца в дру- гих местах у основания тела клетки. Кроме того, создайте длинный, волнистый сплайн и воспользуйтесь инструментом Extrude Along Spline для получения бо- лее длинных и вытянутых щупальцев по форме этого сплайна (рис. 8.74).
Глава 8. Моделирование окружающей среды 285 — Polygon О ____- Element $ S ffDfbox 4*4x4 1 Control Points |— Lattice v will 8 E |- Edit Poy Mod? j Model Arrnale Extrude Along Spkie Commit | Settlings Cancel Г Show Cage | - Becton | & Г Use S ack Selecton F By Vertex F Ignore Backtdcmg F By Angle-1 1 C ____Shnnk | _ Grow ——I—_<—, Get Slack Selection 1 Polygon 418 Selected | + Soft Selectan 1I | - Edit Polygons | Insert Vertex Extrude П Oitino □ Bevel Ц Inset П Рис. 8.73. Создание щупальцев с помощью инструмента Extrude Along Spline Рис. 8.74. Создание дополнительных щупальцев
286 Часть III Моделирование 7. Обведите рамкой выделения конец одного из этих щупальцев и щелкните несколько раз па кнопке Grow, пока щупальце не будет выделено полно- стью Выберите инструмент Select and Move, нажмите клавишу <Shift> и переместите выделенные многоугольники, чтобы скопировать щупальце. Переместите эти пеприсоединенные многоугольники на другую сторону тела клетки. Удалите грань в том месте тела клетки, где требуется присое- динить многоугольники щупальца. Затем выделите границы на открытой грани тела клетки, а также на конце щупальца. Щелкните на кнопке Settings, расположенной рядом с кнопкой Bridge (Перемычка) в свитке Edit Borders (Правка границ). Обе границы будут соединены перемычкой из многоугольников (рис. 8.75). Рис. 8.75. Соединение копии щупальца с телом клетки инструментом Bridge 8. Перейдите на уровень подобъектов-вершин, активизируйте инструмент Paint Selection Region на основной панели инструментов, выделите инстру- ментом Select Object вершины па концах некоторых щупальцев и установи- те флажок Use Soft Selection в свитке Soft Selection. Увеличьте значения параметров Falloff и Edge Distance, чтобы распространить на половину длины щупальца влияние плавного выделения вершин, находящихся па его конце. Плавное выделение можно также выполнить кистью, щелкнув на кнопке Paint в свитке Soft Selection. Вытолкните вершины в более произ- вольное положение, чтобы они не выглядели одинаково (рис. 8.76).
Глава 8. Моделирование окружающей среды 287 Рис. 8.76. Получение более произвольной формы модели макрофага с помощью плавного выделения вершин 9. Раз уж мы коснулись режима выделения кистью, рассмотрим вкратце и ре- жим Paint Deformation (рис. 8.77). Этот режим позволяет внести органиче- ские неровности в форму тела клетки и щупальцев. Выйдите из режима рабо- ты с подобъектами, откройте свиток Paint Deformation и щелкните на кнопке Push/Pull (Выталкивание/Втягивапие). Щелкните левой кнопкой мыши и выполните перетаскивание по каркасу, наблюдая за его деформацией. При положительном значении параметра Push/Pull Value происходит выталкива- ние каркаса, а при отрицательном значении — втягивание. Параметр Brush Size определяет сферу влияния кисти, а параметр Brush Strength пределы выталкивания или втягивания каркаса. Дополнительные параметры кисти, аналогичные параметрам раскраски весов вершин кожного покрова, доступ- ны с помощью кнопки Brush Options. Кнопка Revert позволяет отменить ре- зультаты манипулирования кистью на конкретном участке каркаса в режиме Paint Deformation. Это очень полезный и удобный режим моделирования, аналогичный лепке из глины.
288 Часть III. Моделирование Cancel Selection ? I I Whole Object Selected Sof t Selection ~j j - PanfbeloimatT Push/fM Relax Revert Push/Pull Drecbon * Oricmal Noimafc Defoimed Normals Transform axis I Г X Г Y C Z Push/Pull Value 110 0 ~ ; Brush See [“’’V"' Z_ Brush Strength 10.24 5» BrushO^bons Рис. 8.77. Дальнейшее изменение формы модели макрофага в режиме Paint Deformation Текстурирование клетки После того как вы завершили многоугольное моделирование клетки, необхо- димо ввести в ее каркас дополнительные детали методом смещения. 1. Щелкните правой кнопкой мыши на модели макрофага и выберите команду Convert To^Convert to Editable Poly из правого нижнего квадратного меню. 2. Перейдите на уровень подобъектов-многоугольпиков, выделите кончики всех щупальцев и щелкните несколько раз па кнопке Grow, пока они не бу- дут выделены полностью. Всем многоугольникам щупальцев присвоен идентификационный помер грани 2 (Face ID), и они могуг оставаться в этом состоянии. Выберите из главного меню команду Edit^Select Invert. Многоугольникам тела клетки также присвоен идентификационный помер грани 2, по его следует заменить па 1. 3. Выполните приближенную развертку модели макрофага с помощью моди- фикатора Unwrap UVW, а затем сверните ее обратно до редактируемого мно1 оугольника (рис. 8.78). 4. Откройте сцепу из файла \Project Files\Ch08_EnvironmentalMode- ling\Macrophage_Material .max па прилагаемом к этой книге DVD и об- ратите внимание па материал типа Multi/Sub-Object (Мпожсствсипо- подобъектпый материал) в редакторе материалов. Первый его подмагериал назначен для тела клетки, а второй — для щупальцев. Сохраните этот мате- риал и назначьте его для модели макрофага в своей сцене пли же продол- жите работу' с загруженной только что сценой (рис. 8.79).
Глава 8. Моделирование окружающей среды 289 Рис. 8.78. Быстрая развертка модели макрофага Рис. 8.79. Материал для модели макрофага
290 Часть III. Моделирование 5. Примените к модели макрофага модификаторы TurboSmooth и Displace Mesh (WSM). Установите флажки Custom Settings и Subdivision Displacement и выбе- рите метод подразделения Spatial and Curvature в свитке Displacement Approx Кроме того, установите значение 6 0 обоих параметре в Edge и Distance, а также значение 25 параметра Angle. Щелкните на кнопке Advanced Parameters в том же свитке, выберите способ подразделения Delaunay и щелкните на кнопке ОК, чтобы закрыть диалоговое окно Advanced Displacement Approx, (рис. 8.80). Рис. 8.80. Смешение модели макрофага 9 Displace Me?h Binding ft I V TurboSmooth О Editable Po|y -»i er |- D isplacement Approx | Update Mesh Custom Setting! I** Subdivision Displacement Г° Split Mesh Subdvision Presets Low Medium High j Subdvision Method C Regular Slept | Г Spalid ‘ Curvature •' Spalid end Ct*valute Edge. |600 Z Distance |ёоб Z Anflfe: [250 Z Advanced Parameteis. 1 Микросреда Вам осталось внести завершающие штрихи, чтобы поместить макрофаг в под- ходящую среду. 1. Поместите в сцене плоскость ниже модели макрофага, чтобы она служила в качестве плоскости основания. 2. Введите скопления бактерий по всей сцене. Для этого воспользуйтесь при- митивной капсулой (Capsule) с модификатором Melt (Плавление), чтобы придать бактериям отвисшую, гибкую и неправильную форму (рис. 8.81).
Глава 8. Моделирование окружающей среды 291 Рис. 8.81. Создание простых моделей бактерий с помощью примитивной капсулы и модификатора Melt Рис. 8.82. Окончательно визуализированная сцена с макрофагом и бактериями
292 Часть III. Моделирование 3. Откройте сцену из файла \Project Files\Ch08_EnvironmentalMode- ling\Macrophage_Final .max на прилагаемом к этой книге DVD, чтобы посмотреть как она выглядит в завершенном виде. Активизируйте окно вида из камеры и визуализируйте данную сцену. Сцепе можно придать не- обходимую глубину резкости, как это было сделано в данном случае. Ведь все, что наблюдается в электронный микроскоп, имеет очень мелкую глу- бину резкости. Благодаря мелкой глубине резкости в сцепе подчеркиваются малые размеры органических форм, хотя, строго говоря, в изображении сформированном электронным микроскопом, отсутствуют как отражения, так и глубина резкости (рис. 8.82). Резюме В этой главе представлены практические методы моделирования в 3ds max 7 ор- ганических объектов, а также объектов неправильной формы. Не стесняйтесь вво- дить больше элементов в свои сцепы окружающей среды, чтобы сделать их инте- реснее. Например, кратер в упоминавшейся выше сцене можно дополнить другими неорганическими структурами, скалистыми утесами и растительностью и даже вве- сти луну либо яркую планету на заднем плане, а возможно, и огненные вспышки от комет на ночном небе. Кроме того, можно скопировать дерево, изменить его тек- стуры и ввести ряд трещин в его стволе, чтобы придать ему высохший и безжиз ценный вид. Несколько таких деревьев лишь усилят напряженность вокруг кратера. И разумеется, фигура пришельца лишь вдохнет больше жизни в сцену, хотя вопро- сы моделирования персонажей придется отложить до следующей главы. Сцена окружающей среды, созданная в этой главе, служит лишь отправной точкой. Ее можно улучшить, приложив некоторые усилия и затратив немного времени. Рекомендуется взять себе за правило планировать свою работу, опрсдс лив, что необходимо сделать в первую очередь в течение конкретного периода времени. Планирование позволяет уложиться в установленные сроки и правиль- но расходовать драгоценное время на решение наиболее важных задач. Перед вами открываю тся безграничные возможности, однако основательная подготовка к работе никогда не помешает! Изучайте новые свойства 3ds max 7, обращаясь к оперативной справке при всяком затруднении. Методы моделирования окружающей среды, рассмотренные в этой главе, сослужат вам хорошую службу, но эго нс значит, что тех же самых, а возможно, и лучших результатов нельзя добиться другими способами. Будьте всегда готовы взять па вооружение новые методы повышения производительно- сти своего труда. Знать все невозможно, по сидящий рядом с вами коллега навер- няка знает нечто такое, чего не знаете вы, поэтому навострите уши и слушайте Лучший способ научиться чему-то — выполнять проекты, требующие умения вы- ходить из затруднительного положения. A 3ds max 7 всегда поможет справиться с поставленной задачей. Удачного моделирования!
Глава 9 Моделирование персонажей А. Дж. Джеффериз Благодаря техническому прогрессу и честолюбивым с тремлениям художников в кино и анимации все чаще стали появляться сногсшибательные эффекты, полу- ченные средствами компьютерной графики. К наиболее выдающимся достиже- ниям в данной области, очевидно относится появление па экранах персонажей, полностью сформированных средствами компьютерной графики. Уже стало при- вычным явлением видеть на экране виртуального дублера, совершающего паде- ние, фантастических животных, берущих приступом замок, или даже исполнение ведущей роли актером, существующим только в записи па жестком диске. В дей- ствительности паша культура уже приучена к мысли о том, что персонажа видео- игры мы воспринимаем как знаменитость, мелькающую на обложках журналов и афишах и даже приглашаемую на роль в настоящем художественном фильме! В связи с растущей ролью трехмерных персонажей пет ничего удивительного в том, что персонажи чаще всего служат побудительной причиной для того, чтобы запяться моделированием. Но, с другой стороны, это занятие может оказаться едва ли не самым трудным, поскольку' из множества методов, стилей и примеров моде- лирования персонажей поначалу очень трудно выбрать наиболее подходящий. В этой главе рассматривается ряд современных методов создания реальных и вымышленных персонажей Вначале на примере моделирования тела одного персонажа будут- представлены некоторые полезные свойства редактируемого многоугольника (Editable Poly). А затем к телу другого персонажа будут присоеди- нены конечности, сформированы мускулы, органы дыхания и созданы карика- турные глаза робота. Как видите, здесь пет ничего необычного, поэтому' сразу перейдем к делу.
294 Часть III. Моделирование Моделирование с помощью поверхностей п од раз делен и я Поверхности подразделения представляют собой метод моделирования, вне- дренный па студии Pixar в 1998 году и быстро ставший наиболее предпочтитель- ным способом создания органических, детализированных поверхностей. По- верхности подразделения реализованы в 3ds шах 7 в трех модификаторах: MeshSmooth, HSDS и TurboSmooth. В сочетании с гибкостью редактируемого многоугольника и новым модификатором Edit Poly эти модификаторы предостав- ляют пользователям 3ds шах наиболее эффективные инст рументы для моделиро- вания. (Отличный источник по моделированию с помощью поверхностей под- разделения находится по адресу http: / /www. maxrovat. sns . hu/subdiv/.) Несмотря на то что некоторые свойства редактируемого многоугольника уже рассматривались в предыдущих главах, в этой главе основное внимание будет уделено более общим его функциям, имеющим отношение к моделированию пер- сонажей. Каждый персонаж непохож па остальных. Это же относится и к методам соз- дания различных персонажей. Тем не менее некоторые методы можно приме- нять неоднократно, моделируя реалистичное человеческое лицо или же говоря- щую морковку. И особенно это справедливо для моделирования с помощью по- верхностен подразделения, которое начинается практически одинаково для лю- бого персонажа, да и оканчивается почти так же. Моделирование свиньи из параллелепипеда В приведенном ниже упражнении будет начат процесс так называемого парал- лелепппедпого моделирования (в данном случае — свиньи из куба). 1. Перезапустите 3ds max и создайте параллелепипедный примитив в окне вида в перспективе (рис. 9.1). Установите его длину, ширину и высоту рав- ной 100 на панели Modify. Щелкните правой кнопкой мыши на инструмен- те Select and Move, расположенном на основной панели инструментов, чтобы открыть диалоговое окно Move Transform Type-In (Ввод координат преобразования перемещением). Щелкните правой кнопкой мыши на счетчиках X, Y и Z, чтобы сбросить их значения в 0. СОВЕТ Если щелкнуть правой кнопкой мыши на счетчике любого параметра, устанавли- вается минимально возможное его значение (в большинстве случаев нулевое), независимо от того, каким является исходное или устанавливаемое по умолча- нию значение параметра. В частности, таким способом можно быстро располо- жить объекты в центре сцены. 2. Если параллелепипед все еще выделен, примените к нему модификатор MeshSmooth. Установите значение 1 параметра Iterations, щелкните правой кнопкой мыши па модификаторе MeshSmooth в стеке и сверните паралле- лепипед в редактируемый многоугольник (рис. 9.2).
Глава 9. Моделирование персонажей 295 Name and olof Torus Teapot Pytamri Plane Length Segs p Width Segs | 3| Height egs |" V Generate Mapping Coads Length [ТкГсГ Width pOCTT Height pW Sphere GeoSphere Cjtmder T ube ’<#*. & '©(□ T о <* v e. u ?= % | Standard P mbves ~^1 i_____ype AijtoGnd Г* « Cone eyboaid Entiy Patamelei Cie-auon Method C Cube '“8 Box Рис. 9.1. Примитивный параллелепипед в окне вида в перспективе Рис. 9.2. Сворачивание параллелепипеда в редактируемый многоугольник
296 Часть III. Моделирование 3. Перейдите сначала па уровень подобъектов-многоугольнпков в стеке мо- дификаторов на панели Modify, а затем в окно вида слева и обведите рамкой выделения многоугольники на левой стороне редактируемого объекта, по- сле чего нажмите клавишу <Delete> (рис. 9.3). Останется лишь половина объекта. Однако модификатор Symmetry позволяет видеть весь объект в целом во время его моделирования. Но для применения этого модифика тора придется перейти на уровень редактируемого объекта. Рис. 9.3. Выделение удаляемых многоугольников | НА ЗАМЕТКУ_________________________________________________________ Большинство персонажей симметричны, и поэтому модификатор Symmetry весьма полезен для их создания Он позволяет видеть весь объект в целом, но моделировать лишь его половину 4. Начните вытягивание формы свиньи из исходного объекта. Для этого пе- рейдите на уровень редактируемого многоугольника (Editable Poly) в стеке модификаторов на панели Modify и активизируйте режим Show End Resu t (Показать конечный результат), чтобы видеть воздействие модификатора Symmetry на результаты моделирования. Кроме того, выключите активный по умолчанию режим отображения оранжевого управляющего каркаса. Этот каркас удобен для правки с помощью модификаторов MeshSmooth и TurboSmooth, но в данный момент он не нужен. Поэтом}' сбросьте флажок Show Cage (Показывать каркас) в свитке Edit Geometry.
Глава 9. Моделирование персонажей 297 5. Перейдите сначала на уровень подобъектов-ребер, а затем в окно вида в перспективе, выделите наиболее подходящие ребра (рис. 9.4) и щелкните па кнопке Ring в свитке Selection. Активизируйте режим отображения Edged Faces (Окаймленные грани), если требуется видеть ребра. Для выде- ления ребер, наиболее подходящих для симметричного моделирования, можно развернуть объект в перспективе. Если ребра выделены, щелкните на кнопке Connect из свит га Edit Edges (Правка ребер), чтобы образовать петлю из ребер (рис. 9.5). 6. Новые ребра не совсем точно повторяют форму жирной свиньи, поэтому перейдите на уровень подобъекгов-вершин, нажав клавишу <Ctil> и щелк нув па пиктограмме Vertex. Затем выполните пошаговое масштабирование наружу инструментом Scale, чтобы вернуть ребрам нужную кривизну. 7. Повторите описанную выше процедуру для создания еще двух петель из ре- бер в данной модели (рис. 9.6). Рис. 9.4. Выделение ребер для соединения
298 Часть III. Моделирование Рис. 9.5. Соединение ребер в новую петлю Рис. 9.6. Еще два ряда ребер
Глава 9. Моделирование персонажей 299 Свиные ножки В следующем упражнении будут смоделированы ножки свиньи. 1. Перейдите на уровень подобъектов-многоугольников, выделите четыре много- угольника в нижней части модели и откройте диалоговое окно Extrude Polygons Вытягивание многоугольников), выбрав кнопку Settings, расположенную ря- дом с кнопкой Extrude в свитке Edit Polygons (Правка многоугольников). Ос- тавьте без изменения вариант Group, выбранный в области Extrusion Туре (Тип вытягивания), и введите значение 20 в поле параметра Extrusion Height (Высота вытягивания) (рис. 9.7). Рис. 9.7. Выделение и вытягивание ножек свиньи Свобода творчества— один из самых приятных аспектов моделирования персонажей. Ведь никто не скажет вам, что ножки у свиньи должны бьпь определенного размера, поэтому вы вольны сделать их любой величины. 2. На полученных до сих пор ножках свинья будет пошатываться, поэтому их необходимо выровнять. Сохранив выделенными те же самые многоуголь- ники, перейдите к свитку Edit Geometry и щелкните на кнопке Z, располо- женной справа от кнопки Make Planar (рис. 9.8). В итоге многоугольники выпрямятся по оси Z, а вместе с ними и ножки свиньи.
300 Часть III. Моделирование Рис. 9.8. Выпрямление ножек инструментом Make Planar Для дальнейшего формирования ножек можно также воспользоваться инстру- ментом Outline (Контур) и вытянуть вниз их кончики. Точного рецепта для этого не существует, поэтому сделайте форму ножек такой, как вам больше нравится Голова свиньи Итак, модель свиньи представляет собой подобие шара на ножках. В следую- щем упражнении будет смоделирована ее голова. 1. Примените модификатор Edit Poly в стеке выше модификатора Symmetry. Во время правки па уровне модификатора Edit Poly любые изменения, вносимые в каркас, уже не будут отображаться на другой стороне модели поскольку' она фактически свернута. Но, с другой стороны, любые изменения, которые не подойдут, можно отменить, удалив данный модификатор Выделите две пет- ли из ребер, проходящих посредине модели свиньи, и соедините их, чтобы получить дополнительные детали для формирования головы (рис. 9.9). 2. Выделите и вытяните восемь вновь разделенных многоугольников на пе- редней стороне модели свиньи, помня о том, что любые операции должны охватывать обе половинки модели, поскольку модификатор Symmetry уже не действует. Втяните их немного внутрь, используя инструмент Outline (рис. 9.10). Добившись удовлетворительной формы шеи, щелкните правой кнопкой мыши па модификаторе Edit Poly и выберите коцанду Collapse То (Свернуть) из контекстного меню.
Глава 9. Моделирование персонажей 301 Рис. 9.9. Две вновь сформированные петли из ребер Рис. 9.10. Вытягивание шеи
302 Часть III. Моделирование | НА ЗАМЕТКУ________________________________________________________ Сворачивание геометрической формы приводит к сведению воздействия любых модификаторов, применяемых к объекту, поэтому следует убедиться в том, что при этом не будет утрачено ничего из того, что впоследствии трудно будет вос- становить. Во время моделирования приходится часто переходить от свернутого к видоизмененному объекту и обратно. В данном случае модификатор Symmetry будет применен повторно ради сокращения объема работы и ускорения пронес са моделирования. 3. Выделите многоугольники па левой половине модели свиньи в окне вида спереди или сверху и удалите их. Примените к модели модификатор Sym- metry, выбрав X в качестве оси зеркального отображения в области Mirror Axis из свитка Parameters данного модификатора, чтобы восстановигь дру- гую половину модели. Перейдите на уровень подобьектов-вершин, измени те форму окончания шеи, чтобы сделать ее более округлой и приступить к моделированию головы (рис. 9.11). Добившись приемлемого результата, вновь сверните объект. Рис. 9.11. Изменение формы шеи 4. Выделите четыре многоугольника, чтобы сформировать из них свиное ры- ло. Воспользуйтесь инструментом Bevel для вытягивания и очерчивания многоугольников перед окончательным перемещением вершин для округ- ления формы свиного рыла (рис. 9.12).
Глава 9. Моделирование персонажей 303 Рис. 9.12. Формирование свиного рыла 5. Прежде чем завершить моделирование свиного рыла, примените модифи- катор MeshSmooth, чюбы оценить полученные формы свиньи (рис. 9.13). При этом наблюдается результат подразделения каркаса модели — ее фор- мы округляются и сглаживаются. Однако плавность форм требуется не все- гда, поэт ому далее вам продетой г заост рить форму свиного ры ia. 6. Оставьте действующим модификатор MeshSmooth и перейдите вниз по стеку' к редактируемому многоугольнику, убедившись в том, что активизи- рована кнопка Show End Result. Далее перейдите на уровень подобъекгов- многоугольников, выберите инструмент Bevel и вытяните многоугольники чтобы постепенно начать заострение формы свиного рыла (рис. 9.14). Н каждой стадии этого процесса экспериментируйте со степенью скашивания свиного рыла наружу. СОВЕТ Если поместить два ребра близко друг к другу, в модели образуется намного бо- лее явно выраженная складка. Такой практический прием позволяет внести де- тали и четкость формы в модель персонажа.
304 Часть III. Моделирование Рис. 9.13. Вид модели свиньи после применения модификатора MeshSmooth Рис. 9.14. Заострение формы свиного рыла
Глава 9. Моделирование персонажей 305 7. Удалите сличала модификатор MeshSmooth из стека, а затем одну половину модели и вновь примените модификатор Symmetry. Выдели те дна много- угольника по обе стороны свиного рыла и вытяните их наружу, чтобы сформировать уши (рис. 9.15). Рис. 9.15. Создание ушей 8. Воспользуйтесь инструментом Scale чтобы уменьшить размеры много- угольников и довести уши до нужной формы, а затем переместите инстру- ментом Move кончики ушей вперед, чтобы направить их в нужную сторону. 9. Теперь необходимо придать ушам большую кривизну. Перейдите па уровень подобьектов-ребер и воспользуйтесь кнопками Ring и Connect для получения дополнительных ребер и их последующего вы тягивания (рис. 9.16).
306 Часть III. Моделирование Рис. 9.16. Формирование ушей с помощью вновь созданных ребер Доводка модели свиньи Итак, получена основная форма свиньи. В следующем упражнении в ее модель будут введены дополнительные детали с помощью модификатора Edit Poly, при- меняемого в стеке ниже модификатора Symmetry. НА ЗАМЕТКУ Модификаторы правки (Edit Poly, Edit Mesh и Edit Spline) отлично подходят для внесения изменений в объект, сохраняя его базовую структуру. Поэтому, если вы хотите посмотреть, насколько модели подойдут рожки, и затем удалить их, если они вам не понравятся, продолжайте править модель на уровне модифика- тора Edit Poly, не затрагивая ее исходный каркас. 1. Примените модификатор MeshSmooth на вершине стека. Перейдите па уро- вепь подобъектов-многоугольников в модификаторе Edit Poly. Выделите мно- гоугольники на конце свиного рыла, чтобы сформировать ноздри, а также многоугольник, расположенный в основании рыла ближе к верхней части го- ловы, чтобы сформировать глаза. Нажатием функциональной клавиши <F2> можно переключиться в режим отображения Shade Selected Faces (Затене- ние выделенных граней), чтобы лучше видеть редактируемые грани. 2. Врежьте выделенные многоугольники внутрь, а затем вытяните их вниз (рис. 9.17). Поправьте форму и размеры глаз и ноздрей, введя, если требу- ется, дополнительные ребра.
Глава 9. Моделирование персонажей 307 Рис. 9.17. Глаза и ноздри, сформированные путем вытягивания выделенных много угольников Присоединение хвоста Модели явно чего-то не хватает, поэтому в следующем упражнении к пей будет присоединен хвост. 1. Добившись удовлетворительной формы глаз и ноздрей, вновь сверните мо- дель в редактируемый многоугольник перейдите к панели Create и выбе- рите сначала кнопку Shapes, а затем кнопку Helix' (Спираль). Вытяните спи- раль в любом видовом окне, щелкнув три раза чтобы установить ее внут- ренний радиус, внешний радиус и высоту. Перейдите к панели Modify и ус- тановите следующие значения параметров спирали. • Radius 1 (Внешний радиус) = 2. • Radius 2 (Внутренний радиус) = 2. • Height (Высота) = 15. • Turns (Число витков) 2. • Bias (Смещение) = 0. Оставьте исходпуто ориентацию спирали по часовой стрелке (CW). Эта спираль послужит основанием для хвоста (рис. 9.18).
308 Часть III. Моделирование Рис. 9.18. Спираль для хвоста 2. Вновь выделите модель свиньи, примените модификатор Edit Poly и перей- дите па уровень подобьекгов-вершип. Выберите место, с которого должен начинаться хвост, и выделите вершину, а затем с помощью инструмента Chamfer (Снятие фаски) сформируйте из псе многоугольник. 3. Выделите вновь созданный многоугольник и откройте диалоговое окно Ex- trude Polygons Along Spline (Вытягивание многоугольников вдоль сплайна), щелкнув на небольшой кнопке Settings, расположенной справа от кнопки Extrude Along Spline в свитке Edit Polygons. Установите флажок Align То Face Normal, щелкните па кнопке Pick Spline и выберите спираль (рис 9.19). 4. Хвост сформирован автоматически, однако требует доводки. Увеличьте до 20 значение параметра Segments в диалоговом окне Extrude Polygons Along Spline чтобы сделать более заметным закручивание хвоста а затем умень- шите значение параметра Тaper Amount, чтобы сузить хвост на его конце. Поэкспериментируйте с параметром Rotation, чтобы придать модели вид наглой свиньи или же упавшего духом борова (рис. 9.20). 5. Примените модификатор MeshSmooth, чтобы оценить внешний вид вновь созданного хвоста (рис. 9.21). Если он вас устраивает, переходите к сле- дующему этапу работы над моделью. В противном случае удалите модифи- катор Edit Poly и попробуйте создать какой-нибудь другой хвост.
Глава 9. Моделирование персонажей 309 Рис. 9.19. Выбор спирали для вытягивания хвоста Рис. 9.20. Изменение формы хвоста
310 Часть III Моделирование Рис. 9.21. Вид модели свиньи сбоку после применения модификатора MeshSmooth Ввод глазных яблок Теперь осталось лишь дополнить модель свиньи глазами. Ранее в модели были об- разованы глазные впадины, а в следующем упражнении их нужно чем-то заполнить. 1. Если к модели свиньи по-прежнему применяется модификатор MeshSmooth перейдите к панели Create, щелкните на кнопке Sphere, расположенной ни- же раскрывающегося списка с выбранной категорией Standard Primitives (Стандартные примитивы), а затем установите флажок AutoGrid (Автомати- ческая сетка). В итоге сфера будет автоматически выровнена по поверхности любого находящегося на сцене объекта, что избавляет от необходимости пе- ремещать на место и поворачивать глазное яблоко вручную 2. Установите флажок Base То Pivot (Точка опоры в основании) в свитке па- раметров создаваемой сферы. Это означает что сфера создается из ее ос- нования а не из центра. Разверните модель в перспективе, чтобы ясно ви- деть ее голову и глазные впадины. Переместите Kvpcop мыши до появления гизмо преобразования в том месте, где должен находиться глаз, а затем вы- тяните сферу требуемого размера (рис. 9.22). То же самое можно было бы сделать и для второго глаза, однако проще ско- пировать экземпляр уже имеющегося глаза.
Глава 9. Моделирование персонажей 311 Рис. 9.22. Создание сферы в режиме AutoGrid 3. Выделите вновь созданный глаз, щелкните па кнопке инструмента Select and Move, выберите вариант Pick (Выборочная система координат) из рас- крывающегося списка Reference Coordinate System (Система опорных ко- ординат) па основной панели инструментов, а затем щелкните на модели свиньи. Таким образом, у модели свиньи заимствуется система координат. Это означает, что если щелкнуть на кнопке Use Transform Coordinate Center (Использовать центр координат преобразования) вместо кнопки Use Pivot Point Center (Использовать центр в точке опоры) на всплывающей панели Use Center, расположенной справа от раскрывающегося списка Reference Coordinate System, то можно перейти точно в центр модели свиньи. 4. Выберите сначала инструмент Mirror на основной панели инструментов, азатем ось X в области Mirror Axis и вариант Instance в области Clone Selec tion открывшегося диалогового окна Mirror (рис. 9.23). Теперь из одного глаза получен другой глаз, а поскольку- они являются экземплярами друг друга то изменения в одном из них па панели Modify (например, UVW- проецирование карт) распространяются и па другой. На этом создание модели свиньи завершается (рис. 9.24).
312 Часть III Моделирование Рис. 9.23. Зеркальное отображение глаза с использованием центра координат из модели свиньи Рис. 9.24. Завершенная модель свиньи
Глава 9. Моделирование персонажей 313 Завершенный вариант модели свиньи можно посмотреть, открыв файл \Project Files\Ch09_CharacterModeling\09_pig_complete .max на прилагаемом к этой книге DVD Разумеется, это не самая сложная модель персонажа, однако приведенную вы- ше процедуру п методы построения данной модели из параллелепипеда можно использовать для создания намного более сложных персонажен. Именно этому и посвящены следующие разделы настоящей главы, где вам предстоит скомпоно- вать тело персонажа, используя новые средства из арсенала инструментов моде- лирования в 3ds max 7. Присоединение конечностей Персонажи (от великана-людоеда до осьминога) могут иметь определенное, нужное художнику строение. Но чаще всего у них имеются руки н ноги. В этом разделе вам предстоит взять разрозненные части многоугольного тела персона- жа, созданные теми же методами параллелепипедпого моделирования, что и упо- мянутая выше модель свиньи, и собрать нз них полностью сочлененное туловище персонажа. Такой модульный подход к моделированию не только ускоряет дан- ный процесс и делает его более эффективным, по и позволяет использовать эле- менты одной модели при построении другой. Присоединяя к ту. ювищу созданные ранее (и затем видоизмененные) конечности, можно создать совершенно другой персонаж, затратив па это намного меньше времени, что даст огромные преиму- щества при выполнении проекта в сжатые сроки. Компоновка кисти руки Упомянутый выше подход будет продемонстрирован па примере соединения пальцев с частично смоделированной кистью руки. Как будет показано в следую- щем упражнении, это делается очень просто с помощью нового в версии 3ds max 7 инструмента Bridge. I. Откройте сцену из файла \Project Files\Ch09_CharacterModeling\ 09_body_start .max па прилагаемом к этой книге DVD (рис. 9.25). 2. Этой модели недостает двуос пальцев. Выделите отсоединенный палец в ок- не вида сверху. Выберите инструмент Select and Move, нажмите клавишу <Shifl> и переместите копию пальца вверх па исходное место (рис. 9.26). 3. Перейдите в окно вида в перспективе, где можно повернуть и переместить палец, чтобы установить его в более естественное положение относитель- но остальной кисти руки. Как только это будет сделано, выделите саму кисть руки и откройте диалоговое окно Attach List (Присоединение списка объектов), щелкнув па одноименной небольшой кнопке, расположенной рядом с кнопкой Attach в свитке Edit Geometry. Выберите оба пальца, преж- де чем щелкнуть па кнопке Attach (рис. 9.27).
314 Часть III. Моделирование Рис. 9.25. Модель кисти руки с отсоединенным пальцем Рис. 9.26. Копирование пальца
Глава 9. Моделирование персонажей 315 Рис. 9.27. Присоединение пальцев к кисти руки 4. Итак, пальцы стали неотъемлемой частью одной геометрической формы кисти руки и теперь трактуются в 3ds max как единый объект. Тем не менее опи присоединены не полностью, поэтом}' необходимо закрыть прорехи, образовавшиеся в модели кисти руки. Для этого перейдите на уровень по- добъектов-границ, выделите обе открытые границы на концах пальцев и отверстиях в кисти руки (рис. 9.28). 5. Откройте диалоговое окно Bridge, щелкнув на небольшой кнопке Settings, расположенной рядом с кнопкой Bridge в свитке Edit Borders. Обратите вни- мание па заполнение промежутков между пальцами и кистью руки (рис. 9.29). НА ЗАМЕТКУ Новый в версии 3ds max 7 инструмент Bridge может использоваться (при опре- деленных пользователем параметрах) для соединения многоугольников или гра- ниц редактируемого каркаса либо другого объекта, к которому применен моди- фикатор Edit Poly. Такой инструмент идеально подходит для заполнения проме- жутков в модели или соединения объектов друг с другом.
316 Часть III. Моделирование Рис. 9.28. Выделение открытых границ на пальцах и кисти руки Рис. 9.29. Заполнение промежутков перемычками
Глава 9. Моделирование персонажей 317 6. Вновь образовавшиеся многоугольники необходимо согласовать со строе- нием присоединенных пальцев, изменив ряд параметров. В частности, ус- тановите значение 3 параметра Segments в диалоговом окне Bridge, чтобы получить дополнительные ребра для правки формы на этих участках паль- цев. Кроме того, установите небольшое значение -0,16 параметра Taper, чтобы соединение выглядело более естественно. Можно также настроить угол сглаживания вновь созданных многоугольников в поле параметра Smooth. И хотя в данном случае этого не требуется, для более плавного вписывания таких многоугольников в модель при ее сглаживании доста- точно установить значение 180 данного параметра. Завершение модели туловища После присоединения пальцев модель кисти руки можно считать завершенной. Однако кисти, отсоединенные от рук, выглядят потерянными, поэтому' в следую- щем упражнении этот недостаток будет устранен. 1. Если на сцене отсутствуют видимые объекты, щелкните правой кнопкой мы- ши в любом видовом окне и выберите команду' Unhide АП (Показать все) из квадратного меню отображения (Display). В противном случае на сцене долж- ны быть видны туловище и рука. Прежде всего необходимо соединить их. Для этого выделите объект Torso (Туловище), выберите кнопку Attach из свитка Edit Geometry и затем выделите объект Bicep (Бицепс) (рис. 9.30). Selection I □ & Whole Object Selected ________'oft _____________ Edit Geometry_____________ Repeal Las! Contlreirts. [None 3 Г~ PreseivcUVs □ C eate j Attach □] utk'i___________] |rsp« QuckSfice Cut____ MSmooth □ T estate ,EI MakePlsn-s* | И Y| Z View Align GiidAliijn Relax -El I ya... ,1 —ЕУ-1] Рис. 9.30. Соединение туловища и руки
318 Часть III. Моделирование 2. Примените модификатор Edit Poly и перейдите на уровень подобъектов- многоугольпиков. Выделите два крупных многоугольника, расположенных напротив друг друга на туловище и руке, и заполните промежуток между ними инструментом Bridge (рис. 9.31). Рис. 9.31. Соединение двух многоугольников перемычкой 3. Как видите, туловище и рука недостаточно подогнаны друг к дру ту. Поэтому перейдите па дно стека модификаторов, убедитесь в том, что активизиро- вана кнопка Show End Result, и поправьте вершины па обоих концах вновь образовавшейся перемычки, чтобы сгладить ее форму. В активном режиме Show End Result можно наблюдать за тем, как вносимые изменения оказывают влияние на операцию соединения перемычкой в моди- фикаторе Edit Poly, расположенном выше по стеку'. Если ввести модификатор MeshSmooth па вершине стека, то можно составить еще более ясное представ- ление о том, как выгляди т рука, присоединенная к туловищу (рис. 9.32). 4. Добившись удовлетворительного результата правки, удалите модификатор MeshSmooth и вновь сверните объект до редактируемого многоугольника. Присоедините кисть к руке инструментом Attach, чтобы они составили единое целое и рука приобрела законченный вид. 5. Выделите ткрытыс границы на руке и кисти и соедините их перемычкой, установив значение 3 или еще больше параметра Segments в диалоговом окне Bridge (рис. 9.33).
Глава 9. Моделирование персонажей 319 Рис. 9.32. Вид модели после применения модификатора MeshSmooth Рис. 9.33. Соединение кисти с рукой инструментом Bridge
320 Часть III. Моделирование | НА ЗАМЕТКУ________________________________________________________ Увеличение числа сегментов имеет большое значение, поскольку это позволя ет не только получить новую геометрическую форму для управления формой руки, но и упростить снаряжение персонажа. Слишком малое число много- угольников на таких ответственных участках, как предплечье, приводят к вы- прямлению объекта при вращении запястья или сгибании локтя. Таким обра- зом, чем больше модель подразделена на ответственных участках, тем лучше она деформируется на них. 6. Если применить к телу персонажа модификатор TurboSmooth, то можно за- метить, что предплечье выглядит несколько жестким и слишком выпрям- ленным вдоль ребер и поверхностей. Это может вызвать осложнения при создании органических персонажей на уровне редактируемого многоуголь- ника. Но ведь формы модели персонажа должны иметь как можно более ес- тественный вид. Поэтому для округления поверхности требуется незначи- тельное манипулирование вершинами вручную. Если модификатор Turbo- Smooth все еще находится на вершине стека, перейдите на уровень редак- тируемого каркаса, убедитесь в том, что активизирована кнопка Show End Result, и переместите вновь образовавшиеся вершины таким образом, что- бы сделать форму модели руки более плавной. НА ЗАМЕТКУ Модификатор TurboSmooth действует намного быстрее, чем модификатор MeshSmooth, во время правки сложной геометрической формы. И хотя ему не- достает ряда ставших уже стандартными свойств модификатора MeshSmooth его быстродействие возмещает данный недостаток в том случае, если требуется внести изменения в объект и получить быструю визуальную реакцию 3ds max на эти изменения. 7. Нам осталось лишь взять одну половину модели и получить из нее другую половину, чтобы составить из них единое целое. Для этого примените модификатор Symmetry к телу персонажа, расположив его в стеке ниже модификатора TurboSmooth, и выберите X в области Mirror Axis из свитка параметров данного модификатора, если этого еще не было сделано В итоге обе половины верхней части тела персонажа состыкуются в еди- ное целое (рис. 9.34). Завершенный вариант данной модели можно посмотреть, открыв файл \Project Files\Ch09_CharacterModeling\09_body_finish.max па прилагаемом к этой книге DVD.
Глава 9. Моделирование персонажей 321 Рис. 9.34. Завершенная модель верхней части тела персонажа после применения модификатора Symmetry Моделирование мускулов Займемся теперь моделированием еще одного важного элемента строения те- ла- мускулов. И в этом нам поможет новое универсальное свойство редактируе- мого многоугольника, называемое Paint Deformation (Деформация кистью) В ре- жиме Paint Deformation можно выталкивать и втягивать поверхность объекта спе- циально настраиваемой кистью. Эго один из самых близких аналогов лепки из глины, очень удобный для ввода в модель органических деталей. В следующем упражнении вам предстоит нарастить довольно слабую мускула- туру руки из предыдущего упражнения. 1. Откройте сцену из файла \Project Files\Ch09_CharacterModeling\ 09_body_muscle_start.max на прилагаемом к этой книге DVD или же воспользуйтесь моделью из предыдущего упражнения. 2. Преобразуйте модель тела персонажа в редактируемый многоугольник (рис. 9.35).
322 Часть III. Моделирование Рис. 9.35. Преобразование модели тела персонажа в редактируемый многоугольник Конечно, можно было бы воспользоваться модификатором Edit Poly и со- хранить симметрию исходной модели с помощью модификатора Symmetry, но поскольку в этом упражнении вам придется работать с относительно плотным каркасом, реакция 3ds max па ваши действия будет происходить быстрее, если свернуть модель в объект редактируемого многоугольника. 3. Перейдите к свитку Paint Deformation и откройте диалоговое окно Painter Options (Дополнительные параметры раскраски), щелкнув па кнопке Brush Options (Дополнительные параметры кисти) (рпс. 9.36). 4. В результате сворачивания в редактируемый многоугольник модификатор Symmetry не воздействует па модель, поэтому' в диалоговом окне Painter Options можно установить флажок Mirror и выбрать X в качестве о< и зер- кального отображения, если этого еще не было сделано (рпс. 9.37). Теперь любые деформации на одной стороне модели б\дуг воспроизводиться и на другой.
Глава 9. Моделирование персонажей 323 Рис. 9.36. Диалоговое окно Painter Options Рис. 9.37. Выбор оси зеркального отображения для деформации
324 Часть III. Моделирование 5. Установите следующие значения параметров в свитке Paint Deformation. • Push/Pull Value (Величина выталкивания/вытягивания) 2,0. • Brush Size (Размер кисти) = 20,0. • Brush Strength (Нажим кисти) =0,7. Щелкните на кнопке Push/Pull и начните раскраску на плече, чтобы сделать более выпуклыми и заметными его мускулы (рис. 9.38). | <• Subdivision Displacement |i Pair* Defamation Push/Pdl Brush Options Push/PUl Direction — •5» Drujinai Normals C Defamed Normals Transform axis Brush See 120 0 Brush Strength |'67 Relax | Revert MSmooth □ Tessellate □ Make Planar | x] Y i Z View Align |_____GndAfgn ] Relax П Рис. 9.38. Ваяние мускулов плеча 6. Нарастив мускулы плеча по своему усмотрению, перейдите к грудной клет- ке и укрепите грудные мышцы. При этом вы можете оставить без измене- ния параметры настройки кисти, однако не стесняйтесь экспериментиро- вать и с другими значениями этих параметров, чтобы посмотреть к чему это приведет. Итак, сформируйте грудные мышцы, уделив внимание и мыш- цам плеч (рис. 9.39).
Глава 9. Моделирование персонажей 325 Рис. 9.39. Наращивание грудных мускулов 7 Разверните модель в перспективе с помощью кнопки Arc Rotate (Повернуть по дуге) и сделайте шею чуть толще, вытянув ее боковые стороны и мускулы плеч, чтобы укрепить телосложение персонажа. Сформировав этот участок тела персонажа, перейдите из режима Push/Pull к режиму' Re ах (Ослабление) с помощью одноименной кнопки в свитке Paint Deformation. Сгладьте любые участки, которые могут оказаться заостренными или неровными. Работая в режиме Paint Deformation, обязательно пользуйтесь кнопкой Relax, чтобы исключить слишком заметные искажения формы модели и в то же время сохранить любые изменения в пей. 8. Укрепите слабоватые предплечья, вновь перейдя сначала в режим Push/Pull (рис. 9.40), а затем сгладив их форму в режиме Relax. 9. Разверните модель в перспективе с помощью кнопки Arc Rotate, чтобы лучше видеть подмышку, которая имеет не вполне определенную форму. Установите значение -2,0 параметра Push/Pull Va ue, а также значение 5 параметра Brush Size. Перейдите к области подмышки и сформируйте ее (рис. 9.41).
326 Часть III. Моделирование Рис. 9.40. Вытягивание и очерчивание более определенной формы предплечья Рис. 9.41. Вталкивание подмышки
Глава 9. Моделирование персонажей 327 Отобразите модель полностью, как бы отступив от нее на несколько шагов, и полюбуйтесь крепким телосложением персонажа, сформированным не- сколькими мазками кисти (рис. 9.42). Рис. 9.42. Завершенная модель тела персонажа с более крепким телосложением Режим Paint Deformation это весьма полезный и уникальный инструмент мо- делирования. Его применение не ограничивается только приведенным выше примером. В частности, с его помощью можно моделировать вены и морщинки кожи, а также загибы и складки ткани. Завершенный вариант данной модели можно посмотреть, открыв файл \Project Files\Ch09_CharacterModeling\09_body_muscle_finish.max на прилагаемом к этой книге DVD. Моделирование головы Сейчас можно перейти к моделированию головы персонажа, используя другой прием, доступный в 3ds max, — формирование петель из ребер. Принимая во внимание гибкий характер моделирования с помощью поверх- ностей подразделения, поначалу очень трудно установить, каким же будет конеч- ное строение объекта. В настоящее время художники, занимающиеся моделиро- ванием трехмерных персонажей, считают наиболее удобным метод формирова- ния петель из ребер для управления формой модели. Применяя данный метод, художник создает деформируемые участки модели с помощью расширяемых пе-
328 Часть III. Моделирование тель из ребер, в результате чего модель становится более универсальной и удоб- ной как для деформации, так и для анимации. Для того чтобы лучше понять суть данного метода, подойдите к зеркалу' и откройте рот. Представьте себе очерта- ния губ в виде гибкой линии, растягиваемой подобно резиновой нити. Изменяя форму рта, вы тем самым как бы деформируете резиновую нить. Если нарисовать ряд таких растягиваемых линий из полости рта наружу, то можно заметить как они деформируются, когда вы улыбаетесь или зеваете. Этим линиям соответст- вуют петли из ребер в трехмерном каркасе. В данном случае модель точнее отра- жает формы деформируемого рта, если она создается путем связывания петель из ребер с соседними участками лица персонажа. Формирование петель из ребер вокруг рта В следующем упражнении вам предстоит сформировать рот и нос персонажа человека используя петли из ребер для определения топологии лица. Освоенные здесь методы вы сможете затем применять при моделировании любых других персонажей. 1. Откройте сцену из файла \Project Files\Ch09_CharacterMode ing\ 09_head_start шах на прилагаемом к этой книге DVD (рис 9.43). Рис. 9.43. Незавершенная модель головы персонажа
Глава 9. Моделирование персонажей 329 Эта сцена содержит незавершенную модель головы персонажа. В области глаз можно заметить петли из ребер, расходящиеся кругами от век. Ваша цель — сформировать рот и ноздри персонажа, используя аналогичную схе- му расположения геометрической формы. 2. Перейдите к окну вида в перспективе и увеличьте масштаб изображения, чтобы лучше видеть участок модели, с которым вам придется работать, — область рта (рис. 9.44). Выделите модель головы персонажа и перейдите на уровень подобъектов-ребер в стеке модификаторов данного объекта. Щелкните па кнопке Show End Result и сбросьте флажок Show Cage в свитке Edit Geometry, чтобы стали более понятными результаты моде- лирования. Selection О Verbees Selected oft Selection Edit Vert cet Bieek Remove Chamfe» □ Target Weld Connect Remove Isoidled Vertices Remove Unused Map Ver We*jht [ Edge Bader Pt%>flOn Element Q В Symmetry E~Ed*ablePoly Ertrude DJ Weld |D Shrink | ______Grow Рис. 9.44. Вид области рта крупным планом 3. Щелкните на кнопке Cut в свитке Edit Geometry. Начните разрезание с того места, где должна находиться верхняя губа, щелкая по очереди на каждом ребре для формирования очертаний губ (рис. 9.45). Сделайте три разреза в уголке рта прежде, чем переходить к нижней губе. Эти дополнительные вершины потребуются для соединения с уже имеющимися ребрами.
330 Часть III. Моделирование Рис. 9.45. Разрезание формы губ Такой метод моделирования с помощью инструмента Cut можно сравнить с рисованием эскиза непосредственно на модели. В данном случае очерта- ния губ модели рисуются непосредственно на ее геометрической форме, азатем форма уточняется и корректируется требуемым образом. Преиму- щество данного метода — очень быстрая визуальная реакция 3ds max, бла- годаря которой детали модели появляются еще до полного их завершения. 4. Перейдите на уровень нодобъектов-вершин, выделите соответствующие нары вершин и щелкните па кнопке Connect в свитке Edit Vertices (Правка вершин), чтобы соединит ьих в предполагаемых уголках рта (рис. 9.46) 5. Выполните коррекцию, выделив вершины инструментом Select and Move и поправив их положение таким образом, чтобы придать форме рта более узнаваемый вид (рис. 9.47). Разверните модель в перспективе с помощью кнопки Arc Rotate, чтобы оценить форму рта под разными углами зрения. Если выбрать локальную (Locah систему опорных координат, то переме- щать вершины в окне вида в перспективе будет легче.
Глава 9. Моделирование персонажей 331 Рис. 9.46. Соединение вершин в уголках рта Рис. 9.47. Видоизмененная форма рта
332 Часть III. Моделирование | СОВЕТ____________________________________________________________ При моделировании непосредственно в окне вида в перспективе рекомендуется постоянно поворачивать объект, чтобы оценивать его формы под разными уг- лами зрения. Ведь слишком часто приходится видеть модели головы, которые выглядят замечательно спереди, но как только повернуть их влево или вправо, они становятся плоскими или деформированными. Регулярно проверяя форму модели во всех измерениях, можно получить более ясное представления о том, что сделано неверно и где следует внести поправки в модель. 6. Добившись удовлетворительной формы рта, выделите ребра, образующие очертания рта, и щелкните на кнопке Chamfer из свитка Edit Edges, чтобы выполнить незначительное скашивание этих ребер, создав тем самым два ребра на месте одного (рис. 9.48). Рис. 9.48. Снятие фаски на ребрах рта 7. В области рта уже имеются две петли из ребер. Оставьте без изменения внешнюю петлю, чтобы она обозначала требуемые очертания рта. Для того чтобы эта форма стала более четко выраженной, удалите все многоуголь- ники в области рта. 8. Измените форму внутренней линии губ, откорректировав положение соот- ветствующих вершин и не забыв при этом повернуть модель в перспективе и оценить полученную форму под разными углами зрения (рис. 9.49).
Глава 9. Моделирование персонажей 333 Рис. 9.49. Видоизмененная форма внутренней линии губ 9. Итак, получены две четкие границы губ: внешние и внутренние ребра. Далее необходимо облечь их в форму губ. Для этого выделите одно из вертикальных ребер, проходящих вокруг губ, и воспользуйтесь сначала кнопкой Ring из свитка Selection, чтобы выделить все соседние ребра, а затем кнопкой Con- nect из свитка Edit Edges, чтобы сформировать новую петлю из ребер. НА ЗАМЕТКУ При подобном моделировании персонажей очень часто используются такие ко- манды, как Connect, Ring и Loop. Для быстрого доступа к ним пользуйтесь квад ратными меню, вызываемыми щелчком правой кнопкой мыши. С другой сторо- ны, для этих команд можно назначить клавиатурные эквиваленты в диалогом окне Customize User Interface, открываемом с помощью команды Customized Customize User Interface. 10. Вновь перейдите на уровень подобъектов-вершин. Но па этот раз вытяните форму' губ, используя только что созданные вершины. Нижняя губа получа- ется более полной, чем верхняя, поэтому' попробуйте отразить этот факт во всей ее форме (рис. 9.50). 11. Соедините ребра и, перейдя на уровень подобъектов-вершин, переместите вершины таким образом, чтобы вновь полученные ребра более естественно проходили по контуру соседних многоугольников (рис. 9.51).
334 Часть III. Моделирование Рис. 9.50. Определение более четкой формы губ Рис. 9.51. Изменение формы петли из ребер для получения более естественного контура губ
Глава 9. Моделирование персонажей 335 | НА ЗАМЕТКУ__________________________________________________________ При подобном моделировании поверхности моделей очень часто принимают же- сткую, негибкую форму. Поэтому для сохранения органического вида модели, как правило, приходится манипулировать вновь созданными вершинами вручную. 12. Примени те модификатор TurboSmooth к модели головы персонажа, чтобы оценить ее форму. Перейдите в стеке модификаторов па уровень редакти- руемого многоугольника и установите флажок Show Cage, если он еще нс установлен. 13. Перейдите на уровень подобъектов-ребер, выделите пеглю из ребер, обра- зующую очертания рта, и откройте диалоговое окно Chamfer Edges (Сня тие фаски па ребрах), щелкнув на небольшой кнопке Settings, расположенной ря- дом с кнопкой Chamfer в свитке Edit Edges. Установите значение около 0,10 в поле параметра Chamfer Amount (Величина снятия фаски) (рис. 9.52). Рис. 9.52. Снятие фаски на ребрах для определения более четкой формы губ Благодаря снятию фаски на ребрах по контуру рта последний приобретает бо- лее четкие очертания, естественно выдаваясь из остальной част и лица без слиш- ком резких или плавных переходов.
336 Часть III. Моделирование Моделирование носа В следующем упражнении вам предстоит применить описанные выше методы для моделирования носа, соседних с ним участков щек и области над верхней губой. 1. Удалите модификатор TurboSmooth из стека и выключите режим Show End Result. Выделите пять ребер и соедините их, как показано на рис. 9.53. Рис. 9.53. Выделение соединяемых ребер 2. Перейдите на уровень подобъектов-вершин и переместите новые вершины в направлении того ребра, из которого должны получиться ноздри. Такое объединение ребер позволяет добиться четких очертаний форм лица при сглаживании. 3. Для того чтобы облечь ноздри в еще более четкую форм)', требуются до- полнительные вершины. Поэтому выделите и соедините ребра, как показа- но на рис. 9.54. 4. Перейдите на уровень подобъектов-вершип, выделите и соедините две вершины, как показано па рис. 9.55. 5. Данный участок модели требует правки, поскольку он содержит лишние многоугольники, состоящие более чем из четырех ребер. Поэтому щелкни- те на кнопке Insert Vertex (Вставить вершину') из свитка Edit Edges и щелк- ните на двух ребрах в образовавшихся ранее треугольниках. 6. Привяжите эти вершины, соединив их с соседними вершинами. Затем со- едините их с противоположными вершинами и выдвиньте их (рис. 9.56).
Глава 9. Моделирование персонажей 337 Рис. 9.54. Выделение и соединение ребер для формирования ноздрей Рис. 9.55. Соединение вновь созданных вершин
338 Часть 111. Моделирование Рис. 9.56. Вид ребер после перемещения и соединения 7. Активизируйте режим Show End Result и разверните модель в перспективе с помощью кнопки Arc Rotate, чтобы лучше видеть нос снизу. Выделите в об ласты носа оставшийся крупный многоугольник и откройте диалоговое окно Inset Polygons (Врезка многоугольников), щелкнув па небольшой кнопке Set- tings, расположенной справа от кнопки Inset в свитке Edit Polygons Устано- вите такое значение параметра Inset Amount (Величина врезки), которое по зволит углубить выделенный многоугольник внутрь модели (рис. 9.57). Этот мпогоут ольпик послужит основанием для отверстия в ноздри. 8. Удалите только что врезанный многоугольник, чтобы стала более попятной моделируемая форма ноздри. Как видите, форма отверстия в ноздри ока- зывается не совсем правильной, поэтому па данном участке модели требу ется дополнительная геометрическая форма. 9. Перейдите па уровень подобъектов-ребер, выделите петлю из ребер, обра- зующих носовую перегородку между ноздрями, и соедините эти ребра. 10. А сейчас самое время посмотреть на себя в зеркало! 11ерейдитс на уровень подобъектов-вершин и переместите вершины вокруг ноздри, чтобы при- дать ей более четкую и правильную форму (рис. 9.58).
Глава 9. Моделирование персонажей 339 Рис. 9.57. Врезка ноздрей Рис. 9.58. Формирование ноздрей
340 Часть III. Моделирование Завершение модели головы Помните, что при моделировании персонажей самым лучшим образцом для подражания служит ваше собственное тело (в данном случае — голова). Поэтому' возьмите небольшое зеркало в руку и поверните шею во всевозможные положе- ния, одновременно разворачивая модель головы в перспективе. Для вас это не- оценимый опыт как для разработчика моделей персонажей. 1. Теперь необходимо углубить отверстие в ноздри. Для этого выделите гра- ницу' данного отверстия, нажмите клавишу <Shift> и перетащите выделен- ную границу вверх и внутрь носа (рис. 9.59). Рис. 9.59. Перемещение границы ноздри внутрь носа при одновременно нажатой клавише < Shift > 2. Выделите пет лю из ребер, образующих теперь кромку вокруг ноздри, и со- едините их, чтобы сформировать новую петлю из ребер. Благодаря этому область ноздри приобретет более острые очертания после подразделения (рис 9.60).
Глава 9. Моделирование персонажей 341 Рис. 9.60. Формирование новой петли из ребер вокруг ноздри 3. Примените модификатор MeshSmooth к модели головы, активизировав режимы Show End Result и Show Cage, а затем откорректируйте поло- жение вершин и вытяните их, чтобы добиться нужной формы ноздри (рис. 9.61). 4. Если сделать крупнее участок модели, где верхняя губа сходится с но- сом, то на этом участке можно обнаружить пятисторонний многоуголь- ник вместо четырехстороннего. Для устранения этого недостатка вве- дите дополнительные вершины на верхней губе. Выделите и соедините ребра, проходящие от верхней губы к пятистороннему многоугольнику. 5. Соедините одну новую вершину с уже существующей вершиной на краю ноздри (рис. 9.62). Благодаря этому улучшено строение модели. Теперь ребра четко прохо- дят вверх по контуру губ к носу (рис. 9.63). 6. И наконец, примените к модели, как и прежде, модификатор MeshSmooth (рис. 9.64).
342 Часть 111. Моделирование Рис. 9.61. Вид модели головы после применения модификатора MeshSmooth Selectron Г~ Ignore Beckfacmg Grow Shrink 2 Vertices Selected Edt Vertices Remove Isolated Vertices Remove Unused Map Veils Sice Напе Г SpU Exlrudc □ WeW □ Chamfer Oj large» WeM CXomei=J .Cdgpse Attach !□ Detach Edt Geometiy Contracts I None Г Preserve UVs П Рис. 9.62. Вершины после соединения
Глава 9. Моделирование персонажей 343 Рис. 9.63. Ребра, проходящие вверх по контуру губ к носу Рис. 9.64. Вид модели головы после применения модификатора MeshSmooth
344 Часть III. Моделирование Итак, у модели головы имеются основные элементы: глаза, нос и рот, но это еще не значит, что над ней уже не нужно больше работать. Поэтому воспользуй- тесь описанными выше методами для окончательной доводки модели головы. Найти применение петлям из ребер в каждом отдельном случае поначалу нелегко. В связи с этим настоятельно рекомендуется воспользоваться чужим опытом для совершенствования данного метода моделирования. Завершенный вариант модели головы можно посмотреть, открыв файл \ Project Files\Ch09_CharacterModeling\09_head_finish.max на прилагаемом к этой книге DVD. Преимущества правильно упорядоченного каркаса хорошо видны на примере целей морфинга. Такие цели создаются для разных выражений лица или поз, ис- пользуемых в анимации (рис. 9.65). Приступив к изменению формы отдельного участка модели, вы сразу же обнаружите достоинства и недостатки полученной геометрической формы Рис. 9.65. Примеры целей морфинга, демонстрирующие расположение петель из ребер вокруг рта До сих пор речь шла о моделях, получаемых в окончательном виде с помощью поверхностей подразделения (а точнее, модификаторов MeshSmooth или Tur- boSmooth) Процессу подразделения присущи две особенности: закругление ост- рых углов и поверхностей и увеличение числа многоугольников в модели. Однако для быстрого перемещения моделей по экрану нецелесообразно создавать плот- ные или тяжеловесные каркасы, например, когда в анимации используются за- мещающие объекты. Такие объекты требую тс я аниматору для подстановки более
Глава 9. Моделирование персонажей 345 легкой (т.е. с меньшим числом многоугольников) модели ради ускорения реакции системы в процессе создания анимации. Кроме того, модели с малым числом многоугольников применяются при создании видеоигр. Все содержимое экрана в видеоигре должно быть сформировано с использованием минимальной геомет- рической формы, исходя из графического оформления игры и быстродействия процессора. Модели с малым числом многоугольников создаются темп же самыми инструментами. В действительности до применения модификатора MeshSmooth упоминавшийся выше персонаж свиньи представлял собой модель с малым чис- лом многоугольников. Моделирование глаз Практически каждому персонажу требуются глаза в том или ином виде. Они являются весьма важным органом его жизнедеятельности (кого не утомляет по- стоянное напряжение глаз во время работы за компьютерным монитором). Аналогично остальным аспектам моделирования персонажей, для создания разных видов глаз имеются нс менее разнообразные методы. В этом разделе вам предстоит создать простые карикатурные глаза, используя лишь примитивные сферы и ряд стандартных свойств 3ds max. Карикатурные глаза Карикатурным глазам персонажа присуши свои характерные особенности. Они намного крупнее, а иногда и меньше, обычных глаз по отношению к осталь- ной части лица. Как правило, они намного более выпуклые и не обязательно имеют сферическую форму, хотя в данном случае их форма будет именно такой. Зрачки и радужная оболочка таких глаз зачастую намного крупнее склеры (белочной оболочки) обычных глаз. В следующем упражнении будет показано, насколько быстро моделируются выразительные карикатурные глаза персонажа из примитивов, которые затем правятся для изменения вида и выражения глаз. 1. Откройте сцену из файла \Project Files\Ch09_CharacterModeling\ 09_robot_blind.max на прилагаемом к этой книге DVD (рис. 9.66). В этой сцепе уже имеется простой сочлененный персопаж-робот, но у него пока еще пет глаз. 2. Создайте в окне вида слева примитивную сферу, щелкнув на кнопке Sphere, расположенной ниже раскрывающегося списка с выбранной категорией Standard Primtives па панели Create. Установите значение 15 параметра Radius и оставьте без изменения значение 32 параметра Segments в свитке Parameters вновь созданной сферы. Перейдите в окно вида спереди и пере- местите сферу приблизительно па то место, где должен быть левый глаз ро- бота (рис. 9.67). Для того чтобы лучше различать в дальнейшем моделируе- мый глаз, назначьте для пего материал Eye (Глаз) в редакторе материалов.
346 Часть 111. Моделирование Рис. 9.66. Модель робота без глаз Рис. 9.67. Создание глаза из сферы
Глава 9. Моделирование персонажей 347 3. Если сфера все еще выделена, нажмите клавишу' <Shift> и щелкните один раз, чтобы открыть диалоговое окно Clone Options. Оставьте без изменения вари- ант Сору, выбранный в области Object Туре (Тип объекта) этого диалогового окна, а также значение 1 параметра Number of Copies (Число копий). 4. Если вновь полученная копия сферы выделена, создайте веки. Сначала на значьте для этого объекта материал Metal в редакторе материалов, а затем перейдите к панели Modify и установите значение 16 параметра Radius в свитке Parameters, чтобы сделать сферу чуть больше обычного глаза. 5. Установите сначала флажок Slice On (Активизировать сечение), а затем следующие значения параметров в свитке Parameters. • Slice From (Начало сечения) = 200. • Slice То (Конец сечения) = 340. В итоге из более крупной сферы образуются верхнее и нижнее веки (рис. 9.68). Более того, используя указанные выше параметры, можно очень просто откорректировать или осуществить анимацию положения век. Hemisphere: |"о"б Z Chop С Squash Р Sire On Sbce From, j 200 0 Z SLceTof3400 ; Г Base To Pivot I** Generate Mapping Coords Рис. 9.68. Открытие век инструментом Slice Radus ГбО Segments. |32 I*? Smooth 6. Итак, глаз уже можно открывать и закрывать, однако робот по-прежнему нс видит. Создайте в окне вида спереди еще одну сферу, поместив ее па том месте, где должен быть зрачок. Установите ее радиус около 2, хогя он мо- жет быть больше или меньше. Назначьте для данного объекта материал Pu- pil (Зрачок).
348 Часть III. Моделирование | НА ЗАМЕТКУ________________________________________________________ Глаза персонажа (и особенно форма и размер зрачков) во многом раскрывают черты его характера. Чем меньше зрачки, тем более тупым или сосредоточен- ным оказывается вид персонажа, тогда как крупные зрачки придают персонажу более смышленый или невинный вид. Это хорошее практическое правило, хотя оно и не всегда соблюдается. Посмотрите ранние фильмы студии Диснея в ко- торых художники-мультипликаторы часто использовали крупные глаза для бо- лее смышленых персонажей. 7. Зрачок должен быть ровно вписан в поверхность глазного яблока. Поэтому перейдите сначала в окно вида слева и поместите зрачок перед глазным яб- локом. Затем перейдите к панели Create и щелкните на кнопке Geometry. Выберите из раскрывающегося списка категорию Compound Objects (при выделенном зрачке) и щелкните на кнопке Conform (Сопряжение). 8. Щелкните на кнопке Pick Wrap-То Object (Выбрать объект сворачивания) и выделите в окне вида спереди сферу глазного яблока. Перейдите к панели Modify и установите флажок Hide Wrap-То Object (Скрыть объект сворачи- вания) в области Update (Обновление) свитка Parameters (рис 9.69) Рис. 9.69. Зрачок, сворачивающийся в глазное яблоко с помощью составного объ- екта Conform
Глава 9. Моделирование персонажей 349 Если перейти к окну вида в перспективе, то можно заметить, что зрачок ровно вписан в поверхность глазного яблока. Этого же результата можно было бы добиться и другим путем, создав отдельную текстурную карту для зрачка и наложив ее непосредственно на глазное яблоко. 9. Теперь необходимо связать вместе оба элемента модели глаза. Если вас уст- раивает внешний вид зрачка, щелкните на нем правой кнопкой мыши и преобразуйте его в редактируемый каркас. Выберите инструмент Select and Link и установите связь между зрачком и глазным яблоком. Это означа- ет, что когда вращается глазное яблоко, то за ним следует и зрачок. Выбе- рите инструмент Select and Rotate и поверните глазное яблоко, чтобы вы- брать направление взгляда робота (рис. 9.70). Рис. 9.70. Зрачок, связанный с глазным яблоком, вращается вместе с ним 10. Осталось лишь скопировать глаз на другую сторону головы робота. Для это- го выделите глазное яблоко, веки и зрачок, перейдите в окно вида спереди, нажмите клавишу' <Shift> и перетащите эти объекты, скопировав их на дру- гую сторону головы робота. А теперь, когда получены оба глаза, попробуйте изменить параметры S ice From и Slice То в сферах век, чтобы придать глазам другое выражение (рис. 9.71).
350 Часть III. Моделирование Рис. 9.71. Изменение выражения глаз робота с помощью инструмента Slice Завершенный вариант данной модели можно посмотреть, открыв файл \Project Files\Ch09_CharacterModeling\09_robot_final.max на прилагаемом к этой книге DVD. Итак, вы создали пару очень простых, но весьма выразительных глаз. Просто удивительно, сколько эмоций могул- передать глаза персонажа, поэтому экспери- ментируйте с разными вариантами их представления. В частности, примените к полученным выше глазам робота модификатор FFD (box), чтобы изменить их форму, — ведь не всегда же глаза бывают круглыми! Резюме Методы освоенные в этой главе, вы сможете с успехом применять при моде лировании самых разных персонажей. Это лишь стандартные процедуры моде- лирования персонажей, а для того чтобы добиться выдающихся результатов, тре- буются ваши собственные творческие способности. Поэтому начинать моделиро- вание головы или свиньи совсем не обязательно одним и тем же способом, на- пример из параллелепипеда. Это лишь стандартные приемы, которые вы должны поставить па службу собственным творческим интересам. Попробуйте примени ть эти методы в одном из своих проектов. В поисках вдох- новения оглядитесь вокруг, осмотрите свое рабочее место, поглядите в зеркало, и вы найдете буквально сотни интересных персонажей, ожидающих воплощения.
Часть IV Текстурирование 10 Проецирование текстур 11 Разработка текстур
-г ’ с'" Ч.' ‘ Гл а в а 10 Проецирование текстур Джон Л. Белл В этой главе будет показано, так с помощью редактора материалов и целого ряда доступных в 3ds max 7 методов и модификаторов UWV-ПроВцирования карт можно быстро и эффективно решить любую задачу текстурирования гео- метрической формы какой угодно сложности. Независимо от типа создаваемо- го объекта, будь то органический персонаж для фильма или видеоигры, модель с малым числом многоугольников для компьютерной игры или твердое покры- тие для промышленной или архитектурной визуализации, в 3ds max 7 всегда найдутся инструменты, позволяющие сделать как можно лучше внешний вид модели. В частности, в этой главе освещаются следующие темы. • Редактор материалов и окно Material Map Browser. • Типы материалов и оттенителей. • Типы карт: растровые и процедурные. • Координаты проецирования процедурных карт, в также UVW- проецирования карт в пространстве объектов и в мировом пространстве. • Проецирование из камеры. • Проецирование карт в материале Multl/Sub-Object. НА ЗАМЕТКУ Ради простоты в этой главе рассматриваются стандартные для 3ds max типы о - тенителей, материалов и карт, предназначенных для визуализации только с по мощью стандартного средства визуализации с построчной разверткой (Default Scanline Renderer).
354 Часть IV. Текстурирование Редактор материалов Материалы, создаваемые и видоизменяемые в редакторе материалов, опреде- ляют характер взаимодействия света с поверхностью объекта. В этой главе пред- полагается, что вы уже проработали основной учебный материал, входящий в со- став 3ds inax 7, и знакомы с большинством свойств данного приложения, поэтому ниже дается лишь крат кий обзор функций редактора материалов В версии 3ds max 7 редактор материалов (рис. 10.1) не претерпел существен- ных изменений с момента выпуска версии 3D Studio МАХ R1 весной 1996 года. Первоначальное оформление редактора материалов вполне соот ветствовало требованиям того времени и давало пользователям возможность относительно просто создавать сложные многослойные текстуры. В целом это уже довольно зрелое оформление, хотя для его совершенствования всегда есть место. Рис. 10.1. Редактор материалов в 3ds max 7 со стандартными настройками
Глава 10. Проецирование текстур 355 На рис 10.1 показаны стандартные настройки параметров редактора материа лов, устанавливаемые при его открытии в первый раз с помощью соответствую- щей кнопки, обозначенной пиктограммой данного редактора на основной панели инструментов. Ряд кнопок на правой стороне редактора материалов позволяет изменять режимы отображения сферического образца материала (который мо- жет быть также цилиндрическим и параллелепипедным), освещения образца ма- териала (включение или выключение задней подсветки), отображения фона для этого образца (что полезно для работы с полупрозрачными материалами) и пр. Если дважды щелкнуть на сферическом образце материала, отобразится пла- вающая панель с укрупненным образцом для более детального изучения текстуры материала. Если же щелкнуть правой кнопкой мыши на том же образце материа- ла. появится всплывающее меню, из которого можно выбрать другие схемы рас- положения образцов материалов: 3x2, 5x3 или 6x4. Несмотря на то что в редакторе материалов можно одновременно отображать не больше 24 образцов материалов, этим пределом количество материалов, приме- няемых в сцене, не ограничивается! Для создания новых материалов в редакторе материалов и последующего их применения па сцене достаточно щелкнуть на лю- бом сферическом образце, затем щелкнуть на пиктограмме со знаком X (чтобы ус- тановить стандартные настройки параметров редактора материалов) и, наконец, выбрать кнопку-переключатель Affect only mtl/map in the editor slot (Оказывать влия пие только па материал или карту па позиции образца в редакторе материалов) вдиалоговом окне Reset Mtl/Map Parameters (Установка в исходное состояние па- раметров материала или карты) При этом позиция образца материала очищается Присвойте вновь созданному материалу любое имя и измените, если требуется его параметры и карты. Установка сч андартных настроек параметров редактора материалов дает воз- можность создать для сцепы новый материал, даже если позиции образцов в ре- дакторе материалов уже заполнены. На рис. 10.2 приведено диалоговое окно Re- set Mtl/Map Parameters. Рис. 10 2. Диалоговое окно Reset Mtl/Map Parameters Типы оттенителеи Первым компонентом материала, наблюдаемым в редакторе материалов яв- ляется тип оттенителя. (Оттенитель определяет глобальные свойства визуализа- ции поверхности.) Исходный тип оттенителя составляет основу всех материалов, создаваемых в 3ds шах 7.
356 Часть IV. Текстурирование Самым верхним в редакторе материалов является свиток Shader Basic Pa- rameters (Основные параметры оттенитсля), в котором имеется раскрывающий- ся список различных типов оттенителей. По умолчанию в этом списке выбран оттенитель типа Bhnn (названный в честь автора алгоритма затенения Джеймса Блинна — одного из первооткрывателей в области визуализации средствами ком- пьютерной графики). Оттенитель Blinn вполне пригоден в большинстве случаев, но из указанного выше раскрывающегося списка можно также выбрать следую- щие тины оттенителей. • Anisotropic (Анизотропный). Создает специально настраиваемые зеркаль- ные подсветки для металлов, волос, бархатной ткани и других глянцеви- тых, текстурированных материалов, где угол падения света оказывает влияние яркость и цвет объекта. • Metal (Металлический). Для металлической отделки. • Multi-Layer (Многослойный). Для сложных материалов с различными со- ставляющими затенения. • Oren-Nayar-Blinn (Алгоритм затенения по Орепу-Найару-Блинну). Идеаль- но подходит для таких шероховатых или матовых поверхностей, как класс- ная доска. • Phong (Алгоритм затенения по Фонгу). Обеспечивает более светлые под- светки, чем оттенитель Blinn • Strauss (Алгоритм затенения по Штрауссу). Действует аналогично отгепи- телю Metal, только с одной цветовой составляющей и без отдельной зер- кальной составляющей. • Translucent (Полупрозрачный). Имитирует полупрозрачные, двухсторонние материалы. Это новый для версии 3ds max 7 оттенитель, позволяющий созда вать такие топкие, полупрозрачные материалы, как бумага и матированное стекло. Однако это нс настоящий оттенитель подповерхностного рассеива- ния (SSS), который способен точно имитировать такие материалы, как яра мор, воск, кожный покров, поверхности которых частично пропускают свег. В оперативном режиме свободно доступны для загрузки или приобретения многие оттепитсли от независимых производителей в качестве дополнения к ос полным типам оттенителей, имеющимся в 3ds max 7. Типы материалов Вторым основным компонентом материалов в 3ds max 7 является, собственно тип материала. По умолчанию устанавливается тип стандартного (Standard) ма- териала. Щелчком на кнопке Material Туре (Тип материала) открывается окно Material/Map Browser (рис. 10.3), в котором выбираются материалы других типов.
Глава 10. Проецирование текстур 357 Рис. 10.3. В окне Material/Map Browser стандартный для 3ds max материал можно заменить материалом другого, специального типа Ниже перечислены основные типы материалов в 3ds max (т.е. материалы, не предназначенные для визуализации с помощью модуля mental ray). • Advanced Lighting Override (Материал, заменяющий усовершенствованное освещение). Применяется в сочетании со свойствами Light Tracer и Radios- ity в 3ds max 7. • Architectural (Архитектурный). Обеспечивает свойства, заимствованные из программы Autodesk VIZ — инженерно-конструкторского и архитектурного ответвления основной программы 3ds max. • Blend (Смешанный). Смешивает и сочетает материалы разных типов. • Composite (Составной). Формирует слоями сложные материалы и карты.
358 Часть IV. Текстурирование • Double Sided (Двухсторонний). Создаст двухсторонние материалы, причем одни материал отображается по нормалям видимых граней модели, а дру- гой — по нормалям невидимых граней. • Ink and Paint (Обводка и раскраска). Основной материал, имитирующий ри- сованную анимацию па целлулоидной прозрачной пленке. • Lightscape Mtl (Материал для освещения). Позволяет установить параметры излучательности для каркасов, экспортируемых в программу трехмерной визуализации Lightscape, теперь уже пе выпускаемую компанией Autodesk, а раньше использовавшуюся для архитектурной визуализации высокого ка- чества по методу излучательности. • Matte/Shadow (Маскирукмцнй/Тепевой). Применяется для создания спе- цэффектов и компоновки, когда па объекте должен проявляться любой ок- ружающий его фон. • Morpher (Морфинг). Применяется для перехода между типами объектов и их мат ериалами при их морфин! с. • Multi/Sub-Object (Мпожественпо-подобъектпый). Позволяет тщательно ор- ганизовать и распределить материалы по выбранным граням геометриче- ской формы, используя идентификационные номера материалов Болес подробно данный тип материала будет рассмотрен далее в этой главе. • Raytrace (Материал, формируемый методом трассировки лучей). Обеспе- чивает разнообразные отражения и преломления и более точную зеркаль- ность, чем стандартный материал, а также допускает проецирование карт рассеяния, отсутствующее у других материалов в 3ds max 7. Имеется также рассматриваемая ниже карта типа Raytrace, которую можно использовать па позиции карты обычного для 3ds max 7 материала. • Shell Material (Материал оболочки). Действует совместно со свойством Ren- der То Texture для сведения сложной иерархии текстур, которая может со- стоять из множества слоев процедурных текстур, в единое растровое изо- бражение, сохраняемое па диске. Такой материал позволяет сэкономить немало времени в процессе визуализации. • Shellac (Шеллачный). Еще один тип составного материала для имитации глянцевых поверхностей. • Top/Bottom (Верхний/Нижиий). Сочетает разные материалы в зависимо- сти от координат объекта, мировых координат или того и другого. Этот тип материала полезен для смены текстур в зависимости от возвышения по- верхности, например, для получения снежного покрова на вершинах гор, пыли па верхней стороне объектов и т.д. А теперь когда представлены основные типы оттснителей и материалов, рас- смотрим различные типы карт, доступных в 3ds max 7. Типы и образцы карт В 3ds max 7 (как, впрочем, и в большинстве приложений трехмерной графики и анимации) имеются два основных типа карт: растровые и процедурные
Глава 10. Проецирование текстур 359 Растровые карты состоят из неподвижных изображений, хранящихся в ти- пичных для изображений файлах форматов JPEG, TIFF, TGA и BMP, или же из последовательности изображений, накладываемых на поверхности объектов для получения анимационных эффектов. Они могут быть созданы с самого начала в такой программе раскраски или редактирования изображений, как Adobe Pho- toshop или Corel Painter, импортированы в виде сканированной или цифровой фотографии и кадров оцифрованного видеоматериала, сформированы из втуа- лизируемой трехмерной сцены или же получены в результате сочетания любых из перечисленных методов Для получения фотореалистичных сцен лучше всего применять текстуры на стоящих материалов. Так, если имитируется поверхность деревянного стола с цара- пинами, вмятинами и выбоинами, то фотография деревянного стола (наряду с от- дельной растровой картой для дефектов его поверхности), без сомнения, будет вы- глядеть лучше, чем карта, полностью раскрашенная вручную, если, конечно, опа не сделана гениальным художником. Характерные дефекты и отличительные особен пости настоящих изображений очень трудно повторить в цифровой иллюстрации поэтом)' вполне естествен возврат к природе. На рис. 10.4 приведены примеры по- добных текстур. Рис. 10 4 Настоящие растровые изображения практически всегда оказываются лучше раскра- шенных вручную текстур для получения реалистичных поверхностей трехмерных объектов
360 Часть IV. Текстурирование Процедурные карты создаются исключительно математическими алгоритма- ми для формирования различных эффектов па поверхностях. Они имитируют самые разные эффекты: от стандартных, обыденных функций зашумления для получения шероховатых поверхностей, до специальных эффектов электричест- ва, водной поверхности фантастических рисунков и пр. Зачастую процедурные и растровые карты применяются в определенном сочетании для получения более разнообразных эффектов в сцене. Следует, однако, иметь в виду, что растровые карты являются, по существу, двухмерными изображениями, аналогично рисунку, наносимому краской на поверхность трехмерного объекта, тогда как процедур- ные карты, по существу, охватывают весь трехмерный объект Об этом важном отличии следует помнить при планировании экспериментов с текстурированием. Типы карт в 3ds max Ниже перечислены стандартные для 3ds max 7 типы карт (рис. 10.5). Рис. 10.5. В 3ds max 7 доступны самые разные типы карт • Bitmap (Растр). Неподвижные изображения или последовательности изо- бражений. • Camera Map Per Pixel (Карта проекции из камеры, приходящейся па каж- дый пиксель). Позволяет визуализировать и сохранять изображения трех мерных сцен с высоким разрешением, ретушировать их, если требуется, а затем вновь накладывать в виде карт проекции из камеры па исходную
Глава 10. Проецирование текстур 361 геометрическую форму. Такая карта наиболее пригодна для получения мас- кирующих изображений фона и виртуальных декораций в кадрах съемки с визуальными эффектами. Cellular (Ячеистая). Сложная карта, применяемая для имитации таких орга- нических рисунков, как ячейки кожного покрова, водная поверхность, элек трические дуги и пр. Checker (Клетчатый рисунок). Формирует клетчатый рисунок с настраи- ваемыми размерами (шириной и высотой) и выбираемым цветом квадрат- ных клеток. Combustion (Сгорание). Обеспечивает связь с combustion— программой раскраски и компоновки, созданной в компании discreet. Поверхности объ- ектов раскрашиваются в combustion, а результаты наблюдаются в видовых окнах 3ds max. Composite (Составная). Применяется для расположения дополнительных карт слоями. Dent (Углубление). Чаще всего применяется на позиции карты рельефности. Falloff (Спад). Весьма универсальная карта для получения эффектов радуж- ных переливов и отражений, демонстрируемых в следующей главе. Flat Mirror (Плоское зеркало). Имитирует ровные отражающие поверхности. Gradient (Градиент). Формирует линейный или радиальный градиент; осо- бенно полезна для маскирования. Gradient Ramp (Линейно изменяющийся градиент). Аналогична карте Gradient, нос большими возможностями управления цветом и проецированием. Marble (Мрамор). Имитирует окраску и прожилки мрамора. Mask (Маска). Карта, применяемая па позиции данной карты, маскирует нижележащие карты. Mix (Смешение). Применяется для смешения двух или трех карт. Noise (Зашумление). Основная процедурная карта, применяемая в самых разных местах трехмерных сцен. Normal Bump (Обычный рельеф). Формирует растровые карты материала, используя информацию из цветовых каналов. Output (Вывод). Применяется для улучшения вывода подкарты, у которой отсутствуют стандартные параметры вывода. Particle Age (Возраст частиц). Помогает корректировать цвет и непро.зрач пость частиц. Particle Mblur (Размытость движения частиц). Помогает настроить размы- тость движения частиц. Perhn Marble (Псрлинский мрамор). Разновидность текстуры мрамора с до- полнительными возможностями настройки. Planet (Планета). Типичная карта для имитации поверхности планеты.
362 Часть IV. Текстурирование • Raytrace (Карта, формируемая методом трассировки лучей). Чаще всего при- меняется па позициях карт отражения и преломления в стандартном мате- риале для имитации реалистичных зеркальных и стеклянных поверхностей. • Reftect/Refract (Отражепие/Преломление). Имитирует в трехмерной сцене от- ражения от окружения; как правило, действует быстрее, чем карта Raytrace. • RGB Multiply (Умножение значений RGB). Применяется для усиления или подавления значений RGB в подкартс. • RGB Tint (Оттенок RGB). Аналогична карте RGB Multiply; применяется для цветовой коррекции имеющейся подкарты. • Smoke (Дым) Действует слабее, чем карта Noise • Speckle (Крапинка). Формирует произвольные крапинки и пятнышки. • Splat (Брызги). Аналогична карте Speckle, однако формирует более круп- ные и остроконечные крапинки. • Stucco (Штукатурка). Формирует рисунок, наиболее пригодный для про- ецирования растровых карт. • Swirl (Завихрение). Формирует плавно заверяющиеся цветовые переходы. • Thin Wall Refraction (Отражение от топкой стены). Применяется для имитации отражений от окопного стекла, когда можно обойтись без кар ты Raytrace. • Tiles (Плитки). Формирует геометрический мозаичный рисунок; заменяет карту Brick (Кирпич) из предыдущих версий 3ds max. • Vertex Color (Цвет вершины). Создает специальные цветовые эффекты; применяется для затенения моделей в игровых механизмах. • Waves (Волны). Создает убедительные эффекты на водной поверхности. • Wood (Дерево). Простая процедурная карта, имитирующая строение дре- весной текстуры. В следующей главе будет показано, как создавать собственные специальные текстуры, используя в определенном сочетании растровые и процедурные карты, а также видоизменять и совершенствовать уже имеющиеся текстуры для трех- мерной визуализации. Архитектура в танце 1 оворят, что писать о музыке — все равно, что изображать архитектуру в тан- це. Это же можно сказать и об описаниях красочных текстур, формируемых сред- ствами компьютерной графики: в лучшем случае такие описания не содержат ни- какой полезной информации, а в худшем — только вводят в заблуждение. Изобра- жения текстур лучше рассматривать крупным планом и индивидуально чтобы понять их особенности и назначение. Поэтому не тратя лишних слов, рассмот- рим в следующем упражнении сразу все типы оттепитслеи, материалов и текстур. 1. Откройте сцен)' из файла \Project Files\ChlO_TextureMapping\All_ Material s_Maps_Shaders .max па прилагаемом к этой книге DVD (рис. 10 6).
Глава 10. Проецирование текстур 363 Рис. 10.6. Сцена из файла All_Materials_Maps_Shaders .шах 2. Активизируйте окно вида спереди, откройте диалоговое окно Render Scene и щелкните на кнопке Render (рис. 10.7). Данная сцена создана художником Питером Клеем (Peter Clay) из отдела кон- троля качества и тестирования программных продуктов компании discreet. Опа содержит образцы всех типов оттенителей, материалов и карт, нс предназначен ных для визуализации с помощью модуля mental ray. Каждый тип ясно обозначен соответствующей надписью и представлен сферическим образцом. Если перейти к панели Display и сбросить флажок Cameras (Камеры) в свитке Hide by Category (Сокрытие по категории), то в сцене можно обнаружить ряд камер, показываю- щих крупным планом каждый сферический образец, и еще одну подвижную каме- ру, панорамирующую эти образцы в течение 10 кадров анимации. Пользуйтесь данной сценой для справки о типах оттенителей, материалов и карт, которые вам еще не знакомы.
364 Часть IV. Текстурирование Material Types Shader Types Map Types Shelt Double Sided L ghlscape Maite/Shadow Blinn Phong Metal Advanced Lighting Wiorpber Mat. MulU/Sub Objecl Translucent Multi-Layer Oren-Nayar-BImn Face Map Botmap Bncks Cellular Checker Composite Dgjjt oot >• Falloff Elat № > Gradient Gradient Marble Mask b" BKr- Pamp _____ Mix Noise Output Pedin Marble Planet аэе j j Renee RGB RGB Tint Smoke Speckle Splat Refract Multiply Particle Bitmap Particle Age Particle MBiur Рис. 10.7. Эта сцена содержит образцы всех доступных в 3ds max 7 типов оттенителей, ма- териалов и карт для стандартного средства визуализации с построчной разверткой Проецирование текстур Вероятно, вы уже жаждете постичь основы применения упомянутых выше ма- териалов в реальной сцене Но сначала вам предстоит ознакомиться с порядком наложения карт на процедурные объекты. Проецирование карт на процедурные объекты Процедурные объекты, например стандартные и расширенные примитивы лоскутные сетки, создаются на панели Create в категории Geometry с уже уста- новленными па месте координатами проецирования в активизируемом по умол- чанию режиме Generate Mapping Coordinates (Формировать координаты проеци- рования) (рис. 10.8). Поэтому карты на этих объектах обычно визуализируются правильно. Это же можно сделать и на сплайновых объектах (линиях, окружно- стях, прямоугольниках и т.д.), хотя режимы Renderable и Generate Mapping Coor-
Г лава 10. Проецирование текстур 365 dinates в свитке Rendering каждого такого объекта по умолчанию не активизиро- ваны. (Это сделано для того, чтобы по ошибке не визуализировались сплайны и формы, оставшиеся после создания модели.) Sphere Radius' | 00 D Cj Segments: |3? С] р Smooth Hemisphere. fo75 С] Chop C Squash Г Slice On S lice From- Jo'o C] 1 Sfice T о- [об C| Г Base To Pivot R Generate Mapping Coords Рис. 10.8. Координаты проециро- вания устанавливаются для про- цедурных объектов в 3ds max 7 по умолчанию При создании некоторых составных объектов (в частности, объектов юфта) также автоматически формируются координаты проецирования (рис. 10.9). Это очень удобно, поскольку стандартное UVW-проецирование трудно осуществить па такие сложные объекты, как отрезок кабеля или шланга, намотанного на дви- гатель в трехмерной модели автомобиля. Благодаря сохранению координат про ецирования на процедурных объектах, находящихся на сцене, можно сэкономить время и труд при последующем применении материалов. НА ЗАМЕТКУ При сворачивании процедурных объектов в редактируемые каркасы, много- угольники, лоскуты и объекты NURBS сохраняются их исходные координаты проецирования, но если применить модификатор UVW Мар выше этих объектов в стеке модификаторов, а затем вновь свернуть их, исходные координаты про- цедурного проецирования не сохранятся.
366 Часть IV Текстурирование Рис. 10.9. При создании объектов лофта для них автоматически назначаются координаты проецирования Модификаторы проецирования Рассмотрим различные варианты видоизменения порядка наложения карт на объекты. Если сцена не состоит из процедурных объектов в их исходном виде (что маловерияIно), то для объектов необходимо установить конкретные коор- динаты проецирования UVW. Эго дает возможность подогнать текстуры специ- ально по объект)' или группе граней любой формы. Гизмо модификаторов UVW-проецирования действуют как в мировом простран сгве (глобальных координат), так и в пространстве объектов (локальных коорди- нат). Оба варианта доступны из списка модификаторов на панели Modify. Ниже перечислены доступные в 3ds max 7 модификаторы UVW-проецировапия карт в мировом пространстве. • Camera Мар (Проецирование из камеры) Проецирует карту' из вида, на- блюдаемого в камеру; применяется для получения в сцене фронтально про- ецируемых спецэффектов. • MapScaler (Масштабирование карты). Сохраняет размеры карты, наложен- ной па объект путем UVW-проецирования, относительно мирового про- странства при изменении масштаба базового объекта.
Глава 10. Проецирование текстур 367 • Surface Mapper (Проецирование па поверхность). Проецирует на видоиз- мененный объект карт}', назначенную для поверхности NURBS. Пригоден лишь при создании в 3ds max объектов NURBS. Далее перечислены доступные в 3ds max 7 модификаторы UVW-проецировапия карт и материалов в пространс гве объектов. • MapScaler. Сохраняет размеры карты, наложенной па объект путем UVW- проецирования, относительно пространства объектов при изменении масштаба базового объекта. • Material. Назначает в сцене конкретные материалы для объектов, граней и элементов. • MaterialByElement (Материал поэлементно). Назначает разные идентифи- кационные номера материалов для объектов, состоящих из mhoi их элемен- тов, как по отдельным элементам, так и произвольно. • Unwrap UVW (Развертка проекции UVW). Видоизменяет расположение де- талей растра на поверхности объекта на уровне граней, ребер или вершин. Это можно сделать в окне Edit UVWs, отрываемом щелчком на кнопке Edit в свитке Parameters данного модификатора (рис. 10.10). Рис. 10.10. Вид окна Edit UVWs в сцене из файла \Project Files\ChlO_TextureMapping\ Unwrap UVW Example .шах на прилагаемом к этой книге DVD
368 Часть IV. Текстурирование • UVW Map (UVW-проецирование). Это стандартный модификатор для уста- новки координат проецирования в каркасах, лоскутах и многоугольниках. При этом доступны координаты следующих видов проецирования карт: пла- нарного (Planar), цилиндрического (Cylindrical), сферического (Spherical), об- тягивающего (Shrink Wrap), параллелепипедного (Box), на грани (Face), XYZ to UVW (преобразование из одной системы координат в другую). • UVW Mapping Add (Ввод канала UVW-проецировании). Применяется со- вместно с утилитой Channel Info (Информация о каналах), доступной на панели Utilities (Утилиты). Этот модификатор предназначен в основном для разработчиков игр, которым требуется доступ на низком уровне к данным о цвете вершин и проецировании карт на трехмерные объекты экспорти- руемые впоследствии в игровой механизм. • UVW Mapping Clear (Очистка канала UVW-проецирования). Очищает дан- ные в канале UVW-проецирования. • UVW Xform (Преобразование UVW проецирования). Настраивает мозаич- ное расположение и смещение карты в существующих координатах UVW- проецирования. Применяется также для коррекции устанавливаемых по умолчанию координат проецирования карт на процедурные объекты • VertexPaint (Раскраска вершин). Еще один инструмент для разработки игр, позволяющий художникам и программистам видоизменять текстуры на мо- дели с малым числом многоугольников для вывода в игровой механизм. НА ЗАМЕТКУ Модификатор Shell, относящийся к категории модификаторов в пространстве объектов, отличается от материала Shell тем, что обеспечивает толщину стенок в геометрической форме трехмерных объектов, тогда как материал Shell приме- няется для сведения процедурных текстур в единый растр. Вот, собственно, и все, что нужно знать об основных типах оттенителей, ма- териалов, карт и связанных с ними модификаторов проецирования (все эти эле- менты сцены не имеют отношения к визуализации с помощью модуля mental ray). А теперь рассмотрим ряд полезных практических приемов проецирования карт Практические приемы проецирования В следующем упражнении демонстрируются отличия между проецированием в пространстве объектов и в мировом пространстве и даются рекомендации от- носительно использования этих отличий для получения ряда интересных эффек- тов текстурирования. 1. Загрузите сцену из файла \Project Files\ChlO_TextureMapping\Object Space vs World Space, max на прилагаемом к этой книге DVD (рис. 10.11).
Глава 10 Проецирование текстур 369 Рис. 10.11. Сцена из файла Object Space vs World Space.max 2. Переместите ползунок по временной шкале анимации, чтобы посмотреть, как две сферы перемещаются по экрану на фоне клетчатого рисунка. К обе- им сферам применен модификатор UVW Мар с координатами сферическо- I о проецирования. 3. Откройте редактор материалов и исследуйте материалы, применяемые в данной сцене. Это два разных мат ериала для каждой из сфер причем в обоих материалах применяется карта Checker. Л другая кар га Checker, накладываемая с помощью координат экранного (Screen) проецирования, образует в данной сцепе окружающий фон. 4. Выберите первый материал Object-Space Mapping (Проецирование карт в пространстве объектов) и откройте в нем позицию карты цвета рассеяния, на которой загружена карта Checker. В свитке Coordinates (Координаты) дан- ного материала выбрана кнопка-переключатель Texture (Текстура), а в рас крывающемся списке Mapping — вариант Explicit Map Channel (Явно указы- ваемый канал проецирования). 5. Выберите второй материал World-Space Mapping (Проецирование карт в мировом пространстве) и откройте в нем позицию карты цвета рассеяния. В свитке Coordinates данного материала выбрана кнопка-переключатель Envi-
370 Часть IV. Текстурирование ronment (Окружение), а в раскрывающемся списке Mapping вариант Screen (Экранное проецирование). Аналогичные параметры установлены и в карте фона. 6. Активизируйте окно вида из первой камеры (CameraOl) и визуализируйте неподвижное изображение сцены в нулевом кадре (рис. 10.12). Как видите, клетчатый рисунок верхней сферы ясно виден па фоне и охватывает всю сферу. А вот клетчатый рисунок нижней сферы сливается с фоном. Коор- динаты его проецирования совпадаю т с координатами проецирования кар- ты фона, и поэтому он практически не виден — его можно обнаружить только по тени в форме сферы Рис. 10.12. В верхней сфере применяются явно указываемые координаты проецирования (в пространстве объектов), а в нижней сфере — координаты проецирования окружения (в мировом пространстве) 7. Вернитесь в редактор материалов. Выберите второй материал (World- Space Mapping) и щелкните на кнопке Go То Parent (Перейти на роди- тельский уровень), чтобы перейти па верхний уровень данного материала. Измените с 0 на 100 значение параметра Seif-Illumination (Самосвеченне) с помощью его счетчика в свитке Blinn Basic Parameters (Основные пара- метры алгоритма затенения по Блинпу).
Глава 10. Проецирование текстур 371 8. Вновь активизируйте видовое окно CameraOl и визуализируйте сцену в пробном изображении. Как видите, нижняя сфера полностью исчезает. На нес проецируется фоновое изображение, и она не даст тейп, а следова- тельно, совершенно невидима. В данный момент у вас может возникнуть резонный вопрос: зачем создавать невидимый объект подобным образом? Если, например, в сцене требуется неви- димый объект, отбрасывающий тени на другой объект, достаточно применить в нем материал Matte/Shadow, чтобы сделать его прозрачным на фоне, но по- прежнему отбрасывающим тени па другие объекты. С другой стороны, к объекту можно применить модификатор Camera Map (WSM). Разумеется, оба указанных выше метода вполне работоспособны. Однако уста- навливая в объектах координаты проецирования окружения, можно получить це- лый ряд спецэффектов, которые невозможно воспроизвести с помощью мате- риала Matte/Shadow. Рассмотрим следующий пример 1. Вернитесь в редактор материалов, перейдите к материалу материал World- Space Mapping, откройте в нем позицию карты Checker и щелкните на кнопке Swap (Поменять местами) в свитке Checker Parameters (Параметры клетчатого рисунка), чтобы поменять местами образцы черного и белого цвета. Визуализируйте пробное изображение. Текстура фона изменится па обратную в том месте, где находится нижняя сфера. 2. Вновь перейдите в редактор материалов и опять щелкните на кнопке Swap во втором материале, чтобы вернуть образцы цвета в исходное положение. Уста- новите значение 0,1 параметра Blur Offset (Смещение размытости), а затем ви- зуализируйте еще одно пробное изображение в видовом окне CameraOl. Ниж- няя сфера размоет фон, по опять же только в том месте, где она находится. 3. Еще раз вернитесь в редактор материалов и установите исходное значение 0,0 параметра Blur Offset, а затем щелкните па образце первого цвета (Color #1), чтобы открыть селектор цвета (Color Selector). Выберите ярко-синий цвет (со значениями RGB: 0, 0, 255) для первого образца, а затем ярко- желтый цвет (со значениями RGB: 255, 255, 0) для второго образца. 4. Визуализируйте сцену из видового окна CameraO 1. В результате изменения цветов на сфере переднего плана (при сохранении тех же самых координат проецирования па фоне) самосветящаяся нижняя сфера окрашивает фон, по которому она проходит. Можно получить и обратный эффект, сделав фоновый рисунок цветным, а сферу — черно-белой. Координаты проецирования в пространстве объектов применяются для нало- жения карт на большую часть трехмерных объектов, находящихся па сцене, одна- ко не следует забывать и о месте на сцене координат проецирования в мировом пространстве. Немного изменив карту, проецируемую на объект переднего плана в мировом пространстве, можно создать иллюзию рассеянного пропускания, как, например, в фильме “Хищник” (Predator), в котором пришелец по имени Хищник носил маскирующий плащ, слегка, но отчетливо искажавший все, что оказыва- лось па его пути. Этот и другие изящные эффекты визуализации могут быть полу- чены непосредственно в сцене без использования сложных приемов компоновки, что может оказаться большим благом в отсутствие таких программ компоновки, как combustion компании discreet или Adobe After Effects.
372 Часть IV. Текстурирование НА ЗАМЕТКУ Для правильного согласования результатов сглаживания и фильтрации текстур фонового изображения, или так называемого рирпроекционного фона, следует выбрать фильтр Plate Match/MAX R2 во вкладке Render диалогового окна Render Scene, чтобы использовать его при окончательной визуализации. Материал Multi/Sub-Object Материал Multi/Sub-Object позволяет назначать разные идентификационные номера проецируемых материалов для отдельных элементов трехмерной геомет- рической формы, а затем применять основной материал, состоящий из двух или более подматериалов, соответствующих каждому идентификационному номеру, назначенному для отдельной группы предварительно выделенных граней. Такое сложное определение на самом деле оказывается проще, чем сам про- цесс текстурирования сложного каркаса. Но несмотря па эту сложность, рассмот- рим применение материала Multi/Sub-Object на примере проецирования разных текстур на отдельные стороны параллелепипеда. Проецирование карт на отдельные стороны параллелепипеда Как ни странно, задача проецирования карт на отдельные стороны параллеле- пипеда не так уж и проста, как может показаться па первый взгляд. При этом важно знать, что при создании примитивного параллелепипеда в 3ds max 7 для каждой его грани уже назначены идентификационные номера материалов и что эти идентификационные номера можно изменить, если в этом возникнет необ- ходимость. В следующем упражнении демонстрируется данный процесс. 1. Перейдите к панели Create и щелкните па кнопке Box под раскрывающимся списком с выбранной категорией Standard Primitives, чтобы создать в сцепе примитивный параллелепипед со стороной 100 единиц. 2. Выделите параллелепипед, перейдите к панели Modify и примените к этому объекту модификатор Edit Mesh. 3. Перейдите на уровень подобъектов-многоу гольппков в модификаторе Edit Mesh, выделите многоугольник верхней стороны параллелепипеда (например, в окне вида в перспективе), а затем перегадите к свитку Surface Properties (Свойства поверхности) на панели Modify В поле параметра Set ID (Установка идентификационного номера) должен быть установлен идентификационный номер 1 (рис. 10.13). Щелкните на многоугольниках других сторон параллеие- пипеда, обратив внимание на изменение идентификационного номера. В дан- ном свитке можно также изменить идентификационные номера мат ериалов, автоматически назначаемых для отдельных сторон параллелепипеда.
Глава 10. Проецирование текстур 373 'г “6 5, F ;..1| *14" t* nF“ ЗР ;c>’ A & $?г#;Г жвижкввикг» -glSdi1®^ Ufflxl ’<y Рис. 10.13. Для многоугольника каждой стороны при создании примитивного параллелепи- педа автоматически назначается идентификационный номер материала 4. Различные карты для отдельных сторон многоугольника могут быть назна- чены с помощью материала Multi/Sub-Object. Для этого загрузите сцену из файла\Project Files\ChlO_TextureMapping\Box Multi-Sub Object Mapping.max на прилагаемом к этой книге DVD. После загрузки сцепы вы- делите параллелепипед, откройте редактор материалов и обратите внима- ние на установленные материалы. На позиции первого образца материала находится исходный материал типа Multi/Sub-Object, применяемый в параллелепипеде. Для каждой стороны параллелепипеда в данном материале имеется шесть позиций подматериа- лов с соответствующими идентификационными номерами (рис. 10.14).
374 Часть IV. Текстурирование Рис. 10.14. Примитивный параллелепипед на сцене с назначенным для него материалом Multi/Sub-Object. Каждый из шести идентификационных номеров материалов соответствует одной стороне параллелепипеда 5. Активизируйте видовое окно CameraOl и визуализируйте сцен}' (рис. 10.15 . Для каждого из самосветящихся подматсриалов в канале проецирования кар- ты цвета рассеяния назначено растровое изображение, представляющее со- бой крупную цветную цифру, обозначающую идентификационный номер ма- териала. 6. Для создания собственного материала Multi/Sub-Object щелкните сначала па пустой позиции образца материала, а затем на кнопке Standard и выберите в открывшемся окне Material/Map Browser материал типа Multi/Sub-Object В свитке Multi/Sub-Object Basic Parameters по умолчанию присутствуют 10 раз- ных подматериалов. Измените, если требуется, их число, щелкнув на кнопке Set Number (Установить число подматсриалов). Затем откройте позицию каж- дого подматериала и настройте требуемым образом его параметры.
Глава 10. Проецирование текстур 375 Рис. 10.15. На каждую сторону параллелепипеда накладывается отдельная карта благодаря применению материала Multi/Sub-Object Проецирование карт на отдельные стороны сложных объектов Допустим, что упомянутые выше материалы типа Multi/Sub-Object требуется назначить не для примитивного параллелепипеда, а для более сложного объекта, полностью созданного вручную. Основная процедура при этом следующая: при- мените к объекту модификатор Edit Mesh или Edit Poly, выделите конкретные стороны, или грани объекта, на которые требуется наложить карты, назначьте для них идентификационные номера, установите для каждой группы граней ко- ординаты UVW-проецирования и повторяйте данную процедуру до тех пор, пока проецированием не будет охвачен весь объект. Если, например, объект должен быть покрыт 12 разными материалами, установите число подматерилов равным 12 и создайте соответствующие материалы для каждой группы пронумерованных граней объекта. Рассмотрим данный метод более подробно. 1. Загрузите сцену из файла \Project Files\ChlO_TextureMapping\Box Multi-Sub Object Map 2 .max на прилагаемом к этой книге DVD. Дан- ная сцена содержит чстырехмерный куб — параллелепипед, каждая сторона которого вытянута и видоизменена с помощью модификатора MeshSmooth для скашивания углов и острых кромок (рис. 10.16). 2. Активизируйте видовое окно CameraOl или Camera02 и визуализируйте сцену (рис. 10.17). В данном объекте применен видоизмененный вариант материала Multi/Sub-Object. (Установленные по умолчанию параметры мо- заичного расположения в поперечном (U) и продольном (V) направлении изменены в растровых картах некоторых подматериалов, чтобы сделать их более заметными на разных сторонах объекта.)
376 Часть IV Текстурирование Рис. 10.16. Сложный объект, грани которого видоизменены с помощью модификатора MeshSmooth, после чего для них назначены координаты UVW проецирования Рис. 10.17. Четырехмерный куб с материалом Multi/Sub-Object, назначенным для его граней, с использованием разных координат проецирования
Глава 10. Проецирование текстур 377 3. Выделите объект, перейдите к панели Mod fy и посмотрите стек модифика- торов данного объекта. У него довольно сложный стек, состоящий из цело- го ряда модификаторов Edit Mesh и UVW Мар, применяемых для получения требуемого конечного результата. Кроме того, модификаторы UVW Мар по-разному ориентированы относительно соответствующих групп граней и в них выбраны разные виды проецирования карт: планарное, цилиндри- ческое и сферическое. Проецирование карт по принципу конструктора Если пег особой необходимости в проецировании описанным выше способом, то данный процесс можно упростить, разбив модель па составляющие части, как в конструкторе моделей, и наложив затем текстуры на каждую часть модели. В сле- дующем упражнении показано, как это делается. 1. Перейдите к свитку Edit Geometry на панели Modify. Отсоедините требуе- мую группу или несколько групп выделенных граней, присвоив каждому вновь полученному объекту уникальное имя. Затем назначьте материал Standard (но не Multi/Sub-Object) и координаты проецирования для отдель- ных частей исходного объекта. 2 Иногда требуется, чтобы геометрическая форма объекта была нераздель- ной. Тем не менее модель можно разделить па части, применить к каждой из них координаты проецирования, а затем вновь собрать их вместе. 3. Для восстановления объекта выделите одну его часть, свернутую в каркас, и щелкните на кнопке Attach или Attach List из свитка Edit Geometry па пане- ли Modify. (Для ускорения данного процесса нажмите клавишу <Н>, чтобы открыть окно Select By Name.) В открывшемся диалоговом окне Attach Op- tions (Параметры присоединения) установите флажок Condense Material and IDs (Уплотнить материалы и их идентификационные номера) (рис. 10 18). Match Mate ial ID to Material C Match Material to Maleiial IDs . C Do Not Modify Mat IDs or Material Cared!!| P Condense Material and Ds Рис 10.18. В диалоговом окне Attach Options можно выбрать разные вари- анты уплотнения материалов 4. Перейдите в редактор материалов и видоизмените, если требуется, компо- ненты нового материала, подобного Multi/Sub-Object. Методы наложения переводных картинок Рассмотрим еще одну7 типичную задачу': наложение растровой этикетки поверх другой карты.
378 Часть IV. Текстурирование В 3ds max текстуры можно располагать слоями разными способами. В частно- сти, для этой цели могут служить карты Mix и Mask, материалы Blend, Shellac, Composite либо и те и другие в определенном сочетании. Однако растровое изо- бражение переводной картинки проще всего наложить на другую карту, убедив- шись сначала в том, что оно содержит маскирующий альфа-канал, а затем приме- нив его в карте Mix на позиции карты цвета рассеяния в стандартном материале Наложение переводной картинки В следующем упражнении демонстрируется создание переводных картинок в 3ds max 7. 1. Перейдите к панели Create и щелкните на кнопке Sphere, чтобы создать сферу радиусом 50 единиц. Увеличьте до 60 значение ее параметра Seg- ments, чтобы сделать сферу гладкой, и установите флажок Generate Map- ping Coordinates (как упоминалось выше, он устанавливается автоматиче- ски, если не сбросить его принудительно). 2. Откройте редактор материалов, щелкните на первой позиции образца ма- териала и перейдите к свитку Maps Щелкните в столбце Мар на кнопке на- против метки Diffuse Color, а когда появится окно Material/Map Browser дважды щелкните на карте Mix. 3. Щелкните в столбце Maps на кнопке напротив образца первого цвета (Color #1) в свитке Mix Parameters (Параметры смешения) и выберите карт}' Noise в открывшемся окне Material/Map Browser. Оставьте без изменения пара- метры настройки карты Noise и щелкните па кнопке Go То Parent, чтобы вернуться па верхний уровень карты Mix. 4. Щелкните в столбце Maps на кнопке напротив образца второго цвета (Color #2) в свитке Mix Parameters и выберите карту' Bitmap в открывшемся окне Material/Map Browser Когда откроется диалоговое окно Select Bitmap Image File (Выбор файла растрового изображения), выберите файл \Project Files\ChlO_TextureMapping\Decal with Alpha.max па прилагаемом к этой книге DVD. Этот файл содержит 32-разрядное изображение скошен- ного текста. 5. Щелкните сначала на кнопке View (Просмотр), а затем на кнопке Display Alpha Channel (Отобразить альфа-канал), расположенной справа от трех кнопок со- ставляющих цветов RGB в открывшемся окне просмотра растровой карты. Текст становится чисто-белым. Это альфа-канал, маскирующий цветной текст 6. Закройте окно просмотра растровой карты и щелкните па кнопке Open, чтобы загрузить выбранное растровое изображение на позицию второго образца цвета в карте Mix. Щелкните на кнопке-переключателе Alpha в об- ласти Mono Channel Output (Вывод в моноканал) из свитка Bitmap Parame- ters (Параметры растра). Далее щелкните на кнопке Go То Parent, чтобы вернуться на верхний уровень карты Mix. 7. Щелкните левой кнопкой мыши и перетащите карту переводной картинки со второго образца цвета на позицию Mix Amount (Величина смешения). Выбе- рите вариант Instance в открывшемся диалоговом окне Copy (Instance) Мар (Копирование и получение экземпляра карты) и щелкните на кнопке ОК.
Глава 10. Проецирование текстур 379 8. Выделите сферу, щелкните па кнопке Ass gn Material to Selection (Назна- чить материал для выделенных объектов), а затем активизируйте окно вида в перепекгиве и визуализируйте сцену. Визуализированное изображение должно быть похожим па изображение в видовом окне ActiveShade Per- spective (Вид в перспективе при активном затенении) (рис. 10.19). Следует заметить, что на данном рисунке активизирована кнопка Show Map in View- port (Показывать карту' в видовом окне), чтобы растровая карта переводной картинки была видна в окне затененного вида в перспективе. Рис. 10.19. Растровая карта переводной картинки с альфа-каналом проявляется сквозь тек- стуру карты зашумления на поверхности сферы Итак, переводная картинка наложена па текстуру карты Noise однако она охватывает сферу, используя устанавливаемые по умолчанию координаты проецирования. Кроме того, опа растянута по горизонтали. Такой эффект переводной картинки вряд ли вас уст роит. Ведь опа должна выглядеть, ско- рее, как этикетка, наклеиваемая па небольшой участок сферы
380 Часть IV. Текстурирование 9. Для устранения данного недостатка вернитесь в редактор материалов, щелкните на позиции одного из экземпляров растровой карты переводной картинки с альфа-каналом в свитке Mix Parameters и установите значение 4,0 в полях обоих параметров, U Tiling (Мозаичное расположение в попе- речном направлении) и V Tiling (Мозаичное расположение в продольном направлении), из свитка Coordinates. Визуализируйте сцену (рис. 10.20). Теперь размеры переводной картинки па сфере уменьшены, однако она располагается на сфере мозаикой, т.е. неоднократно повторяясь, а вам нужно, чтобы опа появлялась на сфере только один раз. Кроме того, необ- ходимо устранить растягивание квадратной растровой карты переводной картинки, которая оказывается в два раза больше по горизонтали, чем по вертикали, вследствие особенностей, присущих сферическому проециро- ванию. Оба указанных недостатка устраняются очень просто. Рис. 10.20. Вид растровой карты переводной картинки после установки значения парамет- ров U Tiling и V Tiling 10. Вернитесь в редактор материалов. Установите значение 8,0 в поле пара- метра U Tiling, оставив без изменения значение 4,0 параметра V Tiling, аза- тем сбросьте флажки U Tile и V Tile (только не устанавливайте флажки И Mirror (Зеркальное отображение в поперечном направлении) и V Mirror
Глава 10. Проецирование текстур 381 (Зеркальное отображение в продольном направлении) (рис. 10.21). Теперь размеры переводной картинки на сфере уменьшены, и она уже не распола- гается мозаикой, поскольку сброшены флажки U Tile и V Tile. 11. Для того чтобы изменить положение переводной картинки на сфере, не оказывая влияния па нижележащую текстуру карты Noise, настройте пара- метры U Offset (Поперечное смещение) и V Offset (Продольное смещение) в свитке Coordinates. Изменяя значения этих параметров, можно располо- жить раст ровую карту переводной картинки где угодно. Поэксперименти- руйте с этими параметрами, выполнив ряд пробных визуализаций, чтобы посмотреть полученные результаты. Рис. 10.21. Вид растровой карты переводной картинки после установки значения 8,0 пара- метра V Tiling и сброса флажков U Т 1е и V Tile Если исходное изображение переводной картинки не содержит альфа-канал, его можно сформировать. Загрузите изображение в Adobe Photoshop, введите новый канал в данное изображение, а затем раскрасьте новую маску альфа-канала или же создайте ее из элементов уже имеющегося изображения RGB Для этого достаточно вставить изображение в новый документ Photoshop, сделать его полу- тоновым, а затем увеличивать его яркость и контраст до тех пор, пока нс будет получена сплошная маска. После этого изображение можно вставить обратно
382 Часть IV Текстурирование в альфа-канал уже имеющегося растрового изображения и сохранить его в фор- мате 32-разрядных изображений, поддерживающих альфа-канал, включая TG.A, TIFF и PNG. В форматах GIF и JPEG альфа-канал нс поддерживается. Резюме В этой главе дан краткий обзор основных типов оттспителей, материалов и карт, доступных в 3ds max, указаны отличия между проецированием в про- странстве объектов и в мировом пространстве, а также рассмотрены особенности проецирования карт из материала Multi/Sub-Object и простые методы наложения переводных картинок. В следующей главе будут представлены более сложные методы проецирования текстур в сочетании с различными оттенителями и специальными текстурами для получения полезных и впечатляющих эффектов.
Глава 11 Разработка текстур ДжонА. Белл, В предыдущей главе был представлен редактор материалов в 3ds max 7, рас- смотрены типы оттепителей, материалов и карт, а также основные Методы про- ецирования текстур, включая проецирование карт из материала Multi/Sub-Object и наложение переводных рисунков па объекты. В этой главе будут представлены более сложные методы проецирования тек сту'р и дополнительные сведения об их создании. Средн прочего в настоящей гла- ве будут рассмотрены следующие вопросы. • Планарное проецирование карт. • Проецирование процедурных карт. • Применение карт Noise и Falloff. • Рассеянное затенение по Блитшу и Орепу-Найару-Ьлипцу. • Применение многослойных материалов. Как и в предыдущей главе, в этой главе рассматриваются стандартные для 3ds шах 7 тины оттенителей, материалов и карт, предназначенные для визуализации только с помощью стандартного средства визуализации с построчной разверткой Планарное проецирование карт Когда модификатор UVW Мар применяется к объекту' или выделенным граням объекта, гизмо этого модификатора устанавливается по умолчанию в соответст- вии с координатами планарного проецирования — самого простого ви та UVW- проецирования. При планарном проецировании плоский вариант растрового изображения проецируется непосредственно на выделенный объект или его гра- ни. (Таким процедурным картам, как Noise, Checker и Smoke, конкретные коор- динаты проецирования не требуются.) Планарное проецирование лучше всего подходит для наложения карт на поверхности, расположенные параллельно са- мой плоскости проецирования. Если отклонение от параллельности многоуголь- ников на поверхности составляет более чем 45°. растровая текстура на таких уча- стках объекта, скорее всего, окажется расплывшейся или растянутой.
384 Часть IV Текстурирование Координаты планарного проецирования уместны при создании специальных растровых текстур, идеально совпадающих с геометрической формой объектов. Это делается, главным образом, в режиме визуализации Render Bounding Box/Selected (Визуализация выделенного в ограничивающей рамке). В этом ре- жиме изображение выделенного объекта визуализируется в соответствии с кон- кретными размерами ограничивающей рамки ортогонального вида. Полученное изображение можно затем загрузить в редактор изображений и использовать его в качестве шаблона для раскраски специальной растровой текстуры объекта. По завершении раскраски растровой текстуры опа загружается на позиции соответ- ствующей карты (обычно цвета рассеяния) и накладывается па исходный объект. А поскольку UW\ проецирование карты уже было выполнено на объект специ- ально раскрашенная карта точно вписывается в объект. Применение планарного проецирования для текстурирования В следующем упражнении приводится пример применения планарного проецн рования для создания специальной растровой текстуры, накладываемой па простую модель реактивного летательного аппарата. В данной сцепе представлена модель вымышленного летательного аппарата, построенная методом параллелен и педп о го моделирования с применением мо- дификатора MeshSmooth. Модель разделена па две основные части: верхнюю и нижнюю поверхности фюзеляжа, причем разделительная полоса фюзеляжа проходит посредине летательного аппарата. Основная конструкция летательного аппарата оказывается довольно плоской, поэтому, применяя модификатор UVW Мар планарного типа к верхней и нижней поверхностям данного объекта, можно наложить специальные растровые текстуры, чтобы покрыть ими большую часть корпуса летательного аппарата. А для завершения текстурирования этого объекта можно затем применить отдельный модификатор UVW Мар цилиндрического типа к разделительной полосе фюзеляжа. 1. Откройте сцену из файла \Project Files\Chll_DevelopingTextures\ Future Jet Planar Map.max на прилагаемом к этой книге DVD (рис. 11.1). 2. Перейдите к видовому окну CameraOl и щелкните па верхней части фюзе- ляжа (Fuselage Тор), чтобы выделить се. Если затем перейти к панели Modify, то можно обнаружить, что для данной части летатс гьпого объекта уже назначены координаты планарного UVW-проецирования. А теперь щелкните на раскрывающемся списке Render Туре (Тип визуализации), расположенном па правом краю основной панели инструментов, и выбери- те в нем вариант Box Selected (Выделенное в ограничивающей рамке). 3. Щелкните правой кнопкой мыши в окне вида сверху, чтобы активизиро- вать его, а затем выберите из главного меню команду RenderingORendero Render. Откроется диалоговое окно Render Bounding Box/Selected (рис. 11.2).
Глава 11. Разработка текстур 385 Рис. 11.1 Пример планарного проецирования текстур на модель вымышленного тельного аппарата в режиме Render Bounding Box/Selected Рис. 11.2. Диалоговое окно Ren- der Bounding Box/Selected 4. Пропорции ортогонального вида визуализируемого летательного аппарата соблюдаются при установке флажка Constrain Aspect Ration в диалоговом окне Render Bounding Box/Selected, поэтому этот флажок, как правило, ос- тается установленным. Ширина ограничивающей рамки по умолчанию со- ставляет 348 пикселей, а высота — 512 пикселей. 5. Установите значение 800 параметра Height и нажмите клавишу4 5 * 7 <Lntei>. При этом изменится соответственно и ширина ограничивающей рамки (параметр Width).
386 Часть IV. Текстурирование 6. Щелкните на кнопке Render. Некоторое время спустя появится визуализи- рованное изображение верхней части фюзеляжа в ограничивающей рамке (рис 11.3). Рис. 11.3. Визуализированное изображение верхней части фю- зеляжа в ограничивающей рамке В данном случае на объект накладывается черная каркасная текстура, что дает возможность отслеживать контуры каркаса модели в качестве образца для нанесения деталей раскраски текстуры в программе редактирования изображений. Кроме того, модель можно визуализировать в затененном виде или же с предварительным вариантом наложенной растровой тексту- ры, которую затем можно раскрасить или ретушировать.
Глава 11. Разработка текстур 387 7. Щелкните на кнопке Save Bitmap (Сохранить растр) в окне просмотра ви- зуализированного кадра и сохраните полученное изображение в любом формате, пригодном для последующей загрузки в редактор изображений, где это изображение можно использовать в качестве образца для раскраски текстуры. 8. Для просмотра результатов планарного проецирования основных текстур на летательный аппарат загрузите сцепу из файла \Project Files\ Chll DevelopingTexturesXFuture Jet Top Texture.max па прила- гаемом к этой книге DVD. После загрузки сцены активизируйте видовое ок- но CameraOl и визуализируйте данную сцепу. 9. Визуализированное изображение (рис. 11.4) демонстрирует результат про- ецирования основной текстуры на верхнюю часть летательного аппарата. Визуализированный вид летательного аппарата сверху в ограничивающей рамке использовался в качестве образца для раскраски деталей текстуры в Adobe Photoshop. Эту раскрашенную текстуру (файл Future Jet Top Color, tif) можно посмотреть в редакторе материалов на позиции кар1ы цвета рассеяния в материале Top Planar Мар (Карта, проецируемая на верхнюю часть объекта). Рис. 11.4. Визуализированный вариант летательного аппарата с основной текстурои, наложенной методом планарного проецирования на верхнюю часть этого объекта
388 Часть IV. Текстурирование | НА ЗАМЕТКУ______________________________________________________ Если требуется видоизменить или усовершенствовать эту текстуру, а затем за- вершить текстурирование остальной части летательного аппарата, воспользуй- тесь соответствующими файлами изображении из папки \Project FilesX Chll_DevelopingTextures\ на прилагаемом к этой книге DVD. Проецирование процедурных карт После краткого рассмотрения особенностей планарного проецирования карт и режима Render Bounding Box/Selected обратимся к наиболее часто используе- мым в 3ds max 7 типам процедурных карт: No se и Falloff. Эти процедурные карты весьма универсальны и находят применение в самых разных ситуациях для раз- решения затруднений при текстурировании и оперативного создания привлека- тельных эффектов текстурирования. Проецирование карты Noise Карта Noise, образующая произвольные отметки на поверхности объекта, от- носится к наиболее часто используемым процедурных картам. Как правило, карта Noise применяется для устранения лишнего сглаживания и придания поверхно- сти зернистого и загрязненного вида, хотя она полезна и для создания световых, огневых и водяных эффектов. Световые рисунки каустики, обусловленные внут- ренним отражением и преломлением света в то.лще воды, можно воссоздать с по- мощью карты Noise, загружаемой па позиции карты проектора в прожекторном или проекторном источнике света. А в качестве карты смещения (D'splacement) в материале Raytrace карта No se позволяет эффективно “загрязнить” нижеле- жащие текстуры. Кроме того, с помощью карты Noise можно нарушить слишком заметную монотонность мозаичного расположения растровой текстуры. Карта Falloff, предс гавлягощая собой ряд трехмерных градиентов, не менее универсальна и особенно полезна для получения необычных эффектов. В частно- сти, с помощью карты Falloff можно повысить реалистичность карт отражения, придать поверхности переливчатые и перламутровые свойства, создать эффекты рентгеновского излучения и придать сцене вид так называемой “старомодной компыотерной графики”. Применение карты Noise В следующем упражнении демонстрируются краткие примеры применения карты Noise. 1. Загрузите сцену из файла \Project Files\Chll_DevelopingTextures\ Noise Tiling Mask.max на прилагаемом к этой книге DVD. Эта довольно простая сцена состоит из объекта Quad Patch (Квадратный лоскут), обозна- чающего землю, нацеленной на него камеры и прожектора, освещающего этот объект (рис. 11.5).
Глава 11. Разработка текстур 389 Рис. 11.5. Простая пробная сцена, демонстрирующая мозаичное расположение и мае кирование текстур с помощью карты Noise ТиЯ’б ь* * i с у * 1 •> * к еь a ^i- d-> <а * 2. Активизируйте видовое окно CameraOl и визуализируйте данную пробную сцену. В результате визуализации на объекте Quad Patch проявляется тек- стура потрескавшейся грязи, обозначающая землю (рис 11.6). Эта текстура была создана путем ретуширования сканированной фотографии настоящей поверхности потрескавшейся сухой земли и последующего бесшовного мо- заичного расположения в Adobe Photoshop с помощью команды Filter^Offset1^ Wrap Around (Фильтр^Смещеиие^Заворачивание). 3. Откройте редактор материалов, чтобы обнаружить в нем материал Cracked Mud ( Потрескавшаяся грязь), применяемый к объект}’ Quad Patch на первой позиции образца материала. Щелкните на позиции карты цвета рассеяния, чтобы открыть ее, а затем проанализируйте параметры на стройки растровой карты из файла Cracked Mud A. jpg В настоящий мо- мент установлено значение 1,0 обоих параметров, U Til ng и V Tiling. По- этому измените эти значения на 3,0 и вновь визуализируйте сцену. 4. Теперь карта располагается мозаикой без швов по всей поверхности объек- та Quad Patch. Иными словами, ее края не видны явно. Однако общий ри- сунок текстуры грязи заметно повторяется. В частности, хорошо заметны темные участки, монотонно повторяющиеся по диагонали на поверхности данного объекта (рис. 11.7).
390 Часть IV. Текстурирование Рис. 11.6. Растровая текстура потрескавшейся грязи, накладываемая на объект Quad Patch Рис. 11.7. Растровая текстура потрескавшейся грязи, располагаемая мо- заикой 3x3 по всей поверхности объекта Quad Patch
Глава 11. Разработка текстур 391 Для устранения таких явно заметных артефактов мозаичности лучше все- го смешать сначала уже существующую растровую карту с другой растро- вой картой, имеющей иное мозаичное расположение, а затем обе эти карты — с совершенно не повторяющейся процедурной картой, например с картой Noise. 5. Вернитесь в редактор материалов, откройте позицию карты цвета рассея- ния и щелкните на кнопке Bitmap. Когда откроется окно Material/Map Browser, убедитесь в том, что в области Browse From выбран вариант New Дважды щелкните на карте Mix и выберите вариант Keep Old map as Sub- map (Сохранить старую карту в качестве нодкарты) в открывшемся диало- говом окне Replace Мар (Замена карты). Таким образом, на позиции перво- го образца цвета (Color #1) во вновь назначенной карте Mix окажется рас- тровая карта из файла Cracked Mud А.jpg. 6. Щелкните и, не отпуская левую кнопку мыши, перетащите данную карту с по- зиции образца первого цвета на позицию образца второго цвета, выбрав ва- риант Сору (а не Instance) в открывшемся диалоговом окне Copy (Instance) Мар, а затем щелкнув на кнопке ОК. 7. Откройте позицию этой новой карты и измените с 3,0 на 7,0 значения па- раметров U Tiling и V Tiling, оставив без изменения значение 0,0 в полях па раметров U Angle (Поперечный угол) и V Tiling (Продольный угол), но в то же время изменив на 90,0 значение параметра W Angle (Вертикальный утол). В итоге карта повернется на 90°. 8. Щелкните на кнопке Go То Parent, чтобы перейти на уровень карты Mix, а затем щелкните в столбце Maps на кнопке напротив поля со счетчиком Mix Amount. Выберите карту Noise из списка в открывшемся окне Material/ Map Browser. 9. Вновь активизируйте видовое окно CameraOl и визуализируйте сцену (рис. 11.8). Таким образом, две текстуры с разным мозаичным расположением смешаны вместе с полутоновой процедурной картой Noise. А поскольку процедурная кар- та Noise формируется произвольным образом с помощью специального мате- матического алгоритма, она маскирует нежелательное монотонное повторение текстур. Для дальнейшего изучения особенностей метода проецирования карты Noise выполните следующее. • Загрузите другие растровые текстуры на позиции карты Mix. • Измените параметры настройки порогового зашумления (Noise Threshold), чтобы сделать более отчетливыми переходы между растровыми текстурами. • Воспользуйтесь другими процедурными картами, например Dent, Marble, Stucco, смешав их с растровыми текстурами.
392 Часть IV. Текстурирование Рис 11.8. Две растровые текстуры с разным мозаичным расположением, смешанные с картой Noise Проецирование карты Falloff Как упоминалось выше, карта Falloff также относится к очень часто применяе- мым в 3ds max 7 процедурным картам. Овладев ее свойствами, вы поймете, поче- му' она так часто используется. Правильное представление об особенностях применения карты Falloff позво- ляет экономить время и труд при создании таких эффектов, как отражения. Я лично часто пользуюсь данной картой на позиции карты отражения в стан- дартном материале для устранения недостатков визуализации объектов с боль- шой о-i ражатсльной способностью. Зачастую физически точная визуализация отражений в сцене (например, ме- тодом трассировки лучей) не требуется. Для этого обычно достаточно карты от- ражения (Reflection), которая визуализируется намного быстрее чем методом трассировки лучей. Тем нс менее используемое по умолчанию проецирование карты отражения нередко приводит к тому, что отражающие объекты кажутся самосветящимися, особенно в трехмерных сценах со слабым освещением Хотя такие отражающие объекты, как хромированный бампер автомашины, принято считать яркими, на самом деле им не присуще большое значение составляющей общего цвета, характерное для ярко окрашенных или самосветящихся объектов. Они просто отражают свое окружение. Следовательно, самосвечение таких объ- ектов обычно выглядит неверно.
Глава 11. Разработка текстур 393 Этот недостаток можно, в частности, устранить, понизив уровни видимого ос- вещения но краям отражающих объектов благодаря уменьшению силы и яркости отражения на этих участках. И для этой цели отлично подходит карта Falloff. Коррекция отражения с помощью карты Falloff В следующем упражнении будет продемонстрировано применение карты Fal- loff для ослабления отражения. 1. Загрузите сцену из файла \Project Files\Chll_DevelopingTextures\ Reflection Falloff Example.max на прилагаемом к этой книге DVD. И эта сцена довольно проста: она содержит примитивную сферу, располо- женную внутри крупного параллелепипеда и освещаемую несколькими прожекторами (рис. 11.9). Для того чтобы материал Reflection Map Ex- ample (Пример карты отражения) выглядел в видовом окне CameraO так, как показано на рис. 11.9. следует выключить кнопку Show Map in Viewport Рис. 11.9. Пример сцены для проверки спада отражения 2. Откройте редактор материалов и проанализируйте материалы, применяе- мые в данной сцепе. В частности, материал Reflection Map Example применяется в сфере и состоит из растровой текстуры меди из файла Cop- per Sheet Scratches Dark, jpg, загруженного на позиции карты отра- жения. При этом используются координаты сферического проецирования
394 Часть IV. Текстурирование окружения (Spherical Environment Mapping). В материале Room Interior (Интерьер помещения) используется то же самое изображение медной тек- стуры, но на этот раз — на позиции карт цвета рассеяния и рельефности, а не отражения. 3. Активизируйте видовое окно CameraOl и визуализируйте сцену'(рис. 11.10). Рис. 11.10. Растровая текстура меди, накладываемая на сферу в качестве карты от- ражения и на стены помещения в качестве карт цвета рассеяния и рельефности 4. Обратите внимание на то, что на сфере отражается текстура поцарапанной меди из окружающего интерьера комнаты, однако сама сфера выглядит слишком яркой, поскольку отражения делают ее самосветящсйся. Этот не- достаток устраняется коррекцией внешнего вида отражения с помощью карты Falloff. 5. Вернитесь в редактор материалов, щелкните на позиции карты отражения в первом материале, чтобы открыть ее, а затем щелкните на кнопке Bitmap. Как только откроется окно Material/Map Browser, убедитесь в том, что в об- ласти Browse From выбран вариант New, дважды щелкните на карте Fallofl и выберите вариант Keep old map as sub-map в открывшемся диалоговом окне Replace Мар. Растровая текстура меди загружается на верхней пози- ции Front (Передняя сторона) при выбранном по умолчанию типе перпен- дикулярно-параллельного спада (Perpendicular/Parallel Falloff). 6. Активизируйте видовое окно CameraOl и вновь визуализируйте сцену.
Глава 11. Разработка текстур 395 Похоже, что белый цвет на краях сферы делает ее не только самосветящей ся, но и полупрозрачной в центре, что в данном случае совершенно не нуж- но. Эго положение следует исправить. 7. Вернитесь в редактор материалов. Щелкните и, не отпуская левую кнопку мыши, перетащите карп из образца черного цвета Front па образец белого цвета Side (Боковая сторона), чтобы оба цвета стали одинаково черными. 8. В итоге отражение на сфере незаметно переходит в более темный цвет на краях сферы относительно камеры (рис. 11.11). Рис. 11.11. Видоизмененным тип перпендикулярно-параллельного спада отражения 9. Щелкните на кнопке Swap Colors/Maps (Поменять местами цвета или кар- ты), расположенной на правом краю свитка Falloff Parameters (Параметры спада), а затем вновь выполните визуализацию из видового окна CameraOl. Сфера сохраняет большую часть своей окраски цветом рассеяния, однако теперь о тражение происходит в основном по краям этого объекта 10. Вернитесь в редактор материалов. Выберите тип спада по Френелю (Fresnel) из раскрывающеюся списка Falloff Туре, а затем вновь выполните впзуализа цию из видового окна CameraOl. Спад по Френелю ограничивает действие отражения самыми краями сферы относительно вида из первой камеры (CameraOl).
396 Часть IV. Текстурирование 11. Вновь вернитесь в редактор материалов. Выберите спад типа “свет и тень' (Shadow/Light) из раскрывающегося списка Falloff Туре и еще раз выполни те визуализацию из видового окна CameraOl. Обратите внимание на отли чия в эффекте отражения (рис 11 12). Свечение исчезло. Рис. 11.12. Действие спада отражения типа "свет и тень" Спад типа “свет и тень” ограничивает действие накладываемой процедурной или растровой карты участками, освещенными источниками света либо находя- щимися в тени. Это, вероятно, наиболее полезный параметр настройки спада в картах отражения для устранения самосвечения объекта /ОЬ НА ЗАМЕТКУ_________________________________________________________ | Для получения светящихся краев объекта можно применить и обратный данно- му принцип настройки спада отражения. Применение карты Falloff для получения переливчатого эффекта В следующем упражнении демонстрируется пример применения карты Falloff для получения переливчатого эффекта, позволяющий смешивать цвета двух со- вершенно разных материалов. Переливчатость носит характер радужного эффекта, наблюдаемого на по- верхности мыльного пузыря, нефтяного пятна или другой поверхности с особы- ми отражающими свойствами. Переливчатость зависит от утла, под которым на- блюдается объект (как, например, панцирь жука, поцарапанная поверхность
Глава 11. Разработка текстур 397 алюминия или нержавеющей стали), или же от характера химических реакций, происходящих на поверхности (как, например, па упомянутых выше мыльном пу- зыре или нефтяной пленке). Итак, для начала необходимо создать переливчатый материал. 1. Загрузите сцену из файла \Project Files\Chll_DevelopingTextures\ Human Skull .max на прилагаемом к этой книге DVD (рис. 11 13). Эта сце- па содержит модель человеческого черепа с высоким разрешением, иде- ально подходящую для демонстрации некоторых свойств карты Falloff. Рис. 1113. Модель человеческого черепа с высоким разрешением 2- Активизируйте видовое окно CameraOl и вновь визуализируйте сцепу (рис 11.14). Вместо этой текстуры черепа ниже будет получен переливчатый эффект. 3. Откройте редактор материалов, выберите свободную позицию образца мате- риала и измените тип материала со стандартного (Standard) на смешанный (Blend). (При желании вы можете очистить уже имеющийся материал.) Щелкните на позиции первого материала (т.е. па кнопке с меткой Material #0) и после ее открытия измените значения ROB цвета рассеяния (Diffuse Color) па темно-синий цвет (0, 0, 128), а значения RGB цвета зеркального отра- жения (Specular Color) — па чисто белый цвет (225, 225, 225). Кроме то-
398 Часть IV. Текстурирование го, установите значение 100 параметра Specular Level (Уровень зеркального отражения) и значение 25 параметра Glossiness (Глянцевитость). Присвойте первому материал}' имя Blue (Синий) и щелкните на кнопке Go То Parent. Рис. 11.14. Модель черепа с наложенной заплесневе- лой текстурой 4. Откройте позицию второго мат ериала, щелкнув на кнопке с меткой Material #1 Измените значения RGB цвета рассеяния на ярко-зеленый цвет (0, 225, 0), а цвета зеркального отражения — на чисто-белый цвет (225, 225, 225). Кро- ме того, установите значение 100 параметра Specular Level и значение 25 па- раметра Glossiness. Присвойте второму материалу имя Green (Зеленый), вновь щелкните на кнопке Go То Parent и присвойте смешанному материалу имя Iridescent Blue-Green (Переливчатый сине-зеленый). 5. Щелкните на кнопке справа от метки Mask и, когда откроется окно Material/ Map Browser, убедитесь в том, что в области Browse From выбран вариант New. Дважды щелкните на карте Falloff. С ее появлением в редакторе мате- риалов сферический образец смешанного материала станет темно-синим с зеленой окантовкой по краям.
Глава 11. Разработка текстур 399 6. Выделите геометрическую форму модели скелета в видовом окне или же в диалогов >м окис Select Objects и назначьте для нее материал Iridescent Blue-Green. 7. Активизируйте видовое окно CameraOl и вновь визуализируйте сцену (рис. 11.15). (Эффект затенения, очевидно, более заметен па цветном экра- не монитора, чем на черно-белой иллюстрации.) Рис. 11.15. Карта Falloff смешивает цвета двух разных материалов и создает необычные эффекты затенения на поверхности данной модели
400 Часть IV. Текстурирование В итоге модель черепа оказывается похожей на старый плакат 1960-х годов с изображением в невидимом свете. Как можно заметить на экране мони- тора, ярко-зеленый материал проявляется на краях геометрической формы модели почти параллельно виду из первой камеры (CameraOl). Этот мате- риал постепенно смешивается с темно-синим материалом, который преоб- ладает на тех поверхностях модели, которые почти перпендикулярны виду из камеры. Такой переливчатый эффект может оказаться слишком резким, если он применяется на сложной геометрической форме и усиливается действием карт цвета рассеяния, рельефности или отражения. Как и в приведенных выше примерах коррекции спада отражения, вы мо- жете вернуться в редактор материалов, выбрать тип спада по Френелю или другие параметры настройки карты Falloff и повторить визуализацию, что- бы проверить полученные результаты. Создание материала рентгенограммы В следующем упражнении исследование свойств карты Falloff будет продолжено на примере видоизменения созданного выше материала для получения рентгенов- ского эффекта или вида так называемой “старомодной компьютерной графики 1. Перейдите в редактор материалов и перетащите копию материала Iri- descent Blue-Green на свободную позицию образца материала. При- свойте новому материалу имя X-Ray Green (Рентгеновский зеленый), вы- делите модель черепа, если она еще не выделена, и назначьте для нес дан- ный материал. 2. Откройте позицию второй, зеленой составляющей (рядом с меткой Material 2 смешанного материала X-Ray Green. Убедитесь в том, что выбран ярко- зеленый цвет рассеяния (RGB: 0, 255 , 0). Установите значение 40 пара- метра Glossiness, значение 30 параметра Specural Level а также значение 10 0 параметра Self-Illumination. 3. Раскройте свиток Extended Parameters (Дополнительные параметры). Убе- дитесь в том что в области Falloff выбрана кнопка переключатель In (В на- чале), а затем щелкните на кнопке-переключателе Adaptive (Адаптивный спад) в области Туре. 4. Щелкните па кнопке Go То Parent, перетащите второй, зеленый материал Green па позицию первого, синего материала Blue, выбрав вариант Сору, а не Instance, а затем откройте позиции этого вновь скопированного мате- риала. Присвой те ему имя Inner (Внутренний) и выберите черный цвет рас- сеяния (RGB. 0, 0, 0). Установите значение 0 параметра Self-llluminat on. 5. Активизируйте видовое окно CameraOl и визуализируйте сцену (рис 11.16
Глава 11. Разработка текстур 401 Рис. 11.16. Материал X-Ray Green придает модели вид старомодной компьютерной графики Такую график}' вам, без сомнения, приходилось видеть в старых фильмах и те- лепрограммах, где каркасная или подсвечиваемая с торца графика применялась для отображения технических данных. Этот метод по-прежнему находит приме- нение для отображения внутреннего устройства механизмов в промышленной или иллюстративной графике. Какое еще применение можно найти такому материалу? Очевидно, в медицин- ской графике, например, для отображения сложного строения человеческого скелета, особенно если этот скелет находится внутри человеческого тела соот- ветствующих пропорций. Изменив ярко-зеленый цвет внешней окраски данного материала па сине-зеленый и настроив соответственно пара-метры Glossiness
402 Часть IV. Текстурирование и Specular Level, можно также сымитировать рентгеновский аппарат для сканиро- вания всего тела пассажира в сцепе на марсианском космодроме из фильма “Фотографическая память” (Total Recall). Дополнительные возможности применения карты Falloff Ниже приведен ряд других вариантов применения карты Falloff, которые вы можете опробовать на практике. • Измените па 1 иди больше помер канала эффектов в материале (Material Effects Channel) для внешнего материала (с меткой Material 1) а затем при- мените к нему эффект в объективе в виде свечения (Lens Effects G ow). При аккуратном выборе градиентов цвета материала (например, от сине-белого или фиолетового до черного) и свечения можно сымитировать мрачный вид модели в невидимом (ультрафиолетовом или инфракрасном) свете. • Примените карту автоматического отражения (методом трассировки лу- чей) лишь в одном из материалов, составляющих смешанный материал. Та- кой эффект лучше всего будет заметен на объекте, окруженном другими геометрическими формами и картой окружения (Environment). • Используйте карту Raytrace в одном из материалов, составляющих смешан- ный материал. Рассеянное затенение А теперь покажем, каким образом различные типы оттенителей в 3ds шах 7 позволяют изменять внешний вид световых эффектов па трехмерной поверхно- сти. В данном случае будут рассмотрены свойства сухого камня, которые затем видоизменяются для создания иллюзии мокрого, блестящего камня. Выполняя анимацию определенных параметров материала, можно даже сымитировать внешний вид воды, стекающей каскадом по каменной кладке. В получении подобных эффектов главная роль принадлежит рассеивающим оттепптслям, в которых применяется карта для распространения (или рассеива- ния) игры света на поверхности объекта. Из доступных в 3ds max 7 типов рассеи- вающих отгепителей для имитации шероховатых сухих поверхностей, например камней, штукатурки, кирпичей, особенно подходит оттепитель типа Oren-Nayar- Blinn. Такие вещества поглощают и рассеивают свет с небольшим спадом по всей их поверхности. Оттепитель Oren-Nayar-Blinn дает более реалистичные результа- ты, чем о ттенит ели Phong и Blinn в стандартных материалах, — даже при созца пин зеркальных подсветок в материале. В целом, изменяя типы оттенителей в материалах в соответствии с их реакцией па свет в реальном мире, можно суще- ственно улучшить общий реализм визуализируемых сцеп. Создание поверхности сухого камня В следующем упражнении будут продемонстрированы возможности оттените- ля Oren-Nayar-Blinn создавать рассеянное затенение для получения эффекта сухо- го камня.
Глава 11. Разработка текстур 403 1. Загрузите сцену из файла \Pro j ect Files\Chll_DevelopingTextures\ Dry Rock Example. max на прилагаемом к этой книге DVT) (рис. 11.7). Рис. 11.7. Пробная сцена из файла Dry Rock Example, max Эта сцепа состоит из объекта Quad Patch с высоким разрешением, который освещается рядом нацеленных на него прожекторов, дающих тени. (В на- стоящий момент один из прожекторов выключен, поэтому нс обращайте пока что па пего внимания.) Если щелкнуть па объекте Quad Patch и перей- ти к панели Modify, появится квадратная лоскутная сетка, к которой приме- нен модификатор Displace, расположенный в стеке ниже модификатора UVW Мар. А для искажения геометрической формы лоскута служит растро- вая текстура из файла Dry Rock. jpg. 2. Откройте редактор материалов и обратите внимание на первую позицию образца, где находится материал Dry Rock (Сухой камень), состоящий из материала с оттенителем Blinn и растровой карты, загруженной на позици- ях карт цвета рассеяния и рельефности. 3. Откройте позицию карты цвета рассеяния и щелкните иа кнопке View Im- age (Просмотр изображения), чтобы посмотреть изображение растровой текстуры из файла Dry Rock. jpg (рис. 11.18).
404 Часть IV. Текстурирование Рис. 11.18. Текстура мшистой каменной стены Эта растровая текстура с бесшовным мозаичным расположением имитиру- ет стену', сложенную из грубо обтесанных рыжевато-коричневых камней, покрытых различными видами мха и лишая, которые придают им более пе- стрый вид. 4. Перейдите на верхний уровень материала, щелкнув на кнопке Go То Parent, активизируйте видовое окно CameraOl и визуализируйте сцепу (рис. 11 19). Как следует из визуализированного изображения, применяемый в данной сцепе материал и ряд прожекторов создают ярко освещенную поверхность каменной кладки. 5. Вернитесь в редактор материалов и выберите оттенитель Oren-Nayar-Blinn из раскрывающегося списка в свитке Shader Basic Parameters. При этом сферический образец материала на первой позиции становится темнее. 6. Вновь визуализируйте сцену и обратите внимание па отличия в визуализи- рованном изображении по сравнению с тем, когда применялся оттенитель Blinn. Для такого сравнения рекомендуется пользоваться кнопкой Clone Rendered Frame Window (Клонирование окна визуализированного кадра) в окне визуализированного изображения.
Глава 11. Разработка текстур 405 Рис. 11.19. Текстура из файла Dry Rock.jpg, накладываемая на смещенный объект Quad Patch Создание поверхности мокрого камня А теперь, когда продемонстрированы отличия между оттенителями Огеп- Nayar Blinn и Blinn, можно создать иллюзию мокрого камня. Для этой цели будут видоизменены текстуры в сцепе с каменной кладкой. Кроме того, в следующем упражнении будет показано, каким образом с помощью карты Noise, оживляемой на позиции карты глянцевитости (Glossiness), получается эффект воды, стекаю- щей каскадом по каменной кладке. 1. Вернитесь в редактор материалов и щелкните па второй позиции образца материала. Присвойте новому материалу' имя Wet Rock 1 (Первый мате- риал мокрого камня), а затем измените цвет рассеяния на рыжевато- коричневый (RGB: 137, 50, 50), оставив чисто-белым цвет зеркального отражения и оттепитель типа Blinn. 2. Установите значение 200 параметра Specular Level и значение 50 парамет- ра Glossiness. 3. Перейдите к свитку Maps и откройте позицию карты цвета рассеяния. К - гда откроется окно Material/Map Browser, дважды щелкните на карте RGB Multiply (Умножение цветов RGB), чтобы загрузить ее па данной позиции. Щелкните на кнопке в столбце Maps, расположенной справа от первого образца цвета в свитке параметров карты RGB Multiply, и выберите карту типа Bitmap в открывшемся окне Material/Map Browser Далее загрузите
406 Часть IV. Текстурирование в окне Select Bitmap Image File изображение из файла \Project Files\ Chll_DevelopingTextures \Dry Rock. jpg па прилагаемом к этой книге DVD, Вернувшись в редактор материалов, установите значение 2,0 пара- метра V Tiling и щелкните на кнопке Go То Parent. 4 Перетащите копию растровой текстуры, загруженной из файла Dry Rock.jpg, с позиции первого образца цвета на позицию второго образца цвета, выбрав при этом вариант Сору, а не Instance. Затем вновь щелкните на кнопке Go То Parent Перетащите копию карты RGB Multiply с позиции кар гы цвета рассеяния па позицию карты рельефности, выбрав па этот раз вариант Instance, чтобы любые изменения в составляющей цвета рассеяния отражались и па составляющей рельефности данного материала. 5. Щелкните на позиции карты глянцевитости (Glossiness) и выберите карту Noise в открывшемся окне Material/Map Browser. Выберите тип зашумления Fractal (Фрактальное) в свитке параметров карты Noise и установите значе- ние 1 параметра Sze. Затем щелкните па кнопке Go То Parent, чтобы вер- нуться на верхний уровень материала. 6. Выделите на сцене объект Quad Patch, назначьте для него материал Wet Rock 1, активизируйте видовое окно CameraOl и визуализируйте сцену (рис. 11.20). Рис. 11.20. Скопированное изображение текстуры из файла Dry Rock.jpg используется на позициях обоих образцов цвета в карте RGB Multiply для за- темнения всего изображения сцены
Глава 11. Разработка текстур 407 Теперь каменная кладка не выглядит совершенно сухой, хотя ее поверхно- сти все же требуется придать более .мокрый и насыщенный вид 7. Нажмите клавишу <Н>, чтобы открыть диалоговое окно Select Objects, п выберите в нем объект Spot03 (неактивный третий прожектор). Как сле- дует из видовых окоп, прожектор Spot03 является копией прожектора SpotOl, смещенной немного вниз по своей локальной осп Z. Благодаря этому вдвое усиливается видимое освещение прожекторами левого верхне- го края каменной кладки. В данный момент у вас может возникнуть резонный вопрос: зачем вообще копировать прожектор SpotOl? Почему бы просто не увеличить вдвое или еще больше значение параметра Multiplier (Множитель) этого источника света? Копирование прожектора делается для того, чтобы иметь больше возможностей для управления составляющими цвета рассеяния и зеркаль- ного отражения в материале объекта Quad Patch, что и будет продемонст- рировано ниже. 8. Если прожектор Spot03 выделен, перейдите к панели Modify и установите флажок On (Включить) в свитке General Parameters (Общие параметры) данного источника света. Затем перейдите к свитку Advanced Effects (Дополнительные эффекты) и сбросьте флажок Diffuse, оставив установ- ленным флажок Specular в области Affect Surfaces (Влияние па поверхно- сти). Теперь прожектор Spot03 оказывает влияние не только на зеркаль- ные подсветки па объекте Quad Patch, по и исключает дополнительное ос- ветление составляющей цвета рассеяния в материале данного объекта. 9. Вернитесь в редактор материалов и внесите следующие изменения в мате- риал Wet Rock 1. Перейдите па позицию карты цвета рассеяния и от- кройте свиток параметров карты RGB Multiply. Щелкните сначала на вто- ром образце цвета, а затем па карте типа Bitmap в открывшемся окис Material/ Map Browser и загрузите растровую текстуру из файла \Project Files\ Chll_DevelopingTextures\Wet Rock. jpg на прилагаемом к этой книге DVD. Эта текстура была получена из текстуры сухого камня в Adobe Pho- toshop с применением режима смешения Multiply в нескольких накладывае- мых друг на друга слоях данной текстуры. А затем для получения оконча- тельного вида текстуры была откорректирована яркость и контрастность ее изображения. 10. Дважды щелкните па кнопке Go То Parent, чтобы вернуться на верхний уровень материала, активизируйте видовое окно CameraOl и визуализи- руйте еще одно пробное изображение данной сцены (рис. 11.21). Итак, поверхность мокрой каменной кладки начинает постепенно прибли- жаться к идеалу. Благодаря применению нескольких прожекторов, в том числе прожектора Spot03, оказывающего влияние только па зеркальную составляющую материала каменной кладки, в сочетании с темным, насы- щенным и блестящим материалом создается иллюзия мокрой поверхности камня, покрытой зеленым мхом.
408 Часть IV. Текстурирование Рис. 11.21. Вид каменной кладки получается более насыщенным благодаря применению более темной текстуры из файла Wet Rock.jpg на позиции вто- рого образца цвета в карте RGB Multiply Анимация водяного эффекта Анимация эффекта мокрого камня для создания иллюзии воды, стекающей по поверхности каменной кладки, построена на полученных ранее эффектах про- ецирования карт. Делается это самыми разными способами. В частности, для получения подобного анимационного эффекта, очевидно, можно применить один или несколько излучателей частиц па геометрической форме каменной кладки. Если, например, ввести систем}’ с большим числом час- тиц, а затем применить в определенном сочетании пространственные исказители типа Object Space Deflector (Отражатель в пространстве объектов), Wind (Вегер) Gravity (Сила тяжести), то можно сымитировать капли воды, разбрызгиваемой по поверхности. Но если требуется получить более изящный эффект, то водяной поток можно сымитировать и без системы частиц, осуществив анимацию коор- динат проецирования карты Noise, применяемой на позиции карты глянцевито- сти в материале Wet Rock 1. Для этой цели выберите кнопку Auto Key и перейдите к последнему кадру (под номером 3 00) в сцене с материалом мокрого камня. Затем вернитесь в редактор материалов и откройте в материале Wet Rock 1 позицию карты глянцевитости, на которой назначена карта Noise Установите значение 300 в поле параметра X Offset (Смещение по оси X) из свитка Coordinates, выключите режим Auto Key и переместите ползунок временной шкалы анимации к нулевому кадру. При этом
Глава 11. Разработка текстур 409 зеркальная подсветка на втором сферическом образце материала будет изменять- ся вместе с оживляемыми координатами проецирования карты Noise. Визуализированный вариант данной анимационной последовательности мож- но посмотреть в файле \Project Files\Chll_DevelopingTextures\Wet Rock. avi на прилагаемом к этой книге DVD. При воспроизведении этого файла наблюдается анимация текстуры, зашумленной картой Noise, которая применяет- ся на позиции карты глянцевитости. При этом создается иллюзия воды, стекаю- щей каскадом по каменной кладке. НА ЗАМЕТКУ Варианты сцены с каменной кладкой находятся в файлах Wet Rock Example 1 .max и Wet Rock Example 2.max в папке \Project Files\Chll_Developing- TexturesX на прилагаемом к этой книге DVD. Многослойные материалы Еще одним полезным способом затенения в 3ds max 7 является применение материала типа Multi-Layer. Такой материал может использоваться для создания блестящих материалов определенной глубины, в том числе и для лакированных поверхностей. Несмотря на то что материал Multi-Layer подобен по своему дейст- вию оттенителю Phong или Blinn, он в то же время позволяет четко определить зеркальные подсветки с помощью многих слоев. Благодаря смешению этих слоев получается совокупный эффект очень блестящей поверхности. Создание лакированной поверхности В следующем упражнении демонстрируется создание лакированной поверхно- сти автомобиля с помощью многослойных материалов. 1. Загрузите сцену из файла \Project Files\Chll_DevelopingTextures\ Lacquer Paint .max на прилагаемом к этой книге DVD. Эта сцена состоит из простой сферы, находящейся посреди помещения, освещаемого не- сколькими прожекторами (рис. 11.22). Дополнительное освещение стен помещения обеспечивается всенаправленным источником света. 2. Откройте редактор материалов и выберите первую позицию образца мате- риала. Данный материал будет превращен в красную автомобильную краску. Прежде всего измените его имя на Red Lacquer Paint 1 (Первый лако- красочный материал), а затем щелкните на раскрывающемся списке Shad- ing (Затенение) и выберите в нем вариант Multi-Layer. 3. Перейдите к свитку основных параметров материала Multi-Layer. В этом свитке имеются стандартные образцы цвета рассеяния (Diffuse) и общего цвета (Ambient), а также поле Diffuse Level (Уровень рассеяния) и обе об- ласти параметров для двух отдельных слоев зеркального отражения (First Specular Layer и Second Specular Layer). В двух последних областях данного свитка находится поле параметра Anisotropy (Анизотропия), позволяющего создавать неравномерные зеркальные подсветки па поверхности объектов.
410 Часть IV. Текстурирование Рис. 11 22. Простая пробная сцена, демонстрирующая создание лакированной поверх- ности автомобиля 4. Если открыть свиток Maps, то в нем можно обнаружить позиции для карт уровня рассеяния (Diffuse Level) и неравномерности рассеяния (Diffuse Roughness), а также отдельные позиции для карт цвета зеркального отра- жения (Specular Color), двух уровней зеркального отражения (Specular Level 1 и Specular Level 2), глянцевитости (Glossiness 1 и Glossiness 2), анизотропии (Anisotropy 1 и Anisotropy 2) и ориентации (Oriental on 1 и Ori- entation 2; последние оказывают влияние на анизотропию). Каждая из этих карт позволяет настраивать параметры нижележащего грунтового покры- тия материала и наносимого сверху лакирующего покрытия. 5. Вернитесь в свиток основных параметров материала Multi-Layer и внесите I в нем следующие изменения. Если оба образца цвета рассеяния и общего I цвета заблокированы, разблокируйте их, а затем измените общий цвет на I совершенно черный (RGB: 0, 0, 0), а цвет рассеяния на темно-красный (RGB: 128, 0, 0). Кроме того, установите значение 40 параметра Dffuse Level, чтобы смешать основной красный цвег рассеяния с черным общим I цветом и тем самым сделать его более темным и густым. 6. Перейдите к области First Specular Layer и измените в ней цвет образца на чисто-белый (RGB: 255, 255, 255), а затем установите значение 150 па- I
Глава 11. Разработка текстур 411 раметра Level и значение 75 параметра Glossiness. На первом сферическом образце материала появится яркая зеркальная подсветка. 7. Перейдите к области Second Specular Layer и измените в пей цвет образца на ярко-красный (RGB: 255, 0, 0), а затем установите значение 75 пара- метра Level и значение 35 параметра Glossiness. 8. Выделите в сцене объект Sphered, назначьте для пего материал Lacquer Paint 1, активизируйте видовое окно Camerad и визуализируйте проб- ное изображение данной сцены (рис. 11.23). Рис. 11.23. Пример красного лакированного покрытия Эффект незначителен, но все же заметен. Второй уровень зеркального отра- жения распределен под ярко-белой зеркальной подсветкой на первом уровне зер калыюго отражения. В итоге материал в визуализированном изображении вы- глядит слишком блестящим, едва ли не мокрым, имитируя действие лакирован- ного покрытия па поверхности автомобиля. Такие виды покрытий создают мно- жество зеркальных подсветок, причем нижележащие подсветки получаются более слабыми и рассеянными, а вышележащие подсветки — более четкими и рез- ко очерченными. Создание “сахарного” покрытия Для усовершенствования данного эффекта можно, например, ввести карту на позиции второй карты глянцевитости, чтобы сделать зеркальные подсветки еще более слабыми. В данном случае требуется добиться эффекта “сахарного” покры-
412 Часть IV. Текстурирование тия или же покрытия “под металл”, в котором мелкие частички металла, находя- щиеся во взвешенном состоянии в эмульсии краски, формируют переливающиеся искрами блики в нижележащих слоях. Итак, для получения “сахарного покрытия выполните следующее упражнение. 1. Вернитесь в редактор материалов и перейдите к свитку' Maps Дважды щелкните на кнопке в столбце Мар справа от метки Specu ar Level 2, а когда откроется окно Material/Map Browser, щелкните на карте Noise. 2. Выберите тип зашумления Fractal в свитке параметров карты Noise и уста- новите значение 0,25 параметра Size, чтобы масштабы данного эффекта были достаточно мелкими. Присвойте новой карте имя Noise Specular 2 (Карта зашумления на втором уровне зеркального отражения), поскольку она будет использована и в следующем упражнении. 3. Щелкните на кнопке Go То Parent, чтобы вернуться на верхний уровень материала, активизируйте видовое окно CameraOl и визуализируйте проб- ное изображение данной сцены (рис. 11.24). Рис. 11.24. Вид крупным планом второй зеркальной подсветки на сфере после применения карты Noise на позиции карты Specular Level 2. Обратите внимание на пятнистость данного эффекта Усовершенствование эффекта с помощью отражении Полученный выше многослойный эффект лакированного покрытия можно усовершенствовать, введя подходящие отражения.
Глава 11. Разработка текстур 413 Сфера с лакированным покрытием получается достаточно блестящей, чтобы ясно отражать свое окружение. Поэтому в следующем упражнении материал ла- кированного покрытия будет дополнен картой отражения (Reflection). Однако эта карта будет применяться в сочетании с картой Falloff для более точного управления конечным результатом 1. Вернитесь в редактор материалов и щелкните на кнопке Go То Parent, если требуется перейти па верхний уровень материала Red Lacquer Paint 1. Далее щелкните па позиции карты Reflect in. Когда откроется окно Material/Map Browser, выберите в нем уже знакомую вам карту Falloff. Ос- тавьте без изменения параметры настройки данной карты. 2. Щелкните на кнопке с меткой None справа от образца белого цвета в свитке параметров карты Falloff п выберите карту RGB Tint (Оттенок RGB) в от- крывшемся окне Material/Map Browser. Далее щелкните на образце зеленого цвета в свитке параметров карты RGB Tint и выберите совершенно черный цвет (RGB 0, 0, 0). Повторите эту же операцию и для образца синего цвета, чтобы карта отражения получила в итоге такой же красный оттенок, как и у всего материала в целом. 3. Щелкните на кнопке под меткой Мар в свитке параметров карты RGB Tint и выберите карту Reflect/Refract в открывшемся окне Material/Map Browser. После загрузки данной карты выберите вариант From File (Из файла) в об- ласти Source (Источник) из свитка параметров карты Reflect/Refract. Кроме того, установите значение 256 параметра Size и значение 0,001 параметра Blur Offset (Смещение размытости). 4. Перейдите в нижнюю часть свитка параметров карты Reflect/Refract, щелк- ните на кнопке То File (В файл) в области Render Cubic Map Files (Файлы для визуализации кубической карты) и сохраните полученный результат в файле Red_JP. ’pg. Установите максимальное значение (100) параметра Image Quality (Качество изображения). Щелкните на кнопке Save. Перво- начально сформированная кубическая карта отражения появится в файле Red_UP. jpg. 5. Щелкните на кнопке Pick Object and Render Maps (Выбрать объект и визуа лизировать карты). Затем щелкните на объекте Sphered, чтобы выделить его. Откроется небольшое окно визуализированного кадра с кубическими картами, имеющими размеры 256x256 и визуализируемыми друг за другом По завершении визуализации всех карт сферический образец материала Red Lacquer Paint 1 обновится с учетом новой древовидной структуры карты Reflect/Refract. 6. Активизируйте видовое окно CameraOl и визуализируйте еще одно проб- ное изображение данной сцены (рис. 11.25). Используя карчу Falloff для маскирования кубической карты окружения, можно ограничить действие отражений лишь краями сферы. Кроме того, карта RGB Tint изменяет общую окраску карт отражения, чтобы они в боль- шей степени соответствовали выбранному красному цвету данного лако- красочного материала.
414 Часть IV. Текстурирование Рис. 11.25. Материал Lacquer Paint 1, окрашенный кубической картой ок- ружения типа Reflect/Refract 7. Для того чтобы еще больше усилить действие карты Falloff „а сфере, вер- нитесь в редактор материалов и дважды щелкните на кнопке Go То Parent, чтобы перейти па основной уровень карты Falloff применяемой на пози- ции карты отражения. Выберите тип спада Fresnel из раскрывающегося списка Falloff Туре а затем вновь визуализируйте данную сцепу Как следует из визуализированного изображения, спад по Френелю приводит к общему затемнению карты отражения, а ее действие ограничивается лишь краями сферы в зависимости от угла поля зрения камеры. Резюме В этой главе были рассмотрены различные типы о ттени гелей, материалов и карт, доступных в 3ds max 7, а также представлены методы получения впечат- ляющих эффектов текстурирования путем смешения растровых текстур с такими процедурными картами, как Noise и Falloff. Кроме того, в этой главе были показа- ны отличия между тинами оттепителей Blinn и Oren-Nayar-Blinn, а также особен- ности создания многослойных текстур. А теперь когда вы твердо усвоили основные принципы текстурирования, можно перейти к рассмотрению доступных в 3ds max 7 инструментов организа- ции освещения.
Часть V Освещение 12 Основы освещения 13 Освещение для кино, видео и игр
Глава 12 Основы освещения Джон Макфарланд В компьютерной графике освещение в простейшем случае означает введение в сцену источников света. Как правило, это делается заранее для достижения внешнего вида и ощущения сцены, которые требуется передать зрителям. Если освещение сцены оказывается слишком ярким, сцена получится блеклой и не- привлекате гьной. Если же оно оказывается слишком темным, изящные, сложные элементы и мелкие детали сцены могут стать совершенно незаметными. А если освещение персонажей в компьютерной графике не соответствует реальному ок- ружению, с которым они скомпонованы, они просто не впишутся в такое окруже- ние. Несмотря на значительные усовершенствования в освещении, достигнутые за последние годы, для правильной его организации требуется опыт и постоян- ное стремление повышать свою квалификацию. Раскрытие сюжета с помощью освещения Несмотря на то что освещение в 3ds max организуется по довольно простому принципу, для практической его реализации требуется опыт, а зачастую и немало времени. Основной источник света, или так называемый источник направленно- го света, должен быть расположен и ориентирован таким образом, чтобы напра- вить внимание зрителей на нужные элементы сцены. Вспомогательный источник света, или так называемый источник заливающего света, вводится в сцену для ос вещения тех ее элементов, которые оказываются вне области действия основного источника света, а также для имитации отражений света от других объектов, на- ходящихся на сцене Источник задней подсветки, или просто задняя подсветка, вводится для отделения объектов переднего плана от заднего плана. Помимо это- го, в сцеп}’ могут быть введены специальные источники света для имитации кон- кретных условий освещения, например, светящихся вывесок, мигающей световой сигнализации или зондирующего прожектора вертолета Все эти источники света лишь усложняют схему освещения сцены, поскольку необходимо принимать во внимание их влияние, яркость и местоположение при уравновешивании освеще- ния всей сцены в целом для достижения требуемого вида и ощущения.
418 Часть V. Освещение Кроме того на настроение в сцене большое влияние оказывают выбранные цвета. Если источник направленного света от костра имеет в основном желтую окраску', заполняющую всю ночную сцепу в палаточном лагере, то источники за- ливающего света, как правило, имеют голубоватую окраску, обозначающую об- щий свет, идущий от луны и звезд. Когда же костер погаснет и от него останутся лишь обгоревшие головешки и тлеющие красные угольки, окраска того же самого источника направленного света становится красноватой, а свет от него уже не проникает в темноту' так далеко, как прежде. В учреждениях и в быту применяют- ся источники света, имеющие окраску', близкую к белой. Однако в источниках света, применяемых во внутренних сценах 3ds max, следует избегать устанавли- ваемой по умолчанию белой окраски (RGB: 0, 0, 0), поскольку такое освещение получается слишком стерильным и малопривлекательным. Яркий дневной свет в Заполярье может иметь очень бледный голубой оттенок, тогда как дневной свет в пустыне — очень бледный желтый оттенок. Какой бы свет пи требовалось сыми- тировать, будь то солнечные лучи, проникающие сквозь тонкие портьеры, или же мигающая в окис красная вывеска мотеля, окраска излучаемого света позволяет ясно определить характер сцены. Наконец, тени от источников света вносят в сцену явный драматизм или не- значительную ясность, помогая зрителям попять природу источника света, даю- щего подобные тени. Совершенно непроницаемые, резко очерченные тени ука- зывают на яркий, сфокусированный источник света, например прожектор или солнце, стоящее в зените ясным днем. И хотя Солнце па самом деле не сформи- ровано, поскольку оно слишком удалено от Земли, тем нс менее считается, что его лучи распространяются практически параллельно. Более мягкие тени создают ощущение покоя или же наводят па мысль о том, что освещение в сцене органи- зовано с помощью многих источников света. В отсутствие теней окружение в сцене выглядит неестественно, и создается впечатление, будто объекты парят в воздухе, а не привязаны к земле силой тяжести. Рассмотрим принципы освещения в 3ds max на примере сцепы с персонажем, имеющим выразительное имя клоун Клеймор (рис. 12.1). В этой сцене присутст- вует единственный источник направленного света, который неверно расположен и не дает теней, освещая только одну сторону бюста данного персонажа. В итоге сцена становится плоской и менее привлекательной, чем могла бы бы ть па самом деле. Отсутствие теней не дает зрителям верного представления о местоположе- нии персонажа на сцене. Обратите внимание па то, что воротник не отбрасывает тени на шею персонажа и что свет беспрепятственно проходит сквозь голову персонажа, освещая недоступные участки в области ноздрей и уголков рта. Если бы резкая тень от источника света появилась на поверхности позади кло- уна Клеммора, по пей можно было бы догадаться, насколько близко оп находится к данной поверхности (рис. 12.2). А находится он достаточно близко от задней степы, чтобы отраженный от нее свет освещал левую сторону его лица. С помощью вспомогательных источников заливающего света можно отделить лицо персонажа от стены позади пего и в то же время осветить эту стену (рис. 12.3). При этом источник направленного света дает более мягкую тень и имеет незначительную красноватую окраску, чтобы сделать менее резким цве- товой переход от фона к персонажу.
Глава 12. Основы освещения 419 Рис. 12.1. Единственный неверно расположенный источник направленного света, не дающий теней, освещает лишь одну сторону персонажа, прида- вая сцене плоский вид Рис. 12.2. Благодаря появлению тени на стене можно судить о местополо- жении клоуна Клеймора относительно стены
420 Часть V. Освещение Рис. 12.3. Источники заливающего света, более мягкая тень и небольшая ок- раска света делают сцену более привлекательной и понятной для зрителей Не удивительно что операторы, снимавшие черно-белые фильмы, придавали большее значение освещению и получающимся от него теням, чем современные операторы, снимающие фильмы в цвете. Объясняется это тем, что у них не было возможности использовать цвет в кадрах съемки. В частности, отрицательный герой (или монстр) нередко освещался снизу, чтобы его лицо имело более злове- щий вид (рис. 12.4), тогда как положительный герой освещался намного более прямым светом. Глаза главной героини зачастую освещались специально. А если в сцепе драки присутствовал подвесной источник света, он неизбежно разбивался и беспорядочно раскачивался, создавая произвольные мерцания и тени, усили- вавшие впечатление замешательства в данной сцене. Следовательно, к освеще- нию следует подходить творчески, используя его для передачи идей, которые не- возможно сообщить только средствами моделирования и текстурирования. НА ЗАМЕТКУ Время, которое требуется для организации и настройки освещения в любой сис- теме компьютерной графики, зачастую оценивается неверно и поэтому выделя- ется весьма скудно. Но ведь источники света приходится неоднократно распо- лагать, ориентировать, настраивать, регулировать, вводить, удалять и т.д. пре- жде чем удастся добиться приемлемого освещения. Если же трехмерную сцену необходимо согласовать с реальным окружением, в таком случае придется вы- яснить ориентацию объектов в окружающей обстановке или же технические ха- рактеристики осветительных приборов у их производителей В качестве хороше- го практического правила на освещение внутренней сцены следует зарезервиро- вать 20-25% от всего времени, отпущенного на производство, и 5-10% на ос- вещение наружной сцены в зависимости от сложности применяемых моделей.
Глава 12. Основы освещения 421 Рис. 12.4. Расположив источник направляющего света ниже персонажа и на- правив его свет вверх, можно придать персонажу более зловещий вид, чем на предыдущих рисунках Три составляющие света Еще в школе нас учили, что когда мы видим нечто, в нашем мозгу производит- ся расчет отражения света от поверхности наблюдаемого объекта. Частично по- глощая свет из видимой части спектра, объект отражает и рассеивает остальной свет в свое окружение. Отраженный свет дает информацию о цвете и текстуре объекта. Сравните, например, бывший в употреблении и совершенно новый, не- давно отполированный шар для кеглей. Несмотря на их одинаковый вес и размер, новый шар кажется более гладким и твердым, а бывший в употреблении шар более неровным и тяжелым. Свет разделяется па отдельные составляющие: рассеянный, общий и зер- кально отраженный свет. Несмотря на то что параметры этих составляющих света определяются главным образом в редакторе материалов, они действуют в сцене благодаря именно свету. На рис. 12.5 приведены два стандартных для 3ds шах чайника с несколько отличающимися материалами, подчеркивающими действие указанных составляющих света. Данную сцену можно открыть из фай- ла \Project Files\Chl2_LightBasics\Light Components.шах на прила- гаемом к этой книге DVD. В данной сцене присутствуют два ис точника света: источник направленного све- та, расположенный справа, а также источник заливающего света, расположенный слева, причем оба источника находятся над освещаемыми объектами. Рассеянный свет определяет окраску объектов, когда они освещены прямым светом источника. Благодаря рассеянному' свету' красный чайник слева оказывается красным, а синий
422 Часть V. Освещение чайник справа — синим Как видно на рис 12.2, отсутствие источника отраженного или заливающего света приводи) к неестественному спаду7 освещения (его ослабле- нию на краях). Левая сторона каждого чайника оказывается слегка освещенной слабым светом, отраженным внутри сцены. А поскольку источник заливающего света служит для создания иллюзии окружения, его свет не является настоящим общим, или окружающим, светом. Необходимость имитировать реальные условия освещения для получения требуемого вида стала уже типичной в среде 3ds max. Рис. 12.5. Три составляющие света: рассеянный, общий и зеркально отраженный свет В 3ds max допускается автоматическое формирование в сцене устанавливаемо- го по умолчанию уровня общего света в глобальном освещении. Этот уровень об- щего света может быть настроен в диалоговом окне Environment and Effects (Окружение и эффекты), открываемом из главного меню с помощью команды Renderings Environment (Визуализация^Окружение). В этом диалоговом окне не- обходимо далее перейти к свитку Common Parameters (Общие параметры) и щелкнуть в области Global Lighting (Глобальное освещение) на образце общего цвета (Ambient) (рис. 12.6). Увеличение устанавливаемого по умолчанию уровня общего света применяется редко, поскольку делает сцену блеклой и плоской По- пробуйте, например, установить крайние значения RGB (255, 255, 255) для обще- го света, чтобы лучше видеть его влияние на внешний вид сцены В связи с этим настоятельно рекомендуется установить исходные значения RGB (0, 0, 0) и по- пробовать получить общий свет вручную.
Глава 12. Основы освещения 423 Enwonmert Effects | Effects: Add | Ddelc j p Active 'в P | Move Down| Name) MelS° | Render. FLO Advanced Lighting Render To Texture... Ray tracer Settings... Raytrace Global Inckxfe/Exclude. . mental ray Message Window . 5hft+Ctrl+O ActtveShade Floater.. Shift+Ctrl+A ArtrveShade Viewport Material Editor... M Materid/Map Browser .. 5hift+Ctrl+M Video Post . Shift+ctrl+V Show Last Rendering Panorama Exporter .. Print Size Wizard .. RAM Player. Shift+Ctrl+R C M Stlcl r Ar blent Light Рис 12 6. Установка общего света в глобальном освещении сцены Зеркально отраженный свет, называемый также зеркальной подсветкой или зеркальным ореолом, представляет собой свет, отраженный от объекта сконцен- трированным пучком параллельно линии прямой видимости наблюдателя. Эта составляющая света дает больше сведений о текстуре объекта, чем рассеянный или общий свет. Небольшие, зеркальные подсветки на левом чайнике указывают па то, что его поверхность тверда и отполирована. А зеркальные подсветки на правом чайнике оказываются слабыми и рассеянными, создавая впечатление бо- лее мягкой, шероховатой поверхности. Следовательно, необходимо следить за тем, чтобы зеркальные подсветки верно воспроизводили имитируемую текстуру. Ничто так не нарушает естественный вид старой, изношенной кирпичной стены, как яркие и блестящие подсветки. Типы источников света В 3ds max доступны самые разные типы источников света, способных удовле- творить практически любые потребности. Основные стандартные источники света излучают свет в конкретном или же во всех направлениях безотносительно к отражению света или специальным условиям визуализации. Для средства визуа- лизации mental ray имеются два специальных источника света, и еще один тип
424 Часть V. Освещение источника света служит для имитации общих условий освещения. А для визуали- зации по методу излучательности в 3ds max имеется ряд фотометрических источ- ников света, позволяющих сымитировать эффекты отражения света, исходящего от настоящих осветительных приборов, включая лампу накаливания мощностью 60 Вт или люминесцентную трубку промышленного образца. В 3ds max имеются даже системы освещения с привязкой сцен к местности, дате и времени для ими- тации положения солнца на небе в разное время суток. Такие инструменты от- лично подходят для изучения свойств света и тени. Стандартные источники света Источники света стандартного типа практически не претерпели никаких измене- ний в версии 3ds max 7. К этой категории относятся следующие источники света. • Всенаправленный источник света. В некоторых программах компьютер- ной графики такие источники света называются точечными. У них нет объема, и они излучают свет равномерно во всех направлениях • Прожектор (нацеленный или свободно направленный). Это разновид- ность всенаправленного источника света с пучком, сфокусированным в пределах конуса и в одном направлении. Нацеленные прожекторы состо- ят из двух частей: собственно источника, излучающего свет, и цели, в сто- рону которой он направлен. А управление свободно направленным прожек- тором осуществляется путем преобразования вращением или связывания его с другим, родительским объектом. • Направленный источник света (нацеленный или свободно направлен- ный). Аналогично прожектору, направленный источник дает пучок света, нацеленный в одном направлении. Но в данном случае этот пучок исходит не из точки, а из цилиндра или прямоугольника параллельными лучами. В итоге тени от направленного источника света получаются продолгова- тыми в зависимости от угла его расположения относительно освещаемых объектов. Однако такие тени нс простираются по мере увеличения р с- стояния от источника света. Направленный источник света служит для имитации солнечного света. • Источник верхнего света. Такие источники дают общее освещение в днев- ное время наружных сцен, где атмосфера рассеивает солнечный свет. Место- положение источника верхнего света не имеет особого значения, поскольку его действие подобно освещению сцены источниками, расположенными над пей сводом. • Поверхностные всенаправленные и прожекторные источники света для модуля mental ray. Эти источники света предназначены для работы совместно со средством визуализации mental ray. Каждый из них дает свет, излучаемый из определенного объема пространства в форме сферы или цилиндра (поверхностный всенаправленный источник света) либо прямо- угольника или диска (поверхностный прожекторный источник света). За более подробными сведениями о модуле mental ray обращайтесь к руково- дству пользователя по 3ds шах 7.
Глава 12. Основы освещения 425 НА ЗАМЕТКУ После создания источника света доступными оказываются параметры не только для данного типа источника. Выделите источник света на сцене, перейдите сна- чала к панели Modify, а затем к свитку General Parameters, раскройте список в области Light Туре (Тип источника света) и выберите из него другой тип для выделенного источника света. Подобным образом можно, в частности, перехо- дить от нацеленного к свободно направленному прожектору и направленному источнику света и обратно. Следует, однако, иметь в виду, что имя источника света автоматически не меняется вместе с изменением его типа. Например, все- направленный источник света OmniOl, будет по-прежнему называться OmniOl даже после его замены на нацеленный прожектор (рис. 12.7). Рис. 12.7. Изменение типа ис точника света на панели Modify Фотометрические источники света Теперь вам уже не нужно гадать, насколько яркость источника света оказывает влияние на сцену. Используя фотометрические источники света, можно воспроизве- сти физические свойства конкретных осветительных приборов, в том числе окраску, распределение и интенсивность света. Для того чтобы заменить люминесцентную лампу на лампу' накаливания или ксеноновую лампу', достаточно щелкнуть на раскры вающемся списке в области Color из свитка Intensity/Color/Distribution (Интенсивность/ Окраска/Распределение) При изотропном (Isotropic) распределении свет равномер- но излучается во всех направлениях. При прожекторном (Spot) распределении свет проецируется в конкретном направлении. А наибольшая польза от фотометрических источников света в архитектурных сценах заключается в их паутанчатом (Web) рас пределении силы света. При таком распределении делается ссылка на специальный файл с расширением . ies, . cibse или . Itli, который соответствует формату фо- тометрического профиля, определенному одной из трех основных светотехнических организаций. Такие файлы предоставляются для свободной загрузки большинством крупных производителей осветительного оборудования. Ссылка на файл фотометри- ческого профиля осветительного прибора позволяет точно сымитировать в 3ds max характер распространения света от осветительного прибора конкретного произво- дителя. Для загрузки файлов фотометрического профиля имеются два следующих источника: http://www.ge1i ght ing/сот/па/specоem/iеsdownloads.htm и http://www.hadcolighting.com/ies_agree.htm.
426 Часть V. Освещение Ниже перечислены доступные в 3ds max 7 типы фотометрических источников света. • Точечный источник света (нацеленный и свободно направленный Аналогично стандартному всенаправленному источнику света или прожек- тору, такой источник излучает свет из одной точки в пространстве, однако его распределение может быть выбрано изотропным (как у всенаправлен- ных источников света), прожекторным (как у прожекторов) или паутинча- тым (как у настоящих осветительных приборов конкретного типа). • Линейный источник света (нацеленный и свободно направленный) В отличие от точечного источника света, такой источник равномерно из- лучает свет вдоль линии, проходящей по его центру, используя рассеянное (Diffuse) распределение. • Поверхностный источник света (нацеленный и свободно направлен- ный). Излучает свет из плоскости, расположенной в его центре. На рис. 12.8 приведены три фотометрических источника света с изотропным или рассеянным распределением. Рис. 12.8. Точечный источник света (слева) с изотропным распределением; линейный (в цен- тре) и поверхностный (справа) источники света с рассеянным распределе ием
Глава 12. Основы освещения 427 Кроме того, специально для средства визуализации mental ray в 3ds max име- ются два типа фотометрических источников солнечного (IES Sun) и верхнего света (IES Sky). При использовании в системе верхнего света эти источники све- та обеспечивают физически достоверное освещение сцены. Новый для версии 3ds max 7 источник света IES Sun уже не требует активизации режима Final Gather (Окончательный сбор), а для источника света IES Sky такое ограничение по- прежнему существует. СОВЕТ После видоизменения источника света в 3ds max значения многих его параметров (цвета, множителя и прочих) становятся устанавливаемыми по умолчанию для сле- дующего создаваемого источника света. Этот принцип распространяется даже на последующие сцены, открываемые без установки в исходное состояние или пере- запуска 3ds max. Поэтому, для того чтобы новые источники света в следующей сцене получали устанавливаемые по умолчанию значения своих параметров, уста- новите значение 1 параметра Multiplier, выберите цвет (RGB: 255, 255, 255), сбросьте флажок On в области Shadows свитка General Parameters данного источ- ника света и т.д. Системы освещения Помимо стандартных и фотометрических источников света, в 3ds max имеют- ся две системы освещения, позволяющие существенно повысить эффективность освещения наружных и внутренних сцен с помощью внешних источников света. Обе системы освещения доступны после щелчка на кнопке Systems на панели Create в категории Standard из раскрывающегося списка. Они определяют место- положение источника света в зависимости от местонахождения модели на Земле. Система солнечного света Эта система освещения связывает направленный источник света, обозначаю- щий солнце, с компасным объектом для определения местоположения солнца на небе. В следующем упражнении демонстрируется принцип действия данной сис- темы освещения I. Сбросьте 3ds max, чтобы перейти к устанавливаемым по умолчанию значе- ниям параметров источников света. Выберите из главного меню команду Customized Units Setup (Специальная настройка^Установка единиц изме- рения) Выберите варианты единиц изменения US Standard (Стандартные единицы измерения США) и Feet w/ Decimal Inches (Ф)ТЫ и десятичные дюймы) в диалоговом окне Units Setup (рис 12.9). 2. Создай те ряд примитивных параллелепипедов разного размера в качестве моделей здании 3. Создайте плоскость под параллелепипедами и выберите для всех этих объ- ектов нейтральные цвета. Перейдите к виду сцены из камеры (рис. 12.10).
428 Часть V. Освещение Рис. 12.9. Выбор стандартных единиц из- мерения США, а также футов и десятич- ных дюймов в диалоговом окне Units Setup специально для данного упражнения Рис. 12.10. Примитивные объекты в качестве моделей зданий в городском пейзаже
Глава 12. Основы освещения 429 | СОВЕТ_______________________________________________________________ При выборе цвета фона для визуализируемой сцены лучше избегать черного или белого цвета, так как черный цвет фона умаляет действенность теней и зна- чение темных участков сцены, тогда как белый цвет фона дает такой же резуль- тат, как и зеркальные подсветки. 4. Перейдите к панели Create, щелкните сначала на кнопке Systems, затем выберите категорию Standard из раскрывающегося списка и щелкните на кнопке Sunlight (Солнечный свет). Перейдите к окну вида сверху, щелкните и перетащите курсор мыши рядом с центром группы зданий, чтобы создать объект картушки компаса. Размер данного объекта особого значения не имеет, поскольку это лишь вспомогательный объект, служащий для уста- новки правильной ориентации источника света. 5. Как только будет создан объект картушки компаса, перетащите курсор мы- ши и вновь щелкните, чтобы установить орбитальный масштаб (Orbital Scale) — расстояние от источника света до цели Значение данного пара- метра, доступного также в области Site (Местоположение) на панели Create, должно быть достаточно большим, чтобы источник света находился над зданиями. Если источник света не выделен, выделите его вновь и выбе- рите параметр Orbital Scale в области Site из свитка Control Parameters (Параметры управления) на панели Motion. В архитектурных проектах боковые стороны сооружений обычно располага- ются параллельно оси выбранной системы координат. Однако создавать, пере- мещать и копировать объекты удобнее в системе мировых координат, а не в ло- кальной системе координат, к которой привязаны здания. А система солнечно- го света дает пользователю возможность ориентировать компас (который яв- ляется родительским объектом) и источник света (который является порожденным объектом) относительно настоящей системы координат. 6. Выделите объект компаса и поворачивайте его до тех пор, пока стрелка на север не совпадет с истинным направлением на север в сцене или же в ре- альной ситуации (рис. 12.11). 7. Выделите объект источника света SunOl и откройте панель Motion. Щелк- ните на кнопке Get Location (Получить местоположение) в области Location из свитка Control Parameters, чтобы открыть диалоговое окно Geographic Location (Географическое местоположение). Выберите географический ре- гион из раскрывающегося списка Мар и город из списка City. Последний список довольно длинный, и в нем можно найти город, ближайший к дан ному местоположению сцены. Кроме того, можно щелкнуть непосредст- венно на карте и выбрать ближайший город или же ввести значения пара метров Latitude (Широта) и Longitude (Долгота) в той же самой области Lo- cation на панели Motion. На рис. 12.12 показан результат выбора для текущей сцены города Кливленда, шт. Огайо.
430 Часть V. Освещение Рис. 12.11. Объект компаса, повернутый в системе солнечного света для совпадения с ис- тинным направлением на север + f - ’ Control Paiametere Aamut____ Altitude Г 69 [75 Time Hours Mtns Secs. Geographic Location | 5” С] Time Zone Daylight Saving Типе П [- Location------------------- ; Get Location ,. | I OevekndOH* Latitude. C] Longitude. • Site------------------------ Orbital Scale: 1596’6 6/8’ C| Рис. 12.12. В качестве географического местоположения сцены выбран город Кливленд, шт. Огайо
Глава 12. Основы освещения 431 8. Щелкните на кнопке ОК, чтобы закрыть диалоговое окно Geographic Loca- tion. Установите на панели Motion дат}' и время, которым должен соответст- вовать солнечный свет, а также установите флажок Daylight Saving Time (Летнее время), если в выбранном регионе соблюдается этот стандарт. 9. Перейдите к окну вида из камеры и щелкните на кнопке Quick Render (Быстрая визуализация), расположенной на правом краю основной панели инструментов, чтобы визуализировать сцену с установленным местополо- жением в городе Кливленде, шт. Огайо, датой 22 июня 2005 года и време- нем 11:00 при соблюдении стандарта летнего времени (рис. 12.13). Рис. 12.13. Сцена, визуализированная в указанном реальном месте, времени и дате Система дневного света Система дневного света сочетает в себе преимущества использования направ- ленного источника света в качестве солнца с действием верхнего света, дающего освещение отраженным светом. В следующем упражнении демонстрируется прин- цип действия данной системы освещения. 1. Удалите компас и источник света со сцены. Следует иметь в виду, что оба эти объекта связаны лишь отношением “родитель-потомок”, поэтом)' если удалить только компас, свободно направленный источник света останется па сцепе.
432 Часть V. Освещение 2. Перейдите к панели Create, щелкните сначала на кнопке Systems, затем выберите категорию Standard из раскрывающегося списка и щелкните на кнопке Daylight (Дневной свет), чтобы создать систему дневного света та- ким же образом, как и рассмотренную выше систему солнечного света. Ус- тановите то же самое местоположение, время, дату и ориентацию компаса. 3. Визуализируйте сцен}' (рис. 12.14). Полученное изображение выглядит слишком блеклым и ярким. Для уменьшения яркости до приемлемого уров- ня следует ввести управление экспозицией. Рис. 12.14. Сцена городского пейзажа без управления экспозицией при визуализации окру- жения 4. Выберите из главного меню команду Renderings Environment (Визуализация^ Окружение). Раскройте список в свитке Exposure Control (Управление экс- позицией) диалогового окна Environment and Effects и выберите вариант Automatic Exposure Control (Автоматическое управление экспозицией). За- кройте диалоговое окно Environment and Effects, а затем вновь визуализи- руйте сцен}'. На этот раз она выглядит намного более привлекательно (рис. 12.15). Для увеличения контраста попробуйте установить значение порядка 0,5 параметра Exposure Value (Величина экспозиции).
Глава 12. Основы освещения 433 Рис. 12.15. Сцена городского пейзажа с управлением экспозицией при визуализации окру- жения 5. Выделите объект DaylightOl и перейдите к панели Modify, где находится большое число элементов управления для настройки каждого свойства источ- ников направленного и верхнего света, составляющих систему дневного света. 6. Раскройте свитки Daylight Parameters (Параметры дневного света) и Sky- light Parameters (Параметры верхнего света) и сверните остальные свитки на панели Modify, чтобы проверить и настроить значения параметров в этих двух свитках и придать сцене более привлекательный вид. 7. Убедитесь в том, что в свитке Day light Parameters выбраны стандартные (Standard) источники солнечного и верхнего света а не фотометрические источники света IES Sun или IES Sky. Увеличьте приблизительно до 85 значение параметра Multiplier в свитке Skylight Parameters. На первый взгляд, это непомерное значение, но если учесть управление экспозицией, то меньшие значения данного параметра могут и не дать никакого эффекта Установите флажок Cast Shadows (Отбрасывать тени) в области Render а затем визуализируйте сцену. На это может уйти больше времени, чем прежде, поскольку в 3ds щах рассчитываются тени от источника верхнего света. Обратите внимание па то, что теперь па самое высокое здание нада- ют тени от менее высоких зданий, стоящих впереди пего, несмотря па то, что основной источник света находит ся сзади (рис. 12.16).
434 Часть V. Освещение Рис. 12.16. Та же сцена городского пейзажа с более мощным источником верхнего света, дающим тени Обе системы солнечного и дневного спета подлежат анимации для отображе- ния изменений, происходящих со временем в солнечном свете и тенях. Они от- лично подходят для определения количества света, которое должно попадать в приемную, кабинет начальника или студию в архитектурных проектах Типы теней Тени позволяют связать геометрическую форму с поверхностями на сцене. Они создают впечатление плотности и размерности и помогают зрителям Л)чше попять взаимное расположение всех объектов на сцене. В 3ds max доступны са- мые разные типы теней со своими достоинствами и недос татками. • Тени, формируемые методом проецирования карты теней Растровые изображения формируемые стандартным средством визуализации с по- строчной разверткой непосредственно перед самой визуализацией и затем накладываемые на выбранные участки в сцене. Средство визуализации рас- считывает расстояние от источника света до освещаемых им объектов, опре- деляя те объекты, которые находятся на пути лучей свега от данного источ- ника. Любые поверхности, находящиеся позади таких объектов, не освеща- ются. Для формирования теней данного типа требуется больше оперативной памяти, чем для теней других типов, однако они имеют слабо очерченные края и относительно быстро визуализируются, поэтому они и выбираются по умолчанию в большинстве источников света, доступных в 3ds max.
Глава 12. Основы освещения 435 • Тени, формируемые методом трассировки лучей Формируются путем трассировки пути прохождения каждого луча света с учетом объектов, встре- чающихся па этом пути. Такие тени получаются более точными, чем те, что формируются методом проецирования карты теней, но для их расчета требу- ется больше времени Тени данного типа имеют резко очерченные края по своему периметру и выбираются по умолчанию в системе солнечного света. • Тени, формируемые усовершенствованным методом трассировки лу- чей. Подобны теням, формируемым обычным методом трассировки лучей, в силу сходства применяемых методов их получения, однако они допускают настройку сглаживания, определяющую внешний вид их краев. Благодаря этому края теней данного типа получаются более мягкими, как у теней, формируемых методом проецирования карты теней, в то же время сохра- няя большую точность, присущую методу трассировки лучей. • Тени, формируемые методом трассировки лучей и предназначенные для модуля mental ray. Такие тени формируются только средством визуа- лизации mental ray. Они не столь точны, как тени, формируемые методом трассировки лучен, однако визуализируются быстрее, сокращая тем самым общее время визуализации сцены. • Поверхностные тени. Создают впечатление, будто их источником служит поверхность (например, рассеивающий покров), а не единственная точка. Благодаря этому тени покрывают большую площадь с резким контрастом между светлыми и темными участками. Поверхностные тени позволяют до- биваться результатов, не достижимых с помощью теней других типов хотя и могут сущес твенно увеличи ть продолжительность визуализации. Тени, формируемые методом проецирования карты теней Откройте сцепу из файла \Project Files\Chl2 LrghtBasicsXShadow Start .max на прилагаемом к этой книге DVD. Эта сцепа представляет собой уго- лок простого интерьера с растением в кадке и неотделанным окопным проемом. В данной сцепе уже присутствуют два источника света: направленный источник света, проникающего в оконный проем, а также всенаправленный источник све- та, освещающий степы внутри помещения, пол и правую сторону растения. В сле- дующем упражнении вам предс тоит сделать эту сцену более привлекательной. 1. Активизируйте видовое окно CameraOl и визуализируйте сцену. Направ- ленный источник света делает правую степу совершенно блеклой и не дает никаких теней па левой степе (рис. 12.17). 2. Выделите направленный источник света и перейдите к панели Modify. Уста- новите флажок On в области Shadows из свитка Genera Parameters данного источника света (рис. 12.18). Обратите внимание на то, что по умолчанию в раскрывающемся списке из той же самой области выбран тип теней, фор- мируемых методом проецирования карты теней (Shadow Мар). Благодаря этому при расчете теней от данного источника света во внимание будут при- ниматься левая степа и окопный проем. Визуализируйте сцену из видового окна CameraOl, чтобы посмотреть, как она теперь будет выглядеть.
436 Часть V. Освещение Рис. 12.17. В уголке интерьера отсутствуют тени от какого-либо источника света Рис. 12.18 Активизация режима формирования теней методом про- ецирования карты теней в свитке General Parameters источника света Даже столь простые тени существенно изменяют внешний вид сцены (рис. 12.19). Освещение правой стены, за исключением участка, освещен- ного светом в оконном проеме, теперь согласуется с освещением левой стены, которое обеспечивается лишь всенаправленным источником света. Тени, отбрасываемые растением, получаются слишком неровными и моза- ичными (вследствие низкого разрешения), и поэтому их необходимо не- много сгладить.
Глава 12. Основы освещения 437 Рис. 12.19. Вид уголка интерьера с тенями от направленного источника света, фор- мируемыми методом проецирования карты теней 3. Если направленный источник света все еще выделен, раскройте свиток Shadow Map Parameters (Параметры карты теней) (рис. 12.20). Параметр Size определяет размеры в пикселях изображения карты теней, наклады ваемой на участок тени. Чем больше значение этого параметра, тем более четкими и детализированными получаются тени, хотя и за счет использо- вания дополнительного объема оперативной памяти. Параметр Sample Range (Диапазон выборки) определяет мягкость, или размытость, тени по ее периметру. Чем больше значение этого параметра, тем мягче края тени. Итак, установите значение 1024 параметра Size, а также значение 5 пара- метра Sample Range, а затем вновь визуализируйте сцену (рис. 12.21). | Shadow Мар агат | Bias: |~.0 CJ Size:11024 С Sample Range'JT5 С] Г” Absolute Map Bras Г" 2 Sided Shadows Рис. 12.20. Свиток Shadow Map Parameters
438 Часть V. Освещение Рис. 12.21. Вид уголка интерьера после увеличения значении параметров Size и Sam- ple Range для смягчения теней, формируемых методом проецирования карты теней Теперь тени выглядят намного более четкими, особенно в верхней части растения, где прост ираются ветки с листьями растения. 4. Направленный источник света в данной сцене воспроизводит солнечный свет. А что если свет в окопном проеме исходит от передних фар автомаши- ны или прожектора? Вернитесь к свитку General Parameters, раскройте спи- сок в области Light Туре и выберите в нем вариант Spot, чтобы заменить на- правленный источник света прожектором с теми же самыми параметрами. Вновь полученные тени простираются дальше, чем прежде, вследствие рас- хождения лучей света от прожектора (рис. 12.22). Обратите внимание на длину тени от верхней части кадки, а также па то, что участок, освещаемый светом в оконном проеме, теперь простирается за пределы изображения 5. Поменяйте прожектор на направленный источник света. 6. Ще икните правой кнопкой мыши в видовом окне и выберите из квадратно- го меню команду Unhide by Name (Показать по имени). Выберите объект CasementWindowOl (Первое створное окно) в открывшемся диалоговом окне Unhide by Name, а затем щелкните на кнопке Unhide чтобы обнару- жить на сцепе скрытое окно, связанное со стеной (рис. 12.23). Вновь визуа- лизируйте сцену.
Глава 12. Основы освещения 439 Рис. 12.22. Прожектор формирует тени, простирающиеся дальше, чем тени от на- правленного источника света Рис. 12.23. Вид уголка интерьера с появившимся окном. Теперь свет в окне отсутствует
440 Часть V. Освещение Куда же исчезли свет и тени? Как упоминалось выше, во время расчета те- ней, формируемых методом проецирования карты теней, во внимание прини- маются объекты, находящиеся на пути прохождения лучей света, поэтому лю- бая поверхность, расположенная за такими объектами, не освещается. В данном случае на пути лучей света находится окно, сквозь которое они не проникают. Ведь при определении участка тени в картах теней не учитывается прозрач- ность материалов объекта, отбрасывающего тень. В качестве выхода из данного положения можно, в частности дать 3ds max команду игнорировать стеклян- ные панели окна. Для этой цели придется отсоединить их от окна, что и будет сделано в следующем упражнении. 1. Выделите окно и примените к нему модификатор Edit Poly на вершине сте- ка модификаторов 2. Перейдите на уровень подобъектов-многоугольников. Введите значение 3 в поле параметра Select ID из свитка Polygon Properties (Свойства много- угольников), а затем щелкните на кнопке Select ID. В итоге будут выделены 12 многоугольников, образующих стеклянные панели окна (рис. 12.24). Щелкните на кнопке Settings, расположенной рядом с кнопкой Detach (Отсоединить) в свитке Edit Geometry, и присвойте новому объекту имя Glass Panels (Стеклянные панели). Рис. 12.24. Выделите две стеклянные панели, состоящие из 12 многоугольников, и отсоедините их от остальной части окна 3. Перейдите от уровня подобъектов-многоугольников на уровень объекта. Выделите направленный источник света и щелкните на кнопке Exclude в свитке General Parameters чтобы открыть диалоговое окно Exclude/lnclude (Исключение/Включение объектов) (рис. 12.25). В этом диалоговом окне указывается, какие именно объекты следует или не следует освещать дан-
Глава 12. Основы освещения 441 ным источником света и какие из них могут отбрасывать тени. Выделите объект Glass Panels в левом окне, а затем щелкните на кнопке с меткой », чтобы переместить этот объект в правое окно. Щелкните на кнопках- переключателях Exclude и Shadow Casting (Отбрасывание тени) в правом верхнем углу диалогового окна Exclude/lnclude. Таким образом, направлен- ный источник света будет освещать стеклянные панели, однако они не бу- дут отбрасывать тени. | НА ЗАМЕТКУ________________________________________________________________ Итак, стеклянные панели уже не принадлежат к створному окну. Если перейти вниз по стеку и настроить на базовом уровне объекта любые параметры, изме няющие расположение и конфигурацию окна, это уже никак не затронет стек- лянные панели. Если же предполагается анимация открытия и закрытия окна, стеклянные панели следует разделить на левую и правую и сохранить их на мес- те с помощью контроллера управления присоединением (Attachment) Рис. 12.25. Исключите в диалоговом окне Exclude/ Include стеклянные панели из расчетов при форми- ровании теней от направленного источника света 4. Визуализируйте сцену еще раз. Теперь стеклянные панели игнорируются, и свет проникает сквозь них, достигая растения и стены (рис 12.26).
442 Часть V. Освещение Рис. 12.26. Теперь, когда стеклянные панели исключены из расчетов при формиро- вании теней свет правильно падает на растение и стену Тени, формируемые методом трассировки лучей Откройте сцену из файла \Project Files\Chl2_LightBasics\Shadows Ray traced, max на прилагаемом к этой книге DVD Это сцена, с которой вы ра- ботали до отсоединения стеклянных панелей. Продолжите работу с данной сце- ной в следу ющем упражнении. 1. Выделите направленный источник света и измените для не о тип тени с Shadow Мар на Ray Traced Shadows, т.е. тени, формируемые методом трассировки лучей. Активизируйте видовое окно CameraOl и визуализи- руйте сцену. На этот раз тени от растения и окопного проема получаются очерченными более резко, чем прежде (рис. 12.27). Несмотря на отражающие свойства пола, данный уголок интерьера по- прежнему выглядит темным. Основной свет проникает в оконный проем, однако левая стена заслоняет большую его часть в результате чего тени па- дают на правую стену. Следовательно, помещение необходимо сделать не- много светлее.
Глава 12. Основы освещения 443 Рис. 12.27. Благодаря формированию теней от направленного источника света методом трассировки лучей в области теней проявляется полупрозрачность стеклянных панелей 2. Перейдите к панели Modify и откройте свиток Shadow Parameters направ- ленного источника света. Щелкните па образце света и выберите умеренно- серый цвет (RGB: 122, 122, 112) в селекторе цвета. Визуализируйте сцену (рис. 12.28). Тени и вся комната в целом становятся более светлыми. Тени формируемые .методом трассировки лучей, воспринимают цвет от полупрозрачных объектов и пропускают его через себя как через фильтр в сцену. Этот принцип распространяется как на обычные цвета, так и па изображения, накладываемые на подобные объекты. 3. Откройте редактор материалов и выберите материал Window. Щелкните па кнопке Panels в свитке Multi/Sub-Object Basic Parameters, чтобы получить доступ к подмагериалу 3 для стеклянных панелей. Щелкните на образце цвета рассеяния в свитке Blinn Basic Parameters и выберите бледно-голубой цвет (RGB: 176, 166, 251). Откройте свиток Extended Parameters и пе- ретащите цвет с позиции образца цвета рассеяния (Diffuse) на позицию об- разца цвета фильтрации (Filter), выбрав вариант Сору в открывшемся диа- логовом окне Copy (Instance) Мар (рис. 12.29). Визуализируйте сцену из ви- дового окна CameraOl и сравните полученные результат ы (рис. 12-30). СОВЕТ Для отображения информации о коэффициенте отражения и пропускания в ре- дакторе материалов следует установить флажок Reflectance and Transmittance Information во вкладке Radiosity диалогового окна Preference Settings.
444 Часть V Освещение 4. Выберите материал Window with Color (Цветное окно) в редакторе ма- териалов и назначьте его для объекта Casementwindow. Это такой же ма- териал, как и Window, однако в нем применяется карта па позиции карты цвета рассеяния. Визуализируйте сцепу. Карта появится в окнах, но ее ок- раска не переносится на стену, поскольку цвет фильтрации еще не настро- ен на восприятие данной карты. 5. Откройте свиток Maps и перетащите карту с позиции карты цвета рассея- ния на позицию карты цвета фильтрации, выбрав вариант Instance в от- крывшемся диалоговом окне Copy (Instance) Мар. Для того чтобы выделить кромки витражного стекла, сделайте темнее цвет тепи в свитке Shadow Pa- rameters. Вновь визуализируйте сцену. На рис. 12.31 показана сцена уголка интерьера, в которой цвета карты, проецируемой на стеклянные панели, отфильтровываются и попадают па степу и растение. Следует иметь в виду, что при формировании тенен во время визуализации усовершенствованным методом трассировки лучей фильтрация цвета не осуще- ствляется, хотя такие тени визуализируются быстрее, чем обычным мсгодом трассировки лучей. Shade* Ра arrtgt 1 OUeciSddcA' -------И ШееЩ Bern I Г Map! Hone F Light Aitacis Shadow Cota 1 - Almospheia Shadows- —— 1 I Г On Dpactly |ТЙ 0 ’ Соки Amount [ 1'Й 0 t JI if ♦ lnt<y>s*y/Cotot/Attefoehcn | DcecbontJ Pata~n?ieis 11 Advanced E.b?ct | r Artoc.' Smf&ees — - Contrast.|Г . J I I Soften Dflf EdgtrfTS I P Diffuse P Sperutaf [ Г Amtxcnt Onty । Picfecic< Mao | F Map: None Рис. 12.28. В результате осветления окраски теней до умеренно-серого цвета тени стали бо- лее светлыми, а отражения от пола и стен — более яркими 1 P On |Drectond y] IP Tapetod IWW ( ( Shadows------------ |'P On Г UwGfobalSe^ | MIFay 1 i<aced Shadows J И1_________________“Hl ЕиЫе
Глава 12. Основы освещения 445 Рис. 12.29. Копирование цвета рассеяния стеклянных панелей в образец цвета фильтрации в редакторе материалов
446 Часть V. Освещение Рис. 12.30. Ивет фильтрации в подматериале стеклянных панелей проникает из окна внутрь помещения Рис. 12.31. Цвета стеклянных панелей окна теперь отфильтровываются и попа- дают внутрь помещения
Глава 12. Основы освещения 447 Поверхностные тени Откройте сцену из файла \Project Files\Chl2_LightBasics\Shadows Area. max на прилагаемом к этой книге DVD. Эта сцена аналогична предыдущей, только в ней всенаправленный источник заливающего света заменен нацеленным прожектором с активизированными тенями. Этот прожектор по-прежнему назы- вается OmniOl. В следующем упражнении будут использованы поверхностные ге пи для имитации освещения стены и растения рассеянным светом, отраженным, например, от противоположных стен. Тени от источника такого света позволяют привязать кадку с растением к полу и тем самым упрочить ее положение в сцене. 1 Визуализируйте сцену, чтобы получить ее исходное изображение для сравне- ния, прежде чем изменять параметры источника света. При освещении про- жектором тени от растения и кадки падают на стены и пол. Щелкните на кноп- ке Clone Rendered Frame в окне Rendered Frame Window чтобы создать копию для сравнения с последующими визуализированными изображениями сцены. 2. Выделите прожектор (объект OmniOl) и измените для него тип iеней с Shadow Мар па Area Shadows, т.е. поверхностные тени. Визуализируйте сцену. Нетруд- но заметить, что продолжительность визуализации данной сцепы увеличилась, хотя тени от растения получись более рассеянными, но в то же время слишком мозаичными, а следовательно, малопривлекательными. На рис. 12.32 и 12.33 сцепа показана до и после применения поверхностных теней. Рис. 12.32. Вид уголка интерьера до применения поверхностных теней
448 Часть V. Освещение 3. Перейдите к панели Modify, раскройте список в области Basic Options (Основные параметры) из свитка Area Shadows и убедитесь в том, что в нем выбран вариант Rectangle Light (Прямоугольный источник света). Благодаря этому формируются тени от источника в форме плоскос ти, а не точки. Увеличьте до 5 футов значения параметров Length и Width в области Area Light Dimensions (Размеры поверхностного источника света). 4. Размытый участок по периметру тени, называемый полутенью, наглядно де- монстрирует универсальность поверхностных теней. Элементы управления поверхностными тенями сосредоточены в области Antialiasing Options (Пара- метры сглаживания) из свитка Area Shadows. В частности, установите значе- ние 10 параметра Shadow Integrity (Целосгность тени), чтобы увеличить число лучей, распространяющихся от поверхности, отбрасывающей тень, на поверх ность, получающую тень. При увеличении до 15 значения параметра Shadow Quality (Качество тени) увеличивается число лучен, проникающих в область по- лутени. Благодаря этому’ края тени становятся более четко выраженными При установке значения 4 параметра Sample Spread (Разброс выборки) края тени немного смягчаются, а при установке значения 0,4 параметра Jitter Amount (Величина дрожания) исходное упорядоченное местоположение лучей стано- вится более произвольным, а следовательно, возникающие артефакты превра- щаются в менее заме гные помехи в области теней (рис. 12.34). Рис. 12.33. Вид уголка интерьера после применения поверхностных теней. Во врезке показана мозаичность таких теней
Глава 12. Основы освещения 449 Рис. 12.34. Откорректированные поверхностные тени Если визуализировать сцен}' еще раз, то можно заметить, что продолжитель- ность визуализации возрастает еще больше. Это своего рода компромисс между качеством поверхностных теней и эффективностью производства. Сравните данное визуализированное изображение сцены с одним из предыдущих. Освещение персонажа Одна из типичных задач для художника состоит в том, чтобы представить нечто в “выгодном свете”. Чем бы это нечто пи было, будь то летящий супергерой, автомо- биль, перескакивающий через поднятый разводной мост, определенное ощущение (надвигающаяся гибель или осознание безопасности) или же просто продукция, ко- торую клиенту нужно ирода 1ь, освещение должно сосредоточивать внимание зрите- лей на нужном предмете. Под термином “персонаж” подразумевается объект, кото- рый вызывает наибольший интерес в сцене, будь то человек, тролль, автомашина или пляшущая пицца. Вокруг него и организуется освещение всей сцены. Освещение персонажа направленным и заливающим светом Откройте сцену из файла \Project Files\Chl2_LightBasics\Claymore Start .max на прилагаемом к этой книге DVD. В этой сцене по-прежнему присут- ствует все тот же грустный клоун Клеймор, только его волосы на лице скрыты,
450 Часть V. Освещение чтобы ускорить реакцию 3ds max на действия пользователя в видовых окнах В настоящий момент в этой сцене присутствует лишь стандартное в 3ds max ос- вещение, однако оно исчезает сразу же после ввода любых других источников света, что и будет сделано в следующем упражнении. 1. Откройте диалоговое окно Render Scene. Установите флажок Render Hid- den Geometry (Визуализировать скрытую геометрическую форму) в свитке Common Parameters (рис. 12.35). Благодаря этому' волосы па лице клоуна Клеймора визуализируются без отображения в видовых окнах. Активизи- руйте видовое окно CameraOl и визуализируйте сцену (рис. 12.36). СОВЕТ Если объект нужно видеть в видовом окне, но не в визуализированном изобра- жении сцены, выделите этот объект, щелкните правой кнопкой мыши в видовом окне и выберите команду Properties из квадратного меню. Затем сбросьте фла жок Renderable в области Rendering Control (Управление визуализацией) из вкладки General диалогового окна Object Properties. Итак, стандартное освещение сделало свое дело, чтобы клоуна не было видно па фоне стены но в данную сцену необходимо вдохнуть больше жиз- ни, правильно расположив и настроив источники света и тени. Рис. 12.35. Благодаря установке флажка Render Hidden Geometry в свитке Common Parameters средство визуализации при- нимает во внимание и скрытые в настоя- щий момент объекты
Глава 12. Основы освещения 451 Рис. 12.36. Персонаж, визуализированным только с использованием стандартного в 3ds max освещения, вообще не дающего теней 2. Перейдите к панели Create, щелкните на кнопке Lights, затем выберите из раскрывающегося списка категорию Standard и щелкните па кнопке Target Spot (Нацеленный прожектор). Перейдите к окну вида сверху и щелкните в точке с координатами (-200,-200,0), ориентируясь по полям в области Transform Type-In (Ввод координат преобразования), расположенным в ниж- ней части интерфейса 3ds max, чтобы поместить в этой точке прожектор. За- тем перетащите курсор и отпустите кнопку мыши, как только курсор окажет- ся за левым ухом Клеймора, чтобы создать цель для прожектора. Таким обра- зом, данный источник света располагается под углом около 45° к персонажу. Переименуйте этот источник света на Spot Key (Прожекторный источник направленного света). 3. Поднимите прожектор, но не его цель, выше в окне вида спереди или сверху, чтобы он излучал свет вниз под утлом около 15°. Это будет источник направ- ленного света в данной сцене. Установите, если требуется, значение 1 пара- метра Multiplier в свитке Intensity/Color/Attenuation (Интенсивность/ Окраска/ Ослабление) данного источника света, а затем визуализируйте сцену из видово- го окна CameraOl. Освещение сцены еще далеко от совершенства. В частности, опо пока еще не дает тени, левая сторона лица Клеймора оказывается слишком темпон, а в сцене могут быль видны контуры пятна прожектора (рис. 12.37)
452 Часть V. Освещение Рис. 12.37. Одного лишь источника направленного света явно недостаточно для улучшения освещения сиены 4. Прежде всего необходимо устранить контуры пятна прожектора. Если прожектор все еще выделен, откройте свиток Spotlight Parameters (I lapa- метры прожектора) и установите флажок Overshoot (Выход за пределы). В этом режиме прожектор или направленный источник света действует частично как всенаправленный источник света, не дающий тени. В то же время тени от пего получаются в пределах конуса спада света (Falloff/Field). 5. Установите флажок On в области Shadows из свитка General Parameters и выберите тип теней Shadow Мар. Установите значение 0,9 параметра Multiplier в свитке Intensity/Color/Attenuation. Щелкните на образце цвета и выберите бледно-желтый цвет (RGB: -255, 254, 241) окраски данного источника света. Чисто-белый цвет в большинстве случаев выглядит нереа- листично, а незначительная окраска придает сцепе определенное ощуще- ние. Вновь визуализируйте сцену (рис. 12.38).
Глава 12. Основы освещения 453 Рис. 12.38. Тени от источника направленного света позволяют расположить клоуна Клеймора ближе к задней стене Яркое пятно и спад света Тени немного улучшили внешний вид сцены, особенно те, что залегают на во- ротнике, и те, что падают от воротника на шею клоуна. Тем не менее левая сто- рона клоуна по-прежнему выглядит слишком темной, а большая часть его плеча просто не видна, хотя тени на голове от волос и между волос весьма привлека- тельны. Следовательно, необходимо продолжить смягчение теней и настройку самого источника света, изменяя значения параметров Hotspot/Beam (Яркое пятно/ Луч света) и Falloff/Field (Спад/Поле действия) из свитка Spotlight Parameters. Параме гр Hotspot/Beam управляет внутренним конусом прожектора и определяет место сосредоточения максимальной интенсивности света, т.е. в пределах яркого пятна. Параметр Falloff/Field определяет радиус внешнего конуса и ограничивает сфе- ру влияния прожектора. Все, что находится вне радиуса спада света, не освещается прожектором. Объекты, оказывающиеся между7 ярким пятном и конусом спада света, освещаются лишь до некоторой степени, которая определяется в процентах в зави симосги от их близости к яркому' пятну или конусу спада света. А степень несовпаде- ния яркого пятна и конуса спада света определяет размер полутени от прожектора Параметры Hotspot/Beam и Falloff/Field позволяют настраивать радиусы, опре- деляющие сферу влияния прожекторного источника света, а параметры из облас- ти Far Attenuation (Дальнее ослабление света) определяют влияние лучей света по мере их удаления от источника света. В отсутствие дальнего ослабления все ис- точники распространяют свет на бесконечном расстоянии.
454 Часть V. Освещение | НА ЗАМЕТКУ____________________________________________________________ Тени, формируемые методом трассировки лучей, изображают конкретную фор- му освещаемого объекта, фактически игнорируя любое применяемое сглажива ние Попробуйте выбрать этот тип теней для прожектора и визуализировать сцену. При этом каждый элемент контура тени от головы Клеймора на стене бу- дет изображен прямой линией и каждый волосок, отбрасывающий тень, будет четко выделен. Прежде чем продолжить работу над данной сценой, обязатель- но восстановите исходный тип теней. В следующем упражнении будут продемонстрированы описанные выше свой- ства прожектора. 1. Увеличьте до 85 значение параметра Falloff/Field в свитке Spotlight Parameters. Параметр Hotspot/Beam остается недоступным, поскольку акти- вен режим Overshoot. Установите сначала флажок Use (Использовать) в об- ласти Far Attenuation из свитка Intensity/Color/Attenuat on, а затем значение 200 параметра Start (Начало ослабления) и значение 650 параметра End (Конец ослабления). В итоге интенсивность света начнет падать на расстоя- нии 200 единиц от источника света, а на расстоянии 650 единиц свет исчез- нет полностью (рис. 12.39). Рис. 12.39. При увеличении спада света расширяется размытый участок вокруг тени, а даль нее ослабление изменяет интенсивность света по всей сцене
Глава 12. Основы освещения 455 2. Теперь займитесь левой стороной лица Клсймора. Выделите прожектор в окне вида сверху, нажмите клавишу <Shift> и перетащите копию данного источника света в точку' с координатами (200, -200), выбрав вариант Сору в открывшемся диалоговом окне Clone Options. Присвойте вновь скопиро- ванному' источнику света имя Spot Fill (Прожекторный источник зали вающего света). Это будет источник заливающего света в данной сцене. Переместите данный источник света вниз в окне вида спереди или слева, расположив его ниже исходной координатной сетки приблизительно на уровне Z= -40. Уменьшите до 0,3 значение параметра Multiplier, а затем выберите умеренно-серый цвет окраски тени (RGB: 86, 86, 86) в свитке Shadow Parameters. Опустив вниз источник заливающего света, можно заполнить темные уча- стки, образующиеся при освещении источником направленного света. Бла- годаря уменьшению значения параметра Multiplier темные участки не по- блекнут при заполнении светом данного источника, а более светлая окраска теней будет привлекать к ним меньше внимания. 3. Сбросьте флажок Overshoot в свитке Spotlight Parameters. Для источника за- ливающего света этот режим не требуется. Затем сбросьте флажок Specular в свитке Advanced Effects (Дополнительные эффекты), чтобы исключить любые крупные зеркальные подсветки, образующиеся от данного источни- ка света на задней стене (рис. 12.40). FaibWhdd-IHS j S Cede Rectangle rltfkCone *-— — - Г Show Core Г* Ovashoot !✓ Diffuse ГТ Speed» Г AwbentOr^ Rcfcdoi Нац Г Map More Neat Attenuation । Г* Use S'eti | IГ* Show End. j - Decay------ Гуре | None Рис. 12 40. Клеймор, освещенный источниками направленного и заливающего света , FaAlenu»on • F? Use Stat|айД Cl j Г* Show End | ъ5б 0 Cj __Spotjght Paarrelert
456 Часть V. Освещение Итак, клоун стоит у окрашенной в светлый цвет стены, однако на его пле- чах не заметно никаких признаков света, отраженною от освещаемой сте- ны. Для устранения этого недостатка далее будет введен источник задней подсветки или так называемой ореолыюй подсветки. Такой источник све- та зачастую используется для отделения персонажа от фона. 4. Создайте в окне вида сверху всенаправленный источник света расположив его прямо сзади персонажа. Переместите этот источник света в окне вида спереди таким образом, чтобы расположить его посредине между макушкой головы клоуна и верхним краем степы (рис 12.41). Рис. 12 41. Расположение всенаправленного источника света 5. Раскройте свиток Intensity/Color/Attenuation всенаправленного источника света. Откройте редактор материалов, выберите материал Background (Фон), а затем раскройте его свиток Blinn Basic Parameters. Перетащите образец цвет а рассеяния из редактора материалов па позицию образца цве- та окраски данного источника света, выбрав вариант Сору в открывшемся диалоговом окне Copy Or Swap Colors (Копирование или смена цветов), чтобы согласовать окраску всенаправленного источника света с цветом рассеяния стены. С другой стороны, вы можете сделат ь то же самое, вос- пользовавшись новой для 3ds max 7 возможностью копирования и вставки образцов цвета по командам из контекстного меню. Для этого поместите курсор па образце цвета рассеяния щелкните правой кнопкой мыши и вы- берите команду Сору из контекстного меню, чтобы скопировать выбран- ный цвет. Затем поместите курсор на образце цвета окраски всенаправлен- ного источника света, щелкните правой кнопкой мыши и выберите коман- ду Paste из контекстного меню, чтобы вставить выбранный цве т. Уменьшите до 0,2 значение параметра Multiplier, чтобы ослабить свет дан- ного источника.
Глава 12. Основы освещения 457 6. Убедитесь в том, что для всенаправленного источника света не активизи- рован режим Shadow Casting. Если бы этот источник света давал тени, объ- ект ВохОЗ пришлось бы исключить из расчетов при формировании теней от данного источника света. Вновь визуализируйте данную сцен}’, теперь уже в последний раз (рис. 12.42). Рис. 12.42. Задняя подсветка освещает плечи Клеймора сзади и осветляет тени позади его воротника Таким образом, персонаж выделяется па сцене б шгодаря правильному освеще- нию. Для сравнения посмотрите сцену' со всеми установленными па своих местах источниками света из файла \Project Files\Chl2_LightBasics\Claymore Finished.max па прилагаемом к этой книге DVD. Эту сцеп}’ можно усовершенст- вовать, удалив заднюю стен}' и заменив ее шатром цирка или уборной клоуна. Не- пременно настройте ослабление источников света и выберите в диалоговом окне Exclude/lnclude объекты для освещения конкретными источниками света.
458 Часть V Освещение Резюме Освещение в компьютерной графике позволяет художнику сосредоточить ос- новное внимание на ключевых элементах сцены или, наоборот, отвлечь внима- ние от них. Изменив местоположение, окраску и интенсивность источников све- та, можно создать соответствующее настроение или вызвать конкретные эмоции. Тени помогают связать объекты вместе, а зритель может понять характер осве- щения н его происхождение. Для организации качественного освещения требу- ется немалый практический опыт. Однако время, затраченное па освещение, воздастся сторицей, а в сочетании с грамотным моделированием и текстурирова- нием освещение вдохнет настоящую жизнь в ваши сцепы. В следующей главе методы освещения в компьютерной графике будут рас- смотрены применительно к кино, видео и играм.
Глава 13 Освещение для кино, видео и игр Джон Макфарланд Освещение в проекте, предназначенном для средств вещания или даже для пе- чати, существенно отличается от освещения в других проектах. Если проект предназначен для вещания, то при организации освещения приходится учиты- вать тот факт, что модель, созданная средствами компьютерной графики, будет скомпонована с рирпроекционным фоном. Это дает возможность (естественно, в пределах сроков выполнения проекта) настраивать отдельные элементы сцепы, например тени или зеркальные подсветки, но в ю же время требует тщательного согласования освещения с настоящей сценой. Видеоигры, предназначенные для консолей, ПК и оперативного режима, от- носятся к одной из наиболее бурно развивающихся отраслей индустрии развле- чений. В связи в появлением новых видов игр и применяемых в них технологий возникла острая потребность в квалифицированных художниках, особенно по свету' и технической постановке, хорошо разбирающихся в особенностях произ- водства игр. При освещении игр необходимо не только осветить то, что выбира- ет разработчик игры, но и обеспечить быструю обработку сцены в игровом меха- низме. А для этого нередко требуется переносить действие освещения непосред- ственного па объект (этот процесс называется сведением) — даже в отсутствие са- мих источников света. В этой главе будут рассмотрены следующие вопросы организации освещения для кино, видео и игр. • Применение модуля Light Tracer. • Визуализация элементов освещения. • Источники направленного, заливающего и специального света. • Модификатор VertexPaint. • Сведение освещения.
460 Часть V. Освещение Сочетание компьютерной графики и реальности В этом разделе будет показано, каким образом архитектурная модель визуализиру- ется па рирпроекционном фоне. Цель, которая при этом преследуется, — предоста- вить компоновщику элементы, необходимые для объединения модели с уже имею- щимся изображением, чтобы в итоге произвести убедительную продукцию. Модель будет визуализирована на фоне стат ического изображения, однако эти же принципы применимы и к видеофону. Некоторые завершающие этапы процесса компоновки, включая маскирование и цветовую коррекцию, выходя т за рамки этой главы, тем не менее они рассматриваются в последней части этой книги, посвященной визуализа- ции и компоновке. Для этого можно также ознакомиться с функциями приложения combustion компании discreet пли других программ компоновки. Подготовка и изучение исходного материала Для визуализации модели или целой сцены, построенной средствами компьютер- ной графики, на фоне фотографии конкретного места действия необходимо выяс- нить, где и когда это изображение было получено В частности, в какое время и в ка- кой день был сделан снимок? Какие облака были в тот момент па небе? Было ли в сце- не организовано дополнительное освещение? Получив как можно больше исходной информации, можно рационализировать процесс принятия решения относительно организации освещения компонуемых элементов компьютерной графики Правильное представление о назначении и контексте окончательного изображе- ния способствует принятию верных решений относительно освещения. Так, в архи- тектурной сцепе необходимо выяснить, где именно будет возвышаться сверкающее высотное здание: среди старых, изношенных зданий пли среди таких же современ- ных сооружений и как его вписать в окружение? Должны ли теин от объектов 1ьчй персонажей па рирпроекционном фоне падать на компонуемые модели? Для этой це- ли, возможно, придется создать подстановочные объекты с материалами типа Matte/ShadOW Кроме того, нужно знать, будет ли в завершенной сцене присутство- вать то же самое небо или окружение переднего плана? Это обстоятельство может оказать влияние на отражения от объектов, а также на их окрашивание цветом отра- жающихся в них объектов. Таким образом, прежде чем приступать к работе, необхо- димо получить четкую и ясную установку от руководителя проекта художника- постановщика или клиента, если это индивидуальный или субподрядный проект. Рассмотрим две типичные сцены, в которых модели, созданные средствами ком- пьютерной графики, компонуются с фото! рафиями. На приведенных ниже рисунках исходная фотография находится слева, а скомпонованное изображение — справа. В первом случае владелец стремился расширить витрину магазина и утвердить ее новый проект. В данной сцене требовалось воссоздать в 3ds max вывеску, круп- ный навес и левую часть степы (рис. 13 1). А поскольку это наружная сцена, то ос- новное освещение в ней исходит от солнца па небе. И лишь небольшое количест- во общего света требуется обеспечить с помощью источника завивающего света. Размеры и форма теней, отбрасываемых буквами вывески, ясно указывают па ме- стоположение верхнего источника света (в данном случае солнца).
Глава 13. Освещение для кино, видео и игр 461 Рис. 13.1. Тени от букв вывески позволяют определить местоположение солнца на небе Во втором случае владельцу здания требовалось установить банкомат внутри этого здания, причем в весьма уединенном месте. Прежде чем тратить средства па установку и обслуживание банкомата и его вентиляционной системы, управ- ляющий домом хотел убедиться в том, что клиенты банка будут чувствовать себя в безопасности, пользуясь банкоматом, и поэтому он попросил сформировать изображение, в котором имитируется освещение данного помещения (рис. 13.2). Главным источником освещения в этой внутренней сцене служит отраженный свет, проникающий в сцену сверху и постепенно затухающий при прохождении слева направо. Свет, отраженный от пола, также постепенно затухает снизу вверх. В данном изображении освещение модели банкомата требовалось согласо- вать с его фактическим освещением в окружающей обстановке. Для этой цели ис- пользовался верхний источник направленного света, нижний источник зали- вающего света (оба источника направленного типа), а слева — всенаправленный источник в качестве второго источника заливающего света. Все эти источники света окрашены в соответствии с окраской стен и пола, а их интенсивность па- I гроена на ослабление в зависимости от расстояния. Рис. 13.2. Слабое освещение внутри помещения воссоздается с помощью одного источника направленного света и двух источников заливающего света
462 Часть V. Освещение | НА ЗАМЕТКУ__________________________________________________________ Приступая к работе над конкретным проектом, следует непременно учитывать сложность моделей и материалов, применяемых в объектах, находящихся на сце- не. Так, модели автомашин должны быть достаточно сложными, если их предпо- лагается показывать крупным планом Но если они будут находиться на заднем плане, то их можно сделать менее сложными. Сложные модели с большим числом многоугольников требуют не только дополнительных ресурсов оперативной памя- ти, но и существенно усложняют расчеты освещения во время визуализации без заметного повышения качества изображения сцены. В следующем упражнении ряд инструментов и методов, рассмотренных в пре- дыдущей главе, будет использоваться наряду с другими инструментами для осве- щения па рирпроекционном фоне модели построенной средствами компьютер- ной графики. А в последующем упражнении будет показано, каким образом сцена визуализируется отдельными проходами для разложения на элементы, объеди- няемые во время компоновки. Освещение сцены Изображение, которое будет использоваться в качестве рирпроскционного фона для рассматриваемой ниже сцепы, представляет собой фотографию здания, снятого с места автостоянки через улицу (рис. 13.3). (Для изучения этой фотогра- фии откройте файл изображения \Project Files\Chl3_LightingForFilm- VideoGames\DCP_0220 . jpg па прилагаемом к этой книге DVD.) На данной фото- графии небольшие здания будут заменены кооперативным жилым домом. Тень от автомашины и фонарного столба на переднем плане дает представление о местопо- ложении солнца, а по отсутствующим на деревьях листьям можно определить время года, когда была сделана фотография Сначала необходимо расставить по местам основные источники освещения сцены. Рис. 13.3. Рирпроекционным фон, на котором будет визуали- зирована модель здания
Глава 13. Освещение для кино, видео и игр 463 1. Откройте сцену из файла Project Files\Chl3_LightingForFilin- VideoGames\Building_Lighting Start .max на прилагаемом к этой кни- ге DVD. Э' а сцепа состоит из здания и рирпроекционного фона, используе- мого в качестве фонового изображения в окне вида из камеры, а также в ка- честве карты окружения (рис. 13.4). Рирпроекционный фон представляет со- бой простх ю фотографию, сделанную цифровой фотокамерой. Рис. 13.4. Первоначальный вид сцены из камеры в видовом окне Cam Corner Данная сцена специально подготовлена для того, чтобы с ней было удобно работать. В пей были учтены многие мелкие детали, которые требуются для организации освещения. В частности, камера установлена на сцене непод- вижно, и созданы только элементы передней, боковой и угловой сторон фасада здания. Трехмерные объекты уже расположены па сцене в тех же местах, что и здание слева и впереди, а также автомашина справа от центра изображения. Для этих объектов назначен материал Matte/Shadow, чтобы замаскировать ими здание и автомашину. Не обращайте особого внимания на другие объекты, закрываемые моделью здания, в том числе фонарные столбы, провода, деревья и пр., поскольку их можно замаскировать во вре- мя компоновки. Положение модели согласовано с положением камеры, а сама камера и вспомогательные объекты скрыты в результате установки флажков Cameras и Helpers в свитке Hide by Category (Скрыть по катего- рии) па панели Display (рис. 13.5). | НА ЗАМЕТКУ__________________________________________________________ Источник света IES Sky действует правильно только в том случае, если он на- правлен вниз по оси Z мировых координат. Если в качестве средства визуализа- ции используется модуль mental ray, в таком случае необходимо активизировать режим Final Gather.
464 Часть V. Освещение 2. Перейдите к панели Modify и установите флажок On в свитке параметров ис- точника света IES Sky, а затем щелкните на кнопке-переключателе Partly Cloudy (Частично в облаках) в области Coverage (Облачный покров) (рис. 13.6). Ос- тавьте пока что сброшенным флажок Cast Shadows (Отбрасывать тени), акти- визируйте окно вида из камеры и визуализируйте сцену. Рис. 13.5. Находящиеся на сцене'объекты могут быть скрыты по категориям на панели Display Рис. 13.6. Параметры ис- точника света IES Sky Модель здания выглядит совершенно выцветшей (рис. 13.7). Для того что- бы устранить этот недостаток, будет активизирован режим управления экс- позицией. Рис. 13.7. В отсутствие управления экспозицией модель здания выглядит совершенно выцветшей
Глава 13. Освещение для кино, видео и игр 465 3. Выберите из главного меню команд}' Renderings Environment. Затем выберите вариант Automatic Exposure Control из раскрывающегося списка в свитке Exposure Control диалогового окна Еп1 "onment and Effects. Щелкните на кнопке Render Preview (Визуализировать для предварительного просмотра) в этом же свитке, чтобы посмотреть миниатюрное изображение визуализи- рованной сцепы с управлением экспозицией. 4. В результате визуализации сцены модель здания по-прежнему выглядит слишком яркой. Измените на 42 значение параметра Brightness (Яркость) в свитке Automatic Exposure Control Parameters и установите флажок De- saturate Low Levels (Уменьшить насыщенность цветов при малых уровнях освещения), чтобы самые темные участки изображения не стали совер- шенно черными (рис. 13.8). Вновь визуализируйте сцену (рис. 13.9). Теперь сцена выглядит намного лучше. Модель здания уже не кажется блек- лой, а цвета в сцене соответствуют гем, что присутствуют на фотографии. Тем не менее некоторые участки сцены требуют улучшения, в частности темные участки под навесами и отсутствующие тени (от единс!венного источника света, находя- щегося вверху). Для устранения этих недостатков и будет использован доступный в 3ds max модуль Light Tracer. Рис. 13.8. Активизация и настройка па- раметров управления экспозицией
466 Часть V. Освещение Рис. 13.9. При активизированном управлении экспозицией сцена выглядит намного более привлекательной Применение модуля Light Tracer Источник света IES Sky действует па сцене лучше всего в сочетании с одним из подключаемых модулей усовершенствованного освещения. Для этой цели можно, например, воспользоваться методом излучательности. В соответствии с этим мето- дом предпринимается попытка воссоздать освещение с физической точностью пу- тем трассировки каждого луча света, отражающегося в сцене и постепенно теряю- щего свою силу при каждом последующем отражении. Подобным образом можно очень точно сформировать тени и окрашивание объектов, что весьма полезно для внутренних сцен. Однако быстродействие и точность метода излучательности за- висит от сложности геометрической формы в сцене: чем она сложнее, чем больше времени требуется для получения решения но методу излучательности. Для наружных сцен в большей степени подходит подключаемый модуль Light Tracer, который формирует решение для глобального освечцения и окрашивания объектов быстрее, хотя и менее точно, используя ограниченное число отражений определенного количества лучей света в сцепе. 'I акой метод лучше всего подходит для ярко освещенных наружных сцен, в которых требуются менее резкие тени. В следующем упражнении в сцеп)' будет введен модуль Light Tracer. 1. Продолжите работу с уже имеющейся сценой или же загрузите ее из фай- ла Project Files\Chl3_LightingForFilmVideoGames\Building_ Light ing Light Tracer. max на прилагаемом к этой книге DVD. 2- Откройте диалоговое окно Render Scene и щелкните на вкладке Advanced Lighting (Усовершенствованное освещение). Выберите модуль Light Тчассг из раскрывающегося списка, чтобы отобразит ь свиток его параметров. Ос- тавьте без изменения параметры настройки данного модуля и визуализи- руйте сцену (рис. 13.10). Для этого может потребоваться некоторое время в зависимости от возможностей системы, используемой для визуализации.
Глава 13. Освещение для кино, видео и игр 467 Рис. 13.10. Благодаря модулю Light Tracer уда- ется выделить многие характерные особенно- сти модели здания СОВЕТ При визуализации в стандартное окно Rendered Frame Window или в файл работа со сценой в 3ds max временно приостанавливается а иногда и надолго. В связи с этим рекомендуется изучить возможности модуля Backburner, входящего в состав 3ds max. Этот модуль позволяет выполнять визуализацию в фоновом режиме ра- боты компьютера или же использовать для этой цели другие системы, подключен- ные к сети, специально выделенной для организации комплекса визуализации. Теперь в сцене заметны существенные улучшения. Балконы правдоподобно выступают из фасада здания, а его кирпичная кладка стала светлее. Однако темные участки и отсутствующие тени по-прежнему требуют к себе внимания. 3. Прежде всего необходимо немного ускорить визуализацию, хотя и за счет не- которого снижения качества, которое, впрочем, можно восстановить при окончательной визуализации. Установите значение 125 параметра Rays/ Sample (Число лучей па выборку), оставив без изменения значение 0,5 па- раметра Filter Size (Размер фильт ра) в свит ке Parameters из вкладки Advanced Lighting диалогового окна Render Scene (рис. 13.11). Параметр Rays/Sample определяет количество лучей света, которое требу- ется для освещения каждого пикселя в изображении сцены. Чем меньше значение этого параметра, гем более пятнистым получается изображение, хотя оно и визуализируется быстрее. Л параметр Filter S ze определяет сте- пень сглаживания помех, возникающих при попадании лучей света на по- верхность. Чем меньше значение этого параметра, тем более зернистым получается изображение, хотя оно и визуализируется быстрее. 4. Участки под навесами оказываются темными, поскольку па их поверхности не попадает отраженный свет. Увеличьте до 1 значение параметра Bounces (Число отражений). (При значении 0 этого параметра эффект отражения, по существу, отсутствует.) 1 еперь каждый луч света будет отражаться от од- ной поверхности и освещать другую. Щелкните на кнопке Clone Rendered Frame в окне Rendered Frame Window, чтобы иметь какой-то образец для сравнения, а затем визуализируйте сцепу.
468 Часть V. Освещение Render Scene: Default Scanline Renderer Common j Renderer Render Elements RayUacer Advanced Lightng Select Advanced Lighfog_________ | Lrgbt Tracer F7 Active - Parameters, r- General Sellings —---— *~" GlobalMuRipiet [Тб Zj Object MdL flO* C 17 Sky Lights p ;J CotaBleetf Г 2 R ay s/S ample |125 Cotoc Ffcec FiterSize: [05 C] Extra Ambient НИШИ Ray Bias- [6.03 Cj Bounces. Cone Angle: [~~ Cj I* Vdumes; [ rp" Adaptive Undersamping Initial Sample Spacng. Subdivision Contrast. Subdivide Down To: Г* Show Samples 116x16 3 [50 1 [Гл S <s Production Preset | ----4 Г ActiveShade Viewport-1Cam Corner T~| б| lender Рис. 13.11. Поправленные параметры мо- дуля Light Tracer Изображение сцепы выглядит довольно пятнистым, испачканным, особен но на левой стороне модели здания (рис. 13.12). Отражение света улучшило вид здания под навесами, однако данный эффект мог бы быть и лучше. Для усовершенствования сцены ниже будет увеличена составляющая общего света, формируемая модулем Light Tracer. Рис. 13.12. В результате правки параметров мо- дуля Light Tracer визуализированное изображе- ние сцены получается пятнистым, однако дейст- вие отраженного света совершенно очевидно
Глава 13. Освещение для кино, видео и игр 469 5. Щелкните на образце дополнительного общего цвета (Extra Ambient) в свитке Parameters из вкладки Advanced Lighting диалогового окна Render Scene. Вы- берите в открывшемся окне селектора цвета значения RGB (15, 15, 15), чтобы сделать немного светлее темные участки, не обесцвечивая всю сцен}'. 6. Для осветления сцены и окончательной ее визуализации установите значе- ние 2 параметра Bounces, значение 250 параметра Rays/Sample, а также значение 10 параметра Filter Size. Кроме того, увеличьте до 1,25 значение параметра Global Multiplier (Глобальный множитель). Ьлагодаря этом}' должно получиться качественное, резкое изображение. Сбросьте флажок Adaptive Undersampling (Адаптивная субдискретизация), поскольку распре- деление света должно равномерно охватывать всю модель здания. Далее увеличьте до 55 значение параметра Brightness в свитке Automatic Exposure Control диалогового окна Environment and Effects. Убедитесь в том, что от- крыто видовое окно Cam Corner (Вид из камеры под углом), а затем визуа- лизируйте сцен}' (рис. 13.13). Рис. 13.13. Благодаря увеличению значений параметров Bounces, Rays/Sample, Filter Size модуля Light Tracer, а также параметра Bright- ness в диалоговом окне Environment and Effects удается повысить качество визуализированно- го изображения сцены | СОВЕТ_______________________________________________________________ Если применение модуля Light Tracer не дает желаемых результатов, установите флажок Show Samples (Показывать выборки) в области Adaptive Undersampling из вкладки Advanced Lighting диалогового окна Render Scene. В сочетании с ре- жимом Adaptive Undersampling этот режим обеспечивает визуализацию красных точек в тех местах, где производятся выборки Красными точками обозначены места сосредоточения света. 7. Наконец, в сцену необходимо ввести зеркальные подсветки (рис. 13.14). Источник света IES Sky обычно дает качественные тени, но не зеркальные подсветки. Для создания таких подсветок, но без дополнительного рассея- ния света, в сцену следует ввести направленный источник света. Для этой
470 Часть V. Освещение цели создайте в окне вида сверху направленный источник света располо- жив его приблизительно параллельно источник}' света IES Sky. Поднимите этот источник света вверх в окне вида спереди па тот же уровень, что и ис- точник света IES Sky. Рис. 13.14. Расположение направленного источника света в сцене для соз- дания зеркальных подсветок 8. Перейдите к панели Modify, настройте параметры Hotspot/Beam и Falloff/Field в свитке Directional Parameters (Параметры направленного источника света), чтобы светом от направленного источника была охвачена вся модель здания. Если требуется, перейдите в окно с видом прямо вниз по отрицательной оси координат Z данного источника света. Это дает ясное представление о его области действия. 9. Сбросьте флажок Diffuse в свитке Advanced Effects (рис. 13.15), поскольку направленный источник света должен обеспечивать лишь составляющие зеркального отражения света в данной сцене. ______Advanced Effects Affect Surfaces:------ rr Diffuse M Specxiai Ambient Only - Projector Map- Г Map: None Рис. 13.15. После сброса флажка Dif- fuse в направленном источнике исклю- чается составляющая рассеяния света
Глава 13. Освещение для кино, видео и игр 471 10. Активизируйте окно вида из камеры и вновь визуализируйте сцену' (рис. 13.16). Рис. 13.16. Вид кооперативного жилого дома после ввода теней и зеркальных подсветок В приведенных выше упражнениях было показано, что для освещения сцены, по- строенной средствами компью терной графики, на рирпроекциоппом фоне требуется предусмотрительность и внимание ко многим аспектам, которые настоящее освеще- ние привносит в окружение подобной сцепы. В следующем разделе будет рассмотре- но доступное в 3ds max свойство Render Elements (Визуализация по элементам), по- зволяющее извлекать элементы освещения из визуализированной сцепы. Визуализация освещения по элементам Как упоминалось ранее, для компоновки необходимо предоставить столько визуализированных изображений, сколько требуется для полного завершения проекта. Зачастую это означает, что нужно сформировать несколько изображе- ний, каждое из которых представляет собой отдельные компоненты визуализи- рованной сцены, а не единое изображение правильно освещенной сцены. Ис- пользуя ряд таких изображений, компоновщик может смонтировать или же уси- лить отдельные компоненты сцепы в соответствии с требованиями художника- постановщика, не прибегая к повторной визуализации всего проекта. Например, имея в своем распоряжении изображение отдельно визуализированных теней, компоновщик может сделать эти топи светлее, темнее или же изменить их окра- ску', не затрагивая остальные элементы сцепы. Каждый элемент в 3ds max 7 может быть визуализирован отдельным проходом для формирования уникальных изображений или анимационных файлов. Для ви- зуализации доступны следующие элементы. • Diffuse (Рассеяние). Визуализирует различные свойства рассеяния и ближе все- го соответствует тому', что можно наблюдать в окне Rendered Frame W indow • Specular (Зеркальное отражение). Визуализирует только зеркальные под- светки, присутствующие в сцепе. Такие подсветки отображаются белым цветом на черном фоне.
472 Часть V. Освещение • Blend (Смешение). Это самый приспосабливаемый элемент. С его помощью можно выбрать отдельные элементы для объединения в единое изображе- ние. Так, если предполагается монтаж только отражений, но не других компонентов сцены, то, выбрав элемент Blend, можно визуализировать за один проход все остальные элементы, а затем отдельно визуализировать отражения. • Reflection (Отражение) и Refraction (Преломление). Отражения и преломле- ния в сцене могут быть визуализированы в виде отдельных ее компонентов • Shadow (Тень). Это один из наиболее часто отделяемых от сцены элемен- тов. Монтируя элементы теней из отдельного изображения, компоновщик может изменить восприятие зрителями местоположения, размера, плотно- сти и общего внешнего вида объектов на сцене. • Atmosphere (Атмосфера). Такие атмосферные эффекты, как объемное ос- вещение и огневой эффект, визуализируются отдельными проходами для последующей коррекции. • Z Depth (Z-глубина). Формирует полутоновое изображение находящихся па сцене объектов. При этом объекты переднего плана оказываются светлее, а удаленные объекты постепенно становятся темнее Данный элемент мож- но использовать для дополнительного выделения объектов по мере их при- ближения к камере или переднему плану видового окна. • Alpha (Альфа канал). Зачастую используется для маскирования элементов компьютерной графики на рирпроекционном фоне При этом непрозрач- ные объекты выделяются белым цветом, а совершенно прозрачные объек- ты или же участки, где объекты отсутствуют, — черным цветом. Полупро- зрачные объекты визуализируются оттенками серого в зависимости от сте- пени их непрозрачности • Background (Фон). Не забудьте предоставить для компоновки фон в виде отдельного элемента в том же контексте, что и при создании остальных элементов. • Lighting (Освещение). Отображает местонахождение эффектов освещения и теней. Из сцены можно также извлечь следующие элементы: Self-Illumination (Само- свечение), Matte (Маска), Ink (Чернила) и Paint (Краска); последний применяется с материалом Ink and Paint. Эти элементы не оказывают никакого влияния па ос- вещение сцены и поэтому здесь не рассматриваются. Вы можете изучить их само- стоятельно. В следующем упражнении будет выполнена быстрая визуализация1 сцепы по отдельным элементам Alpha. Reflection, Shadow и Specular. 1. Продолжите работу со сценой из предыдущего упражнения или откройте диалоговое окно Render Scene, а затем щелкните на вкладке Render Ele- ments (рис. 13.17)
Глава 13. Освещение для кино, видео и игр 473 Рис. 13.17. Во вкладке Render Elements диалогового окна Render Scene отобра- жаются элементы, доступные для визуа- лизации 2. Раскройте, если требуется, свиток Render Elements и щелкните на кнопке Add. 3. Выберите из списка элементы Alpha, Reflection, Shadow, Specular (рис. 13.18- 13.21) и щелкните па кнопке ОК. чтобы закрыть диалоговое окно Render Elements.
474 Часть V. Освещение Рис. 13.18. Элемент Alpha из сцены с коопера- тивным жилым домом Рис. 13.19. Элемент Reflection из сцены с коо- перативным жилым домом Рис. 13.20. Элемент Shadow из сцены с коопе- ративным жилым домом
Глава 13. Освещение для кино, видео и игр 475 Рис. 13.21. Элемент Specular из сцены с коопе- ративным жилым домом 4. По умолчанию для отдельных проходов визуализации имя файла и путь к нему не указываются. Поэтому для сохранения полученных изображений выделите каждый элемент и введите вручную имя файла и его местополо- жение. Если визуализация выполняется в последовательность неподвиж- ных изображений, имя каждого файла автоматически дополняется поряд- ковым номером изображения. Благодаря извлечению отдельных элементов из визуализируемой сцены в рас- поряжение компоновщика предоставляется информация, которая требуется ему для окончательной доводки и завершения проекта на этапе компоновки и монта- жа, чтобы добиться наилучшего вида продукции при выводе на кинопленку или видеоноситель. Освещение для игр За короткий срок существования видеоигр, бесспорно, был достигнут огром- ный прогресс в данной области. В прошлом такие игры, как Pong, Asteroids и Рас Man, основывались па единственном цветном изображении окружения, ограни- ченного размерами игрового экрана. В таких играх, по существу, не было цвета, освещения или затенения, причем они создавались в основном программистами, а не художниками. В более выразительных играх, подобных Donkey Kong, DigDug и Galaga. цвет их окружения был внедрен в виде спрайтов. Любое видимое зате- нение или тень были представлены отдельным спрайтом и не имели ничего об- щего с конкретным освещением модели. Современные игры представлякхг собой углубленные, объемные, детализиро- ванные окружения с затенением сотен объекзов и источниками света, которые сними взаимодействуют, или, по крайней мере, создается иллюзия подобного взаимодействия. Достаточно проследить эволюцию развития игры Doom от пер- воначальной до новой версии Doom 3, чтобы понять, насколько повысилось визу- альное качество игр, — и все это благодаря улучшениям организации освещения.
476 Часть V. Освещение Присгупая к освещению видеоигры или аналогичного проекта того же уровня, не- обходимо собрать ключевую информацию для принятия правильных решений. В ча- стности, необходимо выяснить, какой игровой механизм будет использоваться и ка- ковы требования к освещению? Допускается ли анимация источников света (в том числе их интенсивности, ориентации и других параметров), или же вместо этого сле- дует применять оживляемые спрайты и материалы? И, наконец, какой внешний вид и ощущение игры предполагается передать? С точки зрения организации освещения игра может быть выполнена в устоявшемся стиле, который непременно следует при нимать во внимание. Например, игры Doom (Рок) и Resident Evil (Наместник зла) имеют относительно длинную историю, и поэтому их освещение всегда было слабым и зловещим. С другой стороны, в старой игре в гонки Gran Tunsmo применялись са- мые разные схемы освещения, чтобы игроки нс привыкали к освещению данной иг- ры. Таким образом, ясно поставленная цель в начале проекта служит залогом того, что в конечном итоге сцена удачно впишется в готовую продукцию. СОВЕТ В версии 3ds max 7 появилась новая возможность использовать свойство Render То Texture совместно с модулем mental ray. В предыдущих версиях такая воз- можность имелась лишь для стандартного средства визуализации с построчной разверткой. Освещение направленным светом Организацию освещения по любой схеме лучше всего начинать с источника направленного света. В следующем упражнении основной источник направлен- ного света будет нацелен па основные элементы игровой сцены. 1. Откройте сцену из файла Project Files\Chl3_LightingForFilmVideo- Games\Giant_01 .max па прилагаемом к этой книге DVD. Эга сцена содер- жит прекрасную модель персонажа гиганта, любезно предоставленную Сами Оорйопеном (s-s@sci.fi, www.cgmill.com/ss). Число ее многоугольни- ков было специально уменьшено для данного упражнения. 2. В настоящий момент на сцене отсутствуют источники света и применяются са- мые элементарные материалы. Активизируйте видовое окно camera_shot01 (Первый кадр съемки камерой) и визуализируйте сцену (рис. 13.22). Обратите внимание на то, что сцена визуализируется квадратными лоску- тами в окне Rendered Frame Window, а не сверху вниз, как это обычно про- исходит в стандартном средстве визуализации с построчной развергкой. Объясняется это выбором для визуализации дайной сцепы модуля mental ray, для которого характерен именно такой порядок визуализации методом заливки При этом визуализация осуществляется группами соседних пиксе- лей, а не по строкам горизонтальной развертки.
Глава 13. Освещение для кино, видео и игр 477 Рис. 13.22. Отправная точка для выполнения данного упражнения Объект освещения (персонаж-гигант) окружен определенного рода орга- нической формой, а его внимание сосредоточено на парящем над ним кри- сталле. При стандартном освещении сцена выглядит плоской и малопри- влекательной. Для сосредоточения основного внимания на гиганте необхо- димо ввести в данную сцену источник направленного света. 3. Создайте в окне вида сверху нацеленный прожектор, расположив его слева от камеры. Перетащите курсор мыши, чтобы поместить цель данного про- жектора в центре гиганта (рис. 13.23). 4. Поднимите вверх данный источник света в окне вида слева или же в видо- вом окне camera shot01, чтобы он оказался чуть выше головы персонажа, а цель прожектора поместите па уровне бедер персонажа. 5. Выделите прожектор. Перейдите к панели Modify и активизируйте тени ти- па mental ray Shadow Мар в свитке General Parameters данного источника света. Используя модуль mental ray, можно повысить скорость формирова- ния и качество теней, характерных для данного модуля. 6. Установите флажок Use в свитке Intensity/Color/Attenuation. Затем установите значение 275 параметра Start, а также значение 900 параметра End, чтобы сделать затухание света постепенным по мере его прохождения по сцене 7. Уменьшайте значение параметра Hotspot/Beam в свитке Spot Parameters до тех пор, пока яркое пятно прожектора не станет охватывать только гиганта. Уста- новите значение параметра Falloff/ ed приблизительно в два раза меньше, чем значение параметра Hotspot/Beam. Большое отличие между ярким пятном и спадом света прожектора создает изящный мягкий край теней (рис. 13.24).
478 Часть V. Освещение Рис. 13.23. Расположение прожектора в сцене в качестве источника направленного света Рис. 13.24. Установите параметры прожектора, чтобы нацелить его на гиганта и сформировать нерезкие тени
Глава 13. Освещение для кино, видео и игр 479 8. Присвойте прожектору имя Light_Key (Источник направленного света), а затем визуализируйте сцену (рис. 13.25). Рис. 13.25. Вид сцены после расположения в ней и настройки источника направ- ленного света Освещение заливающим и специальным светом А теперь, когда источник направленного света установлен на месте, необхо- димо осветить противоположную сторону персонажа. В следующем упражнении будет создан новый источник света для заполнения участков, которые по- прежнему остаются слишком темными. Л затем будет решен ряд задач специаль- ного освещения. 1. Выделите в окне вида сверху' источник света Light_Key. Нажмите клавишу <Shift> и перетащите этот источник света вправо расположив его чуть сзади персонажа. Выберите вариант Сору в открывшемся диалоговом окне Clone Options и присвойте вновь скопированному источнику имя Light—Fill (Источник заливающего свега). Он должен быть расположен так, как пок по па рис. 13.26. 2. Переместите источник заливающего света вниз в окне вида слева, распо- ложив его чуть выше пола, а затем переместите его цель, расположив ее па уровне груди персонажа.
480 Часть V. Освещение Рис. 13.26. Копирование источника направленного света для создания источника заливающего света 3. Оставьте пока что без изменения параметры настройки данного источника света. Действие источника заливающего света не будет видно из видового окна earnera_shot01, поэтому активизируйте видовое окно Cam Close (Вид из камеры крупным планом) и визуализируйте сцену (рис. 12.27). Теперь схема освещения сцепы состоит из двух источников света и легко поддается управлению. Однако сцена со многими источниками света быст- ро становится трудно управляемой, как только вы попытаетесь выделить и настроить каждый источник света в отдельности. Правда, в 3ds max име- ется инструмент, намного упрощающий настройку наиболее употребляе- мых параметров источников света, — Light Lister. 4. Выберите из главного меню команду Tools^Light Lister (Инструменты^ Перечень источников света). Откроется диалоговое окно Light Lister со списком всех источников света, присутствующих па сцене наряду с их наи- более часто настраиваемыми параметрами (рис. 13.28).
Глава 13. Освещение для кино, видео и игр 481 Рис. 13.27. После ввода источника заливающего света тыльная сторона головы гиганта оказывается освещенной ф Light Lister I lights ' ' I Standard L'ghts On Name Multiplier Cofor Shadows Map See Bias Sm.Range Transp Ini Qua! Decay Stan X fUsht_Key ll[ П P |mentaU^>_Shadc ^I [512 pj|0.'0l Jj P C] [None ‘▼’Iffi-b »J Г V Jlight_Fill [To :.| | K7 | mental, ay_Shadc -I [512 :;[~i :j[00i :]ГП •! |н<пе [40.0 *! Рис. 13.28. Диалоговое окно Light Lister с наиболее часто настраиваемыми параметрами ис- точников света, присутствующих на сцене СОВЕТ Если два или несколько источников света являются экземплярами друг друга, в диалоговом окне Light Lister они отображаются по очереди. Для просмотра ос- тальных экземпляров щелкните на кнопке со стрелкой вниз справа от имени ис- точника света, чтобы раскрыть список его экземпляров.
482 Часть V. Освещение 5. Установите значение 0,95 параметра Multiplier для источника света Light_Key. Щелкните на образце цвета окраски этого источника света, чтобы открыть окно селектора цвета, а затем выберите бледно-красный цвет (RGB: 225, 222, 219). СОВЕТ Одно из наиболее очевидных преимуществ инструмента Light Lister состоит в том, что настраиваемый с его помощью источник света не нужно выделять на сцене. 6. Установите значение 0,5 параметра Multiplier источника света Light_Fill. Он должен быть более ярким, чем обычные источники заливающего света, принимая во внимание число многоугольников, оказывающихся на пути све- та от этого источника. Откройте селектор цвета и выберите бледный серо- зеленый цвет окраски данного источника света (RGB: 216, 225, 214). Бла- годаря этом}' создается иллюзия окрашивания персонажа цветом его окруже- ния вследствие отражения света. 7. Щелкните на кнопке Clone Rendered Frame в окне Rendered Frame Window, а затем визуализируйте сцепу из видового окна Cam Close и сравните оба полученных изображения сцены (рис. 13.29). Рис. 13.29. Теперь сцена выглядит чуть темнее, особенно позади головы гиганта и с одной стороны его лица
Глава 13. Освещение для кино, видео и игр 483 Итак, первоначальное освещение сцены завершено. В следующем упражнении будет введен источник света, воспроизводящий свечение кристалла и его дейст- вие па туловище персонажа и окружающую его органическую форму. 1. Создайте в окне вида сверху всенаправленный источник света. Его кон- кретное местоположение особого значения не имеет. 2. Если этот источник света выделен, щелкните на кнопке Align, расположен- ной на основной панели инструментов. Прежде чем откроется диалоговое окно Align Selection (Выравнивание выделенного), следует выделить объ- ект, относительно которого будет выравниваться данный источник света. Нажмите клавишу <Н>, чтобы открыть диалоговое окно Pick Object (Выбор объекта), и выберите из списка объект Sphered. 3. Установите флажки X Position, Y Position и Z Position (т.е. положение объ- екта по осям X. Y и Z), а затем щелкните на кнопке-переключателе Pivot Point (Точка опоры) в областях Current Object (Текущий объект) и Target Object (Целевой объект). В итоге всенаправленный источник света распо- ложится в центре кристалла (рис. 13.30). Щелкните на кнопке ОК, чтобы выполнить выравнивание и закрыть диалоговое окно Align Selection Рис. 13.30. Расположение всенаправлен- ного источника света в центре кристалла с помощью инструмента Align 4. Присвойте этому источник}' имя Light_Crystal (Источник света от кри- сталла). Выберите для него тип теней mental ray Shadow Мар. Установите значение 1 параметра Multiplier и измените цвет окраски данного источника света на светло-голубой (RGB: 162 , 165, 225). 5. Выделите объект Sphered, щелкните правой кнопкой мыши в видовом окне и выберите команду Properties из всплывающего квадратного меню. Сбросьте флажок Cast Shadows в области Rendering Control (Управление визуализацией) из вкладки General диалогового окна Object Properties. Б ia- годаря этому кристалл не будет препятствовать прохождению света от все- направленного источника, поскольку он служит па сцепе источником света и не должен о тбрасывать тени от других источников света.
484 Часть V. Освещение 6. Визуализируйте сцен}'. Тени от всенаправленного источника света явно не подходят для данной сцепы (рис. 13..81). Всенаправленные источники распространяют лучи све- та во всех направлениях и зачастую дают неверные тени па сложных по- верхностях. Рис. 13.31. Тени от всенаправленного источника света не соответствуют искомому уровню качества 7. Выделите всенаправленный источник света и замените его нацеленным прожектором. Откорректируйте ориентацию этого источника света, по- местив его цель позади гиганта. Голова данного персонажа должна оказать- ся в центре луча света от прожектора. 8. Установите сначала флажок Use, а затем значение 30 парамет ра Start и значение 72 параметра End в области Far Attenuation из свитка Intensity/ Color/Attenuation. В итоге интенсивность света прожектора будет быстро падать от головы до средины груди персонажа. Установите такое значение параметра Hotspot/Beam в свитке Spot Parameters, чтобы яркое пятно про- жектора оказалось шире размаха рук гиганта. Затем установите флажок Overshoot, чтобы прожектор освещал и участок вокруг персонажа. 9. Установите значение 1024 пикселя в поле параметра Map S ze (Размер кар- ты) из свитка mental ray Shadow Мар, а затем вновь визуализируйте сцепу. На рис. 13.32 и 13.33 сцена показана в видах из обеих камер.
Глава 13. Освещение для кино, видео и игр 485 Рис. 13.32. Благодаря замене всенаправленного источника света нацеленным прожекто- ром появляется возможность точнее управлять тенями от данного источника света Рис. 13.33. Та же самая сцена, наблюдаемая из видового окна camera_shot01
486 Часть V. Освещение Теперь освещение сцены выглядит намного лучше. Замена всенаправленного источника света нацеленным прожектором дает больше возможностей для управ- ления тенями отданного источника света, тогда как режим Overshoot позволяет ос- вещать участок вокруг персонажа. Чем больше значение параметра Map Size, тем мельче детали в области теней. Следует, однако, иметь в виду, что игровой меха- низм и общая производительность, т ребующаяся для игры, могут накладывал ь оп- ределенные ограничения на размеры любого растрового изображения, в том числе н кар ты теней. В следующем разделе будут рассмотрены методы раскраски и освещения па уровне отдельных вершин. Модификатор VertexPaint В 3ds max имеется богатый набор инструментов для моделирования, анимации и освещения в самых разных стилях п видах окружения. Одним из инструментов, применяемых непосредственно при разработке игр, является модификатор Ver- texPaint. По существу, этот модификатор сводит, или внедряет, значения освеще- ния в геометрическую форму модели с помощью удобного в использовании ни тсрфсйса раскраски вершин. Каждая вершина, обрабатываемая игровым меха- низмом, содержит данные о координатах ее положения, цвете, освещении и ма- териале. А значения освещения, выбираемые из каждой вершины, объединяются с аналогичными .значениями вершин, расположенных на противоположных кон- цах соединяющих их ребер. Освещение вершин распространяется па каждый многоугольник, частью которого они являются. В результате подразделения гео- метрической формы в сцене появляется больше возможностей для управления воздействием модификатора VertexPaint. В следующем упражнении демонстриру- ется применение данного модификатора в игровой сцене с гигантом. 1. Продолжите работу со сценой из предыдущего упражнения или загрузите ее из файла Project Files\Chl3_LightingForFilmVideoGames\Giant_ VertexPaint [ 1 ] . max па прилагаемом к этой книге DVD. 2. Активизируйте видовое окно Cam Close. Выберите инструмент Dolly Cam- era (Наезд/Отъезд камеры) среди элементов управления видами из камеры в правом нижнем углу интерфейса 3ds max и переместите камеру назад на- столько, чтобы видеть туловище персонажа. Затем воспользуйтесь ннстру ментом Truck Camera (Перемещение камеры па платформе) для панорами- рования изображения до тех пор, пока оно не будет выглядеть так, как по- казано па рис. 13.34 3. Разверните видовое окно Cam Close на весь экран, чтобы в нем было удобнее работать. Затем выключите режим отображения Edged Faces (Окаймленные грани). 4. Выделите объект саде2. Это зеленое растение, обвивающее правую сторону тела гиганта. В данном случае требуется соединить два каркаса в единый объ- ект для последующей раскраски вершин, по в настоящий момент они являют- ся экземплярами друг друга. Щелкните на кнопке Make Unique (Сделать уни- кальным), расположенной ниже стека модификаторов на панели Modify, что- бы превратить экземпляры каркаса в независимые объекты.
Глава 13. Освещение для кино, видео и игр 487 5. Щелкните па небольшой кнопке Attach List (Присоединить из списка), распо- ложенной справа от кнопки Attach в свитке Edit Geometry па папели Modify Вы- берите из списка объект cagel в открывшемся диалоговом окне Attach List, а затем щелкните на кнопке Attach. Переименуйте объект па саде (Каркас). 6. Выберите из списка модификатор VertexPaint и примените его к объекту саде. Откроется панель VertexPaint со всеми необходимыми инструмента- ми для раскраски вершин. 7. Для начала необходимо сделать более темными части каркаса, располо- женные над левым и правым плечами персонажа, куда не попадает доста- точно света. Но прежде следует выбрать размер кисти и цвет раскраски. 8. Щелкните на кнопке Vertex Color Display - Unshaded (Отображение цветов вершин без затенения), расположенной в верхней части папели VertexPaint. Щелкните па образце цвета и выберите темно-серый цвет раскраски, а за- тем установите значение 2 параметра Size. 9. Щелкните и перетащите курсор мыши над поверхностями, находящимися над левым плечом гиганта. Появится кисть в виде крута с вектором, направ- ленным в сторону от поверхности. В 3ds max лицевая сторона кисти всегда направлена перпендикулярно нормалям поверхности каждого многоуголь- ника. Повторите эту же операцию на участках, находящихся над правым плечом гиганта (рис. 13.35).
488 Часть V. Освещение Рис. 13.35. Затемнение вершин над плечами персонажа с помощью кисти модификатора VertexPaint 10. Выделите модель гиганта, примените к ней модификатор VertexPaint и вве- дите гепи там, где им, па ваш взгляд, следует быть. СОВЕТ Модификатор VertexPaint допускает точную настройку кисти, используя, в част- ности, данные ее нажима, получаемые от светового пера графопостроителя для изменения ширины кисти. Элементы управления кистью находятся в диалоговом окне Painter Options, которое открывается с помощью кнопки Brush Options В приведенном выше упражнении показано, насколько полезным может быть модификатор VertexPaint, когда точную настройку значений цвета и освещения требуется выполнить, фактически не изменяя схем}' освещения. Это настоящее благо для художников-оформителей шр, которые не могут себе позволить рос- кошь видоизменять схему освещения.
Глава 13. Освещение для кино, видео и игр 489 Сведение материалов Расчеты освещения могут существенно увеличить продолжительность визуа- лизации сцепы. Визуализация даже очень простой смоделированной сцены мо- жет оказаться весьма продолжительной, если во внимание приходится прини- мать глобальное освещение, окраску теней, рассеянное отражение и сложную схему освещения. В игровой среде это может стать причиной появления визуали- зированных изображений низкого качества, пропуска кадров анимации и мед- ленной либо ошибочной реакции на действия игрока. В качестве выхода из этого положения действие источников света, теней и текстур переносится на матсриа лы, применяемые в объектах, с помощью так называемого процесса сведения. В следующем упражнении демонстрируется сведение различных элементов ос- вещения для их эффективного применения в игре. 1. Откройте сцепу из файла Project Files\Chl3_LightingForFilm- VideoGames\Giant_VertexPaint.max па прилагаемом к этой книге DVD. Это та же самая сцепа, что и в предыдущем упражнении, только мо- дель персонажа разделена в пей на две части: голову (объект giantHead) и туловище (объект giantBody). 2- Выделите объект giantHead. откройте редактор материалов и выберите свободную позицию образца материала. Щелкните па кнопке Get Materia расположенной па папели инструментов ниже образцов материалов. 3. Щелкните на кнопке-переключателе Selected в области Browse From от- крывшегося окна Mater al/Map Browser, а затем дважды щелкните па мате- риале giant_skin (Кожный покров гиганта), чтобы поместить его па вы- бранной позиции образца материала (рис. 13.36). Как показывает анализ данного материала, в нем пег ничего сложного, кроме карты Falloff па позиции карты цвета рассеяния. 4. Если объект giantHead все еще выделен, примените к нему модификатор UVW Мар и выберите тип обтягивающего проецирования карт (Shrink Wrap). Воспользуйтесь диалоговым окном Edit UVWs средн параметров мо- дификатора Unwrap UVW, чтобы состыковать вместе соответствующие края развернутой проекции данного объекта (подробнее об этом см. в гла- вах 9 и 10). 5. Выберите из главного меню команду Renderings Render То Texture Откро- ется диалоговое окно Render То Texture (рис. 13.37). В этом окне определя- ется объект для сведаны, место для вывода вновь сформированных карт, объекты, которые следует принимать во внимание во время визуализации, а также тип сводимой карты. 6. Щелкните на кнопке с меткой “...” в области Output из свитка General Set- tings диалогового окна Render То Texture, а затем назначьте папку для хра- нения повой карты.
490 Часть V. Освещение Рис. 13.36. Выберите материал giant_skin в окне Material/Map Browser Рис. 13.37. Диало овое окно Render То Texture 7. Установите флажок Enabled в области Selected Object Settings (Параметры выделенных объектов) из свитка Objects to Bake (Объекты для сведения). За тем щелкните на кнопке-переключателе All Selected (Все выделенные объек ты) в нижней части данного свитка. Благодаря установке этих параметров действие освещения на все объекты, находящиеся на сцепе, будет прини- маться во внимание при формировании карты для нового материала гиганта. 8. Щелкните па кнопке Add в свитке Output, чтобы открыть диалоговое окно Add Texture Elements. Эю диалоговое окно подобно рассматривавшемуся ранее окну Render Elements. В нем можно выбирать элементы тек< гуры гля визуализации в новой карте. Выберите вариант CompleteMap (Полная кар- та) из списка Avai able Elements (Доступные элементы) (рис. 13.38). 9. Выберите вариант Diffuse Color из раскрывающегося списка Target Map Slot (Позиция целевой карты) в области Selected Element Common Settings (Общие параметры настройки выделенного элемента) и установите значе- ние 1024 в поле параметра Map Size. Это будет способствовать более чет- кому распределению текстуры по поверхности модели персонажа. 10. Щелкните на кнопке Render, расположенной в нижней части диалогового окна Render То Texture. Во время визуализации текстуры появится несколь- ко индикаторов выполнения данного процесса. По его завершении будет создан новый материал типа Shell, применяемый в модели гиганта. А вновь визуализированная карта включая и тени, появится в видовом окне, тогда как исходный материал появляется лишь при подлинной визуализации
Глава 13. Освещение для кино, видео и игр 491 Рис. 13.38. Выбор элемента тек- стуры CompleteMap в диалоговом окне Add Texture Elements 11. Теперь па вершине стека находится модификатор Automatic Flatten UVs (Автоматическое спрямление координат проецирования UV). Щелкните па кнопке-переключателе Show No Seams (Не показывать швы) в области Dis- play из свитка параметров данного модификатора, чтобы скрыть любые зе- леные указатели швов, затрудняющие просмотр. Теперь видовое окно Cam Close должно выглядеть так, как показано на рис. L3.39. Рис. 13.39. Вид персонажа в видовом окне Cam Close до (слева) и после (справа) визуализа- ции в текстуру Попробуйте переместить цель прожектора Light_Special. Как следует из видового окна, тени сведены в материал, применяемый в объекте giantHead. Откройте редактор материалов и получите материал, применяемый в текущий момент в объекте. Как видите, теперь это материал типа Shell содержащий све- денный материал, отображаемый в видовых окнах, и исходный материал, ото- бражаемый при визуализации. Такой материал типа Shell подходит для игр на- много больше, чем исходно организованное на сцене освещение и материалы.
492 Часть V. Освещение Резюме Освещение является важной и неотъемлемой частью практически каждого проекта трехмерного моделирования и анимации. Поэтому ясное понимание принципов организации освещения сцеп, созданных средствами компьютерной графики для кино, видео и игр, намного упрощает работу' над соответствующим проектом. В этой главе вкратце рассмотрены многие аспекты организации освещения: от согласования освещения с уже существующей сценой до визуализации отдельных элементов сцепы, освещения игрового окружения и сведения текстур. От освещения теперь можно перейти к организации движения. В 3ds max име- ется немало возможностей для анимации параметров объектов, находящихся па сцепе, в том числе и параметров источников света, что и будет продемонстриро- вано в главах следующей части этой книги.
Часть VI Анимация 14 Введение в анимацию 15 Модуль character studio
Глава 14 Введение в анимацию Шон Бонни Представьте себе сначала хромированный. отполированный до зеркального блеска шар, а затем все, что вы можете с ним сделать в 3ds шах, например, заста- вить его беспорядочно скакать но сцепе, растягиваться до необычной формы или же разорваться на тысячи осколков. И все это, скорее всего, асе эциируется у вас с анимацией. В основу 3ds max, прежде всего, положена система анимации, которая позво- ляет оживить чужеродный мир, неповоротливый робот, паровой двигатель и лю- бой механизм, который только можно себе вообразить. Главное — благоразумно спланировать анимацию, чтобы, например, планетарная система превратилась в парад планет, а не в беспорядочное скопление сфер. В 3ds max 7 имеется ряд наиболее употребительных инструментов анимации включая ограничения, контроллеры и связывание параметров. В этой главе рас- сматривается система ограничений, а также методы их согласованного примене- ния для достижения поставленных целей анимации. По существу, ограничения являются разновидноеiwo контроллеров. Вероят- но, вам уже приходилось иметь дело с такими типичными для 3ds max контролле- рами, как Bezier (Управление по кривой Безье) Linear (Линейное управление). Контроллеры хранят ключевые кадры анимации объектов, но самое главное они управляют интерполяцией поведения объектов в промежутке между ключе- выми кадрами. Всякий, кому когда-либо приходилось наблюдать беспорядочное движение оживляемого объекта в промежутке между' ключевыми кадрами, хоро шо осознает важность применения наиболее подходящего контроллера в анима- ции. К наиболее эффективным оiносится контроллер управления по сценарию (Script). Именно этот контроллер и будет использоваться в данной главе для орга- низации точного управления анимацией объектов. Связывание параметров представляет собой не менее эффективный способ управления объектами па сцепе путем установления связи между' параметрами дву'х объектов. При этом один объект может управлять или иметь связь с другим объек- том посредством диалогового окна Parameter Wiring (Связывание параметров). В этой главе описываются также манипуляторы — экранные вспомогательные объекты в виде ползунковых регуляторов, которые просто и быстро связываются для управления практически любым параметром находящегося на сцене объекта.
496 Часть VI. Анимация Какие бы инструменты пи применялись для анимации, подлинное удобство работы в 3ds max заключается в практически бесконечном числе способов совме- стного применения инструментов для достижения требуемого результата. Ограничения Ограничения позволяют управлять положением или вращением одного объ- екта с помощью других объектов. Например, перемещение объекта лодки может быть ограничено оживляемой поверхностью воды. Ограничения играют важную роль в большинстве видов анимации по ключевым кадрам. В 3ds max 7 доступны следующие виды ограничении. • Ограничение по присоединению (Attachment). Сохраняет объект па по- верхности каркаса. • Ограничение по поверхности (Surface). Сохраняет объект па параметриче- ской поверхности. • Ограничение по линии связи (Link). Допускает изменение во времени ро- дительской связи, установленной с объектом. • Ограничение но линии взгляда (Look-At). Вынуждает объект сохранять ориентацию по указанной оси в направлении целевого объекта. • Ограничение по линии пути (Path). Помещает объект вдоль одного или не- скольких путей. • Ограничение по ориентации (Orientation). Поворачивает объект относи- тельно ориентации одного пли нескольких целевых объектов. • Ограничение по положению (Position). Помещает объект относительно од- ного или нескольких целевых объектов В ряде последующих упражнений вам предстоит поработать с большинством перечисленных выше ограничений, причем нередко в определенном сочетании, для анимации различных механических движений. Ограничения по присоединению В приведенном ниже упражнении ограничение по присоединению будет ис- пользоваться для размещения игрушечного утенка и мыльных пузырей па по верхпости текущей воды. Кроме тою, с помощью модификатора Linked XForm (Связанное преобразование) и объекта лофта оживляемый утенок будет присое- динен к простой веревке. Для просмотра анимации, которую вам предстоит соз- дать, воспроизведите визуализированный фильм из файла \Project Fi es\ Chl4_IntroductionToAnimation\duck. mov па прилагаемом к этой книге DVD. 1. Откройте сцепу из файла \Project Files\Chl4_IntroductionTo- AnimationX attachment_constraint_begin. max на прилагаемом к этой книге DVD. Эта сцепа содержит резиновый игрушечный утенок и желоб, заполненный водой (рис. 14.1). Текущая вода создана с помощью примитив- ной плоскости, смещенной посредством оживляемой процедурной карты.
Глава 14. Введение в анимацию 497 Рис. 14.1. Сцена в исходном виде: утенок на поверхности текущей воды | НА ЗАМЕТКУ_______________________________________________________ Ограничение по присоединению действует только вместе с целевыми объекта- ми, которые могут быть преобразованы в каркасы. Любой применяемый моди- фикатор должен относиться к пространству объектов, поскольку такие модифи- каторы мирового пространства, как Displace Mesh (WSM), не осуществляют пре- образование в каркасы. 2. Выделите объект утенка, перейдите к окну' вида слева и сделайте изображе- ние утенка крупнее. Прежде чем применять ограничение по присоединению, следует обратить внимание па точку опоры объекта, поскольку опа будет определять место пере- сечения данного объекта с объектом, к которому осуществляется присоедине- ние. Точка опоры объекта утенка находится посредине его тела (рис. 14.2). 3. Для смещения точки опоры в нижнюю часть тела утенка, чтобы он не так сильно погружался в воду, перейдите в режим Affect Pivot Only (Воздейст- вовать только па точку опоры), выбрав одноименную кнопку в свитке Adjust Pivot (Коррекция точки опоры) на панели Hierarchy (Иерархия), и перемес- тите точку' опоры вниз по оси Y в видовом окне (рис. 14.3). Вновь щелкните на кнопке Affect Pivot Only, чтобы выйти из данного режима.
498 Часть VI. Анимация Рис. 14.2. Точка опоры объекта утенка, выделенная черным цветом на этом рисунке, нахо- дится посредине тела утенка Рис. 14.3. Благодаря смещению точки опоры утенка вниз, он не будет так сильно погружать- ся, плывя по воде
Глава 14. Введение в анимацию 499 4. Для того чтобы применить ограничение по присоединению, перейдите в окно вида из камеры (CameraOl) и выберите из главного меню команду Animation^Constraints^Attachment Constraint (АнимацияФОграпиченияО Ограничение по присоединению). В видовом окне появится пунктирная линия, проведенная от точки опоры к курсору (рис. 14.4). Рис. 14.4. При применении ограничения по присоединению появляется пунктирная линия, указывающая на возможность выбора объекта, к которому следует присоеди- нить утенка 5. Щелкните на объекте воды, чтобы выделить его в качестве поверхности, к которой следует присоединить угенка. Если сделать это в окне вида из ка- меры, утенок может исчезнуть из виду, поскольку он по умолчанию выров- нен по первой грани каркаса поверхности воды, находящейся вне поля зрения камеры (рис. 14.5). 6. Как только будет назначено ограничение, автоматически откроется панель Motion (Движение). Если выбрана не та целевая поверхность, щелкните на кнопке Pick Object в свитке Attachment Parameters (Параметры присоеди- нения) и сделайте еще одну попытку. 7. Для тою чтобы установить утенка в исходное положение, щелкните снача- ла на кнопке Set Position (Установить положение), а затем посредине окна вида из камеры, чтобы поместить утенка в этой точке (рис. 14.6). Для более точной фиксации положения выделенного объекта, возможно, придется щелкнуть и перетащить его.
500 Часть VI. Анимация Рис. 14.5. Подвергаемый ограничению объект первоначально располагается на первой грани каркаса целевой поверхности воды Рис. 14.6. Расположение подвергаемого ограничению объекта на конкретной части целевой поверхности с помощью кнопки Set Position
Глава 14. Введение в анимацию 501 По умолчанию утенок ориентирован по нормали выделенной грани, однако это положение изменится при последующей установке ключевых кадров анимации вращения данного объекта. До тех пор, пока установлен флажок Align То Surface (Выровнять по поверхности) в свитке Attachment Parame- ters, утенка можно поворачивать относительно нормали целевой поверхно- сти независимо от того, включен или выключен режим Auto Key (Автоматическая расстановка ключевых кадров) (рис. 14.7). Рис. 14.7. Объекты, подвергаемые ограничению по присоединению, можно пово- рачивать вручную, если активизирован режим Align То Surface НА ЗАМЕТКУ Как только объект будет установлен в определенное положение для ограниче- ния по присоединению, в текущем кадре анимации появится ключевой кадр. Та- ким образом, анимацию перемещения подвергаемо о ограничению объекта можно осуществлять и не переходя в режим Auto Key. 8. Установив утенка в нужное исходное положение, выключите кнопку Set Posi- tion. Если переместить ползунок по временной шкале анимации, то можно увидеть, как утенок плывет по волнам и поворачивается, чтобы сохранить выравнивание по поверхности воды. К сожалению, это вращательное движе- ние теряется при анимации положения или вращения объекта. Для сохране- ния информации о подобном вращательном движении после расчетов огра- ничения по присоединению необходимо поместить объект в нулевом кадре, оставить активным режим Aign То Surface и не выполнять анимацию поло- жения или вращения объекта.
502 Часть VI. Анимация 9. Сбросьте флажок Align То Surface в свитке Attachment Parameters, чтобы утенок не поворачивался согласованно с изменением формы поверхности воды. Ведь это вращение все равно не сохранится при анимации положе- ния утенка. Для восстановления информации о подобном вращении в даль- нейшем будут использованы контроллеры управления вращением по сце- нарию (Rotation Script). Кроме того, при сбросе флажка Align То Surface восстанавливается исходная ориентация утенка по течению воды. 10. Для того чтобы утенок немного скользил по поверхности воды, перейдите к кадру 80, щелкните на кнопке Set Position и переместите утенка в повое положение ближе к камере. Откроется диалоговое окно, в котором необхо- димо подтвердить анимацию положения объекта. Щелкните па кнопке Yes. чтобы закрыть это окно. Как видите, анимация данного объекта осуществ- лена без активизации режима Auto Key И. Перейдите к кадру 160 и убедитесь в том, что кнопка Set Position по- прежнему включена. Другой способ анимации положения объекта состоит в том, чтобы откорректировать значение параметра Face (Грань) в области Position из свитка Attachment Parameters. При увеличении значения данно- го параметра утенок буквально перемещается по поверхности воды. Мед- ленно изменяйте это значение до тех пор. пока утенок не окажется у даль- него края желоба (рис. 14.8). Вновь щелкните па кнопке Set Position, чтобы выйти изданного режима. Рис. 14.8. Положение подвергаемого ограничению объекта можно изменить с помо- щью параметра Face из свитка Attachment Parameters
Глава 14. Введение в анимацию 503 | СОВЕТ____________________________________________________________________ Параметр Face не настраивается, если кнопка Set Position не активизирована или же в текущем кадре отсутствует ключевой кадр анимации положения объекта. 12. Перейдите к кадру 250 и переместите утенка назад к средине течения воды, откуда и было начато его движение, хотя теперь его ориентация может быть иной (рис. 14.6). Выделите нулевой кадр на полосе трека (временной шкале анимации), нажмите клавишу <Shift>, щелкните па этом кадре и пе- ретащите его в кадр 250. В итоге и левой кадр будет скопирован вместе с присоединяемым положением объекта. Если перейти от нулевого кадра к кадру 2 50 и обратно, нажав, например, клавиши <Ноше> и <Епс1>, ю можно заметить, что утенок не занимае т одно и то же положение в этих кадрах вследствие изменения формы поверхности воды. При перемещении ползунка по временной шкале анимации утенок плавно пе- ремещается по поверхности воды, совершая круг. На самом деле он перемещает- ся слишком плавно без учета волнения на поверхности воды. Объясняется это двумя причинами. Первая из них связана с порядком интерполяции ограничения по присоединению в промежутке между ключевыми кадрами. Подвергаемые ог- раничению объекты помещаются па целевой поверхности только в ключевых кадрах, а в промежутке между ними происходит интерполяция движения этих объектов в пространстве независимо от того, присоединены ли они по-прежнему к целевой поверхности или пет. Для устранения этого недостатка необходимо ввести ключевые кадры анимации присоединения в те моменты, когда подвер- гаемый ограничению объект занимает слишком высокое или слишком низкое по- ложение. Выбор конкретных кадров, когда это происходит в данной сцене, зависит от того, где именно были первоначально установлены ключевые кадры анимации присоединения. В завершенном варианте сцепы из файла \Project Files\ Chl4_IntroductionToAnimation\attachment_constraint_complete.max на прилагаемом к этой книге DVD в кадре 20 волны достигают верхней точки. Именно в этот момент и следует установить ключевой кадр, чтобы поправить по- ложение утенка. Для установки дополнительных ключевых кадров анимации присоединения сделайте изображение утенка крупнее в окне вида сверху, щелкните на кнопке Set Position, а затем на точке опоры утенка (рис. 14.9). Аналогично установке утенка в исходное положение, в данном случае, возможно, придется щелкнуть па нем и перетащить его, чтобы точнее зафиксировать его положение. Чем ближе новое положение утенка соответствует положению точки опоры, тем точнее новые ключевые кадры анимации присоединения повторяют предыдущий путь движе- ния утенка. Для тог о чтобы уточнить положение утенка и сохранить его погружение в воду на одном и том же уровне в течение всей анимации, установите дополни гельные кадры анимации присоединения (рис. 14.10, 14.11).
504 Часть VI. Анимация Рис. 14.9. Установка уточняющего ключевого кадра анимации присоединения в окне вида сверху по местоположению точки опоры, выделенной черным цветом на этом рисунке Рис. 14.10. До установки дополнительного ключевого кадра анимации присоединения утенок слишком глубоко погружался в воду, плавая по волнам
Глава 14. Введение в анимацию 505 Рис. 14.11. После ввода дополнительного ключевого кадра анимации присоедине- ния утенок плывет по воде на одном и том же уровне Продолжите установку уточняющих ключевых кадров в те моменты, когда уте- нок находится слитком высоко или слишком низко па поверхности воды. Вторая причина неправдоподобного перемещения утенка но волнам состоит в том, что он не качается и не крепится, пересекая волнующуюся поверхность во- ды. Ограничение по присоединению не допускает автоматическое выравнивание, однако этот недостаток в движении объекта можно устранить с помощью снеци ального сценария. Контроллеры управления по сценарию Контроллеры управления по сценарию позволяют эффективно использовать возможности языка MAXScript для расчета значений, предназначенных для дру- гих контроллеров. Эти значения затем передаются трекам анимации положения, вращения, масштабирования или других параметров объекта, управляемых кон- троллерами. В этом разделе будет создан короткий сценарий для сохранения вы- равнивания утенка относительно поверхности воды. Подробнее о сценариях см. в главе 6, а также в справочном руководстве по MAXScript, доступном по ко- манде Help ^MAXScript Reference. Для назначения соответствующих контролле- ров выполит е следующее упражнение. 1 Если утенок все еще выделен, перейдите к панели Motion и выберите кон троллер управления вращением (Rotation) в свитке Assign Controller (Назна- чение контроллера). По умолчанию назначается контроллер управления
506 Часть VI. Анимация вращением по натяжению, непрерывности и смещению (ТСВ Rotation). По- этом)’ щелкни те на кнопке Assign Controller, обозначенной знаком вопроса, чтобы выбрать новый контроллер. 2. Выделите контроллер управления но Эйлерову вращению вокруг осей XYZ (Euler XYZ) и щелкните на кнопке ОК. НА ЗАМЕТКУ В контроллере Euler XYZ каждая ось вращения указывается отдельно что удоб- но для применения разных контроллеров по каждой из осей вращения 3. Раскройте список контроллера Rotation. Как видите, для каждой из осей вращения назначен отдельный контроллер управления по кривой Безье с плавающей точкой (Bezier Float) (рис. 14.12). Рис. 14.12. Контроллер управления вращением Euler XYZ разделяется на отдельные контроллеры Bezier Float по каждой из осей вращения 4. Выделите контроллер X Rotation и назначьте на его позиции контроллер управления по сценарию с плавающей точкой (Script Float) (рис. 14.13). Рис. 14.13. Контроллер Script Float позволяет осу- ществить анимацию вращения на отдельных треках по специальному сценарию
Глава 14. Введение в анимацию 507 Работа с контроллером управления по сценарию Как только будет назначен контроллер управления по сценарию, откроется диалоговое окно Script Controller, в котором вводится исходный текст сценария. Первоначально в этом диалоговом окне указано единственное значение, но и по- сле ввода сценария должно быть получено единственное значение правильного типа (в данном случае с плавающей точкой) для вращения вокруг оси X. В соответс I вии с вводимым далее сценарием на поверхность воды будет направлен сверху луч света, который затем отражается под определенным углом относительно нормали поверхности воды. На основании этого угла отражения луча света и опре- деляется значение для вращения утенка вокруг оси X. Исходный текст данного сце- нария находится в файле \Project Files\Chl4_IntroductionToAnimation\ rotational script. txt па прилагаемом к этой книге DVD. Прежде чем переходить к сценарию, следует указать на ошибку неопределен- ного типа, характерную для сценариев, в которых лучи света падают на поверх- ность. Такая ошибка возникает из-за того, что луч света не пересекает поверх- ность. Если, например, луч направлен па поверхность воды снизу, т.е. из-под во- ды, он вообще не пересекает ее поверхность, что приводит к подобного рода ошибкам в сценарии. Аналогичная ошибка возникает и в том случае, если луч све- та направлен в сторону от поверхности воды. СОВЕТ Если требуется закрыть диалоговое окно Script Controller, а затем открыть его вновь, выделите трек х Rotation в списке контроллеров и щелкните на нем правой кнопкой мыши, а затем выберите команду Properties из всплывающего контекстного меню. А теперь можно приступать к вводу сценария по строкам. Удалите исходное зна- чение и введите следующую строку' сценария в диалоговом окне Script Controller: RayFromPos = $Duck.position.x, $Duck.position.y, $Duck.position.z + 1000] В этой строке положение, из которого луч света направляется вниз, устанав- ливается в соответствии с положением утенка. Это положение смещено па 1000 единиц по оси Z для того, чтобы луч света не падал из-под воды, что может при- вести к упомянутой выше ошибке. Введите следующую строку кода: RayToSurface = ray RayFromPos [0,0,—1] НА ЗАМЕТКУ Переменные, устанавливаемые в диалоговом окне Script Controller, недоступны из других сценариев, если они не объявлены как глобальные (подробнее об этом см. в справочном руководстве по MAXScript). В этой строке луч света формируется, исходя из положения утенка по оси Z мировых координат. Три числовых значения в данной строке обозначают на- правление луча света но каждой оси. RayAtSurface - intersectRay $water RayToSurface
508 Часть VI. Анимация В этой строке падающий луч света пересекает поверхность воды, а данные об отраженном луче света сохраняются в переменной RayAtSurface. Следует, од- нако, иметь в виду, что этот второй луч света не имеет никакого отношения к подлинному отражению, а лишь соответствует направлению относительно нормали поверхности воды в точке падения первого луча. EulerAtSurf = eulerangles (-RayAtSurface.dir.у*90) (RayAtSurface.dir.х^ЭО) 0 В этой строке угол отраженного луча преобразуется в соответствующие значе- ния по осям X и Y, а значение по оси Z остается нулевым. Если вам не совсем по- нятен математический аппарат, используемый в данной строке, просто запомни- те, что в переменной EulerAtSurf сохраняются углы Эйлсрового вращения по каждой из трех осей. QuatAtSurf - EulerAtSurf as quat Для того чтобы использовать полученную выше информацию о вращении утенка, ее необходимо преобразовать в формат кватернионов. Этот формат до- пускает плавную интерполяцию в промежутках между ключевыми кадрами ани- мации вращения. В данной строке углы Эйлерового вращения луча света преоб- разуются в значения кватернионов. QuatAtSurf.х В этой последней строке сценария определяется отдельное значение кватер- ниона по оси X, чтобы использовать его в дальнейшем для вращения утенка во- круг оси X. Подобным простым объявлением типа переменной должен оканчи- ваться сценарий в каждом контроллере управления по сценарию. Для того чтобы завершись ввод сценария и проверить его, щелкните на конке Evaluate (Вычислить). В подокне Result появится результат успешного выполнения данного сценария (рис. 14.14). В противном случае проверьте ошибки в окне MAX- Script Listener, которое открывается с помощью функциональной клавиши <F11>. Рис. 14.14. Диалоговое окно Script Controller с введенным сценарием и результатом его выполнения
Глава 14. Введение в анимацию 509 Ввод и правка сценариев В следующем упражнении введенный выше сценарий будет приспособлен для другой оси вращения утенка с помощью второго контроллера управления по сце- нарию. 1. Диалоговое окно Script Controller относится к типу безрежимных окон, по- этому его можно оставить открытым при проверке правильности функцио- нирования сценария. Если переместить ползунок по временной шкале апи мацип, то можно увидеть, как утенок поворачивается вокруг оси X для вы- равнивания по поверхности воды. Чтобы посмотреть значения, устанавли- ваемые при этом по сценарию, перейдите к любому кадру анимации и щелкните на кнопке Evaluate диалогового окна Script Controller. 2. Закройте окно правки сценария Script Controller. 3. Выделите контроллер Y Rotation и назначьте па его позиции еще один контроллер управления по сценарию. При открытии диалогового окна Script Controller автоматически собирается информация со всех треков аш мации вращения, на которых назначены контроллеры управления но сценарию, а затем в нем вводится уже имеющийся сценарий. В данном слу- чае это полезное свойство не нужно, поэтому закройте диалоговое окно Script Controller, предварительно скопировав сценарий в буфер обмена, чтобы затем встави ть его без особого труда. Выделите трек Y Rotation, щелкните на нем правой кнопкой мыши и вы- берите команду Properties, чтобы открыть диалоговое окно Script Controller. Замените устанавливаемое но умолчанию нулевое значение сценарием, ско- пированным рапсе в буфер обмена, изменив в нем лишь последнюю строку': QuatAtSur£.у После ввода и проверки правильности обоих сценариев утенок должен пра- вильно покачиваться по оси X (вперед и назад), а также по осн Y (нз стороны в сторону), перемещаясь по поверхности воды. Однако настоящий пластмассовый утенок делает это с большим размахом, учитывая движение воли. Для того чтобы сделать покачивание утенка более сильным, достаточно умножить па коэффици- ент 1,5 конечный результат выполнения обоих введенных выше сценариев, что и будет сделано в следующем упражнении. 1. Отредактируйте последнюю строку сценария для вращения вокруг оси X: QuatAtSurf.x * 1.5 2. ОI редактируйте последнюю строку сценария для вращения вокруг оси ¥ QuatAtSurf.y * 1.5 Теперь утенок сильнее покачивается на волнах (рис 14.15 и 14.16). 3. Д 1я вращения утенка вокруг оси Z сценарий не используется, поэтому для анимации такого вращения можно установить ключевые кадры вручную. В частности, для toi о чтобы развернуть утенка в направлении его движения ио воде, щелкните на кнопке Auto Key, перейдите к кадру 20 и поверните утенка на -30° вокруг его локальной оси Z (рис. 14.17).
510 Часть VI. Анимация Рис. 14.15. В кадре 59 утенок накреняется, выравниваясь по поверхности воды Рис. 14.16. После ввода коэффициента умножения в сценариях для обоих кон- троллеров управления вращением утенок еще больше накреняется в кадре 59
Глава 14. Введение в анимацию 511 Рис. 14.17. Установку ключевых кадров анимации вращения утенка вокруг оси Z можно свободно сочетать с его вращением вокруг осей X и Y по сценарию 4. Перейдите к кадру 7 5 и поверите р епка на 7 5° вокруг его локальной оси Z. 5. Перейдите к кадру 165 и поверните утенка на -60° вокруг его локальной оси Z. 6. Перейдите к кадру 190 и поверните утенка на -30° вокруг его локальной оси Z. 7. 11ерейдите к кадру 250 и поверните утенка па 50° вокруг его локальной оси Z, чтобы вновь развернуть его по течению воды. Выйдите из режима Auto Key, вновь щелкнув на одноименной кнопке. Если переместить ползунок по временной шкале анимации, то можно увидеть результаты автоматического вращения утенка по сценарию вокруг осей X и Y и ручного вращения вокруг оси Z, в результате чего создается иллюзия настояще- го движения данного объекта по волнам. Теперь, когда вы знаете, как применять ограничение по присоединению, для вас не составит особого труда поместить не- сколько мыльных пузырей на поверхности воды.
512 Часть VI. Анимация Простое присоединение Как следует из приведенного выше примера присоединения утенка к поверх- ности воды, при ограничении по присоединению подвергаемый этому ограниче- нию объект остается выровненным но целевой поверхности до тех пор, пока не расставлены ключевые кадры анимации положения этого объекта. В следующем упражнении несколько мыльных пузырей будут помещены па поверхности воды и выровнены под управлением ограничения. 1. Перейдите в окно вида сверху и найдите четыре каркаса пузырей рядом с верхним краем желоба (выше утенка по течению) (рис. 14.18). Рис. 14.18. Движение каркасов этих четырех пузырей также будет ограничено по поверхности воды 2. Выделите объект bubbleOl (Первый пузырь) и примените ограничение но присоединению па треке анимации его положения, выбрав поверхность воды в качестве целевого объекта. Только не выделяйте желоб. Если требу- ется, воспользуйтесь диалоговым окном Select Object, которое открывается нажатием клавиши <И>, чтобы правильно выделить целевую поверхность. Как и прежде, каркас объекта bubbled может исчезнуть из виду, посколь- ку' он выравнивается по умолчанию относительно первой грани целевого объекта.
Глава 14. Введение в анимацию 513 3. Повторите п.2 данного упражнения для объектов bubble02, ЬиЬЫеОЗ и bubbled4. При переходе в окно вида из камеры мыльные пузыри вооб- ще не видны, однако их можно расположить на сцене, даже не выделяя визуально. 4. Объект bubble04 должен быть по-прежнему выделен, а панель Motion — от- крыта. Перейдите к нулевому кадру, чтобы исключить неумышленную уста- новку ключевых кадров анимации пузырей. Щелкните на кнопке Set Position и расположите выделенный пузырь у дальнего края желоба (рис. 14.19). Рис. 14.19. Расположите мыльный пузырь у дальнего края желоба 5. Вновь воспользуйтесь диалоговым окном Select Object, чтобы выделить по очереди три остальных пузыря и расположить их друг за другом у дальнего края желоба (рис. 14.20). 6. Если переместить ползунок по временной шкале анимации, то можно заме- тить как мыльные пузыри плывут по волнам, покачиваясь на месте. Стан дартное ограничение по присоединению отлично подходит для того, что- бы присоединить объекты к поверхности, оставив их на месте относитель- но этой поверхности. Как следует из предыдущих упражнений этой главы, присоединение может использоваться для того, чтобы объекты оставались выровненными по целевой поверхности, хотя и не без помощи небольшого сценария а также для установле- ния простой взаимосвязи с объектами, не подлежащими анимации. В следующем упражнении будет продемонстрирован другой метод управления движением объ- ектов на примере применения модификатора Linked XForm,
514 Часть VI. Анимация Рис. 14.20. Четыре мыльных пузыря, расположенных друг за другом у дальнего края желоба Модификатор Linked XForm В полученной до сих пор анимации движение утенка выглядит довольно хо- рошо, за исключением того, что он, по-видимому, не в состоянии бороться с те- чением воды. Принимая во внимание это обстоятельство, в следующем упражне- нии утенок будет присоединен к желтой веревке. Для этой цели сначала необхо- димо создать вспомогательный объект и затем использовать его для управления средней точкой веревки. 1. Веревка представляет собой простой объект лофта, созданный из круглой формы по заданному пути. Выделите объект string_path (Путь для верев- ки), перейдите на уровень подобъектов-вершин и выделите среднюю вер- шину' этого объекта пути (рис. 14.21). 2. Переместите выделенную вершину, и вы увидите, что вместе с ней пере- мещается и веревка (рис. 14.22). Объект лофта, используемый для создания веревки, зависит от заданного пути, поэтому при изменении этого пути из- меняется и объект лофта. Отмените операцию перемещения вершины, чтобы вернуть ее в исходное положение.
Глава 14. Введение в анимацию 515 Рис. 14.21. Выделите среднюю вершину пути для веревки Рис. 14.22. При перемещении вершины на управляющем пути изменяется и сам объ- ект лофта
516 Часть VI. Анимация Для того чтобы присоединить средину веревки к утенку, необходимо каким- то образом отделить расположение средней вершины. И для этой цели лучше всего подойдет модификатор Linked XForm. Модификатор Linked XForm позволяет управлять выделенным объектом или подобъектом, связывая его с друтим объектом. В данном случае требу ется управлять единственной выделенной вершиной с помощью фиктивно- го объекта. 3. Создайте фиктивный объект. Для этого перейдите к панели Create, щелк ните сначала на кнопке Helpers (Вспомогательные объекты), затем выбери- те категорию Standard из расположенного ниже раскрывающегося списка и щелкните на кнопке Dummy (Фиктивный объект). Далее воспользуйтесь инструментом Align, чтобы выровнять центры фиктивного объекта и ве- ревки (или же объекта string_path) (рис. 14.23). Рис. 14.23. Создайте фиктивным объект и выровняйте его по центру пути для веревки | СОВЕТ_______________________________________________________________ Обязательно выровняйте фиктивный объект по объекту или совокупности объ- ектов, прежде чем связывать их вместе во избежание ошибок, возникающих вследствие преобразований со смещением.
Глава 14. Введение в анимацию 517 4. Выделите объект string_path и вновь перейдите на уровень подобъектов- вершин, а затем выделите среднюю вершину на данном пути. Впрочем, она может остаться выделенной после последней операции выделения на уров- не подобъектов. 5. Не выходя из режима работы с подобъектами-вершинами, примените моди- фикатор Linked XForm (рис. 14.24). В данном случае очень важно применить новый модификатор именно на уровне подобъектов, поскольку выделенная совокупность подобъектов не будет передаваться по стек}' модификаторов. Рис. 14.24. Примените модификатор Linked XForm для управления средней верши ой на пути для веревки НА ЗАМЕТКУ Если вы неожиданно обнаружили, что выделенные совокупности подобъектов не передаются последующим модификаторам, то, скорее всего, вы случайно вышли из режима работы с подобъектами во время редактирования стека мо- дификаторов. В таком случае вернитесь к модификатору, на уровне которого было выполнено выделение, перейдите сначала в режим работы с подобъекта- ми, а затем к следующему модификатору. 6. Щелкните на кнопке Pick Control Object (Выбрать управляющий объект) в свитке параметров модификатора Linked XForm и выберите фиктивный объект. Теперь, перемещая фиктивный объект, можно управлять средней точкой веревки. В качестве завершающего этапа данного процесса присоедините фиктивный объект к утенку, чтобы создать впечатление, будто его движение ограничивается веревкой, хотя на самом деле все будет происходить наоборот. Для управления на таком уровне необходимо использовать ограничение по линии связи.
518 Часть VI. Анимация Ограничения по линии связи Ограничение по линии связи связывает два объекта аналогично установлению стандартной родительской связи между' объектами но с одним преимуществом: эта связь подлежит анимации. Классическим примером применения такого вида огра- ничения служит передача предмета одним персонажем другому. Например, переда- ваемый мяч необходимо связать с персонажем А до того момента, когда он окажет- ся в руках персонажа Б В этот момент связь переходит от персонажа А к персонажу Б. Ограничение по линии связи допускает анимацию связывания объектов друг с другом и окружающим миром (в последнем случае анимация объекта осуществля- ется независимо от любых управляющих объектов). В следующем упражнении ог- раничение по линии связи будет применено в сцене с утенком. 1. Выделите фиктивный объект и перейдите к нулевому кадру. Переместите хвост утенка таким образом, чтобы веревка прошла сквозь его конец. Для удобства выполнения данной операции можно перейти в окно пользова- тельского вида (рис. 14.25). Рис. 14.25. Переместите фиктивный объект к хвосту утенка 2- Связать веревку с утенком проще всего с помощью инструмента Select and Link (Выделить и связать). Для этого щелкните сначала на пиктограмме данного инструмента, а затем щелкните и перетащите курсор от фиктивно- го объекта к утенку. Когда курсор окажется над выбранным целевым объек- том связывания, он изменит свой вид па пару' связанных квадратов.
Глава 14. Введение в анимацию 519 3. Если вернуться в окно вида из камеры и переместить ползунок по времен- ной шкале анимации, то можно заметить, как фиктивный объект (а также средняя точка веревки) следует за хвостом утенка в течение всей анимации (рис. 14.26). Рис. 14.26. В результате связывания фиктивного объекта с утенком средняя точка ве- ревки следует за хвостом утенка Если бы в сцене требовалась лишь непрерывная связь, то для этой цели бы- ло бы вполне достаточно инструмента Select and Link. Но если требуется оживляемая связь, в таком случае лучше воспользоваться ограничением по линии связи. 4. Если фиктивный объект выделен, щелкните на пиктограмме инструмента Unlink Selection (Разорвать связь с выделенным объектом), чтобы разорвать только установленную связь. Фиктивный объект становится неподвижным и не следует за утенком. 5. Перейдите к панели Motion, выделите в свитке Assign Controller самый верх- ний контроллер Transform: Position/Rotation/Scale (Управление преобразованием: положением, вращением и масштабированием) и назначь- те ограничение по линии связи в качестве контроллера для управления фик- тивным объектом. (Аналогично остальным видам ограничений, данное огра- ничение можно назначать как из главного меню Animation так и в свитке As- sign Controller на панели Motion.)
520 Часть VI. Анимация 6. Основные функции ограничения по линии связи доступны из его свитка Link Parameters на панели Motion. В частности, целевые объекты связывания ука- зываются в списке Target, а связи вводятся и удаляются с помощью трех сле- дующих кнопок: Add Link (Добавить связь), Link to World (Связать с окружаю- щим миром) и Delete Link (Удалить связь). Область Key Mode (Режим установ- ки ключевых кадров) данного свитка относится только к иерархическим объ- ектам, и поэтому ее параметры в данном упражнении не используются. 7. Перейдите к нулевому кадру, щелкните на кнопке Add Link и выберите утенка. Этот объект должен появиться в списке Target наряду' с номером первого кадра, в котором связь становится активной. 8. Переместите ползунок временной шкалы анимации к кадру 180, обратив внимание на то, как фиктивный объект следует за утенком, аналогично описанному выше, когда это делалось с помощью инструмента Select and Link. Щелкните на кнопке Link to World (рис. 14.27). Рис. 14.27. Выберите окружающий мир (World) в качестве второго це- левого объекта связывания Теперь, когда окружающий мир является активным целевым объектом связы- вания, анимацию фиктивного объекта можно осуществить независимо от утенка. Такая анимация имитирует внезапное отвязывание веревки от утенка. Прежде чем переходить к анимации движения фиктивного объекта по ключе- вым кадрам, необходимо создать в кадре 180 ключевой кадр, в котором блокиру- ется положение данного объекта. Если не сделать этого, произойдет интерполя- ция от нулевого кадра до первого ключевого кадра анимации положения, сле- дующего после кадра 180. А это, в свою очередь, приведет к медленному отклоне- нию положения фиктивного объекта относительно утенка, когда на самом деле он должен быть связан с утенком.
Глава 14 Введение в анимацию 521 Для этого перейдите сначала к кадру 180, а затем к свитку PRS Parameters (Параметры расположения, вращения и масштабирования) и щелкните по очере- ди на кнопках Position и Rotation в области Create Key, чтобы создать ключевые кадры анимации положения и вращения без активизации режима Auto Key. Про должите работу над текущей сценой в следующем упражнении 1. Включите режим Auto Key и перейдите в окно вида сверху. Затем перейдите к кадру 195 (обратите внимание на то, что фиктивный объект уже не следует за утенком). Переместите фиктивный объект в плоскости XY текущего видо вого окна, чтобы сымитировать быстрое и резкое движение (рис. 14.28). Рис. 14 28 Переместите фиктивный объект в сторону от утенка, чтобы сымитировать внезапное отвязывание веревки В течение 55 оставшихся кадров анимации фиктивный объект необходимо переместить из стороны в сторону, установив его в конечном итоге в ис- ходное положение посредине веревки. Для таких последовательностей анимации полезно показать траекторию движения объекта. 2. Щелкните на кнопке Trajectories (Траектории), расположенной в верхней части панели Motion чтобы посмотреть путь движения фиктивного объекта в видовом окне (рис. 14.29).
522 Часть VI. Анимация Рис. 14.29. После щелчка на кнопке Trajectories панели Motion отображается путь движения выделенного объекта 3. Продолжайте перемещать фиктивный объект и устанавливать ключевые кадры до тех пор, пока он не вернется в исходное положение посредине веревки в кадре 250 (рис. 14.30). Перемещение объектов в активном режи- ме Trajectories может оказаться замедленным, поскольку траектория дви- жения объекта постоянно пересчитывается. 4. Выключите режим Auto Key. Переместите ползунок по временной шкале. Когда он достигнет кадра 180, веревка отвяжется от утенка. Остается лишь отравить утенка в свободное плавание вниз по течению, как только разорвется его связь с веревкой. 5. Выделите утенка и перейдите к кадру 180. Обратите внимание па положе- ние утенка на воде в текущем окне вида сверху. Перейдите на панели Motion в режим Parameters, щелкнув на одноименной кнопке, чтобы отобразить свиток Attachment Parameters. 6. Перейдите к кадру 250, щелкните па кнопке Set Position и переместите утенка вниз по течению. Если переместить ползунок временной шкалы анимации от кадра 180 к кад- ру 250, то можно заметить, что утенок не сразу устремляется вниз по тече- нию. На путь его движения могут оказывать влияние ключевые кадры ани- мации присоединения, если таковые были ранее установлены. В версии сцены, приведенной на прилагаемом к этой книге DVD, такие ключевые
Глава 14. Введение в анимацию 523 кадры были установлены в кадрах 220 и 235. Следовательно, их нужно уда- лить, с тем чтобы направить утенка вниз по течению. 7. Щелкните правой кнопкой мыши на каждом ключевом кадре анимации присоединения в промежутке между кадрами 180 и 250 на полосе трека и выберите команду Delete Key^duck: Attachment (Удалить ключевой кадр1^ Присоединение утенка) из всплывающего контекстного меню. Как только будут удалены все лишние ключевые кадры, утенок должен устремиться вниз по течению. Рис. 14.30. Используя отображаемую траекторию в качестве образца, выполните анимацию возврата фиктивного объекта в исходное положение Если посмотреть полученную в итоге анимацию в окне вида из камеры или же в упомянутом ранее фильме из файла duck.mov на прилагаемом к этой книге DVD, то можно увидеть, как утенок плывет по волнам, будучи привязанным к веревке, но в конечном итоге он освобождается от веревки и пускается в свободное плавание вниз по течению. Для сравнения результатов откройте завершенный вариант данной сцепы из файла \Project Files\Chl4_IntroductionToAnimation\ attachment_constraint_complete. max на прилагаемом к этой книге DVD. В следующем примере вам предстоит применить ограничение по поверхности в сочетании с анимацией по ключевым кадрам для управления деревянной кук- лой, балансирующей на раскачивающемся канате.
524 Часть VI. Анимация Ограничения по поверхности и линии взгляда Ограничение по поверхности аналогично ограничению по присоединению в том отношении, что оно ограничивает движение объекта поверхностью целевого объек- та. Основной недостаток ограничения по поверхности состоит в том, что в качестве целевых поверхностей в данном случае могут использоваться только параметриче- ские (бескаркасные) объекты. Для этой цели подходят следующие типы объектов. • Примитивные сферы, цилиндры и торы. • Отдельные квадратные лоскуты. • Объекты NURBS. • Объекты лофта. В следующем упражнении будет продемонстрировано применение ограниче- ния по поверхности для присоединения каркаса к объекту лофта. Такие объекты относятся к наиболее часто используемым составным объектам, особенно при построении органических форм, сложных вытянутых форм, а в данном случае — каната. Завершенный вариант данной анимации можно посмотреть в фильме из файла \Project Files\Chl4_IntroductionToAnimation\dolls.mov на при- лагаемом к этой книге DVD. 1. Откройте сцену из файла \Project Files\Chl4_IntroductionToAnima- tion\surface_constraint_begin. max на прилагаемом к этой книге DVD. Эта анимационная сцена продолжительностью 300 кадров содержит канат, натянутый между двумя шестами, и традиционную японскую игрушку кокеси (рис. 14.31). Рис. 14.31. Сцена в исходном виде: кукла и канат, на котором ей предстоит балан- сировать
Глава 14. Введение в анимацию 525 2. Переместите ползунок по временной шкале анимации (обратите внимание, как провис канат). Этот эффект был получен тем же методом, что и опи санное ранее присоединение веревки к утенку. В данном случае управление тремя вершинами на пути, заданном для объекта лофта, осуществляется следующими фиктивными объектами: Dummy_.left (Левый фиктивный объект), Dummy_middle (Средний фиктивный объект) и Dummy_right (Правый фиктивный объект). 3. Для изучения такой схемы управления выделите сплайн rope_path (Путь для каната) и проанализируйте стек его модификаторов (рис. 14.32). Рис. 14.32. Управление канатом осуще- ствляется с помощью целого ряда мо- дификаторов SplineSelect и Linked XForm СОВЕТ Если в любой момент канат начинает вести себя необычно или не следует за фиктивными объектами, убедитесь в том, что выделенные вершины передаются вниз по стеку и что на вершине стека выделен модификатор Linked XForm. 4. Для присоединения куклы к поверхности каната выделите ее и выберите ко- манду Animation^Constraints^Surface Constrant (Анимация^Ограничения1^ Ограничение по поверхности) или же назначьте ограничение по поверхности на позиции контроллера Position в свитке Assign Controller на панели Mot on. 5. Выберите канат в качестве текущего объекта для ограничения по поверх- ности, щелкнув на кнопке Pick Surface (Выбрать поверхность) в свитке Surface Controller Parameters (Параметры контроллера управления по по- верхности). При этом 3ds max не позволит выбрать такой неподходящий объект, как путь для каната. Объекты, подвергаемые ограничению по по- верхности, располагаются в соответствии с координатами проецирования UV на целевой поверхности. По умолчанию кукла помещается на канате в точке с координатами (0,0) (рис. 14.33).
526 Часть VI. Анимация Рис. 14.33. При ограничении по поверхности объекты располагаются в соответствии с координатами проецирования UV на целевой поверхности СОВЕТ Соблюдайте осторожность при изменении координат проецирования UV в свит- ке Surface Controller Parameters, поскольку ввод отрицательных значений этих координат может привести к аварийному отказу 3ds max. 6. Поместите куклу в центре каната, установив значение 50 параметра V Position (Положение в продольном направлении) в области Surface Options из свитка Surface Controller Parameters (рис. 14.34). Если изменить значение параметра U Position (Положение в поперечном направлении), основание куклы переместится подлине окружности каната. Активизируйте выравнивание в поперечном направлении, выбрав кнопку- переключатель в области Surface Options из свитка Surface Controller Pa- rameters, чтобы направить куклу в сторону от поверхности каркаса при ее повороте. Прежде чем продолжить данное упражнение, установите исход- ное значение 0 в поле параметра U Position и щелкните па кнопке- переключателе No Alignment (Без выравнивания). При перемещении ползунка по временной шкале кукла будет двигаться, по- вторяя деформации каната. Если кукла движется по канату туда и обратно, такое впечатление создается вследствие растягивания каната.
Глава 14. Введение в анимацию 527 Рис. 14.34. При установке значения 50% в поле параметра V Position объект, подвер- гаемый ограничению по поверхности, помещается посредине целевого объекта лофта (в данном случае — каната) 7. Для того чтобы кукла скользила по канат}', необходимо осуществить анима- цию параметра V Position. Для этого активизируйте режим Auto Key, перей- дите к кадру 100 и установите значение 55 параметра V Position. Кукла пе- реместится по канату на короткое расстояние. 8. Перейдите к кадру 250 и установите значение 45 параметра V Position. 9. Для того чтобы вернуть куклу в исходное положение, перейдите к кадру 300 и установите значение 50 параметра V Position. Выключите режим Auto Key. Теперь при перемещении ползунка по временной шкале кукла скользит по канат}' из стороны в сторону, повторяя деформации каната. Итак, кукла балансирует на канате, хотя и выглядит немного скованно. Поэто- му ей необходимо придать некоторое вращение. Сочетание ограничений с анимацией по ключевым кадрам В следующем упражнении вам предстоит установить вручную ключевые кадры анимации вращения куклы, в то время как ее движение осуществляется по треку анимации положения, организованному с использованием ограничения по по- верхности. 1. Включите режим Auto Key и перейдите к кадру 300. 2. Активизируйте трек анимации вращения, щелкнув па кнопке Rotation в свит- ке PRS Parameters на панели Motion. Щелкните на кнопке Rotation в области Create Key того же свитка, чтобы создать ключевой кадр.
528 Часть VI. Анимация 3. Щелкните на кнопке Z справа от метки Euler Parameters (Параметры Эйле- рового вращения). 4. Установите значение 1800 параметра Value в свитке Key Info (Basic) (Ос- нов ные сведения о ключевых кадрах). Выключите режим Auto Key. Теперь при перемещении ползунка по временной шкале анимации кукла пово- рачивается на 1800°, совершая пять полных оборотов в течение всей анимации. А что если добавить оживляемые объекты, пляшущие на самой кукле так же, как и она на канате? И в этом случае на помощь приходит ограничение по поверхности. Рекурсивные ограничения Ограничение по поверхности может использоваться для расположения новых объектов на уже подвергнутых о раничению объектах. Модель куклы представля- ет собой каркасный объект и поэтому не годится в качестве целевой поверхности но данное ограничение можно преодолеть, связав подходящую поверхность с куклой, что и будет продемонстрировано в следующем упражнении. 1. Отобразите в текущей сцене объекты doll_right (Правая кукла), Quad- Patch_left (Левый квадратный лоскут) и QuadPatch_right (Правый квадратный лоскут). Оба квадратных лоскута уже связаны с куклой и распо- ложены на ее плечах. Движение меньшей куклы будет ограничено плечами исходной куклы с использованием квадратных лоскутов в качестве целевых поверхностей. 2. Выделите объект dol l_right и ограничьте его по поверхности объекта Quad- Patch_right (рис. 14.35). Меньшая кукла должна скользить по плечам боль- шей куклы во время анимации, поэтому включите режим Auto Key, перейдите ккадру 100 и установите значение 55 параметра V Position (рис. 14.36). ПРИМЕЧАНИЕ Меньшая кукла не наследует вращение большей куклы, поскольку она не связана с ней в качестве порожденного объекта, а лишь подвергается ограничению, чтобы следовать по поверхности. 3. Перейдите к кадру 250 и установите значение 45 параметра V Position. Вы- ключите режим Auto Key 4. Для того чтобы создать копию меньшей куклы на другом плече большей, выделите объект doll_right и перетащите его, нажав клавишу <Shift>, а затем выбрав вариант Сору в качестве метода копирования в открывшем- ся окне. Назовите вновь полученную копию doll_lef t (Левая кукла). 5. Поместите новую куклу на друтом плече большей куклы, выбрав объект QuadPatch_left в качестве текущего объекта для ограничения по поверх- ности в свитке Surface Controller Parameters на панели Motion (рис. 14.37).
Глава 14. Введение в анимацию 529 Рис. 14.35. Ограничение движения меньшей куклы поверхностью квадратного лоскута, связанно- го с большей куклой, позволяет создать иллюзию скольжения меньшей куклы по плечам большей Рис. 14.36. Меньшая кукла остается присоединенной но не поворачивается
530 Часть VI. Анимация Рис. 14.37. Копирование меньшей куклы на другое плечо большей При перемещении ползунка по временной шкале анимации новая копия меньшей куклы начинает двигаться на дальнем краю плеча большей куклы, зер- кально отображая положение оригинала, поскольку оба квадратных лоскута яв- ляются зеркально отображаемыми объектами. Если бы это было не так, для орга- низации зеркально отображаемого движения пришлось бы изменить значения параметра V Position в соответствующих ключевых кадрах анимации. Далее для управления наклоном меньших кукол будет использоваться новое ограничение. Ограничения по линии взгляда Ограничение по линии взгляда позволяет управлять положением объекта по любой из его осей, чтобы он был постоянно направлен в сторону целевого объек- та, даже если тот движется. 1. Сделайте мельче изображение в окне вида спереди, выделите объект Dummy_lookat (Фиктивный объект по линии взгляда) и активизируйте ре- жим Тrajectories на панели Motion. Появится траектория движения данного фиктивного объекта (рис. 14.38).
Глава 14. Введение в анимацию 531 Рис. 14.38. Данный фиктивный объект служит в качестве цели для ограничения по линии взгляда Таким образом, обе меньшие куклы подвергаются ограничению, чтобы быть постоянно направленными на данный фиктивный объект. Благодаря этому они изящно наклоняются в течение всей анимации. 2. Вернитесь в режим Parameters па панели Motion и выделите объект doll_right. Выберите сначала команду Animation^Constraints^LookAt Constraint (Анимация^Ограничения^Ограничение по линии взгляда), а затем фиктивный объект Dummy_lookat в качестве цели для данного вида ограничения. Выключите кнопку Add LookAt Target (Добавить цель для ог- раничения по линии взгляда) в свитке LookAt Constraint. 3. Кукла сразу же ляжет на бок, поскольку ее ось X по умолчанию назначена в качестве оси для выравнивания этого объекта. 4. Для того чтобы поправить ориентацию куклы, выберите вариант Z в каче- стве избранной оси для ограничения по линии взгляда в области Select LookAt Axis из свитка LookAt Constraint.
532 Часть VI. Анимация 5. Повторите пп. 2, 3 данного упражнения для объекта doll_left и перейди те к окну вида из камеры, чтобы лучше видеть, как кукла наклоняется в сто- рону'целевого фиктивного объекта (рис. 14.39). Рис. 14.39. Обе куклы ориентированы с помощью ограничения по линии взгляда В результате наклона куклы пересекаются в ряде моментов во время анимации. Во избежание этого в следующем упражнении будут изменены начальные значе- ния параметров их вращения. 1. Если объект doll_left выделен, перейдите к панели Motion и щелкните на кнопке Set Orientation (Установить ориентацию) в свитке LookAt Constraint. Это позволит поворачивать куклу независимо от ограничения по линии взгляда. 2. Поверните куклу на -50° вокруг оси Z в текущем видовом окне (рис. 14.40). 3. Выключите кнопку Set Orientation и повторите эту же процедуру для объек- та doll_right, повернув его на этот раз на 50°, чтобы обе куклы оказались лицом друг к другу'. Благодаря этому вероятность их пересечения сводится к минимуму. Для сравнения посмотрите завершенный вариант данной сцены из файла \Project Files\Chl4_IntroductionToAnimation\surface_constraint_ complete.max на прилагаемом к этой книге DVD. Как было показано в приведен- ных выше упражнениях, ограничения по поверхности и линии взгляда очень удоб- ны для управления различными элементами анимации объектов. В последующих упражнениях этой главы будут продемонстрированы возможности ограничений по линии пути и положению, а также особенности связывания параметров.
Глава 14. Введение в анимацию 533 Рис. 14.40. Воспользуйтесь кнопкой Set Orientation, чтобы изменить основную ориентацию куклы Ограничения по линии пути В следующем упражнении ограничения по линии пути будут использоваться для запуска ракеты и вывода ее на орбиту вокруг малой планеты. Ограничение по линии пути позволяет управлять положением объекта на одном или нескольких заданных путях со взвешенным влиянием. 1. Откройте сцену из файла \Project Files\Chl4_Introduction- ToAnimation\path_constraint_begin.max на прилагаемом к этой кни- ге DVD. Для просмотра анимации этой сцены в завершенном виде посмот- рите фильм из файла launch.mov в той же самой папке. Данная сцена со- держит вращающуюся планету, ракету' и небольшую луну (рис. 14.41). В данной сцене имеются также два пути: путь path_launch определяет на- чальный курс ракеты, а путь path_moon_orbit — движение ракеты по ор- бите вокруг луны. Как видите, оба пути расположены таким образом, чтобы последняя вершина на пути запуска ракеты совпадала с первой вершиной на пути ее движения по орбите. Такое совмещение вершин обоих путей требуется при ограничении движения объекта, переходящего с одного пути на другой.
534 Часть VI. Анимация Рис. 14.41. Простая космическая сцена 2. Выделите путь path_launch, перейдите сначала к панели Modify, а затем на уровень подобъектов-вершин. Выделите в окне вида сверху первую вер- шину на данном пути (т.е. вершину, совпадающую с местоположением раке- ты) (рис. 14.42). Рис. 14.42. Выделите первую вершину на пути запуска ракеты 3. Не покидая уровня подобъектов-вершин, примените модификатор Linked XForm. Выберите фиктивный объект Dummy_launchpoint в качестве управ- ляющего объекта. Этот вспомогательный объект будет управлять первой точ- кой на пути запуска ракеты, тем самым определяя место, с которого она будет стартовать.
Глава 14. Введение в анимацию 535 В течение первых 40 кадров анимации ракета должна оставаться на по- верхности планеты, а затем стартовать, поэтому очень важно, чтобы ракету было ясно видно в кадре 40. 4. Перейдите к кадру 40, выделите фиктивный объект и перейдите к окну вида из камеры. Воспользуйтесь инструментом Normal Align (Выравнивание по нормали), чтобы поместить пустой объект на поверхности планеты. Для это- го выберите данный инструмент из всплывающей панели Align, расположен ной на основной панели инструментов, щелкните сначала на фиктивном объекте, а затем щелкните и перетащите курсор мыши по поверхности пла- неты, чтобы поместить ракету рядом с центром видимой стороны планеты (рис. 14.43). Обратите внимание, как начало пути для запуска ракеты пере- мещается вместе с фиктивным объектом. Щелкните па кнопке ОК диалогово- го окна Normal Align, добившись удовлетворительного результата. Рис. 14.43. Воспользуйтесь инструментом Normal Align, чтобы поместить фиктивный объект на поверхности планеты 5. Для того чтобы установить оживляемую связь между фиктивным объектом и планетой, назначьте для фиктивного объекта ограничение по линии свя- зи, выбрав планету в качестве цели. Установите это ограничение в кадре 40, чтобы положение фиктивного объекта не изменялось во времени. Если переместить ползунок по временной шкале анимации, то можно заме- тить, как пустой объект вращается вместе с планетой вплоть до кадра 40. А начиная с кадра 41, путь для запуска ракеты необходимо отсоединить от планеты. Для этого необходимо установить дополнительную связь с окру- жающим миром. 6. Перейдите сначала к кадру 41, а затем к панели Motion и щелкните на кноп- ке Link to World в свитке Link Parameters Теперь при перемещении ползун- ка по временной шкале анимации пустой объект вращается вместе с плане- той только до кадра 41.
536 Часть VI. Анимация Анимация ракеты В следующем упражнении вам предстоит установить ракету на пути ее движения. Но прежде необходимо организовать движение трех других объектов за ракетой. 1. Выделите объекты Omni_rocketf lame (т.е. источник света для пламе- ни от ракеты), PF Source 01 (т.е. излучатель частиц дыма от ракеты) и Rocket_f lame (т.е. каркасный объект пламени от ракеты). 2. Воспользуйтесь инструментом Select and Link чтобы связать все три ука- занных выше объекта с ракетой. Для проверки иерархической связи меж- ду этими объектами установите флажок Display Subtree (Отобразить под- дерево) (рис. 14.44). Рис. 14 44 В данной сцене за ракетой должны следовать три объекта 3. Для того чтобы поместить ракету на пути ее запуска, выделите этот объект и назначьте ограничение по линии пути на треке анимации его положения, выбрав в качестве целевого пути объект path_launch. Данное ограниче- ние можно назначить в любом кадре анимации. 4. Перейдите к нулевому кадру и убедитесь в том, что ракета находится на по- верхности планеты (рис. 14.45). 5. Для выравнивания ракеты по заданному пути перейдите к панели Motion и ус- тановите флажок Follow (Следовать), а затем выберите ось Z в области Axis из свитка Path Parameters (Параметры пути). По умолчанию в этом свитке уста- новлен флажок Constant Velocity, определяющий постоянную скорость дви- жения ракеты независимо от расстояния между вершинами пути.
Глава 14. Введение в анимацию 537 Рис. 14.45. Ракета установлена на пути ее запуска с помощью ограничения по линии пути При ограничении по линии пути в первом и последнем кадрах фрагмента анимации по умолчанию устанавливаются ключевые кадры анимации по- ложения объекта, подвергаемого ограничению по пути в пределах от 0 до 100%. Эти значения придется изменить в первую очередь, чтобы ракета ос- тавалась на поверхности планеты плоть до ее запуска в кадре 40. 6. Выделите ключевой кадр в нулевом кадре на временной шкале анимации, нажмите клавишу <Shift> и перетащите данный ключевой кадр в кадр 40, чтобы создать его копию. Этот ключевой кадр содержит только 0 % переме- щения по заданному пути (параметр % Along Path в свитке Path Parameters). Таким образом, ракета остается в начале пути своего движе- ния вплоть до кадра 40. 7. После запуска ракете необходимо придать определенное ускорение, поэто- му переместите ключевой кадр из кадра 75 в кадр 340. Таким образом, ра- кета должна достичь конца пути своего запуска к кадру 75. Взвешивание влияния путей и передвижение по ним в процентах Начиная с кадра 76, ракета должна вращаться по орбите вокруг луны, следуя по новому пути, что вам и предстоит сделать в следующем упражнении. 1. Щелкните на кнопке Add Path (Добавить путь) и выберите путь path_ moon_orbit. Ракета последует по довольно причудливой траектории, представляющей собой нечто среднее между обоими ее путя :и движения, поскольку веса влияния этих путей одинаковы. Поэтому необходимо осуществить анима- цию весов влияния обоих путей таким образом, чтобы управлять движени- ем ракеты сначала по пути ее запуска, а затем по пути движения по орбите. 2. Убедитесь в том, что в свитке Path Parameters по-прежнему выделен путь path_moon_orbit, а вес его влияния равен нулю. При этом управление дви- жением ракеты, как и прежде, будет возвращаться к пути запуска ракеты. 3. Перейдите к кадру 76, включите режим Auto Key и установите вес влияния пути движения по орбите равным 50 в поле параметра Weight из свитка Path Parameters. Выделите в этом же свитке путь path_launch и установи- те вес его влияния равным 0.
538 Часть VI. Анимация 4. Таким образом, в установленных ключевых кадрах управление движением ракеты будет передаваться пути ее движения по орбите, начиная с кадра 76. Однако влияние обоих путей в промежутке между кадрами 0 и 75 по- прежнему одинаково. Для того чтобы исправить это положение, перейдите к кадру 75 и установите ключевой кадр со значением 50 параметра Weight для пути path_launch и еще один ключевой кадр со значением 0 парамет- ра Weight для пути path_moon_orbit. Оба пути должны плавно передавать управление движением ракеты друг другу в промежутке между кадрами 75 и 7 6, как следует из окна Track View (рис. 14.46). Рис. 14.46. Управление движением ракеты передается от одного пути к другому Тем не менее ракета не будет двигаться по орбите до тех пор, пока не будет осуществлена анимация ее параметра % Along Path. 5. Убедитесь в том, что режим Auto Key все еще активен, перейдите к кадру 76 и установите значение 1 параметра % Along Path в свитке Path Parameters. Ракета будет начинать свое движение по орбите с 1% ее пути, чтобы в по- лете ракеты не произошла заминка при переходе от конца пути ее запуска (100%) в начало пути ее движения по орбите (0%), если учесть, что это фактически одна и та же точка ее полета. 6. Ракета должна двигаться по орбите вокруг луны в течение 2 секунд. Поэто- му перейдите к кадру 300 и установите значение 100 параметра % Along Path. В итоге ракета быстро совершит два витка вокруг луны в промежутке между кадрами 76 и 130. 7. Для того чтобы осуществить переход ракеты на другую орбиту, перейдите к кадру 131 и установите значение 3,5 параметра % Along Path. Выключите режим Auto Key. В результате уменьшения данного параметра от 100 до 3,5% устраняется заминка, которая может произойти при повторении дви- жения ракеты по данному пути. Остальные 270 кадров данного фрагмента анимации необходимо разделить на еще три витка вокруг луны продолжительностью 70 кадров каждый.
Глава 14. Введение в анимацию 539 8. Выделите ключевые кадры в кадрах 130 и 131 и скопируйте их в кадры 2 00 и 201, нажав клавишу <Shift>, чтобы переместить их на 70 кадров вперед по полосе трека. 9. Скопируйте ключевые кадры из кадров 269и270в кадры 339 и 340, чтобы завершить циклическое движение ракеты по орбите (рис. 14.47). Рис. 14.47. Ракета перемещается по пути запуска один раз (это движение обозначено пер- вым линейно изменяющимся участком кривой) и четыре раза по орбите (это движение обо- значено четырьмя остальными линейно изменяющимися участками) Одни пути внутри других Итак, пути движения ракеты определены. Но что если требуется организовать вращение луны вокруг планеты, когда ракета продолжает свое движение по орби- те вокруг самой луны? Этого не трудно добиться, если сохранить взаимосвязь е- жду ракетой и путем ее движения по орбите, что и будет продемонстрировано в следующем упражнении. f 1. Покажите на сцене объекты Dununy_moonorbit и path_moon. Эти объекты будут определять путь, по которому луна будет следовать вокруг планеты. 2. Если переместить ползунок по временной шкале анимации, то можно заме- тить, что движение фиктивного объекта Dummy_moonorbit уже ограниче- но новым путем. Если же связать луну с этим фиктивным объектом, она окажется связанной и с путем движения по орбите. 3. Перейдите к нулевому кадру, выделите луну и свяжите ее с фиктивным объ- ектом Dummy_moonorbit. При перемещении ползунка по временной шкале анимации луна продвигается по своему пути, заметно отставая от ракеты в кадре 7 б Ясно, что это совершенно не тот эффект, который требуется получить. 4. Перейдите в нулевой кадр и разорвите связь с луной. 1 5. Перейдите к кадру 7 б и еще раз свяжите луну с упомянутым выше фиктив- ным объектом. Теперь луна занимает исходное положение при появлении ракеты в данном кадре. 6. Выделите путь path_moon_orbit в кадре 76 и свяжите его с луной.
540 Часть VI. Анимация Если связать путь движения по орбите с луной в нулевом кадре, возникнет за- труднение в кадре 76, когда ракета должна переходить от пути запуска к пути дви- жения по орбите. Ведь путь движения по орбите поворачивается, изменяя свою ис- ходную ориентацию, поэтому оба пути движения ракеты уже не будут соприкасать- ся друг с другом, а следовательно, ракета совершит резкий скачок в промежутке ме- жду кадрами 75 и 76 (рис. 14.48). Рис. 14.48. Если оба пути не соприкасаются друг с другом, ракета совершит резкий скачок при смене пути своего движения При перемещении ползунка по временной шкале анимации наблюдается плав- ный переход ракеты с одного пути ее движения на другой, несмотря на то, что один из этих путей вращается. Далее для управления местоположением спутника будет использоваться ограничение по положению. Ограничения по положению Ограничение по положению позволяет управлять местоположением объекта с ис- пользованием одного или нескольких других объектов со взвешенным влиянием. Его действие можно сравнить с магнитом, притягивающим и отталкивающим предметы. 1. Покажите на сцене объекты Dummy_satellite и [Satellite]. Фиктив- ный объект Dummy—Satellite служит для управления положением спут- ника (объекта [Satellite]). 2. Выделите спутник и примените к нему ограничение по положению, выбрав фиктивный объект Dummy_satellite в качестве целевого. Спутник сразу
Глава 14. Введение в анимацию 541 же займет положение фиктивного объекта как единственной цели для из- менения его положения. 3. Введите планету и луну' в список Target из свитка Position Constraint (Ограничение по положению) на панели Motion (рис. 14.49). ,Рис. 14.49. При вводе еще двух целей для ограничения по положению усредняется положе- ние спутника Влияние целей для ограничения по положению становится заметным при перемещении ползунка по временной шкале анимации. При этом луна явля- ется единственной целью с оживляемым положением, поэтому спутник не- много притягивается к пей во время своего движения. 4. Для того чтобы фиктивный объект Dummy_satellite оказывал большее влияние на положение спутника, выберите его в списке Target и установите его вес равным 100 в поле параметра Weight. 5. Выделите фиктивный объект Dummy_satellite на сцене и включите ре- жим Auto Key. Прежде всего, с его помощью необходимо переместить спут- ник ближе к ракете, когда она выводится на орбиту. 6. Перейдите к кадру 75 и переместите фиктивный объект в окне вида сверху ближе к пути запуска ракеты (рис. 14.50). Обратите внимание, как спутник продолжает свой путь впереди фиктивного объекта.
542 Часть VI. Анимация Рис. 14.50. Анимация положения фиктивного объекта для перемещения спутника 7. Переместите фиктивный объект приблизительно на 70 единиц вверх по оси Z в окне вида из камеры, чтобы поднять спутник выше в данном видо- вом окне. 8. По мере продвижения анимации сцены необходимо притянуть спутник ближе к луне. Для этого перейдите к кадру 140 и переместите фиктивный объект в окне вида сверху в точку' с координатами (70,140), чтобы спутник следовал за луной. 9. Перейдите к кадру 2 00 и переместите фиктивный объект в точку' с коорди- натами (13, -220) (рис. 14.51). 10. Перейдите к последнему кадру анимации и переместите фиктивный объект в точку с координатами (115,-550) (см. рис. 14.51).
Глава 14. Введение в анимацию 543 № гоТм Рис. 14.51. Путь движения цели, используемой для ограничения движения спутника по по- ложению (в режиме Trajectory) 11. Вернитесь в окно вида из камеры и переместите ползунок по временной шкале анимации, чтобы посмотреть, как спутник летает но сцене, едва ли не покидая кадр. Для ускорения его движения из кадра достаточно осуще- ствить анимацию взвешивающего влияния целей, используемых для огра- ничения по положению. 12. Выделите спутник и установите значение 30 параметра Weight на панели Motion для планеты и луны в качестве целей, используемых для ограниче- ния по положению. Выключите режим Auto Key. Теперь спутник точнее следует за фиктивным объектом во время анимации сцены благодаря ослаблению влияния двух других целей, используемых для ограничения по положению. Данной сцене все же чего-то не хватает, а именно: взрывных эффектов при за- пуске ракеты. В следующем разделе сцена будет усовершенствована на примере применения манипуляторов для снаряжения анимации.
544 Часть VI. Анимация Манипуляторы Манипуляторы представляют собой экранные вспомогательные объекты типа ползунковых регуляторов, которые могут быть связаны с отдельными треками анимации параметров одного или нескольких объектов, находящихся на сцене. В следующем упражнении вам предстоит создать два манипулятора в виде ползун- ковых регуляторов для управления элементами запуска и полета ракеты. 1. Перейдите к панели Create и щелкните на кнопке Helpers (Вспомогательные объекты), затем выберите категорию Manipulators (Манипуляторы) из распо- ложенного ниже раскрывающегося списка. 2. Перейдите к окну вида спереди, поскольку' манипулятор невозможно создать в окне вида из камеры. Щелкните сначала на кнопке Slider (Ползунковый ре- гулятор), а затем в текущем видовом окне, чтобы создать ползунковый ма- нипулятор. Присвойте этому' манипулятору имя Slider_launch_shake (Ползунковый регулятор вибрации при запуске ракеты). 3. Вновь созданный ползунковый регулятор появится в активном видовом ок- не. Перейдите к панели Modify и введите launch shake в поле Labe (Метка) из свитка параметров данного регулятора, чтобы изменить его имя, отображаемое в видовых окнах. 4. Вернитесь к виду из камеры и переместите ползунковый регулятор в левый верхний угол видового окна, используя иистру'мент Select and Manipuate (рис. 14.52). Если ползунковый регулятор отсутствует в окне вида из каме- ры, он может оказаться за пределами обрезаемого участка изображения. В таком случае перейдите в окно вида спереди, чтобы переместить ползун- ковый регулятор ближе к центру видового окна. В частности, для переме- щения ползункового регулятора в окне ортогонального вида щелкните и перетащите небольшой прямоугольник, расположенный слева от ползун- кового регулятора. Вновь щелкните на кнопке инструмента Select and Ma- nipulate, чтобы выйти из данного режима. Рис. 14.52. Этот ползунковый регулятор будет служить для управления вибрациями ракеты при ее запуске Основное назначение данного ползункового регулятора — дополнить дви- жение ракеты вибрациями при ее запуске. Для этой цели контроллер управления по зашумлению (Noise) необходимо расположить на греке ани- мации положения фиктивного объекта, управляющего положением ракеты.
Глава 14. Введение в анимацию 545 5. Выделите фиктивный объект Dummy_launchpoint и перейдите к свитку As- sign Control er на панели Motion. Раскройте трек Link Params (Параметры связывания), чтобы лучше видеть отдельные треки анимации положения, вращения и масштаба. 6. Выделите трек Position: Position XYZ, щелкните на кнопке Assign Con- trol er, выберите из списка контроллер Position List и щелкните на кнопке ОК. 7. Раскройте трек анимации положения, обозначенный теперь меткой Posi- tion: Position List, чтобы увидеть добавленный пустой трек Avail- able, т.е. доступный трек. 8. Выделите трек Available и назначьте для него контроллер Noise Position. Откроется диалоговое окно свойства данного контроллера. 9. С помощью этого контроллера необходимо создать небольшие вибрации по оси Z, поэтому установите значение 0 параметров X Strength и Y Strength а также значение 5 параметра Z Strength, т.е. интенсивность по осям X, Y и Z. 10. Закройте диалоговое окно свойств контроллера Noise. При перемещении ползунка по временной шкале анимации наблюдаются вибрации фиктивно- го объекта. Связывание ползункового регулятора с управляемым параметром В следующем упражнении ползунковый регулятор будет связан с параметром Weight контроллера Noise. 1. Выделите ползунковый регулятор, щелкните правой кнопкой мыши и вы- берите команду Wire Parameters^Ob ect (SliderJ^value (Связать параметры1^ Объект ползунковый регулятор'Фзначение) из всплывающего квадратного меню. Это выходное значение ползункового регулятора. Выберите фик- тивный объект Dummy_launchpoint в качестве целевого, воспользовав- шись командой Transform=>Link Params^Positon^Weights^Weight: Noise Posit on (Преобразование^Параметры связыванияФПоложение^Веса1^ Вес влияния контроллера управления положением по зашумлению) из квад- ратного меню (рис. 14.53). 2. Откроется диалоговое окно Parameter Wiring (Связывание параметров), где в левом верхнем подокне находится значение ползункового регулятора, а в пра- вом верхнем подокне— трек анимации параметра Weight: Noise Position фиктивного объекта. Щелкните на кнопке со стрелкой вправо, чтобы задать направление для управления параметрами от ползункового регулятора к фик- тивному объекту. Щелкните на кнопке Connect (Соединить), чтобы активизи- ровать связывание параметров указанных объектов (рис. 14.54). 3. Диалоговое окно Parameter Wiring относится к типу безрежимных окон. Поэтому, когда оно открыто, переместите ползунок по временной шкале, чтобы оценить результаты связывания параметров. Непосредственный ре- зультат таков, что эффект вибрации быстро исчезает, поскольку устанавли- ваемое по умолчанию значение ползункового регулятора, которое теперь соответствует весу влияния контроллера Noise, равно нулю.
546 Часть VI. Анимация Рис. 14.53. Связывание параметров ползункового регулятора и фиктивного объекта Рис. 14.54. Диалоговое окно Parameter Wiring 4. Для получения более плавного эффекта дрожания введите следующее вы- ражение в правом нижнем подокне с меткой Expression for Dummy_ launchpoint's Weight_Noise_Position: value/100 5. Закройте диалоговое окно Parameter Wiring и перетащите инструментом Select and Manipulate индикатор Adjust Value (Регулировка значения) пол- зункового регулятора вправо до максимального значения 100. При пере- мещении ползунка по временной шкале анимации наблюдается незначи- тельная вибрация ракеты и ее фиктивного объекта. Верните значение пол- зункового регулятора к 0 и выйдите из режима Select and Manipulate. Ввод частиц Вполне разумно дополнить вибрации ракеты при запуске еще и дымом. Для этой цели в следующем упражнении будет использоваться уже присутствующая в сцене система частиц Particle Flow (Поток частиц). 1. Нажмите клавишу <6>, чтобы открыть диалоговое окно Particle View (Вид частиц) (рис 14.55).
Глава 14. Введение в анимацию 547 Рис. 14.55. Диалоговое окно Particle View Если вы еще не знакомы с управляемой событиями системой частиц Particle Flow, входящей в состав 3ds max, то поначалу вам будет непросто приспосо- биться к блок-схемному принципу ее действия. По существу, она представляет собой поток частиц, исходящих из источника с пиктограммой PF Source 01, связанного с ракетой в начале работы над данной сценой, для различных собы- тий, при которых за ракетой тянется постепенно исчезающий шлейф дыма. Подробнее о системе частиц Particle Flow речь пойдет в главе 18, где представ- лено упражнение по созданию эффекта, аналогичного дыму. 2. В данный момент система частиц выключена, о чем свидетельствует пикто- грамма погасшей лампочки в строке заголовка PF Source 01 первого собы- тия. Щелкните на пиктограмме лампочки, чтобы зажечь ее и тем самым ак- тивизировать поток частиц. Перетащите ползунок по временной шкале ани- мации, чтобы увидеть, как из ракеты исходит поток частиц дыма (рис. 14.56). Свяжите ползунковый регулятор с двумя параметрами данного потока час- тиц таким образом, чтобы по мере увеличения вибрации при запуске раке- ты частицы излучались быстрее и рассеивались сильнее.
548 Часть VI. Анимация iMXfhiheU Рис. 14.56 Частицы дыма, испускаемые ракетой 3. Закройте диалоговое окно Particle V 6W и перейдите к нулевому кадру, что- бы ускорить реакцию 3ds max на изменения, вносимые в поток частиц в ви- довом окне. 4. Выделите ползунковый регулятор и, как прежде, щелкните правой кнопкой мыши, чтобы выбрать из квадратного меню команду Wi'6 Parameters1^ Ob- ject (Slider)^value. Выберите с помощью команды Obect (PF Source)^ Smoke Trail^Speed OZ^Speed (Объект источник потока частиц1^ Шлейф дыма^Скорость ОТ^Скорость) объект PF Source 01 в качестве целевого. 5. Установите направление для управления параметрами от ползункового ре- гулятора к объекту PF Source 01 введя следующее выражение в подокне с меткой Expression for PF Source Ol’s Speed: value/10+15 6. Щелкните на кнопке Connect, чтобы активизировать связывание парамет- ров указанных объектов. Введенное выше выражение позволяет сохранить первоначальную скорость движения частиц равной 15 и добавить значе- ние, равное одной десятой заданного значения ползункового регулятора. Таким образом, когда ползунковый регулятор достигнет максимальной от- метки 100%, ракета разовьет скорость 25. НА ЗАМЕТКУ Как только параметр системы частиц Particle F ow будет связан с манипулятором он уже не подлежит правке непосредственно в диалоговом окне Particle V ew Это положение распространяется и на параметры данной системы частиц, управляемые манипулятором. 7. С помощью данного ползункового регулятора можно также управлять степенью рассеивания частиц. Для этого свяжите значение ползункового регулятора с параметром системы частиц аналогично описанному выше, но на этот раз вы- брав команду Object (PF Source)^Smoke Trail^Speed 07=>D vergence (Объект (источник потока частиц)с>Шлейф дыма1^Скорость 07=>Расхождениё). В по- докне связываемого параметра Divergence введите следующее выражение: value*l.8 По мере перемещения ползункового регулятора от 0 до 100% угол рассеи- вания частиц дыма будет линейно нарастать от 0 до 180°.
Глава 14. Введение в анимацию 549 Анимация ползунковых регуляторов Итак, управление с помощью упомянутого выше ползункового регулятора ор- ганизовано. А в следующем упражнении будет осуществлена анимация его значе- ния, чтобы извлечь пользу из этого регулятора. 1 Перейдите к кадру 10, включите режим Auto Key и активизируйте инстру- мент Select and Manipulate. Перетащите треугольный маркер ползункового регулятора к отметке 70,0. 2. Перейдите к кадру 40 и увеличьте до максимума, т.е. до 100, 0, значение ползункового регулятора. 3. Перейдите к кадру 41 (т.е. к первому кадру после отрыва ракеты от поверх- ности планеты) и уменьшите значение ползункового регулятора до нуля. Выключите режим Auto Key. Если переместить ползунок по временной шкале анимации, то можно уви- деть, как частицы дыма испускаются с большей скоростью и сильнее рас- сеиваются вплоть до момента запуска ракеты. А теперь необходимо создать еще один ползунковый регулятор для управления пламенем ракеты. 4. Выделите исходный ползунковый регулятор и получите его копию, при- своив ей имя Slider_flame_strength (Ползунковый регулятор силы пламени от ракеты). Измените его метку на flame strength в поле Label на панели Modify. 5. Манипуляторы нельзя перемещать в видовом окне обычным инструментом перемещения, хотя координаты их местоположения доступны на панели Modify. В частности, параметры X Position и Y Position определяют расстоя- ние от верхнего правого утла видового окна до ползункового регулятора. Следовательно, увеличьте значение параметра Y Pos tion, чтобы поместить копию ползункового манипулятора ниже ее оригинала (рис. 14.57). Рис. 14.57. Воспользуйтесь новым значением параметра Y Position, чтобы перемес- тить ползунковый регулятор в видовом окне
550 Часть VI. Анимация 6. Очевидно, что ключевые кадры анимации значения второго ползункового регулятора должны быть иными Поэтом}’ выделите все три ключевых кад- ра на полосе трека, щелкните правой кнопкой мыши и выберите команду Delete Selected Keys (Удалить выделенные кадр). Оставьте ключевой кадр в нулевом кадре анимации при нулевом значении ползункового регулятора. 7. Свяжите значение данного ползункового регулятора с параметром масшта- ба каркасного объекта пламени от ракеты (Rocket—flame) аналогично описанном}' выше по команде Transform1^ Scale^Z Scale (Преобразование1^ Масштаб^Масштаб по оси Z) (рис. 14.58). Укажите направление для управ- ления параметрами от ползункового регулятора к объект}' Rocket—flame, щелкнув на кнопке с соответственно направленной стрелкой, и щелкните на кнопке Connect, прежде чем закрыть диалоговое окно Parameter Wiring. Рис. 14.58. Это выражение позволяет управлять силой пламени от ракеты с помощью ползункового регулятора 8. Если проверить ползунковый регулятор силы пламени в действии, перейдя к кадру 50 и увеличив значение этого регулятора до 100, то можно заме- тить, что шлейф пламени оказывается настолько длинным, что выходит за пределы видового окна. Поэтом}' следует уменьшить пределы действия данного ползункового регулятора, изменив на 60 значение параметра Maximum на панели Modify 9. Данный ползунковый регулятор можно также использовать для управления яркостью и пределами действия источника света, присоединенного к объекту пламени от ракеты. Для этой цели вновь отройте диалоговое окно Parameter Wiring выбрав команду An mation^Wire Parameters^Parameter Wire Dialog 10. Выделите ползунковый регулятор Slider_f lame_strength в диалоговом окне Parameter Wiring и перейдите к треку value: Bezier Float в левом подокне. Щелкните на кнопке Find Next Parameter (Найти следующий па- раметр) с пиктограммой бинокля над правым подокном, чтобы автомати- чески выбрать параметр, уже связанный со значением ползункового регу- лятора. Первым таким параметром будет Weight: Noise Position, свя-
Глава 14. Введение в анимацию 551 занный со значением ползункового регулятора вибраций при запуске раке- ты. Указанной кнопкой поиска можно пользоваться для последовательного перехода от одного связанного параметра к другому. | НА ЗАМЕТКУ_________________________________________________________ Подсказка, всплывающая под пиктограммой кнопки Find Next Parameter, указы- вает на то, что найдены будут только те параметры, которые связаны с парамет- ром в противоположном подокне. Но на самом деле в результаты поиска вклю чаются любые связанные параметры. 11. Перейдите в правом подокне к параметру Obj ects^Rocket^Omni— rocketf lame^Obj ect (Omni Light) ^Multiplier. 12. Соедините значение ползункового регулятора с параметром множителя ис- точника света, используя следующее выражение: value/60+1 В итоге сила света данного источника будет изменяться от 1,0 до 2,0 при перемещении ползункового регулятора от минимального до максимально- го значения. Не забудьте указать направление для управления параметрами и соединить их соответствующей связью. 13. Для связывания значения ползункового регулятора с пределами действия источника света перейдите к параметру Decay Falloff (Спад затухания) в правом подокне. Установите связь с этим параметром, используя следую- щее выражение: value/6+ЗО 14. Источник света будет действовать в пределах от 30 до 40 единиц. Закройте диалоговое окно Parameter Wiring. А теперь необходимо осуществить ани- мацию ползункового регулятора и посмотреть, как он действует. 15. Убедитесь в том. что ползунковый регулятор flame strength находится на нулевой отметке. Включите режим Auto Key, перейдите к кадру 2 0 и ус- тановите значение 15 в поле Value из свитка параметров данного ползунко- вого регулятора на панели Modify. НА ЗАМЕТКУ Анимацию ползунковых регуляторов можно осуществить и на панели Modify, не пользуясь инструментом Select and Manipulate. 16. Перейдите к кадру 43, который следует непосредственно после запуска ра- кеты, и увеличьте до 32 значение в поле Value Обратите внимание, как увеличивается длина пламени от ракеты по мере перемещения ползунково- го регулятора. 17. Перейдите к кадру 47 и создайте большую вспышку пламени, увеличив зна- чение ползункового регулятора до максимума, т.е. до 60. Если же устано- вить максимальное значение свыше 60 в поле Value на панели Modify, авто- матически увеличится и значение в поле Maximum. 18. Перейдите к кадру 60, когда ракета достигает луны, и уменьшите значение пол- зункового регулятора до нормальной величины 15 для крейсерского полета.
552 Часть VI. Анимация При желании вы можете дополнить анимацию вспышек пламени от ракеты, установив ключевые кадры со значением 15 по обе стороны от максимального значения 60 ползункового регулятора. Например, для анимации вспышки пламе- ни в кадре 100, когда ракета проходит перед луной, установите следующем клю- чевые кадры. • Кадр 100: Value - 60. • Кадр 93: Value = 15. • Кадр 105: Value = 15. • По завершении выключите режим Auto Key. Для сравнения полученных результатов откройте сцену из файла \Project Files\Chl4_IntroductionToAn mation\path_constraint_complete.max па прилагаемом к этой книге DVD. Манипуляторы могут стать эффективными средствами для упрощения работы над анимацией. Их целесообразно использо- вать для одновременной анимации нескольких параметров. Резюме В этой главе у вас была возможность взять на вооружение немало инструмен- тов для достижения поставленных целей в анимации. Независимо от того, какие творческие замыслы требуется воплотить в жизнь в 3ds max разумный выбор средств для создания анимации приносит большие плоды с точки зрения повы- шения качества конечной продукции, экономии времени и исключения неудов- летворенности результатами собственного труда. Однако подходящий инстру- мент не всегда можно найти в меню. И здесь на помощь приходят замечательные возможности расширяемости 3ds max. Так, используя контроллеры или манипу- ляторы по сценарию, можно на ходу настроить анимацию требуемым образом. Продолжите самостоятельно работу на упражнениями этой главы, выполнив следующее. • Сделайте веревку, используемую в анимации утенка, более реалистичной, введя дополнительные управляющие точки (т е. вершины на заданном пути). Орга- низуйте управление положением этих вершин с помощью манипуляторов. • Введите в сцену с канатоходцами ряд кукол, одна меньше другой, баланси- рующих на плечах больших кукол. Воспользуйтесь оживляемым ограниче- нием по линии связи, чтобы организовать прыжки и соскоки кукол с квад- ратных лоскутов в качестве целевых поверхностей. • Воспользуйтесь в космической сцене ограничением по линии взгляда, что- бы нацелить спутник на движущуюся по орбите ракету. Кроме того, вос- пользуйтесь манипулятором и контроллером Noise Position, чтобы органи- зовать вибрации спутника при прохождении ракеты мимо него. Теперь, когда вам известны особенности внутреннего механизма работы ани- мационной системы в 3ds max, примените полученные знания в своем следующем проекте, чтобы добиться еще больших успехов в анимации.
Модуль character studio Марк Герхард Все опытные пользователи 3ds max знали, что рано или поздно подключаемый модуль character studio для процедурной анимации войдет в состав этого прило- жения. И наконец это свершилось в версии 3ds max 7. Теперь всякому пользова- телю 3ds max 7 доступна полноценная копия данного модуля. Так что же собой представляет этот модуль и в чем его преимущества? character studio (cs) — это весьма эффективный подключаемый модуль для процедурной анимации в 3ds max, разработанный компанией Unreal Pictures, владельцем которой теперь является компания discreet. В отличие от многих дру- гих программ, 3ds max предоставляет открытое поле деятельности для подклю- чаемых модулей, и character studio стал первым таким модулем, на практике под- твердившим правильность и эффективность выбранной для 3ds max концепции открытого для расширения приложе ия Данный модуль позволяет оперативно создавать анимацию персонажа. (Подробнее о снаряжении и анимации персона- жей без применения модуля character studio см. в приложении Б.) Возможности и преимущества character studio В chai acter studio применен новаторский подход к анимации персонажей. Он разделяет составляющие процесса анимации на отдельные, взаимозаменяемые файловые структуры, которые можно сохранять, править и неоднократно ис- пользовать, причем в разных сочетаниях. Следовательно, геометрическая форма модели персонажа оказывается независимой от анимации его костей. Это озна- чает, что, потратив неделю на анимацию пляшущей обезьяны (рис. 15.1), можно в конечном итоге получить танцующего крокодила, ковбоя, робота или даже ре- бенка (рис. 15.2). С помощью character studio можно автоматически сформировать иерархиче- ски связанные скелеты, называемые двуногими объектами. Такие скелеты полу- чаются параметрически. Значения их отдельных параметров могут быть установ- лены во время создания и затем поправлены в режиме Figure. Полученные таким образом скелеты уже связаны и снаряжены с помощью инверсной кинематики (ИК), причем их сочленения имитируют человеческий скелет
554 Часть VI. Анимация Рис. 15.1. Скелет двуногого для пля- шущей обезьяны Рис. 15.2. Крокодил, заменивший обезьяну Для анимации скелетов имеются самые разные режимы и методы, включая режимы Footstep и Free Form, слои, диалоговое окно Motion М хег, фиксацию движения (Motion Capture), организацию движения по сценарию (Motion Scripting) и процедурные системы организации толпы (Crowd). Анимацию персонажа мож- но сохранить в файле с расширением .bip (разновидность файла фиксации дви- жения) для последующего применения в том же или в другом персонаже. С помо- щью модификаторов Physique и Skin из character studio или обычной иерархиче- ской связи из анимации скелетного строения двуногого объекта можно получить анимацию персонажей с единым кожным покровом или персонажей, самостоя- тельно создаваемых в 3ds max из отдельных частей. Character studio позволяет своеобразно решать основные проблемы, которые неизменно встают перед аниматорами персонажей. В частности, данный модуль специально предназначен для разрешения затруднений, связанных с касанием стоп персонажа земли. С момента зарождения анимации ее создатели боролись с про- блемой “скольжения по льду” во время анимации походки персонажа. Но лишь с появлением character studio эта проблема наконец-то нашла реальное решение. Анимация персонажей — это нелегкая задача, даже для опытного аниматора. Однако начинающим пользователям в character studio предоставляются легко и быстро осваиваемые инструменты для создания простого передвижения персо- нажей Так, архитектор может без труда создать персонажи для обхода архитек- турного окружения, даже не умея организовать вручную цикл ходьбы. С другой стороны, одаренный создатель двухмерной или трехмерной анимации найдет в character studio среду, которая возьмет на себя большую часть черновой, рутин ной работы, связанной с анимацией персонажей. При освоении character studio поначалу могут возникнуть определенные труд- ности. Для проработки учебного материала по данному модулю требуется время. А поскольку character studio является замкнутой системой, действующей по соб- ственным правилам, то для его освоения нужен особый подход, отличающийся от методов изучения системы построения костей, снаряжения с помощью ИК, фор мирования кожного покрова и анимации персонажей. Овладение новаторской
Глава 15. Модуль character studio 555 методикой character studio дается не даром— оно требует времени. Но время и усилия, потраченные на освоение character studio, безусловно воздадутся впо- следствии с горицей. Снаряжение двуногих объектов Двуногие объекты относятся к самым распространенным типам созданий по крайней мере, в мире анимации. Такое строение тела характерно не только для человека, но и для птиц, некоторых видов динозавров и всевозможных разновид- ностей мультипликационных персонажей. В character studio предусмотрительно включен тип тела двуногого объекта, практически готовый для анимации. Рас- смотрим более подробно этот объект. Создание двуногого объекта В 3ds max двуногий объект (Biped) относится к типу системных объектов, по- этому инструменты для создания его скелета доступны при выборе кнопки Sys- tems на панели Create. Если щелкнуть на кнопке Biped в свитке Object Туре, поя- вится свиток Create Biped с параметрами создания двуногого объекта (рис. 15.3). I.. ... C-eate Biped........ | Рис 15.3. Свиток Create Biped Для создания двуногого объекта в свитке Create Biped предлагаются два метода: Drag Height (Вытянуть по высоте) и Drag Position (Вытянуть по положению). Если выбран метод Drag Height, то следует нажать кнопку мыши, поместив курсор в том месте видового окна, где должен стоять на ногах двуногий объект, а затем перемес- тить курсор, чтобы вытянуть данный объект по высоте в фиксированном положе- нии. Если же выбран метод Drag Position, то достаточно щелкнуть в видовом окне, чтобы создать двуногий объект указанной высоты в том месте, где находится кур- сор. При перемещении курсора положение двуногого объекта меняется. Существуют четыре разновидности скелетов двуногих объектов, доступных из раскрывающегося списка Body Туре (Тип тела): Skeleton (Скелет), Male (Мужской тип), Female (Женский тип) и Classic (Классический тип) (рис. 15.4 и 15.5). В нижней части свитка Create Biped приведен длинный перечень параметров тела двуногого объекта, включая число звеньев шеи, позвоночника, ног, пальцев ног и рук. Число пальцев ног и рук можно откорректировать, а также указать на- личие у двуногого объекта рук, хвоста, прически “конский хвост” и другого рекви- зита. Эти составляющие образуют предварительно заданную иерархию двуногого объекта и могут быть откорректированы в дальнейшем.
556 Часть VI. Анимация Рис. 15.4. Список Body Туре Рис. 15.5. Четыре разновидности ске- летов двуногих объектов Аналогичные параметры можно обнаружить и на панели Motion, если их требуется поправить после создания двуногого объекта. Особенность character studio состоит в том, что все параметры этого модуля находятся на панели Motion, а не Modify. Аналогично большинству других объектов в 3ds max, после создания двуногого объекта можно сразу же вносить поправки в его параметры на панели команд, а ре- зультаты этих изменений автоматически отображаются в текущем видовом окне. Правка скелета двуногого объекта Как только в видовом окне будет создано снаряжение двуногого объекта, в от- дельные его части можно внести изменения, соблюдая пропорции персонажа. Создаваемый по умолчанию двуногий объект представляет собой типичный ма- некен, похожий на тот, что используется при испытании автомашин столкнове- нием с препятствием. Хотя это мог бы быть и сидящий на корточках персонаж с большой головой. Ниже приведена процедура видоизменения пропорций двуногого объекта 1. Создайте двуногий объект. 2. Выделите двуногий объект и перейдите к панели Motion. 3. Щелкните на кнопке режима Figure в свитке Biped. Перейдя в режим Figure, вы можете изменить положение персонажа или любые параметры его строения. 4. Помимо изменения параметров на панели команд, для сокращения или уд- линения костей двуногого объекта можно воспользоваться инструментом масштабирования В частности, с помощью гизмо преобразования масшта- бированием по выбранной оси изменяется длина кости. А изменяя масштаб по другим осям, можно сделать кость шире или толще.
Глава 15. Модуль character studio 557 НА ЗАМЕТКУ В отличие от остальных объектов, создаваемых в 3ds max, в двуногом объекте специально допускается применение инструмента масштабирования к отдель- ным элементам, составляющим иерархию данного объекта. Но, как правило, не- равномерное масштабирование кости в 3ds max не выполняется, поскольку ре- зультаты такого масштабирования передаются вниз по иерархии. 5. Если персонаж имеет симметричное строение тела, щелкните сначала на одной конечности двуногого объекта, а затем на кнопке Symmetrical (Симметрично) в свитке Track Selection (Выделение треков). На другой стороне данного объекта к выделенной совокупности добавится первая ко- нечность. Это отнюдь не означает, что обе конечности оказываются сим- метричными, просто совокупность выделения на противоположной сторо- не двуногого объекта дополняется новым элементом строения тела. 6. Положение одних элементов строения тела двуногого объекта можно из- менить, а других — нельзя (рис. 15.6). Например, голову нельзя отделить от шеи, но в то же время можно отделить шею от туловища. Ключицы и руки отделяются от туловища, а кости плеч не отделяются от ключиц. 7. Для дальнейшего видоизменения костей двуногого объекта достаточно преобразовать соответствующую кость скелета в редактируемый каркас или в редактируемый многоугольник, а затем применить к ней любые методы моделирования, доступные в 3ds max, в том числе параллелепипедное мо- делирование или модификаторы (рис. 15.7). Рис. 15.6. Отдельные части отделяются от тела двуногого объекта Рис. 15.7. Любые части тела двуногого объекта можно видоизменить Предупреждение: составляющие скелета двуногого объекта не подлежат уда- лению. Так, если выделить голову и нажать клавишу <Delete>, удалится весь дву- ногий объект. Данное правило не распространяется на руки, хвосты и прическу “конский хвост”. Эти элементы строения тела двуногого объекта можно исклю- чить, установив нулевое значение в соответствующих полях свитка Structure или сбросив флажок Arms (Руки).
558 Часть VI. Анимация Режим Figure и файды фигур По завершении правки скелета двуногого объекта полученное строение его тела можно сохранить в файле фигуры с расширением . fig. Для этого достаточ- но перейти в режим Figure и щелкнуть на кнопке Save File (Сохранить файл). При создании двуногого объекта можно воспользоваться сохраненным в по- следний раз файлом с расширением . f ig в качестве одного из вариантов созда- ния новых двуногих объектов. Кроме того, файл с расширением . fig можно за- грузить с помощью кнопки Load File из того же свитка Biped. При вписывании двуногого объекта в каркасную модель персонажа рекомен- дуется сделать каркас непрозрачным и зафиксировать его. Благодаря этому упро- щается работа со строением тела двуногого объекта, исключается неумышленное выделение каркаса и появляется возможность лучше видеть, как двуногий объект вписывается в каркас модели персонажа (рис. 15.8). Рис. 15.8. Сделайте полупрозрачным каркас модели персонажа и зафикси- руйте его | СОВЕТ__________________________________________________________________ Не забудьте выключить режим Figure после правки костей двуногого объекта, так как в этом режиме двуногий объект не подлежит анимации. Если такой объ- ект не допускает анимацию после загрузки из файла, проверьте, включен ли ре жим Figure. Если предполагается использовать модификатор Skin, то целесообразно сде- лать двуногий объект чуть меньше каркаса. Оболочки кожного покрова опреде- ляются размерами костей, поэтому, если кости двуногого объекта окажутся зна- чительно меньше каркаса, эти оболочки могут получиться слишком мелкими чтобы оказывать влияние па вершины каркаса. В отличие от типичной для 3ds max системы костей, которая была разработана позднее, кости двуногого объекта нельзя снабдить специальными выступами спереди, сзади и по бокам.
Глава 15. Модуль character studio 559 Модификаторы Physique и Skin Прежде всего необходимо сделать небольшое историческое отступление. Ко- гда был выпущен модуль character studio, в 3ds max отсутс вовал модификатор, позволявший управлять анимацией каркаса, используя систему костей. Поэтому в состав character studio был введен модификатор Physique (Телосложение). Этот модификатор применялся к каркасным объектам персонажа, после чего в пего вводились кости двуногого объекта. С помощью модификатора Physique форми- ровался целый ряд оболочек влияния, управ 1явших взаимосвязью костей двуно- гого объекта с вершинами каркаса. В последующих версиях 3ds max был введен модификатор Skin, который пред- назначался для тех же целей. Этот модификатор был включен в состав 3ds max из соображений повышения конкурентоспособности данного программного про- дукта, поскольку в других приложениях трехмерного моделирования и анимации подобные возможности уже имелись, и за них пользователям не нужно было пла- тить дополнительно. С другой стороны, character studio был модулем, подклю- чаемым за дополнительную плату, поэтому модификатор Skin был специально введен как более простой элемент пользовательского интерфейса с меньшим числом малоупотребительных свойств. Однако со временем модификатор Skin претерпел ряд дополнительных изме- нений и усовершенствований. В частности, в него были введены режимы рас- крашивания вершин, таблица весов, а также возможность зеркального отображе- ния весов кожного покрова. Между тем первоначальный разработчик модуля Physique ушел из компании Unreal Pictures, и дальнейшая работа над этим моду- лем постепенно прекратилась. Итак, у вас есть возможность выбирать между модификаторами Physique и Skin. Преимущество модификатора Physique состоит, в частности, в том, что он до- пускает более полное управление процессом правки оболочек. Это дает возмож- ность точнее деформировать каркас на уровне оболочек, прежде чем переходить к коррекции весов вершин. Кроме того, в модификаторе Physique имеется редак- тор выпуклостей мышц (Bulges) и сухожилий (Tendons), предоставляющий до- полнительные возможности для управления деформацией каркаса. В модификаторе Skin имеются аналогичные возможности для получения вы- пуклостей мышц, хотя набор его инструментов менее надежен. В этом модифика- торе предоставляются новые средства для деформации каркаса. Такие свойства, как таблица весов кожного покрова и зеркальное отображение весов вершин, реализованы в нем лучше. Кроме того, модификатор Skin открыт в большей сте- пени для сценариев MAXScript и специальной настройки пользовательского ин- терфейса. Утилиты для кожного покрова (Skin Ut'lities) лучше взаимодействуют с этим модификатором. Так какой же модификатор выбрать? В целом, если вы предпочитаете раскрас- ку вершин по их весам, выбирайте модификатор Skin. А если вы предпочитаете пе выходить за пределы возможностей модуля character studio и пользоваться свойством правки выпуклостей мышц, выбирайте модификатор Physique. Для бо- лее осознанного выбора рекомендуется опробовать оба модификатора на одном и том же персонаже.
560 Часть VI. Анимация Применение модификатора Skin к каркасу с костями двуногого объекта При создании такого персонажа с “твердым покрытием”, как например, робот или механический воин, можно просто воспользоваться инструментом Select and Link, чтобы связать отдельные составляющие каркаса непосредственно с костями двуногого объекта. К этой категории относятся и сочлененные персонажи. Точки опоры каркасного объекта и костей двуногого объекта должны непременно сов- пасть, иначе результаты снаряжения модели персонажа трудно будет предсказать Ниже приведена общая процедура применения модификатора Skin к каркасу с костями двуногого объекта. 1. Выделите каркасный объект. 2. Введите в каркасный объект модификатор Skin. СОВЕТ При наличии нескольких объектов целесообразно ввести в них модифика ор Skin по отдельности, вместо того чтобы пользоваться полученнь ми экземпляра- ми этого модификатора, т.е. применить один модификатор Skin к нескольким объектам. Как показывает практика, полученные экземпляры модификатора Skin замедляют реакцию 3ds max на действия пользователя в видовых окнах. 3. Щелкните на кнопке Add в свитке параметров модификатора Skin, чтобы добавить кости с помощью которых вы собираетесь деформировать каркас (в данном случае кости двуногого объекта). 4. Выберите все кости двуногого объекта, кроме объекта центра масс (как правило, это объект BipOl). 5. Выполните анимацию двуногого объекта в разных позах, чтобы посмот- реть, как деформируется каркас. 6. Откорректируйте оболочки модификатора Skin и веса вершин, чтобы кар- кас персонажа правильно деформировался (рис. 15.9). Рис. 15.9. Оболочки кожного покрова
Глава 15. Модуль character studio 561 Применение модификатора Physique к каркасу с костями двуногого объекта Ниже приведена общая процедура применения модификатора Physique к кар- касу с костями двуногого объекта. 1. Выделите каркасный объект. 2. Введите в каркасный объект модификатор Physique 3. Щелкните сначала на кнопке Attach to Node (Присоединить к узлу) в свитке Physique на панели Modify, а затем в области таза двуногого объекта. 4. Щелкните на кнопке Initialize (Инициализировать) в открывшемся диалого- вом окне Physique Initializat on (Инициализация телосложения). Появится пиктограмма с чашкой кофе, указывающая на процесс инициализации те- лосложения, после чего весь каркас персонажа будет обведен оранжевыми линиями. Это линии звеньев (рис. 15.10). Рис. 15.10. Видимые линии звеньев, выде- ляемые оранжевым цветом на цветном изо- бражении 5. Откорректируйте оболочки модификатора Physique и веса вершин, чтобы каркас персонажа правильно деформировался.
562 Часть VI. Анимация Основы анимации двуногого объекта Персонажи не просто сидят или стоят — они ходят, бегают, прыгают и пляшут. Правильно воспроизвести такие движения непросто, особенно начинающим аниматорам. Правда, в character studio имеются средства, позволяющие намного упростить организацию передвижения персонажа. Анимация в произвольной форме и по следам Для двуногого объекта доступна анимация двух видов: анимация в произволь- ной форме (Free Form) и анимация по следам (Footstep). Анимация в произволь- ной форме осуществляется аналогично анимации полностью снаряженного пер- сонажа. Такая анимация подразумевает установку обычных ключевых кадров с использованием инверсной и прямой кинематики, а также весьма эффективную анимацию точек опоры в области кистей рук и стоп. Анимация точки опоры мо- жет быть осуществлена в разных положениях конечностей, чтобы упростить фиксацию стоп па плоскости основания. При анимации по следам сначала создаются основные следы, по которым мо- жет следовать двуногий объект. Это довольно быстрый способ черновой размет- ки анимации, которую затем можно уточнить. Благодаря этому практически каж- дый может заставить персонаж ходить, даже не зная, каким образом осуществля- ется анимация цикла его ходьбы. Кватернионы В character studio для управления положением и вращением отдельных частей двуногого объекта применяются контроллеры управления кватернионами. (В ос- нову кватернионов положен другой принцип определения углов поворота с уче- том вращения объекта вокруг четвертой оси, не относящейся к прямоугольной системе координат.) Кватернионам и контроллерам ТСВ присущи определенные достоинства и недостатки. Кватернионы обеспечивают более плавную анимацию и позволяют исключить такое неприятное явление, как блокировка рамки. Одна- ко расчеты интерполяции между ключевыми кадрами при этом затрудняются, по- скольку кватернионы не формируют функциональные кривые для последующей правки. Поэтому для правки интерполяции в промежутках между ключевыми кадрами анимации кватернионов необходимо использовать граф ТСВ. Во время правки графа ТСВ корректируется натяжение, непрерывность и сме- щение. В самой последней версии character studio имеется возможность наглядно представить и поправить ключевые кадры анимации кватернионов по функцио- нальным кривым в редакторе Animation Workbench (Рабочее место аниматора). В этом редакторе значения кватернионов отображаются и корректируются в форме кривых (рис. 15.11). В течение многих лет велась полемика по вопросу применения функциональ- ных кривых в character studio. Многие аниматоры, предпочитающие такие при- ложения, как Мауа или Softimage, привыкли пользоваться маркерами касатель- ных к функциональным кривым для коррекции движения объектов. А поскольку в основу character studio положены контроллеры ТСВ, подобные кривые были недоступны в первых версиях данного модуля.
Глава 15. Модуль character studio 563 Рис. 15.11. Ключевые кадры анимации кватернионов отображаются в редакторе Animation Workbench в виде функциональных кривых Для активизации маркеров касательных к кривым ТСВ достаточно изменить один параметр настройки в файле \plugcfg\BIPED.INI. Для этого откройте дан- ный файл в текстовом редакторе Notepad и внесите поправки в следующей строке: AWB_ShowTangent s=1 Перезапустите 3ds max, и па кривых ТСВ появятся маркеры касательных (рис. 15.12). Следует, однако, иметь в виду, что эти маркеры действуют не совсем так, как обычные маркеры касательных к функциональным кривым Эйлерового вращения. Они предназначены лишь для коррекции натяжения, непрерывности и смещения. Многие аниматоры, имеющие опыт работы в 3ds max, считают, что проще щелкнуть правой кнопкой мыши на ключевых кадрах и затем работать с графами ТСВ. Рис. 15.12. Маркеры касательных к функциональной кривой в окне Track V ew
564 Часть VI. Анимация Установка ключевых кадров В character studio ключевые кадры могут быть установлены разными способами. Для черновой разметки анимации перемещения и вращения двуногого объекта на месте служит режим Auto Key. При этом управление двуногим объектом переклю- чается с инверсной кинематики (ИК) на прямую в зависимости от того, какая из выбранных его частей перемещается или поворачивается. Так, для перемещения кистей рук или стоп используется ИК, а для вращения стоп или части позвоночни- ка— прямая кинематика. При создании ключевых кадров приходится выбирать ме- жду инверсной и прямой кинематикой. Для этой цели следует установить значения двух параметров из свитка Key Info: IK Blend (Переход к инверсной кинематике) и Object/Body (Пространство объектов или тела двуногого объекта). «--» 1 pi : О >6 £ £• £ Л. ♦тсв -IK---------------------- IK Blend [ГВ i] Ankie Tension |0 О С] Select Pivot__| Р Jan to Prev IK Key Г Body ® Object I ? ♦Head------------------- ♦Body------------------- ♦Prop Рис. 15.13. Параметры IK Blend и Object/Body из свитка Key Info Если установлено значение 1 параметра IK Blend и выбран вариант Object, соз- дается ключевой кадр ИК, а когда тело перемещается, кисть руки или стопа оста- ется на месте. Если же установлено значение 0 параметра IK Blend и выбран вари- ант Body, создается ключевой кадр прямой кинематики, а кисть руки или стопа следует за телом двуногого объекта. Благодаря анимации параметра IK Blend в пределах от 0 до 1 во время движения двуногого объекта происходит плавный переход от ИК к прямой кинематике. Еще одна удобная возможность для установки ключевых кадров состоит в ак- тивизации режима Join to Prev IK Key (Объединить с предыдущим ключом ИК). Этот режим определяет, следует ли объединять текущий ключевой кадр с преды- дущим ключевым кадром и учитывать исходное положение двуногого объекта в предыдущем ключевом кадре. Данный режим устанавливается с помощью соот- ветствующего флажка в свитке Key Info во избежание скольжения стопы или кис- ти руки в промежутке между ключевыми кадрами. Безусловно, такая установка значений для ключевых кадров может превра- титься в сущий кошмар, поэтому для упрощения данного процесса в верхней час- ти свитка Key Info имеются специальные кнопки, позволяющие устанавливать все эти значения в соответствии с требуемой реакцией в ключевом кадре.
Глава 15. Модуль character studio 565 • При выборе кнопки Set Planted Key (Установить ключевой кадр фиксиро- ванного положения) устанавливается значение 1 параметра IK Blend, фла- жок Join to Prev IK Key и выбирается вариант Object. В этом случае можно выделить и зафиксировать точку опоры на кистях руки и стопах. • При выборе кнопки Set Sliding Key (Установить ключевой кадр скольже- ния) сбрасывается флажок Join to Prev IK Key, значение параметра IK Blend по-прежнему остается равным 1 и выбирается вариант Object В этом случае стопа скользит, отклоняясь в сторону от точки опоры. • При выборе кнопки Set Free Key (Установить ключевой кадр свободного положения) сбрасывается флажок Join to Prev IK Key, устанавливается ну- левое значение параметра IK Blend и выбирается вариант Body. Используя эти предварительно заданные значения параметров, можно сэко- номить немало времени и труда и уделить больше времени анимации движения двуногого объекта. Так, если стопа должна быть зафиксирована на земле, исполь- зуйте кнопку Set Planted Key, а если она должна перемещаться по воздуху — кноп- ку' Set Sliding Key. Как видите, все очень просто. Когда для перемещения кистей руки или стоп выбирается пространство объ- ектов, находящийся на сцене объект можно выделить и затем привязать к нему кисть руки или стопу. При перемещении объекта привязки начинают поворачи- ваться конечности, находящиеся между данным объектом и телом двуногого объ- екта. К сожалению, для этой цели можно выбрать только один объект, а содер- жимое пространства объектов не подлежит анимации. Но в то же время анима- ции подлежит один объект между двумя кистями рук. СОВЕТ Не пользуйтесь кнопками установки ключевых кадров из 3ds max для установки ключевых кадров в character studio. У двуногого объекта имеется своя система установки ключевых кадров, несовместимая с указанными кнопками из 3ds max. Это же относится и к траекториям. В прошлом использование траекторий из 3ds max для анимации двуногого объекта приводило к аварийному отказу данного приложения. Поэтому пользуйтесь траекториями, специально предназначенны- ми для двуногого объекта. Режим анимации двуногого объекта в произвольной форме Анимация двуногого объекта в произвольной форме (Free Form) позволяет трактовать скелет данного объекта аналогично любому другому снаряжению, подлежащему анимации в 3ds max. Для создания анимации в произвольной форме достаточно активизировать режим Auto Key и приступить непосредственно к анимации. При этом можно также пользоваться любыми рассмотренными выше кнопками оперативной установки ключевых кадров. Тем не менее после перехода к установке ключевых кадров анимации в произвольной форме вернуться к ани- мации по следам уже невозможно. В этом случае режим Footstep становится не-
566 Часть VI. Анимация доступным и создавать следы для перемещения персонажа уже нельзя. Поэтому если для анимации двуногого объекта предполагается использовать следы, то лучше всего установить сначала следы, а затем вставить анимацию в произволь- ной форме в последовательность кадров анимации по следам. Если же анимация была полностью создана в произвольной форме, а затем ее потребовалось допол- нить анимацией по следам, подушенную анимацию в произвольной форме можно преобразовать в анимацию по следам и работать далее в режиме Footstep. Для вставки фрагмента анимации в произвольной форме в анимацию по сле- дам перейдите в режим Dope Sheet (Подготовительная таблица) окна Track View и разнесите в стороны ключевые кадры анимации по следам. Далее щелкните правой кнопкой мыши в промежутке между следами и выберите вариант Edit Free Form (no physics) (Правка анимации в произвольной форме без физики) в от- крывшемся диалоговом окне, а затем щелкните на обведенном желтым цветом прямоугольнике фрагмента анимации в произвольной форме. Анимация точек опоры Во время анимации движения кистей рук и стоп в character studio имеется воз- можность и для анимации точек опоры, улучшающей координацию движений. Это особенно полезно для поднятия и опускания (так называемого перекатывания) пальцев ног. Для анимации точки опоры достаточно выбрать одно из фиксирован- ных положений стопы или кисти руки и установить ключевой кадр (рис. 15.14). Рис. 15.14. Точки опоры для враще- ния стопы Как правило сначала устанавливается ключевой кадр анимации точки опоры а затем осуществляется переход к следующему' кадру, где стопа поворачивается вокруг точки опоры и автоматически устанавливается ключевой кадр вращения стопы. Действуя подобным образом, можно быть уверенным, что результат будет именно таким, как и предполагалось. Известный в прошлом режим анимации в произвольной форме вновь восста- новлен в модуле character studio, теперь уже включенном в состав 3ds max 7. По- сле ввода слоев в character studio исчез режим Apply Increment, однако в ответ на многочисленные протесты пользователей компания discreet восстановила и этот режим, который называется теперь Set Multiple Keys (Установить несколько клю- чевых кадров). Данный режим, по существу, дает возможность постепенно пово-
Глава 15. Модуль character studio 567 рачивать конечность двуногого объекта в ряде выделенных ключевых кадров. Для активизации этого режима в свитке Keyframing Tools (Инструменты анимации по ключевым кадрам) имеется специальная кнопка. Режим анимации двуногого объекта по следам Режим анимации двуногого объекта по следам (Footstep) сам по себе замечате- лен, но для извлечения из него наибольшей пользы требуется знание ряда специ- альных приемов, которые и будут рассмотрены ниже. Создание и правка следов Создание следов в character studio представляет собой отличный способ орг а иизации нейтрального движения персонажа, которое затем можно уточнить. Следы можно создавать по одном}' или же сразу несколько (рис. 15.15). Рис. 15.15. Двуногий объект, идущий по ряду следов Ниже приведена основная процедура создания следов. 1. Перейдите в режим Footstep, щелкнув на одноименной кнопке в свитке Biped 2 Выберите наиболее подходящий вид создаваемых следов из свитка Footstep Creation (Создание следов). В этом свитке можно выбрать следующие виды следов: Walk (Ходьба) Run (Бег) или Jump (Прыжок). 3. Создайте одиночные следы с помощью кнопки Create Footsteps (at current frame) (Создать следы в текущем кадре) или же ряд следов, щелкнув на кнопке Create Multiple Footsteps (Создать несколько следов). 4. Для того чтобы двуногий объект пошел по созданным следам, щелкните на кнопке Create Keys for inactive Footsteps (Создать ключевые кадры для не- активных следов). При создании следов можно воспользоваться рядом доступных в character stu- dio динамических свойств, позволяющих сделать исходную анимацию более реа- листичной. Вторичную анимацию можно выполнить при инициализации следов. В глобальном масштабе подобные свойства устанавливаются в свитке Dynam’cs & Adaptation (Динамика и адаптация) (рис. 15.16). В этом свитке активизируются режимы для динамики двуногого объекта (Biped Dynamics) и динамики позво-
568 Часть VI. Анимация ночника (Spine Dynamics) Динамика позвоночника предполагает основную ин- терполяцию движения двуногого объекта, тогда как динамика двуногого объекта определяет вторичное движение тела и ног этого объекта. G-wAccrt |Й6 025 ; <9 Biped Dynamics С Spline Dynamics Footstep Adapt Locks- Г Body Horizontal Keys Г- Body Vertical Keys Г Body Tu nmg Keys Г” Right Leg Move Keys f~ Lett Leg Move Keys Г FfeelamKeys Г” Time Рис 15.16. Свиток Dynamics & Adaptation Динамика шагов Данное свойство лучше всего наблюдать по нескольким шагам, совершаемым прыжками, в следующем упражнении. 1. Создайте новый двуногий объект. 2. Перейдите к панели Motion, активизируйте режим Footstep и создайте четыре следа для передвижения прыжками (Jump), используя кнопку Create Mult pie Footsteps Таким образом, будет получен один прыжок. 3. Перейдите к свитку Dynamics & Adaptation и выберите вариант Spine Dy- namics. 4. Инициализируйте следы, щелкнув на кнопке Create Keys for inactive Foot- steps. 5. Переместите ползунок по временной шкале анимации, чтобы посмотреть полученный результат. Обратите внимание на весьма нейтральное движе- ние персонажа во время его анимации. Это неплохая отправная точка для анимации всего тела персонажа по ключевым кадрам вручную. 6. Выделите все следы и щелкните на кнопке Deact vate Footsteps (Сделать следы неактивными), чтобы повторно инициализировать их с помощью динамики двуногого объекта. 7. Выберите вариант Biped Dynamics из свитка Dynamics & Adaptation и вновь щелкните на кнопке Create Keys for inactive Footsteps. 8. Переместите ползунок по временной шкале анимации, чтобы посмотреть полученный результат. На этот раз двуногий объект сгибает ноги в начале и в конце прыжка (рис. 15.17).
Глава 15. Модуль character studio 569 Рис. 15.17. Серый двуногий объект (на заднем плане) прыгает при активной динамике позвоночника а цветной двуногий объект (на пе- реднем плане) — при активной динамике двуногого объекта. В дви- жениях двуногого объекта на ереднем плане наблюдается незначи- тельное упреждение благодаря сгибанию его ног в коленях в начале прыжка и завершение действия в конце прь жка 9. Сохраните данную сцену в файле Dynamic_Jump_Start. max. Попробуйте изменить параметр GravAccel (Ускорение силы тяжести) в свитке Dynamics & Adaptation. Чем больше это значение, тем выше от земли отрывается двуногий объект во время прыжка. Инструменты анимации двуногого объекта В character studio имеется немало инструментов для упрощения работы над анимацией. Поэтому применение подобных инструментов должно стать неотъ- емлемой частью правильно организованного процесса анимации. Инструменты выделения треков анимации В свитке Track Selection на панели Motion имеется ряд инструментов, которые намного упрощают выделение и перемещение двуногого объекта. Так, выделить объект центра масс двуногого объекта не так-то просто, поскольку он находится внутри таза. Три первые кнопки в свитке Тrack Selection позволяют выделить центр масс, переместить по горизонтали и вертикали и повернуть двуногий объект. Следует иметь в виду, что анимация двуногого объекта осуществляется лучше всего, если ключевые кадры устанавливаются на этих трех треках. В прошлом при анимации составляющих двуногого объекта без установки дополнительных клю- чевь х кадров для центра масс возникали программные ошибки.
570 Часть VI. Анимация По этой причине некоторые аниматоры взяли себе за правило делать следующее. • Перейти к нулевому кадру и выделить все части тела двуногого объекта. • Щелкнуть правой кнопкой мыши на ползунке временной шкалы анимации и воспользоваться открывшимся диалоговым окном Create Key (Создание ключевого кадра) для установки ключевого кадра в нулевом кадре для всех частей тела двуногого объекта. СОВЕТ Этот процесс возможен только в режиме анимации в произвольной форме. Если же установить указанные ключевые кадры, то перейти в режим Footstep будет невозможно. Модуль character studio действует несколько иначе, чем 3ds max при установке исходных ключевых кадров. Если установить в 3ds max исходный ключевой кадр в любом кадре анимации, кроме нулевого, то будут установлены два ключевых кадра: один в нулевом кадре, а другой в текущем кадре анимации. А в character studio ключевой кадр устанавливается только в текущем кадре анимации. Эго от- личие можно преодолеть, следуя описанному выше процессу. С помощью кнопок из свитка Track Selection экономится немало времени, за- трачиваемого на выделение отдельных частей двуногого объекта. Так, если выде- лить левую руку данного объекта и щелкнуть на кнопке Symmetrical, эта часть тела добавится к уже имеющейся совокупности выделения. А для отмены выделения правой руки и выделения левой достаточно щелкнуть на кнопке Se ect Opposite (Выделить противоположное). Эти инструменты оказывают реальную помощь при выделении и правке двуногого объекта. Слои При выполнении сложной анимации персонажа в конечном итоге получается большое число ключевых кадров. С помощью слоев можно правильно организо- вать и существенно сократить число таких кадров (рис. 15.18). Рис. 15.18. Свиток Layers Допустим, что требуется анимация цикла ходьбы персонажа, размахивающего руками вперед и назад, а впоследствии необходимо добиться того, чтобы руки больше свисали по бокам тела персонажа. Если установить ключевые кадры ани- мации вращения кости плеча, в таком случае придется поправить каждый ключе- вой кадр этой анимации. Но, с другой стороны, можно ввести слой анимации
Глава 15. Модуль character studio 571 и установить один кадр анимации вращения рук наружу, а впоследствии сделать персонаж ссутулившимся или усилить покачивание его головы. Тем не менее сло- ям присущи следующие недостатки: многие инструменты анимации двуногого объекта, в том числе следы и ключевые кадры ИК, действуют только в базовом слое. По этой причине слоями рекомендуется пользоваться лишь в качестве сред- ства правки. А после внесения изменений можно свести все слои в один. Анимация головы и тела двуногого объекта Нередко во время анимации персонажа требуется объект, па который он дол- жен смотреть. В 3ds max для этой цели служит ограничение по линии взгляда, благодаря которому вращение одного объекта зависит от положения другого объ- екта па сцене. В области Head (Голова) из свитка Key Info (рис. 15.19) можно вы- брать фиктивный или другой объект, на который должен смотреть двуногий объ- ект, и, настроив параметр Target Blend (Смешение с целью), определить, как и когда персонаж должен смотреть на выбранный целевой объект. Это удобно, поскольку ограничение по линии взгляда можно также настроить на отдельные части двуногого объекта, используя вторичную анимацию. В режиме анимации по следам или в произвольной форме можно настроить реакцию тела двуногого объекта на его движения, перейдя к области Body (Тело) из свитка Key Info (рис. 15.20) Рис. 15.19. Область Head из свитка Key Info -________Key Info______ <•* i-[i : i i'A. +tcb----------------- +ik------------------ +Head---------------- Body Salance Factor f C Dynamics Blend altsbc Tension J 3 Рис. 15.20. Область Body из свитка Key Info Как правило, это наиболее очевидно при анимации по следам. Однако незави- симо от вида анимации центр масс персонажа должен быть установлен в пра- вильное положение. Объект центра масс обычно находится внутри таза (рис. 15.21). Он управляет всеми преобразованиями персонажа, а также динами- ческим движением тела двуногого объекта. Настраивая положение центра масс, можно изменять распределение веса пер- сонажа. Так, если высокий персонаж наклоняется, его вес необходимо сместить вперед. Объект центра масс перемещается в режиме Rubber Band (Резиновая нить), доступном при активизированном режиме Figure. Благодаря этому созда- ется иллюзия наличия у персонажа определенного веса (рис. 15.22).
572 Часть VI. Анимация Рис. 15.21. Центр масс внутри таза двуногого объекта Рис. 15.22. Различное распределение веса персонажа в одной и той же последовательности анимации по следам благодаря установке центра его масс Смещение веса Ниже приведена общая процедура смещения веса двуногого объекта. 1. Выделите центр масс двуногого объекта. 2. Перейдите в режим Figure и щелкните на кнопке Rubber Band Mode в об- ласти Mode из свитка Biped. 3. Измените положение центра масс, откорректировав распределение веса двуногого объекта.
Глава 15. Модуль character studio 573 4. Вновь щелкните на кнопке Rubber Band Mode, чтобы выйти из этого режи- ма, а затем и из режима Figure. Раз уж речь зашла о режиме Rubber Band, то следует упомянуть и о возможно- сти использовать его для перемещения рук и ног персонажа. Это может оказаться удобным, если требуется изменить положение локтя или колена, не оказывая влияния на положение стопы или кисти руки. Следует, однако, иметь в виду что подобные операции необходимо выполнять в режиме F’gure. Анимация параметра IK Blend Для анимации параметра IK Blend достаточно изменить его значение от 0 до 1 в активизированном режиме Auto Key. Переходя к конкретному кадру анимации и изменяя этот параметр, можно управлять степенью связывания кисти руки или стопы с выбранным объектом. Такая анимация находит применение, например, в том случае, когда персонаж собирается поймать брошенный предмет или же бросить пойманный предмет. Настраивая параметр IK Blend, можно создать ил- люзию частичного влияния летящего предмета на кисть руки. Другим примером подобной анимации служит перекладывания меча из одной руки в другую. В тече- ние первых кадров анимации, когда меч находится в правой руке персонажа, для кисти правой руки устанавливается значение 1 параметра IK Blend. На протяже- нии этого фрагмента анимации меча происходит также и анимация кисти руки. Если же меч необходимо переложить в другую руку, для кисти правой руки уста- навливается значение 0 параметра IK Blend. Теперь меч перекладывается в другу руку, не оказывая влияния на кисть правой руки. Как только меч приблизится к кисти левой руки, можно установить значение 1 параметра К Blend. В данном случае анимация кисти левой руки происходит под управлением анимации меча (рис. 15.23 и 15.24). Рис. 15.23. Анимация меча между рук персонажа Рис. 15.24. Меч переложен из одной руки в другую
574 Часть VI. Анимация Применение контроллеров управления по списку для вторичной анимации двуногого объекта Скелет двуногого объекта отлично подходит для создания связанного робото- подобного движения. Но что если требуется добиться растягивания костей пер- сонажа как резины в стиле традиционной мультипликации? Для такой анимации двуногого объекта служат контроллеры управления по списку, позволяющие при- менять контроллеры, располагаемые слоями друг над другом. Это, в частности, дает возможность применить контроллеры управления масштабированием к эле- ментам позвоночника двуногого объекта, чтобы воспроизвести дыхание этого объекта во время ходьбы или бега (рис. 15.25). Если же применить аналогичные контроллеры к ногам или рукам двуногого объекта, то можно добиться классиче- ских мультипликационных эффектов физических движений персонажа. Так, ко- гда персонаж срывается с утеса и зависает в воздухе, до него доходит, что он па- дает в пропасть. Тогда его ноги опускаются резко вниз, тело растягивается, как резина, а его лицо выражает всю неприятность положения, в которое он попал. Рис. 15.25. Действие контроллера управления масштабированием Контроллеры управления по списку применяются в свитке Assign Controller на панели Motion. Для этого перейдите к свитку Assign Controller и раскройте трек Biped SubAnim (Вторичная анимация двуногого объекта). Найдите трек Available доступный для назначения контроллеров, выделите его, щелкните на кнопке As- sign Controller и назначьте из списка выбранный контроллер. Копирование и вставка положения, позы и трека анимации двуногого объекта В свитке Сору/Paste модуля character studio имеется ряд весьма полезных ин- струментов для копирования положения и ориентации выделенных частей тела двуногого объекта в список. Так, с помощью кнопки Copy Pose (Копировать позу) копируются только вы- деленные элементы двуногого объекта, а с помощью кнопки Copy Posture (Копировать положение) — весь двуногий объект в целом. Как только будет со- ставлен список скопированных объектов, можно перейти к другом)' кадру анима- ции и повторить позу двуногого объекта, воспользовавшись кнопкой Paste Pose
Глава 15. Модуль character studio 575 (Вставить позу). А с помощью кнопки Paste Opposte (Вставить напротив) та же самая поза устанавливается па другой стороне двуногого объекта (рис. 15.26 и 15 27). Более того, копировать можно позы и положения разных двуногих объ- ектов! Это делается настолько просто и быстро, что грех не воспользоваться та- кой возможностью. Единственный недостаток подобной операции состоит в том, что при копировании положения двуногого объекта автоматически не выделяют- ся части его тела и не устанавливаются ключевые кадры для данного положения. После вставки положения двуногого объекта необходимо выделить соответст- вующие части его тела и щелкнуть на кнопке Set Key в свитке Key Info. Рис. 15.26. Вставка на- против Рис. 15.27. Положение руки, перенесенное на другую сто- рону двуногого объекта Инструменты отображения Инструменты отображения упрощают управление режимом отображения дву- ногого объекта в видовом окне. Они в какой-то степени скрыты в свитке Biped, поскольку обозначены единственной линией со знаком “плюс” непосредственно над свитком Тrack Selection. Для доступа к инструментам и режимам отображения следует щелкнуть на этом знаке “плюс”. На левом краю области Display находится всплывающая панель, позволяющая быстро заменить изображения всех двуногих объектов скелетом из прямых ли- ний. Для этого достаточно выбрать кнопку' Bones (Кости) из данной всплываю- щей панели (рис. 15.28 и 15.29). Вероя тно, самым важным инструментом в области Display является кнопка Trajec- tories (рис. 15.30), позволяющая отображать траектории движения в пространстве любой выделенной части тела двуногого объекта. Традиционные аниматоры привык- ли руководствоваться принципом движения по дуге, а не по функциональной кривой, поэтому' им удобнее пользоваться траекториями для анализа движения, а в целом это более естественный для них порядок работы над анимацией
576 Часть VI. Анимация Рис. 15.28. Двуногий объ- ект в определенной позе Рис. 15 29 Тот же объект в ре- жиме отображения костей Рис. 15.30 Траектория движения кис- ти левой руки двуногого объекта В свитке Biped имеется также весьма полезный режим Move АН (Переместить все). Если загрузить файл с расширением . bip, действие начнется с конкретного исходного положения, где бы ни была первоначально создана анимация Нередко в анимации возникает потребность изменить положение или ориентацию объек- та Режим Move АП как раз и позволяет сделать это довольно быстро. Для того чтобы изменить положения двуногого объекта в анимации, включите режим Move АН и установите соответствующие значения в полях X Y, Z из области Posi- tion в открывшемся диалоговом окне. А для изменения ориентации двуногого объекта в анимации воспользуйтесь полем Z Rotation в том же диалоговом окне Завершив ввод значений в указанных полях, щелкните на кнопке Со lapse (Свернуть) и сохраните файл с расширением . bip под новым именем. Данный режим очень удобен для подготовки анимации к применению в режи- ме Motion Flow, поскольку очень редко готовые файлы с расширением .bip из библиотеки содержат двуногие объекты, расположенные и ориентированные именно так, как требуется в конкретном случае.
Глава 15. Модуль character studio 577 | СОВЕТ________________________________________________________________ Если двуногий объект из файла с расширением . bip требует я переориентиро- вать не по оси Z, а по другой оси, создайте фиктивный вспомогательный объект и свяжите с ним центр масс двуногого объекта. Затем поверните фиктивный объект вокруг любой оси, чтобы повернуть двуногий объект вокруг других осей. Последовательность движений — организация движения по сценарию Сильные стороны character studio наиболее полно раскрываются при исполь- зовании режима Motion Flow (Последовательность движений) для расстановки файлов с расширением . Ыр в последовательность движений по сценарию. Каж- дый создаваемый фрагмент анимации может быть сохранен в файле с расшире- нием . Ыр, входящем в библиотеку движений двуногого объекта. Такие движения могут быть последовательно расставлены по определенном}' сценарию, который позволяет создавать переходы между этими движениями и тем самым весьма эф- фективно формировать продолжительную анимацию. Однако последователь- ность выполняемых при этом операций довольно сложна и требует практики. В состав character studio входит крупная библиотека файлов с расширением .Ыр, которая находится в архивном файле Bip .zip на втором DVD с 3ds max 7 под названием Partners and Samples (Соучастники и примеры). Этот архивный файл распаковывается в 16 каталогов с различными видами действий, удобно ор- ганизованных по категориям для применения в режиме Motion Flow. Ниже приведена общая процедура компоновки файлов с расширением . Ыр в последовательность движений по сценарию. 1. Щелкните на кнопке Motion Flow в свитке Biped. На панели Motion появится свиток Motion Flow. 2. Щелкните на кнопке Show Graph (Показать граф). Откроется перемещае- мое окно Motion Flow Graph. 3. Щелкните на кнопке Create Clip (Создать клип) в окне Motion Flow Graph. 4. Щелкните несколько раз в окне Motion Flow Graph для последовательной рас- становки файлов с расширением . Ыр. После каждого щелчка в данном окне будет появляться синий прямоугольник с белой меткой (clipl, clip2 и т.д.). 5. Щелкните сначала на кнопке Select Clip (Выделить клип), расположенной на панели инструментов в окне Motion Flow Graph, а затем на первом клипе. 6. Щелкните правой кнопкой мыши на выбранном клипе, а затем щелкните в открывшемся диалоговом окне на кнопке Browse, чтобы выбрать требуе- мый файл с расширением . Ыр. 7. Щелкните на кнопке Create Transition From > То (Создать переход от пре- дыдущего клипа к следующему) и перетащите курсор от первого клипа к следующему, чтобы создать переход между ними (рис. 15.31). А теперь наступает самый трудный момент. Вернитесь к панели Motion, не закрывая окно Motion Flow Graph.
578 Часть VI. Анимация 8. Щелкните на кнопке Define Scripts (Определить сценарии) в области Scripts из свитка Motion Flow. Имя сценария появится в поле над списком сценари- ев Присвойте данному сценарию более осмысленное имя 9. Вернитесь в окно Motion Flow Graph и щелкните по очереди па каждом кли- пе. После каждого щелчка имя соответствующего клипа будет появляться в списке сценариев наряду с номером кадра, с которого начинается данный клип (рис. 15.32). Рис 15 31. Клипы с перехо- дами в графе последова- тельности движений Рис. 15.32. Список сценариев 10. Щелкните па кнопке Play (Воспроизвести), наблюдая в видовом окне за анимацией двуногого объекта из последовательности файлов с расшире- нием .bip Граф последовательности движений предоставляет и много других возможно- стей В частности, он позволяет манипулировать переходами между отдельными клипами для выбора конкретного кадра смены клипов и продолжительности са- мого перехода. Кроме того, с помощью данного графа формируются общие по- следовательности движений в массовых сценах с толпой. Правка фиксации движения В character studio могут использоваться файлы фиксации движения с расши- рением .csm, . bvh и .bip. Для загрузки файла фиксации движения двуногого объекта необходимо перейти к свитку Motion Capture и щелкнуть па кнопке Load Motion Capture File (Загрузить фай фиксации движения) (рис. 15.33). Рис. 15.33. Свиток Motion Capture Если требуется загрузить непосредственно файл фиксации движения, выбери- те этот файл и щелкните па кнопке ОК в открывшемся диалоговом окне Motion Capture Conversion Parameters (Параметры преобразования зафиксированною движения). После загрузки данного файла соответственно должна измениться и анимация двуногого объекта. Однако импортируемые из файла исходные дан- ные фиксации движения можно откорректировать, введя ряд слоев и внеся необ- ходимые поправки в движение персонажа. Для этого в диалоговом окне Motion Capture Conversion Parameters имеется немало возможностей (рис. 15.34).
Глава 15. Модуль character studio 579 Рис. 1S.34. Диалоговое окно Motion Capture Conversion Parameters В двух раскрывающихся свитках, расположенных в левом верхнем углу данно- го диалогового окна, доступны весьма эффективные режимы для работы с зафик- сированным движением. В частности, из раскрывающегося списка Footstep Ex- traction (Извлечение следов) можно выбрать режим экстраполяции следов по им- портируемым данным. Это означает, что ключевые кадры анимации положения стоп и движения двуногого объекта превращаются в следы, которые затем пра- вятся аналогично остальным следам в character studio. А из раскрывающегося списка Conversion (Преобразование) можно выбрать режим сокращения ключе- вых кадров, загружаемых из файла фиксации движения. Благодаря этом}' эконо- мится немало времени при правке данных фиксации движения, поскольку сокра- щается число ключевых кадров, с которыми приходится иметь дело. Как правило, такой режим оказывается весьма полезным, хотя он и приводит к неточностям в анимации, которые приходится исправлять впоследствии. Иногда после импорта файла фиксации движения двуногий объект сворачива- ется в груду костей на земле (рис. 15.35).
580 Часть VI. Анимация Рис. 15 35. Смятый двуногим объект после импорта данных фиксации движения Это приводит нас к следующей области диалогового окна Motion Capture Con- version Parameters — Up Vector (Вектор, направленный вверх). Обычно в этой об- ласти выбирается ось Z, но если двуногий объект оказывается смятым, этот не- достаток, как правило, устраняется при выборе другой оси. Наконец, следует обратить внимание еще на одну область диалогового окна Motion Capture Conversion Parameters—Talent Definition (Определение исполни- теля). Зачастую на правку строения костей фигуры персонажа приходится тра- тить немало времени, чтобы подогнать его по каркасу модели персонажа, а затем использовать для фиксации движения. Для этого следует сохранить результат правки фигуры персонажа в файле в расширением .fig, а затем выбрать его в области Talent Definition и установить флажок Use. При этом строение фигуры персонажа сохраняется, а поступающие данные соответственно адаптируются к нему. Следует, однако, иметь в виду, что при импорте файлов с расширением . bip выбор осей в области Up Vector оказывается невозможным. После импорта данных фиксации движения двуногого объекта и правки его анимации полученную анимацию, возможно, потребуется использовать в других целях или даже в иных приложениях. В частности, для экспорта анимации двуно- гого объекта в формате FBX (Filmbox) и последующего импорта в виде простой системы костей служит специальное средство экспорта в данном формате, дос- тупное в 3ds max (рис. 15.36). Кроме того, анимацию и строение костей двуногого объекта можно импортировать в другие приложения, поддерживающие файлы с расширением . f Ьх.
Глава 15. Модуль character studio 581 Рис. 15.36. Двуногий объект, экспортиро- ванный в формате FBX и вновь импортиро- ванный в виде простой системы костей Смеситель движений Допустим, что требуется анимация персонажа в обычной уличной сцене. Для удобства изложения назовем этот персонаж Джимом. Итак Джим идет по улице, любуясь открывающимся видами, когда в поле его зрения попадает мусор на тро- туаре. Он сворачивает в сторону, чтобы обойти мусор, но затем останавливается, наклоняется и поднимает мусор. Продолжая свой путь вперед, он доходит до ур- ны и выбрасывает в нее мусор. Далее Джим встречает приятеля и останавливает- ся, чтобы пожать ему руку. Приятели начинают мирную беседу, которая вскоре превращается в перепалку, сопровождающуюся беспорядочными размахивания- ми рук. Наконец Джим ловит такси и садится в него. Если вам когда-либо приходилось заниматься анимацией персонажей, то вы можете легко себе представить, сколько работы потребуется для анимации такой, на первый взгляд, обыденной сцены. Даже после элементарной расстановки пер- сонажей требуется немало времени на правку анимации, коррекцию ключевых кадров и других параметров, пока не удастся добиться согласованности всех дви- жений. А в character studio можно сэкономить немало времени и труда, затрачи- ваемого на анимацию, используя свойство Motion Mixer (Смеситель движений). С помощью свойства Motion Mixer анимацию каждого действия можно выпол- нять отдельно, сохраняя ее в файле с расширением . bip, а затем загрузить все файлы данного типа в диалоговом окне Motion Mixer и объединить их в единое целое с помощью простых в использовании инструментов. По существу, свойство Motion Mixer действует аналогично таким программам компоновки, как discreet combustion и Adobe After Effects, используя принцип многослойной временной шкалы для произвольного сочетания фрагментов фильмов, а в данном случае — трехмерной анимации. (Такой процесс нередко называется нелинейной анима- цией по аналогии с нелинейным монтажом.) Эго одно из самых эффективных среди новых средств character studio, и в этом разделе вы можете на практике оз- накомиться с его основными функциями.
582 Часть VI. Анимация Применение свойства Motion Mixer Доступ к свойству Motion Mixer осуществляется на панели Motion. Для этого дос- таточно выделить любую часть тела двуногого объекта и щелкнуть на кнопке Mixer в свитке Biped Apps, чтобы открыть диалоговое окно Mot on Mixer (рис 15.37) Рис. 15.37. Диалоговое окно Motion Mixer Основная часть интерфейса в диалоговом окне Motion Mixer состоит из целого ряда треков, проходящих по горизонтали в центре данного окна. Треки органи- зованы по двуногим объектам, поэтому управлять каждым двуногим объектом па сцене можно из одного диалогового окна Motion Mixer. Это основное место для импорта клипов движения двуногих объектов из файлов с расширением .bip. После импорта клипа можно изменить его начальную точку, перетащив ее по го- ризонтали. Кроме того, клип можно многократно расположить на треке без пе- рекрытия, чтобы он повторялся, а также создать и поправить переходы между парами клипов. В данной области диалогового окна Motion Mixer находятся также элементы управления для временного отключения и сольного режима работы клипов, коррекции их длины путем масштабирования или обрезки, а также для установки весовых значений, которые могут изменяться в течение всей анима- ции. Но это еще не все: расположение треков и групп двуногих объектов можно изменить, перетащив их по вертикали. Особого внимания заслуживает трек перехода. По умолчанию треки, отобра- жаемые в диалоговом окне Moton Mixer, представляют собой линейные треки слоев, на ко торых клипы следуют по очереди друг за другом. С другой стороны, трек перехода, имеющий удвоенную высоту, позволяет перекрывать клипы и ав томатически создает переходы между ними. Далее в этом разделе будет показано, каким образом треки переходов используются для повторения движений во вре- мя ходьбы персонажа, не прибегая всякий раз к возврату в исходную точку. Ниже приведено краткое описание остальных элементов пользовательского интерфейса из диалогового окна Motion Mixer
Глава 15. Модуль character studio 583 Меню в диалоговом окне Motion Mixer Строка меню, находящаяся в верхней части диалогового окна Motion Mixer, со- держит ряд важных команд. Она организована в иерархическом порядке, причем элементы смешения движений верхнего уровня находятся в меню Motion Mixer слева, а элементы нижнего уровня — справа. Команды меню дос гунны и в других частях диалогового окна Motion Mixer посредством щелчка правой кнопкой мыши. Команды .меню Bipeds оказывают влияние на все двуногие объекты, выделен- ные в диалоговом окне Motion Mixer. На самом деле большинство этих команд не- доступно до тех пор, пока не будет выделен но крайней мере один двуногий объ екг (т.е. должна быть выделена его метка). Из меню Bipeds можно изменить цвет трека, удалить двуногий объект и его треки из диалогового окна Motion Mixer (эта операция нс подлежит отмене), а также установить параметры уравновешивания двуногого объекта. В меню Bipeds доступны также команды сведения клипов, по- зволяющие компоновать исходные клипы и копировать их сведенные варианты для двуногого объекта. В меню Tackgroups (Группы треков) осуществляется переход па более низкий уровень иерархии смешения движений и предоставляются команды, применяе- мые к выделенным группам треков. Особого внимания в этом меню заслуживает команда Filter (Фильтровать), которая позволяет определить те части тела двуно- гого объекта, на которые должны оказывать влияние клипы из выбранной группы треков. Пользоваться этим свойством вы научитесь в первом упражнении этого раздела. Следующий уровень иерархии доступен из меню Tracks (Треки), где имеются команды, позволяющие оказывать влияние на отдельные треки в выделенной группе. Команды этого меню позволяют также вводить треки слоев и переходов, преобразовывать типы треков, оптимизировать переходы и импортировать кли- пы. Если в трек слоя импортируется сразу несколько клипов, они отделяются друг от друга пятью кадрами, а если они импортируются па трек перехода, между ними автоматически создаются переходы. В меню Clips (Клипы) имеется ряд полезных команд и, в частности, для замены любого или всех экземпляров клипа другим. Еще более эффективными оказыва- ются команды Add Time Warp (Ввести временное искажение) и Delete Time Warp (Удалить временное искажение). Эти команды позволяют изменить внутренним образом временные характеристики клипа, сокращая и растягивая время в преде- лах клипа для специальной его настройки при смешении движений. Подробнее о временном искажении см. в оперативном справочнике пользователя 3ds max 7. И в последнем меню, Transitions (Переходы), имеются команды для правки и оптимизации переходов, а также для их преобразования в циклически повто- ряющиеся клипы, используемые для получения повторяющегося движения без переходов. Панель инструментов в диалоговом окне Motion Mixer Ниже строки меню в диалоговом окне Motion Mixer находится панель инстру- ментов с удобными кнопками для выполнения самых разных функций в этом диа- логовом окне. Начиная с левого края на панели инструментов находятся кнопки для ввода и удаления двуногих объектов, а также для выделения, перемещения
584 Часть VI Анимация и плавного перемещения клипов В обоих (обычно пустых) числовых полях на панели инструментов отображается относительное и абсолютное положение кадров во время таких манипуляций как масштабирование клипа. Далее следуют кнопки обрезки, правки временных искажений, перемещения треков по вертика- ли и блокировки переходов. А остальные кнопки оказывают влияние на видимую область диалогового окна Motion Mixer, активизируют режим привязки и обеспе- чивают доступ к глобальным параметрам и хранилищу, которое служит в качестве библиотеки клипов Кнопка Mixer Mode Следует иметь в виду, что результаты настройки анимации в диалоговом окне Motion М хег не видны до тех пор, пока не будет выбрана кнопка Mixer Mode в свитке В ped. Как правило, эта кнопка активизируется при открытии диалогово- го окна Motion М хег с помощью упомянутой выше кнопки Mixer, однако она мо- жет быть выключена по целому ряду причин. Поэтому, если открыто диалоговое окно Motion Mixer и в результате перемещения ползунка по временной шкале ани- мации ничего не происходит, щелкните на кнопке Mixer Mode. Фильтрация движений В данном разделе рассматриваются некоторые возможности диалогового окна Motion Mixer. В первых двух упражнениях будет продемонстрирована фильтрация движений. 1. Запустите или установите 3ds max в исходное состояние. Перейдите к па- нели Create и щелкните сначала на кнопке Systems, а затем на кнопке Biped в свитке Object Туре (рис. 15 38) 2. Поместите курсор в центре окна вида в перспективе и перетащите курсор вверх, чтобы создать двуногий объект высотой около 72 единиц (рис, 15.39). > |>. X «ЭД Т| о А 7;. & с- «- | Standard ~*~1 |- Object Туре j AutoGrid Г" Bones J RmgArray , Sunlight Da^rght | I 1 | Biped Рис. 15.39. Двуногий объект высотой 72 еди- ницы, стоящий в окне вида в перспективе Рис. 15.38. Вид свитка Object Type для выбранной категории Systems
Глава 15. Модуль character studio 585 НА ЗАМЕТКУ По умолчанию в качестве системных единиц изменения в 3ds max выбираются дюймы и футы (для США), поэтому фигура данного двуногого объекта должна быть высотой около 6 футов. 3. Перейдите к панели Motion и щелкните на кнопке Mixer в свитке Biped Apps. Откроется диалоговое окно Motion Mixer (рис. 15.40), в котором име- ется лишь один трек анимации двуногого объекта — BipOl. Как будет пока- зано ниже, даже на одном треке можно сделать немало для анимации двуно- гого объекта. Рис. 15.40. Диалоговое окно Motion Mixer в исходном виде Прежде всего вам предстоит установить ряд режимов, чтобы ваши резуль- таты совпали с представленными в этом разделе. Щелкните на кнопке Pref- erences, расположенной на правом краю панели инструментов. Установите флажок Scales (Масштабы) в области Clips открывшегося диалогового окна Mixer Preferences (Глобальные параметры смесителя движений). Кроме то- го, сбросьте флажок Balance Curves (Уравновесить кривые) в области Other (Прочее) и щелкните на кнопке ОК 4. Поместите курсор над треком, чтобы курсор изменил свой вид на перекре- стье, а затем щелкните правой кнопкой мыши и выберите из всплывающего контекстного меню команду New С ips^From File (Новые клипы^Из файла). 5. Анимация двуногого объекта будет начата с клипа, в котором он пятится назад. Откройте файл \Project Files\Chl5_CharacterStudio\ walk_backward.bip на прилагаемом к этой книге DVD. Клип из этого файла появится в диалоговом окне Motion Mixer. Однако масштаб его изо- бражения требует изменений. НА ЗАМЕТКУ При загрузке клипа в диалоговое окно Motion Mixer для него назначается произ- вольный цвет. Для изменения цвета всех клипов двуногого объекта воспользуй- тесь командой Biped^Track Color (Двуногий объект^Цвет трека).
586 Часть VI. Анимация 6. Щелкните на кнопке Zoom Extents (Показать полностью), расположенной на панели инструментов в диалоговом окне Motion Mixer (рис. 15.41). Рис. 15.41. Кнопка Zoom Extents панели инструментов Теперь видны все 108 кадров данного клипа, который оказывается чуть длиннее стандартного для 3ds max фрагмента анимации продолжительно- стью 100 кадров. В отличие от стандартной функции загрузки файлов с расширением . bip (с помощью кнопки Load File), при открытии клипа в диалоговом окне Motion Mixer общая продолжительность данного фраг- мента анимации не настраивается автоматически. Далее в этом разделе вам придется повторить данный клип, поэтому необходимо правильно настро- ить общую продолжительность анимации. 7. Щелкните на кнопке Time Configuration, расположенной в правом нижнем углу в интерфейсе 3ds max. Установите значение 500 параметра Length (Продолжи- тельность анимации) в открывшемся диалоговом окне Time Conf guration, а за- тем щелкните на кнопке ОК, чтобы закрыть это диалоговое окно. 8. Воспроизведите анимацию. Двуногий объект пятится назад в течение 108 кадров, а затем останавливается. Для того чтобы продолжить данное уп- ражнение, необязательно ждать до тех пор, пока завершится воспроизве- дение всех 500 кадров данной анимации. 9. Щелкните на кнопке Go to Start (Перейти в начало), чтобы остановить вос- произведение анимации и перейти в ее начало. НА ЗАМЕТКУ В приведенной выше инструкции для воспроизведения анимации предполагает- ся, что затем необходимо щелкнуть на кнопке Go to Start, чтобы остановить вос- произведение анимации и перейти в ее начало. В следующем упражнении будет показано, каким образом осуществляется фильтрация смешиваемых движений. 1. Щелкните правой кнопкой мыши на метке All, расположенной рядом с ле- вым верхним краем трека, и выберите из всплывающего контекстного ме- ню команду Filter (рис. 15.42). Откроется диалоговое окно Trackgroup Filter (Фильтрация группы треков), в котором выбираются те части тела двуного- го объекта, которые находятся под управлением треков из текущей группы Обратите внимание на то, что в данном диалоговом окне показаны отсутст- вующие у данного двуногого объекта части (например, хвое г), хотя они и не могут быть активизированы.
Глава 15. Модуль character studio 587 Рис. 15.42. Щелкните правой кноп- кой мыши на метке АН и выберите из всплывающего контекстного меню команду Filter 2. Щелкните на кнопке None (Отсутствуют), чтобы отключить все части данного объекта, а затем щелкните на кнопке Legs (Ноги), чтобы активизировать лишь правую и левую ноги и стопы (рис. 15.43). Щелкните на кнопке ОК, чтобы при- нять внесенные изменения, и закроите диалоговое окно Тrackgroup Filter Рис. 15.43. Щелкните на кнопке Legs в диалоговом окне Trackgroup Filter НА ЗАМЕТКУ Диалоговое окно Trackgroup Filter относится к типу безрежимных окон, поэтому вы можете выполнять в 3ds max любые другие операции, не закрывая его. 3. Воспроизведите анимацию, а затем перейдите в ее начало, когда движение остановится. Ноги и стопы движутся, как и прежде, однако двуногий объект остается на месте, поскольку все кнопки фильтрации движений отключены. 4. Вновь откройте диалоговое окно Trackgroup Filter. Обратите внимание на три кнопки фильтрации движений, обозначенные стрелками под большой кноп- кой Spine (Позвоночник). Эти кнопки фильтруют соответственно движение по горизонтали, вращательное движение и движение по вертикали. 5. Щелкните сначала на кнопке фильтрации движения по горизонтали, чтобы активизировать ее, а затем на кнопке ОК и воспроизведите анимацию (рис. 15.44). Двуногий объект вновь пятится назад, по его движение уже не- сколько иное.
588 Часть VI. Анимация Right Leg Left Leg. Рис. 15.44. Щелкните на кнопке фильт- рации движения по горизонтали, чтобы активизировать это движение 6. Вновь воспроизведите анимацию в окне вида слева (изменив в нем лишь масштаб изображения), и понаблюдайте за тазом двуногого объекта. Таз дви жегся по прямой горизонтальной линии, поскольку движение по вертикали, организованное в исходной анимации ходьбы, все еще отфильтровано. 7. Щелкните на кнопке фильтрации движения по вертикали и вновь воспро- изведите анимацию в окне вида слева. Теперь таз перемещается вверх и вниз во время ходьбы двуногого объекта, что придает его движению более естественный вид. НА ЗАМЕТКУ Движение идущего двуногого объекта было создано с помощью стандартной функции Create Multiple Steps (Создать несколько следов), после чего получен- ные следы были расположены позади двуногого объекта. Данная функция игно- рируется многими аниматорами как своего рода ходули, однако она неоценима на начальном этапе работы над анимацией Прежде чем расстаться с функцией фильтрации движений, проведите с ней последний эксперимент. 8. Отключите кнопки Left Leg (Левая нога) и Foot (Стопа) в диалоговом окне Trackgroup Filter, закройте этого диалоговое окно и вновь воспроизведите анимацию. Двуногий объект пятится назад, действуя лишь правой ногой и стопой. Это не совсем естественное, хотя и комичное движение. Еще раз откройте диалоговое окно Trackgroup Filter и щелкните на кнопке АП, чтобы вновь активизировать все части тела двуногого объекта. Как видите, фильтрация движений является очень полезным средством изо- ляции одних составляющих движения персонажа для объединения с другими со ставляющими его движения. Она позволяет сэкономить немало времени. Так, ес- ли двуногий объект размахивает руками во время анимации его ходьбы, однако в другой анимации необходимо использовать только размашистые движения его рук, для этого цели достаточно загрузить файл исходной анимации с расширени- ем . bip, а затем отфильтровать все движения, кроме размахивания руками и их кистями. Фильтрацию движений в диалоговом окне Motion Mixer можно даже ис- пользовать для объединения разных видов вторичной анимации из одного и того же файла с расширением . bip, но с разными временными характеристиками.
Глава 15. Модуль character studio 589 Расположение клипов без перекрытия Допустим, что персонаж должен продолжать свое движение во фрагменте анима- ции, который не длиннее ее исходного фрагмента. Как будет показано в следующем упражнении, в диалоговом окне Motion Mixer это делается относительно просто. 1. Продолжите работу' из предыдущего упражнения, щелкнув правой кнопкой мыши на клипе walk_backward_1 и выбрав команду Тlie Range (Расположи ! ь без перекрытия в заданных пределах) из всплывающего контекстного меню. Щелкните на кнопке Zoom, расположенной на панели инструментов в диало- говом окне Motion Mixer (рис. 15.45). На треке анимации будет введено столько копий данного клипа, сколько может поместиться во фрагменте анимации продолжительностью 500 кадров, причем они располагаются встык. Рис. 15.45. Результат расположения четырех копий клипа без перекрытия 2. Воспроизведите анимацию. Движения пятящегося назад двуногого объекта повторяются, но когда очередной клип завершается, данный объект вновь перескакивает в исходное положение, вместо того чтобы и далее пятиться назад из текущего положения. Но ведь это не совсем то, что в данном случае нужно. Для исправления этого положения вам предстоит воспользоваться треком перехода в диалоговом окне Motion Mixer. 3. Нажмите комбинацию клавиш <Ctrl+Z>, чтобы отменить команду Tile Range, а затем щелкните правой кнопкой мыши на треке (но не на самом клипе) и выберите команд}' Convert То Transition Track (Преобразовать в трек перехода) из всплывающего контекстного меню. Трек перехода по- зволяет расставить фрагменты анимации в определенной последователь- ности на временной шкале и автоматически создает переходы между ними, чтобы движение продолжалось плавно. Теперь клип walk backward_l находится в нижней части трека перехода, а над ним — квадратные скобки. Такие скобки определяют величину пере- крытия текущего и последующего клипа, к которому осуществляется пере- ход. В данном случае происходит переход от исходного клипа к его копии с использованием стандартной длины перехода. 4. Щелкните правой кнопкой мыши на треке и выберите команду New Clips'^ From Reservoir (Новые клипы Из хранилища), а затем вновь откройте файл walk_backward.bip. Хранилище клипов дает возможность много- кратно использовать в диалоговом окне Motion М хег любые уже имеющиеся клипы. Вновь загруженный клип размещается в верхней части группы тре- ков, слегка перекрывая первый клип. При этом создается также переход, обозначаемый более темной полосой между обоими клипами. Именно здесь и происходит смена одного клипа другим (рис. 15 46).
590 Часть VI. Анимация Рис. 15.46. В течение 16 кадров происходит переход от исходного клипа wa k_backward_l к его копии 5. Воспроизведите анимацию и настройте, если требуется видовое окно, чтобы видеть кадры анимации полностью. Прежде всего, обращает па себя внимание тот факт, что двуногий объект не возвращается в исходное поло- жение перед началом воспроизведения второго клипа, что в данном случае и требуется. Кроме того, пауза во время перехода слишком заметна, хотя этот недостаток нетрудно устранить. 6. Щелкните правой кнопкой мыши на переходе и выберите команду Optimize (Оптимизировать) из всплывающего контекстного меню. Щелкните на кнопке ОК в открывшемся диалоговом окне Optimization, чтобы принять ус- танавливаемые по умолчанию параметры и выполнить оптимизацию. Если теперь воспроизвести анимацию, пауза во время перехода исчезнет. Ловко! А теперь воспользуйтесь еще более ловким приемом. 7. Вновь щелкните правой кнопкой мыши на переходе и выберите команду Convert То Loopable Clip (Преобразовать в циклически повторяющийся клип) из всплывающего контекстного меню. Циклически повторяющимся считается клип, оканчивающийся приблизительно в той же позе, с которой он начинается, поэтому его можно располагать на треке без перекрытия, исключив любые случайные сбои в промежутках между копиями. Анимация таких клипов эквивалентна бесшовной текстуре. 8. Откроется диалоговое окно Save As, в котором следует указать имя сохраняе- мого файла. Измените используемое по умолчанию имя файла clipOO .bip па walk_backward_loopable. bip и щелкните на кнопке Save. Оба клипа видо- изменятся, переход между ними удалится, а вместо него появится новый, цик- лически повторяющий клип. 9. Щелкните правой кнопкой мыши на втором, верхнем клипе и выберите команду Tile Range из всплывающего контекстного меню. Если теперь воспроизвести анимацию, двуногий объект будет непрерывно пя- титься назад. Применение весов влияния треков В контроллере управления по списку веса используются для определения от- носительного влияния контроллеров, входящих в список. Аналогично, в диалого- вом окне Motion Mixer разные треки, управляющие одними и теми же частями те- ла двуногого объекта, можно объединить и затем установить конкретные веса их влияния в любой момент времени, что и будет продемонстрировано в ряде сле- дующих упражнений.
Глава 15. Модуль character studio 591 1. Запустите или установите 3ds max в исходное состояние. Введите на сцене двуногий объект, перейдите к панели Mot on и откройте диалоговое окно Motion М хег. 2. Откройте файл walk_backward. bip, как и прежде, на доступном треке. 3. Щелкните па метке All, расположенной ниже метки BipedOl, и выберите команду Add Trackgroup Below (Добавить ниже группу треков) из всплы- вающего контекстного меню. Появится новая группа треков (рис. 15.47). Рис. 15.47. Ниже первой группы тре- ков появится вторая, пустая группа | НА ЗАМЕТКУ___________________________________________________________ Для управления двуногим объектом можно использовать несколько групп тре- ков или же объединить треки в единую группу. Единственное отличие состоит в том, что группу треков можно свернуть, щелкнув на знаке "минус" слева от метки АН, тогда как отдельные треки свернуть нельзя. 4. Импортируйте файл walk_f orward. bip в группу треков. 5. Щелкните на кнопке Zoom, расположенной па панели инструментов в диа- логовом окне Motion Mixer, чтобы видеть все клипы. Клип walk_ backward.bip оказывается чуть длиннее. Обязательно установите флажок Scales в диалоговом окне Mixer Preferences. 6. Перетащите правые концы обоих клипов к отметке кадра 100. Обратите внимание на то, что метка каждого трека изменяется, отражая результаты его масштабирования Длина верхнего трека теперь составляет 93% его первоначальной длины, тогда как длина нижнего трека увеличена па 8%. 7. Воспроизведите анимацию. Двуногий объект пятится назад, как будто клипа walk_f orward. bip вообще не существует. Если веса влияния двух или более треков равны 1,0, т.е. они имеют влияние 100% па одни и те же части тела двуногого объекта, преимущество всегда отдается самом}' верхнему треку. В следующем упражнении будут продемонстрированы два разных метода по- зволяющих быстро исправить данное положение. 1. Щелкните па кнопке с меткой ш у левого края первого клипа (рис. 15.48). Это кнопка временного отключения трека, аналогичная кнопке выключе- ния звука в программе монтажа фонограмм. Если теперь воспроизвести анимацию, двуногий объект будет перемещаться вперед, носко гьку в дан ном случае воспроизводится только второй клип.
592 Часть VI. Анимация Рис. 15.48. Щелкните на кнопке с меткой т, чтобы временно отключить выбранный трек 2. Щелкните на кнопке с меткой m еще раз, чтобы выключить ее, а затем щелкните на кнопке с меткой s. Эта кнопка сольного режима работы трека по аналогии с программой монтажа фонограмм позволяет управлять двуно- гим объектом только с помощью второго трека. Если щелкнуть на кнопке с меткой s верхнего трека, аналогичная кнопка на нижнем треке выклю- чится, поскольку воспроизводить в сольном режиме можно только один трек, тогда как временно отключать можно любое число треков. 3. Воспроизведите анимацию. Двуногий объект движется только вперед. 4. Вновь щелкните на кнопке с меткой s нижнего трека, чтобы выключить сольный режим его воспроизведения. Установка весов Веса влияния треков могут быть установлены разными способами. Для изме- нения этого влияния в начале анимации достаточно установить числовое значе- ние веса в поле, расположенном у правого конца трека. Делать это следует в нуле- вом кадре анимации. 1. Начните с установки весовых значений 0,5 (рис. 15.49). Рис. 15.49. Воспользуйтесь счетчи- ками или клавиатурой для установ- ки весовых значений о, 5 Черная линия, которая раньше проходила по верхней части каждого клипа, теперь начинается по центру на левой стороне клипа и проходит по диаго- нали к верхнему углу' на правой стороне клипа. Эта линия отображает изме- нение веса во времени (рис. 15.50). Рис. 15.50. Весовые значения увеличиваются от 0,5 до 1,0
1 Глава 15. Модуль character studio 593 2. Воспроизведите анимацию. Двуногий объект начинает медленно двигаться назад, постепенно увеличивая скорость до максимума в первом клипе. Ни- же будет показано, как это происходит. 3. Щелкните на кнопке с меткой w (коррекция весовой кривой), расположен- ной у правого края первого клипа. Весовая линия становится красной, ука- зывая на возможность создания и правки различных весовых значений на протяжении всей анимации. Кроме того, числовое поле весового значения становится пустым, поскольку на весовой линии отсутствуют активные управляющие точки, или вершины. В данный момент можно внести поправки на любом участке весовой линии, кроме начальной точки. Для доступа к первой точке придется выключить кнопку с меткой w. 4. Поместите курсор над красной точкой, расположенной па правом краю крас- ной линии, и щелкните. Красная точка становится белой, а ее весовое значе- ние появляется в числовом поле. Это значение теперь можно поправить, пе- ретащив точку по вертикали либо внеся коррективы в числовом поле. 5. Установите весовое значение 0,5 в конечных точках обоих треков, а затем отключите кнопку с меткой w. СОВЕТ Для переключения кнопок коррекции весов на всех треках достаточно щелкнуть на кнопке с меткой w, расположенной на правом краю панели инструментов диа- логового окна Motion Mixer. А для выделения нескольких точек на весовой линии обведите их рамкой выделения. Черные линии теперь становятся горизонтальными, указывая на то, что весовые значения обоих клипов равны 0, 5 на протяжении всей анимации (рис. 15.51). Попробуйте предугадать, к какому результату это приведет. Рис. 15.51. Щелкните на точке весо- вой линии, чтобы откорректировать весовое значение в этой точке 6. Воспроизведите анимацию. Двуногий объект медленно движется назад с заметным скольжением стоп. Объясняется это тем, что расстояния, пре- одолеваемые двуногим объектом при движении назад и вперед, практиче- ски одинаковы. Но, поскольку движение назад содержит больше следов, оно немного преобладает над движением вперед. Если бы число следов в обоих направлениях движения двуногого объекта было одинаковым, он бы топтался на месте.
594 Часть VI. Анимация Анимация весов В следующем упражнении вам предстоит ввести дополнительные управляющие точки для анимации весовых значений на протяжении всего фрагмента анимации. 1. Вновь активизируйте обе кнопки коррекции весовых кривых, а затем по- местите курсор над центром весовой линии верхнего клипа (рис. 15.52). Курсор примет вид топкой линии со стрелкой, направленной вниз, па од- ном конце и со звездной вспышкой па другом. 2. Щелкните и перетащите курсор в любом направлении. После щелчка па месте расположения курсора появится новая управляющая точка, которая следует на курсором при его перетаскивании. Ее можно переместить в лю- бое место между двумя уже имеющимися управляющими точками в преде- лах клипа. 3. Поместите управляющую точку на весовой линии верхнего клипа в кадре 3 3, а затем щелкните на пустом участке, чтобы отменить ее выделение. 4. Введите еще три управляющие точки, как показано на рис. 15.53. Не забудь- те отменить выделение каждой из этих точек после ее ввода, чтобы не сме- стить ее случайно во время ввода другой управляющей точки. Рис. 15.52. Подготовка к коррекции весовых значений Рис. 15.53. Анимация весовых значений в диа- логовом окне Motion Mixer Если теперь воспроизвести анимацию, двуногий объект начнет двигаться на- зад, а затем быстро вперед, после чего он возобновит движение назад. Как следует из приведенных выше коротких упражнений, в диалоговом окне Motion Mixer модуля character studio пользователю предоставляются беспреце- дентные возможности для объединения и правки фрагментов анимации персо- нажей. Но этим возможности данного свойства далеко нс исчерпываются. По- этому рекомендуется подробно ознакомиться с соответствующей документацией, проработ ть сопутствующие ей упражнения и уделить время экспериментирова- нию со свойством Motion Mixer, чтобы выяснить чего можно добиться при сме- шений движений. Четвероногие объекты и дополнительные кости Так уж повелось: что пи сделай, все мало. Казалось бы, разработчики character studio создали замечательный модуль для анимации двуногих персонажей. Но ес- ли две ноги — хорошо, то четыре еще лучше. И пользователи сразу же потребова- ли, чтобы модуль character studio позволял создавать четырех-, шести- и восьми- ногие персонажи. Такие персонажи можно создавать в character studio, однако результаты полу- чаются далекими от идеала Откровенно говоря, этот модуль предназначен глав-
Глава 15. Модуль character studio 595 ным образом для создания двуногих объектов. В основу character studio положены немалые знания о характере походки двуногих созданий. Но сказанное выше отнюдь не означает что не существует специальных прие- мов для анимации многоногих созданий. Первый способ построения четвероно- гих объектов состоит в том, чтобы создать два двуногих объекта, а затем скрыть ненужные части тела второго из них В частности, можно скрыть голову, исклю- чить руки, а затем согнуть позвоночник второго двуногого объекта в режиме F д- иге(рис. 15.54). Рис. 15.54. Скройте лишние части тела второго двуногого объекта Анимацию каждого двуногого объекта можно довольно быс гро осуществить в режиме анимации по следам. Для этого выберите для второго двуногого объекта вариант Start Right (Начать с правого следа) в области General диалогового окна Create Multiple Footsteps. Данный способ пригоден для создания персонажей с множеством ножек, по- добно многоножке или гусенице. Однако его недостаток состоит в том, что дву- ногие объекты нечем удерживать рядом друг с другом: ни связыванием, ни огра- ничением. Остается лишь полагаться па согласованность следов во времени, что- бы задняя часть получаемого в итоге объекта поспевала за передней. Еще один простой способ создания четвероногих персонажей состоит в том, чтобы перейти в режим Figure и согнуть двуногий объект. Таким образом, руки станут передними ногами персонажа (рис. 15.55). Однако такой объект пригоден лишь для анимации в произвольной форме, по не по следам. Применяя данный способ, выключите режимы Biped Dynamics и Balance Factor, иначе двуногий объект попытается встать во время анимации1 В целом это не такой уж и плохой способ, поскольку с помощью анимации точки опоры можно очень легко добить- ся перекатывания с носка на пятку па всех четырех конечностях Третий способ состоит в использовании доступных в 3ds max костей для соз- дания дополнительных ног и других конечностей (рис. 15.56). Недостаток данно- го способа заключается в том, что он не позволяет воспользоваться преимущест- вами анимации двуногого объекта Кости приходится оживлять, используя стан- дартные для 3ds max методы анимации. В то же время методы анимации точки опоры и по следам оказываются недоступными.
596 Часть VI. Анимация Рис. 15.55. Руки двуногого объекта, пре- вращенные в передние ноги Рис. 15.56. Крылья ангела, добавленные с омощью костей, доступных в 3ds max Если требуется хвост с более чем пятью звеньями, доступными для строения тела двуногого объекта, в таком случае его придется, скорее всего, создать в 3ds max, а не в character studio. Помимо хвостов, в состав двуногого объекта могут быть включены две разно- видности прически “конский хвост” Их можно использовать на соответствующих местах в качестве дополнительных костей для анимации челюстей, ушей, щу- пальцев и любых других элементов головы персонажа. Преимущество такого под хода состоит в том, что подобные элементы яв 1яются неотъемлемой частью сис- темы костей двуногого объекта, поэтому' их анимация может быть осуществлена в том же контексте, что и для остальных частей тела двуногого объекта. Толпа По мере роста быстродействия и вычислительных мощностей компьютеров вполне естественно предположить, что в трехмерную анимацию будет включено намного больше персонажей, чем прежде. Но как и в реальном мире, большие возможности компьютерной анимации предполагают большую ответственность и, безусловно, немалый объем работы. Ведь каждый персонаж на сцене должен взаимодействовать с другим персонажем вполне определенным образом. Поэтому чем больше персонажей в сцене, тем сложнее ее организация. При большом чис- ле движущихся персонажей задача управления анимацией такой сцены вручную становится практически невыполнимой. И здесь на помощь приходит замеча- тельное свойство Crowd (Толпа) модуля character studio (рис. 15.57).
Глава 15. Модуль character studio 597 Рис. 15.57. Система организации толпы из двуногих объектов с использованием ее пред ставителей Свойство Crowd предназначено для анимации и управления большими груп- пами объектов. Оно не имеет ничего общего с ходьбой, жестами, строением тела, инверсной кинематикой или фиксацией движения. В действительности это свой- ство настолько отличается от остальной части character studio, что его можно фактически отнести к отдельному программному модулю. Тем не менее оно весь- ма органично вписывается в модуль character studio и позволяет легко управлять большой толпой двуногих объектов. Демонстрация всех возможностей свойства Crowd, или системы организации толпы, выходит за рамки этой книги. Однако, выполнив ряд приведенных ниже вводных упражнений, вы сможете получить яс- ное представление об этой системе. Использование системы Crowd Для получения эффектов толпы в системе Crowd применяется процедурная анимация, которая предполагает использование специальных алгоритмов для ор- ганизации движения вместо явного его определения, как, например, в анимации по ключевым кадрам. Процедурную анимацию толпы можно сравнить с анимаци- ей частиц, за исключением того, что в системе Crowd применяются алгоритмы в большей степени приспособленные для имитации взаимодействия многих пер- сонажей друг с другом. При использовании системы Crowd необходимо указать число персонажей, назначить для каждого из них определенный вид поведения, а затем выполнить имитацию толпы для проверки полученной сцены. Основу имитации толпы составляет ее представитель Подобно многим пред ставителям, или делегатам съезда политической партии, действующим от имени тех, кто их избрал, представитель толпы заменяет персонаж, который он пред- ставляет. В имитации толпы должно быть задействовано столько представителей, сколько объектов в конечном итоге должно быть в толпе. Вторым важным элементом имитации большой группы объектов является сам объект толпы (Crowd). Такой объект не задействован непосредственно в имита- ции толпы, однако он предоставляет доступ ко всем элементам управления тол- пой, включая виды поведения и когнитивные контроллеры.
598 Часть VI. Анимация Ниже приведена типичная процедура создания имитируемой толпы в системе Crowd. 1. Введите одного или нескольких представителей толпы. 2. Назначьте для каждого представителя или группы представителей один или более видов поведения. 3. Проверьте и уточните имитацию толпы, добившись приемлемого результата. 4. Назначьте персонажи или другие объекты (например, птицы или рыбы) для представителей большой группы объектов, а затем осуществите их анимацию. Разумеется, приведенная выше процедура носит лишь самый общий характер. Работа в системе Crowd может быть усложнена тем, что для полного управления толпой требуется, по крайней мере, элементарное знание языка написания сце- нариев MAXScript, входящего в состав 3ds max. Но в данном вводном материале этот вопрос не рассматривается, поэтому обращайтесь за справкой к докумен га- ции по 3ds max и MAXScript. Создание толпы Толпу лучше всего создавать из одного представителя и его поведения, чго и будет продемонстрировано в следующем упражнении. 1. Запустите или установите 3ds max в исходное состояние. Перейдите к па- нели Create и щелкните сначала на кнопке Helpers, а затем на кнопке Dele- gate (Представитель толпы) в свитке Object Туре (рис. 15.58). э а v. ъ1 I | Standard Т] |- Object Туре ] ' AutoGridС ( . I Dummy | Crowd____1. е a Expose!гп | G id I Point I Рис. 15.58. Щелкните на кнопке Delegate в свитке Object Туре По умолчанию в свитке Geometry Parameters устанавливаются размеры представителя толпы 10x15x10, определяющие лишь стандартные про- порции. Создать представителя толпы таких размеров автоматически нель- зя. Его необходимо вытянуть в видовом окне. 2. Вытяните представителя толпы в видовом окне приблизительно таких же размеров, как и те, что устанавливаются по умолчанию (рис. 15.59). Представитель толпы напоминает по форме пирамиду, ориентированную в положительном направлении по оси Y. Его простая геометрическая форма позволяет быстро сымитировать толпу' и ясно видеть куда она направлена.
Глава 15. Модуль character studio 599 Рис. 15.59. Представитель толпы в форме пирамиды 3. Попробуйте визуализировать сцену. Представитель толпы при этом не ви- зуализируется. Если проанализировать свойства данного объекта, то можно обнаружить, что он не подлежит визуализации. Тем не менее с представи- телем толпы можно связать любой объект и тем самым разрешить данное затруднение, если потребуется визуализировать простую пробную анима- цию толпы. 4. Щелкните на кнопке Crowd в свитке Object Туре, а затем перетащите объ- ект толпы (Crowd) на край окна вида в перспективе (рис. 15.60). Рис. 15.60. Объект толпы в форме каркасного восьмигранника Аналогично представителю толпы, объект толпы нс визуализируется. Даже в окне затененного вида он отображается как каркасный объект. А посколь- ку он служит лишь в качестве центра управления имитацией т олпы, точное его местоположение па сцепе особого значения не имеет. Он лишь должен присутствовать на сцене. Далее оба созданных выше объекта будут использованы для формирования самой элементарной анимации. 5. Если объект толпы выделен, перейдите к панели Modify. Щелкните па кнопке New в свитке Setup (Настройка) и выберите из списка в открыв- шемся диалоговом окне Select Behavior Туре (Выбор вида поведения) вари- ант Wander Behavior (Поведение при ходьбе). Такой вид поведения вынуж-
600 Часть VI. Анимация дает представителя толпы непрерывно двигаться вперед, произвольно ме- няя направление своего движения через равные промежутки времени. Теперь в раскрывающемся списке из свитка Setup имеется единственное поведение при ходьбе. Его можно переименовать как угодно. 6. Щелкните на имени поведения Wander и измените его на MyWander (Мое поведение). Этот вид поведения будет назначен далее для представителя толпы. 7. Щелкните на кнопке Behavior Assignments в свитке Setup (рис. 15.61), что- бы открыть диалоговое окно Behavior Assignments and Teams (Назначение видов поведения и групп). г I Рис. 15.61. Щелкните на кнопке Behavior Assignment 8. Щелкните сначала на элементе Delegated 1 в левой части диалогового ок- на Behavior Assignments and Тearns, а затем на элементе MyWander, чтобы выделить их. После этого щелкните на длинной кнопке New Assgnment (Новое назначение) со стрелкой вправо (рис. 15.62). Рис. 15.62. Выделите представителя толпы и вид его поведения, а затем щелкните на кнопке New As- signment Вновь назначенное поведение появится в списке Behavior Assignments, расположенном в центре диалогового окна Behavior Assignments and Teams (рис. 15.63). - Behavnx Assignments---------------- De!egale/Team Behavior/Cog -DelegateOl MyWander Weight Active TOO __ Рис. 15.63. В списке Behavior Assignments указаны все виды поведения, назначенные для представителей толпы
Глава 15. Модуль character studio 601 В данном списке указано имя представителя толпы, назначенное для него пове- дение, весовое значение и его акгивное состояние (обозначаемое знаком X). Как видите, толпа организуется довольно просто. Остается лишь сымитиро- вать ее, что и будет сделано в следующем упражнении. 1. Щелкните на кнопке ОК в нижней части диалогового окна Behavior As- signments and Teams, чтобы принять внесенные изменения и закрыть дан- ное окно, а затем щелкните на кнопке Solve (Решить) из свитка Solve. При наличии одного представителя толпы с единственным видом поведе- ния для получения необходимого решения требуется лишь несколько се- кунд. В течение этого процесса голубая линия, исходящая из представителя толпы, показывает направление, в котором поведение оказывает на него воздействие в отдельный момент времени. Это диагностическое средство оказывается весьма полезным при анализе сложных ситуаций. 2. Если представитель толпы исчезает из виду, измените соответственно масштаб изображения в окне вида в перспективе и воспроизведите полу- ченную анимацию. На этом вводный учебный материал по организации толпы завершается. Но вы можете продолжить изучение данного свойства character studio, выполнив следующее. • Измените параметры в свитке Wander Behavior, чтобы видоизменить ре- зультаты применения алгоритма ходьбы. В частности, попробуйте устано- вить разные значения параметра Seed (Начальное случайное значение). • Щелкните на представителе толпы, чтобы отобразить ключевые кадры его анимации, а затем выделите объект толпы и уменьшите число ключевых кадров в свитке Smoothing (Сглаживание). Увеличение толпы В следующем упражнении будет сымитирована группа из 50 представителей толпы, которые движутся, нс мешая друг другу. 1. Запустите или установите 3ds max в исходное состояние. Введите, как и прежде, представителя и объект толпы. Кроме того, назначьте поведение ходьбы для объекта толпы. Представители толпы могут сталкиваться друг с другом во время ходьбы. Поэтому необходимо замедлить движение представителей толпы и ограни- чить его определенной областью, а кроме того, дать им возможность дви гаться в трех измерениях. 2. Перейдите к панели Modify, выделите представителя толпы, сбросьте фла- жок Constraint То XY Plane (Ограничить плоскостью XY) и установите зна- чение 2,0 параметра Average Speed (Средняя скорость) в свитке Motion Pa- rameters (Параметры движения).
602 Часть VI. Анимация Далее вам предстоит воспользоваться специальным средством системы Crowd для создания группы представителей толпы. 3. Выделите объект толпы, а затем щелкните на кнопке Scatter (Рассеять) в свитке Setup (рис. 15.64). Рис. 15.64 Кнопка Scatter, открывающая диалоговое окно Scatter Objects Благодаря рассеянию упрощается формирование группы из многих пред- ставителей толпы или других объектов. В диалоговом окне Scatter Objects (Рассеяние объектов) можно указать поверхность или объем для рассеяния этих объектов, а также придать им произвольную ориентацию и масштаб. Диалоговое окно Scatter Objects предоставляет немало возможностей для экспериментирования с разными видами организации толпы для получе- ния требуемых результатов. В первой вкладке Clone диалогового окна Scatter Objects указывается любое число копий исходного объекта. 4. Щелкните сначала па кнопке, расположенной ниже метки Object То Cone (Клонируемый объект) во вкладке Clone, а затем на объекте Delegated и, наконец, на кнопке Select в открывшемся одноименном диалоговом окне. Установите значение 49 параметра How Many (Количество), оставив без изменения устанавливаемые по умолчанию значения остальных парамет- ров, а затем щелкните па кнопке Generate Clones (Формировать клопы). Копии будут сформированы в том же месте, где и оригинал. Они не будут видны полностью, поскольку накладываются. 5. Перейдите ко вкладке Position диалогового окна Scatter Objects. Щелкните на кнопке-переключателе In Radial Area (В радиальной области) из области Placement in Area (Расположение в области), а затем установите значение 50,0 параметра Radius (рис. 15.65). г- Placement in Aiea------------ In Radial Aiea Center Radius х|Г~ z Fi-:] Y. 10.0 tl I- In XT plane Z.|00 3 Рис. 15.65 Щелкните на кнопке- переключателе In Radial Area, а за- тем установите значение 50,0 параметра Radius
Глава 15. Модуль character studio 603 6 Щелкните на кнопке Generate Locations (Формировать местоположения) чтобы рассеять копии представителя толпы в пределах сферического объ- ема радиусом 50 единиц (рис. 15.66). При желании вы можете щелкнуть на данной кнопке несколько раз, чтобы посмотреть, как изменяется начальное случайное значение (Random Seed), которое автоматически увеличивается после каждого щелчка, оказывая влияние на расположение представителей толпы. Попробуйте также установить флажок In XY Plane (В плоскости XY) чтобы разместить представителей толпы на одной плоскости, параллельно исходной координатной сетке. Добившись приемлемого результата, щелк- ните на кнопке ОК чтобы закрыть диалоговое окно Scatter Objects. Рис. 15.66. Пятьдесят представи- телен толпы, рассеянных внутри сферы радиусом 50 единиц Самый простой способ назначить виды поведения для многих представителей толпы — сформировать из них группу, что и будет сделано в следующем упражнении. 1. Щелкните на кнопке Behavior Ass gnments в свитке Setup 2. Щелкните на кнопке New Team (Новая группа) в правой части диалогового окна Behavior Assignments and Teams чтобы открыть диалоговое окно Se ect Delegates (Выбор представителей толпы) Щелкните сначала на кнопке АП, а затем на кнопке ОК, чтобы закрыть данное диалоговое окно. Представители толпы появятся в списке Teams под именем группы ТеатО (рис. 15.67). Имя этой группы можно изменить, отредактировав его в поле списка Teams Имя группы также появится в списке Teams, расположенном в левой части диалогового окна Behavior Assignments and Teams. Прежде чем назначать виды поведения для группы представителей толпы, необходимо ввести их в данный список. 3. Щелкните на кнопке New Behavior в области Assignment Design (Порядок назначения), а затем выберите из списка в открывшемся диалоговом окне вид поведения, исключающий столкновение (Avoid Behav or) Аналогично, выберите вид поведения Wander Behavior Несколько видов поведения не- обходимо вводить по отдельности. Оба выбранных вида поведения появя! ся в списке Behaviors диалогового окна Behavior Assignments and Teams
604 Часть VI. Анимация 4. Выделите группу ТеатО, а также виды поведения Avoid Behavior и Wander Behavior (в последнем случае перетащите курсор или нажмите дополнительно клавишу <Ctrl>, чтобы выделить оба вида поведения). Обратите внимание на то, что группа ТеатО выделена в области Assignment Design но не выделена в области Teams. Щелкните на кнопке New Assignment (рис. 15.68). Teams- TeamO Delegated! De!egate02 Detegateffi Delegated1! Detegate05 DelegateOB Delegated? DelegateOB I DelegateCS I Delegate! 0 ' Delegate! 1 Delegate! 2 Delegate! 3 । Delegate! 4 । Delegate! 5 , Delegate Б Behavior Assignments arrj teams Assignment Desrgn- Delegates Behavior® Behave Assig Defegate/Тез Рис. 15.68. Подготовка к вводу представите- лей толпы в группу ТеатО Рис. 15.67. Представители тол- пы, введенные в группу ТеатО 5. Щелкните на кнопке ОК, чтобы закрыть диалоговое окно Behavior Assign- ments and Teams. Итак, нужные виды поведения назначены, однако поведе- ние Avoid Behavior не настроено надлежащим образом. Поэтому если теперь выполнить имитацию толпы, то в ней не будет учтен данный вид поведения. 6. Щелкните на кнопке Solve в одноименном свитке. Представители толпы движутся медленнее, чем прежде, но при этом проходят сквозь друг друга. Ясно, что в настоящей толпе такое невозможно, поэтому данное явление должно быть исключено и в имитируемой толпе. 7. Выберите поведение Avoid Behavior из раскрывающегося списка в свитке Setup (рис. 15 69). На панели Modify появится свиток Avoid Behavior Рис. 15.69. Виды поведения можно вводить в диалоговом окне, а на- страивать их — на панели Modify 8. Щелкните на кнопке Multiple Selection (Выделение множества объектов), в свитке Avoid Behavior, а затем выделите всех представителей толпы в от- крывшемся диалоговом окне Select.
Глава 15. Модуль character studio 605 9. Щелкните на кнопке Solve в одноименном свитке, чтобы сымитировать толп}' (рис. 15.70), а затем перейдите к разным кадрам в начале и в конце анимации и разверните вид сцены в перспективе, чтобы проверить, прохо- дят ли представители толпы сквозь друг друга. Скорее всего, это явление не будет обнаружено. Даже при устанавливаемых по умолчанию значениях па- раметров поведение Avoid Behavior действует весьма эффективно, предот- вращая столкновения и взаимное проникновение представителей толпы. Рис. 15.70. Теперь представители толпы двигаются сво- бодно и без взаимного проникновения На этом рассмотрение основ системы Crowd завершается. Очевидно, что ее возможности гораздо шире, но изучить их более подробно вам придется само- стоятельно, что настоятельно рекомендуется сделать. Помимо того что система Crowd представляет собой отличное инструментальное средство для анимации на высоком профессиональном уровне, с ней просто любопытно работать. Резюме Модуль character studio представляет собой поразительно эффективное инстру- ментальное средство с огромным нераскрытым потенциалом. Достаточно сосредо- точить основное внимание лишь па одной части character studio, чтобы обнаружить золотые россыпи. Для какой бы цели ни применялся модуль character studio, будь то ввод данных фиксации движения и слоев для правки анимации или же имитация толпы с помощью когнитивных контроллеров для создания сложных видов поведе- ния толпы, работа с character studio всегда приносит свои плоды. Разумеется, character studio — далеко не единственный инструмент процедур- ной анимации в составе 3ds max 7. В следующей части этой книги будут рассмот- рены сложные системы динамики.
Часть VII Частицы и динамика 16 Физика и динамика 17 Введение в систему частиц Particle Flow 18 Эффекты частиц
Глава 16 Физика и динамика Майкл Гурвич В вашем распоряжении имеется секретное оружие, которое, в частности, применялось в фильме “Матрица: перезагрузка” (Matrix Reloaded), когда персо наж Нео разметает злодеев в черных костюмах и солнцезащитных очках по воз- духу, как тряпичных кукол. А вам казалось, что он размахивает палкой! Аналогич- ный технический прием используется для организации столкновений, взрывов, самых разных безрассудств и изуверств во многих играх, начиная с Auto Assault Автоматический штурм) и кончая Psi-Ops: The Mindgate Conspiracy (Псиопера- U и заговор с блокировкой памяти). Во всех этих случаях применяется механизм имитации физики от компании Havok, известный в 3ds max как подключаемый модуль reactor. Основное достоинство модуля reactor состоит в том, что он автоматически формирует ключевые кадры анимации с большой физической точностью. Лауре- ат Нобелевской премии по физике 2004 года Фрэнк Вильчек (Frank Wilczek) как- то сказал: “В физике не нужно искать себе трудностей — природа создает их сама”. Аналогично, в 3ds max 7 совсем не обязательно создавать ключевые кадры само- му—это сделает за вас подключаемый модуль имитации физической реакции re- actor, причем намного быстрее и с гораздо более реалистичными результатами, если он применяется правильно. Достаточно создать объекты и установить (или принять устанавливаемые по умолчанию) значения таких свойств, как масса, тре- ние и упругость. А модуль reactor определит, каким должно быть поведение объ- ектов с подобными свойствами в реальном мире, и создаст ключевые кадры, обеспечивающие именно такое поведение объектов. Кроме того, reactor проана- лизирует ключевые кадры, созданные вручную, чтобы определить исходные зна- чения таких свойств, как скорость и направление движения. В reactor мягкие тела, т.е. объекты, которые можно сжимать, растягивать и сги- бать для имитации резиновых мячей, усиков насекомых, плодов и других гибких, деформируемых предметов, обладают свойствами жесткости и демпфирования. Например, ткань, обычно применяемая в таких объектах, как «флаги, шторы и оде- жда, может иметь в reactor дополнительные свойства растяжения, сгибания и сдви- га. С помощью reactor можно также организовать сопротивление воздуха веревке, не менее часто используемой для имитации волос. А вода в reactor может обладать свойствами плотности, вязкости и глубины.
610 Часть VII. Частицы и динамика Кроме того, reactor накладывает определенные ограничения, определяющие движение объектов относительно друг друга. Так, шарнирное ограничение (Hinge Constraint) может быть использовано для организации движения дверной петли или локтевого сустава. С помощью колесного ограничения (Car-Whee Constraint) орга- низуется движение колеса на оси. Л кукольное ограничение (Rag Doi Constraint) предназначено для копирования движения плеч и других сочленений человеческо- го тела. При выборе из главного меню команды reactor'->Create Object (Реактор^Создать объект) доступными становятся различные виды наборов предметов, объектов и ог- раничений, которые могут быть созданы с помощью reactor (рис. 16.1). Эти же ва рианты доступны и на панели инструментов модуля reactor, расположенной на ле- вом краю интерфейса 3ds max. На рис. 16.2 эта панель повернута в горизонтальное положение, чтобы показать все ее кнопки. Панель инструментов reactor можно от стыковать и расположить горизонтально, чтобы не прокручивать ее для доступа к нужным кнопкам. Modffers Character reactor Ajwatwn Graph Edtors Render ng Customize Rigid Body Cdectioa doth CoSection Soft Body Cofection Rope Collection Deform ng Mesh Collection Spring Plane Linear Dashpot Angular Dashpot Motor Wind Toy Car Fracture Water Constraint Solver Rag Doll Constraint Hinge Constraint Pant-Point Constraint Prismatic Constraint Car-Wheel Constant Point-Path Conrtrant Рис. 16.1. Выбор команды reactor^Create Object из главного меню В этой главе речь пойдет о твердых и мягких телах, деформации каркаса раз- ломах и воде. В проекте этой главы вам предстоит создать морскую нимфу, сидящую верхом на дельфине, выскакивающем из воды па айсберг, разламывая его на куски. Если устанавливать вручную ключевые кадры анимации взаимодействия объектов, на- ходящихся на такой сцене, т.е. дельфина, воды и льда, эта задача окажется трудно выполнимой. Особенно трудно сымитировать реалистично поведение воды. С другой стороны, в модуле reactor соблюдаются законы гидродинамики. Эти за- коны автоматически учитываются при формировании поведения воды, которое получается намного более реалистичным, чем в том случае, когда оно формиру- ется вручную.
Глава 16. Физика и динамика 611 Создать набор твердых тел Создать набор мягких тел Создать набор деформируемых каркасов Создать пружину Создать угловой амортизатор Создать ветер Создать разлом Создать воду Создать игрушечный автомобиль Создать мотор Создать линейный амортизатор Создать плоскость Создать набор веревок Создать набор тканей Создать решатель ограничений Создать шарнирное ограничение Создать призматическое ограничение Создать точечно-путевое ограничение Применить модификатор мягкого тела Открыть редактор свойств Выполнить предварительный просмотр анимации Создать анимацию Проанализировать окружающий мир Применить модифика ор веревки Пр вменить модиф лкатор ткани Создать колесное ограничение Создать двухточечное ограничение Создать кукольное ограничение Рис. 16.2. Панель инструментов модуля reactor, расположенная горизонтально
612 Часть VII. Частицы и динамика Нельзя сказать, что i eactor обеспечивает идеальное поведение воды. Так, reactor вообще нс создает водяные капли, поэтому их, возможно, придется ввести други- ми методами, например, с помощью системы частиц Particle Flow. Тем нс менее благодаря возможностям reactoi имитировать свойства воды можно сэкономить немало времени. Кроме того, в reactor правильно воспроизводится поведение твердых и мягких тел, тканей, веревок (которые могут имитировать волосы) и многих других предметов, с трудом поддающихся анимации по ключевым кадрам С помощью reactor вряд ли удастся получить все, что требуется для сцепы. Но если это будет хотя бы половина элементов сцепы, то вторую ее половину можно создать вручную. И даже в этом случае reactor принесет несомненную пользу Применение reactor отнюдь не исключает возможность использовать другие ин- струменты 3ds max, связанные с моделированием, анимацией, материалами или визуализацией. Поэтому reactor следует применять там, где это уместно и удобно не отказываясь в то же время от возможности добиться требуемого эффекта с по- мощью других инструментов. Такие инструменты можно применять как до, так и после имитации с помощью reactor, видоизменяя в нос геднем случае результа- ты, которые дает этот модуль. Следует иметь в виду, что конечным результатом применения reactor являются ключевые кадры, практически ничем не отличающиеся от ключевых кадров, ус- танавливаемых вручную. Следовательно, такие ключевые кадры можно видоиз- менять для улучшения анимации, сформированной в reactor, используя те же .ме- тоды, что и для правки ключевых кадров, устанавливаемых вручную. И последнее замечание относительно reactor, которое следует сделать, прежде чем переходить непосредственно к практике: данный модуль потребляет значительные вычисли- тельные ресурсы. В целом, чем сложнее объекты, находящиеся па сцепе, тем больше вычислительная нагрузка. В этой главе представлен целый ряд методов, специально предназначенных для снижения вычислительной нагрузки. В их ос- нову зачастую положен следующий принцип: трактовать (ради имитации) объек- ты, обрабатываемые в reactor, как более простые, чем они есть па самом деле. Модуль reactor — весьма эффективный инструмент, однако он требует специаль- ной настройки и умелого обращения. А теперь перейдем от теории к практике. Прежде всего в проекте этой главы необходимо создать лед, который должен разбивать выскакивающий из воды дельфин и сидящая на его спине морская нимфа. Лед тронулся Итак, начнем с определения некоторых основных принципов работы reactor. Первый из них касается отличий между одиночным объектом и множеством объек- тов. Как прави ю, один цельный объект разделяется на части иначе, чем группы от- дельных объектов, которые могут находиться рядом друг с дру1 ом, подобно тому, как бетонная стена разбивается совсем по-другому, чем отдельные кирпичи, сло- женные в ряд по форме стены. В reactor один цельный объект, предназначенный для разделения на части, представлен вспомогательным объектом, называемым разломом (рис. 16.3). Этот инструмент применяется всякий раз, когда требуется разбить что-нибудь на куски, будь то яичная скорлупа, кубик льда или же астероид.
Глава 16. Физика и динамика 613 Рис. 16.3. С помощью кнопки Create Fracture на панели инстру- ментов reactor создается объект разлома, применяемый в reactor Объект разлома, по существу, представляет собой невизуализируемый контей- нер, содержащий целый ряд визуализируемых объектов. (Здесь и далее визуали- зируемые объекты будут называться кусками, а невизуализируемый вспомога- тельный объект — разломом.) Сгруппировав куски в разлом, можно указать моду- лю reactor на необходимость применить определенные силы к кускам, чтобы они вели себя первоначально как единый цельный блок. Если впоследствии этот блок разбивается под воздействием некоторой внешней силы, куски начинают вести себя как отдельные объекты. В проекте этой главы будет создан айсберг, который разбивается на куски вы- скакивающим из воды дельфином. Объект разлома содержит четыре куска льда, которые совместно образуют айсберг. Поместив эти куски в разлом, можно ука- зать модулю reactor на необходимость создать иллюзию, будто айсберг является единым объект, разбиваемым на куски. А на самом деле он уже состоит из кусков, но они составляют единое целое и не разделяются до тех пор, пока в них не уда- рит дельфин с морской нимфой на спине. Первая задача в данном проекте, по существу, состоит в том, чтобы создать трехмерную составную картинку-загадку, которая выглядит как единый объект, но на самом деле состоит из множества подобъектов. Этого можно добиться разны- ми способами. Однако при выборе наилучшего подхода к решению данной задачи необходимо рассмотреть два сопутствующих вопроса: взаимное проникновение, а также выпуклость и вогнутость. В reactor допускается взаимное проникновение кусков друг в друга. Но в айс- берге нужно постараться избежать или, по крайней мере, свести к минимуму вза- имное проникновение кусков льда по двум следующим причинам. Во-первых, кус-
614 Часть VII. Частицы и динамика ки не должны заметно проходить сквозь друт друга, поскольку настоящие куски льда этого пе делают И во-вторых, взаимное проникновение кусков льда приво- дит к тому, что они становятся более подверженными взрывному разделению, поскольку7 по умолчанию reactor пытается очень быстро разделить на части вза- имно проникающие объекты, а периоды их взаимного проникновения окажутся настолько короткими, что едва ли будут заметны. В примере первой сцепы на рис. 16.4 два нижних шара являются кусками объекта разлома с заметным взаим- ным проникновением. Когда па них сверху падает шар, они разбиваются очень быстро (рис. 16.5). В примере второй сцепы на рис. 16.6 нижние шары являются кусками без взаимного проникновения. Когда на них сверху падает шар они пе разбиваются так быстро и не разлетаются так же далеко друг от друга (рис. 16.7). Свойство повышенного взрывного разделения на части идеально подходит для т аких ситуаций, как космические сражения в видеоиграх. Но в данном случае куски льда должны разлетаться с большой скоростью во всех направлениях, когда по ним ударяет дельфин. Поэтому разрывная способность разделяемых кусков льда должна быть умеренной И самая простая мера предосторожности для этого состоит в том, чтобы свести к минимуму' взаимное проникновение. Другой вопрос, который приходится принимать во внимание, связан с вогну- тостью или выпуклостью кусков. В reactor объект считается выпуклым, если ли- ния, соединяющая любые две точки па поверхности объекта, не выходит за пре- делы этого объекта. А любой невыпуклый объект считается вогнутым. В примере следующей сцены (рис. 16.8) яйцо является выпуклым объектом, а рюмка для яй- ца— вогнутым. (Эта сцена находится в файле \Project Files\Chl6_Physics- AndDynamicsXegg&eggcup .max на прилагаемом к этой книге DVD.) Рис. 16.4. Взаимно проникающие куски (два нижних шара)
Глава 16. Физика и динамика 615 Рис. 16.5. Взаимное проникновение кусков приводит к их взрывному разделению Рис. 16.6. Не проникающие взаимно куски (два нижних шара)
616 Часть VII. Частицы и динамика Рис. 16.7. Отсутствие взаимного проникновения кусков приводит к невзрывному разделению Рис. 16.8. Яйцо является выпуклым объектом, а рюмка для яйца — вогнутым
Глава 16 Физика и динамика 617 | НА ЗАМЕТКУ___________________________________________________________ Для того чтобы определить, является ли объект вогнутым или выпуклым, выде- лите его, перейдите к панели Ut lities и щелкните сначала на кнопке reactor затем на кнопке Test Convexity (Проверить выпуклость) в области Select on из свитка Utils (Утилиты). В открывшемся окне появится сообщение о том, каким является выделенный объект: вогнутым или выпуклым. Имитация вогнутых объектов требует большей нагрузки па процессор, чем ими- тация выпуклых объектов. Как правило, вогнутость не имеет большого значения для имитации, и поэтом)' по умолчанию reactor интерпретирует вогнутые объекты как выпуклые Но если кусок действительно вогнутый, то его интерпретация как выпуклого может привести к повышению разрывной способности разделения, если .другой объект занимает просграпство, образовавшееся от выпуклости. В примере сцепы па рис. 16.9 вогнутый объект слева и выпуклый объект спра- ва взаимно пе проникают друт в друга, когда соединяются в форме сферы. Но ес- ли reactor не распознает объект слева как вогнутый, он будет интерпретировать его как похожий на сферу, а следовательно, будет рассматривать оба объекта как взаимно проникающие. В подобных случаях reactor усматривает большее взаим- ное проникновение объектов, чем оно есть в действительности, и поэтому при- меняет большую силу' взрывного разделения, чем требуется на самом деле. Раз- рывную способность разделения можно значительно уменьшить, если явно ука- зать reactor па то, что отдельный кусок в действительности является вогнутым. Хотя при этом увеличивается нагрузка на процессор, а это означает, что reactor пот ребуется больше времени для анализа или формирования виртуального мира. Впрочем, эта дополнительная временная задержка может Оказаться незаметной, если речь идет о простом куске с малым числом многоугольников. Рис. 16.9. Если объект слева интерпретируется как вогнутый, reactor рассматривает оба объекта как взаимно проникающие друг в друга
618 Часть VII. Частицы и динамика В приведенном ниже упражнении будет вкратце исследован на практике во- прос выпуклости и вогнутости объектов. Выпуклые и вогнутые куски Для анализа завершенного варианта сцены, которую вам предстоит создать в данном упражнении, откройте файл сцепы \Project Files\Chl6_Physics- AndDynamics\concave_convex.max на прилагаемом к этой книге DVD. Там же находятся файлы визуализированных фильмов concave_convexl. avi (взрыв- ной вариант) и concave_convex2 . avi (певзрывиой вариант). 1. Создайте сферу (объект Sphered) радиусом 50 в окне вида сверху и рас- положите ее в точке начала отсчета (0,0,0). 2. Перейдите к напели Modify и примените к объект}' SphereOl модификатор Squeeze (Сжатие), установив значение -0,9 параметра Axial Bulge Amount (Величина осевого утолщения). Это будет вогнутый кусок. Обратите внима- ние на то, что он вогнут как сверху, так и снизу (рис. 16.10). Рис. 16.10. Сфера с примененным к ней модификатором Squeeze, используемая в качестве вогнутого куска 3. Создайте вторую сферу (объект Sphere02) радиусом 25 в окне вида сверху и расположите ее в точке с координатами (0,0 -15). Это будет другой вза- имно проникающий кусок (рис. 16.11).
Глава 16. Физика и динамика 619 Рис. 16.11 Взаимно проникающие куски 4. Выделите объекты SphereOl и Sphere02 и щелкните на кнопке Create Fracture (Создать разлом) папели инструментов reactor, находящей на левом краю интерфейса 3ds max. В итоге будет создан объект разлома, состоящий из двух сфер. 5. Если обе сферы все еще выделены, щелкните па кнопке Open Property Editor (Открыть редактор свойств) (рис 16.12) из панели инструментов reactor и ус- тановите значение 100 параметра Mass (Масса) в свитке Physical Propert’es (Физические свойства) диалогового окна- R gid Body Properties (Свойства твердого тела) (рис. 16.13). Благодаря этому задается свойство массы обоих кусков. Указанное числовое значение выбрано произвольно и соответствует массе 100 кг. Объекты с нулевой массой не перемещаются в reactor, поэтому данный пункт упражнения очень важен. Рис. 16.12. Кнопка Open Property Editor, выби- раемая на панели инструментов reactor
620 Часть VII. Частицы и динамика Рис. 16.13. Диалоговое окно Rigid Body Properties с установленным значением 100 параметра Mass 6. Создайте в окне вида сверху параллелепипед длиной и шириной 150 и высо- той -10, расположив его в точке с координатами (0,0, -75). На рис. 16.14 этот параллелепипед показан в перспективе. У него не будет массы, чтобы он не двигался. 7. Выделите на сцене все объекты и щелкните на кнопке Create Rigid Body Collection из панели инструментов reactor. В итоге будет создан набор твер- дых тел, в который вводятся обе сферы и параллелепипед (рис. 16.15). 8. ПТе икните на кнопке Analyze World (Проанализировать окружающий мир) панели инструментов reactor. Должно появиться сообщение World Analysis gave no warnings (Анализ окружающего мира проведен без предупреждений) НА ЗАМЕТКУ Последний пункт данного упражнения выполнять не обязательно, если преды- дущие его пункты выполнены верно. Тем не менее он предупреждает о возмож- ных ошибках.
Глава 16. Физика и динамика 621 Рис. 16.14. Параллелепипед размерами 150х150х-10 Рис. 16.15. Создание набора твердых тел
622 Часть VII. Частицы и динамика 9. Щелкните на кнопке Preview Animation (Выполнить предварительный про смотр анимации) из панели инструментов reactor. Как только откроется окно Real-Time Preview (Просмотр в реальном масштабе времени) (рис. 16.16), на- жмите клавишу <Р>. В этом режиме анимация предварительно просматрива- емся без создания ключевых кадров. Вогнутый кусок отскакивает высоко вверх. Это результат взрывного разделения, поскольку reactor еще не было явно указано на то, что объект SphereOl является вогнутым. Следовательно, reactor усматривает в сцене глубокое взаимное проникновение обоих кусков. Выйдите из окна Real-Time Preview, нажав клавишу <Esc>. Рис. 16.16. Окно Real-Time Preview в reactor 10. Выделите объект SphereOl (т.е. вогнутый фрагмент) и щелкните на кнопке Open Property Editor. В свитке Simulation Geometry (Имитация геометриче- ской формы) диалогового окна Rigid Body Properties в данный момент вы- брана кнопка-переключатель Mesh Convex Hull (Выпуклая оболочка карка- са). Вместо этого выберите кнопку-переключатель Mesh Concave Hull (Вогнутая оболочка каркаса). 11. Вновь щелкните на кнопке Preview Animation и нажмите клавишу <Р>. На этот раз вогнутый кусок едва ли отскакивает вверх. Это результат певзрывпого уэаз- делепия па части, поскольку теперь reactor интерпретирует объект SphereOl как вогнутый. Эта сцена и находящиеся на ней объекты довольно просты, по- этому увеличение времени обработки в данном случае практически незаметно. В приведенном выше упражнении продемонстрирован тот факт, что взаимное проникновение кусков приводит к взрывному разделению, если reactor неизвест- но, что один из кусков является вогнутым. Добиться умеренной взрывной спо- собности кусков можно и другими способами. Некоторые из них б- ,ут рассмот-
Глава 16. Физика и динамика 623 рены далее в этой главе. Такие способы в большей степени подходят для точной настройки, чем для попытки избавиться от массового взаимного проникновения. Между прочим, для обнаружения взаимного проникновения кусков существует очень простой способ. Если куски являются частью активного объекта разлома, 3ds шах не выдает никаких предупреждений о взаимном проникновении кусков, по- скольку такое явление считается вполне допустимым для них. Но если сделать объ- ект разлома неактивным, 3ds max посчитает куски лишь составными частями набо- ра жестких тел. Как правило, взаимное проникновение твердых тел считается не- желательным, поэтому при его появлении выводится предупреждение. Для того чтобы сделать раз; ом неактивным, выделите этот объект, перейдите сначала к па- нели Modify, а затем к свитку Properties и установите флажок Disabled (Сделать не- активным). Если объект разлома первоначально активизирован, этот флажок дол- жен быть сброшен, как показано па рис. 16.17 Затем щелкните па кнопке Analyze World панели инструментов reactor. При наличии взаимного проникновения поя- вится сообщение Bodies SphereOl and Sphere02 are interpenetrating (Тела SphereOl и Sphere02 взаимно проникают друг в друга). Аналогичное сооб- щение появится и в том случае, если щелкнусь на кнопке Preview Animation. Break on C Impulse 11 0' *« Velocity | C] Energy toss jo.25 Ci Display P Show Bouncing Box Г" Disabled Reset Default Values Рис. 16.17. Свиток Properties co сброшенным флажком D sabled
624 Часть VII. Частицы и динамика СОВЕТ Если упомянутое выше сообщение не появляется, проверьте массы тел в диало- говом окне Rigid Body Properties, щелкнув на кнопке Open Property Editor панели инструментов reactor. При аличии у обоих тел нулевой массы reactor не преду- преждает об их взаимном проникновении Создание кусков Для создания кусков идеально подходят выпуклые каркасы или, по крайней мере, каркасы, которые интерпретируются как выпуклые, не приводя к взрывно- му разделению на части. Благодаря таким каркасам сводится к минимуму время обработки и исключается взрывное разделение. Именно к такому идеалу и следу- ет стремиться. Вероятно, самый простой способ создания кусков состоит в том, чтобы вы- ровнять отдельные объекты таким образом, чтобы образовать из них единое це- лое (по крайней мере, визуально). Это проще всего сделать, когда все куски име- ют прямоугольную форму, как, например, у квадратного стола с прямоугольными ножками или же у здания, построенного из прямоугольных плит. Еще одним простым примером служит кирпичная стена. Каждый кирпич является составной частью разлома, а все вместе они образуют стену. Благодаря тому что все кирпичи вогнуты, из них можно легко сложить стену, которая выглядит как сплош- ная, но в то же время избежать взаимного проникновения. С другой стороны, можно намеренно сделать так, чтобы они интерпретировались как взаимно проникающие, и тем самым увеличить взрывную силу. В учебном материале, включенном в состав 3ds max 7, имеется пример такого использования кирпичей. Он доступен после выбора команды Help^Tutorials1^Using reactor and Flex for Simulation^Simulating Fractures with reactor (Справка^Упражнения1^ Применение модуля reactor и модификатора Flex для имитации1^ Имитация с помощью reactor). Однако пример составления объекта из кирпичей не совсем подходит для айс- берга. В отличие от кирпичных стен, айсберги имеют довольно правильную фор му. И простого способа создания айсберга изящной формы из отдельных объек- тов, естественно сочетающихся друг с другом без взаимного проникновения, не существует. Другой способ, который, впрочем, не совсем годится в данном случае, но вполне пригоден в других ситуациях, основан на использовании булевых опера- ций. Подобным способом можно создать разрезающий объект, скопировать этот объект и айсберг, а затем создать булево пересечение одного айсберга и разре- зающего объекта, а также булев операнд вычитания Boolean A-В другого айсберга и разрезающего объекта. В итоге получатся два следующих объекта: операнд Воо lean A-В (который, по существу, представляет собой айсберг с отверстием от раз- резающего объекта), а также булево пересечение (которое точно заполняет обра- зовавшееся отверстие). Эти куски можно разрезать и далее, создав новый разре- зающий объект и повторив данный процесс. Способ, основанный на булевых операциях, дает наибольшую свобод}' в оп]эе- делении форм кусков, которые фактически зависят от формы разрезающих объ- ектов. С другой стороны, это относительно трудоемкий способ создания кусков.
Глава 16. Физика и динамика 625 А самое главное, что если перекрывающаяся часть разрезающего объекта оказы- вается пеидеально ровной, то в итоге получится один вогнутый кусок и один про- никающий в пего выпуклый кусок, а именно этого и хотелось бы избежать. Если же перекрывающаяся часть разрезающего объекта оказывается идеально ровной, то добиться требуемого результата будет намного проще (подробнее об этом речь пойдет в разделе “Метод отсечения”). Еще один практический прием, который также нс будет использован в проек- те этой главы, состоит в создании составного объекта Connect (Соединение), ко- торый становится чем-то вроде открытой выработки, из которой добываются от- дельные куски. В простейшем случае начинать следует с двух объектов, в которых уже имеются отверстия, а затем построить перемычку между отверстиями с по- мощью составного объекта Connect. Более сложные объекты типа Connect могут бы ть созданы путем построения перемычки между более чем двумя объектами с отверстиями. Во избежание взаимного проникновения необходимо убедиться в том, что края каждого отверстия компланарны (т.е. находятся в одной плоско- сти). Таким образом, в том месте, где имеется опасность взаимного проникнове- ния, оба куска окажутся идеально ровными, что позволяет исключить данное яв- ление. Для этого достаточно, в частности, удалить лишь один многоугольник в каждом отверстии. С другой стороны, для создания новых краев можно вос- пользоваться плоскостью сечения. И наконец, метод, который будет использован в проекте этой главы, основан па разрезании объекта айсберга плоскостью сечения. Метод сечения В проекте этой главы куски будут созданы с использованием плоскости сече- ния, чтобы рассечь айсберг на отдельные элементы. Затем эти элементы будут скопированы, а из них созданы отдельные объекты. Недостаток такого подхода состоит в том, что поверхности, по которым разделяется объект “открытой вы- работки”, остаются идеально плоскими. Они не могут быть кривыми или неров- ными. С другой стороны, этот недостаток превращается в достоинство при соз- дании айсберга, поскольку он исключает взаимное проникновение даже в том случае, когда reactor интерпретирует куски как простые выпуклые тела. Как будет показано ниже, непроникающие взаимно выпуклые тела автоматически приобре- тают умеренную взрывную способность, не увеличивая тем самым вычислитель- ную нагрузку. Такой метод обеспечивает довольно эффективную последовательность опера- ций. Например, для получения айсберга в проекте этой главы достаточно создать один объект “открытой выработки” и рассечь его дважды. Таким образом, двумя сечениями образуются четыре куска, что само по себе достаточно эффективно. Если же требуется больше четырех кусков, необходимо выполнить ту же самую процедуру, взяв один кусок и разделив его на четыре других куска. Таким образом, общая процедура создания кусков сводится к трем следующим этапам.
626 Часть VII. Частицы и динамика 1. Создайте редактируемый многоугольник в форме пирамиды со значитель- ным искажением путем зашумления 2. Воспользуйтесь плоскостями сечения, чтобы рассечь этот объект по верти- кали и по горизонтали. В итоге получатся четыре элемента. 3. Разъедините полученные элементы на копии. Если вы желаете продолжить работу над проектом этой главы, откройте сцену из файла \Project Files\Chl6_PhysicsAndDynamics\Dolphin&Rider_ start .max на прилагаемом к этой книге DVD. Эту' начальную сцепу данного про- екта мы будем использовать в следующем упражнении. 1. Создайте в окне вида сверху пирамиду с четырьмя сегментами по ширине, глу- бине и высоте. Установите значение 150 параметров Width и Depth, а также значение 7 5 параметра Height. Расположите этот объект в точке с коорди- натами (120,11, 15). 2. Примените к пирамиде модификатор Noise. Установите флажок Fractal и значение 0, 5 параметра Roughness (Шероховатость), а также значение 5 0 интенсивности по каждой из трех осей в полях области Strength из свит- ка параметров данного модификатора (рис. 16.18). (Р. О Т ч» [ । - а [й j Parameters | - Norse:----------— --- Seed | Ь Scatej 100.0 $ P F octal Roughnessjb'5 t lterations:[675 Cj | Strength Xj5ff0 4И5--------c] zj?5Ti—: <| 120.0 :Jy|h0 C£:|-150 I Auto KeJ| Selected 3 «« « И. «► ►« I 4 H. (^. led and move objects | Set Key | Key Filters.. | ИЯ |o Рис. 16.18. Настройка параметров модификатора Noise 3. Щелкните правой кнопкой мыши на выделенной пирамиде и выберите коман- ду Convert^Convert То Editable Poly (Преобразовать1^Преобразовать в редак- тируемый многоугольник) из всплывающего квадратного меню (рис. 16.19). На этом завершается первый этап приведенной выше основной процедуры создания кусков.
Глава 16. Физика и динамика 627 Рис. 16.19. Выбор команды Convert^Convert То Editabe Poly из квадратного меню 4. Находясь на панели Modify, перейдите на уровень подобъектов-элементов (Element) выделенной пирамиды. Она должна стать красной Щелкните на кнопке Slice Plane (Плоскость сечения) в свитке Edit Geometry. Эта кнопка станет желтой, а в текущем видовом окне появится желтый многоугольник, обозначающий плоскость сечения. Установите флажок Split (Разделить), расположенный справа от кнопки Slice Plane (рис. 16.20). В режиме Split создаются два ряда вершин в тех местах, где разделяются ребра, в результа- те чего куски оказываются точно подогнанными друг к другу. 5. Расположите плоскость сечения по горизонтали и приблизительно посре- дине пирамиды (т.е. айсберга) и щелкните на кнопке Slice, расположенной ниже кнопки Slice Plane. Поверните плоскость сечения па 90°, чтобы рас- положить ее по вертикали (рис. 16.21), следя за тем, чтобы пирамида была по-прежнему выделена. Вновь щелкните на кнопке S ice. 6. Щелкните на кнопке Slice Plane, чтобы отключить ее. На этом завершается второй этап приведенной выше основной процедуры создания кусков. Те перь у вас должно быть четыре элемента. Для того чтобы убедиться в этом, щелкните сначала рядом с пирамидой, чтобы отменить выделение всех элементов, а затем, не покидая уровня подобъектов-элементов, выделите по очереди каждый из них.
628 Часть VII. Частицы и динамика Рис. 16.20. Установка флажка Split рядом с активизированной кнопкой Slice Plane в свит- ке Edit Geometry Рис. 16.21. Плоскость сечения
Глава 16. Физика и динамика 629 7. Выделите правый нижний элемент и щелкните на кнопке Detach в свитке Edit Geometry. Установите флажок Detach As Clone (Отсоединить в качестве кло- на) в открывшемся диалоговом окне Detach и щелкните на кнопке ОК (рис. 16.22). Повторите эту же операцию для левого нижнего, правого верх- него и левого верхнего элемента. Выполнять данную операцию в указанном порядок совсем не обязательно, но если соблюдать данный порядок, имена кусков окажутся такими же, как и в проекте этой главы На этом завершается третий этап приведенной выше основной процедуры создания кусков. @ Т PytamidOI | Modifier List □ Editable Pol; t* ...Vertex Edge Botdcf .. Po^gon Element 0 Рис 16.22. Диалоговое окно Detach 8. Перейдите от уровня под объектов на уровень объекта PyramidOl, т.е. ис- ходной пирамиды. Удалите или скройте этот объект, поскольку он вам уже не понадобится. 9. Выделите все только что созданные куски (т.е. объекты ObjectOl, Object02, Ob j ec 10 3 и Ob j ec 10 4) и примените к ним модификатор Cap Holes (Покрытие отверстий). 10. Выделите по очереди все четыре куска и назначьте для них отдельный цвет, чтобы было удобнее следить на траекторией движения каждого куска при предварительном просмотре анимации. Теперь ваша сцена должна быть такой же, как и в файле \Project Files\ Chl6_PhysicsAndDynamics\Dolphin&:Rider_02 .max на прилагаемом к этой книге DVD 11. Сохраните сцену в файле my_Dolphin&Rider_02 . max. Итак, получены четыре куска. Теперь необходимо проверить эти куски на предмет устойчивости их исходного положения.
630 Часть VII. Частицы и динамика Проверка и стабилизация Откройте сцену из файла \Project Files\Chl6_PhysicsAndDynamics\ Dolphin&Rider_02 .max на прилагаемом к этой книге DVD или же продолжите работу над сценой из файла my_Dolphin&Rider_02 .max, сохраненного на жест- ком диске в предь дущем упражнении. Прежде чем использовать полученные выше куски в reactor, необходимо со- общить им определенную массу. Ведь объекты без массы не подлежат воздейст- вию ударной силы, а значит не могут быть разбиты или подвержены иному влия- нию в виртуальном мире, создаваемом с помощью reactor. Но как только куски получают определенную массу, сила тяжести, определяе- мая в reactor, оказывает на них влияние, и они сразу же начинают разваливаться, а не ждать, пока их разломают. Тем не менее в reactor имеется очень простой спо- соб, позволяющий воспрепятствовать движению кусков до тех пор, пока на них не окажет воздействие другой объект. Ниже приведена краткая процедура ис- пользования четырех полученных выше кусков. 1. Выделите четыре куска. 2. Щелкните на кнопке Open Property Editor, т.е. четвертой снизу кнопке на панели инструментов reactor 3. Установите флажок Inactive (Неактивно) в свитке Physical Properties диало- гового окна Rigid Body Properties (рис. 16.23). Теперь сила тяжести не ока- зывает влияния на куски. Они по-прежнему ожидают столкновения с дру- гим объектом (в данном случае с дельфином). Рис. 16.23. Установка флажка Inactive в диалоговом окне Rigid Body Properties
Глава 16. Физика и динамика 631 Такой метод оказался бы вполне пригодным, если бы куски требовалось привес- ти в состояние покоя прямо в воздухе. Но для данного проекта этого недостаточно, поскольку куски льда должны находиться в воде, и на них должны воздействовать волны аналогично столкновению с твердыми телами. Однако вода должна воздей- ствовать на них не до такой степени, чтобы они развалились еще до удара в них дельфина. Для этой цели требуются методы, делающие куски устойчивыми к воз- действию силы, которая пытается нарушить их устойчивость. Поэтому рассмотрим вкратце методы, доступные для обеспечения подобного рода устойчивости. Для проверки ниже вам предстоит создать параллелепипед, который будет служить в качестве платформы для кусков льда. Этой платформе необходимо со- общить любую массу, чтобы она не падала и поддерживала куски льда. Методы, применяемые в данном проекте, пригодны и для кусков, находящихся в воде. Тем не менее стабилизировать куски льда в воде не так-то просто. Поэтому сначала необходимо научиться стабилизировать веревки на сухой земле. Куски льда трудно расположить так, чтобы они устойчиво покоились на плат- форме и в то же время не проникали взаимно. Если исходное положение кусков льда неустойчиво, они будут медленно сдвигаться в начале анимации и, скорее всего, распадутся. Но как раз именно этого и хотелось бы избежать. Ведь разде- ление айсберга на части должно начаться не раньше, чем в него ударит дельфин. Как ни странно, даже незначительный первоначальный сдвиг может привести к увеличению вероятности разделения на части. Это может произойти, в частно- сти, потому, что кусок льда начинает очень быстро отскакивать от платформы и других кусков, что последовательно приводит к взаимному проникновению это- го и соседних кусков льда. Как было показано в предыдущем упражнении, взаим- ное проникновение, в свою очередь, может привести к взрывному разделению. В некоторых случаях из-за первоначальной неустойчивости некоторые куски мо- гут вообще вылететь за пределы видового окна в самом начале анимации. А зри- телю покажется, что они просто исчезают. Модуль reactor допускает сохранение и просмотр данных о столкновениях, поэтому подобные ситуации можно под- робно анализировать, чтобы выяснить, что же при этом происходит. Правда, не составляет особого труда сделать так, чтобы куски льда заняли ус- тойчивое положение, а затем назначить это положение в первом кадре анимации. Благодаря этому исключается первоначальное движение и опасность разделения кусков льда еще до соударения с дельфином. Для этой цели в reactor имеется функция Update МАХ, назначающая текущее состояние анимации для ее началь- ного момента. В приведенных ниже упражнениях данная процедура рассматривается более подробно. Эти упражнения делятся на три части: первоначальная проверка раз- лома, сохранение и просмотр данных о столкновениях и стабилизация кусков. НА ЗАМЕТКУ Полученные вами результаты могут отличаться от представленных в приведенных ниже разделах этой главы — все зависит от того, где именно вы рас сложили плос- кости сечения. Если же вы стремитесь добиться таких же результатов, как и те, что приведены ниже, откройте сцену из файла \Project Files\Chl6_PhysicsAnd- Dynamics\DolphirbRider_02 .max на прилагаемом к этой книге DVD.
632 Часть VII. Частицы и динамика Первоначальная проверка разлома В следующем упражнении вам предстоит создать разлом и проверить его пер- воначальную устойчивость. 1. Выделите объекты ObjectOl, Object02, Object03, Object04 и щелкните па кнопке Create Fracture панели инструментов reactor. Четыре куска доба- вятся к новому объекту разлома (рис. 16.24). Рис. 16.24. Создание нового разлома, содержащего четыре куска 2. Еще раз выделите все четыре куска, если они еще не выделены. Щелкните на кнопке Open Property Editor и установите значение 100 параметра Mass в диалоговом окне Rigid Body Properties. 3. Создайте параллелепипед в окне вида сверх}'. Присвойте ему имя platform. Установите значение 1000 параметров Length и Width, а также значение -10 параметра Height этого объекта. Расположите его в точке с координатами (0,0,-36). Параллелепипед можно, в частности, расположить следующим образом: щелкните на инструменте Select and Move, расположенном на ос- новной панели инструментов, а затем введите координаты (0,0,-36)в полях X, Y и Z из области Transform Type-In (Ввод координат преобразования) в нижней части интерфейса 3ds max (рис. 16.25), предварительно убедившись в том, что эти поля находятся в режиме Absolute (кнопка, находящаяся слева от них, должна быть серой, а не желтой). Обратите внимание па то, что масса параллелепипеду вообще не сообщается. 4. Выделите объекты ObjectOl, Object02, Object03, Object04, platform и щелкните на кнопке Create Rigid Body Collection, расположенной в верх- ней части панели инструментов reactor (рис. 16.26).
Глава 16. Физика и динамика 633 Рис. 16.25. Поля из области Transform Type-In Рис. 16.26. Создание набора твердых тел (дельфин был создан в приложении Poser 5 компании Curious Labs) 5. Щелкните па кнопке Analyze World с пиктограммой лупы, т.е. третьей снизу кнопке на панели инструментов reactor. Должно появиться сообщение World Analysis gave no warnings. 6. Щелкните на кнопке Preview Animation, т.е. второй снизу кнопке на панели инструментов reactor. Как только эткроется окно Real-Time Preview, на- жмите клавишу <Р>. Куски льда падают, но не распадаются. Выйдите из ок- на Real-Time Preview, нажав клавишу <Esc>
634 Часть VII. Частицы и динамика 7. Расположите параллелепипед platform в точке с координатами (0,0, -35). Щелкните па кнопке Preview Animation и вновь нажмите клавишу <Р>. Несмот- ря на то что расстояние для падения кусков уменьшилось, поскольку платформа немного приподнялась вверх, на этот раз они все же распадаются. Эю харак- терный пример уменьшения первоначального движения, приводящего к уве- личению вероятности разделения. Выйдите из окна Real-Time Preview. Первоначальная неустойчивость все же остается. Это более заметно, когда платформа находится в точке координат 35 по оси Z, чем в точке координат -36. Следовательно, стабилизацию кусков можно было бы продолжить. Но вместо этого лучше проанализировать более подробно, что же, собственно, происходит в пер- вые моменты анимации. Для этого достаточно сохранить и затем посмотреть дан- ные о столкновениях. Сохранение и просмотр столкновений При создании ключевых кадров в reactor можно дополнительно указать на не- обходимость сохранить данные о каждом происходящем столкновении. Перво- начально эти данные хранятся только в оперативной памяти. Поэтому их можно просматривать, не сохраняя на диске, хотя это не исключает возможность сохра- нить их в текстовом файле. Но поскольку число столкновений может оказаться очень большим, в reactor имеются средства для фильтрации, позволяющие сокра- тить число сохраняемых столкновений и тем самым упростить поиск тех столк- новений, которые представляют наибольший интерес. Соответствующие фильт- ры устанавливаются перед сохранением столкновений в оперативной памяти. Ключевые кадры анимации в данном проекте пока еще не создавались, а выпол- нялся лишь предварительный просмотр анимации. Теперь же необходимо создать ключевые кадры и сохранить столкновения. Это будет сделано сначала при распо- ложении платформы в точке координат -35 по оси Z, а затем в точке координат - 36. Получив представление о том, что, собственно, происходит, можно далее от- фильтровать полученные данные для более детального их анализа. Создание ключевых кадров анимации столкновений Ниже приведена процедура первой проверки при расположении платформы в точке координат - 3 5 по оси Z. 1. Перейдите к панели Utilities и щелкните на кнопке reactor в свитке Utilities (рис. 16.27). 2. Щелкните на кнопке-переключателе Always store (Всегда сохранять) в свит- ке Collisions (Столкновения) (рис. 16.28). 3. Щелкните на кнопке Create Animation, расположенной в нижней части па- нели инструментов reactor. Появится сообщение Are you sure you want to create an animation? This action cannot be undone(Вы дей- ствительно хотите создать анимацию? Это действие отменить нельзя).
Глава 16. Физика и динамика 635 Рис 16.27. Выбор утилиты reactor на панели Utilities Рис. 16.28. Выбор кнопки-переклю- чателя Always store в свитке Collisions V ’ZI& <®|Е)|Т| ।--------------- । Данное сообщение предупреждает о том, что любые уже имеющиеся ключе- вые кадры анимации объектов в имитации, сформированной с помощью re- actor, будут удалены и на их месте появятся вновь создаваемые ключевые кад- ры. (На ключевые кадры анимации объектов, не задействованных в имита- ции, это не оказывает никакого влияния.) Это имеет значение лишь в том случае, если ключевые кадры, автоматически созданные в reactor, поправле- ны вручную. Если заменить их вновь созданными ключевыми кадрами, руч- ная правка не сохранится и ее придется повторить. А поскольку в данном слу- чае ключевые кадры еще пе создавались, то и беспокоиться особенно не чем. 4. Щелкните на кнопке ОК. Модуль reactor автоматически создаст ключевые кадры. Над кнопками View и Clear в свитке Collisions, где раньше значилось No collisions stored (Сохраненные столкновения отсутствуют), те- перь отображается число сохраненных столкновений. 5. Щелкните на кнопке View в свитке Collisions Откроется окно Stored Со lisions (Сохраненные столкновения). Данные в этом окне представлены в формате электронной таблицы, в каждой строке которой находится отдельное столк- новение Кроме того, каждая строка разделена на восемь столбцов, обозна- чающих восемь фрагментов информации о столкновениях.
636 Часть VII. Частицы и динамика Сохраненные столкновения Ниже приведено краткое описание содержимого каждого столбца таблицы со- храненных столкновений. • Ticks (Отметки). Момент времени, обозначаемый в виде отметок с точно- стью до 1 /4800 секунды, когда произошло столкновение. В данном случае используется стандартная для видеоматериала частота 30 кадров в секунд}', поэтому па каждый кадр приходится до 160 отметок. • Frame (Кадр). Момент времени, обозначаемый в виде кадров, когда про- изошло столкновение. Если в качестве текущей единицы измерения време- ни выбраны не кадры (например, код SMPTE), данный факт отражается в этом столбце. • Object А (Объект А). Один из двух объектов, участвующих в столкновении. • Object В (Объект Б). Другой объект, участвующий в столкновении. • Point (Точка). Точка в пространстве мировых координат, в которой столк- нулись объекты. Вследствие программной ошибки в 3ds max 7 такие точки отображаются на экране неверно. Если же щелкнуть на кнопке Save в окне Stored Collisions, чтобы сохранить данные в текстовом файле, этот файл бу- дет содержать верно определенные точки. • Normal (Нормаль). Обозначает направление (но не скорость) удара в системе координат XYZ. Направление обозначается так, как если бы объект А стоял неподвижно, а двигался только объект Б, хотя вполне возможно и обратное или же движение обоих объектов. Направление обозначается тремя числами по осям координат X, Y и Z. Представьте себе стрелку единичной длины, обо- значающую удар. Три числа указывают, как далеко необходимо продвинуться в направлении осей координат X, Y и Z, чтобы перейти от конца до начала стрелки. В математике это называется единичным вектором нормали. • Speed (Скорость). Относительная скорость движения двух объектов вдоль единичного вектора нормали. Если данные сохраняются в текстовом фай- ле, эта скорость обозначается сокращением NRV (Относительная скорость по нормали). • Phantom (Сквозное тело). В этом столбце указывается, участвует ли в столк- новении сквозное твердое тело, т.е. такое тело, которое свободно проходит сквозь другие тела. В данном столбце возможны следующие значения: Not Phantom (в столкновении не участвует сквозное твердое тело). Entering (момент столкновения, когда сквозное твердое тело начинает проникать сквозь другое твердое тело) и Leaving (момент столкновения, когда сквоз- ное твердое тело полностью выходит из другого твердого тела). Ниже приведены сохраненные ранее данные о первых четырех столкновени- ях. Эти данные представлены в формате, который используется при их сохране- нии в текстовом файле. Во всех четырех столкновениях участвуют объекты platform и Object02.
Глава 16. Физика и динамика 637 Time. О А:Object02 В:platform Point: (43.4185 -8.4282 34.8831) Normal: (-4.60904е-006 -7.0279е-005 1) NRV: О Phantom : Not Phantom Time: 1 A:Object02 В : platform Point: (43.4185 8.4282 -34.8831) Normal: (-4.60904e-006 -7.0279e 005 1) NRV : 0 Phantom : Not Phantom Time 16 A:Obj ect02 В : platform Point: (43.4185 -8.4282 -34.8831) Normal: (-4-60904e 006 7.0279e-005 1) NRV: 1 20694 Phantom : Not Phantom Time : 18 A:Object02 Вplatform Point: (43.3 884 -8.44 -34.8482) Normal : (-3,01953e-005 4.6361e-005 1) NRV.167.956 Phantom : Not Phantom Если бы платформа двигалась, все четыре столкновения были бы направлены прямо вверх по осп L. па что указывает значение 1 данной координаты единичного вектора нормали. На самом же деле движение направлено вниз, поскольку движет- ся только объект Object02. По существу, координаты всех единичных векторов нормали равны (0,0,1), поскольку значения двух первых координат пренебрежи- мо малы (например, значение -4.60904е-006 в экспоненциальном представлении соответствует значению -0,00000460904 в десятичном представлении чисел). В двух первых столкновениях скорость равна пулю (возможно, опа настолько мала, что округлена до пуля), тогда как в третьем столкновении скорость уже не равна пулю хотя все еще очень мала (т.е. меньше 2 единиц в секунду). А вот в чет- вертом столкновении скорость уже составляет около 168 единиц в секунд). Закроите окно Stored Collisions. Выделите объект FactureOl и перейдите к папели Modify. В област и Break On (Условие разделения) из свитка Properties ус- тановлено значение 100 параметр Velocity (Скорость). Это означает, что данный разлом разделяется при условии, что один из кусков, участвующих в столкнове- нии, обладает скоростью 100 (по умолчанию) и более единиц в секунду. Таким об- разом, данным разлом разделяется практически мгновенно, а именно, при чет-
638 Часть VII. Частицы и динамика вертом столкновении между объектами platform и Object02, как только ско- рость окажется выше 100 единиц в секунду. Переместите платформу в точку координат -36 по оси Z, вновь создайте ани- мацию, как показано в предыдущем упражнении, а затем просмотрите сохранен- ные столкновения. Ниже приведены данные о первых 15 столкновениях между объектами platform и Object02. Time : 0 А:Object02 В:platform Point: (43.4185 8.4282 -35.3831) Normal: (-8.73185е-007 -1.33144е-005 1) NRV: 0 Phantom : Not Phantom Time : 8 A:Object02 В:platform Point: (43.4185 -8.4282 -35.3831) Normal: (-8.73185e 007 -1.33144e-005 1) NRV: 0 Phantom : Not Phantom Time: 16 A:Object02 В:platform Point. (43.4185 -8.4282 -35.3831) Normal: (-8.73185e 007 -1.33144e-005 1) NRV : 0.643699 Phantom : Not Phantom Time : 23 A:Object02 В:platform Point:(43.36 -8.45117 -35.315) Normal: (6.10491e-006 -1.37024e-005 1) NRV : 81.8201 Phantom : Not Phantom T me 32 A Object02 В:platform Point: (43.3017 -8.47404 -35.2468) Normal : (1.59lie 005 -1.16828e-005 1) NRV : 81.2282 Phantom : Not Phantom Time: 39 A Object02 В:platform
Глава 16. Физика и динамика 639 Point: (43.2435 -8.49689 -35.1791) Normal: (1.8671е-005 0 1) NRV:81.2799 Phantom : Not Phantom Time: 47 A:Obj ect02 В:platform Point: (43.1855 -8.51968 -35.1113) Normal: (2.-42683e-006 6.6013e-006 1) NRV: 80.6884 Phantom : Not Phantom Time: 64 A:Object02 В:platform Point: (43.0698 -8.56508 -34.9767) Normal (1.17392e-005 1.14664e-006 1) NRV 79.5036 Phantom : Not Phantom Time • 80 A:Object02 В:platform Point: (42.9547 -8.61027 -34.84441) Normal: (8.05859e-006 8.62837e-006 1) NRV:78.3188 Phantom Not Phantom Time. 96 A:Object02 В:platform Point: (42.8402 -8.65524 -34.7135) Normal: (7.59867e-006 -5.01621e-006 1) NRV: 77.1333 Phantom : Not Phantom Time: 112 A:Object02 В:platform Point: (42.7263 -8.70001 -34.5849) Normal: (1.3375e-005 2.07282e-006 1) NRV:75.947 Phantom : Not Phantom Time: 128 A:Object02 В:platform Point: (42.6129 -8.74456 -34.4582) Normal (6.45438e-006 3.80507e-006 1)
640 Часть VII. Частицы и динамика NRV : 74.7607 Phantom : Not Phantom Time : 144 A:Object02 В:platform Point: (42 5001 -8.78887 -34.3335) Normal: (-5.95529e-006 -2.1122e-006 1) NRV: 73.5742 Phantom : Not Phantom Time: 160 A:Obj ect02 В:platform Point: (42.3878 -8.8833 34.2108) Normal: (-2.73037e-006 9.18103e-006 1) NRV:72.3864 Phantom : Not Phantom Time : 176 A:Object02 В:platform Point: (42.2762 -8.87688 34.0901) Normal: (-1.14404e-005 1.22867e-006 1) NRV:71.1988 Phantom : Not Phantom Направление удара остается таким же, как и прежде. Однако максимальная скорость которая при этом достигается, все же оказывается мепыне скорости 100 единиц в секунду, необходимой для разделения разлома. Фильтрация столкновений В следующем упражнении вам предстоит отфильтровать столкновения, чтобы выявить, до какой степени тенденции, наметившиеся в первые моменты анима- ции, распространяются на остальную ее часть. Для этого достаточно просмотреть лишь столкновения на скорости 100 единиц в секунду и выше. 1. Оставив платформу в точке координат -36 по оси Z, перейдите к области Filter before storing (Фильтрация перед сохранением) из свитка Col isions на панели Utilities и установите флажок Velocity, а также значение 100 в поле расположенном справа от этого флажка (рис. 16.29). Теперь будут сохране- ны только столкновения на скорости 100 единиц в секунду и выше. 2. Вновь создайте анимацию, а затем просмотрите сохраненные столкнове- ния. Сохраненные столкновения отсутствуют. 3. Переместите ползунок по временной шкале анимации. Благодаря тому' что ранее были созданы ключевые кадры анимации, ее теперь можно просмат- ривать в видовых окнах. Куски перемещаются группой, но не распадаются.
Глава 16. Физика и динамика 641 Рис. 16.29. Задание скоро- сти в области Filter before storing из свитка Collisions 4. Переместите платформу' в точку координат -35 по оси Z и вновь создайте анимацию. На этот раз сохранены 17 столкновений. Просмотрите эти столкновения. Все они, кроме одного, происходят в нулевом кадре. 5. Переместите ползунок по временной шкале анимации. Куски начинают сразу же распадаться. Результаты просмотра анимации по ключевым кадрам в видовых окнах совпа- дают с результатами предварительного просмотра анимации в окне Real-Time Preview. Эти результаты отражают тот факт, что любая первоначальная неустой- чивость в разломе, образовавшемся с помощью reactor, может усилиться, если куски начинают приходить в движение слишком близко к другому объекту, осо- бенно если он неподвижен, как платформа в данном случае. Аналогичное явление происходит, когда в движение приходит один кусок, находящийся между двумя другими кусками, особенно если они взаимно проникают друт в друта. Подробнее об этом см. в первом абзаце раздела “Fracture Tips” (Рекомендации относительно разлома) справочного руководства по 3ds max 7. А теперь, когда подробно исследован вопрос первоначальной неустойчивости кусков, можно переходить к мерам их стабилизации. Стабилизация кусков В данном проекте нас интересуют два вида устойчивости. • Физическое равновесие. • Нереактивность, которая подразумевает уменьшенную подверженность к разделению на части. Эти виды устойчивости взаимосвязаны в том отношении, что если куски пер- воначально теряют равновесие, они начинают двигаться, как только начинается анимация. Именно в этот момент и может случиться разделение, что, собственно, и происходит с кусками в данном проекте. Итак, начнем с нереактивности. В reactor имеется целый ряд свойств, предна- значенных для укрощения непослушных кусков, стремящихся распасться легче и охотнее, чем требуется. В частности, в области Fracture Penetrations (Взаимное
642 Часть VII. Частицы и динамика проникновение в разломе) из свитка World на панели Utilities имеются три пара- метра, предназначенные для того, чтобы reactor не так сильно разделял взаимно проникающие куски (рис. 16.30). • Параметр Separation Time (Время разделения). При увеличении значения этого параметра замедляется процесс разделения кусков. • Velocity Сар (Ограничение скорости). При уменьшении значения этого па- раметра уменьшается предельно достигаемая скорость. • Scale Tolerance (Допуск на масштаб). При уменьшении значения этого па- раметра повышаются нормы, по которым в reactor определяется столкно- вение или взаимное проникновение. Рис. 16.30. Свиток World на панели Utilities Все три параметра позволяют добиться уменьшения вероятности взрывного разделения, хотя и, возможно, в ущерб реалистичности. Реализм может снизить- ся, если взаимное проникновение кусков хорошо заметно вследствие того, что куски разделяются не так быстро. При уменьшении значения параметра Scale Tolerance, повышающего нормы, по которым в reactor определяется столкнове- ние или взаимное проникновение, уменьшается не только интенсивность, но и число столкновений и взаимных проникновений, воспринимаемых reactor. Наиболее эффективным из всех трех упомянутых выше параметров является Scale Tolerance. Этот параметр изменяет расстояние, на котором reactor опреде- ляет столкновение или взаимное проникновение кусков. Это расстояние называ- ется допуском на столкновение (Collision Tolerance). Вполне логично предполо- жить, что объекты должны соприкоснуться, чтобы столкнуться. Это было бы справедливо в том случае, если бы reactor проверял условие столкновения посто- янно. В действительности эта проверка происходит через равные промежутки
Глава 16. Физика и динамика 643 времени, называемые тактами имитации. Быстро движущийся объект может пе- рейти в состояние взаимного проникновения в промежутке между тактами ими- тации. Инициируя реакцию на столкновение чуть раньше момента соприкосно- вения объектов, reactor предупреждает в какой-то степени подобное взаимное проникновение. Это отнюдь не означает, что объекты могут начать воздействовать друг на дру- га чуть раньше момента, когда они фактически соприкасаются. Однако зрители могут заметить не это незначительно разделение, а, скорее, взаимное проникно- вение такой же величины. Рассмотрим типичную сцену драки ковбоев из голли- вудского вестерна Ковбой А промахивается своим кулаком в 3 дюймах от челюсти ковбоя Б. При этом соприкосновения не происходит, однако голова ковбоя Б от- кидывается назад. Если показать эту сцену под правильным углом зрения, то мож- но убедить зрителей в том, что удар достиг цели. Если же для сравнения взять пример проникновения кулака ковбоя А в голову ковбоя Ь на те же 3 дюйма, то вряд ли можно найти угол, под которым этот удар буде г выглядеть достоверно. По умолчанию reactor запускает процесс имитации столкновений без разлома, когда объекты находятся па расстоянии 3,937 единицы друг от друга. Такой до- пуск на столкновение (для всего виртуального мира в целом) устанавливается в поле параметра Collision Tolerance из свитка World на панели Utilities. По умол- чанию reactor приравнивает 39,37 единицы к одному метру (см. поле первого параметра в области World Scale (Масштаб окружающего мира) па рис. 16.30). Поэтому величина 3,937 единицы соответствует 10 см, или одной десятой мет- ра. Таким образом, reactor запускает процесс имитации столкновений, когда не- пропикающис взаимно объекты находятся на расстоянии 10 см друг от друга. Все описанное выше относится к столкновениям непроникающих взаимно объектов. Но в разломах меньший доступ па столкновения, скорее всего, приве- дет к заметному взаимному проникновению кусков. Ведь куски, как правило, на- чинают приходить в движение, плотно прилегая друг к другу (при этом их взаим- ное проникновение не заметно). Следовательно, они могут и далее плотно приле- гать друг к другу, и тогда их взаимное проникновение остается незаметным, либо распасться и уже больше не соединиться вместе, и тогда их взаимное проникно- вение вообще не произойдет. Впрочем, маловероятно, чтобы кусок перешел из состояния непроникновения в состояние взаимного проникновения в промежут- ке между тактами имитации. Кроме того, разделение на части обычно происхо- дит очень быстро и в пего вовлечены многие куски, поэтому оно воспринимается как единое явление, в котором трудно проследить расположение отдельных кус- ков. По этим причинам для разломов обычно характерны допуски па столкнове- ние менее 10 см. Параметр Scale Tolerance представляет собой масштабный множитель в пре- делах от 1 до -1 для допуска па столкновение в разломах, специально вводимый для того, чтобы не оказывать влияния на величину допуска на столкновение во всем виртуальном мире в целом. По умолчанию значение параметра Scale Toler- ance равно 0,1. Это означает, что допуск на столкновение для разломов состав- ляет одну десятую от допуска па столкновение для виртуального мира. Следова- тельно, по умолчанию reactor запускает процесс имитации столкновений, ко1да куски находятся на расстоянии 0,3997 единицы (т.е. 1 см) друг от друга. А для
644 Часть VII. Частицы и динамика определения столкновений между куском и цельным объектом используется ве- личина допуска на столкновение для виртуального мира. Поэтому параметр Scale Tolerance оказывает влияние только на столкновения между двумя кусками. Если установить нулевое значение параметра Scale Тolerance reactor пе обна- ружит столкновение до тех пор, пока куски нс соприкоснутся. А если установить отрицательное значение этого параметра, куски будут фактически проникаться друг в друга еще до обнаружения факта столкновения. Когда же куски оказываются слишком большими по отношению к допуску на столкновение, то даже значения -1 параметра Scale Tolerance оказывается не- достаточно для сокращения столкновений до нужного предела. Например, в про- екте этой главы размеры нижних кусков в среднем составляют 75 единиц, по- скольку сторона квадратного основания исходной пирамиды составляла 150 еди- ниц. Следовательно, при уменьшении допуска на столкновение приблизительно на 4 единицы путем изменения значения параметра Scale Tolerance от стандарт- ного (0,1) до минимального (-1) ожидаемого заметного эффекта не наблюдает- ся. На самом деле он вообще отсутствует. Коррекция допусков на столкновение Для обеспечения большей устойчивости всего эффекта в целом попробуйте выполнить следующее. 1. Оставив платформ}' в точке координат -35 по оси Z, перейдите к свитку Collisions на панели Utilities Убедитесь в том, что в области Filter before Storing установлен флажок Velocity и значение 100 в поле, расположенном справа от этого флажка (именно в таком состоянии данная область была ос- тавлена в предыдущем упражнении). 2. Установите значение -1 параметра Scale Tolerance в области Fracture Penetrations из свитка World па той же панели. 3. Вновь создайте анимацию. При этом сохраняются 12 столкновений. Про- смотрите эти столкновения. Все они, кроме одного, происходят в нулевом кадре. 4. Переместите ползунок по временной шкале анимации. Куски начинают сразу же распадаться. 5. Попробуйте установить ряд других отрицательных значений параметра Scale Tolerance. В частности, при значениях этого параметра -0,1, или -0,9 или же при значении в промежутке между ними происходит лишь 11 столкнове- ний. В любом случае столкновения происходят между объектами platform и Obj ect02 причем большинство из них — немедленно. Как правило, установ- ка значения параметра Scale Tolerance меньше -0,1 (т.е. меньше средней ве- личины отрицательного допуска) практически ничего не дает. 6. Завершив экспериментирование с параметром Scale Tolerance установите его исходное значение 0,1. Безусловно, 11 столкновений лучше, чем 17, но этого явно недостаточно для достижения требуемой устойчивости.
Глава 16. Физика и динамика 645 Потери энергии и устойчивости Еще один параметр, относящийся к категории нереактивности, представлен полем Energy Loss (Потери энергии), доступным из свитка Properties выделенно- го объекта разлома на панели Modify (рис. 16.31). Этот параметр определяет в процентах потери энергии при разламывании куска. При увеличении значения параметра Energy Loss разделение на части происходит с меньшими потерями. Рис. 16.31. Параметр Energy Loss находится в нижней части свитка Properties на панели Modify Что же касается проекта этой главы, то даже крайние значения параметров нереактивности не препятствуют первоначальному разделению на части. А те- перь посмотрим, чего можно добиться с помощью физического равновесия. Физическое равновесие достигается довольно просто. Для этого достаточно вре- менно отменить разделение, предоставив кускам возможность перейти в состояние равновесия, а затем назначить это состояние для кусков в начале анимации. В следующем упражнении данная процедура представлена более подробно. 1. Выделите разлом (объект Fractured 1). Затем выделите по очереди объекты ObjectOl, Object02, Object03 и Object04 в списке из свитка Properties на панели Modify и щелкните на кнопке-переключателе Unbreakabe (Неразде- ляемый) для каждого из этих объектов.
646 Часть VII. Частицы и динамика 2. Щелкните на кнопке Preview Animation, а затем нажмите клавишу <Р>. Куски льда падают, но не распадаются, поскольку они неразделяемые. Как только куски льда перестанут двигаться, выберите команду' MAXS Update МАХ из строки меню в окне Real-Time Preview (рис. 16.32). Благодаря этому' данное устойчивое состояние назначается для кусков в первом кадре анимации. Рис. 16 32 Выбор команды Update МАХ в окне Real-Time Preview 3. Выберите команду Simulations Reset (Имитация^Установка в исходное со- стояние) из строки меню в окне Real-Time Preview. Нажмите клавишу <Р> Первоначальное движение кусков отсутствует, поскольку теперь их исход- ное положение устойчиво. Итак, цель, т.е. идеальная исходная устойчи- вость кусков, достигнута с помощью одного лишь физического равновесия! Выйдите из окна Real-Time Preview 4. В завершенном варианте данной сцены разлом не должен быть неразделяемым, поэтому его необходимо вновь сделать разделяемым. Если объект разлома вы- делен, выделите по очереди объекты ObjectOl, Object02, Object03 и Object04 в списке из свитка Properties на панели Modify, а затем щелк- ните на кнопке-переключателе Normal для каждого из них, чтобы сделать их разделяемыми. Теперь ваша сцена должна быть такой же, как и в файле \Proj ect Files\ Chl6_PhysicsAndDynamics\Dolphin&Rider_03.шах на прилагаемом к этой книге DVD. 5. Сохраните свою сцену в файле my_Dolpbin&Rider_0 3 . max.
Глава 16. Физика и динамика 647 Данный пример весьма характерен Если требуется добиться первоначальной устойчивости, для этой цели лучше всего подойдет физическое равновесие. А па- раметры переактивности более пригодны для того, чтобы добиться более уме- ренного разделения, если уж до него доходит дело. Итак, состояние равновесия достигнуто, и теперь можно перейти к анимации дельфина. Анимация дельфина В этом разделе будут рассмотрены три основных подхода к анимации дельфина. Прежде всего необходимо превратить дельфина в твердое тело, находящееся полностью под управлением reactor, чтобы не создавать ключевые кадры вруч- ную. Это довольно простой способ, хотя он и не позволяет получить требуемую траекторию движения дельфина в данной сцепе. Но такой способ вполне приго- ден, например, в том случае, если требуется сымитировать падение шара, по- скольку в этом случае одна лишь сила тяжести, воспроизводимая в reactor, спо собна полностью обеспечить движение шара. Однако в данной сцене дельфин должен выскочить из воды на айсберг, а в reactor отсутствует сила, способная обеспечивать такое движение. Итак, перейдем к анимации твердого тела вручную, чтобы установить ключе- вые кадры движения дельфина, а точнее, объекта верхнего уровня, управляющего движением дельфина. Созданные вручную ключевые кадры будут объединены с ключевыми кадрами, автоматически сформированными в reactor. Благодаря ус- тановке ключевых кадров вручную можно непосредственно определить характер первоначального движения дельфина, не полагаясь полностью на силы, доступ- ные в reactor. Ручная анимация твердого тела оказывается вполне приемлемым решением для данного проекта, хотя ей и присущи недостатки, главный из которых состоит в том, что при имитации невозможно учесть анимацию каркаса на уровне подобъектов. Поэтому необходимо рассмотреть возможность использовать дельфина в качестве деформируемого каркаса, что позволит принять во внимание анимацию на уровне подобъектов при имитации. В итоге имитация получится более точной, хотя и за счет повышения нагрузки на процессор, поскольку повышаются требования к об работке такого сложного каркаса, как у дельфина. Ниже будет рассмотрен метод уменьшения нагрузки, по крайней мере, на этапе проверки. Имитация движения только средствами reactor Для организации движения дельфина в первом приближении достаточно пег местить его над кусками льда и предоставить ему возможность падать под дейст- вием силы тяжести, обеспечиваемой с помощью reactor, чтобы в конечном итоге он ударился об лед и разбил его. Откройте сцену из файла \Project Files\Chl6_PhysicsAndDynamics\ Dolphin&Rider_03 .шах на прилагаемом к этой книге DVD или же продолжите ра- боту над сценой из файла my_Dolphin&Rider_03 .max, сохраненного на жестком диске в предыдущем упражнении.
648 Часть VII. Частицы и динамика НА ЗАМЕТКУ В указанном выше файле сцены дельфин представляет собой фигуру с кожным покровом, специально предназначенную для перемещения и анимации с помо- щью управляющих объектов, имена которых начинаются с префикса ctrl_, вместо непосредственного преобразования каркасного объекта dolphin.01. 1. Выделите объект RBCollectionOl и добавьте к нему объект dolphinOl, щелкнув на кнопке Add сначала в свитке RB Collection Properties (Свойства набора твердых тел), а затем на аналогичной кнопке в открывшемся диало- говом окне Select rigid bodies (Выбор твердых тел) (рис. 16.33). Select ngid bodies eld dclphn_aS ctr|_backboneback bone back_tal2 bone_back_la3 ctrf_backbone_ front bene back_m*d bone_back_fTont2 bone backjrorf ctrlJIipL bone.floL ctrUfcR bone ftpfl dolphrnjrctef dolphin_ er hen dolphn rnJet_ha<_band -Sort--------------- Alphabet cal C By Type Г By Colo Г By Size |-RBCoiectcnnopeffes Rigri Bodies highlight [ bjectO Ob|eciO2 0bject03 0biecl04 platform cebergO! waler plane -Lisi Types— R fieomelry R Shapes R lights R Cameras R Helpers R Space&arps R Grotjw/AsseiTtbfes R &Refs R fione Objects M I None | Invert [ г Selection Sets | Hone | Invert | | R Display Subtree Г~ Case Sensitive Г SelectSubitee Г Select Dependents * 2 3 4 s°tec> Pick | Add | Delete | Г* Disabled 3 Рис. 16.33. Ввод объекта dolphinOl в набор твердых тел RBCollectionOl 2. Выберите инструмент Select Object (а не инструменты преобразования) на основной панели инструментов, выделите объект dolphinOl, щелкните на кнопке Open Property Editor, расположенной на панели reactor, и установи- те значение 1000 параметра Mass в свитке Physical Properties диалогового окна R gid Body Properties. В данном случае не рекомендуется пользоваться инструментами преобразования, чтобы случайно не преобразовать каркас- ный объект dolphinOl. 3. Выделите объект ctrl_dolphin_all, управляющий дельфином, и пере- местите его в точку с координатами (100,0,275). 4. Щелкните на кнопке Preview Animation и нажмите клавишу <Р> Дельфин падает на лед и разбивает его на куски (рис. 16.34).
Глава 16. Физика и динамика 649 Рис. 16.34. Дельфин падает на лед и разбивает его на куски 5. Сохраните сцену в файле my Dolphin&Rider 0 4. max. Полученный результат уже обнадеживает, но еще остались неразрешенными следующие вопросы. • Дельфин отскакивает от платформы, продолжая взаимодействовать с кус- ками льда. Однако впечатления от данной сцены окажется более благопри- ятным, если дельфин будет проникать сквозь платформу. • Дельфин не должен падать прямо с неба. Сначала он должен выскочить из воды, а затем опуститься на лед. Эти вопросы можно решить самыми разными способами и, в частности, с по- мощью анимации твердого тела вручную. Анимация твердого тела вручную Итак, необходимо создать анимацию твердого тела, которая полностью нахо- дится под управлением ключевых кадров, расставляемых вручную. Твердые тела, управляемые с помощью reactor, будут реагировать на оживляемое вручную твер- дое тело, а то, в свою очередь, не будет подвержено их влиянию. Ниже описывается общая процедура анимации твердого тела вручную. 1. Выделите объект, который подлежит анимации вручную. 2. Щелкните на кнопке Open Property Editor из панели инструментов reactor и установите флажок Unyielding (Жесткое тело) в свитке Physical Properties диалогового окна Rigid Body Properties. Для жестких тел reactor не создает ключевые кадры. А именно это в данном случае и требуется так как ключе- вые кадры необходимо установить вручную. Данному объекту вообще не 1гужно сообщать массу, поскольку он не принимает участие в имитации.
650 Часть VII. Частицы и динамика 3. Введите объект, который подлежит анимации, в набор твердых тел. 4. Осуществите анимацию этого объекта. Сначала следует попрактиковаться на параллелепипеде, чтобы посмотреть, как в этом простейшем случае действует создаваемая вручную анимация, а затем применить приобретенные навыки для аналогичной анимации дельфина. Анимация параллелепипеда вручную Откройте сцену из файла \Project Files\Chl6_PhysicsAndDynamics\ Dolphin&Rider_04 .шах на прилагаемом к этой книге DVD или же продолжите работу над сценой из файла my_Dolphin&Rider_04 .max, сохраненного на жест- ком диске в предыдущем упражнении. 1. Создайте в окне вида сверху параллелепипед длиной 80, шириной 50 и вы- сотой 150. Расположите его в точке с координатами (-250,0,-100). При- свойте ему имя dolphin_proxy (Заменяющий дельфина объект). СОВЕТ Не забудьте ввести соответствующие координаты расположения параллелепи- педа со знаком "минус"! 2- Если объект dolphin_proxy все еще выделен, щелкните на кнопке Open Property Editor из панели инструментов reactor. Установите флажок Unyielding в свитке Physical Properties диалогового окна Rigid Body Properties. Обратите внимание на то, что масса параллелепипеду вообще не сообщается. 3. Выделите объект RBCollectionOl. Перейдите к панели Modify и добавьте к данному набору твердых тел объект dolphin_proxy, аналогично опи- санному в п.1 предыдущего упражнения. Кроме того, удалите объект dol- phinOl из набора RBCollectionOl, выделив этот объект в списке объек- тов, входящих в данный набор, и щелкнув на кнопке Delete. 4. Активизируйте режим Auto Key. Выделите объект dolphin_proxy, перей- дите к кадру 2 5 и переместите этот параллелепипед в точку с координатами (0,25,250). 5. Перейдите к кадру 50 и переместите объект dolphin_proxy в точку с ко- ординатами (100,25, -150). 6. Выключите режим Auto Key. 7. Щелкните на кнопке Preview Animation и нажмите клавишу <Р>. Объект dolphin proxy раскалывает лед. 8. Сохраните сцену в файле my _Dolphin&Rider_05 .max Для сравнения по- лученных результатов откройте сцену из файла \Project Files\Chl6_ PhysicsAndDynamics\Dolphin&Rider_05 .max на прилагаемом к этой книге DVD Как видите, приведенный выше способ анимации вручную довольно прост, но в то же время он весьма эффективен. А теперь объект dolphin_proxy необхо- димо заменить объектом dolphinOl.
Глава 16, Физика и динамика 651 Анимация каркасного объекта дельфина вручную Если вы желаете продолжить работу над проектом со сцены, сохраненной в пре- дыдущем упражнении, удалите объект dolphin_proxy из набора RBCollectionOl. Для этого выделите объект dolphin_proxy в списке объектов, входящих в данный набор и щелкните на кнопке Delete. Скройте или удалите объект dolphin^ proxy со сцепы. С другой стороны, вы можете открыть сцену \Project Files\Chl6_ PhysicsAndDynamics\Dolphin&Rider_06 .max на прилагаемом к этой книге DVD В данном случае преследуется цель использовать объект dolphinOl для раска- лывания льда. Этот объект представляет собой снаряженную и снабженную кож- ным покровом каркасную модель дельфина. Для воздействия на кости этой моде- ли, а тех. в свою очередь, на ее каркас требуется анимация соответствующих управляющих объектов. Для этой цели оживляемое вручную твердое тело следует ввести в набор RBCollectionOl, аналогично п.З предыдущего упражнения. Но что лучше вве- сти: управляющий объект или же объект dolphinOl? Попробуйте сначала ввести в набор твердых тел управляющий объект ctrl_dolphin_all, выполнив следующее упражнение. 1. Выделите объект RBCollectionOl. Этот набор должен содержать только че- тыре объекта кусков льда и платформу. Щелкните на кнопке Add и выделите управляющий объект ctrl_dolphin_all, чтобы ввести его в данный набор. 2. Попробуйте назначить свойство Unyielding для управляющего объекта. Как видите, сделать это просто невозможно, поскольку все параметры в диало- говом окне Rigid Body Properties становятся недоступными (рис. 16.35). Рис. 16.35. Все параметры в диалоговом окне Rigid Body Properties становятся недоступными
652 Часть VII. Частицы и динамика 3. Щелкните на кнопке Analyze World. Должно появиться сообщение АН vertices in mesh are coplanar, please use Concave Mesh (Bee вершины каркаса компланарны, поэтому воспользуйтесь вогнутым карка- сом). Это ошибка из разряда фатальных, а не просто предупреждение. Если попытаться выполнить предварительный просмотр анимации, из этого ни- чего не выйдет. 4. Удалите управляющий объект ctrl_dolphin_all из набора RBCollec- tionOl. В сообщении об ошибке, приведенном в п.З предыдущего упражнения, предла гается преобразовать управляющий объект в вогнутый каркас, используя кнопку- переключатель Concave Mesh в свитке Simulation Geome гу диалогового окна Rigid Body Properties. Но как следует из п.2 предыдущего упражнения, это просто невозможно, поскольку все параметры в данном диалоговом окне становятся не- доступными. Итак, ввод управляющего объекта в набор твердых тел не дает никаких резуль- татов. Поэтому попробуйте ввести в это! набор сам каркасный объект дельфина в следующем упражнении. 1. Выделите объект RBCollectionOl, если он еще не выделен. Этот набор должен по-прежнему содержать объекты кусков льда и платформу. Щелк- ните на кнопке Add и выделите объект dolphinOl, чтобы ввести каркас- ный объект дельфина в данный набор твердых тел. 2. Выделите объект dolphinOl. Щелкните на кнопке Open Property Editor. Установите флажок Unyielding в свитке Physical Properties диалогового окна Rigid Body Properties. Пока что все идет хорошо. Сообщать дельфину массу не нужно, поскольку у него уже имеется масса 1000 единиц. 3. Щелкните па кнопке Analyze World. Должно появиться сообщение World Analysis gave no warnings. 4. Перейдите к нулевому кадру, выделите управляющий объект ctrl_dolphin_ all и расположите его в точке с к ординатами (-30,150,-100). 5. Включите режим Auto Key. Выделите, если требуется, объект ctrl_dolphin_ all. Перейдите к кадру 50 и расположите этот управляющий объект в точке с координатами (50,0,2 50). Далее перейдите к кадру 50 и расположите объект ctrl_dolphin_all в точке с координатами (100,0,-150). При просмотре анимации можно заметить, как дельфин перемещается. 6. Выберите инструмент вращения и воспользуйтесь в кадре 5 0 при все еще ак- тивном режиме Auto Key экранным маркером (в виде серого внешнего круга), чтобы повернуть объект ctrl_dolphin_all приблизительно на 90 по ча- совой стрелке в окне вида спереди и тем самым наклонить дельфина еще больше лицом вниз (рис. 16.36).
Глава 16. Физика и динамика 653 Рис. 16.36. Воспользуйтесь экранным мар- кером в виде серого внешнего круга), чтобы повернуть объект ctrl_dolphin_all 7. Выключите режим Auto Key. 8. Щелкните на кнопке Preview Animation и нажмите клавишу <Р>. Дельфин не двигается, поскольку он представляет собой деформируемый каркас, а это подразумевает анимацию его вершин по ключевым кадрам (в данном случае благодаря формированию кожного покрова). Данная ситуация отличается от рассмотренной выше, когда анимация распространялась на весь парал- лелепипед, но не на такие подобъекты, как вершины. Следовательно, ани- мация вершин каркасного объекта дельфина не учитывается при оживляе- мой вручную имитации его движения. 9. Удалите объект dolphinOl из набора RBCollectionOl. 10. Сохраните сцену в файле my_Do Iphin&Ri der_0 7 . max. Компланарные и управляющие объекты Итак, удовлетворительных результатов добиться не удалось ни в том случае, когда в набор твердых тел был введен управляющий объект, ни тогда, когда в этот набор был введен каркасный объект дельфина. Это похоже на тупик, однако вы- ход из него все же есть. Ключ к решению следует искать в приведенном выше со- общении об ошибке, где упоминаются компланарные вершины. Как было показано выше, reactor в действительности не воспринимает ком- планарный объект в качестве твердого тела. Он допускает ввод такого объекта в набор жестких тел, но не позволяет сообщить ему массу или назначить для него свойство Unyield ng.
654 Часть VII. Частицы и динамика Очевидно, круг является компланарным объектом. Но что если вытянуть его? В таком случае он уже не будет компланарным, и его, возможно, удастся использовать в качестве твердого тела. Этот вариант и будет опробован в следующем упражнении. Откройте сцену из файла \Project Files\Chl6_PhysicsAndDynamics\ Dolphin&Rider_07 .max на прилагаемом к этой книге DVD или же продолжите работу над сценой из файла my_Dolphin&Rider 07 .max, сохраненного на жест- ком диске в предыдущем упражнении. 1. Выделите управляющий объект ctrl_dolphin_all и примените к нему модификатор Extrude. Установите значение 2 5 параметра Amount в свитке параметров этого модификатора. Круг превратится в цилиндр (рис. 16.37). Рис. 16.37. Управляющий объект принимает цилиндрическую форму 2. Выделите объект' RBCollectionOl. Этот набор должен содержать только че- тыре объекта кусков льда и платформу. Щелкните на кнопке Add и выделите управляющий объект Ctrl _dolphin_all, чтобы ввести его в данный набор. 3. Назначьте свойство Unyielding для управляющего объекта ctrl_dolphin_ all. Теперь параметры в диалоговом окне Rigid Body Properties вполне дос- тупны для настройки. 4. Щелкните на кнопке Preview Animation и нажмите клавишу <Р> Управляю- щий объект перемещается, разделяя разлом. 5. Щелкните на кнопке Create Animation и перетащите ползунок по временной шкале анимации. Дельфин и сидящая на его спине морская нимфа переме- щаются вместе с управляющим объектом ctrl_dolphin_all. Итак, получен черновой, приближенный вариант требуемого эффекта. Все указывает па то, что данный метод вполне работоспособен. Тем не менее остает- ся еще одно затруднение: на разлом воздействует управляющий объект, а не сам
Глава 16. Физика и динамика 655 дельфин, поэтому удар выглядит совершенно неверно. В действительности управляющий объект оказывается настолько шире дельфина, что он фактически ударяется с кусками льда на пути вверх, а не вниз. Такой ффект отнюдь не впечатляет. Следовательно, необходимо согласовать форму управляющего объекта с формой дельфина, что и будет сделано в следую- щем упражнении. 1. Выделите управляющий объект ctrl_dolphin_all. Перейдите к кадру 35. Этот кадр находится близко к тому кадру, где дельфин ударяет в лед. Имен- но в данный момент очень важно, чтобы формы управляющего объекта и каркасного объекта дельфина совпадали. 2. Выделите объект Circle в стеке модификаторов и установите радиус 30 в свитке его параметров (рис. 16.38). 3. Выделите модификатор Extrude в стеке модификаторов и увеличьте до 90 значение параметра Amount в свитке параметров данного модификатора. Управляющий объект должен лишь покрывать нос дельфина. Если теперь выполнить предварительный просмотр анимации, она будет выглядеть достаточно хорошо. Но используя возможности стека модификаторов, можно попытаться улучшить ее. 4. Примените к управляющему объекту ctrl_dolphin_all модификатор Squeeze. Установите значение -0,11 параметра Amount в свитке парамет- ров данного модификатора (рис. 16.39). Благодаря этому управляющий объект немного сужается спереди. Рис. 16.38. Установите зна- чение 30 параметра Radius в свитке Parameters Рис. 16.39. Примените к управляюще- му объекту ctrl_dolphin_all моди- фикатор Squeeze, чтобы сузить его 5. Примените к управляющему объекту ctrl_dolphin_all модификатор Mirror. Выберите кнопку-переключатель Z в области Mirror Axis (Ось зер- кального отображения), установите значение 2,64 в поле Offset и флажок Сору из свитка параметров этого модификатора. Управляющий объект зер- кально отобразится спереди назад (рис. 16.40).
656 Часть VII. Частицы и динамика Рис. 16.40. Примените к управляющему объекту ctrl_dolphin_all модификатор Mirror, чтобы зеркально отобразить его спереди назад 6. Создайте анимацию. Куски льда реагируют вовремя, создавая иллюзию, что их разбивает именно дельфин. Невидимость Теперь остается лишь сделать управляющий объект невидимым, чтобы еще больше приблизить к реальности иллюзию разбивания льда дельфином Невиди- мость является типичным условием создания сцен с использованием reactor по- этому данное свойство может оказаться удобным для сохранения невидимым ма- териала, оперативно назначаемого для любого объекта. В следующем упражнении показано, каким образом невидимый материал создается и назначается для управляющего объекта. 1. Выделите управляющий объект ctrl_dolphin_all. 2. Нажмите клавишу <М>, чтобы открыть редактор материалов. 3. Выберите неиспользованную позицию образца материала и установите ну- левое значение параметра Opacity в свитке Bl nn Basic Parameters нового материала. 4. Щелкните на кнопке Assign Material to Selection, т.е. третьей слева кнопке на горизонтальной панели инструментов в редакторе материалов (рис. 16.41). Управляющий объект становится невидимым. В видовых окнах он отобража- ется как призрак (или как гизмо, когда выделен) и вообще не визуализирует- ся, хотя и наблюдается при предварительном просмотре анимации. Но самое главное, что при окончательной визуализации будет виден только дельфин. НА ЗАМЕТКУ Если используется программный видеодрайвер (Software), управляющий объект может и не отображаться как призрак.
Глава 16. Физика и динамика 657 Рис. 16.41. Выбор кнопки Assign Material to Selection в редакторе материалов Анимация дельфина по ключевым кадрам Обратите внимание на то, что остальная часть снаряжения модели дельфина, введенной в виртуальный мир, сформированный в reactor, по-прежнему действу- ет. Этим обстоятельством можно воспользоваться, чтобы выгнуть дугой позво- ночник дельфина и направить его плавники вниз, когда он достигает верхней точки своего прыжка из воды. А когда он ныряет вниз, его позвоночник следует выпрямить и вновь расправить плавники в стороны. НА ЗАМЕТКУ Г Манипулировать всеми объектами, управляющими дельфином, кроме объекта ctrl_dolphin_all, следует лишь с помощью специальных атрибутов на панели Modify 1. Включите режим Auto Key и перейдите к кадру 2 5. 2. Выделите объект ctrl_backbone_back, управляющий задней частью по- звоночника дельфина. Установите значение -9,2 специального атрибута arch (Дуга) на панели Modify, т.е. единственного специального атрибута в свитке Custom Attributes (рис. 16.42). 3. Выделите объект ctrl_backbone_f ront, управляющий задней частью по- звоночника дельфина. Установите значение 9,2 специального атрибута arch на панели Modify. 4. Выделите объект ctrl_f lipL, управляющий левым плавником дельфина. Установите значение 35 специального атрибута flip) на панели Modify. 5. Выделите объект ctrl_f lipR, управляющий правым плавником дельфина. Установите значение 35 специального атрибута flip (Плавник) на пане- ли Modify. 6. Перейдите к кадру 50.
658 Часть VII. Частицы и динамика т |c?rl backbone back » ПТ I е Е Рис. 16.42. Специальный атрибут arch для манипулирования управляющим объектом ctrl_backbone_back 7. Вновь выделите управляющий объект ctrl_backbone_back. Установите пулевое значение специального атрибута arch. 8. Выделите объект ctrl_backbone_front, управляющий передней частью позвоночника дельфина. Установите нулевое значение специального атри- бута arch. 9. Выделите объект ctrl_flipL, управляющий левым плавником дельфина. Установите значение 2 0 специального атрибута flip. 10. Вновь выделите управляющий объект ctrl_f lipR. Установите значение - 20 специального атрибута flip. 11. Выключите режим Auto Key. 12. Переместите ползунок по временной шкале, чтобы посмотреть только что созданную анимацию. Она придает движению дельфина важные, хотя и ед- ва заметные живые черты. 13. Сохраните сцену в файле my_Dolphin&Rider_0 8 . max. Для сравнения полученных результатов анимации дельфина по ключевым кад- рам откройте сцепу' из файла \Project Files\Chl6_PhysicsAndDynamics\ Dolphin&Rider_08 .max на прилагаемом к этой книге DVD. В данном проекте а и ац я дельфина вручную оказывается оптимальным ре- шением. И теперь можно приступать к вводу' в сцену воды. Тем не менее анимации вручнуто присущи определенные ограничения. В част- ности, при такой анимации объект не подвергается воздействию со стороны дру- гих объектов. Это всегда причина, но не следствие. В упражнениях следующего раздела будет показано, каким образом можно преодолеть подобные ограниче- ния, сочетая в то же время анимацию вручную с клю евыми кадрами, автомати- чески формируемыми в reactor. Использование начального и конечного кадров В любом кадре, где reactor автоматически формирует ключевые кадры анима- ции твердого тела, удаляются любые существовавшие до этого ключевые кадры. Это ограничение можно преодолеть, например, следующим образом: разделить
Глава 16. Физика и динамика 659 сцену на кадры, в которых управление осуществляется вручную, и кадры, в кото- рых управление осуществляет reactor. В данном проекте это делается вручную пу- тем перемещения дельфина в определенное положение, после чего его движени- ем уже управляет reactor. Откройте сцену из файла \Project Files\Chl6_PhysicsAndDynamics\ Dolphin&Rider_08 .max па прилагаемом к этой книге DVD или же продолжите работ}' над сценой из файла my_Dolphin&Rider_08 .max, сохраненного на жест- ком диске в предыдущем упражнении. 1. Выделите управляющий объект ctrl_dolphin_all и щелкните на кнопке Open Property Editor из панели инструментов reactor. 2. Установите значение 100 параметра Mass в диалоговом окне Rigid Body Properties. Объекты, не имеющие массы, не подвержены действию силы тяжести, а следовательно, и воздействию со стороны других объектов. 3. Сбросьте флажок Unyielding в том же диалоговом окне Rigid Body Properties, поскольку reactor не формирует ключевые кадры для жестких тел. 4. Выберите кнопку reactor на панели Utilities и раскройте свиток Preview & Animation. Установите значение 25 параметра Start Frame (Начальный кадр) в области Timing (Времени ые характеристики анимации) данного свитка (рис. 16.43). Модуль reactor начнет формировать ключевые кадры, начиная лишь с кадра 25. reactor About I reactor' J powered by havok reactor 21.0.6 H Preview & Anmabon - Timing--------- - -— — Start Frame Г" End Frame [lOO C Frames/K^i p 3] SubstepsTKey |7?5 3 Time Scale 110 3! Create Antmabon I Г" Update Viewports Г* Create LisVLayer Preview in Window Рис. 16.43. Установите значение 25 параметра Start Frame в свитке Preview & Animat on параметров reactor на панели Utilities 5. Выполните предварительный просмотр анимации. Опа начинается в кадре 25. При этом не наблюдается первоначальная анимация, созданная вручную.
660 Часть VII. Частицы и динамика 6. Создайте анимацию. Модуль reactor автоматически сформирует ключевые кад- ры анимации управляющего объекта ctrl_dolphin_all, начиная с кадра 25. 7. Переместите ползунок по временной шкале анимации от нулевого кадра к 100-му. В первых 25 кадрах наблюдается анимация, созданная вручную. После этого следует анимация, сформированная reactor вручную. То же са- мое наблюдается и после визуализации данной сцепы. Итак, созданная вручную анимация плавников и позвоночника дельфина со- храняется. Объекты, управляющие плавниками и позвоночником, вообще не уча- ствуют в имитации, поэтому reactor и не оказывает на них никакого влияния. В свитке Preview & Animation параметров reactor па панели Uti ities имеется также поле параметра End Frame (Конечный кадр), в котором в данном случае ус- тановлено значение 100, т.е. кадр 100, с которого можно продолжить анимацию вручную. Если же ее требуется продолжить, например с кадра 75, установите зна- чение 7 5 в поле параметра End Frame и выполните следующее упражнение. 1. Удалите все ключевые кадры в промежутке между кадрами 75 и 100. Если вы удалите несколько ключевых кадров до кадра 75, особого вреда от этого не будет. Только не удаляйте ключевые кадры, предшествующие кадру 25. 2. Создайте анимацию. Модуль reactor автоматически сформирует ключевые кадры в промежутке между кадрами 25 и 75, и движение дельфина прекра- тится, начиная с кадра 75. 3. С этого момента можно приступать к анимации вручную. Теперь дельфин уже не проникает сквозь платформу, как прежде. Этот недос- таток можно без труда устранить, отменив столкновения между управляющим объектом ctrl_dolphin_all и платформой с помощью кнопки Define Col ision Pairs (Определить сталкивающиеся пары) из свитка Collisions параметров reactor на панели Utilities. Для этой цели выполните следующее упражнение. 1. Щелкните па кнопке Define Collision Pairs в свитке Со lis ons параметров ie- actoi па панели Utilities (рис. 16.44). 2. Выделите управляющий объект ctrl_dolphin_all в левом списке Entities (Объекты) открывшегося диалогового окна Define Collisions. 3. Выделите элемент platform <-> ctrl_dolphin_all в среднем списке Enabled Collisions (Разрешенные столкновения), а затем щелкните на кноп- ке со стрелкой, направленной вправо (это верхняя кнопка в столбце между вторым и третьим списками в диалоговом окне Define Collisions). Сталки- вающаяся пара объектов переносится в правый список Disabled Collis ons (Отмененные столкновения) (рис. 16.45). 4. Щелкните па кнопке ОК. 5. Если осуществить предварительный просмотр анимации или же создать ее, то можно увидеть, как дельфин проходит сквозь платформу. 6. Сохраните сцену в файле my_Dolphin&Rider_09 . max.
Глава 16. Физика и динамика 661 Рис. 16.44. Выбор кнопки Define Collision Pairs из свитка Collisions параметров reactor на панели Utilities Рис. 16.45. Окно Define Collisions Для сравнения полученных результатов анимации дельфина откройте сцену из файла \Project Files\Chl6_PhysicsAndDynamics\Dolphin&Rider_09.max на прилагаемом к этой книге DVD. Сокращение числа ключевых кадров В связи с объединением анимации, созданной вручную, и анимации, автома- тически формируемой в reactor, следует также упомянуть о сокращении числа ключевых кадров. В области Key Management (Организация ключевых кадров) из свитка Utils параметров reactor на панели Utilities имеется кнопка Reduce Now (Сократить теперь), позволяющая удалить лишние ключевые кадры для всех на- ходящихся на сцене твердых тел. То же самое делает и кнопка Reduce Keys (Сократить число ключевых кадров) в области Selection того же свитка любых выделенных твердых тел (рис. 16.46).
662 Часть VII. Частицы и динамика I и* ... t - World Analysis-------------1 Апарте World | 17 fvufyze Before Simulation r^ Report Problems After Smulalux, Г Save Before Simulation Key Management--------------- Reduction Threshold |d.S - Г" Reduce After Simulation Reduce Now Delete All Keys | Selection Test Convert^ | Delete Keys Reduce Keys Рис. 16 46. Кнопка Reduce Keys позво- ляет удалить лишние ключевые кадры для любых выделенных твердых тел К лишним относятся такие ключевые кадры, после удаления которых анимация внешне никак не меняется. Параметр Reduction Threshold (Порог сокращения) оп- ределяет, будет ли данный процесс верно направлен в сторону сохранения анима- ции или же он приведет к безжалостному избавлению от ключевых кадров. Чем меньше значение параметра Reduction Thresho d, тем выше достоверность конеч- ного результата. Если сократить число ключевых кадров до приемлемого уровня, это даст возможность править вручную ключевые кадры, созданные в reactor. После этого, скорее всего, придется исключить объекты из имитации, удалив их, напри- мер, из любых наборов, чтобы reactor не сформировал ключевые кадры на месте поправленных вручную. Это еще один способ объединения анимации, созданной вручную, с анимацией, формируемой автоматически. В предыдущих упражнениях по анимации вручную каркасный объект дельфи- на (dolphinOl) не был включен в имитацию, тогда как управляющий объект (ctrl_dolphin_all) — включен. А в последующих упражнениях вам предстоит сделать все наоборот. Деформация каркаса Выше уже обращалось внимание на важное ограничение, присущее работе с создаваемой вручную анимацией, а именно: если попытаться работать непо- средственно с таким деформируемым каркасом, как у объекта dolphinOl, то анимация вершин каркаса не будет учтена при имитации. Вся анимация кожного покрова происходит на уровне вершин, даже если при этом перемещается каждая вершина модели персонажа, как, например, в том случае, когда объект dol- phinOl перемещается под управлением объекта ctrl_dolphin_all. Именно поэтому, когда объект dolphinOl был введен в набор твердых тел, модуль reactor
Глава 16. Физика и динамика 663 проигнорировал всю анимацию этого объекта, так что он вообще не двигался (см. выше раздел “Анимация каркасного объекта дельфина вручную”). Выше также было показано, каким образом можно преодолеть данное ограни- чение с помощью анимации вручную управляющего объекта, который не подле- жит ан мации на уровне подобъектов-вершин. При этом форма управляющего объекта была согласована с формой дельфина. Это было сделано по отношению к уже имевшемуся снаряжению с учетом того, что исходное состояние управляю- щего объекта можно будет впоследствии восстановить. Таким образом, к управ- ляющему объекту были применены модификаторы, которые затем можно удалить или отключить. С другой стороны, можно было бы создать новый управляющий объект, точно совпадающий по форме с дельфином, используя даже оптимизиро- ванную копию самого дельфина в качестве управляющего объекта. Однако анимация вручную не позволяет оживить управляющий объект на уров- не подобъектов вершин таким образом, чтобы подобная анимация на уровне вер- шин была учтена при имитации в reactor. Это означает, что с точки зрения reactor управляющий объект не меняет свою форму на протяжении всей анимации. Следо- вательно, этот объект не в состоянии воспроизвести такие нюансы движения дель- фина, как сгибание его позвоночника дугой или разворачивание плавников. Тем не менее существует способ вынудить reactor принимать во внимание при имитации сам деформируемый каркас со всеми его особенностями анимации на уровне вершин. В основу такого подхода положено использование набора дефор- мируемых каркасов. Набор деформируемых каркасов создается очень просто, как будет показано чуть ниже. Но прежде необходимо решить две следующие задачи. 1. Установить в reactor начальный и конечный кадры. 2. Повторить анимацию управляющего объекта (ctrl_dolphin_all). Откройте сцену из файла \Project Files\Chl6_PhysicsAndDynamics\ Dolphin&Rider_09 .max на прилагаемом к этой книге DVD или же продолжите работу над сценой из файла my_Dolphin&Rider_09 .max, сохраненного на жест- ком диске в предыдущем упражнении. НА ЗАМЕТКУ Теперь необходимо добиться того, чтобы reactor автоматически сформировал ключевые кадры на протяжении всего фрагмента анимации, т.е. от нулевого до 100-го кадра. Модуль reactor может быть не настроен надлежащим образом для этой цели, если вы выполнили упражнение из раздела "Использование началь- ного и конечного кадров". Если вы работаете над данным проектом со своей сценой, перейдите к свитку Preview & Animation параметров reactor на панели U it es и установите нулевое значение в поле параметра Start Frame а также значение 100 в поле параметра End Frame Повторная анимация управляющего объекта В приведенных выше упражнениях по анимации вручную со льдом сталкивался управляющий объект (ctrl_dolphin_all). А в следующем упражнении со льдом будет сталкиваться сам дельфин (объект dolphinOl). Таким образом, управляю-
664 Часть VII. Частицы и динамика щий объект исключается из имитации, но по-нрежпему играет очень важную роль в имитации, поскольку управляет объектом dolphinOl. В приведенном выше упражнении из раздела “Использование начального и конечного кадров” модулю reactor было разрешено создавать ключевые кадры для управляющего объекта после кадра 25. Все эти кадры можно было бы сохра- нить, чтобы использовать их даже после исключения управляющего объекта из имитации. Но вместо этого вам предстоит удалить, а затем повторить анимацию управляющего объекта, поскольку это даст вам возможность продолжить работ}' над данным проектом со своей сценой, даже если вы пе выполняли упражнение из раздела “Использование начального и конечного кадров”. 1. Прежде всего исключите управляющий объект из имитации. Выделите объект RBCollectionOl. Для этого перейдите к панели Modify и выделите управляющий объект ctrl_dolphi n_all в списке объектов, входящих в данный набор твердых тел, а затем щелкните па кнопке Delete, чтобы уда- лить этот управляющий объект из данного набора твердых тел. Обратите внимание на то, что ключевые кадры, созданные для анимации управляю- щего объекта ctrl_dolphin_all, остались. Они будут и далее определять движение объекта dolphinOl, если их пе удалить. 2. Удалите существующую анимацию управляющего объекта. Для этого перей- дите к пулевому кадру. Выделите управляющий объект ctrl_dolphin_all Выберите из главного меню команду Animation^Delete Selected Animation (Анимация1^Удалить выделенную анимацию). Вся существующая анимация управляющего объекта будет уда; епа, а сам управляющий объект займет свое положение из текущего (т.е. пулевого) кадра. 3. Повторите анимацию управляющего объекта. Для этого включите режим Auto Key и переместите управляющий объект ctrl_dolph n_all в сле- дующие положения: • Кадр 0 = (-50,150,-100) • Кадр25 = (-10,0,250) • Кадр 50 = (40,0,-150) 4. Выключите режим Auto Key. Создание набора деформируемых каркасов Настройка reactor па распознавание каркаса дельфина в качестве деформи- руемого выполняется следующим образом: 1. Выделите объект dolphinOl. 2. Щелкните па кнопке Create Deforming Mesh Collection (Создать набор де- формируемых каркасов), т.е. пятой сверху кнопке па панели инструментов reactor (рис. 16.47). В итоге сформируется набор деформируемых каркасов и в пего будет ведеп объект dolphinOl.
Глава 16. Физика и динамика 665 Рис. 16.47. Создание набора деформируемых каркасов Щелкните на кнопке Analyze World. Появится предупреждение о том, что объ- ект dolphinOl и платформа взаимно проникают друг в друга. В данном случае это не столь важно, поскольку каркас дельфина представляет собой жесткое тело, а платформа не имеет массы. Следовательно, каркас дельфина просто проходит сквозь платформу, не оказывая влияния на нее и не подвергаясь влиянию с ее стороны. Для того чтобы подобное предупреждение впредь не появлялось, необ- ходимо отменить столкновения между этими объектами, используя кнопку Define Collision Pairs, как описывалось выше. Отмена столкновений дельфина и платформы При анимации вручную были отменены столкновения между управляющим объектом (ctrl_dolphin_all) и платформой. А теперь необходимо сделать то же самое в отношении каркаса дельфина (dolphinOl) и платформы. При этом исключается появление упоминавшегося ранее сообщения об ошибке. Выполни- те следующие действия. 1. Щелкните на кнопке Define Collision Pairs из свитка Collisions параметров reactor на панели Utilities. 2. Выделите объект dolphinO 1 в открывшемся диалоговом окне Define Collisions. 3. Выделите элемент platform <-> dolphinOl в среднем списке Enabled Collisions, а затем щелкните на кнопке со стрелкой, направленной вправо (это верхняя кнопка в столбце между вторым и третьим списками в диало- говом окне Define Collisions). Сталкивающаяся пара объектов переносится в правый список Dis t ed Collisions. 4. Щелкните на кнопке ОК.
666 Часть VII. Частицы и динамика Замедление реакции системы После ввода деформируемого каркаса (объекта dolphinOl) в набор деформи- руемых каркасов reactor начинает на каждом шаге имитации отслеживать анима- цию на уровне вершин. В итоге имитация получается очень точной. Однако такая точность достигается за счет увеличения времени обработки. При этом анализ окружающего мира, предварительный просмотр анимации и создание ключевых кадров отнимает больше времени — все зависит, главным образом, от количества вершин деформируемого каркаса. Так, у объекта dolphinOl имеется 8434 вер- шины. И этого уже достаточно, чтобы существенно замедлить реакцию системы. Правда, ускорить эту реакцию нетрудно на этапе проверки, хотя и за счет сниже- ния точности. Впрочем, требуемый уровень точности можно восстановить при окончательном выводе. Выполните следующее упражнение, чтобы на практике убедиться, насколько падает производительность системы. Если же вы предпочитаете избежать этого, перейдите к упражнению в следующем разделе. 1. Убедитесь в том, что пи один из объектов на сцене не выделен. В против- ном случае это может привести к увеличению продолжительности имита- ции. Раньше это не имело особого значения Но теперь, когда в имитации участвует деформируемый каркас, требующий весьма интенсивной обра- ботки, необходимо сделать все возможное для того, чтобы уменьшить на- грузку на процессор. 2. Щелкните на кнопке Analyze World. Некоторое время спустя появится упо- минавшееся ранее сообщение без предупреждений. 3. Щелкните на кнопке Preview Animation. Через некоторое время откроется диалоговое окно Real-Time Preview. 4. Нажмите клавишу <Р>. Дельфин падает значительно медленнее, чем прежде. Когда оп оказывается рядом с кусками льда, процесс создания анимации за- медляется еще больше, и может показаться, что оп вообще остановился. Если вы устанете ждать, нажмите клавишу <Esc>. Реакция системы будет весьма замедленной, и если не произошло аварийного сбоя, диалоговое окно Real- Time Preview в конце концов закроется Нс спешите перезапускать компью- тер, решив, что он завис. Даже если перейти в окно Windows Task Manager (Диспетчер задач Windows), нажав комбинацию клавиш <Ctrl+Alt+Delete>, то в нем появится сообщение, что данное приложение (т.е. 3ds max) не отвеча- ет. Но если все же немного подождать, оно, возможно, и отреагирует. Ускорение реакции системы Для того чтобы ускорить процесс создания анимации, выполните следующее упражнение. 1 Выделите объект dolphinOl. 2. Выделите редактируемый каркас (Editable Mesh) в стеке модификаторов па панели Modify.
Глава 16 Физика и динамика 667 3. Введите модификатор Optimize в промежутке между редактируемым каркасом и модификатором Skin. Установите значение 90 параметра Face Threshold (Порог для граней) в свитке параметров данного модификатора (рис. 16.48). Форма дельфина превратится из округлой в угловатую. 4. Повторите упражнение из предыдущего раздела. Теперь процесс создания анимации продвигается намного быстрее благодаря радикальной оптимизации деформируемого каркаса, хотя и заметно медленнее, чем для твердого тела. Радикальная оптимизация заметно ухудшает внешний вид дельфина (рис. 16.49). Но при окончательном выводе эту оптимизацию можно отме- нить, щелкнув в стеке на пиктограмме лампочки рядом с модификатором Optimize Лампочка гаснет и сцена опять выглядит прекрасно, хотя и за счет существенного замедления процесса создания анимации. Оптимиза- цию можно отключить перед созданием анимации, увеличив тем самым точность имитации, но в то же время замедлив формирование ключевых кадров, либо перед окончательной визуализацией, чтобы повысить качест- во изображения каркаса дельфина. В данном случае оптимизацию лучше отключить перед визуализацией, поскольку уменьшение точности имита- ции вследствие оптимизации, скорее всего, окажется не столь заметным. адн®|Е1 Т | do phinOI * | Modif er List v"| О □ Skin 13 Editable Mesh Vertex Рис. 16 48. Ввод модификатора Optimize в промежутке между редактируемым каркасом и модификатором Skin Рис. 16.49. Вид сверху радикально оптимизированного дельфина V 5. Сохраните сцену в файле my_Dolphin&Rider_10 . max.
668 Часть VII. Частицы и динамика Для сравнения полученных результатов анимации дельфина откройте сцепу из файла \Project Files\Chl6_PhysicsAndDynamics\Dolphin&Rider_10.max на прилагаемом к этой книге DVT). Помимо твердых тел и деформируемых каркасов, в reactor применяется еще одна основная категория объектов— деформируемые тела. В упражнении сле- дующего раздела будет использовано мягкое тело, чтобы волосы морской нимфы на спине дельфина стали менее жесткими и реагировали на ее движения. Присоединение деформируемого тела Деформируемое тело, применяемое в reactor, т.е. ткань, веревка или мягкое тело, обычно присоединяется к деформируемому каркасу или твердому телу. (Вводный материал по деформируемым телам находится в справочном руково- дстве по 3ds max 7 и доступен после выбора команды Helpc>Tutorials4>Using reac- tor and Flex for Simulation'bDeformable Bodies Tutorial (Справка^Упражнения1^ Применение модуля reactor и модификатора Flex для имитации'ЬУпражпепие но деформируемым телам).) В частности, одежду для персонажа можно создать с по- мощью объекта ткани (Cloth), а волосы или подрагивающие усики — с помощью объекта веревки (Rope) или мягкого тела (Soft Body). Для этого достаточно вос- пользоваться ограничением по присоединению к деформируемому каркасу (Attach to DefMesh) или же ограничением по присоединению к твердому телу (Attach to Rigd Body). Ниже этот способ будет опробован па задней части волос морской нимфы (объект dolphin_rider_hair_SB, где SB означает мягкое тело). В следующем упражнении будет создано мягкое тело (задняя часть волос морской нимфы), которое затем присоединяется к повязке для волос па голове морской нимфы. Откройте сцену из файла \Project Files\Chl6_PhysicsAndDynamics\ Dolphin&Rider 10.max на прилагаемом к этой книге DVD или же продолжите работу над сценой из файла my_Dolphin&Rider_10 .max, сохраненного на жест- ком диске в предыдущем упражнении. 1. Выделите объект RBCollectionOl и введите в данный набор твердых тел объект dolphin_rider_hair_band (т.е. повязку' для волос на голове мор- ской нимфы, сидящей на спине дельфина). Этот объект представляет собой твердое тело, к которому будут присоединены волосы. 2. Выделите объект dolphin_rider_hair„band. 3. Щелкните сначала па кнопке Open Property Editor, а затем установите фла- жок Disable All Collisions (Отменить все столкновения) в свитке Physical Properties диалогового окна Rigid Body Properties, поскольку повязка для во- лос используется лишь в качестве точки присоединения волос (это ее един- ственная роль в данной имитации). 4. Кроме того, установите флажок Unyielding в том же диалоговом окне для объекта dolphin_rider_hair_band, если он еще не установлен. Переме- щением этого объекта управляет объект ctrl_dolphin_all. A reactor не должен формировать для него ключевые кадры.
Глава 16. Физика и динамика 669 5. Выделите объект dolphin_rider_hair_SB и щелкните на кнопке Apply Soft Body Modifier, т.е. шестой снизу кнопке на панели инструментов reactor, чтобы применить к данному объекту модификатор мягкого тела reactor SoftBody (рис. 16.50). Рис. 16.50. Применение модификатора reactor SoftBody к объекту dolphin_rider_ hair_SB 6. Щелкните на кнопке Create Soft Body Collection (Создать набор мягких тел), т.е. третьей сверху кнопке на панели инструментов reactor. Сформируется набор мягких тел, в который затем вводится объект dolphin_rider_hair_SB (рис. 16.51). Рис. 16.51. Создание набора мягких тел
670 Часть VII. Частицы и динамика 7. Выделите объект dolphin_rider_hair_SB. Перейдите сначала к панели Modify, а затем на уровень подобъектов-вершин в модификаторе reactor Soft Body (рис. 16.52). Благодаря этому будут выделены вершины мягкого тела. Z 8ь К® © Т ddphin_fKjet_haif_SB Щ Modifier List ▼'[ I В reactor Sell Body *— Vertax к | Н В EditdfelMesjR I -Vertex •. -й 8 0 Рис. 16.52. Уровень подобъектов-вершин в модификаторе reactor SoftBody 8. Щелкните на кнопке Attach to R gid Body в свитке Constraints (рис. 16.53 . В списке ограничений появится ограничение по присоединению к твердо- му телу и раскроется свиток Attach to RigidBody Рис. 16 53. Создание ограничения по присоединению к твердому телу
Глава 16. Физика и динамика 671 9. Выделите ограничение Attach to RigidBody в списке ограничений из свитка Constraints и щелкните на кнопке, расположенной ниже метки Rigid Body в свитке Attach to RigidBody (в данный момент эта кнопка обозначена мет- кой None) (рис 16.54). Кнопка станет желтой. | - Attach То НцуВоф | Rigid В оф ____________[^J F Do not died rigid Ьоф Г” Ignore Collisions J - Constrarts | For Vertices Keyname Vertices Attach To Rigid Body j Attach To DefMesh |ri*i Attach T о RrgidBocly Рис. 16.54 Щелкните на кнопке, расположенной ниже метки Rigid Body и обозначенной меткой None 11. Выделите объект dolphin_rider_hair_band, щелкнув па нем в видовом окне или нажав клавишу <Н> и выбрав его в открывшемся диалоговом окне Pick Object. 12. Щелкните правой кнопкой мыши в активном видовом окне и выберите ко- манду Hide Unselected Скрыть невидимые объекты) из всплывающего кон- текстного меню. На сцене скроются все объекты, кроме волос, что упроща- ет выделение вершин на каркасе волос. Перейдите в окно вида спереди и щелкните на кнопке Zoom Extents, а затем выделите петлю из вершин, ближе всего расположенную к повязке для волос. Это проще всего сделать в каркасном режиме отображения (Wireframe) (рис. 16.55). Во время ими- тации объект dolphin_rider_hair_SB будет оставаться присоединенным к повязке для волос с помощью этих вершин. 13. Щелкните на модификаторе reactor SoftBody, чтобы отменить выделение вершин и тем самым исключить их случайное изменение. 14. Щелкните правой кнопкой мыши в активном видовом окне и выберите ко- манду Unhide АН (Показать все) из всплывающего контекстного меню. 15. Щелкните на кнопке Preview Animation. Волосы вытягиваются, то вздыма- ясь, то опускаясь, по в то же время они остаются присоединенными к по- вязке для волос (рис. 16.56).
672 Часть VII. Частицы и динамика Рис. 16.55. Выделите петлю из вершин, ближе всего распо- ложенную к повязке для волос Рис. 16.56. Объект dolphin_rider_hair_SB искажается, однако остается присоединенным к повязке для волос Аналогичным методом можно присоединить мягкое тело к деформируемому каркасу', используя ограничение по присоединению к деформируемому каркасу 16. Сохраните свою сцену в файле my_Dolphin&Rider_l 1. max.
Глава 16. Физика и динамика 673 Для сравнения полученных результатов анимации волос откройте сцену из фай- ла \Project Files\Chl6_PhysicsAndDynamics\Dolphin&Rider_ll.max на прилагаемом к этой книге DVD. А теперь, когда в данной сцене имеются куски льда и получены разные вариан- ты анимации дельфина путем экспериментов, можно приступать непосредствен- но к имитации движения воды. Имитация движения воды В этом разделе вам предстоит вновь обратиться к анимации вручную, чтобы добавить к имитации воду, стабилизировать куски льда на воде и выяснить, мож- но ли добиться того, чтобы дельфин разбивал лед в воде таким же образом, как он делал это прежде на платформе. Возврат к анимации вручную В связи с тем что применение деформируемого каркаса практически ничего не дает, кроме увеличения нагрузки на процессор, придется вновь обратиться к ани- мации вручную. Для этого выполните сначала следующую процедуру. 1. Выделите иудалитеобъектРМСо11есФ1оп01. 2. Выделите объект dophinOl. Если модификатор Optimize активен, о чем свидетельствует расположенная рядом с ним пиктограмма горящей лам почки, щелкните на этой пиктограмме, чтобы выключить данный модифи- катор. Оптимизация каркаса больше не требуется, поскольку он исключает- ся из имитации в reactor как деформируемый каркас. 3. Введите управляющий объект ctrl_dolphin_all в набор RBCollectionOl. 4. Выделите управляющий объект ctrl_dolphin_all Щелкните на кнопке Open Property Editor и установите флажок Unyielding в диалоговом окне Rigid Body Properties. Итак, все готово для ввода в имитацию воды. Ввод в имитацию воды Для того чтобы добавить воду к имитации в reactor, достаточно одного щелчка и перетаскивания, аналогично созданию в сцене плоскости. Следует, однако, иметь в виду что вода в reactor представляет собой пространственный искази тель, т.е. она отсутствует в визуализированном изображении сцены, но может оказывать влияние на объекты, которые видны в этом изображении. Поэтому в данном проекте плоскость воды (объект water plane) будет использована в качестве визуализируемого объекта. Ниже приведена краткая процедура ввода в имитацию воды. 1. Выделите объект platform и удалите его. 2. Щелкните на кнопке Create Water (Создать воду), расположенной ниже кнопки Create Fracture на панели инструментов reactor Щелкните в окне вида сверху и перетащите курсор, чтобы создать воду.
674 Часть VII. Частицы и динамика 3. Установите значение 1000 параметров Size X и Size Y в свитке Properties на панели Modify (рис. 16.57). Рис. 16.57. Установка свойств воды в reactor 4. Переместите объект воды в точку с координатами (-12, -2, -10). 5. Щелкните на кнопке Preview Animation Лед сильно выбрасывает из воды в начале анимации, хотя он и не раскалыва- ется до тех пор, пока в него не ударит дельфин. В этом можно дополнительно убе- диться, создав анимацию и проанализировав сохраненные столкновения. Первое столкновение происходит между управляющим объектом ctrl_dolphin_all и одним из кусков льда. Это указывает на то, что разламывание льда не происхо- дит до тех пор, пока об него не ударится управляющий объект. Тем не менее лед явно выбрасывает из воды в начале анимации, что в данном случае нежелательно. Но поскольку лед сам по себе не разламывается, он, по- видимому, может в конце концов прийти в устойчивое состояние, если исключить его раскалывание управляющим объектом. Этот вариант необходимо опробовать. Стабилизация льда Для стабилизации льда на воде в следующем упражнении будет использована команда Update МАХ из диалогового окна Real-Time Preview. Аналогичным обра- зом лед был стабилизирован ранее на платформе. Но в данном случае добиться перехода льда в устойчивое состояние будет сложнее. 1. С помощью команды Update МАХ в нулевом кадре создается новый ключе- вой кадр анимации всех объектов, участвующих в имитации. Новые ключе- вые кадры требуется создать лишь для кусков льда, находящихся в более ус- тойчивом состоянии. Поэтому прежде всего временно исключите другие объекты из имитации. Начните с удаления объектов ctrl_dolphin_all иdolphin_rider_hair_band из набора RBCollectionOl. После стаби- лизации льда их можно опять ввести в данный набор твердых тел.
Глава 16. Физика и динамика 675 2. Выделите объект RBCollectionOl. Установите флажок Disabled в свитке Properties на панели Modify (рис. 16.58). Его придется вновь установить по- сле стабилизации льда. Рис. 16.58. Отключение набора RBCollectionOl на панели Modify 3. Щелкните па кнопке Preview Animation. В имитации останется только лед, который продолжает двигаться под воздействием воды, не приходя в со- стояние покоя. Теперь ясно видно, как лед качается прямо на поверхности воды, тогда как он должен быть немного погружен в нее. 4. Если сделать лед чуть тяжелее, он будет двигаться меньше и сильнее погружать- ся в воду Выйдите из окна Real-Time Preview. Выделите объекты ObjectOl и Object02 (т.е. два нижних куска льда), откройте диалоговое окно Rigid Body Properties и установите значение 300 параметра Mass. Для объектов Object03 и Object04 (т.е. двух верхних кусков льда) установите значение 250 параметра Mass. При увеличении значения этого параметра для двух нижних кусков льда вероятность переворачивания айсберга уменьшается. Щелкните па кнопке Preview Animation. Лед сильнее погружен в воду, но его по-прежнему бросает и он продолжает двигаться под воздействием воды. 5. Итак, добиться стабилизации льда за счет увеличения одной лишь его мас- сы не удастся. Поэтому попробуйте внести коррективы в саму воду. Выде- лите воду (объект WaterOl) и перейдите к панели Modify. Записав исходные значения параметров в свитке Properties, чтобы к ним можно было вернуть- ся впоследствии, установите значение 1 параметров Wave Speed (Скорость волны), Min Ripple (Минимальная рябь) и Max Ripple (Максимальная рябь), а также значение 100 параметра Viscosity (Вязкость). Вновь щелкните на кнопке Preview Animation. Волнение на воде со льдом заметно успокаивает- ся. Благодаря большой вязкости лед взаимодействует уже не с водой так та- ковой, а с чем-то вроде грязи или масла.
676 Часть VII. Частицы и динамика 6. В тот момент когда лед придет в устойчивое состояние, выберите команду МАХЧ> Update МАХ из строки меню в диалоговом окне Real-Time Preview назначив более устойчивое положение для кусков льда в первом кадре ани- мации. Выйдите из окна Real-T'me Preview. 7. Установите записанные ранее исходные значения параметров воды и вновь щелкните на кнопке Preview Animation. Первоначальное движение льда на воде становится намного менее интенсивным 8. Вновь введите объекты ctrl_dolphin_all и dolphin_rider_hair_band в набор RBCollectionOl. 9. Выделите объект SBCollectionOl. Сбросьте флажок Disabled в свитке Properties на панели Modify, чтобы вновь активизировать набор мягких тел. 10 Щелкните на кнопке Preview Animation Итак, лед стабилизирован и раскалывается так, как нужно, а вот вода по-прежнему не визуализируется. Этот недостаток будет устранен в следующем разделе. Получение визуализируемой воды В следующем упражнении вам предстоит завершить настройку воды в reactor, чтобы она визуализировалась. 1. Выделите объект WaterOl и установите значение 30 параметров Subdivision X и Subdivision Y, чтобы увеличить подразделение данного объекта в соответствии с подразделением плоскости, которая служит в качестве ви- зуализируемой поверхности, т.е. плоскости воды (объект water plane). В целом, чем больше число подразделений, тем более реалистичной оказыва- ется вода. В то же время увеличение подразделений воды в reactor свыше числа подразделений визуализируемой поверхности не дает никаких резуль- татов. Кроме того, при увеличении числа подразделений повышается нагруз- ка на процессор. 2. Выделите объект water plane, щелкните на кнопке Bind to Space Warp (Привязать к пространственному исказителю) (рис. 16.59) и выделите объект WaterOl. К объекту water plane применяется модификатор мирового про- странства Water (WSM) (рис. 16.60). Плоскость воды делает воду видимой. 3. Сохраните сцену в файле my_Dolphin&Rider_12 . max. Рис. 16.59. Воспользуйтесь кнопкой Bind to Space Warp, чтобы привязать плоскость воды к объекту воды
Глава 16. Физика и динамика 677 Рис. 16.60. Применение моди- фикатора Water (WSM) к плос кости воды Для сравнения полученных рез льтатов анимации воды откройте сцену из файла \Project Files\Chl6_PhysicsAndDynamics\Dolphin&Rider_12.max на при- лагаемом к этой книге DVD На этом работа с модулем reactor завершается, но в сцену из проекта этой гла- вы требуется ввести два очень важных завершающих штриха. Завершающие штрихи В следующем упражнении в сцену из проекта этой главы будет введена текстура. 1. Айсберг по-прежнему выглядит, как шляпа, а не лед. Поэтому нажмите кла- вишу <М>, чтобы открыть редактор материалов, и найдите в нем материал Ice (Лед). Назначьте этот материал для объектов ObjectOl, Object02, Object03 HObject04. 2. Для ввода в сцену брызг создайте объект излучателя частиц SuperSpray в окне вида сверху. Для этого перейдите к панели Create, щелкните на кнопке Geometry, выберите категорию Particle Systems Системы частиц) в расположенном ниже этой кнопки раскрывающемся списке и щелкните на кнопке Super Spray. Далее щелкните и перетащите курсор в окне вида в перспективе. Перейдите к тому кадру, где должны появиться брызги, и расположите объект SuperSpray в точке, из которой должны исходить частицы. Поверните этот объект таким образом, чтобы его стрелка указы- вала в направлении движения брызг (рис. 16.61). Вы можете также осуще- ствить анимацию положения и вращения объекта SuperSpray. 3. Если объект SuperSpray все еще выделен, перейдите к панели Modify, что- бы указать момент начала появления брызг я этого установите значение параметра Emit Start (Начало излучения) из свитка Particle Generation (Формирование частиц) в соответствии с номером кадра, в котором долж- ны появиться брызги, а значение параметра Em t Stop (Конец излучения) — в соответствии с номером кадра, в котором брызги должны исчезнуть. Кроме того, установите значение 2 0 параметра Life (Срок жизни частиц) и значение 10 параметра Vacation (Разброс частиц), а также значение 100 в поле, расположенном ниже кнопки-переключателя Use Rate [Использовать нормативное число частиц) в области Particle Quantity (Количество частиц) в том же самом свитке (рис 16.62).
678 Часть VII Частицы и динамика Рис. 16.61. Стрелка излучателя частиц Super Spray ука- зывает в направлении движения брызг. В данную сцену введена дополнительная анимация дельфина Рис. 16.62. Установка параметров системы частиц Super Spray в свитке Particle Generation на панели Modify 4. Перейдите к свитку Particle Туре (Тип частиц) и выберите кнопку-переклю- чатель Facing (Лицевые частицы) в области Standard Particles (Стандартные частицы) (рис. 16.63).
Глава 16. Физика и динамика 679 Particle Туре Т Paricte Types----------------- <8 Standard Particles MetaParticfes Instanced Geometry •Standard Particles----------- f" Triangle <" Cube <" Special ^Facing t" Constant Tetra C SixPoint Г Sphere Рис. 16.64 Установка основньх па- раметров частиц Super Spray в свит- ке Basic Parameters на панели Modify Рис 16.63 Выбор типа частиц Super Spray в свитке Particle Type 5. Частицы принимают вид меток в виде знака “плюс” при отображении соот- ветствующих кадров анимации в видовых окнах. Однако они излучаются по прямой линии. Перейдите к свитку Bas С Parameters и поэксперименти- руйте с параметрами из области Particle Formation (Формирование частиц), чтобы частицы рассеивались в большей степени при изучении. Один из возможных вариантов установки этих параметров приведен на рис 16.64 В этом упражнении показан лишь один из возможных вариантов настройки системы частиц Super Spray Поэтому вы можете настроить эту систему частиц и по-другому, а также увеличить число частиц. 6. Сохраните свою сцену в файле my_Dolphin&Rider_13 .max. Для сравнения полученных результатов анимации воды откройте сцен}' из файла \Project Files\Chl6_PhysicsAndDynamics\Dolphin&Rider 13.max на при- лагаемом к этой книге DVD. Вот, собственно, и все! Попробуйте визуализировать несколько избранных кадров анимации, чтобы убедиться в правильности достигнутых результатов, азатем выполните окончательную визуализацию. Для данного проекта рекомен- дуется выбрать средство визуализации mental ray. Визуализированный вариант проекта этой главы можно посмотреть в файле \Pr03ect Files\Chl6_PhysicsAndDynamics\Dolphin&Rider.avi на при- лагаемом к этой книге DVD Резюме В этой главе вы научились анимации с помощью модуля reactor, заменяя или до- полняя ею анимацию, созданную вручную. Теперь у вас должно сложиться ясное представление о достоинствах и недостатках reactor. У вас была возможность убе- диться на практике, насколько этот модуль позволяет сэкономить время производ- ства благодаря автоматическому формированию реалистичной анимации сложных сцен, включая и такие сложные анимационные эффекты, как вода С другой сторо- ны, вы, как и Мики Маус в качестве ученика волшебника из мультфильма “Фантазия” (Fantasia), смогли убедиться в том, что волшебство легче создать, чем направить или остановить его. Мысленно представив себе сцепу' и подготовив ее
680 Часть VII. Частицы и динамика раскадровку, вам придется потратить немало времени на экспериментирование и настройку параметров имитации, чтобы добиться от reactor нужного эффекта. Как было показано в этой главе, применение набора деформируемых каркасов сулит немалые выгоды с точки зрения повышения эффективности, а в конечном счете и упрощения объектов, находящихся на сцене. В то же время можно до- биться того, чтобы объекты воспринимались reactor более упрощенными, чем они есть на самом деле. Работая с reactor, нередко приходится выбирать между точностью воспроизведения сцены и допустимой нагрузкой на процессор. С одной стороны, поведение виртуального мира и его обитателей хотелось бы держать под полным контролем, а с другой — создание миров, которые ведут себя разумно, подчиняясь установленным вами законам, но без подробных инструкций с вашей стороны, открывает немалые перспективы. Ниже приведены рекомендации относительно дальнейшего экспериментиро- вания со сценой из проекта этой главы. • Продолжите работу над анимацией управляющего объекта ctrl_dolphin_ all. В частности, поверните этот объект таким образом, чтобы направить дельфина головой в воду, когда он ныряет в нее. С другой стороны, откор- ректируйте положение дельфина, чтобы он не исчезал из виду на протяже- нии всего движения по заданной траектории. Соответствующ й пример сце- ны можно найти в файле \Project Files\Chl6_PhysicsAndDynamics\ Dolphin&Rider_14.max на прилагаемом к этой книге DVD. Там же нахо- дится файл Dolphin&Rider_14 . avi визуализированного варианта данной сцены. • Перейдите к панели Modify и поэкспериментируйте с такими свойствами мягкого тела, как жесткость (Stiffness), трение (Friction) и демпфирование (Damping), чтобы изменить поведение волос морской нимфы. • Замените волосы веревкой (Rope) из reactor. • Наденьте на морскую нимфу накидку из ткани (Cloth), доступной в reactor. • Введите в сцену ветер (Wind) из reactor. • С помощью reactor можно создать реалистичные неподвижные декорации. Попробуйте расположить группу объектов на плоской поверхи ости айсберга. Сделайте их моментальные снимки, воспользовавшись командой Tools'^ Snapshot (Инструменты^Моментальный снимок), а затем удалите оригина- лы, оставив только вновь созданные объекты моментальных снимков. '' • Воспользуйтесь пружиной (Spring) из reactor, чтобы вернуть один из ниж- них кусков льда в его исходное положение. • Воспользуйтесь модификатором Skin Wrap для управления моделью дель- фина с большим числом многоугольников с помощью его модели, имеющей малое число многоугольников. Последнюю используйте в качестве дефор- мируемого каркаса. В следующей главе вам предстоит подробно ознакомиться с системой частиц Particle Flow.
Введение в систему частиц Particle Flow к Шон Бонни Вулканические извержения, метеоритные рои, падающий дождь, бушующая мете ь стелющийся туман, магическая аура, крутящие вихрем падающие ли- стья — все эти атмосферные, пиротехнические или специальные эффекты, созда- ваемые с помощью систем частиц, в какой-то момент приходится вводить в сцену, какой бы она ни была, реальной, научно-фантастической или мистической. По определению частицы представляют собой средства анимации большой группы сходных объектов по определенным процедурным правилам. Эти средст- ва сильно отличаются от тех, которые традиционно применяются в 3ds max для анимации объектов по отдельности. В системах частиц поведение группы объек- тов определяется рядом правил, которые могут быть как самыми общими, так и совершенно особыми. Такие свойства частиц, как срок жизни, скорость, мате- риалы и размер, могут быть назначены для всей системы или же для ее подмно- жеств. Это, в частности, означает, что крутящиеся вихрем падающие листья можно заставить реагировать в сцене на ветер, разрывающиеся осколки — на дей- ствие силы тяжести, а скачущий плод —изменять свой цвет в зависимости от ко- личества отскоков. Последний пример кажется нелепым, однако он наглядно ил- люстрирует бесконечное разнообразие вариантов применения частиц— даже в тех случаях, когда системы частиц не совсем подходят. Доступные в 3ds max средства анимации свойств систем частиц позволяют су- щественно упростить создание разнообразных атмосферных выразительных элементов а также спецэффектов, добиваться которых непроцедурными метода- ми было бы непрактично, да и неэффективно. Всякий, кому когда-либо приходи- лось заниматься анимацией падающих снежинок по ключевым кадрам, не прибе- гая к системе частиц, способен по достоинству оценить эффективность проце- дурных частиц (рис. 17.1 и 17.2).
682 Часть VII. Частицы и динамика Рис. 17.1. Размерами, формой, материалами и количеством частиц можно управлять во времени Рис. 17.2. На частицы могут оказывать влияние самые разные силы, в том числе ветер и сила тя- жести. Кроме того, они способны сталкиваться с объектами и следовать за конкретной целью
Глава 17. Введение в систему частиц Particle Flow 683 С истема частиц состоит из трех основных элементов: излучателя, частиц и внешних сил. Все они будут рассмотрены в этой главе наряду с их функциями как в системах частиц, неуправляемых событиями (например, в устаревшей сис- теме Super Spray), так и в управляемой событиями системе частиц Particle Flow, внедренной еще в версии 3ds max 6. Кроме того, в этой главе будут представлены примеры применения системы частиц Particle Flow для создания разнообразных эффектов окружения, связанных с извержением вулкана. Элементы системы частиц Когда за летящей ракетой тянется огненный след, из сопла ее двигателя изверга- ется дым и пламя. В этом месте сцены 3ds max обычно располагается излучатель час- тиц. Такой излучатель обозначает место зарождения частиц. Он может находиться в любой точке пространства, на поверхности обычного или вспомогательного объек- та или же внутри некоторого объема. Излучатели частиц подлежат анимации, переда- вая свои свойства движения частицам, которые они испускают (рис. 17.3) В примере огненного следа, тянущегося за ракетой, испускаемые искры могут получить опреде- ленный начальный импульс от ракеты, а затем отклониться в сторону и в конечном итоге уйти из-под ее влияния. В других случаях на движение частиц еще долго может оказывать влияние движение излучателя после их создания как, например, размахи- вание волшебной палочкой — на облачко магических искр вокруг нее. Рис. 17.3. Несколько типов излучателей частиц (слева направо: Blizzard, Super Spray, PCIoud и PF Source)
684 Часть VII. Частицы и динамика Листья, искры и падающие яблоки сами по себе уже являются частицами. Час- тицы порождаются излучателем и визуализируются в самой разной геометриче- ской форме (сферической, четырехгранной или кубической) или же в плоской многоугольной форме (шестиугольной, треугольной или гибридной, называемой специальной и состоящей из трех пересекающихся многоугольников, совместно образующих упрощенный вариант геометрической формы с малым числом мно- гоугольников) Чаще всего такие представления частиц с помощью малого числа многоугольников используются при создании атмосферных и специальных эф- фектов, где основное визуальное воздействие передается с помощью применяе- мых материалов (рис. 17.4). Рис. 17.4. Частицы могут иметь практически любой внешний вид (сферы, четырехгран- ники, кубы, полученные экземпляры геометрической формы и лицевые плоскости) к НА ЗАМЕТКУ__________________________________________________________ При создании эффекта на основе большого числа мелких частиц, например пара или дождя, старайтесь пользоваться самой элементарной формой частиц, чтобы сократить объем расчетов лишней геометрической формы частиц в сцене 3ds max К наиболее впечатляющим визуальным эффектам частиц относится создание текущих жидкостей, в том числе воды, лавы или изменяющего свою форму объек- та Т-1000 из фильма “Терминатор-2: судный день’ (Terminator 2: Judgement Day). Для создания жидких эффектов лучше всего подходит форма частиц MetaParticle
Глава 17. Введение в систему частиц Particle Flow 685 Такие метачастицы представляют собой отдельные точки в метасфере или капле- видном объекте. Для достижения требуемой плавности действия метасфер изме- няются их свойства огрубления и натяжения. Несмотря на то что форма метача- стиц позволяет создать практически любой жидкий эффект, подлежащий анима- ции с помощью неуправляемых событиями систем частиц, еще большими мета- сферическими свойствами обладает составной объект BlobMesh (Каплевидный каркас) (рис. 17.5). Рис. 17.5. Жидкости нетрудно сымитировать с помощью систем частиц и составного объекта В obMesh Для создания метасферических эффектов в составном объекте BlobMesh мо- жет использоваться как геометрическая форма, так и частицы. Пример примене- ния такого объекта в системе частиц, управляемой событиями, будет представлен далее в этой главе Если в сцену требуется ввести стаю летучих мышей, ползущих многоножек или пикирующих реактивных истребителей, для этой цели лучше всего подойдут час- тицы типа полученной геометрической формы. Этот, вероятно, самый сложный вид частиц может принимать практически любую смоделированную форму, в том числе и форму подлежащих анимации и иерархических групп объектов. Такой прием нередко применяется для группирования большого числа сходных объек- тов, а также в тех случаях, когда свойств частиц других типов оказывается недос- таточно для получения требуемого эффекта (рис 17.6).
686 Часть VII. Частицы и динамика Рис. 17.6. Частицы типа полученной геометрической формы могут использоваться для группирования большого числа сходных подлежащих анимации объектов Очень интересные и правдоподобные эффекты дает взаимодействие частиц с имитируемыми силами природы включая порывистый ветер и взрывные вол- ны, либо с такими силами искусственного происхождения, как энергетические лучи и силовые поля. На скорость и направление частиц в их системе могут воз- действовать разные виды сил. Такие внешние силы, как сила тяжести (Gravity), ветер (Wind) или тяга (Drag), могут использоваться для организации правдопо- добного движения частиц. А другие виды внешних сил, доступных в 3ds max, в том числе толкание (Push), мотор (Motor), вихрь (Vortex) и смещение (Displace), особенно пригодны для получения спецэффектов и искусственных воздействий. Так, пространственный исказитель PBomb специально предназначен для приме- нения к частицам взрывной, рассеивающей силы. А для точного управления дви- жением частиц по сплайновому пути служит сила следования по заданному пути (Path Fol ow), с помощью которой частицы сходятся на пути, расходятся от него или же следуют по нему в течение срока их жизни. Внешние силы очень удобно применять для воздействия на частицы, чтобы добиться их правдоподобного по- ведения простым процедурным способом. На частицы могут оказывать влияние и отражатели, которые особенно полез- ны в тех случаях, когда частицы должны взаимодействовать с находящимися на сцепе объектами. Представьте себе бусинки, рассыпающиеся мелким кучками, или лазерные лучи, направляемые в другую сторону линзами. Отражатели вызы- вают отскакивание, отражение, преломление, реагирование частиц на трение,
Глава 17. Введение в систему частиц Particle Flow 687 а также изменение их скорости и направления движения. Форма отражателей может быть получена из простых вспомогательных объектов (например, сфер и плоскостей), а также из экземпляров геометрической формы. Кроме того, фор- ма, размеры и местоположение отражателей могут подлежать анимации для ими- тации подвижных преград, как, например, в сцене с кораблем, пробивающимся сквозь морской туман. В 3ds max имеются две разновидности систем частиц: управляемые событиями (Particle Flow) и неуправляемые событиями (такие устаревшие системы частиц, как Blizzard, Spray и PArray). Каждая из двух разновидностей систем частиц будет по очереди рассмотрена в двух последующих разделах этой главы Системы частиц, неуправляемые событиями Стандартные системы частиц, в том числе Blizzard Метель), Snow (Снег), Spray Распылитель), Super Spray (Суперраспылитель), PCIoud (Облако частиц) и PArray (Массив частиц), относятся к неуправляемым событиями, т.е. их свойства обычно не меняются на протяжении всей анимации. Такие системы частиц пред- назначены для создания, например, дождя. Но если количество частиц должно уменьшаться в ответ на открытие окна, для этой цели более пригодной оказыва- ется управляемая событиями система частиц. Неуправляемые событиями системы частиц имеют разную сложность. К са- мым простым из них относятся системы частиц Snow и Spray, а более сложными их вариантами являются системы частиц Blizzard и Super Spray. Поэтому Snow и Spray относятся к устаревшим системам частиц. Система частиц Spray излучает частицы из плоского вспомогательного объек- та— невизуализируемой плоскости, единственное назначение которой состоит в том, чтобы определять форму излучателя частиц. А система частиц Super Spray излучает частицы из единственной точки в пространстве, рассеивая их веером или конусом. Она включает в себя все функции системы частиц Spray, помимо дополнительных форм и элементов управления движением и столкновением от- дельных частиц. Система частиц Super Spray отлично подходит для получения взрывных и распыляющих эффектов (рис. 17.7). Системы частиц Snow и Blizzard также излучают частицы из плоского вспомо- гательного плоского объекта, причем Blizzard является более совершенной сис- темой. Она пригодна, в частности, для создания дождя, снега и практически лю- бого эмиссионного эффекта. Так, если в сцену требуется ввести облака, движу- щиеся параллельно, или же листья, падающие па обширной площади, для этой цели из всех неуправляемых событиями систем частиц лучше всего подойдет Bliz- zard (рис. 17.8). Система частиц PCIoud пригодна для сцен, в которых частицы должны зарож- даться внутри некоторого объема, например, в таких эффектах, как огонь, распад или облака. Отличие PCIoud от других неуправляемых событиями систем частиц заключается в том, что в данном случае частицы могут излучаться из объема оп- ределенной геометрической формы, полученной из кубического, сферического, цилиндрического вспомогательного объекта или же из каркасного объекта.
688 Часть VII. Частицы и динамика А что если частицы должны излучаться с поверхности объекта, как например, пузырьки газа, поднимающиеся вверх от растворяющейся в воде таблетке лекарст- ва? Для этой цели пригодна система частиц РАггау, отличающаяся тем, что ее излу- чатель представляет собой визуализируемый каркасный объект. При этом частицы могут излучаться со всей поверхности, включая ребра, вершины и центры граней или же другие подобъекты. Как правило, система частиц РАггау применяется в со- четании с пространственным исказителем PBomb для разрыва каркасных объектов на куски. Во взрывном эффекте система частиц РАггау выполняет функцию излуча- теля частиц определенной геометрической формы, согласованной с формой ис- ходного разрывающегося объекта, а пространственный исказитель PBomb обеспе- чивает взрывную силу и рассеяние разорвавшихся кусков. d«0T | Partide Systems I- . акмЖи» i AuteGnd г PF Source SPW> I Snow Bfarad | RAnav I raoud | t- Fferticte Generation | Parbde QuartXy----------------- * Use Rate Г Use Total fra ifr™ Partide Motion------- SpMdJiM ~i[ «atari: |flo J| X Particle Type Partida Tjpes------------- itendafe Petete* < MetaFartctes C Instanced Oeometiy Standard Parbctet <• riangie <“ Cube SUPER SPRAY OBA«s:|0-0 SpteadJOO rj*» OKPtawJJS Q Spread JO O i|de» Display con——— Icon See: 10.0 J Г" Emitter Hidden Particle T imino------- ; EriSlst Г EriSlw: [35 1 [ OepWUntt ПИ J Ute [35------j; V«Mtorc [5 Subfteoie arrpiing: P Deaton Tune P E rafter Translation П Eraittaf Rotation Viewport Di PaitoteSee--- s^rnr Veiatai ПЛГ Growftr П5" | FafaFcr ПГГ Uniqueness Nbw| Seed |12^ *| r Constant <" Telia Г • wPont C Sphere MetePotole Parameters ~- Tensm |f 0 i Varafon |C6 J] Evaluation Co»se-ieit Render |S. ;| Viewport |i и J] P ArAxw^t с Соэ-теп ess Г One Connected Bi-A - Partide pawnng Effects- rt Nene C Die After Cofaan Per-*. |t r "J Va- ahcre F5-------:| C Spawn on Cofinan C Spawn on Deal Spawn Trait Spawns I—SJ Atleds- f 0 . PiAple- | Va* afore. |0U -Direction Chaos - Speed Chaos <• licks EBok Percentage of articles: ПП5 ; x Motto ~ AmpeudepST! t Vanatiore|0-0 Cj X PesioctJ ОСЙОО jj auatonJO.O t X Phased Cdefl Variation: jfi.O X 2) 51 J] Instancng anwtere. Object <Н’с*те> RdtObec Г Use Subtree ALo Anraiaton Offset Keying one Frame Of set |7T Mail Mappng and once G иле С Тгйапсе [35 c F~ Facta. |ci Sj X G Slow Г Fast C Both Г Use Fixe Vd re Scale Chaos--- Facta fOD C| Й G Down C Up C Both Г“ Use Fixe al e I R aboo and Ссйбюп | Spin Speed Controls Spin йпаРЗ t| Veatoreffi c| X Phase [CT] Cjdeg E Vanabcttjini С] X i-SpnAxis Controls Л Random C D lection of Trevd/Mbbr Stretch |C C| C UterDefned xahs | io"" o| ya? prr ZAzis jO 6 ©• alien [Й iJ t| ieg ntwpartcfe Cofaors------- Г Enable Cdc fn’e^vsli Fes F erne I :J Bojrca (ТОП :] x Vanatar(60 w[ J; rf"' fibffiMo&n ЙДаггее""} | Whence. | ОЙО t X Mdfofer fHJ C] «ation, p57j J| Яекмп due Queue Gel Material Floor еИпд Spaks D efail G con C Ins anc^d Geo eny Омег Muleton Queue ~ Load/Sftvo Presets I Preset Hamer Sayed Presets: Bubbles Fjrewoiks Hose Shock wave 3 г Рис. 17.7. Свитки параметров системы частиц Super Spray
Глава 17. Введение в систему частиц Part с е Flow 689 | Particle Systems I;-,_____...1 Pwbcfe Types---------------- Standard Particles MetaParbdes Instanced Geometry Standard РаГиЯм------------ Л TnanjJe C Cube C Special Fecmg <Г Comtart г Tetra SbrPort f' Sphere । MetaPabcte Parameters------ I P AntoTuyic Coer$en*5s Г One Onnei'jed Blob r Instancing Parameters--------- Obect :Г4опе> Г Us^Sublree Anmehcn ОIt set Keync <* Here r Bir'Ji Ftctrr° OHset jo Ir Mail Mapping and Source— I <* Eniler Fit Planar • Тжпе Г Distance ПЙ-------;J fW—1] Get Material From: | <• Icon Г Instanced Geometry b Object Motion h^ence I гЛиепсес |iTffi7j t| Z Muftpfer T *| | - Load/SawFrewab } Preset Name: | г Saved Presets: —- ' bhzzad ram j mist snowtel Рис. 17.8. Свитки параметров системы частиц Blizzard Неуправляемые событиями системы частиц, безусловно, способны удовлетво- рить многим потребностям ввода в сцены эффектов однако в 3ds max доступны иуправляемые событиями системы частиц, предоставляющие намного больше возможностей для специальной настройки поведения частиц. Управляемые событиями системы частиц Представьте себе лесной пожар, во время которого высокие деревья сгорают от вершины до основания. Куски охваченного пламенем дерева отрываются и свободно падают вниз, оставляя следы дыма и пламени, отскакивая от веток и образуя целый дождь искр при каждом столкновении. Достигая земли, они рас- падаются на куски пепла, горящие щепки и искры. Такую сцену можно воссоздать с помощью неуправляемых событиями систем частиц, однако для этой цели при- дется согласовать взаимодействие нескольких разнотипных систем частиц, на что потребуется немало времени и труда. Более эффективный и удобный способ
690 Часть VII. Частицы и динамика получения аналогичного эффекта состоит в применении такой управляемой со- бытиями системы частиц, как Particle Flow Система частиц Particle Flow (Поток частиц) очень удобна для создания эф- фектов частиц. С ее помощью частицы формируются по блочному принципу в окне Particle View (Вид частиц), где их можно настроить на самые разные виды поведения. Если требуется, частицы могут переходить из одного состояния в дру- гое. При этом традиционная последовательность событий (зарождение, движе- ние и отмирание) заменяется блок-схемой, которая может иметь практически бесконечное число вариантов правки. Так, пылающий кусок дерева из приведен- ного выше примера может быть представлен в виде частицы в системе Particle Flow, которая при ударе формирует новые системы частиц в виде искр с собст- венными свойствами столкновения, срока жизни и внешнего вида. Теперь части- цы совершенно не обязательно должны сохранять свои свойства на протяжении всего срока их жизни. С помощью системы Particle Flow частицы могут изменять свое движение, размер, внешний вид или поведение в зависимости от результа- тов организованных проверок. Например, размеры падающих вниз горящих кус- ков дерева можно изменять при каждом ударе или же разбивать их на более мел- кие куски, сохраняя в то же время, если требуется, скорость движения и парамет- ры их материалов. Основными элементами системы частиц Particle Flow являются события, со- стоящие из отдельных операторов и проверок. Операторы служат для передачи таких свойств частиц, как угол поворота, материал и масштаб. А проверки пред- назначены для организации нового поведения частиц. Во время проверки можно, например, выяснить скорость частицы и организовать новое событие для управ- ления ею. Для частиц, не прошедших проверку, событие не меняется. Такой, на первый взгляд, абстрактный принцип управления частицами с помощью событий па самом деле очень прост. Вместо того чтобы устанавливать скорость движения частиц в конкретном свитке, его можно управлять с помощью оператора. Это дает возможность вводить новые операторы в любой момент, например после про- верки возраста частиц. Так, в упомянутом выше примере лесного пожара дым от отколовшегося куска горящего дерева должен перемещаться быстрее в момент удара, а во время свободного падения этого куска скорость движения дыма долж- на оставаться более или менее постоянной. Системы частиц Particle Flow могут быть инициированы при создании объекта излучателя с помощью кнопки PF Source (Источник потока частиц), доступной после выбора категории Particle Systems в раскрывающемся списке, расположен- ном ниже кнопки Geometry на панели Create, либо в окне Particle View, где можно сформировать стандартный поток частиц (Standard Flow) с общими парамет- рами или же пустой поток частиц (Empty Flow) с минимальным набором пара- метров Каждая система частиц Particle Flow представлена в видовых окнах пик тограммой источника частиц PF Source, которая по умолчанию служит также в качестве излучателя частиц.
Глава 17 Введение в систему частиц Particle Flow 691 Параметры источника частиц PF Source Большинство параметров источника частиц PF Source, рассматриваемых в этом разделе, находятся на панели Modify (рис. 17.9), хотя они доступны также из интер- фейса в окне Particle View как будет показано в следующем разделе. Рис. 17.9. Свитки параметров источника частиц PF Source на панели Modify Свиток Setup Для быстрого и удобного включения и выключения системы частиц Partee F ow служит флажок Enable Particle Emission (Активизировать излучение частиц) из свитка Setup (Установка). То же самое можно сделать и в окне Particle View.
692 Часть VII. Частицы и динамика При выборе кнопки Particle View в свитке Setup открывается окно с интерфей- сом Particle View, хотя его можно открыть и нажатием клавиши <6>. Свиток Emission В отличие от неуправляемых собы иями систем частиц, в системе частиц Par- ticle Flow может использоваться излучатель любого типа Это дает возможность формировать частицы, не ограничиваясь площадью их излучения. Параметр Logo Size из свитка Emission оказывает влияние только на внешний вид блок-схемы внутри излучателя частиц, никак не воздействуя на само излуче- ние частиц. Параметр Icon Туре определяет форму излучателя частиц. По умолчанию в этом раскрывающемся списке выбрана прямоугольная форма (Rectangular), хотя она может быть параллелепипедной Box), кру лой (Circle) или сферической (Sphere) (рис. 17.10). Если ни одна из этих форм вас не устраивает, для определе- ния формы излучателя частиц вы можете всегда воспользоваться полученным эк- земпляром геометрической формы. Рис. 17.10. Виды излучателей частиц: прямоугольный, параллелепипедный, круглый и сферический Параметры Length/Diameter Width и Height определяют размеры пиктограм- мы. Значения этих параметров оказывают непосредственное влияние на излуче- ние частиц, если для их формирования используется пиктограмма излучателя.
Глава 17. Введение в систему частиц Particle Flow 693 Флажки Logo (Блок-схема) и Icon (Пиктограмма) из области Show в свитке Emission управляют режимом отображения соответствующих частей пиктограм- мы источника частиц PF Source, определяя лишь порядок отображения этого из- лучателя в видовых окнах. Параметры из области Quantity Mu tiplier (Количественный множитель) в свитке Emission изменяют в процентах количество частиц, формируемых в ви- довых окнах и во время визуализации. Указанное процентное количество умно- жается на общее число формируемых частиц, которое, в свою очередь, определя- ется операторами и проверками в системе частиц Particle Flow особенно опера- тором Birth (Зарождение). Назначение параметров из области Quant’ty Mult pl er — быстро увеличить или уменьшить количество частиц, формируемых во всех событиях в конкретном потоке. Следует, однако, иметь в виду, что макси- мальные значения этих параметров могут достигать 10000%, что позволяет уве- личить количество частиц в 100 раз. НА ЗАМЕТКУ Функциональные возможности системы частиц Particle Flow весьма разнообраз- ны, хотя и требуют значительных вычислительных ресурсов. Если содержимое экра а обновляется медленно при перемещении ползунка временной шкалы анимации, попробуйте изменить общее число частиц с помощью соответствую- щего параметра из области Quantity Multiplier. Аналогично флажку Enable Particle Emiss on из свитка Se up параметры из об- ласти Quantity Multiplier в свитке Emission обеспечивают оперативное управление всей системой частиц Particle Flow, что очень полезно для отладки сцены. Свиток Selection Частицы в системе Particle Flow разделяются по видам поведения несколькими способами. Допустим, что имеется группа драконов в виде частиц, которые тре- буется перевести из события “воспарить и угрожать” в событие “нырнуть вниз и изрыгнуть пламя”. Для этой цели служат параметры из свитка Selection. Для доступа к отдельным частицам их необходимо выделить на уровне по- добъектов-частиц, устанавливаемом в свитке Selection. Режим выделения частиц (Particle Select) активизируется с помощью кнопки Particle, расположенной в верхней части свитка Select on. В этом режиме частицы выделяются в видовом окне, где необходимо щелкнуть и обвести частицы рамкой выделения. На выде- ленные таким образом частицы оказывает влияние оператор Delete (Удаление) или проверка Split Selected. (Разделить выделенное) в окне Part с е View. Такой режим работы на уровне подобъектов отличается от стандартных опе- раций с подобъектами каркаса, где результат выделения передается вверх по сте- ку модификаторов. Режим работы на уровне подобъектов-частиц позволяет пере- давать выделенные частицы событиям в окне Particle View и допускает лишь одно выделение на каждый источник PF Source. В режиме выделения событий (Event Seect) частицы выделяются в зависимо- сти от текущего события, управляющего этими частицами в потоке. Выделенные на этом уровне частицы могут быть преобразованы в частицы, выделенные на
694 Часть VII. Частицы и динамика уровне подобъектов-частиц, с помощью кнопки Get From Event Level (Перенести с уровня событий). Для доступа к данной кнопке необходимо перейти в упомяну- тый выше режим выделения частиц. В области Select by Particle ID из свитка Select on доступен третий способ вы- деления частиц по идентификационному номеру. Здесь же можно вводить и уда- лять частицы из совокупности выделения. Свиток System Management Допустим, что в сцене установлен сложный фонтан, и капли воды в нем выте- кают в виде частиц Particle Flow из пасти рыбы. Падая и отскакивая от чешуи и плавников рыбы, они тем самым порождают дополнительные капли. Такого эффекта нетрудно добиться с помощью системы частиц Particle Flow, хотя зара- нее сложно сказать, сколько частиц будет при этом вытекать. Ведь если каждая исходная капля воды порождает капли меньших размеров, а те, в свою очередь, еще более мелкие капли, это в конечном итоге может привести к перегрузке или даже к зависанию компьютера. С помощью параметра Upper Limit (Верхний пре- дел) из области Particle Amount (Количество частиц) в свитке System Management (Управление системой частиц) устанавливается максимальное число частиц, ко- торое может иметь система Particle Flow Эта надежная мера предосторожности против формирования чрезмерного количества частиц позволяет корректиро вать поток частиц, не доводя систему до аварийного отказа. Параметры из области Integration Step (Шаг интегрирования) играют важную роль в определении общей точности движения и столкновения для всего потока частиц. Эти параметры определяют, насколько часто производятся подобные расчеты Чем меньше их значения, тем точнее имитация, для которой при этом требуется больше времени. В раскрывающемся списке Viewport могут быть выбраны разные варианты шагов интегрирования: от Frame (т.е. один раз в каждом кадре анимации) до 1/8 (т.е. во- семь раз в каждом кадре анимации), а в раскрывающемся списке Render следующие варианты or Frame до 1 Tick (т.е. через каждую временную отметку). Временная отметка обозначает очень короткий период 1/60 кадра (по телевизионному стан- дарту NTSC), поэтому такая высокая точность требуется крайне редко. $ НА ЗАМЕТКУ__________________________________________________________ Если поведение частиц в видовых окнах и в визуализированном варианте сцены не совпадает, это, скорее всего, объясняется разными шагами интегрирования, установленными в области Integration Step из свитка System Management. Для то- го чтобы исправить это положение, попробуйте выбрать одинаковые варианты шагов интегрирования в раскрывающихся списках Viewport и Render. Свиток Script Активизируя сценарии в свитке Script можно установить режим выполнения сценария на каждом шаге интеграции или же после завершающего шага интегра- ции в каждом кадре После выбора соответствующего режима выполнения сцена- рия с помощью кнопки Edit открывается редактор текста сценария.
Глава 17. Введение в систему частиц Particle Flow 695 Параметры источника частиц PF Source позволяют установить и настроить общий режим работы системы частиц Particle Flow, однако подлинные ее воз- можности раскрываются лишь в окне Particle View, которое рассматривается в следующем разделе Окно Particle View Основной интерфейс для организации потоков частиц находится в окне Parti- cle View (рис. 17.11). Именно здесь и выполняется основная работа по созданию систем частиц Particle Flow. Окно Particle View можно рассматривать в качестве виртуального двигателя, в котором системы зажигания, передачи и выпуска ав- томатически компонуются и соединяются друг с другом так, как нужно пользова- телю. В этом разделе рассматриваются функции интерфейса в окне Particle View, а также способы управления элементами системы частиц Particle Flow для созда- ния требуемого эффекта. Рис. 17.11. Интерфейс в окне Particle View
696 Часть VII. Частицы и динамика Доступ к окну Particle View осуществляется с помощью одноименной кнопки из свитка Setup параметров источника частиц PF Source на панели Modify или с по- мощью клавиши <6>. Интерфейс в этом окне состоит из пяти основных элемен- тов: строки меню, панели отображения событий, панели параметров, хранилища доступных операторов и проверок и небольшой панели описания с краткими све- дениями об операторах и проверках, отображаемых при выборе одного из этих действий в хранилище. Кроме того, в правом нижнем углу данного интерфейса находится ряд инструментов отображения. НА ЗАМЕТКУ Под термином "действие" в данном контексте подразумевается отдельная функция системы частиц Particle Flow (скорость, отображение и т.д.) или проверка (на возраст- или столкновение), составляющая основу данной системы частиц. Основная последовательность операций в данном интерфейсе состоит в пере- таскивании операторов из хранилища на панель отображения событий, где они располагаются в порядке следования событий и соединяются по блок-схеме с дру- гими событиями, в то время как правка параметров этих операторов выполняется на панели параметров. Рассмотрим по очереди каждый элемент интерфейса в окне Parte е V’ew, что- бы дать ясное представление о принципе действия и возможностях системы час- тиц Particle Flow. Строка меню Строка меню содержит несколько меню для выбора команд настройки и ана- лиза потока частиц. Аналогичные функции доступны и на панели отображения событий, что может оказаться для вас более удобным. Меню Edit Команды меню Edit позволяют вводить, вставлять и присоединять операторы или проверки (рис. 17.12). Для доступа к этим командам необходимо сначала вы- делить действие на панели отображения событий. Из меню Edit можно выделять и отменять выделение отдельных или всех действий, делать уникальными полу- ченные экземпляры действий (после их выделения), связывать проверки с опре- деленными событиями, а также копировать и вставлять элементы системы час- тиц и, наконец, удалять и переименовывать выделенные элементы. Перечислен- ные функции более подробно рассматриваются в разделе “Панель отображения событий’ далее в этой главе.
Глава 17. Введение в систему частиц Particle Flow 697 Рис. 17.12. Меню Edit в окне Particle View Меню Select В меню Select имеются разнообразные команды выделения действий на панели отображения событий (рис. 17.13). Так, команда Select Donwstreams (Выделить снизу вверх) полезна для проверки выделенного события, а также всех последую- щих и производных событий. Команда Save Selected служит для сохранения выде- ленных действий в новом файле с расширением max включая все находящиеся на сцене объекты на которые делаются явные ссылки. Это удобный способ копирова- ния отдельных частей потока частиц для создания новой сцены. Рис. 17.13. Меню Select в окне Particle View
698 Часть VII. Частицы и динамика Команда Get Selection From Viewport (Получить выделенное из видового окна) выделяет событие верхнего уровня соединенное в блок-схеме с любыми пикто- граммами источников частиц PF Source, выделенными в видовом окне. Эта ко- манда позволяет быстро перейти к началу формирования системы частиц во вре- мя работы с несколькими пиктограммами источников частиц PF Source. Для того чтобы перейти к началу формирования событий в системе частиц, достаточно выделить пиктограмм}' соответствующего источника частиц в видовом окне 3ds max и выбрать команду Get Selection From Viewport Для визуализации только выделенных событий в потоке частиц служит коман- да Assign Selection То Viewport (Назначить выделенное для видового окна). При этом в видовом окне создается совокупность выделения типа Partcle Group (Группа частиц), состоящая только из выделенных событий PartiC е Flow. Если же используется совокупность выделения типа Se е ted Render (Выделенное для ви- зуализации), визуализированы будут только частицы из выделенных событий. А с помощью команды Sync Source/Events Selection In Viewport (Синхронизиро- вать выделенные источники частиц и события в видовом окне) выборочно визуа- лизируется весь поток частиц. Эта команда отличается от упомянутой выше ко- манды Get Selection From Viewport тем, что она позволяет выделить все события связанные с выделенными пиктограммами источников частиц PF Source а не только глобальные события. Команды Select АП и Select None включают и выключают режимы выделения всех операторов и событий. А остальные команды из меню Se ect управляют выделением действий, операторов, проверок и связываемых событий. Все эти элементы системы частиц Particle Flow более подробно рассматриваются в следующем разделе. Меню Display В меню Display имеются команды, выполняющие те же функции, что и инет рументы, расположенные в правом нижнем углу интерфейса в окне Particle View, а именно: панорамирование (Pan), изменение масштаба сцены (Zoom), измене- ние масштаба отдельной области (Region Zoom), отображение объекта полностью (Zoom Extents) и отображение без изменения масштаба (No Zoom). Кроме того, в меню Display имеются команды переключения режимов отображения для панелей параметров (Parameters), описания (Description) и хранилища (Depot) (рис. 17.14) Рис 17 14. Меню Display в окне Particle View
Глава 17. Введение в систему частиц Particle Flow 699 Меню Options Команды из меню Options (Дополнительные режимы) служат в основном для отладки потоков частиц (рис. 17.15). Так, команда Default Display (Отображение по умолчанию) определяет, вводятся ли операторы Display (Отображение) ав- томатически в новые события. Если с помощью этой команды выбран режим Lo- cal, операторы Display автоматически вводятся во вновь создаваемые события, что позволяет лучше различить в видовых окнах момент перемещения частиц от одного события к другому. Рис. 17.15. Меню Options в окне Particle View Команда Action Order (Порядок выполнения действий) определяет, оценива- ется ли сначала глобальное событие (первое и исходное событие в потоке час- тиц) или же локальные (все последующие) события. Такое решение имеет опре- деляющее значение лишь в том случае, когда сходные типы действий выполняют- ся глобально и локально. Так, если требуется заменить параметры скорости, ус- тановленные в локальных событиях, на скорость из глобального события, следует создать оператор Speed (Скорость) в глобальном событии и установить режим Locals First (Сначала локальные события), выбрав команду Action Order. ’ Команда Update Туре (Вид обновления) определяет, в какой момент времени следует обновить расчеты потока частиц при изменении параметра во время вос- произведения. По умолчанию устанавливается режим Complete (Полное обнов- ление). Это означает, что расчет системы частиц начинается с первого кадра анимации. Если же выбрать с помощью команды Update Туре режим Forward (С текущего момента), процесс значительно ускоряется, поскольку расчеты будут начинаться с текущего кадра, хотя такое ускорение обычно происходит за счет снижения точности, так как события оказывают влияние на движение частиц па протяжении всей анимации. НА ЗАМЕТКУ При устанавливаемом по умолчанию режиме Complete весь поток частиц пересчи- тывается от первого кадра до текущего всякий раз, когда в окне Partic е View из- меняется параметр. Во избежание подобной задержки рекомендуется переходить (по возможности) к первому кадру анимации перед тем, как изменять параметр
700 Часть VII. Частицы и динамика Режимы, выбираемые командой Track Update (Отслеживание обновлений), позволяют следить за ходом формирования потока частиц. Так, режим Particle Count (Подсчет частиц) вводит в глобальное событие счетчик, который непре- рывно обновляется, показывая общее число частиц в системе. Кроме того, счет- чик вводится в каждое локальное событие показывая число частиц, характерное именно для этого события. А режим Update Progress (Ход обновления) действует во время воспроизведения, выделяя каждый оператор и проверяя результат его выполнения. Если для отображения такой информации требуется дополнитель- ное время, что может привести к пропуску кадров при воспроизведении, для принудительного отображения каждого кадра (правда, не в реальном масштабе времени) достаточно сбросить флажок Real Time в диалоговом окне Time Con- figuration. Это очень полезно для определения момента получения частиц отдель- ными событиями при отладке потока частиц. Панель параметров В этой области интерфейса параметры операторов, входящих в блок-схему ор- ганизации потока частиц, правятся аналогично свойствам, доступным на панели Modify для объектов, выделенных в видовых окнах 3ds max (рис 17.16). На данной панели доступны параметры любого выделенного оператора. Ее отображение можно включать или выключать командой Displays Parameters, выбираемой из строки меню в окне Particle View Рис. 17.16. Панель параметров
Глава 17. Введение в систему частиц Particle Flow 701 СОВЕТ Если на панели отображения событий выделено несколько действий, для каждо- го из них на панели параметров раскрь вае ся отдельный свиток. Хранилище Эту область интерфейса можно сравнить со складом запчастей (рис. 17.17). На данной панели хранятся все доступные для потока частиц действия. Такие операторы, как Position (Положение), Scale (Масштаб) и Shape (Форма), а также проверки, например на столкновение (Collision) и скорость (Speed), и, наконец, шаблоны потоков частиц (Standard Flow и Empty Flow) можно перетаскивать из хранилища па панель отображения событий. Отображение хранилища можно включать или выключать с помощью команды Displays Depot, выбираемой из строки меню в окне Particle View. g Empty Flow Standard Flow IV "th A Birth Script В Delete [nl Force U Keep Apart И Mappmg Q Material Dynamic H Material Frequency я Mater al Static H Position Icon H Position Object И Rotation Q Scale И Script Operator H Shape s Shape Facing В Shape Instance в Shape Mark И Speed Speed By Icon H Speed By Surface И spin ф Age T esi Ф Co hsion < ► Cession Spawn 4 ^Fn Target wGo To Rotation 4 Scale Test ^Scr( tSend Out Spawn Speed Test ф Split Selected ^Split Source В Cache И Display В Notes Щ Render p Тей Description:----------------* SpfitAmount checks numer cel particle property and sends to the пей event either a fraction of particles or every Nth paiticle or the first N particles or all the particles aftai the N litsl ft 4 Bl Ж 4 Рис. 17.17. Хранилище и панель описания СОВЕТ Ознакомившись поближе с доступными для потоков частиц действиями, вы може- те выключить отображение хранилища ради экономии полезной площади экрана. Панель описания Если в хранилище выделено действие, краткое текстовое пояснение его функ- ций отображается на панели описания. Панель отображения событий Эта область интерфейса является самым главным элементом окна Partice View. Именно здесь поток частиц организуется из отдельных составляющих. На панели отображения событий наглядно представлены все потоки частиц, имеющиеся в текущей сцене, а также блок-схемы их организации. Кроме того, на данной панели доступны команды меню Edit (для этого достаточно щелкнуть пра- вой кнопкой мыши на выбранном действии).
702 Часть VII. Частицы и динамика События Готовые действия, перетаскиваемые из хранилища для организации потока час- тиц, сгруппированы в наборы, называемые событиями. События представляют со- бой группы действий (операторов и проверок), выполняемых по порядку сверх}' вниз для каждой входящей частицы. Оставаясь внутри события, частицы подчиня- ются параметрам действий, составляющих событие, до тех пор, пока они не будут удалены или же переданы другому событию. Даже если на панели отображения со- бытий находится единственный оператор, он становится частью события. Событие может быть создано несколькими методами, доступными по команде New из контекстного меню вызываемого щелчком правой кнопкой мыши на фо- не панели отображения событий. Так, выбрав из данного контекстного меню команду New^ Particle SystemsEmpty Flow (Создать^Систему частицЧ>Пустой поток) или же команду New^Particle System ^Standard Flow (Соз/агьЧ>Систему частицЧ>Стандартный поток), можно создать новое глобальное событие PF Source и соответствующую пиктограмму источника частиц PF Source в точке начала мировых координат (0,0,0) видового окна (рис. 17.18). Рис. 17.18. Глобальное собы- тие и событие зарождения стандартного потока частиц | СОВЕТ______________________________________________________________ При удалении глобального события PF Source в окне Partcle View удаляется также и соответствующая пиктограмма источника частиц PF Source После выбора команды New из контекстного меню доступна также целая биб- лиотека событий зарождения частиц (Birth Event), событий операторов (Operator Event), событий проверок (Test Event) и прочих событий (Miscellaneous Event). При вводе одного из этих действий на пустом участке панели отображения собы- тий создается новое событие. Если с помощью команды Optlons^Default Display установлен режим Local, в новые события автоматически вводится оператор Display.
Глава 17. Введение в систему частиц Particle Flow 703 СОВЕТ Использование визуально отличающихся видов отображения в каждом из собы- тий имеет решающее значение для отладки потоков частиц в видовых окнах. Правка событий Возможность свободно перемещать события на панели отображения собы- тий — это одно из самых полезных ее свойств с точки зрения организации потока частиц. Создаг вне события можно перемещать, щелкнув на строке заголовка и перетащив их на новый участок панели отображения событий. А для изменения размеров блока события достаточно потянуть в нужную сторону его правый ниж- ний угол. Аналогичным методом перетаскивания перемещаются и действия внут- ри события. Если действие перемещается на пустой участок панели отображения событий, новое событие создается таким же образом, как и с помощью команды New, выбираемой из контекстного меню. Если же действие перемещается в уже имеющееся событие, появляется цветная линия, показывающая, каким образом будет введено действие. Там, где появляется голубая линия, перемещаемое дейст- вие вставляется между двумя другими действиями. А там, где появляется красная линия, уже имеющееся действие удаляется и заменяется перемещаемым. Для того чтобы добавить действия к тем, что уже имеются в событии, доста- точно щелкнуть правой кнопкой мыши на строке заголовка данного события и выбрать из контекстного меню требуемое действие соответствующей командой (рис. 17.19 и 17.20). Так, после выбора команды Insert выбранное действие встав- ляется в начале события, а после выбора команды Append оно помещается в кон- це события. Команды для замены уже имеющихся действий внутри события от- сутствуют. Перемещение действий может оказывать значительное влияние на поведение частиц, поскольку действия внутри событий всегда выполняются по порядку, т.е. сверху вниз. Рис. 17.19. Выбор действия из контекстного меню для присоединения к событию в окне Particle View
704 Часть VII. Частицы и динамика Render 01 (Geomdry) PF Source 01 <? i r-, - i у Рис. 17.20. Выбранное действие присоединяется к событию Событие можно отключить, выбрав команду Turn Off из контекстного меню или щелкнув на пиктограмме лампочки, расположенной в строке заголовка собы- тия. Если событие отключено, оно не управляет частицами. А частицы, переда- ваемые неактивному событию, удаляются. Кроме того, события можно удалять, комментировать и переименовывать по соответствующим командам из контекстного меню. Событиям рекомендуется присваивать осмысленные имена, поскольку эти имена используются в несколь- ких контекстах. Комментируемые события обозначаются небольшим красным треугольником на левом краю строки заголовка. Если щелкнуть на этом указателе, откроется окно комментариев к выбранному событию. Свойства выделенного события доступны после выбора команды Properties из контекстного меню. В результате этого действия откроется диалоговое окно Ob- ject Properties для данного события. У отдельных событий могут быть разные свойства объектов, в том числе свойства отображения, управления визуализацией и размытости движения. НА ЗАМЕТКУ Изменять следует лишь свой ва события в окне Particle V ew Если же изменить свойства источника частиц PF Source в диалоговом окне Object Properties они бу- дут зарегистрированы неверно или будут действовать не так, как предполагалось. Действия Проверки, операторы и источники частиц, доступные в окне Particle View, на- зываются действиями Важно отметить, что действия происходят в разных вре- менных рамках. Одни действия, как, например Force, Keep Apart и Shape Facing, оказывают непрерывное воздействие на частицы внутри своих событий, причем их воздействие прекращается, как только частицы перемещаются к дру- гому событию. Другие действия, как, например, Material Static и Shape, воз- действуют на частицы лишь один раз и не выполняются до тех пор, пока внутри события не появится новая частица.
Глава 17. Введение в систему частиц Particle Flow 705 НА ЗАМЕТКУ Такие однократные действия, как Shape Mark, могут вступать в противоречие с непрерывными действиями типа Scale, для которых установлен абсолютный или относительный масштаб. Так, если требуется сначала установить размер частиц, а затем непрерывно изменять его, оба действия, оказывающие влияние на размер частиц, следует поместить в разных событиях, иначе действие по ус- тановке размера частиц отменит действие по его изменению. Проверки Поток частиц может быть перенаправлен в зависимости от результатов раз- личных проверок, в ходе которых оцениваются свойства частиц (возраст или скорость), их взаимодействие с другими находящимися на сцене объектами (столкновение или поиск цели) либо происходит произвольное разделение час- тиц по их количеству. Действия, проверяющие частицы или события по условию или перенаправляющие частицы, называются проверками. Если проверка связана с другим событием, то при истинном результате проверки частиц они направля- ются к данному событию. Если же проверка не связана с другим событием, то ре- зультат проверки частиц всегда ложен, а следовательно, частицы остаются внут- ри исходного события. НА ЗАМЕТКУ Если требуется простое столкновение, не порождающее другие частицы и не дающее побочные результаты, в таком случае следует выбрать проверку на столк- новение без связывания с целевым событием. При этом частицы будут привязаны к сталкивающимся объектам, на них будут оказывать воздействие отражение, тре- ние и другие свойства отражателя и в то же время они останутся внутри исходно- го события. Проверки выполняются в том порядке, в каком они перечислены в событии. Так, если событие содержит сначала проверку на скорость, а затем проверку на возраст, частицы, прошедшие проверку на скорость, передаются целевому собы- тию, связанному с данной проверкой, и уже не проверяются на возраст. СОВЕТ Для передачи всех частиц следующему событию достатсл но выбрать проверку Send Out. Для большинства проверок используется одна и та же пиктограмма в виде желтого ромба с изображением переключателя. Для потока частиц доступны сле- дующие проверки. • Age Test (Проверка на возраст) • Collision (Столкновение) • Collision Spawn (Порождение при столкновении) • Find Target (Поиск цели)
706 Часть VII. Частицы и динамика • Go То Rotation (Переход к вращению) • Scale Test (Проверка па масштаб) • Script Test (Проверка по сценарию) • Send Out (Передача) • Spawn (Порождение) • Speed (Скорость) • Split Amount (Разделение количества) • Split Selected (Разделение выделенного) • Split Source (Разделение источника) Болес подробное описание проверок потока частиц можно найти в оперативном справочном руководстве по 3ds max 7, выполнив команду HelpdUser Referenced ContentsdSpace Warps and Particle Systems^Particle SystemsdParticle Flow'dActionsdTestS (Справка^Пользоватсльский иптерфейс^Содержание1^ Пространственные исказители и системы частиц^Системы частиц^Поток частиц1^ Дейсгвия^Проверки). Операторы Операторы представляют собой действия над потоком частиц для управления такими параметрами частиц, как масштаб, скорость, вращение и форма. Опера- торы можно сравнить с отдельными свойствами объектов, устанавливаемыми на панели Modify, однако в окне Particle View используются пе все, а только нужные операторы. Некоторые операторы выполняют не только функции управления преобразо- ваниями. К их числу относятся операторы Birth, Birth Script, Delete, опре- деляющие срок жизни частиц. Кроме того, имеются четыре служебных оператора общего назначения. Это операторы Chache (для предварительного расчета интенсивных потоков час- тиц), Display (для определения внешнего вида частиц в видовых окнах), Notes (для сохранения комментариев) и Render (для определения внешнего вида час- тиц при визуализации). У каждого оператора имеется своя собственная пиктограмма на общем синем фоне кроме двух операторов зарождения частиц, у пиктограмм которых фон зе- леный. Для потока частиц доступны следующие операторы. • Birth (Зарождение) • Birth Script (Зарождение по сценарию) • Delete (Удаление) • Force (Сила) • Keep Apart (Разграничение) • Mapping (Проецирование) • Material Dynamic (Динамика материала)
Глава 17. Введение в систему частиц Particle Flow 707 • Material Frequency (Частота материала) • Material Static (Статика материала) • Position Icon (Расположение пиктограммы) • Position Object (Расположение объекта) • Rotation(Вращение) • Scale (Масштаб) • Script (Сценарий) • Shape (Форма) • Shape Facing (Форма лицевой частицы) • Shape Instance (Форма экземпляра) • Shape Mark (Форма метки) • Speed (Скорость) • Speed By Icon (Скорость по пиктограмме) • Speed By Surface (Скорость по поверхности) • Spin (Верчение) • Cache (Кэш) • Display (Отображение) • Notes (Примечания) • Render (Визуализация) Более подробное описание операторов потока частиц можно найти в опе- ративном справочном руководстве по 3ds max 7, выполнив команду Help^User Reference^Contents^Space Warps and Particle Systems1^Particle Systems^ Particle Flow^Actions^Operators (Справка^Пользовательский ин- терфейс^Содержание^Пространствспные исказители и системы частиц1^ Системы частиц^Поток частиц1^Действия^Операторы). Потоки частиц Для создания новой системы частиц имеются два потока: пустой (Empty Flow) и стандартный (Standard Flow). В пустом потоке создается событие с единственным оператором Render, а оператор Display вводится в том случае, если с помощью команды Options1^ Default Display установлен режим Global Это удобно для создания совершенно нового потока частиц. В стандартном потоке создается более сложное сочетание событий: глобаль- ное событие (такое же, как и в пустом потоке частиц), а также связанное с ним собьтие зарождения частиц. В событие зарождения частиц включается простой набор операторов: Birth, Position Icon, Speed, Rotation, Shape и Display. Аналогичный поток частиц получается при создании пиктограммы источника частиц PF Source в видовом окне.
708 Часть VII. Частицы и динамика Если при создании пустого или стандартного потока активно окно вида из ка- меры или в перспективе, пиктограмма соответствующего источника частиц PF Source будет ориентирована в плоскости XY. Если же активно окно ортогональ- ного вида, пиктограмма данного источника частиц ориентирована параллельно плоскости данного вида, причем ось Z пиктограммы направлена в сторону видо- вого окна. Действия для правки Контекстное меню для действий очень похоже на аналогичное меню для собы- тий. В нем имеются команды Insert и Append для ввода действий, однако их распо- ложение зависит от положения курсора при вызове контекстного меню. Так, если курсор находится над действием (имя которого появляется во всплывающей под- сказке), это действие заменяется новым действием по команде Insert. Если же кур- сор находится между действиями (при этом всплывающая подсказка не появляет- ся), новое действие вставляется с помощью команды Insert между двумя уже имею- щимися действиями. А после выбора команды Append новое действие всегда распо- лагается в конце события независимо от местоположения курсора. Кроме того, действия активизируются и отключаются командами Turn On и Turn Off из контекстного меню, вызываемого щелчком правой кнопкой мыши на пиктограмме выбранного действия. Когда действие отключается, его пикто- грамма и строка заголовка становятся серыми. Для того чтобы проверка всегда давала истинный результат (когда все имею- щиеся частицы направляются к целевому событию), достаточно щелкнуть слева на пиктограмме выбранной проверки (на пиктограмме появится зеленая лампоч- ка). А для того чтобы проверка всегда давала ложный результат (когда все имею- щиеся частицы остаются внутри текущего события), следует щелкнуть справа на пиктограмме выбранной проверки (на пиктограмме появится красная лампочка). Если же требуется вернуться к обычной функции проверки, необходимо еще раз щелкнуть на ее пиктограмме. Кроме того, выбрав команду Make Unique из контекстного меню, можно сде- лать уникальными полученные экземпляры действий. После выбора команды Wire из контекстного меню связываются события и проверки или же глобальные события и события зарождения. Данная команда доступна только при выборе подходящих элементов щелчком правой кнопкой мыши. Для связывания события с результатом проверки следует выделить снача- ла проверку (но не событие, содержащее проверку), а затем целевое событие (но не действие внутри целевого события), щелкнуть правой кнопкой мыши на про- верке или целевом событии и выбрать команду W're из всплывающего контекст- ного меню. А для связывания события зарождения частиц с глобальным событи- ем (PF Source) достаточно выделить оба события (но не действия внутри них), щелкнуть правой кнопкой и выбрать команду Wire из всплывающего контекстно- го меню (рис. 17.21 и 17.22).
Глава 17. Введение в систему частиц Particle Flow 709 t I Birth 01 (0-301:200) ?ostion Icon 01 (Vokme) Speed 01 (Along icon Arrow) Rotation 0 Renton 3D) Рис. 17.22. После выбора из кон- текстного меню команды Wire под- ходящие события связываются 4 Shape 01 petra Display 02 (Ticks) Event 02 Materiel Static 01 (None Insert Append Turn On Turn Off Hake Unique ₽ Display 01 (Ticks) ^CotsionC (None) Delete Rename Comments .. Copy Paste Paste Instanced Рис. 17.21. Подходящие события и провер- ки, а также события зарождения и глобаль- ные события могут быть связаны после вы- бора из контекстного меню команды Wire Действия и события копируются с помощью команд Сору и Paste контекстного меню. Если команда Paste выполняется на пустом участке панели отображения час- тиц, в новое событие можно вставить сразу несколько действий. А если команда Paste выполняется по отношению к уже имеющемуся событию, скопированные действия вводятся в это событие Копировать можно и несколько событии сразу, например, для сохранения внешнего вида или других свойств частиц, которые в противном случае могут перестать действовать, как только частица покинет ис- ходное событие. Для копирования действий и событий достаточно также нажать клавишу <Shift> и выполнить перетаскивание. Но при этом важно соблюдать последовательность действий. Сначала нажмите клавишу <Shift>, а затем поместите курсор над выде- ляемыми для копирования элементами. Как только рядом с курсором появится знак “плюс”, щелкните и перетащите выбранные элементы, чтобы скопировать их. Действия, как и события, могут быть снабжены комментариями. Для этой це- ли служит, в частности, оператор Notes, не оказывающий влияния на ход собы- тий. В операторе Notes хранится любой текст, в том числе сведения о поиске и исправлении ошибок, оптимальных значениях параметров или же коммента- рии других пользователей.
710 Часть VII. Частицы и динамика Связывание событий Как отмечалось выше, события и проверки связываются командой Wire коп текстного меню Более удобный способ состоит в том чтобы перетащить линию связывания от одного события к другому. При связывании проверки с событием слева на пиктограмме проверки поя- вится небольшая синяя точка, обозначающая выход события. При вытягивании линии связывания из выхода события курсор изменит свой вид с пиктограммы связывания на изображение трех стрелок. А когда курсор приблизится к входу целевого события, он изменит свой вид на изображение четырех стрелок. Такой принцип действует в обоих направлениях, т.е. связывать можно не только про- верки с событиями, но и события с проверками Аналогично, выход глобального события можно связать со входом события зарождения частиц (т е. события, на- чинающегося с оператора Birth или Birth Script). Связать глобальное собы- тие с событием другого типа нельзя. НА ЗАМЕТКУ С одним событием можно связать несколько проверок, передав из этих прове- рок частицы для того, чтобы на них оказывало влияние целевое событие. Одна ко отдельная проверка связывается только с одним событием, поскольку истин- ный результат проверки частиц позволяет направить их лишь к одному целевому событию. Выход события можно переместить вправо от блока события, чтобы упро- стить связывание проверки с событиями, расположенными справа. Для этого по- местите курсор в небольшом квадратике на выходе события. Как только курсор примет вид черного кружка со стрелками, направленными влево и вправо, щелк- ните и перетащите курсор на противоположную сторону блока события, пере- местив туда его выход. Как было показано выше, для организации потока частиц в интерфейсе окна Particle View имеется немало технических возможностей, но они лишь служат в качестве дополнения к открытой системе создания специальных частиц. Неко- торые практические приемы применения системы частиц Particle Flow будут представлены далее в этой главе на примере имитации эффектов окружения, со- средоточенных вокруг извержения вулкана. Частицы для эффектов окружения Если взять любую по-настоящему привлекательную, вдохновляющую сцен)', созданную средствами компьютерной графики, то в ней, скорее всего можно об- наружить элементы атмосферы в виде жидких, парообразных, ветровых, огне- вых, пылевых и прочих эффектов окружения. Такие элементы обычно не прико- вывают внимание, хотя и оказывают очень большое влияние на визуальное вос- приятие сцепы. Ведь без клубов пыли или дождя искр впечатление от падения метеорита на поверхность планеты будет намного более слабым. Менее впечат- ляющие, но не менее важные эффекты тумана, дождя и капель воды способствуют
Глава 17. Введение в систему частиц Particle Flow 711 такому эмоциональному восприятию сцены, которое можно скорее по’гувство- вать, чем осмыслить. Основным средством для создания эффектов окружения в 3ds max 7 служат частицы. Настоящее достоинство систем частиц состоит в том, что они дают возможность определять поведение большой группы объектов с помощью целой системы элементов управления, а система частиц Particle F ow позволяет добить- ся требуемого поведения частиц с довольно большой точностью. Эта система по- зволяет применять общие правила к однородной группе подвижных частиц, не опускаясь до уровня отдельной частицы. Если же требуется более точное управ- ление, на основе самых разных проверок и условий можно выделить более мел- кие подгруппы частиц. Управляемые событиями частицы из системы Particle Flow предоставляют не- мало интересных возможностей для создания эффектов окружения. Многоуров- невый реализм таких эффектов быстро достигается с помощью условных видов поведения частиц. Для создания кипящей лавы в приведенных ниже упражнени- ях будут воссозданы следующие эффекты. • Вспенивающаяся, кипящая жидкость. • Поднимающиеся вверх пузырьки газа. • Лопающиеся на поверхности пузырьки газа. • Разбрызгивающаяся жидкость. • Стекающая жидкость. • Размазывание по поверхности. Лава должна сильно клокотать, выплескиваться вверх, реалистично взаимо- действовать с неровной геометрической формой сцены, оставлять на ее поверх- ности затухающий след. В окончательном виде данный эффект окружения можно посмотреть в фильме из файла \Project Files\Chl7_IntroductionTo- ParticleFlow\volcano_complete . avi на прилагаемом к этой книге DVD. Создание источника частиц В первом упражнении вам предстоит создать несколько эффектов частиц, ис- пользуя систему частиц Particle Flow и интерфейс в окне Particle View, чтобы в итоге получить процедурную и удобную для настройки анимацию извержения вулкана. 1. Для формирования любой системы частиц необходимо сначала создать ее ис- точник на основе вспомогательного объекта или геометрической формы сце- ны. В этом упражнении па сцепе будет расположен вновь созданный источник частиц. Его исходную форму' придется изменить таким образом, чтобы он по- служил кратером для кипящей лавы. Итак, откройте сцену из файла Project Files\Chl7_IntroductionToParticleFlow\volcano_begin.max на при- лагаемом к этой книге DVD.
712 Часть VII Частицы и динамика к НА ЗАМЕТКУ______________________________________________________ Для сравнения полученных результатов по ходу выполнения приведенных ниже упражнений отройте сцену из файла Project Files\Chl7_introductionTo- ParticleFlowX volcano_complete.max на прилагаемом к э ой книге DVD. Эта сцена содержит базовую модель вулкана, упрощенную в целях органи- зации столкновений (рис. 17.23). Модель столкновений (объект volcano_ collision) сделана невизуализируемой в диалоговом окне Object Properties Кроме того, сцена содержит простую оживляемую геометрическую форму лопающихся пузырьков газа (объект BubblePop geometry). К этому кар- касному объекту применяются модификаторы Volume Se ect (Выделение объема) и DeleteMesh (Удаление каркаса), чтобы сформировать сферу, по- степенно исчезающую сверху вниз. Рис. 17.23. Начальная сцена с кратером вулкана Прежде всего необходимо создать поток частиц совместно с составным объектом ВlobMesh для имитации кратера вулкана с кипящего лавой. 2. Перейдите к панели Create, щелкните сначала на кнопке Geometry, затем выберите из раскрывающегося списка категорию Particle Systems и, щелк- ните на кнопке PF Source, чтобы создать пиктограмму источника частиц данного типа в окне вида сверху (рис. 17.24).
Глава 17. Введение в систему частиц Particle Flow 713 Рис. 17.24. Создайте круглую пиктограмму источника частиц PF Source в окне вида сверху Эта пиктограмма послужит в качестве источника для лавы и всех производ- ных от нее эффектов. 3. Для того чтобы Л)'чше вписать источник частиц в геометрическую форму' вул- кана, выберите вариант Circle из раскрывающегося списка Icon Туре и уста- новите значение 140 параметра Diameter в свитке Emission на панели Modify. Переместите пиктограмму источника частиц, расположив ее по центру кра- тера вулкана в окне вида сверху. Затем перемещайте ее по оси Z в окне вида из камеры до тех пор, пока она не окажется над геометрической формой вулка- на приблизительно в точке координат (20,-150,140) (рис. 17.25). Если переместить ползунок по временной шкале анимации, то можно уви- деть, как частицы исходят из пиктограммы источника, распространяясь па- раллельно оси Z в отрицательном направлении. Объясняется это тем, что ис- ходная ориентация источника частиц PF Source, создаваемого в окне орто- гонального вида, по оси Z всегда такова, что он направлен в сторону зрителя. 4. Перейдите к окну вида из камеры и переверните пиктограмму источника частиц вокруг оси Z, используя инструмент Mirror, который выбирается из главного меню с помощью команды ToolS^Mirror (рис. 17.26). Теперь час- тицы должны излучаться вверх, т.е. из кратера вулкана (рис. 17.27).
714 Часть VII. Частицы и динамика Рис. 17.25. Переместите пиктограмму источника частиц вверх по оси Z, чтобы помес- тить его в кратере вулкана Рис. 17.26. Воспользуйтесь инструментом Mirror, чтобы перевернуть источник частиц вокруг оси Z
Глава 17. Введение в систему частиц Particle Flow 715 Рис. 17.27. Выполните зеркальное отображение источника частиц вокруг оси Z, что- бы частицы исходили из него вверх т.е. из кратера вулкана 5. Нажмите клавишу <6> или щелкните на кнопке Particle View в свитке Setup на панели Modify, чтобы открыть окно Particle View. В итоге сформируется стандартный поток частиц, совпадающий с пиктограммой источника час- тиц PF Source. Событие источника (PF Source 01) содержит только оператор Render, создающий визуализируемые каркасы для порождаемых частиц. А поскольку этот оператор находится в глобальном событии, он будет оказывать влияние на все частицы во всех событиях системы без исключения. Но в данном уп- ражнении это нежелательно. Ведь на разных стадиях потока частиц должны формироваться разные виды геометрической формы частиц. 6. Для того чтобы избавиться от данного оператора, щелкните на нем правой кнопкой мыши и выберите команду Delete из всплывающего контекстного меню (рис. 17.28).
716 Часть VII. Частицы и динамика Рис. 17.28. Удалите оператор Render из глобального события Проанализируйте следующее событие в потоке (Event 01). Это событие служит для формирования частиц основной массы кипящей лавы. 7. Щелкните правой кнопкой мыши на строке заголовка события Event 01, выберите команду Rename из всплывающего контекстного меню и при- свойте данному событию новое имя Bubbling Lava Кипящая лава). Та- ким именем удобно пользоваться вне окна Particle View для выбора управ- ляющих событиями частиц с целью их присоединения к другим объектам, находящимся на сцене. 8. Выделите оператор Birth, чтобы получить доступ к его свойствам на пане- ли параметров в окне Particle V ew. Установите нулевое значение параметра Emit Stop (Окончание излучения), а также значение 50 параметра Amount, чтобы создать пачку из 50 частиц в самом начале анимации. Оставьте уста- новленным флажок Subframe Sampling (Подкадровая выборка). НА ЗАМЕТКУ Если режим Subframe Sampling активизирован, расчеты потока частиц произво- дя ся с большей частотой выборки т.е. через более короткие временные про- межутки, чем визуализируемые кадры анимации. В итоге эффект получается более плавным, а частицы меньше стремятся собираться пачками или клубами. 9. Проанализируйте оператор Position Icon, который по умолчанию уста- навливается для излучения частиц в соответствии с объемом пиктограммы источника. Это уместно для источников сферического или параллелепи- педного типа, но поскольку пиктограмма данного источника частиц име- ет круглую форму, выберите вариант Surface из раскрывающегося списка Location на панели параметров данного оператора. 10. Оператор Speed устанавливается по умолчанию таким образом, чтобы час- тицы излучались в направлении стрелки на пиктограмме источника со скоро- стью 300 единиц в секунду. Для получения требуемого эффекта кипящей лавы установите значение 3 параметра Speed и значение 15 параметра Variation.
Глава 17 Введение в систему частиц Particle Flow 717 | НА ЗАМЕТКУ___________________________________________________________ Аналогично многим другим функциям в 3ds max для формирования случайных начальных значений положения пиктограммы источника частиц на панели пара- метров предоставляются поле Seed и кнопка New Вновь сформированные но- вые случайные значения способны значительно изменить движение частиц, а значит, и внешний вид их потока, не прибегая к изменению остальных пара- метров оператора Position Icon. 11. Оператор Rotation в данном случае не нужен, поэтому удалите его, щелк- нув на нем правой кнопкой мыши и выбрав команду Delete из всплывающе- го контекстного меню. 12. Оператор Shape определяет форму частиц и по умолчанию формирует че- тырехгранник со стороной 10 единиц. Увеличьте размер частицы до 20 единиц. Этого будет достаточно для использования частиц в сочетании с составным объектом BlobMesh. Выберите сферическую форму частиц (Sphere) из раскрывающегося списка Shape на панели параметров, чтобы добиться более плавного метасферического эффекта. 13. Оператор Display определяет внешний вид частиц в видовых окнах (в от- личие от оператора Render, который в сочетании с оператором Shape оп- ределяет внешний вид частиц во время визуализации). Выберите вариант Geometry из раскрывающегося списка Туре на панели параметров, чтобы создать иллюзию объемности данного потока частиц. 14. Измените цвет отображения частиц, щелкнув на круглой метке выбора цве- та в строке заголовка оператора Display или на квадратном образце цвета, расположенном на панели параметров, чтобы открыть селектор цвета Вы- берите ярко-красный цвет, в большей степени соответствующий внешнему виду лавы. Таким образом, система частиц должна выглядеть так, как пока- зано на рис. 17.29. При перемещении ползунка по временной шкале анимации порождаемые частицы сразу же появляются в начале анимации, исходя целым потоком из своего излучателя. Большая их часть излучается вдоль оси Z излучателя в положительном направлении. А некоторые из них следуют в противопо- ложном направлении, подчиняясь параметру Variation оператора Speed. Подобная произвольность нужна для получения требуемого эффекта кипя- щей лавы. Как было показано в приведенном выше упражнении, создание и расположе- ние источника частиц PF Source осуществляется аналогично излучателям в не- управляемых событиями системах частиц. Отличия начинают сказываться лишь при видоизменении поведения частиц с помощью интерфейса в окне Particle View (рис. 17.30).
718 Часть VII. Частицы и динамика Рис. 17.29. Переместите ползунок по временной шкале анимации, чтобы посмотреть, как излучаются частицы Рис. 17.30. Вид полученной до сих пор блок-схемы потока частиц В следующем упражнении вам предстоит ввести внешние силы для воздейст- вия па движение частиц, а также организовать простое столкновение, чтобы ог- раничить поток частиц определенным участком. В итоге возникнет движение частиц, быстро отскакивающих в ограниченном пространстве.
Глава 17. Введение в систему частиц Particle Flow 719 Внешняя сила и столкновение Для организации движения кипящей лавы требуются три элемента: начальная скорость и направление (заданные в предыдущем упражнении), движ щая сила, притягивающая частицы к земле, а также силовое воздействие при столкновении для отскакивания частиц вверх. Во втором упражнении для имитации внешней силы, чаще всего применяемой к частицам, будет использован пространственный исказитель Gravity (Сила тяжесги), а столкновение частиц будет определяться геометрической формой отражателя — специальной формой каркасной модели столкновений (объекта vo 1 cano_collision). 1. Перейдите к окну вида сверху и создайте пространственный исказитель Gravity, щелкнув сначала на кнопке Space Warps (Пространственные иска- зители) из панели Create, а затем выберите категорию Forces (Силы) из расположенного ниже раскрывающегося списка и, наконец, щелкните па кнопке Gravity (рис. 17.31). Этот объект по умолчанию ориентирован таким образом, что его ось Z совпадает с отрицательным направлением по оси Z мировых координат. Значение имеет не положение пространственного ис- казителя, а его ориентация, поскольку в данном случае его параметр Decay (Затухание) не используется. Рис. 17.31. Создайте пространственный исказитель Gravity в окне вида сверху 2. Оставьте без изменения устанавливаемое по умолчанию значение 1 пара- метра Gravity Strength (Интенсивность тяготения).
720 Часть VII. Частицы и динамика 3. Для того чтобы приложить данную силу к частицам, перейдите в окно Particle View и присоедините оператор Force к событию Bubbling Lava. Для этого щелкните правой кнопкой мыши на данном событии и выберите команду Appends Operators Force (Присоединить1^ Оператор1^ Сила) из всплывающе- го контекстного меню или же перетащите оператор Force из хранилища в блок текущего события и опустите его, как только указательная линия ста- нет голубой (рис. 17.32). (Если опустить оператор, когда указательная линия выделена красным цветом, он заменит собой действие, уже имеющееся в дан- ном событии.) ф________ Рис. 17.32 Выделите оператор Force в хранилище и введите его в событие методом перетаскивания 4. Выберите пространственный исказитель GravityOl, щелкнув сначала на кнопке Add расположенной на панели параметров оператора Force а за- тем на этом объекте в видовом окне, либо щелкнув на кнопке By List (По списку), находящейся на той же панели параметров, и выбрав данный про- странственный исказитель в открывшемся диалоговом окне Select Force Space Warps (Выбор силовых пространственных исказителей). НА ЗАМЕТКУ В одном операторе Force к частицам можно применить несколько пространствен- ных исказителей. Благодаря этому повышается точность расчетов по сравнению с применением пространственных исказителей в отдельных операторах Force.
Глава 17. Введение в систему частиц Particle Flow 721 5. Если перетащить ползунок по временной шкале анимации, то можно заме- тить, как частицы очень быстро притягиваются к земле. Для того чтобы уменьшить данный эффект, установите значение 15% параметра Influence (Влияние) оператора Force. 6. Перейдите к окну вида сверху и создайте пространственный исказитель UDeflector (Универсальный отражатель), выбрав сначала категорию Deflec- tors (Отражатели) из раскрывающегося списка, расположенного ниже кноп- ки Space Warps на панели Create, а затем щелкнув на кнопке UDeflector 7. Перейдите к панели Modify, щелкните сначала на кнопке Pick Object, а затем выберите объект volcano_collision. Каркас модели столкновений распо- ложен поверх каркаса модели вулкана с более высоким разрешением, поэтому его проще всего выделить в диалоговом окне Select Objects, которое открыва ется после нажатия клавиши <Н>. Оставьте без изменения остальные параметр ры данного пространственного исказителя. В частности, значение 1 параметра Bounce означает, что в результате столкновения частицы не потеряют инер- цию и не замедлят свое движение. Для упрощения внешнего вида сцены в видо- вых окнах вы можете скрыть каркасный объект volcano_collision. Ь СОВЕТ_____________________________________________________________ Используя замещающие объекты столкновений, можно значительно сократить за- траты вычислительных ресурсов процессора при расчетах столкновений объектов. 8. Для того чтобы применить данный эффект столкновения к частицам, пе- рейдите к окну Particle View и присоедините проверку Collision к собы- тию Bubbling Lava (рис. 17.33). Ttrn<*> Tun OH МакеОжхя Wre Delete Rename Age Гей CctaonSpjHn Find Ta» pet Go To Rotation Scale Тей Sere* Тея Send Out Soa*m Speed тея Spit Amount Spit Selected Spit Source lyRow dFk>w Saip» не | Fo< я Keep Apart □ Mepprg M r-Д Каре __ . |Pot#« Otrc< E| hapeFecng Нм etenal Ц Rotation s Motenai oeqjency в <* в Shapeonc В Shape Mark Рис. 17.33. Присоединение проверки Collision к собы- тию с помощью команды Append из контекстного меню
722 Часть VII. Частицы и динамика 9. Введите отражатель UDef lectorOl в список Def ectors на панели парамет- ров проверки Collision. При перемещении ползунка по временной шкале частицы неоднократно отска- кивают вверх, отражаясь от пространственного исказителя UDef lectorOl. НА ЗАМЕТКУ Указывать целевое событие для проверок, в том числе и Collision, не обяза- тельно, если они позволяют организовать столкновение без передачи частиц но- вому событию по результатам истинной проверки. При формировании систем частиц необхо имо постоянно следить за их распро- странением, особенно если они неоднократно отражаются и отскакивают в разные стороны. Например, правдоподобие мотыльков, роящихся вокруг лампы, осве- щающей подъезд, может быть нарушено, если один из этих мотыльков будет про- никать сквозь сплошную стену дома. Поэтому в следующем упражнении в сцену бу- дет введено средство защиты от исчезновения частиц в неизвестном направлении. Улавливание случайно отклонившихся частиц Если понаблюда ь за потоком частиц в окне вида спереди или слева, то можно заметить, как некоторые части ы исчезают из кратера вулкана и падают вниз по оси Z мировых координат (рис. 17.34). Этот недостаток устраняется несколькими способами, в том числе с помощью более мелких каркасов столкновений, замед- лением частиц или увеличением шага интегрирования (Integration Step) для ис- то* hi ка частиц PF Source. Но в приведенном ниже упражнении для этой цели будет использовано самое пр тое средство дополнительный отражатель. 1. Перейдите к окну вида сверху и создайте пространственный исказитель POmniFlect (Планарный всенаправленный отражатель), выбрав соответст- вующую кнопку па панели Create описанным выше способом. Установите размеры 1000x1000 единиц этого простри с венного исказителя, распо- ложив его по центру геометрической формы вулкана, чтобы охватить им все излучаемые части ы. 2. Установите значение 500 параметра Time Off (Время окончания), чтобы столкновения частиц с данным отражателем продолжались на протяжении всей анимации. Пренебрежение этим параметром — ошибка, типичная для пользователей 3ds max 3. Присоедините вторую проверку Collision к событию Bubbling Lava и назначьте для нее отражатель POmniFlectOl. НА ЗАМЕТКУ Если в одном событии применяется несколько отражателей сталкивающихся час- тиц, их рекомендуется поместить в одной проверке на столкновение, чтобь до- биться более надежных результатов, если не требуются иные выходные события.
Глава 17. Введение в систему частиц Particle Flow 723 Как только частицы сталкиваются с данным отражателем, они удаляются со сцены. Планарные столкновения достаточно надежно защищают от слу- чайного исчезновения частиц. 4. Создайте новый оператор Delete на пустом участке, расположенном спра- ва от события Bubbling Lava на панели отображения событий. Если ему сопутствует и оператор Display, удалите его. Присвойте вновь созданному событию имя Bubbling Lava Delete (Удаление кипящей лавы). 5. Для удобства связывания обоих событий перетащите квадратик выхода первого события из второй его проверки на столкновение на правую сто- рону блока этого события (рис. 17 35). 6. Свяжите оба события, протянув линию связывания от выхода первого собы- тия (на уровне второй проверки па столкновение) к входу второго события. При перемещении ползунка по временной шкале анимации исчезнувшие было частицы улавливаются планарным отражателем и затем удаляются со сцены. Рис. 17.34. Несколько частиц исчезают из каркаса столкновении
724 Часть VII. Частицы и динамика Рис. 17.35. Создайте новое событие, состоящее из оператора Delete. Перетащите выход первого собы- тия из второй его проверки на столкновение на пра- вую сторону блока этого события | СОВЕТ__________________________________________________________________ Для организации более сложного поведения частиц попробуйте вернуть исче- зающие частицы обратно в основной поток. Для этого отделите оператор Birth от остальных операторов, соединив их сначала с проверкой Send Out, а затем проверку Collision обратно с событием Bubbling Lava. Как следует из приведенного выше упражнения, движение частиц в потоке мо- жет быть ограничено с помощью тех же внешних сил и инструментов столкнове- ния, что и для неуправляемых событиями систем частиц, только в окне Partic е V ew они связаны с конкретными событиями. А теперь, когда движение частиц лавы в основном организовано, их можно связать с составным объектом BlobMesh для последующей визуализации. Составной объект BlobMesh Составной объект BlobMesh весьма полезен для создания жидкостей, особенно в сочетании с частицами. Этот объект позволяет создать метасферическую фор- му, состоящую из ряда сфер, на основании полученного экземпляра геометриче- ской формы, вспомогательных объектов или частиц. При этом сферы соединя- ются в однородную массу, плотно сопрягаясь друг с другом. Именно такой объект вам и предстоит создать в следующем упражнении. 1. Перейдите к окну вида сверх}7 и создайте объект BlobMesh, щелкнув сначала на кнопке Geometry из панели Create, а затем выбрав категорию Compound Objects (Составные объекты) из расположенного ниже нее раскрывающегося списка и щелкнув на кнопке BlobMesh Местоположение объекта BobMesh особого значения не имеет, поскольку он размещает метасферы в зависимо-
Глава 17. Введение в систему частиц Particle Flow 725 сти от положения объектов, указанных в списке Blob Ob ects (Каплевидные объекты) из свитка Parameters данного составного объекта. Параметром Size объекта BlobMesh можно пренебречь, поскольку при ис- пользовании частиц размеры метасфер определяются размерами частиц. 2. Уменьшите приблизительно до 0,35 значение параметра Tension (Натяжение), чтобы сделать менее четко очерченной формируемую по- верхность. Параметры из области Evaluation Coarseness (Грубость оценки) определя- ют степень детализации получаемого в итоге каркаса как в видовых окнах, так и во время визуализации. Для того чтобы добиться плавной анимации объекта BlobMesh, рекомендуется оставить значение 3,0 параметра Render или же немного уменьшить его. А значение параметра Viewport можно уве- личить, т.е. огрубить изображение каркаса данного объекта в видовых ок- нах таким образом, чтобы оно обновлялось быстрее. 3. Для того чтобы использовать сформированный ранее поток частиц и соз- дать метасферы, щелкните на кнопке Add в свитке Parameters объекта BlobMesh и выберите объект PF Source 01. Кнопка Pick позволяет вы- брать объект непосредственно в видовом окне, однако сделать это будет немного труднее, поскольку для создания метасфер подходит практически любой объект, находящийся на сцене (рис. 17.36). Рйс. 17.36. Введите источник частиц PF Source 01 в список Blob Objects, чтобы сформиро- вать метасферы вокруг частиц
726 Часть VII. Частицы и динамика Переместите ползунок по временной шкале анимации, чтобы понаблюдать за формированием каплевидного объекта вокруг порождаемых частиц в кратере вулкана. Внешне кипящая лава выглядит пока что не совсем вер- но. Ее геометрическая форма, по-видимому, свободно парит внутри жерла вулкана, а не заполняет его полость. Для этой цели ниже будет создан вто- рой каплевидный объект. 4. Перейдите к окну вида сверху и создайте в центре вулкана плоскость разме- рами 75x280. 5. Перейдите к окну вида из камеры и переместите вновь созданную плос- кость вверх по оси Z, расположив ее чуть ниже излучателя частиц, т.е. при- близительно в точке координат 125 по оси Z (рис. 17.37). Рис. 17.37. Расположите плоскость чуть ниже излучателя частиц А теперь необходимо создать на данной плоскости неподвижное облако из частиц, чтобы затем заполнить его дополнительными метасферами. 6. Выделите операторы Birth, Shape и Display внутри события Bubbling Lava в окне Particle View и скопируйте их, щелкнув правой кнопкой мыши на пустом участке и выбрав команду Paste Instanced (Вставить полученный экземпляр) из всплывающего контекстного меню, либо нажав клавишу <Shift>, перетащив курсор и выбрав вариант Instance в открывшемся диало- говом окне Все три оператора появятся внутри нового события, где они выделены курсивом указывающим на то, что это полученные экземпляры. Копирование экземпляров операторов позволяет изменять число порож- даемых частиц и их внешний вид путем правки любых (скопированных или исходных) операторов.
Глава 17. Введение в систему частиц Particle Flow 727 7. Присвойте новому событию имя Pool Base (Основание пласта лавы). Положение этих частиц еще не было определено, поэтому присоедините оператор Position Object к событию Pool Base. 8. Введите объект Planed в список Emitter Objects (Объекты-излучатели) на панели параметров оператора Position Object. 9. Для того чтобы порождаемые частицы собирались вместе не ближе, чем на расстоянии 20 единиц, определяемом диаметром метасфер, установите сна- чала флажок Separation (Разделение), а затем значение параметра Distance (Расстояние) в области Location на панели параметров оператора Position Object. 10. Свяжите выход события PF Source 01с входом события Pool Base для порождения новых частиц (рис. 17.38). 02 (Geometry) Postion Object 01 (Planed ) Pool Bate ? Blip! 02 (At 0 ТЛ0) Shape 02 (Sphere) ftijbhng Lava n Birt/iO1(AtOT.5O) Posttoo Icon 01 (Surface) Speed 01 (Along Icon Arrow) Shape 01 (Sphere) Disptay 01 (Geometry) Force 01 (GravityOI) Colston 01 (UDeflectorD!) >> Colston 02 (POnrfTectOI) Рис. 17.38. Свяжите источник частиц PF Source с но- вым событием, чтобы породить новые частицы Внешний вид лавы сразу же изменится, поскольку на плоскости основания пласта лавы формируются неподвижные частицы, заполняющие этот пласт (рис. 17.39). Для включения и выключения этого эффекта щелкните на лампочке, расположенной в строке заголовка события Pool Base, 11. Изображение кратера вулкана в окне каркасного вида становится довольно запутанным из-за перекрытия сферических частиц и объекта BlobMesh. Для того чтобы изменить внешний вид частиц в видовом окне, выделите один из операторов Display и выберите вариант Ticks (Отметки) из раскры- вающегося списка Туре на панели параметров данного оператора
728 Часть VII. Частицы и динамика Рис. 17.39. Пласт лавы, заполняющийся неподвижными частицами 12. Откройте редактор материалов, выберите материал Lava и назначьте его для объекта BlobMeshOl. Назначение этого материала для источника час- тиц PF Source ничего не даст, поскольку частицы визуализируются, исходя из геометрической формы и материалов объекта BlobMesh. 13. Для лавы необходимо назначить координаты проецирования, поэтому примените к объекту BlobMeshOl модификатор UVW Мар со сферическим типом проецирования (Spherical) (рис. 17.40). НА ЗАМЕТКУ Применение материалов в объектах BlobMesh носит несколько ограниченный характер вследствие того, что геометрическая форма метасфер претерпевает значительные изменения. При этом нельзя ни привязать материалы к конкрет- ной метасфере, ни применить разные материалы к отдельным метасферам, кро- ме как использовать такие стандартные методы смешения материалов, как В end и Top/Bottom По этим причинам объекты BlobMesh в большей степени пригодны для применения материалов с типичной окраской, чем материалов с характер ными рисунками текстуры.
Глава 17. Введение в систему частиц Particle Flow 729 Рис 17.40. Лава, полученная из объекта BlobMesh, с соответствующим материалом В приведенном выше упражнении каркас отображения пласта лавы был полу- чен с помощью составного объекта BlobMesh, связанного с конкретными собы- тиями в потоке частиц. А теперь, когда создание лавы практически завершено, ее необходимо сделать кипящей, породив новый ряд частиц из того же самого ис- точника. Поднимающиеся вверх пузырьки газа Основным окружением для кипящей лавы, разумеется, служат участки с под- нимающимися вверх пузырьками перегретого газа. В первом упражнении по соз- данию таких пузырьков вокруг лавы будут порождены случайно возникающие крупные метасферы, которые поднимаются вверх, набухают и в конечном итоге порождают каркасные пузырьки. 1. Перейдите к окну Particle View, выделите пять первых операторов в событии Bubbling Lava (Birth, Position Icon, Speed и Display) и скопируйте их в новое событие, выбрав вариант Сору в открывшемся диалоговом окне, поскольку изменить потребуется лишь некоторые из этих операторов. 2. Присвойте новому событию имя Big Bubble (Большой пузырек) и свяжи- те его с событием PF Source 01 (рис. 17 41).
730 Часть VII. Частицы и динамика Рис. 17.41. Создайте путем копирования операторов новое событие зарождения частиц 3. Внесите в оператор Birth поправки, чтобы в целом излучалось 5 частиц с нулевого по 350-й кадр. 4. Увеличьте скорость частиц (Speed) до 10 единиц в секунду, а отклонение скорости (Variation) установите равным нулю на панели параметров опера- тора Speed. Впоследствии отклонение скорости можно увеличить, но для отладки скорост ь удобнее сохранить постоянной. 5. Для того чтобы новые частицы не были заметны в сцене сразу, уменьшите до 10 единиц значение параметра Size на панели параметров оператора Shape. Таким образом, порождаемые частицы первоначально будут доста- точно мелкими, чтобы их не было заметно на поверхности лавы. После того как частицы пузырьков газа будут порождены, их размеры при- дется увеличить, что и будет сделано в следующем событии во избежание конфликта с оператором Shape текущего события. 6. Присоедините проверку Send Out к событию Big Bubble. Эта проверка всегда дает истинный результат. Иными словами, все частицы из данного события передаются следующему, связанному с ним событию. 7. Создайте новый оператор Scale ниже события Big Bubble. Присвойте вновь созданному событию имя Big Bubble Grow (Рост крупного пузырь- ка) и свяжите его вход с выходом события Big Bubble. 8. Выберите вариант Relative Successive (Относительное последовательное масштабирование) из раскрывающегося списка Туре на панели параметров оператора Scale. При этом размеры частиц изменяются в процентах до тех пор, пока они остаются внутри события. 9. Поднимающийся вверх пузырек газа должен расширяться по оси Z в мень- шей степени, чем по осям X и Y, чтобы точнее соединиться с остальными
Глава 17. Введение в систему частиц Particle Flow 731 метасферами. Поэтому сбросьте флажок Constrain Proportions (Соблюсти пропорции) в области Scale Factor (Масштабный коэффициент) на панели параметров оператора Scale. 10. Установите следующие значения в полях из области Scale Factor: X = 103%, Y - 103%, Z = 101%. На первый взгляд, это несущественные изменения мас- штаба по всем трем осям, но если они происходят постоянно, их действие носит накопительный характер. 11. Пузырек газа должен оставаться в текущем событии до тех пор, пока он не достигнет требуемого размера. Поэтому присоедините к данному событию проверку Scale Test. Выберите Z в качестве проверяемой оси из раскры- вающегося списка Axis и установите значение 150% параметра Test Value % (Проверяемое значение в процентах) на панели параметров проверки Scale Test. Таким образом, когда изменение первоначального размера частицы, входящей в данное событие, по оси Z достигает 150%, она переда- ется следующему событию (рис. 17.42). Рис. 17.42. Создайте небольшое со- бытие для постепенного роста частиц При медленном перемещении ползунка по временной шкале апимации объ- ект BlobMesh постепенно разбухает по мере увеличения размера большого пузырька газа, хотя в отсутствие целевого события это изменение размера будет продолжаться до бесконечности (рис. 17.48). | СОВЕТ_________________________________________________________________ Если пе вместить ползунок по временной шкале анимации слишком далеко, при условии что увеличение размера объекта BlobMesh происходит неконтролируе- мым образом, вычислительные ресурсы процессора могут быть исчерпаны и роизойдет аварийный отказ 3ds max.
732 Часть VII. Частицы и динамика Рис. 17.43. Увеличение размера большого пузырька газа будет продолжаться до тех пор, пока проверка Scale Test не передаст эту частицу новому событию 12. Введите новый оператор Speed ниже события Big Bubble Grow. Присвой- те вновь созданному событию имя Big Bubble Stop (Прекращение роста большого пузырька) и свяжите его вход с выходом предыдущего события. 13. Установите значение 2 параметра Speed, чтобы существенно замедлить движение данной частицы. Как только она достигнет данного события, ее размер не будет увеличиваться. Теперь данный пузырек газа необходимо сократить и удалить через не- сколько кадров анимации. 14. Присоедините проверку Age Test к событию Big Bubble Stop и уста- новите значение 15 кадров ее параметра Test Value, оставив без изменения устанавливаемое по умолчанию значение 5 кадров параметра Var ation. 15. Выберите вариант Event Age (Возраст в событии) из раскрывающегося списка Туре на панели параметров проверки Age Test, чтобы проверка частиц на возраст начиналась лишь после того, как они будут присутство- вать в текущем событии в течение 15±5 кадров. По умолчанию проверка частиц на возраст начинается с момента их зарождения (рис. 17.44).
Глава 17. Введение в систему частиц Particle Flow 733 Рис. 17.44. В новом событии рост пузырька газа прекращается, его движение замедляется, и он остается на сцене еще в течение 15 ± 5 кадров Как только частица пройдет проверку на возраст, она будет передана собы- тию, в котором она сокращается. 16. Скопируйте оператор Speed из события Big Bubble Stop в новое собы- тие и присвойте последнему имя Big Bubble Shrink (Сжатие большого пузырька). 17. Свяжите вход этого события с выходом предыдущего события (через про- верку Аде Test). 18. Установите значение -10 параметра Speed, чтобы вернуть большой пузы- рек газа назад в метасферическую массу лавы. 19. Присоедините к данному событию оператор Scale, выбрав тип масштаби- рования частиц Relative Successive. 20. Установите масштабный коэффициент 99% по всем трем осям в области Scale Factor на панели параметров оператора Scale. При перемещении ползунка по временной шкале анимации пузырек газа постепенно растет и поднимается вверх, останавливается на краткое мгно- вение, а затем падает обратно вниз и сжимается. 21. И это сокращение размера частицы может происходить до бесконечности, если не прервать его соответствующей проверкой. Поэтому присоедините еще одну проверку Scale Test, установите для нее режим истинной про- верки частиц, если размер частицы меньше проверяемого значения (Is Less Than Test Value), и введите значение 25% в поле Test Value на панели пара- метров данной проверки.
734 Часть VII. Частицы и динамика 22. Свяжите эту проверку с новым событием, содержащим оператор Delete, присвоив вновь созданному событию имя Big Bubble Delete (Удаление большого пузырька) (рис. 17.45). B*th03(0-3S0TS) Posikm Icon 02 (Surface Вц Bubble 9 Spaad 02 (Along Icon Arrow) Shape 03 (Sphere) Display 03 (Ticks) Send Out 01 (AD Bubble Stop 9 Speed 03 (Along Icon Arrow) Рис. 17.45. После ввода событий для сжатия и по- следующего удаления большого пузырька газа по- следовательность событий, связанных с формиро- ванием этой частицы, завершается Display 05 (Ticks) Age Test 01 (EventMStS) Строго говоря, сжатие частицы можно было бы и не останавливать, поскольку ее размер все равно бы уменьшился до нуля, на чем ее расчеты прекратились бы. С другой стороны, движение частицы можно было бы остановить, установив ну- левое значение параметра Speed. Но для того чтобы не затягивать расчеты пото- ка частиц, рекомендуется, если это возможно, удалять ненужные частицы Как было показано выше многочисленные события зарождения частиц могут быть связаны с единственным источником частиц PF Source, причем каждое из них со своей анимацией и визуализированным видом частиц. Но на этом эффект поднимающихся вверх пузырьков газа еще не завершен. Поверх большого пу- зырька газа должен быть порожден оживляемый каркас, фактически воспроизво- дящий движение улетучивающегося газа
Г лава 17. Введение в систему частиц Particle Flow 735 Порождение оживляемой геометрической формы Находящийся на сцене объект BubblePop geometry представляет собой простой оживляемый каркас приблизительно такой же формы, как и лопающий ся большой пузырек газа. В следующем упражнении этот каркас будет порожден в оживляемой и неоживляемой форме для окончательной доводки эффекта под- нимающегося вверх пузырька газа (рис 17.46-17.48). 1. Вставьте проверку Spawn в событии Big Bubble Stop. Эта проверка должна непременно предшествовать проверке Age Test, которая, в свою очередь, должна быть последним действием в данном событии. По умолчанию в результате проверки Spawn внутри события формируется лишь одна частица, имеющая ту же скорость и направление движения, что и исходная (родительская) частица. 2. В данном случае порождение пузырька газа необходимо остановить, поэто- му установите значение 0% параметра Inherited % (Наследуемая скорость в процентах) в области Speed на панели параметров проверки Spawn. 3. Перетащите выход события Big Bubble Stop, находящий слева от про- верки Spawn, вправо от этой проверки, чтобы затем связать его с входом нового события. Рис 17.46 В начале анимационной последовательности объект BubblePop geometry имеет простую сферическую форму
736 Часть VII. Частицы и динамика Рис. 17.47. Оживляемый пузырек газа очень быстро лопается Рис. 17.48. Пузырек газа практически исчезает в кадрах 0-15
Глава 17. Введение в систему частиц Particle Flow 737 4. Создайте оператор Shape Instance для нового события справа от собы тия Big Bubble и присвойте этому событию имя Popping Bubble Spawn (Порождение лопающегося пузырька). Оператор Shape Instance создает формы частиц, исходя из полученного экземпляра геометрической формы, аналогично частицам типа Instanced Geometry (Полученный экземпляр геометрической формы) в пеуправляе мых событиями системах. 5. Свяжите с данным событием проверку Spawn на выходе события Big Bubble Stop. 6. Щелкните па кнопке из области Particle Geometry Object (Объект геометри- ческой формы частицы) на панели параметров оператора Shape Instance и воспользуйтесь диалоговым окном, которое открывается после нажатия клавиши <Н>, чтобы выделить объект BubblePop geometry. 7. Уменьшите до 50% значение параметра Scale % на той же панели параметров, чтобы сделать данный пузырек газа небольшим в начале анимации (рис. 17.49). Рис. 17.49. Когда большой пузырек газа прекращает свое существование, он порождает лопающийся пу- зырек, для формирования которого служит получен- ный экземпляр геометрической формы А теперь посмотрим, как данная система частиц визуализируется, особенно в сочетании с объектом BlobMesh. По умолчанию все события из потока час- тиц в выделенных объектах PF Source используются в совокупности мета- сфер. Если же частицы из полученного экземпляра геометрической формы применяются в сочетании с метасферами, это может привести к непредска- зуемым результатам, а в данном случае — к неверном}' внешнему виду.
738 Часть VII. Частицы и динамика 8. Выделите объект BlobMesh, перейдите к панели Modify и сбросьте флажок All Particle Flow Events (Все события из потока частиц) в свитке Particle Flow Parameters (Параметры потока частиц). Объект BlobMesh исчезнет в видо- вом окне, поскольку для пего отсутствуют выделенные объекты. 9. Щелкните на кнопке Add в том же свитке, чтобы открыть диалоговое окно Add Particle Flow Events (Ввод событий из потока частиц). В этом окне пе- речислены все события из потока частиц, назначенные в качестве капле- видных объектов. Введите следующие события: Bubbling Lava, Pool Base, Big Bubble Grow, Big Bubble Stop и Big Bubble Shrink (рис 17.50). Именно в этот момент и становится совершенно очевидно, на- сколько важно присваивать объектам осмысленные имена. События, кото- рые не связаны с формированием метасфер, например события для удале- ния частиц, вводить в этот список не нужно. ььоьгл ж Рис. 17.50. Вместо всех событий из потока частиц в объекте BlobMesh используются только выделенные Переместите ползунок по временной шкале анимации. Метасферы лавы не меняют свой прежний вид, а порождаемая из геометрической формы час- тица все еще отсутствует в видовых окнах. 10. Если вернуться к событию Popping Bubble Spawn, то станет ясно, почему упомянутая выше частица не появляется в видовых окнах. Объясняется это тем, что в раскрывающемся списке Туре на панели параметров оператора Display выбран вариант Ticks. Выберите вместо него вариант Geometry, и тогда порождаемые из геометрической формы частицы будут появляться на протяжении всей анимации, хотя они пока еще не лопаются (рис. 17.51).
Глава 17. Введение в систему частиц Particle Flow 739 Рис. 17.51. Теперь в потоке частиц из геометрической формы и метасфер образуются отдельные частицы 11. Присоедините к текущему событию оператор Speed и установите значение 450 его параметра Speed. Данный оператор действует в течение двух кад- ров и используется для расположения геометрической формы пузырька га- за у верхнего края метасфер. 12. Присоедините к текущему событию оператор Age Test и установите значе- ние 2 его параметра Test Value, а также нулевое значение параметра Variat on. Как только в данном событии изменится положение пузырька газа, он будет передан следующему событию. В итоге полученный экземпляр геометриче- ской формы начнет расти, увеличиваясь в размерах. 13. Выделите событие Popping Bubble Spawn и скопируйте его, выбрав ва- риант Сору в открывшемся диалоговом окне. Присвойте вновь созданному событию имя Popping Bubble Grow (Рост лопающегося пузырька). 14. Свяжите новое событие с предыдущим через проверку Age Test. 15. Пузырек газа должен расти с умеренной скоростью, поэтому установите в его операторе Speed скорость 35 единиц в секунду. 16. Вставьте оператор Scale перед последней проверкой на возраст, выбрав вари- ант Relative Successive из раскрывающегося списка Туре и установив в полях из области Scale Factor на панели параметров дагпюго оператора следующие зна- чения: X = 105%, Y = 105%, Z = 102%. (Ф гажок Constrain Proportions должен быть сброшен.)
740 Часть VII. Частицы и динамика 17. Дайте этому пузырьку возможность дольше расти и подниматься вверх, ус- тановив значение 10 параметра Test Value на панели параметров проверки Age Test (рис. 17.52). Popping Bubble Spawn 9 Shape Instance 01 (Bubble Display 08 (Geometry) Speed 05 (Along Icon Arrow) Age Test 02 (Age>2) Popping алые Grow Shape instance 02 (ЕЭДЫв Display 09 (Geometry) Speed 08 (Along icon Arrow) Scale 03 (Relative Success Age Test 03 (Age>10) Рис. 17.52. После порождения лопающегося пузырька следующее событие вызывает его рост и подъем вверх в течение 10 кадров При перемещении ползунка по временной шкале анимации порожденный из геометрической формы пузырек газа начнет расти без остановки, однако в визуализированном варианте сцены он пока еще отсутствует. Для его по- явления требуется оператор Render. | НА ЗАМЕТКУ_________________________________________________________ Оператор Render передает средству визуализации внешний вид частиц. Без не- го частицы могут появляться только в видовых окнах. Исключение из этого пра- вила составляет визуализация частиц с помощью другого объекта, в том числе и составного объекта BlobMesh. 18. Введите оператор Render в событие Popping Bubble Grow (его положе- ние в блоке данного события особого значения не имеет). Переместите ползунок временной шкалы анимации ^о того момента, когда частицы, порожденные из геометрической формы, появятся в видовых ок- нах (рис. 17.53). Если визуализировать неподвижное изображение сцены, в нем что-то будет явно нс так. В частности, пузырек газа оказывается в ви- зуализированном изображении намного крупнее и выше, чем в видовых ок- нах (рис. 17.54). Причина кроется в разных значениях параметров Render и Viewport из области Integration Step в свитке System Management источ- ника частиц PF Source. По умолчанию расчеты частиц во время визуализации выполняются в два раза чаще (в каждом полукадре — Half Frame), чем при отображении в видо- вых окнах (в каждом кадре — Frame). Поэтому такие операторы, как Speed и Scale, имеют большее влияние при визуализации.
Глава 17. Введение в систему частиц Particle Flow 741 Рис. 17.53. Лопающийся пузырек газа, появляющийся в видовом окне, имеет предполагаемый размер Рис. 17.54. В визуализированном изображении лопающийся пузырек газа вы- глядит иначе из-за разных значений параметров Integration Step
742 Часть VII. Частицы и динамика 19. Выберите вариант Frame из раскрывающегося списка Render в области In- tegration Step. Если теперь визуализировать неподвижное изображение, оно ничем внешне не будет отличаться от изображения в окне вида из ка- меры (рис. 17.55). Рис. 17.55. Лопающийся пузырек газа в визуализированном изображении внеш- не ничем не отличается от такого же пузырька в окне вида из камеры после того, как установлены одинаковые значения параметров Integration Step 20. Выделите событие Popping Bubble Grow и скопируйте его, выбрав вари- ант Сору в открывшемся диалоговом окне. Присвойте вновь созданному событию имя Popping Bubble Pop (Лопание пузырька). 21. Свяжите новое событие с предыдущим через проверку Age Test. 22. В данном событии необходимо воспользоваться анимацией полученного экземпляра геометрической формы. Для этого установите флажок Animated Shape (Оживляемая форма) на панели параметров оператора Shape Instance. 23. Анимация лопающегося пузырька происходит в кадрах 0-15. Ее необходимо синхронизировать с текущим событием, поэтому выберите вариант Event Du- ration (Продолжительность события) из раскрывающегося списка Sync By (Порядок синхронизации) на панели параметров оператора Shape Instance. 24. Для усиления анимации лопающегося пузырька газа установите значение - 25 параметра Speed на панели параметров оператора Speed, чтобы пузы- рек быстро опустился вниз, как только он лопнет.
Глава 17. Введение в систему частиц Particle Flow 743 25. Установите значение 98% в полях из области Scale Factor на панели пара- метров оператора Scale, чтобы пузырек газа сжался, как только он лопнет. Вместо выхода из текущего события по проверке на возраст (Age Test) организуйте выход из него по проверке на масштаб (Scale Test), а затем удалите данную частицу. 26. Выделите проверку Scale Test в событии Big Bubble Shrink и скопи- руйте ее, выбрав вариант Сору в открывшемся диалоговом окне. Поместите ее над проверкой Age Test в конце события Popping Bubble Pop. что- бы заменить ею проверку Age Test. Установите значение 10% параметра Test Value на панели параметров оператора Scale. 27. Введите событие для удаления частиц ниже события Popping Bubble Pop и присвойте ему имя Popping Bubble Delete (Удаление лопающего- ся пузырька). Свяжите его с предыдущим событием через проверку Scale Test (рис. 17.56). Shape Instance 01 (Bubble... Display 08 (Geometry) Speed 05 (Along Icon Arrow) Age Test 02 (Age>2) Shape Instance 02 (Bubble.. Display 09 (Geometry) Speed 06 (Along Icon Arrow) Scale 03 (Relative Success! Render 01 (Geometry) 'S'SEETSI Display 10 (Geometry) Speed 07 (Along Icon Arrow) Scale 04 (Refeiive Success!... Render 02 (Geometry) Popping Bubble Spawn ? ling Bubble GrffiV? Age Test 03 (Age>10) Shape Instance 03 (Bubble BUabte Delete? Delete 03 (А») Deplay 11 (Ticks) Рис. 17.56. После ввода событий для лопания и удаления лопающе ося пузырька газа по- следовательность событий, связанных с фор- мированием этой частицы, завершается
744 Часть VII. Частицы и динамика Используя полученный экземпляр геометрической формы, в приведенном выше упражнении удалось создать эффект лопающегося пузырька, который авто- матически зарождается над поднимающимися вспучиваниями кипящей лавы. Ло- пающиеся пузырьки газа целесообразно связать с поднимающимися вспучива- ниями кипящей лавы, поскольку изменения количества или местоположения этих вспучиваний автоматически распространяются и па лопающиеся пузырьки. Эффект разбрызгивания Когда пузырек газа лопается, освобождается энергия и жидкая масса возвра- щается назад в пласт лавы. В следующем упражнении этот эффект будет воспро- изведен путем порождения кольца из капель от лопающегося пузырька. Капли бу- дут сужаться, отдаляясь от кольца. Для этой цели необходимо сначала породить певизуализируемые частицы, формирующие кольцо из капель. 1. Вставьте проверку Spawn в событии Popping Bubble Pop непосредст- венно перед окончательной проверкой Scale Test. Несмотря на то что порождающие (т.е. родительские) частицы будут оставаться в данном собы- тии до тех пор, пока они не пройдут проверку Spawn, по умолчанию поро- ждение произойдет лишь один раз. 2. Увеличьте до 5 значение параметра Offspring # (Число порождаемых час- тиц) при установленном значении 20% параметра Variation па панели пара- метров проверки Scale Test, чтобы ввести случайный фактор в процесс порождения новых частиц. Направление движения частиц, формирующих капли, должно определяться положением лопающегося пузырька газа. Если не установить скорость поро- ждаемых частиц в проверке Spawn, в последующем операторе Speed не уда- стся определить направление их движения от порождающей частицы. 3. Убедитесь в том, что в области Speed на панели параметров проверки Spawn выбрана кнопка-переключатель Inherited %, и установите значение -50 в поле Inherited %, значение 15 в поле Variation и значение 90 в поле Diver- gence (Расхождение). При таком значении параметра Divergence порож- даемые частиц рассеиваются по дуге 90°. СОВЕТ При установке отрицательных знамен и наследуемой скорости прежнее направ- ление меняется на обрат юе еще до изменения скорости в процентах. 4. Создайте новый оператор Shape справа от события Popping Bubble Spawn и присвойте вновь созданному событию имя Generate Trai 1 (Формирование следа). Это событие будет использовано для формирования целого ряда капель, которые будут постепенно уменьшаться в размерах, образуя след и смешиваясь в метасферическую цепочку. 5. Свяжите это событие с предыдущим через упомянутую выше проверку Spawn, предварительно переместив выход события из этой проверки на правый край блока события.
Глава 17. Введение в систему частиц Particle Flow 745 6. Выберите вариант Sphere из раскрывающегося списка Туре и установите значение 2 в ноле Size па панели параметров оператора Shape. 7. Присоедините проверку Spawn к текущему событию. Щелкните па кнопке- переключателе Per Second (В секунду) и установите значение 25 в поле Rate из области Spawn Rate And Amount (Частота и число порождаемых частиц) на панели параметров проверки Spawn. Таким образом, когда акти визируется текущее событие, будет сформировано 25 частиц в секунду (при частоте 30 кадров в секунду по телевизионному стандарту NTSC). 8. Щелкните на кнопке-переключателе Inherited % и установите значение 2 000% в поле Inherited % из области Speed. Благодаря этому капли сразу же приобретают вид правдоподобного рассеяния большой энергии. 9. В данном случае требуется лишь небольшое отклонение скорости, чтобы не разорвать капли, поэтому установите значение 3 параметра Variation в об- ласти Speed. 10. Установите нулевое значение параметра Divergence в той же области, по- скольку даже незначительная произвольность в пути следования частиц способна нарушить их ноток. 11. Сбросьте флажок Restart Particle Age (Восстановить возраст частиц). Это очень важный шаг, поскольку увеличение возраста порождаемых частиц будет впоследствии использовано для анимации их размеров. 12. Частицы, формирующие капли, должны просуществовать лишь около двух третей секунды. В течение этого периода времени будет порождено 14 час- тиц, поэтому присоедините к текущему событию проверку Age Test. Ус таповите значение 2 0 в поле Тest Value, а также нулевое значение в поле Variation на панели параметров данной проверки. 13. Как только частицы, формирующие капли, выполнят свою функцию, их не- обходимо удалить, поэтому создайте новый оператор Delete справа от те- кущего события и присвойте вновь созданному событию имя Delete Gen- erator (Удаление формирующих частиц), а затем свяжите его с предыду щи.м событием через проверку Age Test (рис. 17.57 и 17.58). Следующее событие будет использовано для определения внешнего вида капель и их движения в свободном падении. 14. Создайте новый оператор Scale ниже события Generate Trail и при- свойте вновь созданному событию имя Droplets Trail (След из капель). Свяжите это событие с событием Generate Trail через проверку Spawn. Параметры данного оператора Scale должны быть подвергнуты анима- ции, чтобы постепенно уменьшить размеры старых частиц. Благодаря это- му создается эффект уменьшающегося следа из капель. Следует отметить, что данный эффект масштабирования трудно получить без явной анимации по ключевым кадрам, если только частицы не достигнут определенного возраста в предыдущем событии.
746 Часть VII. Частицы и динамика . Bubble Spawn 9> Shape Instance СИ (Bubble. - S3 Display 08 (Geometry) Speed 05 (Along teen Arrow) ^jbblaGrow 9' Shape Jnstance 02 (Bubble Speed 06 (Along Icon Arrow) Shape stance03 (Bubble.. Display 10 (Geometry) > Age Test 02 (Age>2) J Display 09 (Geometry) Scale 03 Retet ve Success! <_)i Render 01 (Geometry) Age Test 03 (Age>10) Speed 07 (Along Icon Arrow) State 4 (Relive Success! |« Render 02 Geometry) Spawn 02 (Once) Scale Tesl 03 (Scele<9%) Рис. 17.57. Событие Generate Trail фактически порождает капли, после чего частицы, формирующие капли, удаляются Рис. 17.58. Вид порожденных капель до применения силы тяжести и столкновения
Глава 17. Введение в систему частиц Particle F ow 747 15. Перейдите к нулевому кадру и установите значение 190% во всех трех полях из области Scale Factor на панели параметров оператора Scale. 16. Включите режим Auto Key. Перейдите к кадру 20 и установите значение 10% во всех трех полях из области Scale Factor. Выключите режим Auto Key. 17. Выберите вариант Particle Age (Возраст частиц) из раскрывающегося спи- ска Sync By в области Animation Offset Keying (Анимация по ключевым кад- рам со смещением). Благодаря этому анимация масштабного коэффициента для поступающих частиц будет осуществляться в зависимости от их возрас- та, а в данном случае — в зависимости от того, как долго частицы, форми- рующие капли, отдаляются от порождающего их пузырька газа. 18. Выберите вариант Geometry из раскрывающегося списка Туре на панели параметров оператора Display. Копирование этого оператора в виде эк- земпляра в каждое последующее событие для формирования капель дает возможность без труда изменить внешний вид данного эффекта для его предварительного просмотра в видовых окнах. 19. Скопируйте оператор Force и проверку Collision (UDeflectorOl) из исходного события Bubbling Lava и вставьте их в событии Droplets Trail (рис. 17.59). Рис. 17.59. Скопируйте эффекты силы тяжести и столкновения, выбрав соответствующие опера- торы из исходного события 20. Сила тяжести должна воздействовать на капли таким образом, чтобы они падали по дуге, поэтом}' установите значение 150% в поле Influence на пане- ли параметров оператора Force. Теперь капли аккуратно падают по дуге в кратер вулкана после первоначального выброса (рис. 17.60). При столкновении со стенками кратера капли должны прилипнуть к ним на несколько мгновений, а затем стечь обратно в кратер. 21. Создайте новый оператор Speed ниже события Droplets Trail и при- свойте вновь созданному событию имя Droplets Stick (Прилипание ка- пель). Установите нулевое значение параметра Speed этого оператора. Свяжите данное событие с предыдущим через проверку Collision.
748 Часть VII. Частицы и динамика Рис. 17.60. Благодаря заметному действию силы тяжести капли лавы падают обрат- но в кратер вулкана 22. Присоедините к текущему событию проверку Age Test, установив значе- ние 10 ее параметра Test Value, а также значение 3 параметра Variation, чтобы сделать паузу приблизительно на треть секунды. 23. Создайте новый оператор Speed By Surface ниже события Droplets Stick и присвойте вновь созданном}' событию имя Droplets Slide (Стекание капель). Установите значение 0,23 параметра Speed данного опе- ратора. Свяжите данное событие с предыдущим через проверку Age Test 24. Щелкните на кнопке Add, расположенной ниже списка Surface Geometry (Геометрическая форма поверхности) на панели параметров оператора Speed By Surface, и выберите каркасный объект volcano_collision. (Если этот объект был ранее скрыт, его необходимо отобразить на сцене перед тем, как выделять.) Возможно, выделить данный объект будет проще с помощью кнопки By List также расположенной ниже списка Surface Ge- ometry Выберите вариант Parallel То Surface (Параллельно поверхности) из раскрывающегося списка в области Direction (Направление) на той же панели параметров. Благодаря такой настройке параметров частицы будут присоединены к поверхности выбранного объекта. 25. Скопируйте оператор Force и проверку Collision из события Droplets Trail и введите их в событии Droplets Stick. Стекающие капли долж ны подвергаться воздействию силы тяжести лишь в незначительной степе- ни, поэтому установите значение 3% в поле Influence на панели параметров оператора Force.
Глава 17. Введение в систему частиц Particle Flow 749 26. Скопируйте проверку Collision (POmniFlectOl) из исходного события Bubbling Lava и вставьте ее в нижней части блока текущего события Благо- даря этом)'улавливаются капли, избегающие столкновения, когда они стекают. 27. Направьте частицы после их истинной проверки к новом)' событию для удаления. Присвойте новому событию имя Droplets Delete (Удаление капель) (рис. 17.61). Рис. 17.61. Капли, избегающие столкновения со стенками кратера, подлежат удалению На данном этапе капли по-прежнему отображаются в видовых окнах как сферы, а не метасферы, поскольку они еще не связаны с составным объек том BlobMesh (рис. 17.62). 28. Прежде чем визуализировать капли в виде метасфер, их необходимо ввести в составной объект BlobMesh. Для этого введите в список Part’c е OW Events из свитка Particle Flow Parameters данного объекта следующие собы- тия: Droplets Trail, Droplets Stick и Droplets Slide (рис. 17 63).
750 Часть VII. Частицы и динамика Рис. 17.62. Сначала капли отображаются в видовых окнах как сферы Рис. 17.63. Как только капли будут связаны с составным объектом BlobMesh, они появятся в видовых окнах в форме метасфер
Г лава 17. Введение в систему частиц Particle Flow 751 По мере стекания капель вниз по стенкам кратера они вновь поглощаются массой лавы. Следовательно, вводить событие для удаления этих частиц не нуж- но, поскольку они не настроены на столкновение со стенками кратера. Они сами сползут под действием силы тяжести к установленном}' ранее отражателю РОт- niFlect и все рано будут далее направлены на удаление. Эффект размазывания В следующем упражнении капли будут дополнены эффектами ударного и теку- чего размазывания с помощью оператора Shape Mark, который выравнивает формы частиц по поверхности целевого объекта. 1. Создайте оператор Shape Mark справа от события Droplets Stick и при- свойте вновь созданном}' событию имя Initial Smear (Первоначальное размазывание). Это событие будет использовано для ударного размазывания при первом соприкосновении капель со стенками кратера вулкана. 2. Щелкните на кнопке из области Contact Object (Объект соприкосновения) на панели параметров оператора Shape Mark и выберите каркасный объ- ект volcano, но не каркасный объект volcano_collision, который рас- полагается на несколько единиц выше визуализируемого каркаса вулкана, чтобы было видно больше метасферических капель. НА ЗАМЕТКУ На данном этапе правка потока частиц может осуществляться с заметными за- держками, особенно если ползунок установлен слишком далеко на временной шкале анимации. Для сокращения перерасчетов потока частиц после каждой его правки рекомендуется перейти к нулевому кадру анимации перед тем, как вно- сить в него изменения или же временно отключить данную систему частиц. 3. Выберите вариант Particle Z (Ориентация частиц по оси Z) из раскрываю- щегося списка Align to (Вид выравнивания) в области Oriental on на панели параметров оператора Shape Mark, чтобы расположить форму двухмер- ной частицы вровень с поверхностью геометрической формы вулкана. При этом локальная ось Z формы частицы располагается перпендикулярно к данной поверхности. 4. Установите значение 45 в полях Width и Length из области Size. 5. Параметр Surface Offset (Смещение поверхности) определяет степень уда- ленности формы частицы от поверхности целевого объекта. Устанавли- ваемое по умолчанию значение 0,001 этого параметра подходит для очень гладких поверхностей, а для шероховатой поверхности вулкана достаточно установить значение 2, чтобы на ней оставалась видимой большая часть формы частицы. 6. Выберите вариант Geometry из раскрывающегося списка Туре на панели параметров оператора Display в текущем событии, чтобы в видовых окнах появились очертания частицы при ее порождении. 7. Для управления порождением размазывающейся частицы вставьте провер- ку Spawn в событии Droplets Stick непосредственно перед проверкой
752 Часть VII. Частицы и динамика Age Test. Устанавливаемые по умолчанию значения параметров данной проверки можно не изменять (даже в области Speed), поскольку действие капель остановлено еще до этого оператора. 8. Свяжите проверку Spawn с событием Initial Smear (рис. 17.64). Рис. 17.64. Как только капли прилипнут к стенкам кратера вулкана, в результате проверки Spawn сформируется частица ударного размазывания Если переместить ползунок временной шкалы анимации к первому кадру в ко- тором капли соударяются с поверхностью кратера вулкана (т.е. приблизитель но к кадру 90), то можно заметить появление квадратных очертаний частицы в каждом кадре, где капли прилипают к стенкам кратера (рис. 17 65). Рис. 17.65. Частицы ударного размазывания отображаются в видовых окнах как двухмерные прямоугольные формы Размазываемые частицы пока еще не визуализируются, поскольку у них пег ни материалов, ни визуализируемой геометрической формы.
Глава 17. Введение в систему частиц Particle Flow 753 9. Для того чтобы ввести материал, присоедините к событию Initial Smear оператор Material Dynamic. Этот оператор поддерживает ожив- ляемые материалы, анимацию которых можно синхронизировать с изме- нением возраста частиц. 10. Щелкните на кнопке из области Assign Material (Назначение материала) па па- нели параметров оператора Material Dynamic, а затем щелкните на кнопке- переключателе Mtl Ei tor (т.е. редактор материалов) из области Browse From в открывшемся окне Material/Map Browser. Выберите в этом же окне материал Initial Smear и щелкните на кнопке ОК. Анализ данного материала в редакторе материалов показывает что активная его часть сосредоточена в канале проецирования непрозрачности (Opacity). На позиции карты непрозрачности назначена градиентная карта, опреде- ляющая непрозрачность данного материала, а на позиции третьего образца цвета градиента (Color #3) в этой карте назначена карта Particle Age, управ- ляющая белой (видимой) частью градиента. (В двух других образцах оставлен черный (непрозрачный) цвет, чтобы не визуализировать края текстуры.) Карта Particle Age изменяет конечный результат в зависимости от возраста частицы, выражаемого в процентах. Первый цвет градиента (или назначае- мый подматериал) выбирается при зарождении частицы, т.е. когда ее общий возраст составляет 0%. Когда частица достигает возраста, обозначаемого па- раметром Аде #1 карты Particle Аде, начинается постепенный переход ко второму цвету градиента (или подматериалу). А когда частица достигает воз- раста, обозначаемого параметром Аде #2 карты Particle Аде, ее внешний вид полностью определяется вторым цветом градиента. И наконец, когда частица достигает возраста, обозначаемого параметром Аде #3 карты Particle Аде, ее внешний вид определяется третьим цветом градиента. Срок жизни частицы, используемый в карте Particle Age, определяется в том же событии из потока частиц, где выполняется оператор Material Dynamic. Для большей надежности после данного оператора внутри текущего события следу- ет ввести оператор Delete с выбранным режимом By Particle Age (По возрасту частицы). Благодаря этом}' в потоке частиц становится точно известно о сроке жизни данной частицы, а в карте Particle Age ее возраст будет соответственно использоваться в процентах от этой величины. Если же срок жизни частицы требуется продлить за пределы текущего со- бытия, введите проверку Age Test или другую проверку, чтобы передать частицу следующему событию. В данном случае срок жизни частицы, указы- ваемый для карты Particle Age, определяется с помощью оператора Delete, но сама частица при этом не удаляется. НА ЗАМЕТКУ Оживляемые материалы применяются в частицах самыми разными методами, в том числе с помощью карт Particle Age, Particle MB ur и оживляемых текстур из файлов с расширением . if 1 (файл со списком изображений) или с расширени- ем . avi. Простого изменения материалов по ключевым кадрам в редакторе ма- териалов для этого недостаточно.
754 Часть VII. Частицы и динамика 11. Щелкните па кнопке-переключателе By Particle Age и установите значение 120 кадров в поле Life Span (Срок жизни) из области Remove на панели па- р шетров оператора Delete. 12. В отличие от метасферических частиц, визуализируемых с помощью состав- ного объекта BlobMesh, такие частицы не визуализируются без оператора Render, поэтому присоедините данный оператор к текущему событию 1- ели визуализировать в окне вида из камеры кадр, находящийся ближе к кон- цу анимации, например кадр 240, с которого начинается порождение разма- зывающихся частиц, то эти истицы можно увидеть на стенках кратера вул- кана (рис. 17.66). Подобное размазывание медленно исчезает в течение 150 кадров анимации в соответствии с настройкой параметров карты Particle Age. Вторая размазывающаяся частица должна последовать за каплями лавы, стекающими вниз по стенкам кратера вулкана. Рис. 17.66. Ударное размазывание, визуализированное с помощью двухмерных прямоугольных частиц выровненных по геометрической форме кратера вулкана 14. Скопируйте событие Initial Smear, выбрав вариант Сору в открывшем- ся диалоговом окне. Расположите скопированное событие ниже исходного и присвойте ему имя Smear Shape (Форма размазывания). 15. Вставьте проверку Spawn внутри события Droplets Slide непосредст- венно перед завершающей проверкой Collision. Свяжите выход данного события через проверку Spawn с входом события Smear Shape. 16. Щелкните на кнопке-переключателе By Travel Distance (По пройденному расстоянию) и установите значение 15 в поле Step Size (Величина шага на панели параметров проверки Spawn. Таким образом, излучение очередной
Глава 17. Введение в систему частиц Particle Flow 755 частицы происходит через каждые 15 единиц расстояния, пройденного предыдущей, порождающей частицей. 17. Удлините размазывающуюся частицу, уменьшив до 20 значение параметра Width оператора Shape Mark внутри события Smear Shape. 18. Для данного эффекта имеется другой материал. Назначьте материал Sliding Smear (Текущее размазывание) на панели параметров оператора Material Dynamic. 19. Данный эффект должен исчезать быстрее, поэтому уменьшите до 100 кад- ров значение параметра Life Span оператора Delete. 20. Размазывание уместно дополнить сжатием размазывающихся частиц, по- этом}' вставьте оператор Scale внутри текущего события непосредственно перед оператором Delete. 21. Выберите вариант Relative Successive из раскрывающегося списка Туре и установите значение 99% во всех трех полях из области Scale Factor на папели параметров оператора Scale. На каждом шаге интегрирования размер частиц должен уменьшаться на 1% (рис. 17.67). Рис. 17.67. Второе событие размазывания служит для воспроизведения текучего размазывания по ме- ре стекания капель вниз по стенкам кратера вулкана Однако при перемещении ползунка по временной шкале анимации ничего подобного не происходит. Размазывающиеся частицы не сжимаются, по- скольку действие оператора Scale отменяется опера ором Shape Mark, который также определяет размеры частиц. 22. Выделите в текущем событии четыре последних оператора (Material Dy- namic. Scale, Delete и Render) и перетащите их вниз па место нового события. Присвойте вновь созданному событию имя Smear Trail (След от размазывания).
756 Часть VII. Частицы и динамика 23. Свяжите оба события, присоединив проверку Send Out в конце события Smear Shape и связав ее с входом события Smear Trail (рис. 17.68). Рис 17.68. После переноса оператора Scale в но- вое событие его действие уже не отменяется опе- ратором Shape Mark Если теперь переместить ползунок по временной шкале анимации, размазы- вающиеся частицы будут постепенно сжиматься. А поскольку размазывание раз- делено на два отдельных события, противоречие между упомянутыми выше пере- крывающимися операторами устраняется (рис. 17.69). Рис. 17.69. Теперь капли исчезают на участках ударного и текучего размазывания
Глава 17. Введение в систему частиц Particle Flow 757 Эффект свечения В качестве завершающего штриха к сцене с извержением вулкана в следующем упражнении будет введен эффект свечения с использованием окна Video Post. А поскольку лава визуализируется с помощью составного объекта BlobMesh, данный эффект применяется к метасферическому каркасу, а не к отдельным частицам. НА ЗАМЕТКУ В системе частиц Particle Flow допускается визуализация эффектов, применяе- мых на уровне событий, а не всей системы частиц в целом. Для присваивания идентификационных номеров объектов визуализируемым эффектам восполь- зуйтесь диалоговым окном Object Properties, которое открывается из окна Parti- cle View а не из видового окна с выделенным источником частиц PF Source. Для этого щелкните правой кнопкой мыши на строке заголовка вь бранного события и выберите команду Properties из всплывающего контекстного меню. 1. Выберите команду Rendering^Video Post (Визуализация^Видеомонтаж) из главного меню, чтобы открыть окно Video Post. 2. Введите событие сцены (Scene Event), в котором по умолчанию исполь- зуется окно вида из камеры. 3. Введите событие фильтрации изображения (Image Filter Event) и, в ча- стности, эффект в объективе в виде свечения (Lens Effects Glow). 4. Щелкните на данном событии в очереди событий. Затем щелкните в от- крывшемся диалоговом окне Edit Image Filter Event на кнопке Setup. Перей- дите в открывшемся диалоговом окне Lens Effects Glow ко вкладке Prefer- ences и установите значение 2 0 в поле Size из области Effect, а также зна- чение 15 в поле Intensity из области Color. Во вкладке Properties данного диалогового окна в качестве источника для эффекта свечения в рассматриваемой сцене по умолчанию выбран объект с идентификационным номером 1 (Object ID = 1). 5. Щелкните на кнопке ОК, чтобы закрыть диалоговое окно Lens Effects Glow и вернуться в окно Video Post. На этом настройку эффекта свечения можно бы- ло бы завершить, однако для визуализации данной сцены в файл фильма необ- ходимо еще ввести событие вывода изображения (Image Output Event). 6. Введите в очередь событие вывода изображения. Название этого события соответствует присвоенному имени файла визуализируемого фильма (рис. 17.70). Для вывода неподвижных изображений следует сбросить фла- жок Enabled в диалоговом окне Edit Image Output Event. 7. Выделите составной объект BlobMesh в видовом окне. Щелкните на нем правой кнопкой мыши и выберите команду Object Properties из всплываю- щего контекстного меню. Установите значение 1 в поле Object Channel (Капал объекта) из области G-Buffer (Графический буфер) диалогового окна Object Properties.
758 Часть VII. Частицы и динамика Рис. 17.70. Простая последовательность видеомонтажа для ввода в сцену эффекта свечения Выполните последовательность видеомонтажа (Execute Sequence), чтобы увидеть эффект свечения, введенный в лаву (рис. 17.71). Рис. 17.71. Завершающий эффект свечения лавы | СОВЕТ _____________________________________________________________ При визуализации неподвижных изображений из окна Vdeo Post конкретный визуализируемый файл определяется значением параметра Single (Одиночный кадр) в диалоговом окне Execute Video Post, а не положением ползунка на вре- менной шкале анимации.
Глава 17. Введение в систему частиц Particle Flow 759 Итак, эффект кипящей лавы в кратере вулкана завершен. Подобная система частиц Particle Flow может показаться довольно сложной, однако опа позволяет управлять всеми свойствам потока частиц: скоростью движения кипящей лавы, размерами лопающихся пузырьков газа, продолжительностью размазывания лавы по стенкам кратера вулкана. Такой гибкий подход к организации системы частиц дает возможность свободно копировать как отдельно излучаемые частицы, так и всю их систему в целом, многократно использовать блок-схему ее орт апизации для получения сходных эффектов или же расширить любой ее блок. Самостоятельная работа Если вы желаете продолжить изучение системы частиц Particle Flow па приме- ре сцепы с извержением вулкана, попробуйте выполнить следующее. • Сформируйте устойчивое пламя с поднимающимся вверх дымом, когда ка- пли лавы опускаются на стенки кратера вулкана. • Создайте расширяющиеся и постепенно исчезающие клубы окрашенного пара, поднимающегося при лопании каждого пузырька газа. • Сымитируйте постепенный подъем пласта лавы до тех пор, пока опреде- ленная ее часть пе перельется через край кратера вулкана. Резюме Эффекты частиц, рассмотренные в этой главе, безусловно, находят примене- ние не только при имитации кипящей лавы. Практически любая жидкость может быть сымитирована из сочетания потока частиц и составного объекта BlobMesh. В частности, применение операторов Shape Mark подразумевает создание чер- нильных пятен на льняной ткани, отметок прилива па морском молу или даже следов от молока под носом персонажа. Различные виды поведения сталкиваю- щихся и отскакивающих частиц могут быть использованы для имитации ограни- ченных объемов вязкого вещества, в том числе содержимого нефтяной цистерны и чашки кофе в руке персонажа. В упражнениях этой главы представлены основы применения системы частиц Particle Flow для решения практически любой задачи. Создать с ее помощью це- лый рой плодящихся насекомых нс труднее, чем пласт кипящей лавы с лопающи- мися пузырьками газа. Для порождения разбрызгивающихся капель лавы из уже отмирающих частиц применяется тот же самый метод, что и для рассеяния охва- ченных пламенем кусков при катастрофе во время приземления ракеты. Если вы сумели создать размазанные следы от капель лавы на стенках кратера вулкана, значит, вы сможете получить рисунок граффити, который делает па степе с по- мощью распылителя персонаж, занимающийся подобного рода творчеством. Система частиц Particle Flow в значительной степени расширяет возможности специальной настройки частиц в 3ds max. Так, особое поведение частиц можно ор- ганизовать на основании их свойств или условий сцены. Если пойти на дополни- тельные затраты вычислительных ресурсов, то можно разработать довольно слож-
760 Часть VII. Частицы и динамика пыс механизмы формирования частиц, используя удобный графический интер- фейс в окне Particle View. Не следует, однако, сбрасывать со счетов и такие неуправ- ляемые событиями системы, как Blizzard и Super Spay, поскольку, обеспечивая нужные функции потока частиц, они в то же время требуют меньше вычислитель- ных ресурсов Но когда требуется удобно настраиваемая система частиц, управляе- мая событиями, в таком случае выбор Particle Flow совершенно очевиден. В следующей главе возможности системы частиц Part cle Flow будут рассмот- рены более подробно па примере создания спецэффектов и видов поведения по сценарию. А там, где это уместно, будут использованы системы частиц, неуправ- ляемые событиями.
Глава 18 Эффекты частиц Шоп Бонни Как было сказано в предыдущей главе, .свойства частиц в 3ds max 7 допускаю^ неограниченную специальную настройку их поведения. Например, для создания косяка летучих рыб, разделяющегося на стайки мелких рыбешек, достаточно ор- ганизовать подходящий поток частиц. Но что если рыбы должны изменить свой цвет или направление движения, когда они приближаются к судну, меняющему свой курс, или если судно должн ) опустить якорь, когда отдельная рыбка пере- прыгивает через него? Подобные сложные взаимосвязи между объектами на сце- пе будут рассмотрены в этой главе. В упражнениях этой главы вам предстоит воспользоваться приобретенными на- выками работы с системой частиц Particle F ow дя озд г я более сложных эффек- тов. сосредоточенных вокруг бипл н летящего в грозовом небе, испещренном мол- ниями и взрывными эффектами. Управляемый событиями характер системы частиц Particle F OW приобретает еще большее значение благодаря применению специальных сценариев для управления частицами, причем события, управляющие частицами, оп- ределяют также взаимодействие объектов на сцене. Системы частиц, которые вам предстоит создать в упражнениях этой главы, достаточно сложны и требуют выбора нескольких стратегий управления вычислительными ресурсами, необходимыми для расчетов подобных систем час гиц и для сохранения правляемости сцены. В этой главе рассматриваются следующие вопросы. • Следовые эффекты. • Электрические ффекты. • Дымовые и огневые эффекты. • Р ветвление геометрических частиц. • Эффекты видеомонтажа по конкретным событиям. • Написание сценариев для взаимодействия событий и управления потоком частиц. • Применение неуправляемых событиями систем частиц для получения про- стых эффектов. • Управление сложными сценами с помощью кэша частиц. Итак, начнем с анализа исходной сцены и применения в ней первоначального эффекта.
7Ь2 Часть VII Частицы и динамика Траектория полета При анимации летящего реактивного самолета, устремляющегося вниз орла или рубящей сабли траектория и инерция движения объекта обычно подчерки- вается с помощью дополнительного видимого следа, который нередко, как при- зрак, повторяет исходный объект. В упражнении из следующего раздела Замысло- ва гая траектория полета пикирующего биплана будет дополнена впечатляющим полосатым следом. Создание следа от самолета 1. Откройте сцену из файла Project Files\Chl8_ParticleEffects\ lightning_begin. max на прилагаемом к этой книге DVD Эта сцена содержит сгруппированную из отдельных объектов модель би плана, движение которого по всей сцене ограничено линией сплайнового пути. При этом биплан начинает свой полет издалека, постепенно прибли- жаясь к камере, затем делает петлю и пикирует вниз (рис. 18.1). В ходе это- го полета рядом с самолетом несколько раз ударяет молния, а в кадре 275 она попадает прямо в биплан, вызывая взрыв, искры, огонь и дым, тяну- щиеся следом за пикирующим вниз самолетом. Рис. 18.1. Исходная сцена: модель биплана, движение которого ограничено линией сплайнового пути, а также несколько каркасов молний. Оригинальная каркасная модель биплана построена Крисом О'Райли (Chris O’Riley)
Глава 18. Эффекты частиц 763 Если переместить ползунок по временной шкале анимации, то на сцене можно также обнаружить три каркаса молний. Два из них расположены па сцене вертикально и оживляются одинаково. А вот анимация третьего кар- каса молнии по ключевым кадрам выполнена таким образом, чтобы он был постоянно нацелен на биплан. Три указанных объекта будут использованы далее в этой главе в качестве вспомогательных. Первый воссоздаваемый в данной сцене эффект имитирует след, который тянется за бипланом по траектории его полета. Проанализируйте каркас ный объект trail emitter Излучатель следа), который является порож- денным по отношению к группе объектов Plane (Самолет) (рис. 18.2). Этот простой каркас будет использован для испускания частиц следа от крыльев и хвоста биплана. Флажок Renderable в диалоговом окис свойств данного объекта сброшен, чтобы он отсутствовал в визуализированном варианте данной сцепы. Рис. 18.2. Простой каркас, используемый для получения эффекта подвижного следа от летящего биплана 2. Откройте окно Particle View и создайте новый стандартный поток частиц, щелкнув правой кнопкой мыши на панели отображения событий и выбрав из всплывающего контекстного меню команду New^Part'cle System^ Standard Flow По умолчанию пиктограмма источника частиц PF Soiree создается в точке начала мировых координат (0,0,0). Но в данном случае это несуще- ственно, поскольку данная пиктограмма не используется для расположения частиц на сцене.
764 Часть VII. Частицы и динамика 3. Присвойте глобальному событию для источника частиц имя Flight Path (Траектория полета), а событию для зарождения частиц— имя Trail Birth (Зарождение следа). 4. Излучение частиц из данного источника будет происходить с большой скоро- стью. Следовательно, во избежание “вздутия” потока частиц в результате гру- бой оценки кадров анимации перейдите к свитку' System Management парамет- ров источника частиц на напели Modify и выберите вариант 1/4 Frame (Четверо, кадра) из обоих раскрывающихся списков. Render и Viewport, в об- ласти Integration step Эти настройки автоматически распространяются на все источники частиц, создаваемые в течение текущего сеанса работы в 3ds max. 5. Для получения данного эффекта потребуется большое количество частиц поэтому настройте параметры оператора Birth на формирование 10000 частиц, порождаемых в кадрах 0-3 00 6. Перейдите к нулевому кадру, чтобы ускорить реакцию 3ds max на вносимые вами изменения. Частицы должны формироваться по краям тянущегося за бипланом следа, поэтому замените в текущем событии оператор Position Icon оператором Position Object. Установите флажок Inherit Emitter Movement (Наследовать движение излучателя) на панели параметров опе- ратора Position Object, чтобы частицы всегда формировались исходя из обновленного положения излучателя. НА ЗАМЕТКУ Для внесения изменений в поток частиц рекомендуется всегда переходить к ну- левому кадру анимации, особенно если приходится иметь дело со сложной ор- ганизацией потока частиц и большим их количеством. Благодаря этому сокра- щаются задержки, обусловленные перерасчетами потока частиц, а также исклю- чаются возможные аварийные отказы 3ds max. 7. Введите объект trail emitter в список объектов-излучателей (Emitter Objects) на панели параметров оператора Position Object (рис. 18.3) Если переместить ползунок по временной шкале анимации, то можно заме- тить непрерывный след неисчезающих частиц, тянущийся за бипланом во время его полета по сцене (рис. 18.4). 8. Уменьшите скорость частиц до 130. 9. По умолчанию оператор Rotation настроен на произвольную ориентацию каждой частицы, но в данном случае требуется другой эффект. Для того чтобы частицы были выровнены по нормалям поверхности геометриче- ской формы излучателя, в результате чего они следуют по траектории по лета биплана, выберите вариант Speed Space (Пространство скорости) из раскрывающегося списка Orientation Matrix (Матрица ориентации) на пане- ли параметров оператора Rotation.
Глава 18. Эффекты частиц 765 Posit on Object 01 (trail emitt. Speed 01 (Along Icon Arrow) Rotation 01 (Random 3D) Shape 01 (Teira) Display 01 (Ticks) Рис. 18.3. Начальная стадия организации потока частиц, предназначенных для формирования подвижного следа Рис. 18.4. Простои неисчезающий след, тянущийся за бипланом по траектории его полета
766 Часть VII. Частицы и динамика 10. Для излучения частиц будет использоваться экземпляр геометрической формы, поэтому замените оператор Shape оператором Shape Instance. А в качестве объекта геометрической формы частиц назначьте объект trail geometry, щелкнув сначала на кнопке из области Particle Geometry Object на панели параметров оператора Shape Instance, а затем выбери- те указанный объект. Данный каркас состоит из двух квадратных много- угольников, расположенных перпендикулярно друг другу. Если наложить на этот каркас двухсторонний материал, он будет выглядеть как объемный объект практически под всеми углами зрения (рис. 18.5). Рис. 18.5. Такая форма частиц получена, по существу из двух квадратных много- угольников, расположенных перпендикулярно друг другу к НА ЗАМЕТКУ_________________________________________________________ В сложных сценах с большим количеством частиц рекомендуется применять са мые прость е формы частиц, чтобы избежать значительнь х задержек в расчетах подобных сцен. Для предварительного просмотра упомянутого выше полученного экземп- ляра геометрической формы частиц выберите вариант Geometry из рас- крывающегося списка Туре на панели параметров оператора Display и переместите ползунок по временной шкале анимации. Увеличьте изобра- жение в окне вида в перспективе, чтобы лучше видеть частицы.
Глава 18. Эффекты частиц 767 И. Первоначально частицы не выровнены как следует. Они располагаются перпендикулярно траектории полета биплана (рис. 18.6). Рис. 18.6. Частицы следа движутся по траектории полета биплана благодаря установ- ленному порядку выполнения операторов в текущем событии Для того чтобы поправить ориентацию частиц, переместите оператор Speed в текущем событии вниз, расположив его после оператора Rotation. Вра- щение частиц определяется вектором, задающим направление для излучения частиц, поэтому вращение частиц следует устанавливать раньше скорости их движения (рис. 18.7). 12. Для того чтобы упростить отображение частиц в видовых окнах, выберите вариант Lines (Линии) из раскрывающегося списка Туре на панели пара метров оператора Display. 13. Для данного эффекта был заранее создан обесцвечивающийся материал, поэтому присоедините к текущему событию оператор Material Dynamic и назначьте материал Trai 1 Vapor (Испаряющийся след). 14. Непрозрачность этого материала определяется картой Particle Age (рис 18.8), поэтому укажите срок жизни частиц, присоединив к текущем}' событию опера- тор Delete. Затем щелкните на кнопке-переключателе By Particle Age и уста- новите значение 50 в поле Life Span, а также значение 10 в поле Variation на па- нели параметров оператора Delete (рис. 18.9).
768 Часть VII. Частицы и динамика Рис 18.7. После изменения порядка выполнения операторов в текущем событии частицы движутся по траектории полета биплана так, как и предполагалось Рис. 18.8. Теперь след исчезает по мере изменения возраста частиц
Глава 18. Эффекты частиц 769 Render 01 (Geometry) p-aiRHh Position Object 01 (trail emit!, Rotation 01 (Speed Space) Speed 01 (Along Icon Arrow) Shape Instance 01 (trail geo Display 01 (Lines) Materiel Dynamic 01 (ТгаЗ V. Delete 01 (By AgeSOtlO) Delete D1 Remove:——————- C All Parltcles C Selected Particles Only ByParbdaAge Life Span |ы5 VanahorrHo Рис. 18.9. Завершенная блок-схема потока частиц для следового эффекта Пример полученного выше простого эффекта показывает, как легко можно под- черкнуть характер движения любого объекта (от набирающего скорость джипа до кружащейся феи) с помощью правильно выровненного следа. В следующем разделе на примере данной сцены будут рассмотрены более яркие электрические эффекты. Электричество Имитация электричества относится к наиболее интересным задачам в области спецэффектов. Электричество, будь то короткозамыкающий робот, летящий космический корабль на ионном двигателе или поврежденные линии электропе редачи, обладает зачаровывающей и страшной силой, которую очень удобно вос- произвести с помощью системы частиц Particle Flow. К основным электрическим эффектам, которые будут использованы в сцене с бипланом, относятся последо- вательно воспроизводимые удары молнии. Имитация молнии с помощью объектов, находящихся на сцене В следующем упражнении будет воспроизведен удар молнии, который происхо- дит от столкновения объектов, находящихся близко друг к другу на сцене. Такой метод имитации удара молнии достаточно прост и может без труда применяться в любой сцене, где с помощью объектов требуется управлять такими эффектами частиц, как искры, возникающие от столкновения двух тяжелых объектов. 1. Переместите ползунок по временной шкале анимации и обратите внимание на два вертикальных столпа молнии, возникающих рядом с бипланом во время его движения по траектории полета. Эти каркасы послужат в качест- ве вспомогательных объектов для формирования из частиц молнии в дан- ном упражнении. Удары молнии должны быть вызваны движением в сцепе и, в частности, приближающимся бипланом. Для этой цели к биплану будет присоединен сферический отражатель. При столкновении частиц с этим отражателем и возникает данный электрический эффект.
770 Часть VII. Частицы и динамика НА ЗАМЕТКУ Проверка на столкновение является одним из самых простых способов форми- рования ча и или воздействия на них со стороны находящихся на сцене объ- ектов. 2. Перейдите к окну вида сверху и создайте пространственный исказитель SDeflector (Сферический отражатель), щелкнув сначала на кнопке Space Warps панели Create, а затем выбрав категорию Deflectors (Отражатели) из расположенного ниже раскрывающегося списка и щелкнув на кнопке SDe- flector (рис. 18.10). Исходное положение этого пространственного искази- теля особого значения не имеет. Рис. 18.10. Простой сферический отражатель, применяемый для имитации ударов молнии 3. Выровняйте отражатель по группе объектов Plane, согласовав его поло- жение по осям мировых координат и ориентацию по осям локальных коор- динат (рис. 18.11). 4. Воспользуйтесь инструментом Select and Link, чтобы связать отражатель с группой объектов Plane. Переместите ползунок по временной шкале анимации, наблюдая за тем, как отражатель повторяет положение и ориен- тацию биплана на протяжении всей анимации.
Глава 18. Эффекты частиц 771 Рис. 18.11. Выровняйте отражатель по биплану 5. Перейдите к окну Particle Flow и создайте пустой поток частиц (Empty Flow), присвоив его глобальному событию для источника частиц имя LightningOl (Первая молния), а событию зарождения частиц— имя Lightning BirthOl (Зарождение первой молнии). Свяжите вместе оба события. 6. Выделите пиктограмму источника частиц LightningOl и выровняйте точ- ки опоры этого источника и вспомогательного объекта lightning ge- ometryOl по осям X. Y и Z. Только не меняйте его ориентацию по соответ- ствующим осям. 7. Для того чтобы лучше видеть пиктограмму источника частиц LightningOl в окне вида из камеры, перейдите к панели Modify и установите ее длину и ширину равной 6000 единиц (рис. 18.12). 8. Установите значение 100% в поле Viewport из области Quantity Multiplier в свитке Emission параметров данного источника частиц. Особого выиг- рыша в производительности это не дает, поскольку для эффекта молнии требуется относительно небольшое количество частиц. 9. Установите параметры оператора Birth таким образом, чтобы система Particle Flow сформировала единственную частицу в пулевом кадре.
772 Часть VII. Частицы и динамика Рис. 18.12. Выровняйте излучатель частиц по вспомогательному объекту молнии 10. Присоедините оператор Position Icon к событию Lightning BirthOl и выберите вариант Pivot из раскрывающегося списка Location на панели параметров данного оператора. Формирование указанной выше единст- венной частицы будет инициировано при столкновении со сферическим отражателем на биплане. 11. Присоедините к событию Lightning BirthOl проверку Collision Spawn и введите отражатель SDef lectorOl в список Deflectors на панели параметров данной проверки (рис. 18.13). 12. Создайте новое событие с оператором Shape Instance ниже события Lightning BirthOl, присвоив вновь созданному событию имя Light- ning Main BoltOl (Основной удар первой молнии). Свяжите новое со- бытие с предыдущим через проверку Collision Spawn. 13. Выберите вспомогательный объект lightning geometryOl с помощью кнопки из области Particle Geometry Ob ect и установите флажок Animated Shape на панели параметров оператора Shape Instance. 14. Для предварительного просмотра полученной формы в видовых окнах вы- берите вариант Geometry из раскрывающегося списка Туре на панели па- раметров оператора Display. При перемещении ползунка по временной шкале анимации в окне вида из ка- меры наблюдается порождение полученного экземпляра геометрической фор- мы каркаса молнии в кадре 35, после чего он исчезает слева из кадра. Объясня- ется это скоростью, установленной в проверке Collision Spawn (рис. 18.14).
Глава 18. Эффекты частиц 773 ЭДШ - Т est Т cue f см.---------- Г" Ра er* Paitides F7 Spev*i Patictes - Deftecto s:----------- । SDeflectorOI Add By Lisi Remove - Spawn Rate and Amount —— & Spawn On First Collision F7 Delete Parent C Spawn On Each Collision Un il И p C| Spawnable * 1100.0 Cj Offspmg# P C| [ Variation* (Oil * Sync By. [Absolute ime F7 Restart Particle Age -Speed -I Parent, [bounce Dffspmg:| Bounce f In Units: 11 OU U C|! « inherited 5sfW3 Cj Variation % 10.0 j] Рис 18 13. Поток частиц, воспроизводящих молнию, начинается с единственной частицы, формирование которой инициируется в результате столкновения с отражателем на биплане Рис. 18.14. Отскакивание удара молнии от отражателя определяется скоростью, устанавливаемой по умолчанию в проверке Collision Spawn
774 Часть VII. Частицы и динамика 15. Выберите вариант Continue (Продолжение) из раскрывающегося списка Offspring (Порождение частиц) в области Speed на панели параметров про- верки Collision Spawn в событии Lightning BirthOl, чтобы удар молнии не отражался при столкновении с отражателем. Благодаря этому отражатель будет лишь инициировать формирование повой частицы, не меняя ее скорость и направление движения. Если теперь переместить ползунок по временной шкале анимации, удар молнии останется в кадре, а его анимация будет происходить в месте рас- положения пиктограммы источника частиц Тем не менее анимация части- цы не синхронизирована с движением вспомогательного объекта молнии, поскольку возраст порождаемой частицы не согласован с номером кадра анимации (рис. 18.15). Рис. 18.15. Анимация частицы удара молнии не синхронизирована с движением вспомогательного объекта молнии 16. Для устранения этого недостатка сбросьте флажок Restart Particle Age на панели параметров проверки Collision Spawn в событии Lightning BirthOl. Таким образом, порождаемая частица унаследует возраст роди- тельской частицы. 17. Перейдите к свитку System Management на панели Modify и выберите вари- ант 1 Tick из раскрывающегося списка Render в области Integration Step. Бла- годаря этому обновление потока частиц при визуализации будет происходить с той же частотой, что и анимация вспомогательного объекта, хотя и за счет увеличения времени, затрачиваемого на выполнение необходимых расчетов.
Глава 18. Эффекты частиц 775 18 Данный удар молнии должен отображаться в течение короткого периода времени (около трети секунды), поэтому присоедините проверку Age Test к событию Lightning Main BoltOl, выберите вариант Event Аде из рас- крывающегося списка Туре и установите значение 10 кадров в поле Test Value на панели параметров проверки Age Test, оставив без изменения нулевое значение в поле Variation 19. Создайте новое событие для удаления частиц ниже события Lightning Main BoltOl, присвоив ему имя Lightning Deleted (Удаление первой молнии), а затем свяжите его с предыдущим событием через проверку Аде Test. Удалите лишний оператор Delete. В данном случае оператор Delete (By Particle Age) непригоден, поскольку возраст частицы не приводится к исходному и его величина будет превышать проверяемое значение в мо- мент самой проверки на возраст (рис. 18.1(5). Рис. 18.16. Основной поток частиц для имитации удара молнии: от зарождения до столкновения с от- ражателем, инициирующим удар молнии, и, наконец, до удаления по возрасту в событии Итак, в сцене получен основной удар молнии, возникающий при приближении биплана и продолжающийся считанные доли секунды. Совершенствование дан- ного электрического эффекта будет продолжено в следующем разделе. Расщепление молнии Для получения более сложного вида произвольно расщепляемой молнии необ- ходимо скопировать полученный экземпляр удара молнии по длине оригинала. Без специально написанного сценария одни частицы Part cle Flow пе так-то просто рас- положи гь на поверхности полученного экземпляра геометрической формы другой частицы. Поэтому' в следующем упражнении вновь будет использован каркас вспо-
776 Часть VII. Частицы и динамика метательного объекта молнии. При этом очень важно синхронизировать движение частицы и вспомогательного объекта во время визуализации. Если выбрать для этой цели более крупный шаг интеграции, чем одна временная отметка (1 Tick), расщепленные удары молнии неправильно соединятся с основным ударом. 1 Вставьте проверку Spawn непосредственно перед проверкой Age Test в со- бытии Lightning Main BoltOl. Установите значение 12 в поле Offspring # и значение 20 в поле Variation па панели параметров данной проверки. И в этом случае следует сбросить флажок Restart Particle Age чтобы синхро- низировать анимацию. 2 Скопируйте оператор Shape Instance в новое событие, присвоив вновь созданному событию имя Lightning BranchOl (Первый расщепленный удар молнии). 3. Уменьшите до 3 0% значение в поле Scale и установите значение 5 0% в поле Variation па панели параметров оператора Shape Instance. 4. Для того чтобы расположить расщепленные удары молнии вдоль основного ее удара, введите оператор Position Obj ect. Установите флажок Lock On Emitter (Привязать к излучателю) и введите вспомогательный объект lightning geometryOl в список Emitter Objects па панели параметров данного оператора. 5. Установите также флажки Animated Shape и Subframe Samp ing на той же напели параметров 6. Для того чтобы расщепленные удары молнии начинались в тех точках ос- новного удара, где происходит поворот его геометрической формы, выбе- рите вариант Vertices (Вершины) из раскрывающегося списка Location на напели параметров оператора Posi tion Obj ect. 7. Выберите вариант Geometry из раскрывающегося списка Туре па панели параметров оператора Display. Если теперь переместить ползунок по временной шкале анимации то можно заметить, как по длине основного удара молнии возникают более мелкие расщепленные удары. Они могут быть разъединены, однако их положение должно быть синхронизировано при визуализации (рис. 18.17). 8. Для произвольной ориентации расщепленных ударов молнии введите в те- кущем событии оператор Rotation. По умолчанию в раскрывающемся списке Orientation Matrix па панели параметров данного оператора выбран вариант Random 3D (Произвольная ориентация в трехмерном пространст- ве). Благодаря этому выбирается произвольное направление распростра- нения расщепленных ударов молнии из точки их зарождения 9. Для того чтобы расщепленные удары молнии исчезали вместе с основным се ударом, скопируйте проверку Age Test в конец события Lightning BranchOl, выбрав вариант Instance в открывшемся диалоговом окне Благодаря тому что копия и оригинал проверки Age Test являются экзем- плярами друг друга, продолжительность удара молнии можно очень легко изменить на панели параметров любого из этих операторов. 10. Свяжите текущее событие через проверку Age Test с событием Light- ning DeleteOl (рис. 18.18).
Глава 18. Эффекты частиц 777 Рис. 18.17. Расщепленные удары молнии, возникающие из вершин, произвольно рас- положенных вдоль основного удара молнии Render 01 (Geometry) Fipht PWi 9 Рис. 18.18. Организация потока частиц для расщепляющегося удара молнии
778 Часть VII. Частицы и динамика Итак, при приближении биплана возникает удар молнии, расщепляющийся на ряд других ударов (рис. 18.19). В следующем разделе данный электрический эф- фект будет дополнен коронным разрядом для имитации заряженных частиц, ко- торые появляются при столь мощном электрическом ударе. Рис. 18.19. Эффект расщепляющегося удара молнии Рассеяние электрического поля В следующем упражнении будет сымитировано быстро рассеивающееся поле за- ряженных частиц, возникающее при ударе молнии. Возможно, такой эффект и не наблюдается во время настоящей грозы, тем не менее он подчеркивает сил}' и ха- рактер молнии в данной сцене. 1. Вставьте еще одну проверку Spawn в событии Lightning Main BoltOl непосредственно перед поверкой Age Test. Установите значение 1000 в поле Offspring # и значение 15% в поле Variation на панели параметров данной проверки. 2. Создайте новое событие, содержащее оператор Shape Facing, присвоив ему имя Electrical FieldOl (Первое электрическое поле). Свяжите это событие с предыдущим через проверку Spawn.
Глава 18. Эффекты частиц 779 3. Выберите камеру CameraOl (но не ее цель) в качестве объекта, к котором}' час- тица должна быть обращена лицевой стороной, с помощью кнопки из области Look At Camera/Object на панели параметров оператора Shape Facing. 4. Щелкните па кнопке-переключателе In Screen Space (В экранном про- странстве) из области Size/Wldth, а затем установите значение 1% в поле Proportion и значение 20% в поле Variation на той же панели параметров. 5. Прежде чем частицы появятся, необходимо задать их положение, поэтому введите в текущем событии оператор Position Object. 6. Введите вспомогательный объект lightning geometryOl в список Emit- ter Objects, а затем установите флажки Animated Shape и Subframe Sampling на панели параметров данного оператора. 7. Для порождения облака из частиц вокруг удара молнии установите флажок Surface Offset, а также значение 250 единиц в поле Minimum и значение 1000 в поле Maximum. 8. Частицы должны быстро рассеиваться после своего зарождения, поэтому введите в текущем событии оператор Speed. Установите значение 5000 единиц в поле Speed, значение 3000 в поле Variation и выберите вариант Random Horizontal (Произвольно по горизонтали) из раскрывающегося списка Direction на панели параметров данного оператора (рис. 18.20). Рис. 18.20. Теперь вокруг удара молнии возникает облако из частиц, заряженных электриче- ской энергией
780 Часть VII. Частицы и динамика При перемещении ползунка по временной шкале анимации наблюдается зарождающееся скопление электрических зарядов вокруг столпа основного удара молнии, которое затем быстро рассеивается на плоскости XY миро- вых координат (рис. 18.21). Рис. 18.21. Облако из частиц, которые излучаются в области вокруг основного удара молнии, а затем быстро исчезают Для завершения эффекта рассеивающихся частиц необходимо добиться их постепенного исчезновения. По мере рассеяния частицы должны сокра- щаться и становиться прозрачными. 9. Присоедините к событию Electrical FieldOl проверку Send Out. 10. Создайте новое событие, содержащее оператор Material Dynamic, при- своите ему имя Fade FieldOl (Постепенно исчезающее электрическое по- ле), а затем свяжите его с предыдущим событием через проверку Send Out. 11. Назначьте материал Lightning Corona (Коронный разряд вокруг мол- нии) на панели параметров данного оператора. Непрозрачность данного материала определяется картой Particle Age. К концу срока жизни частиц данный материал постепенно становится прозрачным. 12. Для сокращения размеров частиц введите в текущем событии оператор Scale, выберите вариант Relative Successive из раскрывающегося списка Туре и установите значение 98% во всех трех полях из области Scale Factors на панели параметров данного оператора. Такое изменение размеров час-
Глава 18. Эффекты частиц 781 тиц и послужило основанием для создания отдельного события, иначе па- раметры оператора Scale вступили бы в конфликт с параметрами опера- тора Shape Facing. 13. Для указания срока жизни частиц присоедините к текущему событию опе- ратор Delete, выбрав кнопку переключатель By Particle Age и установив значение 15 кадров в поле Life Span, а также значение 5 в поле Variation на панели параметров данного оператора (рис. 18.22). Рис. 18.22. Полностью организованный поток частиц для имитации удара молнии 14. Теперь, удар молнии отображается в течение трех отдельных стадий: на- чальный удар (рис. 18.23), второй удар, сопровождающийся полем корон ного электрического разряда (рис. 18.24), и, наконец, постепенно исче- зающее поле электрического разряда (рис. 18.25).
782 Часть VII. Частицы и динамика Рис. 18.23. Первая стадия удара молнии Рис. 18.24. Вторая стадия удара молнии, сопровождающегося полем корон- ного электрического разряда
Глава 18. Эффекты частиц 783 Рис. 18.25. Третья стадия удара молнии с постепенно исчезающим полем электрического разряда Кэш частиц При перемещении ползунка по кадрам анимации возникающего удара молнии наблюдается небольшая заминка в обновлении экрана вследствие интенсивных расчетов потока частиц. Возможно, на данном этапе работы над сценой с бипла- ном такая задержка едва заметна, однако по мере ввода дополнительных эффек- тов она быстро увеличивается. Подобная задержка устраняется разными способами, включая отключение от- дельных потоков частиц (в окне Particle Flow или с помощью источника частиц Particle Source), уменьшение значения в поле Viewport из области Quantity Multi- plier в свитке Emission параметров источника частиц, уменьшение числа видимых частиц в поле Visible % или же выбор варианта Ticks или Dots из раскрывающего- ся списка Туре на панели параметров оператора Display. Однако самый эффек- тивный способ состоит в использовании кэша частиц, поскольку он позволяет со- хранить без изменения число активных частиц. С помощью оператора Cache сохраняются результаты многих расчетов, вы- полняемых для формирования потока частиц. Благодаря этому при воспроизве- дении сцены в видовых окнах или во время визуализации используются сохра- ненные результаты, а не повторяются сами расчеты В следующем упражнении на примере сцены с бипланом будут продемонстрированы возможности оператора Cache.
784 Часть VII. Частицы и динамика 1. Перейдите к глобальному событию LightningOl и присоедините к нему оператор Cache. 2. Выберите вариант Viewport/Render (Видовое окно/Визуализация) из рас- крывающегося списка Use At (Где использовать), а также вариант Manually (Вручную) из раскрывающегося списка Update (Обновление) на панели па- раметров данного оператора. 3. Для сохранения синхронизации с параметрами источника частиц выберите вариант Integration Step (Шаг интегрирования) из раскрывающегося списка Sampling (Выборка) на той же панели параметров. 4. Щелкните на кнопке Update в области Manual Update (Обновление вручную). Окно Particle view исчезнет, и начнется воспроизведение сцены в видовом окне от начала и до конца, на что потребуется некоторое время. По завер- шении данного процесса результаты всех расчетов, выполняемых для вос- произведения сцены, будут сохранены с помощью оператора Cache. Благо- даря этому ускоряется воспроизведение данного эффекта. НА ЗАМЕТКУ Если кэш частиц не установлен в режим автоматического обновления, в нем не отражаются последующие изменения, происходящие в охватываемых им собы- тиях из потока частиц. Поэтому после внесения изменений в поток частиц обно- вите сохраненные результаты расчетов данного потока. А теперь, когда окончательно настроен эффект первого удара молнии, можно приступать к созданию аналогичного эффекта, связанного со вторым вспомога- тельным объектом удара молнии. Копирование потоков частиц В связи с тем что второй вспомогательный объект вертикального столпа мол- нии уже присутствует на сцене, вполне логично скопировать в него блок-схему организованного потока частиц из первого удара молнии, что и будет сделано в следующем упражнении. Модульный характер потока частиц в окне Particle View намного упрощает подобное копирование, хотя и с некоторыми оговорками. 1. Выделите все семь событий, связанных с первым ударом молнии, и скопи- руйте их, выбрав вариант Сору в открывшемся диалоговом окне. Все маркеры выходов событий из проверок при этом смещаются и должны быть возвращены на место, поскольку подобная информация не передается во время копирования. 2. Любые ссылки на вспомогательный объект lighting geometryOl придется заменить ссылками на вспомогательный объект lighting geometry02, в частности в двух операторах Shape Instance и Position Object. 3. Выделите источник частиц lighting02 в текущем видовом окне и выров- няйте точки опоры этого источника и вспомогательного объекта lighting geometry02 по осям X, Y и Z, используя инструмент Align.
Глава 18. Эффекты частиц 785 При перетаскивании ползунка по временной шкале анимации оба эффекта молнии возникают одновременно, хотя отражатель не достигает пикто- граммы второго источника частиц. Объясняется это тем, что с помощью оператора Cache сохранена информация о кадре, в котором отражатель инициировал излучение частиц первым источником. А при копировании оператора Cache вместе с ним была скопирована сохраненная ранее ин- формация о частицах, которая и применяется при формировании копии удара молнии. 4. Выделите оператор Cache для второго удара молнии и щелкните на кнопке Update, расположенной на панели параметров данного оператора. Как только завершится обновление данных, второй удар молнии должен воз- никнуть в кадре 13 0. 5. Повторите пп. 1-3 данного упражнения, чтобы создать поток частиц для имитации третьего удара молнии Этот удар молнии должен действовать несколько иначе, поэтому удалите из соответствующего события оператор Cache и проверку Collision Spawn (рис. 18.26). Рис. 18.26. Скопированные блок-схемы организованных потоков частиц, имитирующих уда- ры молнии Обновлять данные в кэше еще раз не нужно, если только изменения не кос- нутся охватываемых ими событий. Следует, однако, иметь в виду, что кэш очищается при повторном открытии файла, если при этом не установлен флажок Save Cache With F le (Сохранить кэш вместе с файлом). Но в этом случае очень быстро увеличивается размер сохраняемого файла. В следующем разделе будут рассмотрены вопросы применения сценариев в окне Particle Flow для управления третьим ударом молнии.
786 Часть VII. Частицы и динамика Имитация молнии по сценарию Назначение третьего удара молнии — следовать за бипланом по всей сцене. Именно эта молния попадает в биплан, вызывая взрыв, сопровождающийся ис- крами, огнем и дымом. Вместо инициирования столкновения в данном случае будет использован сце- нарий для явного перехода к кадру, в котором удар молнии поражает биплан. При написании сценариев для управления частицами используются те же правила программирования, что и в языке MAXScript, помимо параметров и элементов управления практически всеми свойствами частиц. Операторы в сценариях для управления частицами выполняются иначе, чем ос- тальные операторы, в том отношении, что они сразу же проверяются в начале ани- мации даже если их выполнение определяется, например, последующей проверкой па возраст частиц. Следовательно, в сценарии следует принимать во внимание то обстоятельство, что он может быть выполнен еще до того, как частицы, управляе- мые по данному сценарию, зародятся или достигнут соответствующего события. Кроме того, сценарии выполняются только во время визуализации и в том со- бытии, которое содержит визуализируемые частицы. А это означает, что в собы- тии должна присутствовать хотя бы одна порожденная частица и операторы Render, Shape и Position В сценариях для потоков частиц особое внимание должно уделят ься времени действия частиц. Возраст частиц контролируется по сценарию довольно просто, а вот получить доступ ко времени действия сцены намного труднее. Как правило, глобальная переменная currentTime дает точные сведения о времени действия сцены только во время ее воспроизведения в видовых окнах. А во время визуали- зации эта глобальная переменная не передается в поток частиц. В качестве выхо- да из данного положения зарождение частиц обычно организуется в нулевом кад ре, а время действия сцены определяется по возрасту частиц. В следующем упражнении для отслеживания времени действия сцены будет использована переменная, которая определяет возраст частиц и сравнивается с указанным кадром для инициирования последнего удара молнии. 1. Создайте новый стандартный поток частиц (Standard Flow), присвоив его глобальному событию имя Script Flow (Поток по сценарию), а собы- тию зарождения частиц — имя Script Holder (Держатель сценария). 2. Установите для данной системы зарождение одной частицы в нулевом кадре. 3. Удалите из текущего события операторы Speed и Rotation, поскольку они больше пе понадобятся (рис. 18 27). 4. Для того чтобы частицы не появились па сцене выделите пиктограмму ис точпика частиц Script Fl ow и перемести те се на 20000 единиц по оси Z. 5. Присоедините оператор Script к событию Script Holder и щелкните па кнопке Edit Script (Правка сценария), чтобы открыть окно редактора сценариев. На первый взгляд такой сценарий может показаться сложным, поскольку он содержит немало операций и переменных. Данный сценарий состоит в основном из строк комментариев, начинающихся с символа — и не относящихся к действующей части сценария.
Глава 18. Эффекты частиц 787 • В части сценария, начинающейся с метода on ChannelsUsed, указыва- ются свойства частицы, которые необходимо передать сценарию. Ско- рость данной частицы особого значения не имеет, поэтому удалите из сценария строкуpCont.useTime - true. • В части сценария, начинающейся с метода on Proceed, содержатся ос- новные операции, выполняемые по данному сценарию. Удалите эту часть сценария, оставив лишь открывающую и закрывающую скобки. Рис. 18.27. Исходная блок-схема организации потока частиц для оддержки сценария 6. Замените удаленный сценарий следующей строкой (рис. 18.28): persistent global StrikeFrame = 275 Рис. 18.28. Простой сценарий для объявления переменной StrikeFrame
788 Часть VII. Частицы и динамика В этой строке объявляется переменная StrikeFrame, которой присваива ется значение 27 5. Благодаря указанию перед именем переменной обозна- чений persistent и global данная переменная остается в сцене и после се повторного открытия, становясь доступной для других сценариев в те кущей сцепе. Именно в этой строке указывается помер кадра, в котором должен появит ься третий удар молнии, попадающий в биплан и вызываю- щий взрыв. | НА ЗАМЕТКУ_______________________________________________________ Полный текст рассматриваемого здесь сценария находится в текстовом файле Project Files\Chl8_PartideEffects\lightning_strike_script_final.txt на прилагаемом к этой книге DVD. 7. Проверьте сценарий на наличие ошибок по команде File4>Evaluate АП, вы- бираемой из меню в окне редактора сценариев. 8. Закройте окно редактора сценариев, чтобы вернуться в окно Particle View Сохраня ть данный сценарий не обязательно, поскольку он автоматически сохраняется с помощью оператора Script. 9. Перейдите к потоку частиц lightning03. В этом потоке проверка на столкновения была удалена, поэтому в настоящий момент в нем отсутству- ют средства для инициирования эффекта молнии. Присоедините к собы- тию lightning Birth03 проверку Script Test и щелкните на кнопке Edit Script. Подобно оператору Script, проверка Script Test содержит стандартный блок проверки. 10. Удалите в части сценария, начинающейся с метода on ChannelsUsed строки, обозначающие каналы Time и Position, и замените их строкой pCont.useTime = true, чтобы сделать доступным для проверки канал возраста частиц. 11. Замените текст сценария в части сценария, начинающейся с метода on Proceed, следующим кодом: if (pCont .NumPartides () > 0) AND (pCont .particleAge > StrikeFrame) then ( pCont.particleTestStatus true ) СОВЕТ После внесения изменений в сценарий обязательно проверяйте его на наличие опечаток, из-за которых сценарии может выполняться неверно. В первой строке приведенного выше кода сценария содержится оператор логической проверки по условию, при котором остальная часть сценария выполняется лишь в том случае, если выполняются обе части данного усло- вия (это операция логического умножения). В первой части проверки по данному условию требуется, чтобы в потоке присутствовала по крайней ме-
Глава 18. Эффекты частиц 789 ре одна частица, а во второй части необходимо, чтобы текущий возраст частицы (который должен соответствовать времени действия сцены) был больше величины, хранящейся в переменной StrikeFrame (рис. 18.29). Рис. 18.29. Проверка по сценарию наступления момента времени, оп- ределяемого переменной StrikeFrame Если обе части проверки по условию выполняются успешно, ее результат получается истинным, т.е. любые частицы, переданные для данной провер- ки, будут направлены событию, связанному с данной проверкой. А теперь продолжите работу над организацией потока частиц для имитации третье- го удара молнии. 12. Свяжите выход события Lighthing Birth03 через проверку Script Test со входом события Lighthing main Bolt03. 13. Если визуализировать сцену в кадре 276, то можно увидеть, как третья мол- ния попадает в биплан (рис. 18.30).
790 Часть VII. Частицы и динамика Рис. 18.30. Удар молнии поражает биплан в кадре, указанном в сценарии для управле- ния частицами 14. Скопируйте оператор Cache из потока глобального события Lighthing02 в глобальное событие Lighthing03 и обновите данные в кэше Обратите внимание на то, что результаты проверки по сценарию также сохраняются в кэше. Поэтому если внести изменения в переменной StrikeFrame, то придется обновить и содержимое кэша, иначе его придется отключить пе- ред тем, как использовать новое значение данной переменной. 15. А теперь вы можете скрыть все три геометрические формы вспомогатель- ных объектов молний, чтобы они не загромождали сцену. В приведенном выше упражнении сценарии и проверки по сценарию исполь- зовались для определения содержимого определяемой пользователем перемен- ной и управления поведением частиц. Это лишь один из возможных вариантов явного определения по сценарию поведения управляемых событиями частиц. Всякий раз, когда требуется добиться чего-то необычного с помощью системы частиц Particle Flow, например, перемещения дождевых туч синхронно с движе- ниями шамана, совершающего ритуальный танец для вызова дождя, рекомендует- ся обращаться к написанию специального сценария В следующем разделе тот же самый сценарий будет использоваться для создания взрывных эффектов с искра- ми и огнем.
Глава 18. Эффекты частиц 791 Огонь В этом разделе вам предоставляется возможность реализовать свои пристра- стия к пиротехнике на примере создания огневых эффектов с помощью системы частиц Particle Flow: от мельчайших искр до пламени взрыва. Искры от взрыва Источником для ряда огневых эффектов послужит излучатель частиц, присоеди- няемый непосредственно к биплану. Поэтому в следующем упражнении вам предсто- ит создать такой излучатель, присоединив его к биплану и правильно выровняв. 1. Создайте новый стандартный поток в окне Particle View, присвоив в нем глобальному событию имя Lightning Strike (Поражение молнией), а событию для зарождения частиц — имя Sparks (Искры). 2. Событие для зарождения частиц будет отделено от остальной части потока с помощью проверки Script Test, поэтому перетащите операторы Speed, Shape и Display в новое событие, присвоив ему имя Sparks Fly (Летящие искры). 3. Настройте параметры оператора Position на излучение частиц с поверх- ности и установите флажок Lock On Emitter. 4. Удалите из текущего события оператор Rotation, поскольку он больше не понадобится. 5. Скопируйте проверку Script Test из события Lighthing Birth03 в конец события Sparks, выбрав вариант Instance из раскрывающегося списка. 6. Свяжите текущее событие через проверку Script Test с событием Sparks Fly. 7. Аналогично сильному удару молнии, взрыв с искрами будет происходить при достижении кадра, определяемого переменной StrikeFrame. 8. Настройте оператор Birth на формирование 100 частиц, которое начина- ется и оканчивается в нулевом кадре. 9. Установите скорость 2500 и ее отклонение 35 на панели параметров опе- ратора Speed. А для того чтобы частицы рассеивались широко, установите максимальное значение 180° в поле Divergence. 10. В данном случае вполне подойдет используемая по умолчанию четырех- гранная форма частицы (Tetra) Необходимо лишь увеличить ее размер до 100 единиц. При наблюдении па близком расстоянии четырехгранные час- тицы могут иметь не вполне реалистичный вид, но в виде из камеры опа выглядят довольно хорошо. 11. Присоедините к событию Sparks Fly оператор Material Dynamic. На- значьте материал Fire Sparks (Огненные искры) и установите флажок Reset Particle Age.
792 Часть VII. Частицы и динамика 12. Укажите срок жизни частиц, используемый в материале, присоединив к те- кущем}' событию оператор Delete и установив на панели его параметров режим удаления по возрасту, срок жизни частиц 40 с отклонением 10 (рис. 18.31). - Remove:---——---------- С AlPebctes С Selected Pabctes Orf ® ByPalkteAfle Life Span- pO C' Venation. |10 Z Uniqueness: ------------ Seed j' 5545 C| New Рис. 18.31. При инициировании этого короткого потока частиц формируется целый дождь искр Если теперь переместить ползунок по временной шкале анимации, то мож- но заметить, как искры появляются в центральной части окна вида из каме- ры поскольку пиктограмма источника частиц по-прежнему находится в своем исходном положении. 13. Выделите источник частиц Lightning Strike и воспользуйтесь инстру- ментом Align, чтобы выровнять центры этого источника и цели на биплане по осям X, Y и Z мировых координат, а также согласовать ориентацию этих объектов по осям X Y и Z локальных координат. Цель на биплане представляет собой невизуализируемый фиктивный объ- ект, используемый для определения центральной точки, в которую будет нанесен удар молнии, вызывающий огневые эффекты. 14. Выберите вариант Circle из раскрывающегося списка Icon Туре (Тип пикто- граммы), а затем установите значение 400 единиц в поле Diameter из свитка Emission параметров данного источника частиц. 15. Воспользуйтесь инструментом Select and Link, чтобы связать источник час- т иц Lightning Strike с целью на биплане (рис. 18.32). При перемещении ползунка по временной шкале анимации искры должны по- являться после кадра, определяемого переменной StrikeFrame (рис. 18.33). Момент попадания молнии в биплан обозначен визуально, поэтому в следующем разделе необходимо добавить на биплане следы обгорания от взрыва. Как прави- ло, такой эффект достигается с помощью оживляемого материала, но в целях де- монстрации возможное гей системы частиц Particle Flow он будет создан с помо- щью потока частиц.
Глава 18. Эффекты частиц 793 Рис. 18.32. Свяжите источник частиц с целью на биплане, где будут возникать взрыв- ные эффекты Рис. 18.33. Дождь искр, разлетающихся в момент попадания молнии в биплан (ради простоты источник частиц Lightning03 отключен)
794 Часть VII. Частицы и динамика Следы обгорания от взрыва В следующем упражнении с помощью оператора Shape Mark на верхнем кры- ле биплана будет образован обгоревший участок. Этот оператор удобен для нане- сения пятен, воронок от падения тяжелых предметов или следов обгорания на целевом объекте. 1. Скопируйте событие Sparks, выбрав вариант Сору в открывшемся диалого- вом окне. Присвойте вновь созданному событию имя Scorch (Обгорание) и свяжите это событие с глобальным событием Lightning Strike. 2. Установите значение 1 в поле Amount на панели параметров оператора Birth. 3. Скопируйте проверку Script Test из события Sparks в событие Scorch, выбрав вариант Instance в открывшемся диалоговом окне, чтобы сохранить удобство обновления сценария При этом проверка Script Test, уже су- ществующая в событии Scorch, перезаписывается. 4. Создайте новое событие с оператором Shape Mark ниже события Scorch, присвоив вновь созданному событию имя Scorch Mark (След обгорания). Свяжите это событие с выходом предыдущего события через проверку Script Test. 5. Щелкните па кнопке-переключателе In World Space (В мировом простран- стве) и установите значение 1000 единиц в полях Width и Length на напели параметров оператора Shape Mark. 6. Установите значение 2 единицы в поле Surface Offset на той же панели па- раметров. 7. Прежде чем выбирать правое крыло биплана в качестве объекта соприкосно- вения, необходимо открыть группу объектов Plane. Для этого выделите дан- ную группу и выберите из главного меню команду Group^Open (Группа^ Открыть). 8. Назначьте крылья (Wings) в качестве объекта соприкосновения, выбрав соответствующую кнопку в области Contact Object на панели параметров оператора Shape Mark. 9. Закройте группу объектов Plane, выбрав из главного меню команду Groups Close (Группа1^ Закрыть). 10. Введите в событие Scorch Mark оператор Material Static и назначьте материал Fire Scorch (Следы от огня) (рис. 18.34). А теперь, когда следы обгорания расположены на своих местах (рис. 18.35) для формирования тянущихся следом языков пламени можно воспользоваться излучателем, созданным в упражнении из предыдущего раздела.
Глава 18. Эффекты частиц 795 ^1-..-MataialStafcOl. IP Asstgn Material Fire Scorch J F~ Assign Material ID Г Show In Viewport < • Materia L Г C Cycle C Random ft Sub Ma e ials |o ”" Rate----------------------t < * Pe Se c | 0 < S P pa e I C £ । P Lapp Uniqueness:------------- Seed|~2345 C HewJ Рис. 18.34. После активизации источника частиц на крыльях биплана об- разуются следы обгорания Рис. 18.35. Следы обгорания на крыльях биплана указывают на происхождение взрывных эффектов
796 Часть VII. Частицы и динамика Тянущиеся следом языки пламени В следующем упражнении с помощью оператора Material Frequency будет создан эффект мерцающего пламени, исходящего из источника часгиц. С помо- щью этого оператора материалы с разными идентификационными номерами произвольно назначаются в процентном отношении, определяемом пользовате- лем. Это идеальный способ для произвольного наложения текстур с использова- нием свойств материала Multi/Sub-Object. 1. Скопируйте событие Scorch, выбрав вариант Сору в открывшемся диало- говом окне. Присвойте этому событию имя Flames (Пламя) и свяжите его с глобальным событием Lightning Strike. 2. Установите значение 4 в поле Amount оператора Birth. 3. Скопируйте проверку Script Test из события Scorch в событие Flames, выбрав на этот раз вариант Instance в открывшемся диалоговом окне. 4. Создайте новое событие с оператором Material Frequency ниже собы- тия Flames, присвоив вновь созданному событию имя Spawn Flames (По- рождение пламени). Свяжите его с предыдущим событием через проверку Script Test. 5. Назначьте в качестве применяемого материал Fire Sprites (Языки пламе- ни). В этом материале используются 27 растровых текстур огня, организо- ванных в четыре разных ряда с помощью файлов со списками изображений. 6. Материал Fire Sprites относится к типу' Multi/Sub-Object и состоит из чс тырех подматериалов, поэтому установите значение 10 в первых четырех полях Material Ю#1—Material ID#4 на панели параметров оператора Material Frequency. Это относительное значение, хотя оно и не обозначается в про- центах. Если один и тот же номер используется па каждой позиции, все под- материалы получают равные возможности быть выбранными. А частицы бу- дут излучаться из обновленного места расположения источника. 7. Выберите вариант Geometry из раскрывающегося списка Туре на панели параметров оператора Display. 8. Определите форму частицы, введя оператор Shape Facing в текущее со- бытие после оператора Material Frequency. Назначьте камеру Cam- eraOl в качестве объекта, к которому частица должна быть обращена лице- вой стороной, с помощью кнопки из области Look At Camera/Object на па- нели параметров оператора Shape Facing. 9. Установите размер частицы 1500 единиц в мировом пространстве, щелк- нув на кнопке-переключателе In World Space в области Size/Width на той же панели параметров. 10. Выберите вариант Bottom (Внизу) из раскрывающегося списка Pivot At (Местоположение точки опоры), чтобы расположить нижние края языков пламени на пиктограмме источника частиц (рис. 18.36). При перемещении ползунка по временной шкале анимации появляются крупные частицы, форма которых определяется параметрами оператора Shape Facing, а нижние края этих частиц выровнены по пиктограмме их источника (рис 18.37).
Глава 18. Эффекты частиц 797 Рис. 18.36. Поток частиц организован таким образом, чтобы огневой эффект возникал не- посредственно в источнике частиц Рис. 18.37. Огневой эффект отображается в видовых окнах в виде четырех крупных плоских частиц
798 Часть VII. Частицы и динамика Помимо того что языки пламени возникают в источнике частиц, ряд уменьшающихся языков пламени образуют след, тянущийся за бипланом во время его движения. 11. Присоедините проверку Spawn к событию Spawn Flames. Щелкните на панели ее параметров на кнопке-переключателе Per Second и установите значение 15 частиц в секунду в поле Rate 12. Создайте копию оператора Shape Facing ниже события Spawn Flames, присвоив новому событию имя Trailing Flames (Тянущиеся следом язы- ки пламени). Свяжите это событие с выходом предыдущего события через проверку Spawn 13. Для сокращения языков пламени, тянущегося следом за бипланом, введите в текущее событие оператор Scale. 14. Выберите вариант Relative Successive из раскрывающегося списка Туре и установите значение 98% во всех трех полях из области Sea е Factors на панели параметров данного оператора. 15. Скопируйте оператор Material Frequency из события Spawn Flames в событие Trailing Flames. 16. Для перемещения тянущихся следом языков пламени от источника частиц введите в текущее событие оператор Speed (рис. 18.38). Speed OS (Along Icon Arrow) Shape 02 (Tetra) Display 18 (Ticks) • Material Dynarrec 05 (Fire S... Delete 08 (By Age 40*10) Script Test 04 Shape Mark Oi (Wings) Material Static 01 (Fire Sew Display 19 (Geometry) • I Birth 07 (At 0 T:1) Portion Icon 06 (Surface) Scorch Mark V Material Frequency 01 (Fre... Shape Feeing 04 (CameraOl) PosMon Icon 07 (Surface) Drsptay 20 (Geometry) Spawn 07 (By Rate) TraJng Flames *> Speed- рОЁГб £ Venation: JOO S' - Direction: ——------------ |Along Icon Arrow Г Reverse Divergence: |0.6 Jrnqueness:---------------- Seed] 2345 Cl New* Shape Feeing 05 (CameraOl) Scab 04 (Relative Success!. Material Frequency 02 (Fire Speed 06 (Along Icon Arrow) Display 21 (Geomd-y) Рис. 18.38 Завершенная блок-схема потока частиц пламени с присоединенными частицами, образующими тянущиеся следом языки пламени
Глава 18. Эффекты частиц 799 Если визуализировать данную сцену с завершенным огневым эффектом, языки пламени потянутся следом из источника частиц (рис. 18.39). Этот след естествен- ным образом и довольно быстро сокращается по мере удаления от очага пламени. Как будет показано в следующем разделе, более продолжительный след может быть создан с помощью дымовых эффектов. Рис 18 39. Завершенный огневой эффект Дым Дым создается аналогично огню. Отличие данного эффекта заключается глав- ным образом в продолжительности анимации его материалов, влиянии внешних сил па путь распространения дыма и в задержке, которая вводится перед исчез- новением дыма. Первый дымовой эффект требуется для получения характерного следа, обозначающего гибель самолета. След дыма Одним из самых важных взрывных эффектов в сцене с обреченным на гибель бипланом, столь хорошо знакомых из классических военных фильмов с воздушны- ми боями, является длинный след клубящегося дыма от пикирующего самолета. А поскольку данный эффект подобен огневому, его создание в следующем упражне- нии будет начато с копирования потока частиц, имитирующих огонь и пламя.
800 Часть VII. Частицы и динамика 1. Скопируйте событие Flames, выбрав вариант Сору в открывшемся диало- говом окне. Присвойте вновь созданному событию имя Smoke (Дым) и свя- жите его с глобальным событием Lightning Strike. 2 Установите значение 1 в поле Amount оператора Birth. 3. Скопируйте проверку Script Test из события Flames в событие Flames, выбрав на этот раз вариант Instance в открывшемся диалоговом окне, что- бы сохранить удобство обновления сценария. 4. Создайте новое событие с проверкой Spawn ниже события Smoke, присво- ив вновь созданному событию имя Spawn Smoke (Порождение дыма). Свяжите это событие с выходом предыдущего события через проверку Script Test. 5. Установите режим порождения частиц дыма в зависимости от дальности их распространения, щелкнув на кнопке-переключателе By Travel Distance и введя значение 500 единиц в поле Step Size на панели параметров про- верки Spawn (т.е. излучение одной частицы через каждые 500 единиц пройденного расстояния). 6. Установите значение 20% в поле Variation, а также значение 80° в поле Di- vergence из области Speed на той же панели параметров. 7. Скопируйте в текущее событие оператор Position Icon из события Smoke, чтобы сохранить излучение частиц из движущегося источника. Частицы дыма не должны быть привязаны к биплану аналогично пламени, поскольку исходящий дым обычно не содержит элементы привязки к сво- ему источнику. 8. Создайте новое событие с оператором Shape Facing ниже события Spawn Smoke, присвоив вновь созданному событию имя Smoke Trail (Следа дыма) и связав его с предыдущим событием через проверку Spawn. 9. Назначьте камеру CameraOl в качестве объекта, к которому должна быть обращена лицом частица, с помощью кнопки из области Look At Cam era/Object на панели параметров оператора Shape Facing. Щелкните на кнопке-переключателе In World Space в области Size/Width и введите зна- чение 2000 единиц в поле Units на той же панели параметров 10. Для того чтобы придать частицам дыма импульс движения в сторону от их источника, введите в текущее событие оператор Speed и установите зна- чение 150 единиц в поле Speed, а также значение 50 в поле Variation на па- нели параметров данног о оператора. 11. Введите непрерывное вращение частиц дыма с помощью оператора Spin. Установите значение 180 в поле Spin Rate (Частота вращения), т.е части- цы дыма совершают один полный оборот через каждые 2 секунды, а также значение 50 в поле Vanat on на панели параметров данного оператора. 12. Выберите вариант Particle Space (Пространство частиц) из раскрывающе- гося списка в области Spin Axis (Ось вращения) на той же панели парамет- ров. По умолчанию в данной области ненулевое значение устанавливается только в поле Z, а это означает, что частица, форма которой определяется
Глава 18. Эффекть частиц 801 оператором Shape Facing, будет вращаться только вокруг своей локаль- ной оси Z. Таким образом, ее ориентация по отношению к тому объекту, к которому она должна быть обращена лицом, не меняется. 13. Присоедините к событию Smoke Trai 1 проверку Send Out. 14. Создайте новое событие с оператором Scale ниже события Smoke Trail, присвоив вновь созданному событию имя Smoke Fade (Исчезновение ды- ма). Свяжите это событие с выходом предыдущего события через проверку Send Out. 15. Выберите вариант Relative Successive из раскрывающегося списка Туре и установите значение 99,7% во всех трех полях из области Scale Facto rs на панели параметров оператора Scale. 16. Введите в новое событие оператор Material Dynamic и назначьте в нем материал Smoke Trail. 17. В данном материале возраст частиц используется для определения непро- зрачности и цвета дыма, поэтому укажите срок жизни частиц, присоединив к событию Smoke Fade оператор Delete. 18. Установите в операторе Delete режим удаления частиц по возрасту, щелк- нув на кнопке-переключателе By Particle Age и введя значение 100 в поле Life Span, а также значение 10 в поле Variation из области Remove на панели параметров данного оператора. 19. Выберите вариант Geometry из раскрывающегося списка Туре на панели параметров оператора Display (рис. 18.40). Рис. 18.40. Завершенная блок-схема потока частиц, имитирующих след дыма
802 Часть VII. Частицы и динамика Итак, пикирующий биплан оставляет за собой след дыма, который постепенно уменьшается и исчезает (рис. 18.41). Однако этот след не оставляет траекторию полета биплана. Данный эффект необходимо далее дополнить боковым ветром, слегка развеивающим дым. Рис. 18.41. Завершенный эффект тянущегося следа дыма Развевающийся дым В следующем упражнении вам предстоит применить к следу дыма пространст- венные исказители, чтобы создать иллюзию его рассеяния ветром. Даже неболь- шой ветровой эффект способен внести в данную сцену гонкие черты реализма, без которых след дыма имеет слишком прямолинейный и симметричный вид. 1. Перейдите к окну вида сверху и создайте пространственный исказитель Drag щелкнув сначала на кнопке Space Warps панели Create, затем выбрав категорию Forces из расположенного ниже раскрывающегося списка и щелкнув на кнопке Drag (Торможение) (рис 18.42). Местоположение это- го пространственного исказителя особого значения не имеет. Пространственный исказитель Drag очень полезен для ввода элементов реализма в движение частиц, испытывающих силу инерции. Частицы, ими- тирующие дым, туман пыль или рассеивающиеся осколки, как правило, по степенно теряют количество движения, и такой эффект без труда воссозда- ется с помощью пространственного исказителя Drag.
Глава 18. Эффекты частиц 803 Рис. 18.42. Создайте пространственный исказитель Drag, чтобы замедлить движение частиц (на этом рисунке он показан вместе со своими параметрами на панели Modify) 2. Установите кадр 400 в поле Time Off из свитка Parameters пространствен- ного исказителя Drag. Этот важный шаг нередко упускается из виду. 3. Щелкните на кнопке-переключателе Linear Damping (Линейное демпфирова- ние) и установите значение 15% в полях X Axis, Y Axis и Z Axis того же свитка. 4. Создайте в том же окне вида сверху пространственный исказитель Wind (Ветер). Пространственный исказитель Wind применяет к частицам направленную силу и особенно полезен для создания вихревого движения. 5. Увеличьте до 3 значение параметра Strength в свитке Parameters данного пространственного исказителя 6. Для того чтобы придать данному эффекту дополнительную хаотичность, увеличьте до 3 значение параметра Turbulence (Зави: р ние) и установите значение 15 параметра Frequency в том же свитке (рис. 1 5.43). 7. Расположите пространственный исказитель Wind поперек плоскости каме- ры, повернув его на -30° вокруг оси Y и на -40° вокруг оси X в окне вида сверху (рис. 18.44).
804 Часть VII. Частицы и динамика Рис. 18.43. Создайте пространственный исказитель Wind, чтобы придать частицам дополнительное завихрение Рис. 18.44. Поверните пространственный исказитель Wind таким образом, чтобы си- ла его действия была направлена поперек плоскости камеры
Глава 18. Эффекты частиц 805 8. Для применения внешних сил к следу дыма перейдите к событию Smoke Fade в окне Particle View и вставьте в этом событии оператор Force непо- средственно перед оператором Delete. 9. Введите пространственные исказители DragO1 и WindOl в список Force Space Warps (Силовые пространственные исказители) на панели парамет- ров оператора Force. До применения этих внешних сил след дыма был идеально ровным (рис. 18.45), а после их применения данный эффект дополняется изящным элементом про- извольности (рис. 18.46). Рис. 18.45. Без произвольно действующих внешних сил след дыма выглядит слишком плавным и ровным
806 Часть VII. Частицы и динамика Рис. 18.46. После применения сил торможения и ветра след дыма приобретает более естественный, рваный вид Выделение частиц К одним из самых интересных свойств системы частиц Particle Flow хотя и находящих ограниченное применение, относится возможность выделять час- тицы в видовом окне вручную или по событиям и передавать их оператору про- верки. Это позволяет выбирать частицы в диалоговом режиме в зависимости от их положения на сцене и производить над ними особые манипуляции средствами системы частиц Particle Flow, что и будет продемонстрировано в следующем уп- ражнении. 1. Процесс выделения частиц потребует значительных вычислительных ресур- сов, поэтому отключите события Sparks, Scorch и Flames в окне Particle View. 2. Перейдите к кадру 400 и увеличьте изображение следа дыма в окне вида сверху. 3. Для того чтобы упростить выделение частиц, измените тип их отображе- ния на звездочки (Asterisks) в операторе Display в событии Smoke Fade. 4. Выделите пиктограмму источника частиц Lightning Strike и щелкните на кнопке Particle из свитка Select on на панели Mod fу, чтобы активизиро- вать режим выделения на уровне частиц (рис. 18.47).
Глава 18. Эффекты частиц 807 Рис. 18.47. Увеличьте изображение следа дыма, чтобы подготовить его к выделению частиц вручную 5. Воспользуйтесь инструментом Lasso Selection Region (Область выделения в виде лассо) или Rectangular Select on Region (Область выделения в виде прямоугольника) для произвольного выделения частиц вдоль следа дыма. Ес ли учесть, что сцена находится в кадре 40 0, то выделение может происходить не очень оперативно, т.е. с замедленной реакцией системы (рис. 18.48). 6. Вернитесь в окно Particle View и вставьте оператор Delete в событие Smoke Trail непосредственно перед проверкой Send Out. СОВЕТ Выделенные частицы могут быть направлены событиям с помощью проверки Split Selected, проверяющей на истину только выделенных частиц. 7. Щелкните на кнопке-переключателе Selected Particles Only (Только выделен- ные частицы) из области Remove на панели параметров оператора Delete. При этом будут удалены только частицы, выделенные в видовом окне (рис. 18.49). Следует, однако, иметь в виду, что выделять можно только час- тицы из одного источника. Выделение частиц из разных источников для по- следующей манипуляции ими в окне Particle View не допускается. 8. Выйдите из режима выделения частиц, измените тип отображения частиц на геометрическую форму (Geometry) в операторе Display в текущем со- бытии и вновь активизируйте события Sparks, Scorch и Flames в окне Particle View (рис. 18.50).
808 Часть VII. Частицы и динамика Рис. 18.48. Выделенные частицы обозначаются отдельным цветом в видовом окне, а общее их число указывается в нижней части свитка Selection Рис. 18.49. После удаления выделенных вручную частиц след дыма приобре- тает более рваный вид, как показано на этом рисунке в виде из камеры
Глава 18. Эффекты частиц 809 Delete 10 (Selected) Shape Facing 06 (CameraOl) Speed 07 (Along icon Arrow) Spin 01 (Particle Space 360 Smoke Tran ? Display 23 (Ticks) Send OU 04 (All) Scale 06 (Relative Successl. Meienai Dynamic 06 (S moke.. Display 24 (Geometry) Force 01 (DragOl +1) Delete 09 (By Aga 100110) Smoke Fede' ? Рис. 18.50. Завершенная блок-схема последовательных эффектов частиц, имитирующих удары молнии, искры, огонь и дым 9. Итак, поток частиц для имитации ударов молнии, искр, огня и дыма орга- низован, и теперь можно сохранить полученные результаты в кэше. Для этого скопируйте оператор Cache из события Lightning03 в глобальное событие Lightning Strike и обновите кэш. Учитывая сложность выпол- нения оператора Cache, возможно, придется увеличить объем доступной оперативной памяти. Доступный предел оперативной памяти устанавлива- ется в нижней части панели параметров оператора Cache. По умолчанию он составляет 100000 Кбайт. Если оперативной памяти недостаточно, по- пробуйте увеличить этот предел до 15 0 0 0 0 Кбайт. На этом организация потока частиц для имитации взрывных эффектов, ини- циируемых ударом молнии, завершается. В итоге удалось добиться полностью па- раметрической и в то же время произвольной анимации эффекта удара молнии, при котором автоматически формируются искры, пламя, дым и следы обгорания. До сих пор для управления потоком частиц в зависимости от положения объ- ектов на сцене или времени ее действия применялись проверки по сценарию и на столкновение. В следующем разделе вам предстоит совершить обратное: создать анимацию находящихся на сцене объектов по сценарию из потока частиц.
810 Часть VII. Частицы и динамика Сценарии из потока частиц Ранее в этой главе было показано, как с помощью столкновения на сцене со сферическим отражателем, связанным с бипланом, а также с помощью простои проверки по сценарию можно управлять излучением частиц. А в этом разделе для управления выбирается противоположное направление: движение находящихся на сцене объектов будет происходить под управлением сценария, создаваемого в окне Particle View. Для повышения гибкости организованной в поток системы частиц очень важ- но добиться влияния в обоих направлениях: как на частицы, так и со стороны частиц. Например, если тролль должен появиться на сцене только после исчез- новения последней частицы из волшебных чар, для перемещения каркасной мо- дели тролля на сцене можно воспользоваться сценарием, инициируемым в зави- симости от скорости движения частиц. В рассматриваемой здесь сцене будет создан сценарий из потока частиц для внесения элемента хаотичности в траекторию полета биплана в момент попада- ния в него молнии. Обратите внимание на сплайн flight path, который управляет перемеще- нием биплана по сцене. На данном сплайне можно выделить вершину, ближе все- го расположенную к точке попадания удара молнии, и организовать управление ее расположением с помощью фиктивного объекта и модификатора Linked XForm (рис. 18.51). Рис. 18.51. Фиктивный объект, управляющий частью траектории полета биплана вблизи точ- ки попадания молнии
Глава 18. Эффекты частиц 811 Если выделить фиктивный объект и перейти к свитку Ass gn Controller на па- нели Motion, то можно заметить, что для анимации этого объекта назначен кон- троллер Position List, состоящий из контроллеров Linear Position и Noise Position. Анализ свойств трека Noise Strength (для этого необходимо развернуть трек контроллера Noise Position и щелкнуть правой кнопкой мыши на треке Noise Strength) показывает, что величина интенсивности зашумления по осям X, Y и Z равна нулю. Это означает, что эффект зашумления в данном случае отсут- ствует (рис. 18.52). Именно этим треком вам и предстоит управлять по сценарию из потока частиц для организации в следующем упражнении движения при ударе молнии. □ election Levet £db-Ob eel | Peiametere Tr^ectctm Рис. 18 52 Для фиктивного объекта назначен контроллер Noise Position с исходным ну- левым значением интенсивности зашумления
812 Часть VII. Частицы и динамика 1. Вернитесь в окно Particle View и откройте сценарий в событии Script Holder. Сценарий для управления треком Noise Strength апимации фик- тивного объекта будет введен в части, начинающейся с метода on Proceed, непосредственно после строки объявления переменной StrikeFrame. Ис- ходный текст этого сценария находится в текстовом файле Project Files\Chl8_ParticleEffects\lightning_strike_script_final.txt на прилагаемом к этой книге DVD 2. Введите в текст сценария приведенные ниже строки (без комментариев). Во избежание опечаток рекомендуется скопировать их из указанного выше текстового файла. RampUpFrames = 3 Переменная RampUpFrames содержит число кадров в течение которых данный эффект будет нарастать от нуля до полной силы. EffectFrames = 3 В переменной EffectFrames указывается продолжительность действия эффекта в полную силу. RampDownFrames = 20 Переменная RampDownFrames определяет число кадров, выделяемых для последующего уменьшения эффекта до нуля. Effectstrength = 3000 Переменная Effectstrength определяет максимальное значение интен- сивности зашумления. ProgressFrame = pCont.particleTime StrikeFrame С помощью переменной ProgressFrame отслеживается продолжитель- ность применения эффекта зашумления по сценарию. При указанных выше величинах значение этой переменной будет увеличиваться от 1 до 2 6. if pCont.particleTime < StrikeFrame then SDummyOl.position.controller.NoisePosition.Noisestrength = (0, 0, 0] Если не достигнут предел, установленный в переменной StrikeFrame, значение интенсивности зашумления должно оставаться нулевым. Для ус- корения расчетов, выполняемых до удара молнии можно удалить эту стро- ку. Но если переместить ползунок временной шкалы анимации от кадра, со- ответствующего приблизительно средине выполнения данного сценария, к его началу, значение интенсивности зашумления не установится в нуль, а воспроизведение сцены начнется с ненулевого значения интенсивности зашумления. if (pCont.particleTime >= StrikeFrame) and (pCont.particleTime < (StrikeFrame + RartpUpFrames + EffectFrames + RampDownFrames) ) then Если текущий кадр находится в пределах установленной продолжительности действия данного эффекта, проверка будет продолжена со следующего условия. ( if ProgressFrame <= RampUpFrames then ( Currentstrength = ((ProgressFrame +0.1) / RampUpFrames) * Ef- fectstrength $Dummy01.position.controller.NoisePosition.Noisestrength =
Глава 18. Эффекты частиц 813 [Currentstrength, Currentstrength, CurrentStrengthJ ) Если текущий кадр находится в пределах периода нарастания данного эф- фекта, его интенсивность корректируется с учетом общего числа кадров, выделенных для нарастания эффекта. Значение 0,1 прибавляется во избе- жание нулевого результата, if (ProgressFrame > RampUpFrames) and (ProgressFrame <= (RampUpFrames + EffectFrames)) then ( Currentstrength = Effectstrength $Dummy01.position.controller.NoisePosition.Noisestrength = [Currentstrength, Currentstrength, Currentstrength] ) Если текущий кадр находится в пределах полного периода действия данно- го эффекта, устанавливается максимальное значение интенсивности за- шумления, if ProgressFrame > (RampUpFrames + EffectFrames) then ( Currentstrength ((RampDownFrames - (ProgressFrame - RampUp- Frames - EffectFrames) + 0.1) / RampDownFrames) * Effectstrength $Dummy01.position.controller.NoisePosition.NoiseStrength = [Currentstrength, Currentstrength, Currentstrength] ) Если текущий кадр находится в пределах периода убывания данного эф- фекта, интенсивность зашумления уменьшается с учетом общего числа кад- ров, выделенных для убывания эффекта. Значение 0,1 прибавляется во из- бежание нулевого результата. ) if pCont.particle1: ime > (StrikeFrame + RampUpFrames + EffectFrames + RampDownFrames) then $Dummy01.position.controller.NoisePosition.NoiseStrength = [0, 0, 0] Если текущий кадр оказывается после окончания данного эффекта, значе- ние интенсивности зашумления устанавливается в нуль. С помощью приведенного выше сценария можно изменять положение фик- тивного объекта в зависимости от момента попадания молнии (рис. 18.53). 3. Закройте редактор сценариев. Если он не закрывается или выдается сооб- щение об ошибке, проверьте сценарий па наличие опечаток, неправильно введенных имен переменных и несогласованных открывающих и закры- вающих скобок. При перемещении ползунка временной шкалы анимации в кадрах 275-301, т.е. на протяжении всего периода действия данного сценария, фиктивный объект на мгновение содрогнется от удара молнии, переместив биплан, а также испускаемые им частицы. Приведенный выше сценарий может послужить лишь толчком к углубленному изучению возможностей сценариев из потока частиц. Подробное рассмотрение вопросов написания сценариев выходит за рамки этой главы, поэтому за допол- нительной информацией на данную тему обращайтесь к главе 6, а также к спра- вочному руководству по MAXScript, оперативно доступному из главного меню по команде Help1^MAXScript Reference.
814 Часть VII. Частицы и динамика Рис. 18.53. Трек Noise Strength анимации фиктивного объекта корректируется по сцена- рию в зависимости от момента попадания молнии Завершающие штрихи Несмотря на то что поток частиц организован искомый эффект еще не за- вершен. Осталось ввести еще два завершающих штриха: облачную гряду над сце- ной, которая будет создана с помощью традиционной системы частиц, а также эффект сверкающей молнии, вводимых в окне Video Post. Частицы, неуправляемые событиями Сцене с бипланом недостает лишь одного эффекта частиц: облаков, из кото- рых исходят удары молнии. Если система частиц Part с е F 0W в большей степени подходит для создания в 3ds max сложных эффектов частиц, то традиционные системы частиц, которые по-прежнему доступны и требуют меньшего объема расчетов, следует применять во всех остальных случаях, когда можно вполне обойтись и без расширенных возможностей системы частиц Particle Flow. В сле- дующем упражнении система частиц Blizzard будет использована для получения оживляемой облачной гряды над сценой с бипланом.
Глава 18. Эффекты частиц 815 1. Перейдите к окну вида слева и сделайте этот вид крупнее, чтобы показать сцену полностью. Перейдите к панели Create, щелкните сначала на кнопке Geometry, затем ниже нее выберите категорию Particle Systems из раскры- вающегося списка и щелкните на кнопке Blizzard, чтобы создать крупную сис- тем}'частиц шириной 80000 единиц и длиной 15000 единиц (рис. 18.54). Рис. 18.54. Создайте крупную облачную гряду с помощью системы частиц Blizzard, показанной на этом рисунке вместе с панелью Modify ее параметров 2. 11ерейдите к окну вида в перспективе. Расположите систему частиц Blizzard приблизительно в точке координат (-60000, 50000,20000) (рис. 18.55). 3. Установите значение 100% в поле Percentage Of Particles (Количество ви- димых частиц в процентах) из свитка Basic Parameters. 4. Установите значение 1 в поле Use Rate (Использовать нормативное число истиц) из свитка Particle Generation (Формирование частиц). Если устано- вить количество видимых частиц менее 100%, их вообще не будет видно, так как каждая частица представляет собой отдельное облако. 5. Установите значение 100 единиц в секунду в поле Speed, а также значение 25% в поле Variation из области Particle Motion (Движение частиц) в свитке Particle Generation. 6. Для получения незначительного эффекта переворачивания частиц установи- те значение 1 параметра Tumble, а также значение параметра Tumble Rate (Частота переворачивания) в той же области из свитка Particle Generation.
816 Часть VII. Частицы и динамика Рис. 18.55. Расположите систему частиц Blizzard над бипланом и в стороне от камеры 7. Излучение частиц, имитирующих облака, должно начинаться до самой анимации, продолжаться на всем ее протяжении и оканчиваться лишь че- рез некоторое время после анимации. Для этой цели установите значение - 1000 в поле Emit Start (Начало излучения частиц), значение 350 в поле Emit Stop (Окончание излучения частиц), значение 400 в поле Display Until (Окончание отображения частиц), а также значение 1400 Life (Срок жизни частиц) из области Particle Timing (Временные характеристики частиц) того же свитка. 8. Облака должны быть достаточно большими и сохранять свои размеры на протяжении всей анимации. Для этого установите значение 3500 в поле Size, значение 50% в поле Variation, а также значение 0 кадров в полях Grow For (Период нарастания) и Fade For (Период убывания) из области Particle Size (Размеры частиц). Если перейти к видовому окну CameraOl и переместить ползунок по вре- менной шкале анимации то можно заметить, как частицы перемещаются по небу данной сцены слева направо (рис. 18.56).
Глава 18. Эффекты частиц 817 Рис. 18.56. Система частиц Blizzard распространяет частицы в верхней части окна ви- да из камеры 9. Для того чтобы замедлить вращение частиц, перейдите к свитку Rotation and Collision (Вращение и столкновение) и установите значение 1000 кад- ров в поле Spin Time (Время вращения), а также значение 75% в верхнем поле Variation из области Spin Speed Controls (Элементы управления скоро- стью вращения частиц). 10. Установите значение 100% в нижнем поле Variation из области Spin Speed Controls, чтобы частицы не вращались совершенно одинаково. 11. Оставьте без изменения стандартный тип частиц (Standard Particles) в свит- ке Particle Туре, однако измените их форму на Facing (Лицевые частицы). 12. Для предварительного просмотра плотности и размеров частиц щелкните на кнопке-переключателе Mesh (Каркас) из области Viewport Display (Отображение в видовых окнах) в свитке Basic Parameters. 13. Для частиц облаков заранее был подготовлен специальный материал. Назначь- те для данной системы частиц Blizzard материал Clouds (Облака) (рис. 18.57). Безусловно, более сложное скопление облаков можно создать с помощью сис- темы частиц Particle Flow или эффектов сгорания, но когда требуется быстро по- лучить эффект частиц, следует помнить, что для этой цели в вашем распоряже- нии по-прежнему имеются традиционные системы частиц (рис. 18.58).
818 Часть VII. Частицы и динамика Рис. 18.57. Облачная гряда, полученная из неуправляемой событиями системы частиц Blizzard Рис. 18.58. Полный набор параметров настройки системы частиц Blizzard
Глава 18. Эффекты частиц 819 Эффект видеомонтажа Последний эффект в сцене с бипланом (сверкание молнии) будет получен в окне Video Post. Сам по себе этот эффект довольно обычен, однако в системе частиц Particle Flow имеется возможность применять подобные эффекты визуа- лизации на уровне отдельных событий в потоке частиц, что и будет продемонст- рировано в следующем упражнении 1. Выберите команду Renderings Video Post из главного меню, чтобы открыть окно V deo Post НА ЗАМЕТКУ Не пользуйтесь диалоговым окном Object Properties выбранного источника час- тиц PF Source для установки идентификационных номеров каналов объектов, оскольку для каждого события в потоке частиц имеется отдельное диалоговое окно Object Properties и поля для ввода идентификационных номеров каналов объектов. 2. Введите событие сцены, используя видовое окно CameraOl. 3. Введите событие фильтрации изображения, выберите эффект Lens Effects Glow и щелкните на кнопке Setup, чтобы открыть диалоговое окно Lens Effect Glow. Обратите внимание на то, что во вкладке Properties данный эффект по умолчанию назначается для объектов с идентификационным номером 1. 4. Перейдите ко вкладке Preferences и установите значение 11 в поле Size из области Effect а также значе ие 50 в поле Intensity из области Color. Щелк- ните на кнопке ОК, чтобы закрыть данное диалоговое окно. 5. Введите событие вывода изображения, если требуется сохранить получен- ную выше анимацию. Для визуализации отдельных кадров это событие не треб} я (рис. 18.59). Рис. 18.59. Простая очередь видеомонтажа для применения эффекта сверкания
820 Часть VII. Частицы и динамика 6. Вернитесь в окно Particle View Выделите в трех потоках частиц, имити- рующих молнии, события, в которых формируются визуализируемые удары молнии, особенно события Lightning Main Bolt и Lightning Branch. Выделите события (по строкам их заголовков), а не операторы внутри них 7. Щелкните правой кнопкой мыши на одном из выделенных событий и вы- берите команду Properties из всплывающего контекстного меню чтобы от- крыть диалоговое окно Object Properties. 8. Установите значение 1 в поле Object Channe из области G-Buffer чтобы указать выбранные события для эффекта видеомонтажа (рис. 18.60). Рис. 18.60. Измените идентификационный номер канала объекта только для выделенных событий Несмотря на то что полученные выше удары молнии выглядят достаточно хорошо и без дополнительной видеообработки (рис. 18.61), небольшое свер- кание в качестве завершающего штриха им все же не помешает (рис. 18.62).
Глава 18. Эффекты частиц 821 Рис. 18.61. Удар молнии, полученный из частиц, без применения эффектов видеомонтажа Рис. 18.62. Удар молнии, полученный из частиц, после применения эффекта сверкания
822 Часть VI!. Частицы и динамика Резюме Возможности системы частиц Particle Flow настолько безграничны, что для се применения требуется лишь достаточная доля честолюбия и терпения. Несмотря па интенсивное использование вычислительных ресурсов для расчетов потока час- тиц, поведение частиц и их взаимодействие с находящимися па сцене объектами можно организовать любым мыслимым образом. Написание сценариев для управ- ления частицами дает- возможность полностью управлять большинством парамет- ров частиц и передавать управление от систем частиц к находящимся па сцене объ- ектам, а также инициировать события в потоке часгиц со стороны этих объектов В этой главе были рассмотрены эффекты частиц, получаемые самыми разны- ми методами: в виде тянущейся следом геометрической формы, многократно ис- пользуемых полученных экземпляров геометрической формы, рассеивающихся видов свечения и взрывных эффектов. Все эти методы можно применять с рав- ным успехом в самых разных ситуациях. Например, полет биплана по траектории нетрудно видоизменить, чтобы получить “свистящий” эффект рубящей сабли, а тянущийся за бипланом огненный след использовать для получения пары светя- щихся во тьме глаз. Если у вас есть желание продолжить изучение системы частиц Particle Flow на примере рассмотренной здесь сцены с бипланом, попробуйте выполнить следующее. • Создайте всенаправленный источник света, расположив его па сцепе таким образом, чтобы его свет совпал со вспышками молний. Напишите сценарии для последовательного перемещения этого источника света в положение каждого удара молнии, где он должен зажигаться и гаснуть. • Повысьте степень зашумления траектории полета биплана и активизируй- те эффекты пламени и дыма с самого начала, увеличивая масштабы огня с каждым ударом молнии. • Создайте новый вариант гибели биплана, разлетающегося на куски. Когда биплан исчезает в столпе попадающей в него молнии, сформируйте его куски и рассейте их в разных направлениях по нескольким траекториям. Применение системы частиц Particle Flow нс ограничивается созданием реа- листичных эффектов частиц. В частности, системы частиц нередко применяются в сложных графических заставках многих выпусков новостей и спорт ивпых про- грамм без физически точного воспроизведения внешних сил. Принимая во вни мание неограниченные возможности системы частиц PartsCle Flow, для работы над эффектами частиц следует руководствоваться не стандартной схемой органи- зации такой традиционной системы частиц, как Super Spray, а собственным ни- чем не сдерживаемым воображением.
Часть VIII Визуализация и компоновка 19 Основы визуализации 20 Усовершенствованная визуализация 21 Компоновка
ди задай Дуг Барнард Основы ВИ По завершении мо; лировайил текстурирования, освещения и анимации ступает время для вывода созданного ‘шедевра’ на небольшой экран.И в это момент должны проявить себя в полной мере.выбираемые слойЖЙе методики^ вывода конечного результата — по крайней мере, теоретически. В этой главе рас сматриваются основы визуализации ичиетоды оптимизации данного процесса.- Обработку объектов материалов, освещения и других данных о сцене для фор- мирования изображения можно формально считать определением визуализации В 3ds max доступны четыре основных метода визуализации: средство визуализации с активным затенением (ActiveShade), стандартное средство визуализации с по- строчной разверткой (Default Scanline Renderer), метод излучательности (Radiosity) и средство визуализации mental ray. В этой главе представлена в какой-то степени свободная интерпретация методов визуализации, что дает возможность рассмот- реть и другие способы формирования изображений в 3ds max 7. • ActiveShade. Быстрое средство визуализации для предварительного про- смотра сцены. • Стандартное средство визуализации с построчной разверткой. Основ- ной метод визуализации в 3ds max, представляющий собой удачный ком- промисс между быстродействием, простотой использования и качеством получаемого изображения. К дополнительным функциям средства визуали- зации с построчной разверткой относятся трассировка лучей, применение модуля Light Tracer и рисованное затенение. • Трассировка лучей. Алгоритм визуализации, при котором прослеживается путь следования луча света от его источника по всей сцене. Подобным спо- собом удается получить резко очерченные тени, а также реалистичные от- ражения и преломления. • Рисованное затенение. Метод отображения геометрической формы в сце- не таким образом, как будто она отретуширована от руки. При этом цвет- ные участки, как правило, обводятся черным контуром, чтобы придать им двухмерный вид. • Light Tracer Метод, обеспечивающий окрашивание и нерезкие тени От- лично подходит для воспроизведения ярко освещенных декораций и на ружных сцен. Пользоваться Light Tracer проще, чем методом излучательно- сти, а кроме того, он не пытается воссоздать физически точную модель.
826 Часть VIII. Визуализация и компоновка • Метод излучательности Средство физически точной визуализации, при- нимающее во внимание свет, отраженный от объектов. Этому методу отда- ют предпочтение архитекторы, поскольку они проектируют здания так, как они освещены. • mental ray. Высококачественное средство визуализации, поставлявшееся ранее отдельно, а теперь входящее в состав Sds max. Этот модуль применя- ется во многих видах голливудской продукции. Он обеспечивает выдаю- щееся качество изображения, хотя и за счет быстродействия и простоты использования. • Телевизионные стандарты NTSC и PAL. Разные стандарты вещательного те- левидения применяемые во всем мире. Стандарт NTSC (с частотой 29,93 кадра или 60 полей в секунду) распространен в Северной Америке, в большей части Центральной и Южной Америки и в Японии. Стандарт PAL (с частотой 25 кад- ров или 50 полей в секунду) распространен в большинстве стран Европы. НА ЗАМЕТКУ При выводе в файл с расширением .vue выводится также текстовый файл в ко- де ASCII, используемый в других средствах визуализации, хотя в этой главе дан- ный метод не рассматривается Средство визуализации ActiveShade Первый метод визуализации позволяет просматривать сцену в окне с ограничен- ными возможностями диалогового режима работы. Вам, скорее всего, уже приходи- лось просматривать сцену в окнах вида из камеры, в перспективе или пользователь- ского вида, используя режим Smooth + Highlights (Сглаживание и подсветки) Этот режим удобен для моделирования и общей организации сцены, однако он не обеспе- чивает должное воспроизведение взаимодействия освещения и материалов в сцене. Средство визуализации ActiveShade восполняет пробел между простым зате- нением в окне и качественным воспроизведением, обеспечиваемым окоичатель ной визуализацией. При этом визуализация выполняется в два этапа. Сначала происходит инициализация, во время которой вся геометрическая форма вычис- ляется и подготавливается к следующей стадии. На стадии обновления получен- ного затенения визуализация завершается и результат выводится на экран. При внесении изменений в материалы или освещение для отображения этих измене иий необходимо пройти лишь стадию обновления. ActiveShade очень удобно использовать для пробной визуализации, поскольку для сложной окончательной визуализации, особенно с применением усовершен- ствованного освещения или mental ray, приходится специально настраивать се ответствующие параметры в диалоговом окне Render Scene. При этом поиск и выявление ошибок можно выполнять в окне ActiveShade, не настраивая пара- метры визуализации. Ведь поздно вечером после спешной правки сцены можно легко забыть о том, что нужно опять установить флажок Save Fee диалоговом окне Render Scene. Впрочем о правильной методике подготовки к окончатель- ной визуализации речь пойдет далее в этой главе
Глава 19. Основы визуализации 827 Доступ к средству визуализации ActiveShade Доступ к ActiveShade осуществляется несколькими путями, но прежде всего необходимо сделать выбор между выводом результатов визуализации в видовое окно или отдельное перемещаемое окно. У каждого из этих способов имеются свои достоинства и недостатки. Видовое окно ActiveShade позволяет экономно использовать рабочее пространство па экране монитора, но в то же время в нем допускается выделение объектов лишь по очереди и не отображаются автомати- чески изменения, происходящие в результате преобразований или дополнитель ных правок. Если выбрать перемещаемое окно, все виды сцены останутся без из- менения, но, как правило, вывод в это окно приходится многократно повторять, постоянно открывая и закрывая его, прежде чем удастся добиться удовлетвори- тельного результата (рис 19.1). Одновременно может быть открыто только одно окно ActiveShade, а его размеры определяются параметрами вывода в файл, на- страиваемыми в диалоговом окне Render Scene. Рис. 19 1. Окно ActiveShade Средство визуализации ActiveShade вызывается тремя способами. • Из главного меню Выберите команду Rendering1^Act veShade Floater (Визуализация^ Перемещаемая панель ActiveShade) или Renderings ActiveShade Viewport (Визуализация^Видовое окно ActiveShade). • Из основной панели инструментов. Выберите инструмент Render Scene и щелкните на кнопке-переключателе ActiveShade в нижпей части открыв-
828 Часть VIII. Визуализация и компоновка шегося диалогового окна Render Scene. Можно также щелкнуть на инстру- менте Quick Render (Production) и, не отпуская кнопку мыши, открыть окно ActiveShade из всплывающей панели. • Щелчком правой кнопкой мыши на метке видового окна Выберите из всплывающего контекстного меню команду Views4>ActiveShade. НА ЗАМЕТКУ Если преобразовать видовое окно к виду ActiveShade то в последнем будет отсут- ствовать привычная метка для смены вида щелчком правой кнопкой мыши. Для этой цели имеются два способа. Во-первых, можно выбрать из главного меню ко- манду Customize^V ewport Configuration (Специальная настройка^Конфигурация видовых окон), перейти к вкладке Layout (Схема расположения) в открывшемся диалоговом окне Viewport Conf guration, щелкнуть на виде Act veShade и выбрать из всплывающей панели походящее видовое окно. Во-вторых, можно щелкнуть пра- вой кнопкой мыши в видовом окне Act veShade и выбрать команду Close из левого верхнего квадранта в квадратном меню Q СОВЕТ______________________________________________________________________ Если выбрано средство визуализации ActiveShade, для обновления окна Active- Shade достаточно нажать комбинацию клавиш < Shift+Q>, обычно используе- мую для быстрой визуализации. Видовое окно ActiveShade подобно перемещаемому окну ActiveShade, которое располагается поверх видовых окон Если закрыть видовое окно ActiveShade, на этом месте произойдет автоматический возврат к предыдущему виду. Переме- щаемое и видовое окна ActiveShade нельзя развернуть на весь экран, но в то же время на геометрическую форму в этих окнах можно перетаскивать материалы, как и в обычных видовых окнах. Если выделить объект, в окне ActiveShade будет обновлен только он Команды и ограничения ActiveShade На панели инструментов, расположенной в верхней части окна ActiveShade, доступен ряд уникальных функций Визуализированное изображение может быть сохранено в натуральную величину А дополнительные копии окна получаются с помощью инструмента Clone Rendered Frame Window (Клонирование окна визуа- лизированного кадра). Каналы красного, зеленого и синего, а также альфа-канал и монохромный вариант изображения можно просматривать по отдельности с помощью соответствующих кнопок панели инструментов в окне ActiveShade Q СОВЕТ________________________________________________________________ Если щелкнуть в видовом окне Act veShade а затем нажать клавишу пробела появится панель инструментов При повторном нажатии клавиши пробела эта панель исчезает.
Глава 19 Основы визуализации 829 Если щелкнуть в окне ActiveShade, одновременно нажав клавишу <Ctrl>, изо- бражение увеличится. Если щелкнуть правой кнопкой мыши, одновременно на- жав клавишу <Ctrl>, оно станет мельче А для панорамирования достаточно щелк- нуть в окне ActiveShade, одновременно нажав клавишу <Shift>. При наличии мы- ши с колесиком масштаб изображения в окне ActiveShade можно изменять вра- щением этого колесика, а при его нажа ии— осуществлять панорамирование подобно тому, как это делается в любом видовом окне 3ds max. Щелчком правой кнопкой мыши в окне ActiveShade вызывается соответст- вующее квадратное меню (рис. 19-2). Рис 19.2. Квадратное меню ActiveShade Команды в верхней части этого меню предоставляют доступ к окну Mate- rial/Map Browser, редактору материалов, диалоговому окну Render Scene и по- следнему варианту визуализации (Render Last). Чаще всего используется команда Views Close доступная в левом верхнем квадранте, а также команда Initialize, дос- тупная в правом нижнем квадранте этого меню. Для возврата к предыдущему виду лучше всего выбрать команду Close, а команду Initialize следует выбирать всякий раз, когда в сцену вносятся изменения, которые не обновляются автоматически в окне ActiveShade. Несмотря на довольно приличное качество изображения в окне ActiveShade, оно все же не может сравниться с качеством, достигаемым при окончательной визуализации. Прежде всего, в данном случае отсутствуют атмосферные эффекты (огонь, туман и объемное освещение). Кроме того, не воспроизводятся эффекты визуализации и тени, формируемые методом трассировки лучей, а отображаются лишь тени, формируемые методом проецирования карты теней. И наконец, мас- ки, отражения и фильтры воспроизводятся с пониженным качеством ради уско- рения визуализации. Более полные сведения по данному вопросу можно получить в оперативной справочной системе 3ds max Диалоговое окно Render Scene Для получения реальных результатов требуется окончательная визуализация сцены. Доступ к диалоговому окну Render Scene (рис. 19.3) осуществляется из главного меню с помощью команды Renderings Render или щелчка на кнопке Render Scene из основной панели инструментов.
830 Часть VIII. Визуализация и компоновка Рис. 19.3. Вид диалогового окна Render Scene с выбранной вкладкой Common Возможно, материал этого раздела покажется не очень интересным, однако он призван помочь вам избежать неудачных результатов визуализации. Если вам и не приходилось настраивать малоизвестные параметры визуализации, на вас может быть возложена ответственность за окончательный вывод в файл сцены, создан- ной вашими коллегами. Вкладка Common Первая область Time Output (Временные рамки вывода) во вкладке Common предназначена для настройки на визуализацию неподвижных изображений или всей анимации. Назначение большинства параметров в этой области не требует особых пояснений, кроме двух следующих параметров. Так, параметр Every Nth Frame (Через каждые N кадров) позволяет пропускать кадры анимации, что удоб- но для проверки продолжительной и сложной анимации А параметр F е Number Base (Основание для нумерации файлов) указывает начальный номер кадра для последовательной нумерации файлов неподвижных изображений путем прира- щения этого номера на единицу. Как правило, нумерация начинается с кадра 0001, а не 0000. Так, если требуется визуализировать 60 кадров, последним в этой последовательности будет кадр 0060. Если же начинать нумерацию с кадра 0000, то последний кадр в данной последовательности будет иметь номер 0059. Начи-
Глава 19. Основы визуализации 831 нать нумерацию с кадра 0001 удобно для последующей компоновки и монтажа в других приложениях. Кроме того, такой порядок нумерации избавляет от необ- ходимости постоянно добавлять или вычитать 1 из номера кадра, что в конечном итоге может привести к ошибкам во время производства. В области Output Size (Выходной размер) указываются не только размеры окончательно визуализируемого изображения в пикселях. В этой области выход- ные размеры окончательно согласуются с форматами настоящих камер, в чем вам еще предстоит поупражняться далее в этой главе. Выходные размеры определяются предварительно заданной шириной и высо- той, т.е. форматом изображения (Image Aspect), пропорциями элемента изобра- жения, т.е. квадратиостыо пикселей (Pixel Aspect) и шириной апертуры объекти- ва (Aperture Width). Так, зафиксировав с помощью кнопки с пиктограммой замка формат изображения, можно быстро перейти от визуализации в файл с выход- ным размером 640x480 пикселей к визу.ыизации с выходным размером 1280x960 пик- селей, изменив лишь одно из этих числовых значений, а другое значение в дан- ной пропорции настраивается автоматически. Кроме того, для визуализации можно выбрать предварительно заданные размеры, щелкнув на соответствующей кнопке в правой части данной области. В области Options (Дополнительные режимы визуализации) из вкладки Com- mon имеются следующие флажки. • Atmospherics (Атмосферные явления). Устанавливается для визуализации обычного и объемного тумана, объемного освещения и oi иевых эффектов, имеющихся в сцепе. Атмосферные явления более подробно рассматрива- ются далее в этой главе. • Effects (Эффекты). Управляет воспроизведением эффектов в объективе, размытости, яркости, контраста, цветового баланса, глубины резкости, зернистости пленки, размытости движения и вывода в файл. • Displacement (Смещение). Включает и отключает режим проецирования кар- ты смещения в сцене. В этом режиме многоугольники создаются по ходу дела, что позволяет существенно сократить продолжительность визуализации. НА ЗАМЕТКУ Если сбросить три упомянутых выше флажка, то при поиске и выявлении оши- бок в сцене можно существенно ускорить процесс визуализации. Не забудьте установить эти флажки перед окончательной визуализацией сцены! • Video Color Check (Проверка цвета видеоизображения). Выделяет все пик- сели, которые пе соответствуют нормам на воспроизведение цветов по стандартам PAL и NTSC (определение этих стандартов приведено в начале этой главы) Как правило, такие пиксели визуализируются черным цветом, хотя этот цвет можно изменить во вкладке Rendering диалогового окна Preference Settings. В частности, красный цвет особенно подходит для вы- явления с помощью такой проверки окрашивания отдельных участков ви- зуализированного изображения.
832 Часть VIII. Визуализация и компоновка • Render to Fields (Визуализация полей). Такая визуализация последовательно- го ряда изображений позволяет выводить анимацию на телевизионный мо- нитор с построчной разверткой. При этом сначала отображаются нечетные строки развертки, а затем четные. Такой режим визуализации позволяет ис- ключить растрескивание и спекание отдельных пикселей, хотя и имеет не- желательный побочный эффект пропадания пикселей. Но лучше всего по- добную визуализацию выполнять в приложении компоновки или монтажа. Порядок следования полей устанавливается во вкладке Rendering диалогово- го окна Preference Settings. Этот порядок должен совпадать с установленным в приложении монтажа, иначе видеоизображение будет подрагивать. • Render Hidden Geometry (Визуализация скрытой геометрической формы). Визуализирует всю геометрическую форму, находящуюся на сцене: как скрытую, так и видимую. Но если в диалоговом окне Object Properties для отдельной геометрической формы сброшен флажок Renderable, она все равно не визуализируется. • Area Lights/Shadows as Points (Визуализация поверхностных источников све- та и теней как точечных). Визуализирует все поверхностные источники света и тени как точечные источники света. Такой режим позволяет ускорить ви- зуализацию, хотя и за счет ухудшения качества отбрасываемых теней. • Force 2-Sided (Принудительная двухсторонняя визуализация). Удобен для визуализации объектов с необычными отверстиями, особенно тех, которые импортируются из файлов с расширением . df х и имеют такой вид, будто им недостает многоугольников. В данном режиме визуализация замедляет- ся, и поэтому он применяется лишь в качестве временной меры для устра- нения недостатков в геометрической форме объектов. В идеальном случае нормали во всех моделях должны быть направлены в одну, нужную сторону. • Super Black (Совершенно черный). Применяется, главным образом, для то- го, чтобы отличить во время компоновки темный объект от фона. Порого- вое значение совершенно черного цвета устанавливается в поле Threshold из вкладки Rendering диалогового окна Preference Settings Как правило, упомянутые выше флажки оставляют в устанавливаемом по умолчанию состоянии, хотя ничто не мешает проверить их состояние перед про- должительной визуализацией. Флажок Use Advanced Lighting (Использовать усо- вершенствованное освещение) из области Advanced Lighting обычно оставляют установленным, поскольку параметры усовершенствованного освещения на- страиваются в отдельной вкладке диалогового окна Render Scene Сброс этого флажка не оказывает влияния на продолжительность визуализации, если в сцене не используется усовершенствованное освещение. СОВЕТ Для прокрутки диалогового окна Render Scene и отображения его недоступной области достаточно поместить курсор на пустом участке этого окна, а затем пе- ре ащить его, когда он примет вид руки.
Глава 19. Основы визуализации 833 В области Render Output имеется кнопка Files для доступа к окну Render Output File (Вывод результатов визуализации в файл). В этом окне указывается местопо- ложение файлов, в которых визуализированные изображения сохраняются в сле- дующих форматах. • .avi. Стандартный для Windows формат хранения и воспроизведения ани- мации и перемежающейся аудиовизуальной информации. Для поддержки файлов этого формата в системе необходимо установить специальный кодек. • . bmp. Стандартный для Windows формат растровых изображений, поддер- живающий 8- и 24-разрядиые изображения. • . cin. Формат Cineon фирмы Kodak, обеспечивающий по 10 разрядов на каждый капал изображения и представляющий собой подмножество фор- мата ANSI/SMPT DPX. Применяется в профессиональных системах компо- новки на высококачественной пленке. • . рсх, . ps. Инкапсулированным PostScript. Этот формат удобен для систем допечатной подготовки. Его параметры настройки позволяют установить формат страницы и разрешение. Подробнее об этом речь пойдет в разделе “Выбор формата страницы” далее в этой главе. • .flc, . f li, . cel. Устаревший формат Autodesk Flic, применяющийся для получения анимации и неподвижных изображений с ограниченной палит- рой цветов. • .hdr, .pic. Форматы изображений с расширенным динамическим диапа- зоном (HDRI), применяемые для создания в сценах окружающего фона, хо- тя и не без трудностей. • -jpg, - jpe, • lPeS- Формат сжатия изображений с потерями, позволяю- щий получать весьма компактные файлы. • . mov. Анимационный формат QuickTime. • . png. Формат переносимой сетевой графики. Изображения этого формата могут иметь до 48 разрядов, т.е. 281 триллион цветов и встроенную непро- зрачность. • . rgb, . sgi. Фррмат изображений, разработанный компанией Silicon Graphics. • . ria. Формат растровых изображений, разработанный компанией Wavefront. В этом формате можно сохранять дополнительные каналы информации вклю- чая идентификационные номера объектов, каналы эффектов в материалах и данные рехмерной глубины. Особенно полезен для компоновки. • .rpf. Расширенный вариант формата . ria, предоставляющий больше возможностей для экспорта каналов информации. Основной формат для переноса файлов в приложение компоновки combustion компании discreet. • .tga, .vda, .icb, .vst. Формат изображений Targa. Стандартный формат, воспринимаемый большинством графических приложений. В этом формате допускается сжатие без потерь и наличие альфа-канала в изображении.
834 Часть VIII. Визуализация и компоновка НА ЗАМЕТКУ В диалоговом окне Targa Image Control, открывающемся при выводе визуализи- рованных изображений формата Targa, следует оставить установленным флажок Pre-Multiplied Alpha (Умноженный в обратном порядке альфа канал), поскольку в этом случае во внимание принимается задний план, на фоне которого сглажива- ется остальная часть изображения Если же сбросить этот флажок, в изображе- нии появятся неровные участки. • . tif. Формат файлов изображений, помеченных признаками. Пригоден для допечаткой подготовки изображений с определенным разрешением в точках на дюйм. • . dds. Формат DirectDraw Surface, разработанный компанией Microsoft. Применяется в игровых механизмах для вывода изображений с перемен- ным разрешением (в режиме множественного отображения). НА ЗАМЕТКУ Файлы формата MPEG (т.е. с расширением .mpg) можно вводить в виде текстур, но не выводить в виде визуализированных изображений. Уделяйте особое внимание типу вывода в файл, принимая во внимание воз- можные последствия выбора формата файлов. Рекомендуется вкратце обсудить этот вопрос с коллегами (и даже получить быстро визуализированный образец), чтобы избежать длительных повторных визуализаций. Вывод результатов визуализации в 3ds max может быть направлен и на внеш- нее устройство, в том числе и на уст ройство записи на пленку. Список установ- ленных драйверов таких устройств открывается щелчком на кнопке Devices в об- ласти Render Output. Во вкладке Common осталось рассмотреть три последних параметра. Это фла- жок Rendered Frame Window (Окно визуализированного кадра), позволяющий ото- бражать каждый кадр после его визуализации; флажок Skip Ex sting Images, допус- кающий пропуск уже визуализированных изображений в последовательности кад- ров, а также флажок Net Render, активизирующий режим сетевой визуализации. В тех случаях, когда приходится отсутствовать на рабочем месте, можно органи- зовать отправку электронных сообщений с последними новостями о ходе визуали- зации на свой карманный компьютер, выполняющий функции личного цифрового секретаря. В нижней части вкладки Common находится свиток Email Notifications (Уведомления по электронной почте) где имеются все необходимые для этой цели элементы управления. Если к этому добавить еще шлюз почтовой и пэйджерной связи, то можно организовать отправку на пэйджер оперативных сообщений о сбо- ях во время визуализации Компания Corybant предлагает продукт IVEENA Priority Voice Email с аналогичными возможностями вызова по сотовому телефону. Это придает совершенно новый смысл понятию “визуализации на ногах”. И в последнем свитке Assign Renderer (Назначение средства визуализации) во вкладке Common имеется возможность назначить mental ray или другой установ- ленный подключаемый модуль независимого производителя в качестве стандарт- ного средства окончательной визуализации.
Глава 19. Основы визуализации 835 Потратив время па установку всех перечисленных выше параметров визуализа- ции, можно сохраним, их в файле предварительно заданных параметров, выбирае- мом из раскрывающегося списка в нижней части диалогового окна Render Scene. Это позволяет сохранить согласованность процесса визуализации и упрощает пе- реход от пробной к окончательной визуализации. В указанном раскрывающемся списке доступен целый ряд наборов предварительно заданных параметров визуали- зации, которые можно использовать для начала в качестве образца. Вкладка Renderer Следующий набор параметров визуализации находится во вкладке Renderer, рас- положенной рядом с вкладкой Common в диалоговом окне Render Scene (рис. 19.4). Рис. 19.4. Диалоговое окно Render Scene с выбранном вкладкой Renderer
I 836 Часть VIII. Визуализация и компоновка Параметры из области Options в данной вкладке служат в основном для уско- рения пробной визуализации, а также для поиска и выявления ошибок. Состоя- ние флажков в этой облает и рекомендуется предварительно записать, чтобы вер- нуться к ним, если потребуется, перед окончательной визуализацией. Если установлен флажок Enable SSE, в средстве визуализации используются расширения для организации вычислений с одним потоком команд и многими по- токами данных (SSE — Streaming SIMD Extensions). Так если имеется компьютер на базе процессора Pentium III или более совершенной модели ЦП данного типа, включая Celeron и AMD с режимом 3dNow, то применение расширений SSF. позво- ляет ускорить процесс визуализации В этом случае используются преимущества точных расчетов с плавающей точкой в 3ds max. По умолчанию флажок Enable SSE сброшен. Сглаживание Благодаря сглаживанию устраняются неровные края па диагональных ребрах и кривых линиях. Как правило, приемлемых результатов сглаживания удается до- биться и при выбираемом по умолчанию варианте Area (Поверхностный фильтр) в раскрывающемся списке Filter (рис. 19.5). Сглаживание результатов визуализа- ции определяет внешний вид изображения и может искусно применяться для усиления фантастических сцен или намеренного повышения резкости изображе- ния Если менее резкое изображение создает ощущение мечтательности, то более резкое изображение подходит для печати архитектурных проектов. Рис. 19.5. Поверхностное сглаживание — отличный вариант выбора по умолчанию
Глава 19. Основы визуализации 837 В 3ds max имеется возможность для выбора самых разных методов сглажива- ния. Так, сглаживание по методу Б экмена (Blackman) дает очень резкое изобра- жение и может использоваться для имитации результатов визуализации в прило- жении Lighwave 3D. Сглаживание по методу Кэтмалла-Рома (Catmull-Rom) пред- ставляет собой общедоступный вариант метода, применяемого в продукте Pho- toRealistic RenderMan студии Pixar. Сглаживание по методу Video дает нерезкие края и пригодно для компоновки с отснятым видеоматериалом, хотя визуализи- рованное изображение может выглядеть слишком размытым. Если отснятый ви- деоматериал оказывается размытым в большей степени, чем визуализированное изображение трехмерной сцены, данный метод позволяет добиться еще более точного согласования при компоновке. Аналогично остальным параметрам на- стройки в 3ds max, выбранный метод сглаживания должен пройти проверку пробной визуализацией, как это обычно делается на протяжении всего процесса производства. В напечатанном виде эффекты сглаживания едва заметны. Соот- ветствующие примеры пробной визуализации можно найти в папке Project Files\Chl9_BasicRendering\AAtests на прилагаемом к этой книге DVD Избыточная выборка Избыточная выборка представляет собой дополнительный проход сглажива- ния, выполняемый для карт, назначаемых в редакторе материалов. Она применя- ется главным образом в тех случаях, когда артефакты размытия искажают весьма детализированную текстуру. Это не относится к выводу на видеоноситель или в игровой механизм, поскольку избыточная выборка дает эффект, который едва ли можно заметить, но для получения которого требуется немало времени. Если же визуализация выполняется при графическом оформлении продукции или архитектурном проектировании, она имеет решающее значение для получе- ния окончательной иллюстрации. Несмотря на то что основные элементы управ- ления избыточной выборкой находятся во вкладке Renderer, управлять ею лучше всего на уровне отдельных материалов. Вследствие временных ограничений, как правило, избыточная выборка всей сцены не выполняется (рис. 19.6). Ее полезно отключать перед пробной визуализацией, а перед окончательной визуализацией следует непременно включить! Примеры визуализации с избыточной выборкой можно найти в папке Project Files\Chl9_BasicRendering\SS tests на прилагаемом к этой книге DVD. НА ЗАМЕТКУ Слишком малые размеры текстурных карт сводят на нет преимущества избыточ- ном выборки в силу присущей им размытости. Для этой цели не годятся и карты, представленные в таких форматах изображений со сжатием с потерями, как JPEG. В остальных областях из вкладки Renderer находятся параметры для много- кратной визуализации карт автоматических отражений и преломлений (область Auto Ref с Re a t Maps), ограничения цветового диапазона (область Color Range Limiting) и управления памятью (область Memory Management). Так, в поле Rendering Iterations (Число повторов визуализации) указывается число взаимных
838 Часть VIII. Визуализация и компоновка отражений визуализируемых объектов. Для визуализации зеркальной поверхно- сти достаточно ввести в этом поле значение 1. Если же на такой поверхности на- ходится зеркальный шар, данное значение необходимо увеличить до 2, чтобы увидеть отражения на обоих объектах. Рис. 19.6. Активизация методов избы- точной выборки в редакторе материалов В 3ds max имеются два способа для ограничения цветов, находящихся вне за данного диапазона, аналогичных цветам очень ярких зеркальных подсветок. По- сле щелчка на кнопке-переключателе Clamp (Фиксация) из области Color Range Limiting ограничивается яркость, а после щелчка на кнопке-переключателе Scale оттенок цвета в освещении сцены. Как правило, лучше оставить выби- раемую по умолчанию кнопку-переключатель Clamp Если постоянно не хватает оперативной памяти, ее следует нарастить. Но если установить флажок Conserve Memory (Сохранить память) в области Memory Mana- gement, то можно сэкономить 10-15% оперативной памяти, хотя и за счет увели чения продолжительности визуализации на 5%. Г( НА ЗАМЕТКУ__________________________________________________________ Как только 3ds max перейдет к страничному обмену с виртуальной памятью, этот процесс будет продолжаться вплоть до перезапуска данного приложения. При этом существенно замедляется визуализация всех последующих изображении.
Глава 19. Основы визуализации 839 Вкладка Raytracer Метод трассировки лучей довольно изящно реализован в 3ds max в виде от- дельного средства трассировки лучей, включенного в состав стандартного сред- ства визуализации с построчной разверткой и вступающего в действие только в том случае, если в этом есть необходимость. Следовательно, отключив это сред- ство, можно ускорить визуализацию, если, конечно, в сцене не используются ма- териалы и карты типа Raytrace, а также тени, формируемые методом трассиров- ки лучей, и поверхностные тени. Как показано на рис. 19.7, трассировке лучей присуща своя форма сглаживания, которая по умолчанию отключена. На данном проходе сглаживания выполняется обработка изображений, представленных в отражениях, что может существенно замедлить визуализацию. Во многих случаях недостатки сглаживания устраняются еще на первом проходе визуализации или сводятся к минимуму с помощью размы- тости движения. Если же сцена содержит крупный план отражения в зеркале, фор мируемого методом трассировки лучей, сглаживание в материале Raytrace должно быть применено, но крайней мере, в завершающем фиксируемом кадре. Рис. 19.7. Диалоговое окно Render Scene с выбранной вкладкой Raytracer
840 Часть VIII Визуализация и компоновка В области Ray Depth Control (Управление глубиной трассировки лучей) указы- вается число отражений лучей света но всей сцепе. Как правило, луч исходит из источника света, отражается от объекта и понадает в объектив камеры. Если же объект отражается в других объектах, находящихся на сцене, то необходимо по- ложить разумный предел числу его отражений. На рис. 19.8 и 19.9 этот принцип иллюстрируется путем изменения значения в поле Maximum Depth (Максимальная глубина трассировки лучей). Обратите вни- мание па то, что при исчерпании числа отражений изображение заменяется чер- ным цветом. Рис. 19.8. Отражения при устанавливаемом по умолчанию значении 9 параметра Maximum Depth
Глава 19. Основы визуализации 841 Рис. 19.9. Отражения при значении 1 параметра Maximum Depth. Сцена визуализиру- ется быстрее, хотя и за счет потери отражений | НА ЗАМЕТКУ________________________________________________________ Строго говоря, число отражений является свойством отражения материала Ray- trace и не имеет никакого отношения к проецированию карт типа Flat Mirror (Плоское зеркало). При наложении подобных карт для формирования отраже ний выполняется дополнительный проход визуализации. Попробуйте поэкспериментировать с отражениями лучей света, открыв сцепу из файла Project Files\Chl9_BasicRendering\raytrace.max на прила- гаемом к этой книге DVD. В примерах визуализированных изображений сцены, приведенных па рис. 19.8 и 19.9, для выполнения дополнительного прохода сглаживания в области Global Ray Antialiaser (Средство глобального сглаживания трассировки лучей) было активизи- ровано средство быстрого адаптивного сглаживания (Fast Adaptive Antialiaser). Бла- годаря этому отражения получились резкими и были исключены артефакты по кра- ям теней
842 Часть VIII Визуализация и компоновка Диалоговое окно Environment and Effects Такие эффекты, как огонь, туман и объемное освещение, вводятся в сцену во вкладке Environment диалогового окна Environment and Effects (Окружение и эф- фекты), которое открывается с помощью команды Rendering^Environment из главного меню. Даже если сцепа не является наружной, и тем более в пасмурный день, введя немного тумана, можно внести в нее реалистичный эффект глубины. Городская сцена, приведенная на рис. 19.10, кажется плоской, малоинтересной и похожей на заставку. В силу характера данного кадра съемки глубина резкости в данном случае не требует ся, поскольку вся сцена должна быть в фокусе. Рис. 19.10. Городская сцена без эффекта глубины Ввод атмосферной дымки В следующем упражнении в городскую сцеп}' будет введена дымка, дающая ориентир глубины. 1. Скопируйте па жесткий диск папку Pro j ect Files\Chl9_BasicRendering\ City из прилагаемого к этой книге DVD. Откройте сцену из файла \City\city.шах и сохраните ее в соответствующей подпапке па жестком дис- ке, выбрав команд} Save As и присвоив ее файлу имя cityOl .max.
Г лава 19. Основы визуализации 843 2. Выберите из главного меню команду Renderings Environment, чтобы от- крыть диалоговое окно Environment and Effects. Щелкните сначала на вкладке Environment (рис. 19.11), а затем на кнопке Add в свитке Atmosphere (Атмосфера) и выберите из списка эффектов элемент Fog (Туман). Рис. 19.11. Диалоговое окно Environment and Effects с эффектом тумана, выбран- ным во вкладке Environment 3. Если переместить курсор к пустому участку во вкладке Environment он из менит свой вид на изображение руки. Выполните в этой вкладке прокрутку вверх, чтобы увидеть свиток Fog Parameters (Параметры тумана) 4. Щелкните на образце цвета и выберите в селекторе цвета бледно-голубой цвет (например, со значениями RGB: 218 , 241, 252). 5. Сбросьте флажок Fog Background (Фон тумана), чтобы дымка не охватыва ла небо на заднем плане сцены.
844 Часть VIII. Визуализация и компоновка 6. Установите значение 30% в поле Far (Удаленность) из области Standard в свитке Fog Parameters. Закройте диалоговое окно Environment and Effects, чтобы оно не мешало работать со сценой. Итак, половина дела сделана. Пределы действия тумана устанавливаются в свитке параметров камеры. 7. Щелкните в текущем видовом окне на камере Cam GROUND (Камера на уровне земли) Перейдите к панели Modify и установите флажок Show (Показывать) в области Environment Ranges (Пределы окружения) из свит- ка параметров камеры. В поле зрения конуса камеры появятся две перпен- дикулярные линии с прямоугольником. 8. Установите нулевое значение в поле Near Range (Ближний предел) и уве- личивайте значение в поле Far Range (Дальний предел) до тех пор пока упомянутый выше прямоугольник не окажется за пределами последнего здания в сцене. Значение в поле Far Range должно быть при этом равно около 1400 (рис 19.12). Рис. 19 12. Пределы действия окружения, установленные для камерь 9. Активизируйте видовое окно Cam GROUND, а затем щелкните на кнопке Quick Render (Production) основной панели инструментов, чтобы увидеть полученный результат (рис. 19.13)
Г лава 19. Основы визуализации 845 Рис. 19.13. Небольшая дымка придает сцене необходимую глубину Посмотрите изображения cityNoFog.jpg и cityWithFog.jpg в папке City, ч тобы сравнить сцену без дымки и с дымкой. Если визуализированный результат вас не удовлетворяет, сверьте его с образцом из файла сцены cityWithFog .max. С гандартный туман нетрудно ввести в сцену, особенно в наружную. Но в арсе- нале пользоват еля 3ds max имеются и другие средства борьбы с банальным пло- ским видом неумело визуализированных сцен. Объемное освещение Если освещению требуется придать сценический вид или ввести в сцену дым- ное либо пыльное окружение, для этой цели подойдут источники объемного ос- вещения. Преимущество объемного освещения состоит в том, что оно позволяет усилить восприятие света, когда оно применяется вместе со строго направлен- ным освещением (рис. 19.14 и 19.15).
846 Часть VIII. Визуализация и компоновка Рис. 19.14. Без эффекта объемного освещения данная сцена выглядит слишком темной Рис. 19.15. Благодаря эффекту объемного освещения в сцене выявляются допол- нительные детали, придающее ей особый характер
Глава 19. Основы визуализации 847 Источники объемного освещения вводятся в сцену из вкладки Environment диалогового окна Environment and Effects, где требуется щелкнуть на кнопке Add и выбрать из списка эффектов элемент Volume Light (Источник объемного осве щения), либо из свитка Atmospheres & Effects (Атмосферные явления и эффек- ты), расположенного в нижней части панели Modify параметров источника света. В любом случае появится один и тот же свиток Volume Light Parameters (Параметры источника объемного освещения), аналогичный рассмотренному выше свитку Fog Parameters (рис 19.16). Рис. 19.16. Свиток Volume Light Parameters В области Lights, расположенной в верхней части данного свитка, имеются кнопки для выбора и удаления источников объемного освещения со сцепы. Это удобно для согласованного распределения эффектов объемного освещения по
848 Часть VIII. Визуализация и компоновка всей сцене. Особый интерес в данном свитке вызывает поле Density (Плотность), определяющее величину свечения. Чем меньше величина плотности в этом поле, тем лучше, если только в сцене не должно быть много тумана или дыма. В отличие от других свойств тумана, его цвет (Fog Color) взаимодействует с окраской источника света, и в результате аддитивного смешения получается но- вый цвет. Так, желтый туман и красный цвет дают оранжевое объемное освеще- ние. Если же цвет тумана должен изменяться на расстоянии, установите флажок Use Attenuation Color, выберите подходящий темный цвет ослабления (Attenuation Color) в соответствующем образце цвета и установите в процентах от ослабления момент его появления в поле Start % из области Attenuation Настраивая в этой же области параметр End %, можно управлять величиной объемного свечения в за- висимости от расстояния, на котором действует объемное освещение. Для усиле- ния данного эффекта достаточно увеличить значение в поле Attenuation Multiplier (Коэффициент ослабления). Ослабление объемного освещения применяется в основном в сочетании с величинами ослабления, устанавливаемыми в самом ис- точнике света. Введя эффект зашумления, можно сымитировать дым в атмосфере. Для ани- мации данного эффекта следует перейти к конечному кадру фрагмента анимации, включить режим Auto Key и изменить значение в поле Phase (Фаза) из области Noise данного свитка. Для начала можно попробовать установить значение 2 или 3, поскольку большие величины фазы могут привести к перемещению дыма с не- правдоподобной скоростью. Параметр Turbulence сообщает дыму необходимую плавность и волнистость. А для получения подходящих клубов дыма рекомендует- ся поэкспериментировать с параметром Size. Аналогично большинству других эффектов, чрезмерно используя объемное освещение, можно испортить удачную сцену, придав ей фальшивый и любитель- ский вид. Для экспериментирования с объемным освещением откройте сцену из файла Project Files\Chl9_BasicRendering\volumeLight.max на прила- гаемом к этой книге DVD Объемный туман Иногда туман должен быть на определенном участке сцены аналогично смог}', инверсионному следу от реактивного самолета или дыму' от взорвавшейся бомбы. Объемный туман действует таким же образом, как и стандартный туман, за исклю- чением того, что он содержится в атмосферной установке (Atmospher с Apparatus) (рис. 19.17). Такие элементы сцены доступны на панели Create в категории Helpers. В следующем упражнении объемный туман будет использован для имитации клубов дыма, вырывающегося из дымовой трубы локомотива. Этот эффект можно применять в качестве альтернативного варианта и в сочетании с типичным ды- мом, имитируемым с помощью системы частиц. 1. Откройте сцену из файла Project Files\Chl9_BasicRendering\ stacksmoke.max на прилагаемом к этой книге DVD. Сохраните эту сцену в соответствующей подпапке на жестком диске, выбрав команду Save As и присвоив ее файлу имя stacksmokeOl .max.
Глава 19. Основы визуализации 849 2. Создайте атмосферную установку. Для этого перейдите к панели Create, щелкните па кнопке Helpers, выберите категорию Atmospheric Apparatus из расположенного ниже раскрывающегося списка и щелкните на кнопке SphereGizmo (Сферический гизмо) (рис. 19.18). Рис. 19.17. Городской пейзаж, наполненный туманом и смогом благодаря объемному туману •dFI&l'WTI а Й у; % Standaid Рис. 19.18. Активизация вспомо- гательного объекта SphereGizmo в качестве атмосферной установки 3. Поместите этот гизмо внутри верхней части дымовой трубы, щелкнув и вы- тянув его приблизительно до радиуса 7.
850 Часть VIII. Визуализация и компоновка 4. Переместите ползунок временной шкалы анимации к кадру 30 и щелкните на кнопке Auto Key. Если гизмо все еще выделен, увеличьте его радиус до 60. Перемещайте гизмо по оси Z до тех пор, пока он не исчезнет со сцены в окне вида в перспективе. 5. Щелкните на кнопке Auto Key, чтобы отключить ее. Убедитесь в том, что гизмо по-прежнему выделен. Щелкните па кнопке Add из свитка Atmospheres & Effects на панели Modify и выберите элемент Volume Fog из списка эффек- тов. Выделите этот элемент в списке данного свитка и щелкните на кнопке Setup, чтобы перейти к свитку Volume Fog Parameters (Параметры объемно- го тумана) в открывшемся диалоговом окне Environment and Effects. 6. Установите значение 1 в поле Soften Gizmo Edges (Смягчение краев гизмо), выберите совершенно черный цвет в образце цвета, введите значение 8 в поле Step Size (Величина шага) из области Volume, а затем выберите Tur- bulence в качестве вида зашумления в области Noise из свитка Volume Fog Parameters. Выполните пробную визуализацию в кадре 15, чтобы убедиться в правильности полученного эффекта (рис. 19.19). Рис. 19.19. Проверка правильности эффекта атмосферного дыма, а фактиче- ски объемного тумана 7. Щелкните на кнопке Auto Key. Перейдите к кадру 3 0 и установите значение 0,1 в поле Density. Затем перейдите к нулевому кадру и установите значе- ние 30 в поле Density. Щелкните на кнопке-переключателе Bottom, распо- ложенной ниже метки Wind from the (Направление ветра) в области Noise из свитка Volume Fog Parameters.
Глава 19. Основы визуализации 851 8. Визуализируйте полученную анимацию и сверьте свой результат с файлом Project Files\Chl9_BasicRendering\animations-pics\smoketest. avi на прилагаемом к этой книге DVD. Из дымовой трубы дозжеп вырывать ся клуб дыма и постепенно рассеяться по мере того, как оп поднимается вверх. Для проверки правильности созданного эффекта откройте сцену из файла Project Files\Chl9_BasicRendering\stacksmokeDone.шах на прилагаемом к этой книге DVD. В качестве эксперимента введите в сцену дополнительные клубы дыма, чтобы создать такое впечатление, будто поезд собирается отойти со станции. Попро- буйте сочетать объемный туман с частицами, чтобы добиться более впечатляю- щего эффекта! Огневой эффект Управление этим эффектом окружения, как и объемным туманом, осуществзя- ется с помощью аналогичной атмосферной установки. У огневою эффекта (рис. 19.20) имеются две разновидности: языки пламени (Tendril) и огненный шар (Fireball). Преимущество огненного шара состоит в том, что его можно дополнить взрывом. Такой эффект хорошо действует на расстоянии и пригоден для получе- ния подлинного трехмерного огня. Кроме того, имитируемый огонь можно бы- стро скомпоновать с циклически повторяющимися фрагментами съемки настоя- щего огня, поэтому пе стоит тратить много времени и труда на то, чтобы добить ся полного совершенства данного эффекта. Рис. 19.20. Огневой эффект типа языков пламени
852 Часть VIII. Визуализация и компоновка В следующем упражнении вам предстоит развести небольшой костер, чтобы немного Hoi реться у огня в прохладный вечер. 1. Откройте сцепу из файла Project Files\Chl9_BasicRendering\ fireStart .max па прилагаемом к этой книге DVD. Сохраните эту сцену в соответствующей подпапке на жестком диске, выбрав команду Save As и присвоив ее файлу имя f ireStartOl .max. 2. Перейдите сначала к окну вида сверху, а затем к панели Create. Щелкните на кнопке Helpers, выберите категорию Atmospheric Apparatus из располо- женного ниже раскрывающегося списка и щелкните на кнопке SphereGizmo. Расположите полученный гизмо посредине поленьев. Уста- новите значение 1,7 параметра Radius и флажок Hemisphere (Полусфера) в свитке Sphere Gizmo Parameters. 3. Перейдите к окну вида спереди, воспользуйтесь инструментом Select and Non-Uniform Scale (Выделить и выполнить неравномерное масштабирова- ние), чтобы установить масштаб 225% по осн Y. Для установки этого мас- штаба воспользуйтесь показаниями в поле Y, расположенном в нижней час- ти интерфейса3ds max. 4. Выберите команду Renderings Environment, чтобы открыть диалоговое ок- но Environment and Effects, щелкните па кнопке Add в свитке Atmosphere из вкладки Environment и выберите из списка эффектов элемент Fire Effect. Щелкните па кнопке Pick Gizmo (Выбрать гизмо) в открывшемся свитке Fire Effect Parameters (Параметры огневого эффекта) и выделите только что созданную атмосферную установку. 5. Щелкните на кнопке-переключателе Tendril в области Shape данного свит- ка, а затем установите значение 0,7 в поле Flame Size (Размер пламени), значение 500 в поле Density и значение 10 в поле Flame Detail (Детали пла- мени) из области Characteristics (Характеристики эффекта). 6. Щелкните на кнопке Auto Key и перейдите к кадру 30. Установите значение 30 в поле Phase, а также значение 50 в поле Drift (Сдвиг) из области Motion того же свитка. Щелкните на кнопке Auto Key (рис. 19.21), чтобы отклю- чить ее. Выполните пробную визуализацию данного кадра, чтобы посмот- реть полученный результат. К к показано на рис. 19.22, языки пламени выглядят неплохо, однако исполь- зуемое по умолчанию освещение сцены сводит данный эффект па нет. Объясня- ется это гем, что огневой эффект сам по себе не дает света. Поэтому в следующем упражнении в сцену будет введен подходящий источник света. 1. Продолжите работу со сценой из предыдущего упражнения. Создайте всена- правленный источник света, расположив его чуть выше поленьев. Установи- те флажок Shadows и выберите тип теней Shadow Мар из раскрывающегося списка в свитке General Parameters на панели Modify данного источника све- та Исключите из освещения этим источником три полена и золу, воспользо- вавшись для этого кнопкой Exclude Выберите ярко-оранжевый цвет окраски (значения RGB: 251, 177, 49) данного источника света и установите зна- чение 2,0 в поле Multiplier из свитка Intensity/Color/Attenuat on.
Глава 19. Основы визуализации 853 Рис. 19.21. Настройка огневого эффекта Рис. 19.22. Вид костра без надлежащего освещения
854 Часть VIII. Визуализация и компоновка 2. Выберите вариант Inverse Square По закону обратных квадратов) из рас крывающегося списка Туре в области Decay (Затухание) и установите зна- чение 2,7 параметра Start в области Near Attenuation (Ближнее ослабление света) того же свитка, чтобы ограничить действие данного источника света только участком костра. Итак, источник света находится на своем месте, но для полноты впечатле- ния от данной сцены в нее необходимо ввести эффект мерцающего огня. Для этой цели придется обратиться к режиму Dope Sheet (Подготовитель- пая таблица) окна Track View. 3. Если всенаправленный источник света все еще выделен, выберите команду Graph Editors^Track View - Dope Sheet из главного меню. Щелкните в от- крывшемся окне Тrack View - Dope Sheet на знаке “плюс”, чтобы развернуть треки анимации параметров источника света OmniOl, а затем па знаке ‘ плюс рядом с треком Object (Omni Light). Выделите второй сверху грек апи мации параметра Multiplier и щелкните на нем правой кнопкой мыши. Выбе- рите сначала команду Assign Controller из контекстного меню, а затем кон- троллер Noise Float из списка доступных контроллеров (рис. 19.23). [ЙШ IF£ ---(j) OmniOl . | -+ [}5~| Transform i . - Object (Omni Lj Assign Float Controller g Color - - g Multiplier g Contrast g Diffuse Softe | Attenua on f g Altenuaf on F g At enual on F g Allenual on F g Decay Fallofl — g Shadow g Atmosphere g Atmosphere g Shadow D —Shadow Par J «a— mental ray: I 11 _J AudioFloat Bezier Float Biped SubAnim Boolean Controller Float Expression Float List Float Motion Capture Float Reaction Float Script Linear Float Motion Clip SlaveFloat OK _____| Cancel [ Make Default । Noise Float On/Off SlaveFloat TCB Float Waveform Float Default Bezier Float Рис. 19.23. Смена типа контроллера на треке анимации параметра Multiplier всенаправленного источника света 4. Откроется диалоговое окно параметров контроллера Noise Float. Устано- вите в этом окне флажок >0, значение 3 в поле Strength и значение 0,1 в поле Frequency. Установите флажок Fractal Noise (Фрактальный шум) и сверните окно Track View - Dope Sheet. Вот, собственно, и все! Визуализируйте полученную анимацию. Сравните свой результат с образцом из файла сцепы Project Files\Chl9_BasicRendering\ f ireDone. max на прилагаемом к этой книге DVD. Если хотите, можете продолжить работу над анимацией огня. Так, если назна- чить контроллер управления по зашумлению на треке анимации положения все-
Глава 19. Основы визуализации 855 направленного источника света, то можно сделать тени более подвижными, а ок- раску света на сцепе ярко-желтой. Кроме того, можно более четко обозначить на сцене тлеющие угольки от костра. НА ЗАМЕТКУ Эффекты из вкладки Effects диалогового окна Environment and Effects могут быть получены и в других частях интерфейса 3ds max. Так, эффекты в объективе, вы- вода в файл, яркости, размытости движения и контраста можно создать в виде фильтров видеообработки в окне Video Post. Визуализация анимации Прежде чем приступить к визуализации анимационных файлов, приходится принимать ряд важных решений. Прежде всего необходимо решить, будет ли анимация вводиться в приложение компоновки или монтажа? Если да, то необхо- димо получить ряд последовательно нумерованных файлов изображений. Как правило, это файлы формата Targa, хотя для удобства компоновки на профессио- нальном уровне более пригодны файлы с расширением .г 1а и . грс. Не менее важны и выходные размеры, которые устанавливаются в диалоговом окне Render Scene в соответствии с принятым форматом изображения. Для вывода в последовательно нумерованные файлы имеются две причины. Во-первых, эго позволяет легко разбить последовательность кадров во время монтажа и точно выбрать нужный кадр, а во-вторых, исключить ненужные арте- факты сжа тия данных. Сжатие и распаковка видеоматериала приводит к ухудше- нию качества изображения, поэтому эти операции следует свести к минимуму. Существуют и другие причины практического свойства: нумерованные непод- вижные изображения могут быть визуализированы в сети, причем начать или ос- тановить этот процесс совсем нетрудно. А для чего вообще нужно сжимать анимацию? Огромные объемы данных, про- качиваемые через видеокарту, способны исчерпать ресурсы даже самых совре- менных моделей ПК. Сжатие и распаковка анимации и звука осуществляются специальным драйвером, называемым кодеком. Аналогично шрифтам, для этой цели в системе должны быть установлены кодеки. Как правило, некоторые кодеки отсутствуют в системах потенциальных зрите- лей. Для сжатия данных в современном формате MPEG-4 вполне пригодны такие кодеки, как DivX и XviD. Они обеспечивают едва ли не самое высокое качество изо- бражения при минимальных размерах файлов. Более подробные сведения о сжатии данных и свободно загружаемых кодеках можно найти на следующих \\ eb-сайтах. • www.divx.com/divx/ • www.xvid.org/ • www.doom9.огд/index.html?/xvid.htm При наличии цифровой видеокамеры формата DV можно выводить анимаци- онные и видеопроекты па видеоленту с довольно приличным качеством. Подхо- дящие модели таких видеокамер доступны по цепе ниже 1 тысячи долларов а стоимость более качественных моделей едва ли не па порядок выше. Приобре-
856 Часть VIII. Визуализация и компоновка тая видеокамеру, обращайте внимание на возможность ввода в нее данных из уда- ленного источника, чтобы она могла при этом выполнять функции видеомагни- тофона. Цифровую видеокамеру можно подключить к стандартному видеомаг- нитофону но при записи качество сигнала упадет до уровня формата VHS. А для вывода на DVD потребуется устройство записи на DVD и свободно доступное про граммное обеспечение, сведения о котором можно обнаружит ь па последнем из перечисленных выше Web-сайтов. Как известно, анимация может принимать самые разные формы. В частности, ху- дожника могут попросить ввести объекты и эффекты в уже имеющуюся сцену или на фоне отснятого видеоматериала. Подобные .методы применяются архитекторами и дизайнерами для получения предварительно визуализированных иллюстраций. Визуализация на рирпроекционом фоне Нередко визуализированные изображения приходится компоновать со сценой па рирпроекционпом фоне. Такая компоновка обычно выполняется на завер- шающем этапе работы над проектом, однако освещение и углы расположения ка меры должны быть согласованы с имеющимся отснятым материалом] Согласо- вать освещение несложно, труднее добиться идеального совпадения углов распо- ложения камер. Правда, в этом может помочь доступная в 8ds max утилита Cam- era Match (Согласование камеры). В этой утилите положение вспомогательных объектов CameraPoint (Точка рас- положения камеры) col ласустся с их аналогами на рирпроекционпом фоне Как пра- вило, для этого требуется нс меньше шести точек привязки причем они по должны находиться в одной плоскости. А это потребует тщательного измерения физического пространства, после чего в 3ds max создаются модели в точно выдержанных масшта- бах, чтобы завершить процесс согласования. На рис. 19.24 приведен пример визуали- зации трехмерной i сометрической формы на уже имеющемся фойе. Для того чтобы пролить некоторый свет на данный процесс, рассмотрим по- следовательность подготовки автора этой главы к работе над сценой со склепом. Сначала возник замысел самой сцепы: кладбище в полнолуние и распахивающая- ся дверь в слеп. Выбрав ближайшее подходящее кладбище, автор отправился на пего, вооружившись рулеткой, блокнотом и цифровой фотокамерой. На кладби- ще были сделаны снимки склепа и пары дверей, а также необходимые замеры и наброски сцены в блокноте. После неприятного допроса о цели посещения кладбища который учинил кладбищенский сторож, автор вернулся в свою сту- дию, чтобы запяться подготовкой необходимых файлов Исходная сцепа (рис. 19.25) была сначала затенена в Photoshop с использова пнем режима Levels Adjustment (Коррекция уровней), а затем получила синева- тый оттенок в режиме Hue/Saturation Adjustment (Коррекция оттенка и насыщен- ности). Дополнительное затенение было выполнено инструментом Burn (Затемнение). И наконец, снимок был обрезан до размеров 720x480 пикселей, соответствующих формату цифрового видео. Двери были сняты отдельно (рис. 19.26) и затем восстановлены по частям в виде единой непрозрачной двери (рис. 19.27). А для того чтобы придать двери дополнительную объемность вруч- ную была создана карта рельефности (рис. 19.28).
Глава 19. Основы визуализации 857 Рис. 19.24. Дверь, визуализированная на рирпроекционном фоне склепа Рис. 19.25. Исходный снимок склепа
858 Часть VIII. Визуализация и компоновка Рис. 19.26. Исходный снимок дверей, ко торые потребовалось видоизменить Рис. 19.27. Завершенная текстура единой двери Рис. 19.28. Карта рельеф ности для двери
Глава 19. Основы визуализации 859 На основании измерении проведенных на месте съемки, в 3ds max был создан параллелепипед, совпадающий по размерам с дверным проемом в склепе. На него затем была наложена текстура, и получ< i ная в итоге модель двери была освещена и подвергнута анимации. Итак, все готово к вводу в сцену камеры и ее согласова- нию с рирпроекционным фоном. Дверь в склеп В следующем упражнении вам предстоит видоизменить дверь в склеп 1. Откройте сцену из файла Project Files\Chl9_BasicRendering\ cryptStart .max на прилагаемом к этой книге DVD. Сохраните эту сцену в соответствующей подпапке на жестком диске, выбрав команду Save As и присвоив ее файлу имя cryptStartOl .max. 2. Выберите из главного меню команду Renderings Environment, чтобы от- крыть диалоговое окно Environment and Effects и щелкните па кнопке Envi- ronment Мар (Карта окружения) в свитке Common Parameters из вкладки Environment Выберите сначала тип кар гы Bitmap в открывшемся окне Mate- ria/Мар Browser, а затем из списка выберите файл изображения cryptBack. tga. Закройте данное окно. 3. Перейдите к окну вида в перспективе. Нажмите клавишу <G>, чтобы удалить со сцены сетку. Выберите из главного меню команду ViewsSViewport Back- ground (Виды^фон видового окна), а затем щелкните на кнопке Files из об- ласти Background Source (Исходный фон) в открывшемся диалоговом окне Viewport Background. Выберите файл изображения cryptBackTemp.jpg. Щелкните на кнопке-переключателе Match Rendering Output (Согласовать с выводом результатов визуализации) в области Aspect Ratio и убедитесь в том, что установлен флажок Display Background Отображать фон). Щелк- ните па кнопке ОК чтобы закрыть диалоговое окно Viewport Background. НА ЗАМЕ КУ Установив флажок Use Environment Background (Использовать окружающий фон), можно было бы поместить на фоне видового окна подготовленное образ- цовое изображение кладбища, однако оно слишком темное, и поэтому для уп- рощения процесса выравнивания двери был подготовлен специальный вариант изображения фона с особыми пометками 4. Перейдите к окну вида в перспективе, щелкните правой кнопкой мыши на метке этого видового окна и измените вид на каркасный Wireframe). Как показано на рис. 19.29, дверь находится на сцене не на своем месте. Для ее правильного расположения придется воспроизвести капитальные стены скле- па. Ка показывают измерения проведенные н месте съемки, здание склепа имеет следующие размеры: 9 футов 11 дюймов в ширину (3,02 м), 6 футов 10 дюймов в высоту (2,08 м) и 12 футов в глубину (3,66 м). Поэтому далее в этом упражнении будет создан параллелепипед тех же размеров.
860 Часть VIII. Визуализация и компоновка Рис. 19.29. Положение двери на фоне 5. Выберите команду Customize4>(jnits Setup (Специальная настройка^Установка единиц измерения), перейдите в открывшемся диалоговом окне Units Setup к области Display Unit Scale (Масштаб шкалы отображения) и щелкните на кнопке-переключателе US Standard (Стандартные единицы измерения США). Далее выберите из раскрывающегося списка элемент Feet w/ Decimal Inches (Футы и десятичные дюймы). Щелкните на кнопке ОК чтобы закрыть диалого- вое окно Units Setup. 6. Создайте параллелепипед размерами 12 футов в длину, 9 футов 11 дюймов в ширин}' и 6 футов 10 дюймов в высоту. Совместите его с боковыми сторо- нами и нижним краем двери (рис. 19.30). 7. Создайте в окне вида спереди еще один параллелепипед шириной 3 фра 7 дюймов (1,09 м) и любой высоты и длины. Скопируйте этот параллелепи- пед по оси X Поместите дверь между этими двумя параллелепипедами, чтобы она оказалась прямо посредине передней стены (рис. 19.31). По этим парал- лелепипедам можно приблизительно определить центр передней степы. Как только дверь окажется между двумя параллелепипедами, удалите их. 8. Разверните сцену в перспективе, используя инструменты Arc Rotate и Zoom, чтобы показать все передние углы и два задних (рис. 19.32). Разверни ie теку- щее видовое окно на весь экран, чтобы лучше видеть сцену.
Глава 19. Основы визуализации 861 Рис. 19.30. Параллелепипед, воспроизводящий стены и совмещенный с дверью Рис. 19.31. Временно созданные параллелепипеды помогают правильно расположить дверь по центру передней стены
862 Часть VIII. Визуализация и компоновка Рис. 19.32. Сцена, подготовленная к расположению точек согласования камеры 9. Щелкните правой кнопкой мыши на кнопке Snaps Toggle основной напели инструментов, сбросьте в открывшемся диалоговом окне Grid and Snap Set- tings флажок Grid Points и установите флажок Vertex. Закройте данное зало- говое окно и щелкните па кнопке Snaps Togge, чтобы активизировать ее Она должна находиться в режиме трехмерной привязки (т.е. на ее пикто- грамме должна отображаться цифра 3). 10. Откройте диалоговое окно Render Scene и щелкните па кнопке 720x486 в области Output Size из вкладки Common. Закройте это диалоговое окно Нажмите клавишу <М>, чтобы открыть редактор материалов. Назначьте для параллелепипеда материал желтого каркаса. 11. Перейдите к панели Create и щелкните сначала на кнопке Helpers, а затем выберите категорию Camera Match из раскрывающегося списка. Щелкните на кнопке CamPoint, чтобы начать процесс расположения точек согласова- ния камеры. Щелкните по очереди на вершинах параллелепипеда и присвоите получен- ным точкам такие же имена, как и на фоновом изображении. Эти точки должны быть привязаны к угловым вершинам параллелепипеда. По завер шении выключите инструмент Snaps 12- Перейдите к панели Utlities и щелкните на кнопке Camera Match Все уста- новленные выше точки согласования камеры должны быть перечислены в списке из свитка CamPoint Info (Сведения о гочках согласования камеры) Выделите верхнюю по списку' точку' botB и щелкните на кнопке Assign Posi-
Глава 19. Основы визуализации 863 tion (Назначить положение). Щелкните на желтой точке botB, расположен- ной на фоновом изображении. На этом месте появится красный крестик. 13. Продолжите эту операцию для остальных точек. Обратите внимание на то, что крестики становятся зелеными, когда они не выделены. Щелкните на кнопке Create Camera (Создать камеру), а затем нажмите клавишу <С>, что- бы перейти к видовому окну CameraOl. Вид из камеры должен точно сов- пасть с фоновым изображением (рис. 19.33). Рис. 19.33. Новая камера, согласованная с фоновым изображением Выполните пробную визуализацию сцены. Благодаря желтому каркасному ма- териалу можно ясно видеть расположение параллелепипеда. При воспроизведе- нии анимации дверь естественным образом распахивается в данной сцене. Печать и экспорт Итак, визуализированные изображения получены. И что же теперь с ними де- лать? В 3ds max имеется ряд скромных, но все же полезных функций печати и экспорта, которые и будут вкратце рассмотрены в этом разделе. Выбор формата страницы Для подготовки визуализированных изображений к печати обычно приходит- ся обращаться к программе редактирования изображений. И хотя в 3ds max име- ется специальный мастер выбора формата страницы, доступный с помощью ко- манды Rendering^Print Size Wizard, он тем не менее не может заменить собой
864 Часть VIII. Визуализация и компоновка полноценный редактор изображений. На самом деле он пе позволяет даже печа гать изображения' Этот мастер удобно использовать для приближенной оценки формата ст раницы, однако при этом в расчет не принимаются поля страницы и возможности печати. Экспорт панорамных видов Иногда требуется углубиться в саму сцену и посмотреть в диалоговом режиме отдельные ее участки и центральной точки наблюдения. Для такой цели и служит средство просмотра панорамных видов. На рис. 19.34 показано обычное визуализированное изображение сцены тю- ремной камеры. Рис. 19.34. Сцена тюремной камеры, визуализированная методом излучательности А па рис. 13.35 приведен панорамный па 360 вид той же самой сцены. Посре- дине сцены приблизительно на высоте человеческого роста помещена свободная камера.
Глава 19. Основы визуализации 865 Рис. 19.35 Панорамный вид, полученный из сцены, приведенной на рис. 19 34 Для просмотра панорамного вида в 3ds max перейдите к панели Utilities. Щелк- ните па кнопке More и выберите в открывшемся диалоговом окне из списка ути- лит}' Panorama Exporter (Средство экспорта панорамных видов). Щелкните на кнопке Viewer (Средство просмотра) и выберите файл Project Files\Chl9_ BasicRendering\animations-pics\jailPano.jpg на прилагаемом к этой книге DVD по команде File в открывшемся диалоговом окне Panorama Exporter Viewer. Щелкните в этом окне и перетащите курсор для перемещения камеры по сцене. Если же щелкнуть на средней кнопке мыши (если таковая имеется), то можно сделать изображение крупнее или мельче. Панорамный вид визуализируется очень просто. Для этого достаточно поместить камеру в центральной точке сцены, откуда она должна наблюдаться, и щелкнуть па кнопке Render из свитка Panorama Exporter на панели Utilities Для визуализируемого изображения необходимо выбрать крупные размеры, поскольку в нем должна ото- бражагься большая площадь Для начала вполне подойдут размеры 2048x1024. Следует заметить, что диалоговое окно Render Setup для настройки парамет- ров визуализируемого панорамного вида очень похоже на стандартное диалого- вое окно Render Scene, хотя оно и безрежимное. Его приходится закрывать, прежде чем переходить к правке сцены. Кроме того, в нем не запоминается каме- ра для панорамирования, поэтому ее приходится всякий раз выбирать из раскры- вающегося списка в нижней части данного окна. Для просмотра панорамных видов вне 3ds шах или в Web визуализируемое изображение необходимо экспортировать в стандартном формате панорамного вида. Для этой цели имеется немало приложений, но организовать просмотр па- норамных видов проще всего с помощью приложения QuickTime VR. Как только завершится визуализация панорамного вида, выберите команду File1 >Export^ Export QuickTime VR в диалоговом окне Panorama Exporter Viewer. Если данное приложение установлено в системе, панорамный вид можно просматривать с по- мощью специального средства просмотра в формате QuickTime.
866 Часть VIII. Визуализация и компоновка НА ЗАМЕТКУ Для доступа к функции экспорта в формате QuickTime необходимо установить полную (рекомендованную) версию приложения QuickTime. Текущую его версию можно загрузить по адресу www.apple. com/quicktime/download. С помощью специальных программ независимых производителей можно орга- низовать целые виртуальные экскурсии с переходами от одного панорамного вида к другому. Такие приложения весьма распространены среди агентств по продаже недвижимости и туризму, а также в архитектурных мастерских. Подробные сведе- ния об этих программах можно получить по адресу www 360geographics. сот/ IQTVRA/IQTVRALinks.html, а общий обзор панорамных видов по адресу www.panoguide.сот. Средство экспорта Shock wave 3D Приложение Shockwave 3D компании Macromedia позволяет просматривать трехмерную анимацию и манипулировать ею непосредственно в Web. Это своего рода миниатюрный игровой механизм, поддерживающий механизм имитации физики типа reactor, что дает возможность моделировать игры с реально дейст- ву ющими силами. Для этой цели необходимо загрузить расширение Havok Xtra приложения Macromedia Director (текущая его версия находится по адресу http: / / oldsite.havok.com/xtra/index.html). Статью по программированию инте- рактивных объектов можно прочитать по адресу http: / /sdc. shockwave. сот/ devnet/mx/director/articles/virtual_objects.html. В отсутствие копии приложения Director отображение в окне Preview оказы- вается ненадежным и не совсем точным. Компания Macromedia предлагает инст- рументальное средство разработки для организации просмотра файлов с расши- рением .w3d (т.е. собственного формата Shockwave 3D), доступное по адресу www.directordev.com/tools/projectors/W3DViewer/default html. Но дело в том, что перенос сцен из 3ds max ограничивается элементарными преобразованиями: перемещением, вращением и масштабированием. При этом любая анимация с помощью модификаторов (Bend, Free Form Deformation и т.д.) игнорируется, как, впрочем, и анимация изменения параметров, например раз- меров параллелепипеда. Совершенно игнорируются и составные объекты, в том числе булевы и объекты лофта. Камеры и источники света переносятся, однако они должны быть присоединены посредством группы к переносимому объекту'. Экспортируются только оттенители по Блинну. Как ни странно, отличная под- держка обеспечивается для деформаций костей и кожного покрова, что позволя- ет воспроизводить анимацию персонажей. Для экспорта готовой сцены выберите сначала команду' File^ Export из главно- го меню, а затем формат Shockwave 3D Scene Export из раскрывающегося списка типов файлов. Откроется диалоговое окно Shockwave 3D Scene Export Options с параметрами экспорта в данном формате. Для анимации и иллюстраций, экспортируемых в Shockwave 3D, прежде всего необходимо выбрать выходные размеры. Функция экспорта в 3ds max позволяет регулировать размеры выходного файла, ограничивая качество изображения и применение текстур. Для этого необходимо поэкспериментировать с отделы
Глава 19 Основы визуализации 867 пы.ми сцепами, поскольку' сильное сжатие файлов может привести к непредска- зуемым результатам. Следовательно, сцены лучше всего создавать с малым числом многоугольников, а кроме того, следует ограничить число применяемых текстур- ных карт и ключевых кадров анимации. Ведь все это должно загружаться в опера- тивном режиме весьма нетерпеливым пользователем! Прежде чем экспортировать сцену, следует щелкнуть па кнопке Author Check (Авторская проверка) в упомянутом выше диалоговом окне. Соответствующая утилита проверяет файл сцены 3ds max на соответствие требованиям экспорта в Shockwave 3D, после чего обнаруженные несоответствия перечисляются в от- дельном списке. Подобная проверка должна выполняться постоянно в процессе создания сцены, чтобы не тратить зря время на устранение ошибок, обнаружи- ваемых при экспорте в силу упомянутых выше ограничений. Следовательно, соз- давать сцепу необходимо с учетом экспортных возможностей Shockwave 3D, а нс думать об этом в последний момент! После успешного экспорта сцены ее внедрение в Director для интерактивного доступа и просмотра средствами Web превращается в непростую задачу, рассмот- рение которой выходит за рамки этой книги. На момент написания данной книги отсутствовали готовые решения для публикации и удобного просмотра файлов Shockwave 3D в Web. Поэтому будьте готовы к тому', чтобы написать для этой цели специальную программу или же обрати ться за помощью к опытному программи- сту. Отличный учебный материал по Shockwave 3D и реализации этого приложе- ния в Director можно найти в книге Shockwave 3D Джейсона Вольфа (Jason Wolf), вышедшей в издательстве New Riders (ISBN 0735711976) Повышение эффективности визуализации Ниже приведены некоторые рекомендации и практические советы для выпол- нения визуализации, результаты которой способны удовлетворить ваше начальство или клиента и позволят уложиться в заданные сроки и установленный бюджет. • Ничего пе может быть лучше исходного быстродействия. Этот, па пер- вый взгляд, очевидный факт приходится тем не менее констатировать По- старайтесь получить доступ к самым быстродействующим машинам, которые часто модернизируются. Убедитесь в том, что в машине установлено доста- точно оперативной памяти и дискового пространства для страничного обме- на. Проверьте ее на вирусы и автономные шпионские программы. Не поль- зуйтесь во время визуализации приложениями (типа Photoshop), потреб- ляющими много оперативной памяти. Рассмотрите возможность использо- вания нескольких машин для визуализации в сети в течение нескольких часов —даже скромная рабочая станция секретарши может пойти вдело! • Многократная пробная визуализация. Дело не столько в одаренности ху- дожника, сколько в его умении организовать производственный процесс. Тратить много времени па никому ненужную в итоге работу просто нера- зумно Поэтому показывайте свои результаты пробной визуализации всем, кто способен их оцепить, постоянно держа этих людей в курсе дела. Если дело дойдет до выявления виновных, вы можете быть спокойны, поскольку'
868 Часть VIII. Визуализация и компоновка ошибка была совершена теми, кто принимал решение, и вам не придется исправлять ее в одиночку. • Оптимальная продолжительность визуализации Как следствие быстро- действия, визуализация всего “лишнего” приводит к напрасной трате вре- мени В настоящее время визуализация кадра со спецэффектами в течение 3 секунд уже считается слишком продолжительной. Для контрольной про- верки жизнеспособности анимационного проекта теперь часто применяет- ся быстрая пробная визуализация, подстановочная геометрическая форма и эскизы. Анимация раскадровки (так называемая апиматика) также помо- гает выявить временные характеристики анимации и составить компози- цию кадров сцены, особенно в сложных видах съемки. Сцену лучше урезать еще до того, как на нее б}дет потрачено время и труд! • Оп имальная визуализация деталей. Объекты, находящиеся на удалении, будут выглядеть хорошо и с малым числом многоугольников. Даже если мо- дель готова, применение существенно оптимизированных моделей способ- ствует значительному ускорению визуализации. Аналогично, умелое ис- пользование функции Render То Texture позволяет исключить из сцены ненужные детали и процедурные текстуры, отнимающие много времени на визуализацию. Подобные меры приносят большую пользу в сцепах с быстро движущимися объектами и значительной долей размытости движения. • Визуализация с учетом возможных изменений. Так уж повелось как бы хорошо ни была выполнена работа, те, от кого зависит окончательное ре- шение, непременно потребуют внести в нее изменения, хотя бы и без осо- бых на то оснований. И как правило, такие изменения приходится вносить в самый неподходящий момент. Поэтому визуализируйте лишь часть а не весь проект, чтобы уйти домой вовремя, а не ночевать за рабочим столом! И наконец, запомните следующее. • Если сидеть, ус' авившись на экран, то визуализация от этого не уско- рится! Можете мне поверить, я уже пробовал это делать и давно обнару- жил, что беспокойное бдение за экраном ничем не помогает визуализации. Поэтому практикуйте метод “визуализации па ногах”: встаньте, потянитесь, понаблюдайте за рассветом и послушайте последние сплетни в кругу коллег. Умение отвлечься па время и расслабиться помогает впоследствии лучше сосредоточиться на работе. Самостоятельная работа Вы можете продолжить работу' над упражнениями этой главы, попробовав вы- полнить следующее. • Окружение. Поэкспериментируйте с разными видами тумана, чтобы оце- нить, какую иллюзию глубины они создают. В частности, воспользуйтесь объемным туманом для имитации атмосферных условий пасмурного дня, поместив полосу гумана высоко над сценой.
Глава 19. Основы визуализации 869 • Окружение. Выполните анимацию целого ряда клубов дыма, связав их с глав- ным объектом, перемещающимся по сцене. Введите в сцену частицы (напри- мер, из системы частиц Super Spay) па небольшой плоскости с наложенной на нее картой Falloff Подобным образом имитируются мелкие частицы дыма. • Уровень детализации. Используя на свой выбор достаточно сложную мо- дель, попробуйте применить к пей модификаторы Optimize и Multi-Res, чтобы ограничить число многоугольников. Для радикального сокращения числа многоугольников визуализируйте вид этой сложной модели и нало- жите се изображение на оживляемую плоскость! Резюме В этой главе были лишь бегло рассмотрены возможности визуализации в 3ds шах. На первый взгляд, стандартное средство визуализации с построчной разверткой кажется весьма эффективным инструментом, однако в распоряжении пользова- теля 3ds max 7 имеется немало других средств и методов. И в следующей главе бу- дут продемонстрированы наиболее интересные их разновидности.
Глава 20 Усовершенствованная визуализация Дуг Барнард Для выполнения многих работ достаточно и средства визуализации с по- строчной разверткой, которым вам уже пришлось воспользоваться при выполне- нии упражнений предыдущей главы. Но в 3ds max доступны и другие средства ви- зуализации, способные существенно повысить качество выполняемого проекта или предоставить другие возможности, помимо стандартной визуализации. Од- нако эти дополнительные возможности и удобства даются ценой освоения более сложного набора параметров визуализации а в большинстве случаев и за счет значительного увеличения продолжительности визуализации. НА ЗАМЕТКУ Прежде чем переходить к материалу этой главы, изучите свойства и функции стандартного средства визуализации с построчной разверткой. В отдельных разделах этой главы рассматриваются следующие методы и сред- ства визуализации. • Ink’n Paint (Обводка и раскраска). Формально это не средство визуализации, а тип материала, придающий сцене двухмерный, как бы нарисованный от руки, вид (рис. 20.1). • Light Tracer. Одна из систем визуализации глобального освещения в 3ds max, способная придать наружным сценам весьма естественный вид (рис. 20.2). • Метод излучательности. Способ физически точной визуализации, при ко- тором во внимание принимается рассеянный свет глобального освещения (рис. 20.3). • mental ray. Версия 3.3 средства визуализации профессионального уровня, обладающего целым рядом дополнительных свойств и функций. Это сред- ство особенно пригодно для имитации каустики, обусловленной проникно- вением света сквозь толщу воды и толстое стекло. Применение mental ray требует перестройки мышления и изменения методики, привычной для стандартного средства визуализации с построчной разверткой (рис 20 4).
872 Часть VIII. Визуализация и компоновка Рис. 20.1. Применение материала Ink'n Paint Рис. 20.2. Результат вывода из Light Tracer
Глава 20. Усовершенствованная визуализация 873 Рис. 20.3. Визуализация по методу излучательности Рис 20 4. Визуализация с помощью mental ray В четырех последующих разделах этой главы описываются дополнительные функции визуализации, доступные в 3ds max 7. Для согласования вывода с други- ми программными средствами имеются специальные решения, предлагаемые не- зависимыми производителями. Прежде чем переходить к рассмотрению упомянутых выше дополнительных методов и средств визуализации необходимо сделать следующую оговорку к по- добным методам и средствам я лично прибегаю лишь в крайнем случае, посколь- ку, несмотря на все их возможности, они требуют немалых дополнительных за- трат времени на правильную настройку. Возможно, это связано с тем что я лучше знаком со стандартным средством визуализации с построчной разверткой и стремлюсь творчески подходить к созданию осветительной оснастки, чтобы добиться желаемого результата. Не следует забывать, что любые дополнительные усилия, затраченные на исходный кадр, многократно умножаются на последую- щих этапах производства трехмерной анимационной продукции, поэтому необ- ходимо соответственно планировать свою работу.
874 Часть VIII. Визуализация и компоновка Материал Ink'n Paint Многим визуализация, имитирующая двухмерные штриховые рисунки, может показаться гигантским шагом назад. Тем не менее ниже перечислены причины для подобной визуализации в трехмерной среде. • Именно этого требует клиент. Существует давняя традиции, особенно в архитектуре, представлять предлагаемые проекты в виде эскизов, четко вычерченных пером и тушью. Визуализированные текстурированные трехмерные сцены могут отображать подбор цветов и материалов, которые пе были согласованы Обеспокоенные клиенты могут подумать, что испол- нитель пытается навязать им свой замысел в виде уже полностью готового изображения. А двухмерный эскиз (или же его имитация) позволяет об- щаться с клиентами на привычном для них уровне. • Пониженный уровень детализации. При рисованном затенении (в част- ности, с помощью материала Ink'n Paint) художнику достаточно показать столько деталей, сколько ему нужно. Так, в эскизе предлагаемого проекта здания его городское окружение можно наметить лишь несколькими штри- хами. Детализированный рисованный персонаж может сосуществовать с пус- тынным окружением, обозначенным лишь несколькими линиями или цве- товыми пятнами. • Быстро организованное освещение и ускоренная визуализация. Для точ- ного воспроизведения реальности в данном случае не требуются сложные и отнимающие много времени схемы организации освещения, эффекты ви- деомонтажа или дорогостоящие средства визуализации. Для этого достаточ- но создать сцену и ввести в нее один или два источника света и камеру. • Именно этого требует рынок. Следует признать, что большая часть ани- мационной продукции, предлагаемой в настоящее время на рынке, отно- сится к разряду двухмерной анимации. Для того чтобы продать анимацион- ную продукцию, пе нужно плыть против течения. Рисованное затенение — наилучший выход из положения, особенно в сочетании с традиционной мультипликацией на прозрачной целлулоидной пленке. НА ЗАМЕТКУ Отличным примером сочетания дв ерной и трехмерной анимации может служить анимационный фильм 'Футурама’ (Futurama), демонстрировавшийся по телеканалу Cartoon Network. Большая часть фона и судов в этом фильме сделана трехмерной, а персонажи — дв хмерными. Материал Ink'n Paint на самом деле не является альтернативным средством ви- зуализации, и поэтому его нельзя сравнивать с обычным методом визуализации с построчной разверткой Прежде всего, не нужно обманываться насчет кажу- щейся простоты визуализации такого материала. В действительности для этого требуются немалые вычислительные ресурсы, а большие объемы обрабатывае- мых данных способны существенно замедлить визуализацию.
Глава 20. Усовершенствованная визуализация 875 Для получения визуализированного изображения с рисованным затенением достаточно назначить материал Ink'n Paint и выполнить визуализацию обычным образом. Для доступа к материалам типа Ink'n Paint следует щелкнуть на свобод- ном образце в редакторе материалов и выбрать данный тип материала (рис. 20.5). Рис. 20.5. Верхняя часть свитков с пара- метрами материала Ink'n Paint в редакторе материалов НА ЗАМЕТКУ Материалы Ink'n Paint отображаются только в окнах вида из камеры, в перспек- тиве и пользовательского вида. При попытке визуализации из окна ортогональ- ного вида теряется контур обводки, а визуализированное изображение выглядит неверно.
876 Часть VIII. Визуализация и компоновка Когда материал Ink'n Paint применяется впервые, то возникает искушение трактовать его параметры таким же образом, как и у обычных материалов Одна- ко их лучше рассматривать как средства управления цветными полосами. Если неверно окрашенный объект слишком выделяется на сцене, этот недостаток не следует приписывать существующему освещению. В первом свитке Basic Material Extensions (Основные расширения материала) можно установить эффекты ре ьефности (Bump) и смещения (Displacement). В материале Ink'n Paint подобные эффекты проявляются намного слабее и при- меняются главным образом для ввода некоторой небрежности в визуализирован- ное изображение. Как показано на рис. 20.6, даже большая степень рельефности и смещения, внесенная с помощью карты Noise, практически никак не сказывает- ся на внешнем виде самого материала. Рис. 20.6. В первом шаре (слева) применяется стандартный материал Ink'n Paint, тогда как во втором карта Noise на позиции карты рельефности, а в третьем — та же самая карта на позиции карты смещения Основная настройка данного материала осуществляется в свитке Paint Controls (Элементы управления раскраской). В образце Lighted (Осветленный цвет) выби- рается основной цвет, на основании которого затененный цвет Shaded) автома- тически выбирается в определенном процентном соотношении. Для выбора цве- та подсветки (Highlight) лучше всего установить сначала соответствующий фта- жок, а затем методом перетаскивания скопировать на его образец осветленный цвет, выбрав вариант Сору в открывшемся диалоговом окне. Далее следует щелк- нуть па образце цвета подсветки и уменьшить насыщенность до приемлемого уровня в селекторе цвета. Параметр Paint Levels (Уровни раскраски) определяет число цветных полос — чем их больше, тем хуже результат. А размеры участка подсветки определяются параметром Glossiness (Глянцевитость). На позициях упомянутых выше цветов могут быть назначены карты, однако это вряд ли может принести пользу из-за су- щественных отличий в разрешении рисованных цветных полос и растров. По- этому лучше пользоваться, по возможности, геометрической формой — даже для рисунков на другом материале. Добиться нужной обводки с помощью параметров из свитка Ink Controls (Элементы управления обводкой) (рис. 20.7) не так-то просто, особенно в моде- лях со взаимно проникающими поверхностями. Обводка может быть переменной толщины, и па нее можно наложить карту (для этой цели отлично подходит карта Noise), чтобы придать ей вид сделанного от руки эскиза.
Глава 20. Усовершенствованная визуализация 877 Рис. 20.7. Свиток Ink Controls параметров ма- териала Ink'n Paint в редакторе материалов Как правило, для получения изображений в стиле вычерченных пером и чу- шью рисунков следует установить белый осветленный цвет и глобально назна- чить материал Ink'n Paint для всех находящихся на сцене объектов. Такая методи ка уместна в том случае, когда клиент}' требуется посмотреть эскизный вариант визуализации, прежде чем поручать работу исполнителю (рис. 20.8).
878 Часть VIII. Визуализация и компоновка Рис. 20.8. Сцена, визуализированная с применением материала Ink'n Paint при разрешении 640x480 в течение 9 минут 18 секунд Для начала лучше всего выбрать постоянную линию обводки, поскольку экспе- риментировать с ее толщиной удобнее после настройки парамо гров контура. Итак начните с настройки параметров из области Outline (Контур). Если же потребуются дополнительные линии, поэкспериментируйте по очереди с параметрами из других областей свитка Ink Controls. А если линии получаются слишком толстыми, попро- буйте настроить в материалах параметр Intersection Bias (Смещение пересечения) (рис. 20.9). Смело копируйте материалы и настраивайте их параметр Intersection Bias, чтобы добиться требуемого вида изображения! Рис. 20.9. Результат установки значения 1 параметра Intersection Bias (слева); результат установки нулевого значения этого параметра (справа) Если требуется ввести дополнительные детали, для этой цели подойдут пара- метры из областей Smoothing Groups (Группы сглаживания) и Material ID (Иденти- фикационный номер материала). Эти параметры служат для обводки определен
Глава 20. Усовершенствованная визуализация 879 ных участков, а для повышения степени детализации применяются материалы тина Multi/Sub-Object. Пример подобной методики приведен на рис. 20.10. Для то- го чтобы упростить внедрение групп сглаживания и идентификационных номе- ров материалов и в связи с осложнениями, возникающими при трассировке лучей в крупных сценах, рекомендуется создавать модели с малым числом многоуголь- ников. Такие модели должны носить преувеличенный характер с заметно отли- чающимися поверхностями и резко очерченными краями. Рис. 20.10. Для повышения степени детализации на участках под носом и в области рта этого персонажа были назначены материалы с отдельными идентификационными номерами. А для всей головы персонажа назначен материал Multi/Sub-Object | СОВЕТ_________________________________________________________________ Во время визуализации иногда неожиданно появляются сообщения о ходе трас- сировки лучей. Для того чтобы подавить их вывод на экран, сбросьте флажок Show Messages (Показывать сообщения) во вкладке Raytracer диалогового окна Render Scene. При перемещении персонажа по сцене наблюдается странное смещение цвет- ных полос в области теней на его лице. Для устранения этого недостатка реко- мендуется организовать фиксированное освещение головы персонажа прожек- тором, используя ипс грумент Select and Link При этом голова персонажа исклю- чается из освещения другими источниками света и включается в освещение про- жектором с помощью соответствующих диалоговых окон, доступных на папели Modify параметров источников света. Благодаря тщательной настройке источни- ка света удается добиться того, чтобы внешний вид лица персонажа не менялся (рис. 20.11).
880 Часть VIII. Визуализация и компоновка Рис. 20.11. На этом рисунке приведен пример того, как не нужно делать. Персонаж освещен прямым светом, осве- щающим также остальную часть сцены. Обратите внима- ние на тень, неверно залегающую в правой нижней части лица персонажа, а также на недостаточную степень дета- лизации остальной тени по сравнению с рис. 20.1 Для умелого рисованного затенения требуется опыт, а для получения стабиль- ных результатов практика. В качестве упражнения откройте сцену из файла Project Files\Ch20_AdvancedRendering\spaceman.max на прилагаемом к этой книге DVD. Настроив по своем}' усмотрению палитру цветов для рисован- ных материалов, сохраните их в библиотеке, используя кнопку Put to Library (Поместить в библиотеку) из редактора материалов. Работу' над персонажем ос- ложняет привычка пользоваться ограниченными видами в двухмерном простран- стве. Одпако в 3ds max можно рисовать непосредственно поверх уже имеющейся анимации, используя преимущества работы как в двухмерном, так и в трехмерном пространст ве. К сожалению, в 3ds max отсутствует возможность вывода в формате приложе- ния Macromedia Flash, поэтому для этой цели придется приобрести специальное средство визуализации с рисованным затенением. С другой стороны, можно вы- вести результаты визуализации с рисованным затенением в отдельные файлы, а затем загрузить их в приложение combustion компании discreet и дорисовать вручную дополнительные детали. НА ЗАМЕТКУ Рисованное затенение поддерживается также в средстве визуализации mental ray. Соответствующее сравнение будет сделано далее в этой главе.
Глава 20. Усовершенствованная визуализация 881 Глобальное освещение с помощью Light Tracer При глобальном освещении свет, отраженный от поверхностей, принимается во внимание при формировании всего освещения сцены в целом. Такое освещение нетрудно организовать и использовать попеременно вместе со стандартным сред- ством визуализации с построчной разверткой, хотя оно и предназначено главным образом для сцен с верхним светом. Масштабы сцен при этом особого значения не имеют, поэт ому глобальное освещение лучше всего подходит для наружных сцеп. На рис. 20.12-20.14 показаны отличия в качестве и времени визуализации изо- бражения размерами 1280x960 па компьютере с тактовой частотой процессора 2,53 ГГц и объемом оперативной памяти 1 Гбайт. Рис. 20.12. Изображение, визуализированное с помощью Light Tracer за 7 минут 38 секунд (см. файл Project Files\Ch20_Advanced Rendering\animations-pics\buddhaLT. jpg на прилагаемом к этой книге DVD) Рис. 20.13. Изображение, визуализирован- ное методом построчной развертки за 29 минут 27 секунд (см. файл Project F i 1 е s \Ch2 0_AdvancedRender i ng\ animations-pics\buddhaSL.jpg на при- лагаемом к этой книге DVD). Отличия в ка честве изображения малозаметны, однако продолжительность визуализации заметно увеличилась Рис. 20.14. Изображение, визуализированное методом построчной развертки без верхнего света за 3 минуты 47 секунд (см файл Project Files\Ch20_AdvancedRendering\animations- pics\buddhaSLAS.jpg на прилагаемом к этой книге DVD)
882 Часть VIII. Визуализация и компоновка Как видите, при использовании Light Tracer и верхнего света существенно ус- коряется визуализация методом построчной развертки. Следовательно, приме- нение верхнего света вместе с усовершенствованным освещением приносит ощу- тимые плоды. Это же справедливо и для визуализации методом излучательности. Верхний свет имитирует условия дневного освещения в наружной сцене и не- пригоден для внутренней сцены. Если попытаться поместить источник верхнего света в закрытом помещении, визуализированное изображение получится со- вершенно черным. Пиктограмма такого источника света просто обозначает его на сцене, а освещение сцены верхним светом всегда исходит сверху. Окрашивание Основное преимущество применения Light Tracer (или других средств гло- бального освещения в 3ds max) заключается в воспроизведении окрашивания. Это явление состоит в проникновении цветов из окружения вместе с отражен ным светом но всей сцене. Окрашивание, которое кажется нежелательным явле- нием, просто необходимо для воспроизведения природных свойств света. На рис. 20.15 приведена простая сцена, освещенная сверху одним нацеленным источником прямого света. Стены окрашены черным цветом в силу параллельно- го характера распространения лучей света. Рис. 20.15. Сцена без окрашивания. Продолжительность ее визуализации составляет 16 секунд (см. файл Project Files\Ch20_AdvancedRendering\animations-pics\ ballNoBleed.jpg на прилагаемом к этой книге DVD)
Глава 20. Усовершенствованная визуализация 883 Если активизировать Light Tracer и установить значение 2 параметра Bounces, а также значение 2,0 параметра Color Bleed, стены приобретут красноватую окраску вследствие отражения света от поверхности пола, однако продолжительность визуа- лизации данной сцены возрастет приблизительно до 13 минут (см. файл Project Files\Ch20_AdvancedRendering\animations-picsXballWithBleed.jpg на прилагаемом к этой книге DVD). Постепенно меняющийся оггенок окрашивания очень трудно сымитировать с помощью стандартного средства визуализации с по- строчной разверткой. Хотя качество теней и общего освещения в данной сцепе по- прежнему оставляет желать лучшего. Параметры Light Tracer Для активизации Light Tracer откройте диалоговое окно Render Scene, перей- дите ко вкладке Advanced Lighting и выберите вариант Light Tracer из раскрываю- щегося списка в свитке Select Advanced Lighting (Выбор усовершенствованного освещения). Во вкладке Advanced Lighting появится свиток парамел ров Light Tracer (рис. 20.16). Рис. 20.16. Устанавливаемые по умолча- нию параметры Light Tracer
884 Часть VIII. Визуализация и компоновка В области General Settings из свитка Parameters находятся следующие пара- метры Light Tracer. • Global Multiplier (Глобальный множитель). Управляет общим количеством света в сцепе, аналогично управлению экспозицией. • Object Multiplier (Коэффициент отражения от объектов). Управляет количе- ством света, отраженного от объектов. Действие этого параметра стано- вится заметным, когда число отражений равно 2 или больше. При больших значениях данного параметра объекты начинаются светиться. • Sky Lights (Общий свет). Управляет интенсивностью общего света или во- обще о гключаст его. • Color Bleed (Окрашивание). Регулирует степень привнесения одних цветов в другие. Действие этого параметра становится заметным, когда число отраже- ний равно 2 или больше. Чем меньше значение данного параметра, тем лучше! • Rays/Sample (Количество лучей в выборке). Наряду с параметром Filter Size определяет качество результатов визуализации. При малых значениях обо- их параметров визуализация выполняется быстрее, однако изображение получается более зернистым. По умолчанию устанавливается по 250 лучей на каждую выборку. • Color Filter (Цветной фильтр). Определяет общий оттенок в сцепе по за- вершении визуализации. Все цвета в сцепе, кроме белого, получают соот- ветствую щий оттенок. • Filter Size (Размер фильтра). По мере приближения к краям при визуализа- ции методом Light Tracer повышается вероятность появления артефактов Подобный недостаток можно устранить с помощью данного параметра па отдельном проходе визуализации со сглаживанием. И в этом случае при ма- лых значениях данного параметра визуализация ускоряется, хотя и за счет повышения зернистости изображения. • Extra Ambient (Дополнительный общий свет). Выявляет темные участки, увеличивая общий уровень освещения сцепы. • Ray Bias (Смещение луча). Аналогично смещению тени в источниках света, этот параметр снижает артефакты, возникающие в том случае, когда объек- ты отбрасывают тени на самих себя. Поэтому рекомендуется установить небольшое положительное значение данного параметра. • Bounces (Отражения). Определяет в сцене число отражений света, кото- рые учитываются при организации освещения При нулевом значении это- го параметра сводятся па нет любые изящные эффекты, которых вы стре- митесь добиться в сцепе, поэтому увеличьте значение данного параметра по крайней мерс до 1. При дальнейшем увеличении числа отражений сцепа становится более четкой и яркой, хотя и за счет увеличения продолжи- тельное! и визуализации.
Глава 20. Усовершенствованная визуализация 885 • Cone Angle (Угол конуса). Угол отражения луча, используемый для опреде- ления количества отраженного света. Чем меньше значение этого пара- метра, тем более контрастным получается изображение. • Volumes (Объемное освещение). Эгот параметр имеет отношение к отра- женному свету в таких атмосферных явлениях, как объемный туман и объ- емное освещение. Получаемый в итоге эффект можно увеличить, умень- шить или вообще отключить. Адаптивная субдискретизация Для ускорения визуализации с помощью Light Tracer очень важно использо- вать адаптивную субдискрети.зацию (Adaptive Undersampling). На рис. 20.17 пока- зано более сосредоточенное действие данного режима Light Tracer на участках повышенного контраста и менее заметное па других участках. Рис. 20.17. На увеличенном изображении слева частота адаптивной субдискретизации составляет 16x16, тогда как на изображении справа она составляет сначала 16x16, а затем уменьшается до 1x1. Более четкое изображение можно посмотреть в файле Project Files\Ch20_ AdvancedRendering\animations-pics\adaptive.tif на прилагаемом к этой книге DVD Благоразумно используя адаптивную субдискретизацию в сочетании с опти- мально настроенными параметрами Rays/Sample и Filter Size, можно действи- тельно ускорить визуализацию, сохранив в то же время приемлемое качество изображения. Обратите внимание па отличия в качестве изображений, приве- денных на рис. 20.18 и 20.19. Изображение, приведенное на рпс. 20.19, было получено при значениях пара- метров Light Tracer, приведенных па рис. 20.20.
886 Часть VIII. Визуализация и компоновка Рис. 20.18. Изображение, визуализированное за 7 минут 38 секунд, при устанавливаемых по умолчанию параметрах Light Tracer, кроме зна- чения 1 параметра Bounces (см. файл Project Files\Ch20_AdvancedRendering\ animations-pics\buddhaLT.jpg на прила- гаемом к этой книге DVD) Рис. 20.19. Изображение, визуализирован- ное за 2 минуты 21 секунду, при понижен- ных значениях параметров Light Tracer, в том числе и при нулевом значении параметра Bounces (см. файл Project Files\Ch20_ AdvancedRenderingXanimations-pics\ buddhaLTadj.jpg на прилагаемом к этой книге DVD) Рис. 20.20. Параметры Light Tracer, из- мененные для получения изображения, приведенного на рис. 20.19
Глава 20. Усовершенствованная визуализация 887 Обратите внимание на огрубление значений параметров из области Adaptive Undersampling и параметра Rays/Sample при установленном пулевом значении параметра Bounces. Некоторую пятнистость в области тени можно свести к ми- нимуму дополнительной настройкой параметров. Визуализация сцены с помощью Light Tracer Как было показано выше, верхним свет дает отличные тени и общее освеще- ние в пасмурный день. Если же воспользоваться источником прямого света с те- нями, формируемыми усовершенствованным методом трассировки лучен, то те- ни получаются нереалистичными, хотя при этом сохраняются свойства зеркаль- ного отражения света, характерные для солнечно! о дня. Следовательно можно воспользоваться преимуществами обоих методов организации освещения. В сле- дующем упражнении приведен простой пример характерный для подготовки большинства наружных сцен к визуализации с использованием Light Tracer. Подготовка сцены для визуализации с помощью Light Tracer 1. Откройте сцену из файла Project Files\Ch20_AdvancedRendering\ ballroom.max на прилагаемом к этой книге DVD. Сохраните эту сцену в соответствующей подпапке на жестком диске, выбрав команду Save As и присвоив се файлу имя balroomOl .max. 2. Перейдите к напели Create и щелкните на кнопке Lights Щелкните сначала па кнопке Skylight (Источник верхнего света), а затем чуть выше шара в ок- не вида сверху. Появится вспомогательный объект. Его местоположение особого значения не имеет, поскольку' верхний свет всегда исходит сверху. 3. Выберите команду RenderingsRender, чтобы открыть диалоговое окно Render Scene, и перейдите к вкладке Advanced Lighting. Модуль Light Tracer уже должен быть выбран из раскрывающегося списка в свитке Select Ad- vanced Lighting. Установите следующие значения параметров Light Tracer: Rays/Sample: 2, Color Bleed: 2, Bounces: 1, Initial Sample Spac ng (Исходный шаг выборки): 32x32, Subdivide Down To (Уменьшение степени подразде- ления): 2x2. Перейдите к окну вида из камеры и выполните пробную визуа- лизацию. Она должна пройти довольно быщ ро. На степах наблюдается некоторая пятнистость, хотя это подтверждает лишний раз тот факт, что пи одна настоящая стена не бывает идеально ровной. Помимо заметной пятнистости стен, в сцепе неверно отображает- ся зеркальный шар, который никак не проявляет своих свойств, — он вы- глядит довольно плоско и уныло, а значит, и неправдоподобно для зеркаль- ной поверхности. Для устранения обоих указанных недостатков в данную сцену будет введен источник прямого света 4. Вернитесь к панели Create и введите в сцепу нацеленный источник прямо- го света, расположив его почти вертикально по все же с некоторым сме- щением относительно шара (рис. 20.21). Увеличьте значение и поле Hotspot/Beam из свитка Directional Parameters, чтобы данный источник све- та охватывал всю сцену.
888 Часть VIII. Визуализация и компоновка Рис. 20.21. Установка источника прямого света 5. Установите флажок Shadows и выберите вариант Shadow Мар из раскрываю- щегося списка в свитке General Parameters. Затем установите значение 0,2 па- раметра Multiplier в свитке Intensity/Color/Attenuation. Перейдите к свитку Shadow Map Parameters и установите значение 512 в поле Size, а также значе- ние 12,0 в поле Sample Range. Щелкнит е на пиктограмме источника верхнего света в сцепе и установите значение 0,6 параметра Multiplier в сви тке Sky- light Parameters. Выполните визуализацию в файл и проверьте полученные результаты. Для сравнения откройте сцену из файла Project Files\Ch20 AdvancedRendering\ballroomComplete.max, а также посмотрите изображение из файла Project Files\Ch20_AdvancedRendering\ animations -pics \ballShadow. jpg па прилагаемом к этой книге DVD. Благодаря ввод}' источника мягкого прямого света сцена приобрела более ха- рактерный вид (рис. 20.22). В этой сцене нужно было воспроизвести тени отбра- сываемые стенами, а также зеркальные подсветки на шаре. А изящной перезкости краев теней, формируемых методом проецирования карты теней, удалось до- биться с помощью относительно большого значения параметра Sample Range. Кроме того, прямым светом удалось затенить участок непосредственно под ша- ром, чтобы еще больше подчеркну гь его весомость.
Глава 20. Усовершенствованная визуализация 889 Рис. 20.21. Результат оптимального сочетания верхнего и прямого света Альтернативные варианты глобального освещения На рис. 20.23 приведен пример имитации глобального освещения с помощью четырех источников прямого света, дающих поверхностные тени. При этом про- должительность визуализации сокращается до 5 минут 35 секунд, хотя затенение в области носа статуи Будды получилось недостаточно качественным, не говоря уже о перенасыщенности горизонтальных участков его одежд. Данная сцена находит ся в файле Project Files\Ch20_AdvancedRendering\statueFakeGI.max на при- лагаемом к этой книге DVD. Откройте ее, чтобы посмотреть, как она организована (рис. 20.24). Еще лучше глобальное освещение имитируется с помощью сценария, пани сапного Ронни Ольстурном (Ronnie Olshthoorn; e-light@skyraider3d.com). Сценарий из файла E-Light_max5.ms доступен на Web-сайте но адресу www. skyraider3d. com, а также в папке Project Files \Ch2 O_AdvancedRendering\ E-Light script на прилагаемом к этой книге DVD. При выполнении сценария E-Light па сцепе устанавливается целый свод из ис- точников света (для получения изображения, приведенного на рис. 20.25, исполь- зовался свод радиусом 900 единиц, содержащий 91 источник света, каждый из ко- торых дает тени). Как только свод будет установлен, централизованное управление всем эффектом осуществляется из свитка Light Settings сценария Е Light, что очень удобно (рис. 20.26). Несмотря на то что в данном сценарии применяются самые обычные прожекторы и тени, формируемые методом проецирования карты теней, получаемый в итоге эффект выглядит очень хороню, а визуализация освещения выполняется довольно быстро.
890 Часть VIII. Визуализация и компоновка Рис. 20.24. Расстановка источников света, имитирующих глобальное освещение Рис. 20.25. Имитация глобального освещения с помощью сценария E-Light. Сцена визуализирована за 57 секунд (см. файл Project Files\Ch20_ AdvancedRenderingXanimations pics\buddhaEL.jpg на прилагаемом к этой книге DVD)
Глава 20. Усовершенствованная визуализация 891 Do Segments-р! С Dome Parameters Radius; | Эбб.СГ Hemisphere Light Settings - bght Parameters —--------- P Enable ( Step: Г :] MiJtipber 12 6 FaHoH [52(Г У Overshoot - Shadow Parameiets- I P’ Cast Shadows Density: |f tT *| Map Size |256 3 Bias.|0 CK 3 Sample Range. |5.0 C| Total: 91 Lights (24 МЫ Bitmap Settings Create Environment Light Hide/Unhide Environment Light About E-Light Рис. 20.26. Параметры настройки сце- нария E-Light для визуализации сцень, приведенной на рис. 20.25. Для проверки работоспособности данного сценария поместите его файл в панке своих сценариев и запустите на выполнение, предварительно открыв сцепу из фай- ла Project Files\Ch20_AdvancedRendering\statueEL.max на прилагаемом к этой книге DVD. Метод излучательности Выше был рассмотрен относительно быстрый метод визуализации с помощью Light Tracer, дающий достаточно хороший результат. Но иногда все же требуется абсолютная точность воспроизведения настоящих источников света и отражаю- щей способности поверхностей. Именно для этой цели и служит метод излуча- тельности. Такой метод воспроизведения взаимного отражения света в сцене первоначально применялся инженерами-теплотехниками. Их интересовало в ос- новном отражение тепла от поверхностей, хотя математические расчеты, кото- рыми они при этом пользовались, нашли применение и в компьютерной графике. Для инженеров-теплотехников основной интерес представляли относительные размеры предметов, поскольку обогреть самолетный ангар намного труднее, чем чулан. Поэтом}' им нужен был метод, учитывающий размеры объектов. Метод излучательности позволяет не только точно визуализировать отражен- ный свет, но и придать поверхностям и источникам света особые свойства. Если Light Tracer представляет собой обобщенное решение, пригодное для большин- ства наружных сцен независимо от их масштабов, то метод излучательности тре- бует указания точных размеров отдельных составляющих сцены в настоящем
892 Часть VIII. Визуализация и компоновка масштабе. Пренебрежение этим важным обстоятельством является причиной многих ошибок визуализации методом излучательности. Поэтом}' на него, прежде всего, и обращается особое внимание в этом разделе. НА ЗАМЕТКУ Для применения метода излучательности в 3ds max необходимо установить на- стоящие единицы измерения: метрические или стандартные для США. Если не указать правильные размеры внутренней стены, она может оказаться высотой 8 дюймов, 8 футов или же 8 миль, что приведет к ошибочному результату при визуализации по методу излучательности. Источники света для метода излучательности Данный метод требует также применения в сцене фотометрических, а пе стандартных источников света. Такие источники воспроизводят настоящие ис- точники света, излучая свет таким же образом, как и их подлинные аналоги. Ко- нечно, можно было бы обойтись и стандартными источниками света, но их все равно пришлось бы преобразовать в фотометрические, а значит, потерять пол- ный контроль над правильностью подобного преобразования. Многие производители осветительных приборов предоставляют технические ха- рактеристики источников света в специальных каталогах на своих Web-сайтах. Соот- ветствующие примеры можно найти па Web-сайте компании Erco (www. erco. сот) хотя для этого придется проанализировать немало технических данных. Искать сле- дует модели осветительных приборов, совместимые с архитектурным приложением VTZ 4, родственным 3ds max. Потребуются также специальные файлы IES, в кот орых указывается диаграмма распространения света отдельными осветительными прибо- рами. Правда, в подобных файлах осветительный прибор уже представлен в виде мо- дели со встроенным в пего источником света (в 3ds max такая модель представляет собой сгруппированный объект и источник света и называется светильником). Суще- ствует даже цепочка инверсной кинематики, позволяющая направить осветительный прибор туда, где находится цель его источника света. В разделе ‘Common Lamp Values for Photometric Lights” (Типичные парамет- ры ламп для фотометрических источников света) справочного руководства по 3ds max перечислены различные типы ламп, а ниже — их разновидности, чаще встре- чающиеся в быту. Все они относятся к типу свободно направленного точечного фотометрического источника света. • Лампочка па 60 Вт = 70 кандел. • Лампочка па 75 Вт = 95 кандел. • Лампочка на 100 Вт 139 кандел. Стандартные фотометрические источники света быстро выбираются из главно го меню с помощью команды Create^Lights^Photometric Lights1^ Presets (Создать1^ Источники света^Фотометрические источники света^Предварительно заданные источники света).
Глава 20. Усовершенствованная визуализация 893 На рис. 20. 27 приведены свойства лампочки на 100 Вт. Рис. 20.27. Свойства лампочки на 100 Вт Аналогичным образом настраиваются остальные фотометрические источники света. Помимо описанного выше способа, они вводятся в сцену из папели Create, где следует щелкнуть на кнопке Lights, выбрать из расположенного ниже раскрывающе- гося списка сначала категорию Photometric, а затем щелкнуть на кнопке конкретного источника света. Точечные фотометрические источники света аналогичны всена- правленным стандартным источникам света. Кроме того, «V еются и два уникальных источника света: поверхностный и линейный. Поверхностный источник имитирует свет от светящейся панели или потолочного люминесцентного осветительного при бора, а линейный источник имитирует свет отдельной люминесцентной или неоно- вой трубки. Источник света IES Sun (Источник, имитирующий солнечный свет по классификации Общества инженеров-светотехииков США) подобен источника' на- правленного света, а источник света IES Sky (Источник, имитирующий верхний свет по классификации Общества инжен ров-светотехников США) представляет собой вариант источника верхнего света для метода излучательности. Элементы управления экспозицией Сцены, визуализируемые методом излучательности, могут получиться очень темными, и поэтому неопытные пользователи повышают уровень освещенности своих сцеп, пытаясь выявить на сцене все, что можно различить. В итоге освеще- ние сцены приходит в полную негодность. Это можно сравнить с попыткой отрегу- лировать уровень освещенности в комнате с нормальным освещением, надев тем- ные солнцезащитные очки. Для устранения подобных недостатков в 3ds max име-
894 Часть VIII. Визуализация и компоновка ются элементы управления экспозицией, доступные из свитка Exposure Control (Управление экспозицией) во вкладке Environment диалогового окна Environment and Effects. В данном списке доступны следующие варианты выбора экспозиции: автома- тическая (Automatic), линейная (Linear), логарифмическая (Logar thmic) и псевдо- цветовая (Pseudo Color). В большинстве случаев достаточно установить автома- тическую экспозицию Линейная экспозиция пригодна для сцен с незначительно отличающимися уровнями освещенности тогда как логарифмическая экспозиция лучше всего подходит для весьма динамичных сцен, хотя она способна сделать изображения сильно перенасыщенными (рис. 20.28). Рис. 20.28. Применение логарифмической экспозиции может вызвать цветной ореол и по- терю теней в некоторых сценах (см. файл Project Files\Ch20_AdvancedRendering\ animations picsXexposureLog. jpg на прилагаемом к этой книге DVD) И наконец, нсевдоцветовая экспозиция является средством анализа яркости окраски и освещенноети сцены. На рис 20.29 приведен пример нарушения цве- тов при визуализации со шкалой яркости в нижней части изображения.
Глава 20. Усовершенствованная визуализация 895 Рис. 20.29. Результат визуализации при псевдоиветовой экспозиции Вопросы применения материалов Стандартные для 3ds max материалы отражают слишком много света и вызы вают световой ореол. Отражающая способность материалов должна контролиро- ваться очень точно, хотя добиться этого непросто, поскольку цвета становятся слишком темными на границе раздела. Применяя метод излучательности, срчедуст установить флажок Display Reflectance & Transmittance Information (Показывать информацию о коэффициентах отражения и пропускания) во вкладке Radios ty (Метод излучательности) диалогового окна Preferences, которое открывается по- сле выбора команды CustomizeoPreferences. В этом случае будут отображаться сведения о каждом материале, необходимые для точного контроля (рис. 20.30). Следует заметить, что серый материал, приведенный па рис. 20.30, фактически представляет собой белую краску на стене. Окраска этого материала приглушена путем коррекции значения цвета рассеяния. Для этого достаточно щелкнуть на об- разце цвета рассеяния и уменьшить значение счетчика Value в селекторе цвета. В растровом материале это делается несколько иначе. Откройте позицию кар- ты рельефности, перейдите к свитку Output и откорректируйте счетчик RGB Level (Уровень RGB), чтобы добиться требуемой отражающей способности дан- ного материала (рис. 20.31).
896 Часть VIII. Визуализация и компоновка Рис. 20 30 Режим отображения коэффи циентов отражения и пропускания, активи- зированный в редакторе материалов Bitmap: ikfefs\Ch 28 - Adv Rendemg\teKtures\CE DFENCE JPG । Reload -DoppngZPtdcement Filtering <® Pyramidal | C Summed Area <* None Г Apt* * Crop View mage - Mono Channel Output. <• RGB Intensity г Alpha Souce -RGB Channel Output — Л RGB । C* Aic4 « <&. (imr C RGB Intensity <• None (Opaque) Time Output Г Snvert Г" Damp Г Alpha from RGB Intensity Рис. 20.31. Уменьшение уровня RGB в рас- тровом материале Максимальный коэффициент отражения даже у самых белых материалов дол- жен быть пе более 80%. Ведь величина 100% этого коэффициента означает, что весь свет, падающий па стену, пропускается, что физически невозможно. Если материалы начинают слишком светиться, уменьшайте их отражающую способ- ность до тех пор, пока не устраните данный недостаток.
Глава 20. Усовершенствованная визуализация 897 Коэффициент пропускания определяет степень прозрачности материала, т.е. ко- личество света, проникающего сквозь данный материал. Совершенно непрозрачный материал имеет коэффициент пропускания 0%. У архитектурных материалов имеется свиток, в котором можно определить их коэффициенты отражения и пропускания. Так, материалу можно придать свой- ства полуглянцевой краски, бумаги, каменной кладки и т.д. НА ЗАМЕТКУ Геометрическая форма должна иметь достаточное число граней — по крайней ме- ре по одной на каждые 60 см. Правильность результатов визуализации по методу излучательности зависит от наличия достаточного числа вершин. Кроме того, сле- дует избегать неаккуратно сделанных пересечений стен, - вершины в них должны быть соединены на всех ребрах. Применение средства визуализации методом излучательности Параметры визуализации методом излучательности активизируются таким же образом, как и для визуализации с помощью Light Tracer. Для этого достаточно открыть диалоговое окно Render Scene, щелкнуть на вкладке Advanced Lighting и выбрать вариант Radiosity из раскрывающегося списка в свитке Select Advanced Lighting, ниже которого появится целый ряд свитков с параметрами настройки средства визуализации (рис. 20.32). Основное отличие данного средства визуализации от других аналогичных средств в 3ds max состоит в том, что перед визуализацией необходимо выполнить дополнительный этап обработки, во время которого на геометрическую форму сцепы накидывается скрытая сетка, используемая для хранения полученного ре- шения излучательности. Правда, вся сцена обрабатывается сразу, что дает воз- можность использовать сохраненную информацию на всех последующих этапах визуализации. Так, для анимации архитектурного проекта с высоты птичьего по- лета потребуется только один проход обработки. Но в то же время при внесении любых изменений приходится повторять обработку всей сцены. Управление по- добной обработкой осуществляется из свитка Radiosity Processing Parameters (Параметры обработки по методу излучательности) (см. рис. 20.32). Значения 85% параметра Initial Quality (Исходное качество) должно быть впол не достаточно, чтобы эффект излучательности стал заметным. А для детализации освещения всей сцены или отдельных объектов можно ввести дополнительные проходы визуализации Максимум качества достигается на уровне около 90-95%, поскольку совершенное 100%-ное качество недостижимо. Если сцена имеет пят- нистый вид, при увеличении параметра Initial Quality уменьшается изменчивость теней на данной поверхности.
898 Часть VIII. Визуализация и компоновка Рис. 20.32. Параметры настройки средст- ва визуализации методом излучательности Внешний вид сцены улучшается также благодаря фильтрации, не требующей дополнительных издержек на уточняющие проходы. Для сглаживания грубова- тых теней достаточно установить значение 3 или 4 параметра Filtering. НА ЗАМЕТКУ Иногда решатель излучательности оказывается перегруженным вследствие слиш- ком многочисленных изменении и выдает сообщение об ошибке Solution is invalid at current time frame (Решение недействительно в текущем проме- жутке времени). Запишите установленные параметры и сбросьте их, выбрав вари- ант <no lighting plug-in> (Без подключаемого модуля освещения) из раскрывающе- гося списка в свитке Select Advanced Lighting. Затем вновь выберите из этого рас- крывающегося списка вариант Radiosity и еще раз установите записанные значения параметров. Подобным образом можно разрешить многие возникающие затруд- нения. А вот выбор кнопки Reset АП (Сбросить все) мало чем помогает. При раскрытии свитков Radiosity Meshing Parameters (Параметры разбиения на многоугольники по методу излучательности) и Rendering Parameters появля- ются параметры нас тройки, приведенные на рис 20.33.
Глава 20. Усовершенствованная визуализация 899 Рис. 20.33. Параметры настройки из свит- ков Radiosity Meshing Parameters и Render- ing Parameters Средству визуализации методом излучательности приходится разбивать по- верхности па более мелкие участки, па которых можно отображать информа- цию об освещении. В области Global Subdivision Settings (Параметры глобаль ного подразделения) из свитка Radiosity Meshing Parameters указывается вели- чина подобного разбиения, хотя при правильном моделировании этого обычно не требуется. Устанавливаемые по умолчанию значения этих параметров могут быть оставлены без изменения и при выборе режима Regather Indirect Illumina- tion (Повторная выборка данных отраженного освещения) в свитке Rendering Parameters. Если выбрана кнопка-переключатель Re-Use Direct Illumination from Radiosity Solution (Повторно использовать прямое освещение из решения излучательно- сти), то тени в сцене внешне выглядят неверно. А если выбрана кнопка- переключатель Render Direct Illumination (Визуализация прямого освещения) ре- зультаты получаются намного лучше (рис. 20.34 и 20.35).
900 Часть VIII. Визуализация и компоновка Рис. 20.34. Сцена, визуализированная в режиме Re-Use Direct Illumination from Radiosity Solution (см. файл Project Files\Ch20_AdvancedRendering\ animations-pics\roomReUse.jpg на прилагаемом к этой книге DVD Рис. 20.35. Сцена, визуализированная за 26 секунд в режиме Render Direct Illumina- tion и при отключенных режимах Regather Indirect Illumination и Adaptive Sampling (см. файл Project Files\Ch20_AdvancedRendering\animations-pics\ room, jpg на прилагаемом к этой книге DVD)
Глава 20. Усовершенствованная визуализация 901 В режиме Regather Indirect Illumination обработка освещения повторяется для получения более точного решения излучательности. Особый интерес в данной области из свитка Rendering Parameters представляет параметр Filter Radius (pixels) (Радиус фильтра в пикселях). Этот параметр приходится корректировать в соответствии с размерами окончательно визуализируемого изображения. Чем меньше эти размеры, тем меньше значение данного параметра (как, например, устанавливаемое по умолчанию значение 2,5). Для крупных изображений значе- ние параметра Filter Radius (pixels) необходимо увеличить. Параметр Rays per Sample (Количество лучей на выборку) определяет общее качество, но если уста- новить слишком большое значение этого параметра, то значительно увеличится и продолжительность визуализации. Режим Adaptive Sampling (Адаптивная вы- борка) действует таким же образом, как и в Light Tracer: большей обработке под- вергаются контрастные участки изображения, где меняются объекты, чем круп- ные пустые участки. При активизации режима Regather Indirect Illumination про должительность визуализации увеличивается, однако некоторому ускорению данного процесса способствует активный режим Adaptive Sampling. Дополнительные сведения о методе излучательности Для экспериментирования с параметрами визуализации методом излучательности откройте сцену из файла Project Files\Ch20_AdvancedRendering\room.max па прилагаемом к этой книге DVD. Попробуйте импортировать в нес ряд своих моде лей, чтобы посмотреть, насколько метод излучательности способен улучшить их внешний вид. Для дальнейшего изучения возможностей этого метода визуализации советуем прочитать отличную вводную статью па данную тему, которую можно найти по адресу www.sigraph.org/education/materials/HyperGraph/radiosity/ overview_l. htm. Для углубленного исследования данного предмета ради созда ния собственного средства визуализации рекомендуем обратиться к книге Radios- ity and Global Ittuminalion (“Метод излучательности и глобальное освещение”) Франсуа Сийопа (Francois Sillion) и Клода Пуеша (Claude Puech), вышедшей в из дательстве Kaufmann, 1994 г. Модуль mental ray Модуль mental ray версии 3.3 представляет собой совершенно отдельное среде i во визуализации, разработанное компанией mental images (www.mentalimages.com) (рис. 20.36). Эго программное обеспечение, павшее отраслевым стандартом, приме- нялось при создании таких фильмов, как “Матрица: п резагрузка”, “Звездные войны”: вторая серия “Нашествие клонов” (Star Wars: Episode II— Attack of Clones) и “Терминатор 3: восстание машин” (Terminator 3: Rise of Machines). В феврале 2003 года Американская академия киноискусств воздала должное техническим дос- тижениям компании mental images.
902 Часть VIII. Визуализация и компоновка Рис. 20.36. Качество визуализации в mental ray (см. также файл изображения Project Files\Ch20_AdvancedRendering\animations-pics\stillLifeMR.jpg на прила- гаемом к этой книге DVD). Обратите внимание на свет, рассеивающийся под хру- стальным шаром Нетрудно догадаться, что технические особенности применения mental ray — это особая и довольно обширная тема, выходящая за рамки данной книги По- этому ниже будут лишь вкратце рассмотрены основные функции и возможности данного средства визуализации, что послужит хорошим основанием для даль нейшего самостоятельного изучения mental ray с использованием ресурсов при- веденных в конце этого раздела. Модуль mental ray обладает следующими возможностями. • Глобальное освещение. • Каустика (явление отбрасывания света на другую поверхность в результате отражения или преломления). • Нерезкие тени • Поверхностные источники света. • Векторная размытость движения. • Тени, размываемые при движении. • Реалистичная глубина резкости. • Расширенные средства затенения.
Глава 20. Усовершенствованная визуализация 903 Модуль mental ray полностью поддерживает многопоточный режим обработ- ки, поэтому в многопроцессорной системе визуализация существенно ускоряется. Так, в двухпроцессорной системе параллельно функционируют четыре выделен- ных блока памяти, тогда как на однопроцессорной машине — только один. Пользователям 3ds max нелегко привыкнуть к ограниченному характеру ли- цензирования mental ray. В каждой копии 3ds max 7 предоставляются лишь две лицензии: по одной на каждый процессор. Поэтому' если требуется внедрить men- tal ray в многомашинном комплексе визуализации, для этой цели придется приоб- рести дополнительные лицензии у компании discreet. Несмотря на то что визуализация в mental ray осуществляется непосредствен- но из 3ds max, данные можно по-прежнему выводить в собственном формате файлов с расширением . mi для визуализации средствами mental ray вне 3ds max. Это очень удобно, поскольку модуль mental ray внедрен в таких распространен- ных приложениях трехмерной графики и анимации, как Softimage I XSI Maya, Houdini 5 компании Side Effects Software, PhotoWorks 2 компании SolidWorks и CATIA V4 и V5 компании Dassault Systrime. Модуль mental ray встроен в различные части интерфейса 3ds max, поэтому его необходимо рассматривать в определенном порядке. Прежде всего, mental ray следует выбрать в качестве стандартного средства окончательной визуализации в свитке Assign Renderer (Назначение средства визуализации) из вкладки Common диалогового окна Render Scene, щелкнув на кнопке с многоточием рядом с мет- кой Production и выбрав элемент mental ray Renderer из списка в открывшемся диалоговом окне. Источники света в mental ray В mental ray допускается применение всех типов источников света, доступных в 3ds max, однако заметного эффекта визуализации удается добиться лишь с по- мощью поверхностных источников света. Такие источники света дают естест- венного вида нерезкие тени благодаря излучению света из двухмерной плоско- сти, а не единственной точки пространства. Всенаправленный поверхностный источник света (mr Area Omni), а также прожекторный поверхностный источник света (mr Area Spot) из mental ray доступен с помощью соответствующих кнопок в свитке Object Туре при выбранной категории Lights из раскрывающегося списка на панели Create. НА ЗАМЕТКУ Если расширения mental ray отсутствуют среди параметров источников света или материалов, их необходимо активизировать. Для этого откройте диалоговое окно Preferences, выбрав команду Customize^ Preferences, выберите вкладку mental ray и установите флажок Enable mental ray Extensions (Активизировать расширения mental ray). Кроме того, модуль mental ray должен быть выбран в качестве стан дартного средства окончательной визуализации в диалоговом окне Render Scene.
904 Часть VIII. Визуализация и компоновка Преобразование источников света из 3ds max к типу mental ray Один или все источники света из 3ds max могут быть преобразованы в поверх- ностные источники света mental ray с помощью специальной утилиты, выпол- няемой по сценарию, следующим образом. 1. Выделите один или несколько источников света. 2. Перейдите к панели Utilities и щелкните на кнопке MAXScript. 3. Выберите вариант Convert to mr Area Lights (Преобразовать в поверхност- ные источники света mental ray) из раскрывающегося списка Utilities в свит- ке MAXScript. 4. Щелкните в раскрывшемся свитке на кнопке Convert Selected Lights (Преобразовать выделенные источники света). При этом у вас есть воз- можность удалить исходный источник света. Если же его оставить, интен- сивность освещения сцепы удвоится. Применение поверхностных источников света удобно начать с теней, форми- руемых методом трассировки лучей. В свитке Area Light Parameters особая роль принадлежит полям Width и Height (или Radius, если источник имеет форму ци- линдра) При настройке этих параметров следует обращать внимание на голубую линию на пиктограмме данного источника света, чтобы иметь представление о его разменах. Чем больше ис гочпик света, тем более размытыми получаются края теней и более продолжительной оказывается их визуализация (рис. 20.37). Рис. 20 37. Коррекция размеров поверхностно- го источника света Материалы mental ray Материалы из 3ds шах могут быть также преобразованы к типу mental ray, а за- тем соответственно настроены. Применяя оттенители, физически точно вос- производящие свойства поверхностей, в сочетании с материалами mental ray, можно добиться более реалистичного внешнего вида визуализируемых изобра- жений. А благодаря точному' управлению отдельными составляющими, включая тени и фотонную каустику', можно получить именно тот внешний вид, какой тре- буется (рис. 20.38).
Глава 20. Усовершенствованная визуализация 905 Рис. 20.38. Область параметров стан- дартного материала в свитке mental ray Connection, расположенном в нижней части редактора материалов В состав 3ds шах входят три набора библиотек оттенитслей: стандартные библио- теки для mental ray, специальные библиотеки для 3ds max и библиотеки LumeTools. Все они позволяют физически точно воспроизвести свойства конкретной поверхно- сти. Термин “оттенитель” имеет в mental ray намного более широкий смысл, чем в стандартном интерфейсе 3ds max. Если выбрать на свободной позиции образца материал mental ray и щелкнуть на кнопке карты, откроется расширенный вариант окна Material/Map Browser, обеспе- чивающий доступ к самым разным эффектам mental ray. Для начала можно выбрать материал DGS Material, т.е. материал с рассеянием, глянцевитостью и зеркально- стью. Такой материал в mental ray представляет собой предварительно составлен- ный алгоритм затенения, обеспечивающий физически точную имитацию свойств поверхности. Этот материал пригоден для большинства объектов, но если ввести в нем растровое изображение, затенение объекта окажется неверным. НА ЗАМЕТКУ Применение затенения со смешением (Displacement) в какой-то степени подобно применению стандартного проецируемого материала, но при этом оперативная память используется намного эфф ктивнее. Кроме того, в mental ray поддерживается рисованное затс нение с помощью упоминавшегося ранее материала Ink'n Paint из 3ds max. Результаты визуализации практически такие же, как и при использовании стандартного средства визуали- зации с построчной разверткой, только в mental ray это происходит намного бы- стрее (рис. 20.39).
906 Часть VIII. Визуализация и компоновка Рис. 20.39. Космонавт визуализированный в mental ray за 38 секунд. Для получе- ния изображения такого же качества с помощью стандартного средства визуали- зации с построчной разверткой потребовалось бы 4 минуты 35 секунд (сравните изображения из файлов spaceman.jpg и mrspaceman.jpg, расположенных в папке Project Fi es\Ch20_AdvancedRendering\ animations-pics на прилагаемом к этой книге DVD) Настройка визуализации в mental ray Приступая к визуализации, можно обнаружить целый ряд изменений в диало- говом окне Render Scene. Так, во вкладке Indirect Ilium nation (Отраженное осве- щение) часто делаются ссылки па фотоны, с помощью которых в mental ray вос- производится отраженное освещение и каустика. Общая мощность излучения фотонов определяется параметром Global Energy Multiplier (Глобальный энерге- тический показатель), расположенным в нижней части данной вкладки. Фотоны никак не связаны с яркостью освещения сцепы, что может ввести в заблуждение начинающих пользователей mental ray. Если неправильно установить этот пара- метр, результаты визуализации могут принести сплошное разочарование. В следующем упражнении демонстрируется правильная последовательность операций для получения хороших результатов визуализации каустики и глобаль- ного освещения.
Глава 20. Усовершенствованная визуализация 907 1. Откройте сцену из файла Project Files\Ch20_AdvancedRendering\ diamondOl.max на прилагаемом к этой книге DVD Сохраните эту' сцену в соответствующей подпапке на жестком диске с помощью команды Save As и присвойте ее файлу имя diamond02 .max. 2. Выполните пробную визуализацию в окне вида из камеры. В итоге должно по- лучиться изображение алмаза с использованием материала GemstoneDiamond (Ювелирный камень алмаз) из библиотеки материалов RayTraceed_02 .mat. В данной сцене применяется также карта окружения, имитирующая рассвет (рис. 20.40). Рис. 20.40. Алмаз, визуализированный с разрешением 640x480 за 17 секунд с помощью средства визуализации с построчной разверткой (см. файл Project Files\Ch20 AdvancedRendering\animations pics\diamond01.jpg на при лагаемом к этой книге DVD) 3. Откройте диалоговое окно Render Scene, перейдите к вкладке Common и раскройте свиток Assign Renderer. Щелкните на кнопке с многоточием, расположенной рядом с меткой Production, и выберите элемент mental ray Renderer из списка в открывшемся диалоговом окне. Вновь выполните пробную визуализацию. Качество изображения заметно не изменится, а вот визуализация существенно ускорится. Для того чтобы добиться сверкания алмаза, придется приложить еще немало усилий. Прежде всего, необходимо добиться более физически точного воспроизве- дения свойств материала. Для этой цели будет использован материал Glass Phenomena (Явления в стекле) типа mental ray, входящий в состав 3ds max. 4. Нажмите клавишу' <М>, чтобы открыть редактор материалов. Щелкните па первой позиции образца материала, чтобы выделись ее. Затем щелкните на кнопке Standard, чтобы открыть окно Material/Map Browser. Выберите из списка материал Glass (physics_phen).
908 Часть VIII. Визуализация и компоновка В этом окне материалы из mental ray обозначены желтым, а не привычным голубым шариком. Если вам требуется создать свой материал для mental ray, выберите сначала его тип. 5. Установите значение 1, 5 в поле Index of Refraction (Показатель преломления) из свитка параметров материала Glass (physics_phen). Это значение при- ближенно соответствует показателю преломления настоящего алмаза. Перета- щите данный материала на алмаз, а затем закройте редактор материалов. Еще раз выполните пробную визуализацию. После этого глубина алмаза проявляется более отчетливо, и внутри него происходит отражение света (рис. 20.41). А теперь необходимо поправить угловатую тень. Рис. 20.41. Физически точное воспроизведение материала алмаза, визуализи- рованного за 7 секунд (см файл Project Files\Ch20_AdvancedRendering\ animations-pics\d amond03 . pg на прилагаемом к этой книге DVD 6. Щелкните сначала на кнопке MAXScript из панели Utilities, а затем выберите вариант Convert to mr Area Lights из раскрывающегося списка Utilities Вы- берите на сцене прожектор и щелкните на кнопке Convert Selected L ghts в одноименном свитке. Щелкните на кнопке Yes, чтобы удалить старый ис- точник света. 7. Выделите вновь преобразованный источник света и перейдите к панели Modify, где сохранились параметры прежнего ис сочника света. Но в данном случае требуется открыть свиток Area Light Parameters Выберите вариант Disc (дисковый) из раскрывающегося списка Туре и постепенно увеличьте до 7 0 значение в поле Radius, обратив внимание на голубой крут вокруг данного источника света в одном из видовых окоп. Это удобный способ определения на глаз размеров поверхностного источника света при создании собственных сцен. Установите значение 10 в полях U и V из области Samples. Затем уста- новите значение 0,5 параметра Density в свитке Shadow Parameters
Глава 20. Усовершенствованная визуализация 909 После пробной визуализации значительно улучшается внешний вид теней от алмаза, формируемых методом трассировки лучей. Реалистичный и не- резкий характер этих теней обеспечивает поверхностный источник света (рис. 20.42). А теперь откройте диалоговое окно Render Scene, чтобы на- строить параметры визуализации. | НА ЗАМЕТКУ_________________________________________________________ Перед визуализацией в mental ray необходимо очень тщательно нацеливать ис точники света. Так, если источник света направлен в точку пространства, где ничто не останавливает фотоны, это приведет к неверному результату. Если же такое нацеливание источника света совершенно необходимо, то рекоме -(дуется окружить сцену большой сферой с направленными в обратную сторону норма- лями. Это позволит уловить случайно отклонившиеся фотоны и в то же время ускорить визуализацию. Рис. 20.42. Алмаз отбрасывает нерезкую тень при продолжительности визуа- лизации 41 секунда (см. файл Project Files\Ch20_AdvancedRendering\ animations-pics\diamond04 . jpg на прилагаемом к этой книге DVD) 8. Откройте диалоговое окно Render Scene и перейдите к вкладке Indirect Il- lumination. Установите флажок Enable (Активизировать) в области Caustics (Каустика). Если попытаться выполнить визуализацию, появится сообщение об ошиб- ке, указывающее па отсутствие формирователей каустики па сцепе. Такие формирователи назначаются на уровне объектов. 9. Щелкните сначала па источнике света, а затем на алмазе, нажав одновремен- но клавишу' <Ctrl>. Щелкните правой кнопкой мыши и выберите команду Properties из правого нижнего квадранта всплывающего квадратного меню.
910 Часть VIII. Визуализация и компоновка 10. Перейдите к вкладке mental ray в открывшемся диалоговом окне Object Properties и установите флажок Generate Caustics (Формировать каустик}) (рис. 20.43). Рис. 20.43. Включение режима формирования каустики для алмаза и источника света 11 Вернитесь к вкладке Indirect Illumination диалогового окна Render Scene и установите флажок Enable в области Global Illumination. Затем перейдите к области Light Properties (Свойства источника света), увеличьте до 10 значе- ние параметра Global Energy Multiplier и уменьшите до 1,5 значение параметр pa Decay. Если теперь визуализировать изображение, в нем появится каустика, обу- словленная преломлением света внутри алмаза Для воспроизведения кау- стики и глобального освещения в mental ray перед визуализацией выполня- ется дополнительный проход излучения фотонов (рис. 20.44). Рис. 20.44. Великолепный вид алмаза, визуализированный с каустикой за 1 ми- нуту 24 секунды (см. файл Project Files\Ch20_AdvancedRendering\ animations-pics\diamond05. jpg на прилагаемом к этой книге DVD) Полученное изображение можно еще улучшить. Так, в режиме Final Gather происходит некоторое окрашивание от окружающей среды, имитирующей рассвет, благодаря чему в каустику вносятся дополнительные детали.
Глава 20. Усовершенствованная визуализация 911 | НА ЗАМЕТКУ_________________________________________________________ В mental ray при излучении фотонов не принимаются во внимание объекты ис ключенные из сферы влияния источников света. Так, если попытаться исключить из сферы влияния источника света находящуюся внутри него лампочку, фотоны не будут излучаться, что приведет к ошибочному результату. На освещение сцены в целом это не оказывает никакого влияния, поэтому подобные ошибки выявляют- ся и устраняются с большим трудом. 12. Установите флажок Enable в области Final Gather (Окончательная выборка) одноименного свитка во вкладке Indirect Illumination. Уменьшите до 100 значение параметра Samples. Перейдите к области Trace Depth (Глубина трассировки лучей) и установите значение 12 в полях Max Reflect ons (Максимальное число отражений) и Max Refractions (Максимальное число преломлений). Выполните окончательную визуализацию данной сцены. Сравните свои результаты со сценой из файла Project Files\Ch20_ AdvancedRenderingXdiamondFinished.max на прилагаемом к этой кни- ге DVD (рис. 20 45) Рис. 20.45. Дополнительные детали, проявляющиеся в результате преломления и каустики в алмазе, визуализированном за 1 минуту 2 секунды (см. файл Project Files\Ch20_AdvancedRendering\anirnations-pics\diamond06.jpg на прила- гаемом к этой книге DVD) 11отенциальпые возможности mental ray раскрываются в основном в ходе тща- тельного изучения этого передового средства визуализации и экспериментирова- ния с ним на практике. А здесь его функции и свойства были затронуты лишь вкратце Дальнейшее исследование mental ray вы можете продолжить на примере сцены из файла Project Files\Ch20_AdvancedRenderrng\stillLifeMR.max на прилагаемом к этой книге DVD.
912 Часть VIII. Визуализация и компоновка Дополнительные сведения о mental ray Учебный материал по mental ray можно найти по адресу www. 3drender. сот/ ref /тг. htm. Многие примеры такого материала относятся к применению mental ray в Maya и Softimage XSI, поэтому их еще нужно привес ги в соответствие с 3ds max. Отличным пособием по mental ray служит книга Rendering with mental ray (“Визуали- зация в mental ray”) Томаса Драймейера (Thomas Driemcyer), в 2001 году вышедшая в издательстве Springer Verlag. Томас Драймейер руководил разработкой menial ray и поэтому' является самым подходящим автором для подобного общего введения в данное приложение. В книге приведены упражнения для поэтапного выполнения и раскрывается внутренний механизм работы mental ray наряду с многочисленны- ми рекомендациями, специальными приемами и готовыми решениями. Кроме то- го, в книге подробно рассматривается язык описания сцеп в mental ray и библиоте- ки оттенителей. Непременно спрашивайте второе издание книги, в которое вошло описание дополнений, включенных в версию mental ray 3. Самостоятельная работа По желанию вы можете продолжить работу над материалом этой главы, по- пробовав выполнить следующее. • Light Tracer. Попробуйте применить сцену из файла Project FilesX Chl9_BasicRendering\City\city.max па прилагаемом к этой книге DVD для организации наружного освещения. Если вы ввели в нее объемный туман — тем лучше, так как одну сцепу можно сделать солнечной, а другую пасмурной. И совсем неплохо было бы осуществить анимационный переход от одной сцены к другой! • Ink'n Paint. Попытайтесь создать вариант упомянутой выше сцены город- ского пейзажа с рисованным затенением. Для этого вам придется откор- ректировать толщину линий обводки в зависимости от расстояния до каме- ры, чтобы они не наползали на раскрашенные участки. • mental ray. Превосходство mental ray над средством визуализации с по- строчной разверткой проявляется также при воспроизведении каустики, возникающей вследствие отражения и преломления, как, например, при взаимодействии света с водой. В состав 3ds max 7 входит отличный учеб- ный материал, в котором на примере плавательного бассейна поясняется порядок воссоздания подобного светового эффекта. Резюме В двух последних главах этой книги были рассмотрены многочисленные спо- собы вывода трехмерных сцен па экран, но па этом процесс производства анима- ционной продукции не завершается. Поэтому в следующей главе будут рассмот- рены вопросы компоновки, ввода спецэффектов и объединения визуализирован ных файлов в закопченную продукцию в качестве завершающего этапа работы над проектом.
Глава 21 Компоновка Дуг Барнард Визуализация трехмерной графики и анимации представляет собой лишь один (иногда даже небольшой) этап обширного процесса производства. При этом очень важно правильно и рационально организовать передачу визуализирован- ных элементов на компоновку. На первый взгляд компоновка кажется излишней, тем не менее опа способствует сокращению продолжительности визуализации крупных сцеп и делает более гибким и удобным завершающий этап производст- венного процесса. * Некоторые эффекты, включая светящиеся огни, нс могут быть введены во время визуализации. Их необходимо вводить в сцепу па отдельном проходе по за- вершении основной визуализации. Это можно сделать двумя способами: в окне утилиты Video Post или во вкладке Effects диалогового окна Environment and Ef- fects. Встроенная в 3ds max утилита Video Post применяется для наложения, пере- ключения камер и выполнения многих других полезных функций. А поскольку процедура ввода эффектов во вкладке Effects диалогового окна Environment and Effects (рис. 21.1) и в окне Video Post практически ничем не отличается, в этой главе опа будет рассмотрена только на примере эффектов видсомоптажа. fLens Effects OK Blur Brightness and Contrast Cancel Color Balance Depth of Field File Output Film Grain Motion Blur Рис. 21.1. Эффекты видеообработки вводятся во вкладке Effects диалогово- го окна Environment and Effects таким же образом, как и в окне Video Post
914 Часть VIII. Визуализация и компоновка Основные понятия Ниже приведены основные понятия и определения компоновки. • Компоновка. Сборка различных изобразительных фрагментов для получе- ния общей картины. Такими фрагментами могут быть неподвижные изо- бражения или кадры анимации. Их можно складывать или вычитать. Как правило, па данном этапе выполняется цветовая коррекция, вводятся двух- мерные эффекты и переходы между сцепами. • Слои. Различные компонуемые фрагменты, располагаемые в определенном порядке. Расположение отдельных фрагментов слоями пе следует путать с составлением картинки загадки. Это процесс последовательного распо- ложения одних слоев над другими. • Альфа-канал. 8-разрядное полутоновое изображение, выполняющее функ- цию трафарета, например, для получения нерезких краев определенных участков изображения при размытии. • Маска. Синоним альфа-канала. В хорошей программе компоновки маска может быть сформирована по ходу данного процесса с помощью опреде- ленного диапазона цветов отдельных пикселей, яркости или различных ат- рибутов. После этого выполняются самые разные операции, в том числе цветовая коррекция или получение непрозрачных участков изображения. Компоновка в качестве завершающего процесса производства требует от ху- дожника, занимающегося трехмерной графикой и анимацией, перестройки его мышления, поскольку'он привык получать завершенное изображение, ласкающее глаз или удовлетворяющее оформительским требованиям. А в качестве компо- новщика художнику приходится иметь дело с целым рядом сложно переплетен- ных компонентов, которые можно видоизменять и собирать вместе на завер- шающем этапе производственного процесса. Элементы визуализации Основная производственная задача компоновщика- коррекция и компенса- ция цветов Для внедрения в сцепу трехмерной графики требуется топкая и кро- потливая работа. И во многих случаях совершенно недостаточно изменить внеш- ний вид визуализированного изображения в двухмерной форме. Например, даже в реальном кинопроизводстве фильма “Звездный путь” (Star Trek) космический корабль па орбите пришлось снимать неоднократно при разном освещении, а окончательный кадр съемки был скомпонован из различных проходов съемки камерой. В 3ds max 7 ничего подобно делать пе нужно — достаточно лишь перейти ко вкладке Render Elements диалогового окна Render Scene (рис. 21.2).
Глава 21. Компоновка 915 Рис. 21.2. Вкладка Render Eements диа- логового окна Render Scene Как показано на рнс. 21.2, вес имеющиеся компоненты изображения сцены разделены па отдельные файлы. С их помощью компоновщик может вырезать в сцене объекты, откорректировать цвет окраски теней для согласования с ос- тальной частью комбинированного изображения и сделать весьма эффективны- ми зеркальные подсветки. Ниже приведено краткое описание типов файлов для раздельной визуализа ции элементов сцены. На рис. 21 3 представлена полностью визугтлизированная сцепа с натюрмортом. Для визуализации этого изображения размерами 1280x960 с помощью стандартного средства визуализации с построчной разверткой на компьютере с тактовой частотой процессора 2,53 ГГц и объемом оперативной памяти 1 1 байт потребовалось 18 минут 3 секунды.
916 Часть VIII. Визуализация и компоновка Рис. 21.3. Визуализированное изображение сцены с натюрмортом (см. файл Project Files\Ch21_Compositing\animations-pics\stillLife.jpg на прилагаемом к этой книге DVD) Щелкнув па кнопке Add во вкладке Render Elements диалогового окна Render Scene, можно указать дополнительные выходные файлы, которые следует соз- дать во время визуализации (рис. 21.4—21.18). Каждый визуализируемый элемент активизируется или отключается в области Selected Element Parameters (Параметры выбранных элементов) и там же указывается путь к соответствующе- му файлу. Кроме того, в области Output to combustion™ можно организовать вы- вод в файл формата combustion. И наконец, для установки дополнительных пара- метров в нижней части вкладки Render Elements появляется отдельный свиток. НА ЗАМЕТКУ Свиток дополнительных параметров зависит от контекста, поэтому его содер- жимое изменяется при выборе конкретного элемента в списке.
Глава 21. Компоновка 917 Рис. 21.4. Specular — элемент визуализации зеркального отражения Рис. 21.5. Diffuse — элемент визуализации цвета рассеяния. В нижней части вкладки Render Ele- ments появляется свиток, в котором указь вается ввод дополнительных световых эффектов Рис. 21.6. Self-Illumination — элемент визуали- зации самосвечения. В данном случае это плафон настольной лампы и ее выключатель Рис. 21.7. Reflection — элемент визуализации всех отражении в сцене. Как видите, отража- ется даже материал Ink'n Paint Рис. 21.8. Refraction — элемент визуализа ции всех преломлении в сцене Рис. 21.9. Shadow — элемент визуализации те- ней в сцене. Черно-белые тени сохраняются только в альфа-канале
918 Часть VIII. Визуализация и компоновка Рис.21.10. Atmosphere— элемент визуализа- ции атмосферных явлений в сцене. В данном случае подобные эффекты отсутствуют, по- этому изображение получается черным Рис. 21.11. Blend- отдельная комбинация эле- ментов визуализации. В нижней части вкладки Render Elements появляется свиток, в котором указываются элементы, входящие в эту комби- нацию. В данном случае выбраны элементы Self- lllumination и Specular Рис. 21.12. Z Depth элемент визуализации в полутоновом варианте глубины всех находя- щихся на сцене объектов. Ближайшие объекты обозначены белым и светло-серым цветом, а задний план сцены — черным. В нижней час- ти вкладки Render Elements появляется свиток, в котором следует установить подходящие значения параметров Z Min и Z Мах, чтобы до- биться правильного затенения Рис. 21 13. Alpha— элемент визуализации в полутоновом варианте альфа-канала, или непрозрачности сиены. Прозрачные пиксели обозначены черным, непрозрачные — белым а полупрозрачные — серым цветом. Чем тем- нее пиксель, тем он прозрачнее. Благодаря этому упрощается компоновка объекта, ле- тящего в небе | НА ЗАМЕТКУ____________________________________________________________ Однажды мне удалось найти аналогию, помогающую легко запомнить, каким цветом обозначается прозрачность. Представьте себе ярко освещенную комнату с белыми стенами и окном, выходящим на улицу в самую темную ночь. При этом белые стены непрозрачны, а темное ночное пространство в окне — прозрачно. Обратное (т е черные прозрачные стены и непрозрачный белый свет) практиче- ски невозможно.
Глава 21. Компоновка 919 Рис. 21.14. Background — элемент визуали- зации фона в сцене. Это удобно, поскольку ни один другой элемент визуализации не экспортирует фон Рис. 21.15. ink — элемент визуализации обводки в материале Ink п Paint. Данный элемент был об- ращен, чтобы показа ь с помощью альфа-канала обводку, обычно обозначаемую черным цветом Рис. 21.16. Paint — элемент визуализации рас- краски поверхности в материале Ink'n Paint Рис. 21.17. Lighting — элемент визуализации эффектов света и тени в сцене. Отлично подходит для изменения контраста, или со- отношения света и тени в изображении Рис. 21.18. Matte — элемент визуализации маски в зависимости от идентификаци- онных номеров эффе тов объектов, каналов G-буфера или выделенных объек тов Отлично подходит для вырезания маски отдельных объектов. В данном слу- чае для хрустального шара был назначен идентификационный номер объекта 2
920 Часть VIII. Визуализация и компоновка Выводить файлы отдельных элементов визуализации вручную и затем загру- жать их в приложение компоновки довольно хлопотно. Поэтому во вкладке Ren- der Elements имеется возможность сохранить все элементы визуализации в еди- ном файле с расширением . cws наряду с назначенными каналами (рис. 21.19). Рис. 21.19. Изображение сцены с натюрмортом, полностью скомпонованное из от дельных элементов визуализации в приложении combustion 3 компании discreet Нетрудно догадаться, что визуализация по отдельным элементам — дело хло- потное, а при наличии длинных последовательностей кадров трудно осущест- вимое. Поэтом)7 визуализацию по элементам целесообразно использовать для коррекции изображения в конкретном канале. Так, если требуется сделать чуть нерезким фон, вместе с основным изображением следует визуализировать эле- мент Z Depth и затем скомпоновать оба файла. Для этой цели проще всего сохранить результаты визуализации в виде целого ряда файлов с расширением .ria или .rpf. Настройка параметров такого выво- да осуществляется при указании формата вывода в диалоговом окне Render Out- put. Особо следует отметить формат .rpf, который позволяет сохранять инфор- мацию о скорости и прозрачности в каналах Velocity и Transparency. Однако, для того чтобы воспользоваться информацией в этих каналах, требуется приложение combustion.
Глава 21. Компоновка 921 Стратегии компоновки Без профессиональной компоновки зачастую трудно обойтись, даже если она первоначально не включена в производственный процесс. Для простых сцен пользы от компоновки действительно немного. Ее истинные достоинства прояв- ляются при формировании сложных кадров съемки. Основной принцип достаточно прост: визуализировать следует слоями в зависимо- сти от расстояния до камеры. Задний план должен представлять собой отдельный слой, а средний план, персонажи и реквизит могут быть визуализированы в отдель- ные файлы. Подобные слои отличаются от тех, что доступны в 3ds max, тем не ме- нее они являются отличным средством упорядочения компонуемого материала. Ниже перечислены причины для обращения к компоновке. • Основные решения еще не приняты. Режиссер еще не решил, должен ли персонаж носить шляпу, должен ли реактивный самолет появиться в небе в данный момент илы несколько сцен спустя? Визуализация того материала, который уже есть па данный момент, позволит избежать впоследствии за- держек производства. • Принятые решения не вызывают особого доверия. По сценарию требу- ется панорамирование батальной сцены в течение минуты. На ваш взгляд, это неудачная идея, и. скорее всего, сцена будет вырезана. Быстрая визуа- лизация упрощенного варианта данной сцепы позволяет сэкономить нема- ло времени и напрасного труда. • Максимальные удобства для завершения проекта. Несколько вариантов визуализируется отдельно, а затем изящно объединяется с остальной гра- фикой и другими элементами в приложении компоновки. Благодаря раз- дельной визуализации художники получают свободу для экспериментиро- вания. Что же касается крупномасштабного производства, то окончатель- ная компоновка обеспечивает согласованный внешний вид сцен, созданных разными художниками. • Повышение производительности. Следуйте примеру таких известных анимационных студий, как Hanna-Barbera; старайтесь пользоваться огра- ниченными движениями камеры, чтобы визуализировать неподвижный фон и накладывать на него персонажи и объекты, находящиеся на среднем плане. Так, если сцена происходит в )устом лесу, подобный совет позволяет сэкономить немало времени! Применение материала Matte/Shadow и исключение объектов В следующем упражнении будет предпринята попытка быстро создать кадр комбинированной съемки с использованием неподвижного фона. В этой сцене из вымышленного фильма “Пришельцы на каникулах” (Alien Spring Break) при- шельцы из космоса ищут возможность пролететь над известной улицей Дюваль- стрит в Ки-Уэст, шт. Флорида. Если просто визуализировать космический ко- рабль на фоне изображения улицы, ои вряд ли будет появляться из-за зданий.
922 Часть VIII. Визуализация и компоновка Кроме того, летающая тарелка должна отбрасывать зловещую тень, ползущую по автомашинам и зданиям. Для этой цели материал Matte/Shadow будет использо- ван с подстановочными объектами 1. Откройте сцену из файла Project Files\Ch21_Compositing\DuvalSt. max па прилагаемом к этой книге DAT). Сохраните эту сцепу в соответст- вующей подпапке на жестком диске, выбрав команду Save As и присвоив ее файлу новое имя DuvalStOl .max. 2. Выберите из главного меню команду Renderings Environment. Щелкните па кнопке None, расположенной ниже метки Environment Мар в свитке Common Parameters диалогового окна Environment and Effects. Выберите карту Bitmap в открывшемся окне Material/Map Browser. Найдите файл изображения Project Files\Ch21_Compositing\animations-pics\DuvalSt.tga на прилагае- мом к этой книге DVD. После загрузки этого файла закройте диалоговое окно Environment and Effects (рис. 21.20). Рис. 21.20. Выбор карты окружения в качестве фона | НА ЗАМЕТКУ_______________________________________________________ Уделите немного времени анализу изображения улицы Дюваль-стрит. Из этого изображения были удалены все люди, а машины дополнены стоп сигналами в Photoshop. И наконец, с помощью выборочной обрезки на крыше здания был удален развевающийся флаг. Секрет применения неподвижных изображений в качестве фона состоит, в частности, в том, чтобы исключить из него любые объекты, предполагающие движение. Кроме того, в данное изображение был включен альфа-канал, с помощью которого можно заменить небо. 3. А теперь, когда имеется фон для визуализации, воспользуйтесь им для по- строения данной сцены. Щелкните в окне вида в перспективе и выберите из главного меню команду ViewssViewport Background (ВидыЧ>Фон видового окна). Установите флажки Use Environment Background (Использовать ок- ружающий фон) и Display Background (Отображать фон) в диалоговом окне Viewport Background, после чего закройте это окно. В текущем видовом ок- не появится изображение улицы Дюваль-стрит (рис. 21.21).
Глава 21. Компоновка 923 Рис. 21.21. Активизация карты окружения в диалоговом окне Viewport Background Откройте диалоговое окно Render Scene и выберите вариант NTSC DV (video) из раскрывающегося списка в области Output Size из вкладки Com- mon. При этом устанавливается формат изображения 720x480 для цифро- вого видео по стандарт}' NTSC. 4. Щелкните правой кнопкой мыши на метке окна вида в перспективе и выбе- рите команду' Show Safe Frame (Показывать безопасный кадр) из всплы- вающего контекстного меню. Повторите эту же операцию, выбрав на сей раз команду- Show Grid (Показывать сетку'), чтобы отключить отображение исходной координатной сетки. Теперь фон будет совпадать с визуализи- руемым окружением. Закройте диалоговое окно Render Scene. 5. Щелкните правой кнопкой мыши в текущем видовом окне и выберите коман- ду' Unhide by Name (Показать по имени) из правого верхнего квадранта всплывающего квадратного меню, чтобы показать на сцепе камеру CameraOl и ее цель. Нажмите клавишу <С>, чтобы перейти от окна вида в nepi пектине к окну вида из камеры. 6. Перейдите к панели Create, щелкните на кнопке Geometry и создайте в ок не вида сверху плоскость размерами 630x720 пикселей. В полях Length Segs и Width Segs должно быть установлено значение 8. Перемещайте плоскость до тех пор, пока ее линии не совпадут с линиями краев тротуара в видовом окне CameraOl. Плоскость необходимо опустить чуть вниз и от- цеп гровать линии ее сегментов. Теперь вы можете использовать эту плос- кость или же показать на сцене объекг плоскости основания (PlaneOl). На данном этапе сцепа должна выглядеть так, как показано на рис. 21.22.
924 Часть VIII. Визуализация и компоновка Рис. 21.22. Плоскость основания, выровненная по камере и фону | СОВЕТ________________________________________________________________ Используя файл заранее подготовленной сцены, вы можете лучше понять сущ ность процесса компоновки. Хотя ничто не мешает вам начать с пустого видово- го окна без фона. Не бойтесь экспериментировать с расположением объектов на сцене, чтобы добиться их правильного выравнивания. 7. Создайте в видовом окне CameraOl параллелепипед, на который должна падать тень от основного здания в данной сцене. Начиная с точки, находя- щейся позади припаркованного автофургона, вытяните параллелепипед так, чтобы оп имел такие же размеры, как и здание. Воспользуйтесь инст- рументом Move, чтобы поместить его па место. Откорректируйте его раз- меры, чтобы дальний край параллелепипеда совпал со зданием, достигнув его высоты. В данном случае размеры параллелепипеда должны быть сле- дующими: длина— 333, ширина— 600, высота— 508. На рис. 21.23 показано, что передний край моделируемого здания не совпа- дает с углом здания, ближе всего находящегося к камере. Точного совпаде- ния виртуальной и настоящей камеры добиться очень трудно. Л для того чтобы воспользоваться утилитой Camera Match, требуются точные изме- рения, которые практически невозможно произвести па таких зданиях. Поэтому в данном случае придется прибегнуть к уловке.
Глава 21. Компоновка 925 Рис. 21.23. Для удачного совпадения параллелепипеда со зданием потребуется дополнительная правка 8. Щелкните правой кнопкой мыши на параллелепипеде и выберите команду Convert to Editable Mesh из всплывающего квадратного меню, чтобы преоб- разовать его в редактируемый каркас. Щелкните на кнопке Zoom Extents АП, чтобы отцентровать изображения во всех видовых окнах. 9. Если параллелепипед все еще выделен, перейдите на уровень подобъектов- вершин. Выделите в окне вида справа левый верхний ряд вершин, обведя их рамкой выделения. Перемещайте эти вершины в сторону камеры по оси Y до тех пор, пока они не расположатся параллельно передней стороне здания в окне вида из камеры. Выделите нижний ряд вершин и откорректируйте их положение, добившись такого же вида модели здания, как и на рис. 21.24. Поупражняйтесь в самостоятельном создании подстановочных объектов для остальных зданий, деревьев и автомашин. Если у вас возникнут при этом трудности, вы можете воспользоваться готовыми моделями, скрыты- ми в данной сцепе. Только не моделируйте крупное дерево слева, поскольку' эго слишком сложно. Данный кадр комбинированной съемки будет длиться не больше двух секунд, и поэтому его не следует перегружать деталями.
926 Часть VIII. Визуализация и компоновка Рис. 21.24. Теперь передний край моделируемого здания совпадает с фоном благодаря простой правке на уровне вершин 10. Как только вы будете готовы продолжить выполнение данного упражнения, выберите именованную совокупность выделения landscape (Ландшафт) из раскрывающегося списка Named Selection Sets (рис. 21.25). В отрывшемся диалоговом окне щелкните па кнопке Yes, чтобы подтвердить отображение скрытой совокупности выделения Повторите эту же операцию и для имено- ванной совокупности выделения ship (Космический корабль). Итак, вся геометрическая форма находится на месте. При этом вы можете воспользо- ваться собственными моделями или уже готовыми. Рис. 21.25. Выбор именованной сово- купности выделения из раскрывающе- гося списка Named Selection Sets Вместе с геометрической формой в данную сцену введены два источника прямого свега. Устанавливаемые по умолчанию параметры настройки верх- него источника свега оставлены без изменения, кроме активизации теней, формируемых методом проецирования карты теней. Этот источник света предназначен для освещения подстановочной геометрической формы. В хо-
Глава 21. Компоновка 927 де пробной визуализации его положение было изменено таким образом, что- бы тени от пего совпали с тенями на фоне. А нижний источник света распо- ложен так, чтобы освещать только днище космического корабля. 11. После пробной визуализации сцена должна выглядеть так, как показано на рис. 21.26. Тени на улице очень похожи на те, что находятся на фоне. Если же выполнить пробную визуализацию кадра 32, то можно заметить, что ле- тающая тарелка также отбрасывает тень. Следовательно, придется изме- нить тип материала, чтобы в сцене остались только тени. 12. Нажмите клавишу <М>, чтобы открыть редактор материалов. Выберите пер- вую позицию образца материала и щелкните на кнопке Standard. Измените тип материала на Matte/Shadow в открывшемся окне Material/Map Browser (рис. 21.27). Рис. 21.26. Геометрическая форма правильно расположена на сцене, получает тени и подготовлена к применению материала Matte/Shadow 13. Выберите именованную совокупность выделения landscape из раскры- вающегося списка Named Selection Sets. Назначьте для пес материал Matte/Shadow. 14. Если выполнить пробную визуализацию кадра 32, то можно заметить, что тени получаются чуть более темными. Увеличьте до 0,2 значение в поле Shadow Brightness (Яркость тени) из свитка Basic Parameters материала Matte/Shadow, чтобы имитируемые тени в большей степени совпадали с те- нями на фоне.
928 Часть VIII. Визуализация и компоновка Рис. 21.27. Изменение типа материала на Matte/Shadow Маскирующая часть материала Matte/Shadow действует аналогично отвер- стию, в котором скрывается вся геометрическая форма и сквозь которое просматривается фон. Если установить флажок Receive Shadows (Получать тени), то визуализированными окажутся только отбрасываемые гены. Щелкнув па кнопке с черно-белым кружком в верхней части окна Rendered Frame Window, можно посмотреть, как выглядит альфа-канал (рис. 21.28). 15. Теперь осталось лишь визуализировать анимацию космического корабля. Щелкните па кнопке-переключателе Active Time Segment (Активный вре- менной отрезок) в области Time Output из вкладки Common диалогового окна Render Scene. Установите значение 360 в поле Width, а также значе- ние 240 в поле Height из области Output Size этой же вкладки. Укажите в области Render Output имя DuvalSt.avi и местоположение файла для вывода результатов визуализации. Для сравнения полученных результатов и на случай непредвиденных ошибок откройте сцепу' из файла Project Files\Ch21_Compositing\DuvalStFinished.max па прилагаемом к этой книге DVD (рис. 21.29).
Глава 21. Компоновка 929 Рис. 21.28. Альфа-канал материала Matte/Shadow Рис. 21.29. Космический корабль пришельцев, внедренный в кадр комбинирован- ной съемки А ч
930 Часть VIII. Визуализация и компоновка | НА ЗАМЕТКУ___________________________________________________________ Если объекты, созданные в 3ds max, предполагается компоновать в другом при- ложении, например в combustion компании discreet или же в Adobe Photoshop, эти объекты следует визуализировать на черном фоне. В противном случае во- круг них появится цветная окантовка от окружения или фона. В приведенном выше упражнении были продемонстрированы возможности материала Matte/Shadow. Его можно с таким же успехом применять и в тех кадрах съемки, где имитируется цельный фон. А для получения отбрасываемых теней вполне подойдет плоскость основания соответствующих размеров. Полученное в итоге изображение затем визуализируется па фоне или же вставляется в редак- торе изображений, подобном Photoshop. Если же сохранить визуализированное изображение в 32-разрядно.м формате Targa, вместе в ним сохранится и очень по- лезный умноженный в обратном порядке альфа-канал. Очень важно правильно выбрать вид фона, который должен быть совершенно черным или пятнистым, как маскировочная сетка, поскольку при визуализации на фоне светлых цветов в изображении может остаться светящаяся окантовка. Если внимательно посмотреть анимацию из файла DuvalSt.avi несколько раз, то можно обнаружить неточности в воспроизведении эффекта тени. Для бы- стро меняющихся сцен это, возможно, и не так существенно. Но лучше все же ви- зуализировать сцену по элементам и затем скомпоновать ее в таком приложении, как combustion или Adobe After Effects. Для компоновки потребу ются следующие файлы. • Рирпроекционный фон улицы Дюваль-стрит Этот файл должен также содержать альфа-канал, в котором выделено только небо, как, например, в файле изображения duvalSt. tga. • Анимация летающей тарелки. В этом фрагменте должна присутствовать только летающая тарелка, а остальная часть сцены, кроме окружения, должна быть скрыта. Окружение рекомендуется оставить, чтобы свести к минимуму окантовку, возникающую на белом фоне по краям альфа-канала. Анимация должна представлять собой последовательно пронумерованный ряд файлов 32-разрядпых изображений формата Targa, выведенных в отдельный каталог. • Проход визуализации теней на ландшафте. Последовательность файлов 32-разрядных изображений формата Targa, необходимых в основном из-за их альфа-канала. Связав плоскость (например, объект Р1апе02) с материа- лом Matte/Shadow и летающую тарелку', а затем повернув плоскость таким образом, чтобы она скрыла летающую тарелку, последнюю можно сделать невидимой. Следовательно, в визуализированной анимации останутся только тени (пример завершенной сцены с летающей тарелкой см. в файле Project Files\Ch21_Compositing\DuvalStFinished.max на прила- гаемом к этой книге DVD). Покажите данную плоскость на сцепе и попро- буйте воссоздать подобный эффект (рис. 21.30). Во время компоновки отдельные слои изображений располагаются в опреде- ленном порядке, после чего выполняется окончательная правка эффекта. Введя второй экземпляр фона и используя предоставленный альфа-канал, компоновщик
Глава 21. Компоновка 931 может замаскировать летающую тарелку, когда она пролетает мимо дерева слева. Как показано на рис. 21.31, создается впечатление, будто летающая тарелка про- летает над деревом, что придает ей более внушительный вид. Рис. 21.30. Трехмерный вид слоев, передаваемых на компоновку в приложении combustion Рис. 21.31. Благодаря компоновке летающая тарелка воспринимается более внушительно на фоне деревьев
932 Часть VIII. Визуализация и компоновка Окно Video Post Конечно, пользоваться услугами профессионального компоновщика удобно, но ведь выполнить компоновку можно и самому, причем не покидая 3ds max! Для этой цели служит окно Video Post, в котором не только вводятся эффект ы видео- обработки, но и компонуются результаты визуализации. Благодаря этому отпада- ет необходимость в предварительной визуализации в отдельные файлы. Безусловно, это положительное качество. Вот только инструменты в окне Video Post не вполне соответствуют требованиям реального производства. По- этом)' для производства продукции на высоком профессиональном уровне требу- ется специальное программное обеспечение компоновки и монтажа. Окно Video Post открывается после выбора команды Rendering^Video Post из главного меню. Оно состоит из двух основных частей: очереди событий (Queue) (рис. 21.32, слева) и временной шкалы (рис. 21.32, справа). На времени») шкале ото- бражаются полосы диапазона, на которых указываются моменты ввода событий в очередь для видеомонтажа. Если для конкретного кадра в заданном диапазоне об- наруживается событие из очереди, осуществляется видеообработка этого кадра. Рис. 21.32. Очередь видеомонтажа, подготовленная к визуализации Рассмотрим вкратце отдельные элементы окна Video Post. ‘‘j • Кнопка New Sequence (Создать последовательность). Очищает очередь и позволяет начать все сначала. • Кнопка Open Sequence (Открыть последовательность). Открывает со- храненную очередь, что удобно для экспериментирования с разными эффектами и методами видеомонтажа. К • Кнопка Save Sequence (Сохранить последовательность). Сохраняет по- следовательность в файле с расширением .vpx. При экспериментиро- вании с разными эффектами рекомендуется сохранить сцену в отдель- ном файле с расширением .max, если вносимые изменения касаются не только очереди видсомоптажа.
Глава 21. Компоновка 933 0 о-п Кнопка Edit Current Event (Править текущее событие). Открывает диало- говое окно правки выделенного события, позволяя вносить изменения в его атрибуты. Кнопка Delete Current Event (Удалить текущее событие). Удаляет собы- тие из очереди При этом появляется предупреждающее окно, исклю- чающее случайное удаление событий. Кнопка Swap Events (Переставить события). Изменяет порядок следо- вания событий в очереди. Кнопка Execute Sequence (Выполнить последовательность). Начинает процесс визуализации в режиме видеомонтажа. Кнопка Edit Range Ваг (Править полосу диапазона). Позволяет править полосы диапазона; как правило, эта кнопка включена Кнопка Align Selected Left (Выровнять выделенные полосы по левому краю). Выравнивает ряд полос диапазона по левому краю, причем длина каждой из них остается без изменения. Кнопка Align Selected Right (Выровнять выделенные полосы по правом) краю). Выравнивает ряд полос диапазона по правому' краю, причем дли- на каждой из них остается без изменения. Кнопка Make Selected Same Size (Сделать выделенные полосы одинако- выми). Выравнивает ряд полос диапазона как по левому, так и по право- му' краю, причем длина всех полос становится равной длине первой по- лосы в очереди событий. Кнопка Abut Selected (Расположить выделенные полосы встык). Распо- лагает нижнюю полосу' диапазона сразу же после верхней. Эта кнопка удобна для переключения камер во время визуализации. Кнопка Add Scene Event (Ввести событие сцены). Вводит визуализиро- ванную последовательность кадров сцены. Визуализация может выпол- няться из видового окна или из камеры, хотя последний вариант лучше, поскольку содержимое видового окна постоянно меняется. Кнопка Add Image Input Event (Внести событие вставки изображения). Вводит внешний файл изображения, фрагмент анимации или последо- вательность кадров. Это еще один способ визуализации анимации или ввода титров в визуализированные изображения. Кнопка Add Image Filter Event (Ввести событие фильтрации изображе- ния). Самая интересная кнопка в окне Video Post. С ее помощью вводят- ся все эффекты. Кнопка Add Image Layer Event (Ввести событие расслоения изображе- ния). Вызывает окно с раскрывающимся списком со следующим вариан- тами выбора. • Adobe Premiere Transition Filter (Фильтр переходов Adobe Premiere). Использует ряд фильтров Premiere, если это при южепие установле- но в системе.
934 Часть VIII. Визуализация и компоновка • Alpha Compositor (Объединитель по альфа-каналу). Объединяет верх- нее изображения с нижним, вырезая участок по непрозрачной части альфа-канала верхнего изображения. Этот процесс не носит характер наложения, хотя является аддитивным. В итоге получается очень яр- кое изображение. • Cross Fade Transition (Перекрестный монтажный переход). Осущест- вляет постепенный переход от одного изображения к другому. • Pseudo Alpha (Псевдоальфа-канал). Предпринимает попытку соста- вить альфа-канал из канала яркости верхнего изображения. • Simple Additive Compositor (Простой аддитивный объединитель). Объе- диняет изображения непредсказуемым образом, что вряд ли может счи- таться приемлемым. • Simple Wipe (Простое вытеснение). Вытесняет сцену по горизонтали в стиле переходов Adobe Premiere. | НА ЗАМЕТКУ_____________________________________________________________ Два последних эффекта среди упомянутых выше являются пережитками про- шлого, оставшимися еще со времен версии 3D Studio DOS, поэтому их примене- ние может принести сплошное разочарование. Они также не годятся для фай- лов, загружаемых из Photoshop, особенно с альфа-каналом. * ** t- • Кнопка Add Image Output Event (Ввести событие вывода изображения). Вводит в очередь последнее событие для вывода результатов в файл. В его отсутствие визуализация выполняется только в оперативной памяти, а ее результаты выводятся в окно Rendered Frame Window. I • Кнопка Add External Event (Ввести внешнее событие). Вводит в событие внешний код, выполняет командный файл или копирование как в буфер обмена, так и из него. I • Кнопка Add Loop Event (Ввести событие цикла). Вводит циклически по- вторяющееся или попеременно чередующееся действие в родительское событие. С помощью этой кнопки можно организовать наложение ко- роткого фрагмента анимации, повторяющегося в течение всей визуали- зируемой последовательности. 11 0 сГ * Стандартные для 3ds max инструменты оконного интерфей- ** u J * u—* са. В правом нижнем углу окна Video Post расположены сле- дующие инструменты: Pan 'Панорамирование), Zoom Extents (Показать полностью), Zoom Time (Изменить масштаб вре- мени) и Zoom Region (Сделать область крупнее). Все перечисленные выше инструменты можно эффективно использовать в разном сочетании для получения отличных эффектов видеообработки резуль- татов визуализации в 3ds max 7. В частности, эффекты свечения, применяемые в виде событий фильтрации изображения, обеспечивают привлекательный внешний вид визуализируемых изображений.
Глава 21. Компоновка 935 Ввод фильтров Допустим, что имеется кадр натурной съемки сцены лаборатории сумасшед- шего доктора в темную ненастную ночь. Но как следует из рис. 21.33, свет в окнах этой лаборатории не передает ужасный характер отвратительных эксперимен- тов. Он похож скорее на свет во время обеда при свечах с обольстительной асси- стенткой. В следующем упражнении будет показано, как с помощью фильтров ви- деообработки свету в окнах придается жуткое свечение и как вообще обращаться со светящимися объектами (рис. 21.34). 1. Откройте сцену из файла Project Files\Ch21_Compositing\lab01 .max на прилагаемом к этой книге DVD. Сохраните эту сцену в соответствующей подпапке на жестком диске, выбрав команду Save As и присвоив ее файл}' но- вое имя 1аЬ02 .max. 2. Нажмите клавишу <М>, чтобы открыть редактор материалов. Выберите образец материала glass (Стекло). Щелкните на кнопке Material Effects Channel (Канал эффектов в материале) с пиктограммой нуля в строке, рас- положенной ниже образцов материалов, и, не опуская кнопку мыши, выбе- рите из всплывающей панели номер канала 1 (рис. 21.35). Рис. 21.33. Вид лаборатории сумасшедшего доктора снаружи без применения фильтра Lens Effects Glow
936 Часть VIII. Визуализация и компоновка Рис. 21.34. Свет в окнах лаборатории, дополненный зловещим свечением Рис. 21.35. Выбор номера 1 канала эф- фектов в материале
Глава 21. Компоновка 937 | НА ЗАМЕТКУ______________________________________________________ В данном случае для всех экземпляров материала glass назначается номер 1 канала эффектов в материале. Это означает, что если требуется получить дос- туп к одному и тому же эффекту в окне Video Post, для объекта необходимо на- значить материал с данным идентификационным номером. С другой стороны, можно назначить идентификационный номер объекта, как будет показано ниже. 3. Используя инструмент Select by Name, выделите объект meteor. Это мел- кий объект, находящийся на самом краю сцепы и за кадром в виде из каме- ры (рис. 21.36). Рис. 21.36. Выделение объекта meteor 4. Выберите из главного меню команду Edit^Object Properties (Правка1^ Свойс । ва объекта). С другой стороны, для доступа к диалоговому окну Ob- ject Properties можно щелкнуть правой кнопкой мыши в текущем видовом окне и выбрать команду Properties из всплывающего контекстного меню. 5. Установите значение 2 в поле Object Channel из области G-Buffer и щелкни- те па кнопке ОК (рис. 21.37). НА ЗАМЕТКУ Какой бы канал ни использовался, будь то канал эффектов в материале или же канал объекта, результат будет один и тот же. Я лично предпочитаю пользо- ваться каналом эффектов в материале, поскольку в этом случае намного проще находить все экземпляры эффекта для глобальных изменений. Так, в сиене на болоте не нужно вносить изменения в каждый светляк в отдельности!
938 Часть VIII. Визуализация и компоновка Рис. 21.37. Установка номера 2 канала объекта 6. Выберите из главного меню команду Rendering^Video Post. Щелкните в от- крывшемся окне Video Post на кнопке Add Scene Event. Оставьте без измене- ния параметры настройки в появившемся диалоговом окне и щелкните на кнопке ОК (рис. 21.38). Кнопка Add Scene Event Кнопка Zoom Extents Рис. 21.38. Ввод события сцены
Глава 21. Компоновка 939 7. Сначала видно лишь около 30 кадров. Поэтому для просмотра всего диапа- зона щелкните на кнопке Zoom Extents, расположенной на панели инстру- ментов в нижем правом углу окна Video Post (см. 21.38). НА ЗАМЕТКУ Обратите внимание на то, что событие сцены (CameraOl) продолжается в тече- ние 100 кадров анимации. Этот параметр очень важно проверить перед оконча- тельной визуализацией. При увеличении продолжительности анимации событие сцены не продолжается автоматически. Это можно сравнить с попыткой сни- мать фильм выключенной камерой. 8. Щелкните на кнопке Add Image Filter Event, чтобы открыть одноименное диа- логовое окно (рис. 21.39). Выберите фильтр Lens Effects Glow (Эффект в объ- ективе в виде свечения) из раскрывающегося свигка в области Filter Plug-In (Подключаемый модуль фильтра) и щелкните на кнопке ОК (рис. 21.40). 9. Убедитесь в том, что в очереди не выделено ни одно из событий, и щелкните на кнопке Add Image Output Event. Щелкните на кнопке Files в области Image File (Файл изображения) открывшегося диалогового окна. Для сохранения результатов выберите фаты labtest. avi и соответствующую папку на жест- ком диске. Для данного упражнения вполне подойдет используемый по умол- чанию кодек Cinepak. Закройте последовательно все диалоговые окна, щелк- нув в каждом из них на кнопке ОК, чтобы вернуться в окно Video Post. 10. Дважды щелкните в очереди па фильтре Lens Effects Glow. Затем щелкните на кнопке Setup в открывшемся диалоговом окне Edit Filter Event (Правка события фильтрации), чтобы открыть диалоговое окно Lens Effects Glow. Щелкните сначала на кнопке Preview, а затем на кнопке VP Queue (Очередь видеомонтажа). Некоторое время спустя в окне предварительного про- смотра появится сцена. 11. Установите сначала значение 2 в ноле Object ID из вкладки Properties, а затем флажок перед меткой поля Effects ID, где должно быть установлено значение 1. В окнах лаборатории должно появигься слабое свечение (рис. 21.41). Рис. 21.39. Ввод события фильтрации изображения
940 Часть VIII. Визуализация и компоновка Рис. 21.40. Выбор фильтра Lens Effects Glow Рис. 21.41. Первоначальная настройка фильтра Lens Effects Glow
Глава 21. Компоновка 941 12. Перейдите к вкладке Preferences. Установите значение 2 в поле Size из об- ласти Effect и нажмите клавишу табуляции. Как пи странно, но при умень- шении размера свечения данный эффект получается более отчетливым Теперь свет в окнах имеет подходящее зловещее свечение. 13. Не закрывая диалоговое окно Lens Effects Glow, перейдите к кадру 37. По- сле обновления сцепы в кадре появится метеор, хотя его слабо видно. Од- ного лишь филь тра Lens Effects Glow явно недостаточно для освещения ме- теора. Щелкните на кнопке ОК чтобы закрыть данное диалоговое окно НА ЗАМЕТКУ Как только были внедрены фильтры бликов в объективе, они начали использоваться до нелепого часто, и поэтому их вскоре стали избегать. Но если пользоваться ими благоразумно, то можно получить великолепный эффект свечения, в том числе и свет фар автомобиля или фонарика, направленного в объектив камеры. 14. Убедитесь в том, что в очереди пе выделено ни одно из событий, и щелкни- те па кнопке Add Image Output Event, выбрав на этот раз из раскрывающе- гося списка фильтр Lens Effects Flare (Эффект в объективе в виде бликов). Щелкните на кнопке ОК и перетащите данный фильтр вниз, чтобы распо дожить его в очереди ниже фильтра свечения. 15. Дважды щелкните в очереди на фильтре Lens Effects Flare, а затем щелкните па кнопке Setup в диалоговом окне Edit Filter Event, чтобы от- крыть диалоговое окно Lens Effects Flare. Щелкнит е сначала па кнопке Pre- view, а затем на кнопке VP Queue. Сначала блики появляются, а затем исче- зают. Щелкните на кнопке Node Sources (Узловые источники) и выберите объект meteor из списка в открывшемся диалоговом окис. Для того чтобы увидеть изменения, щелкните на кнопке Update. 16. В данном случае требуется мелкий, а пе тунгусский метеорит, поэтому уста- новите значение 22 в поле S ze а также значение 44 в поле Intensity из об- ласти Lens Flare Properties (Свойства бликов в объективе), азатем сбросьте флажок Streak (Полоска) в нижней части столбца Render из вкладки Prefe- rences. Метеор сократится до подходящих размеров (рис. 21.42). Щелкните па кнопке ОК, чтобы закрыть данное диалоговое окно. 17. Теперь очередь событий должна выглядеть так, как показано на рис. 21.43. Щелкните на кнопке с пиктограммой бегущего человека, чтобы начать процесс визуализации. Выберите диапазон 0-100 в полях Range и выход- ной размер 320x240 в области Output Sze диалогового окна Execute Video Post (Выполнить видеомонтаж). Ще ткните па кнопке Render, чтобы начать процесс визуализации в файл.
942 Часть VIII. Визуализация и компоновка Рис. 21.42. Полностью настроенный эффект бликов в объективе Рис. 21.43. Очередь видеомонтажа, подготовленная к визуализации Для сравнения полученных результатов откройте сцепу из файла Project Files\Ch21_Compositing\lab01Finished.max на прилагаемом к этой книге DVD.
Глава 21. Компоновка 943 | НА ЗАМЕТКУ________________________________________________________ Во время визуализации в файл для каждого фильтра выполняется отдельный проход. Иногда фильтры могут стать помехой друг другу, что обычно приводит к нежелательным результатам В качестве выхода из этого положения можно попытаться переставить их в очереди. Упомянутые выше фильтры воздействуют на интенсивность свечения визуализи- руемых пикселей, но не материалов, применяемых в геометрической форме. Если от- крыть файл фильма Project Files\Ch21_Compositing\animations-pics\ labtestLightning.avi на прилагаемом к этой книге DVD, то можно заметить, что эффект свечения в окнах во время удара молнии заметно усиливается. Аналогич- но большинству других параметров в 3ds max, интенсивность свечения подлежит анимации в режиме подготовительной таблицы (Dope Sheet) окна Track View В част- ности, свечение в окнах можно сделать менее сильным во время удара молнии. А теперь оставим на время окно Video Post, чтобы рассмотреть едва ли самый важный эффект видеообработки размытость движения. Размытость движения При перемещении по сцене объектов или камеры средство визуализации с по- строчной разверткой осуществляет цифровую выборку их положения в каждом визуализируемом кадре. При открытом “затворе” виртуальной камеры, как пра- вило, происходит какое-то движение. Для компенсации этого движения изобра жение размывается. В отсутствие размытости движения визуализируемые изо- бражения приобретают в лучшем случае неестественную резкость или стробо- скопический эффект, а в худшем — вареный вид детализированных поверхностей. Так, вид гранитной крышки кухонного стола сверху может напоминать миллионы муравьев, собирающихся на сходку! Однако ввод размытости движения происходит не без потерь. В зависимости от вида размытости наблюдается замедление процесса визуализации. Если же это замедление существенно, то для получения приемлемого результата в установ- ленные сроки выполнения проекта потребуется тщательное исследование эф- фектов размытости движения В 3ds max доступны четыре вида размытости движения: объектов (Object Mo- tion Blur), изображения (Image Motion Blur), многопроходной (Mult-Pass Moton Blur) и сцены (Scene Motion Blur). Эти эффекты применяются в самых разных час- тях интерфейса 3ds max 7, поэтому рассмотрим их по очереди. НА ЗАМЕТКУ В mental ray применяется своя форма размытости движения.
944 Часть VIII. Визуализация и компоновка Размытость движения объектов Самой простой в использовании является размытость движения объектов. Она предназначена только для размытия объектов, но не для имитации размыто- сти движения камеры, поэтом}' ее лучше всего применять к быстро движущимся объектам и неподвижным камерам. Если неподвижное визуализированное изо- бражение реактивного самолета, приведенное па рис. 21.44, выглядит довольно хорошо, при просмотре фильма из файла Project Files\Ch21_Compositing\ animations-pics\MBnone.avi па прилагаемом к этой книге DVD наблюдается некоторое подрагивание изображения. Этот недостаток будет устранен в сле- дующем упражнении с помощью размытости движения объекта, чтобы отдельные кадры анимации выглядели так же. как па рис. 21.45. 1. Откройте сцепу из файла Project Files\Ch21_Compositing\motion blur-object .max па прилагаемом к этой книге DVD. Сохраните эту сцену в соответствующей подпапке на жестком диске, выбрав команду Save As и присвоив ее файлу имя motion blur-obj ectO 2 . max. 2. Выделите реактивный самолет и щелкните па нем правой кнопкой мыши. Выберите команду Properties из правого нижнего квадранта всплывающего квадратного меню. Рис. 21.44. Изображение реактивного самолета без размытости движения
Глава 21. Компоновка 945 3. Щелкните на кнопке переключателе Object в области Motion Blur диалого- вого окна Object Properties. Убедитесь также в том, что установлен флажок Enabled (рис. 21.46). 4. Откройте диалоговое окно Render Scene и перейдите к вкладке Renderer. Оставьте без изменения устанавливаемые по умолчанию параметры из об- ласти Object Motion Blur, как показано на рис. 21 47. 5. Перейдите к кадру 18 и выполните окончательную визуализацию из видо вого окна CameraOl, щелкнув на кнопке переключателе Production в ниж- ней части диалогового окна Render Scene. Изображение реактивного са- молета должно быть аккуратно размыто (рис. 21.48). Эффект размытости движения объекта можно также посмотреть в фильме из файла Project Files\Ch2l_Compositing\animations-pics\objectMB5.avi на прилагаемом к этой книге DVT). Параметры размытости движения объекта настраиваются довольно просто. Так, параметр Samples определяет количество моментальных снимков объекта. Параметр Duration (frames) определяет продолжительность размытия, начиная с средины кадра. А значение параметра Duration Subdivisions (Подразделение Рис. 21.45. Результат применения размытости движения объекта при устанавливае- мых по умолчанию параметрах: Samples = 10, Duration (frames) = 0,5 и Duration Subdivisions = 10 во вкладке Renderer диалогового окна Render Scene
946 Часть VIII Визуализация и компоновка Рис. 21.46. Активизация режима размытости движения объекта Рис. 21.47. Устанавливаемые по умолча нию параметры размытости движения объекта и изображения
Глава 21. Компоновка 947 Рис. 21.48. Изображение реактивного самолета из кадра 18 с эффектом раз- мытости движения объекта Применение эффекта размытости движения — это скорее искусство, чем нау- ка. В отсутствие размытости, особенно при наложении трехмерной визуализиро- ванной сцепы на отснятый материал с естественным движением, результат полу- чается малопривлекательным. То же самое происходит, когда этот эффект применяется чрезмерно. Если открыть файл фильма Project Files\Ch21_ Compositing\animations-pics\objectMBl. avi па прилагаемом к этой книге DVD, то можно заметить, как при увеличении нродо икительности размытия по- лучается смазанный эффект. В некоторых случаях это обстоятельство .можно ис- пользовать для демонстрации большой скорости движения, например, суперге- роя, перемещающегося в про: транстве быстрее скорости света. Но в целом для всех видов размытости движения характерно следующее правило: чем меньше, тем лучше. Размытость движения изображения В 3ds шах чаще всего применяется размытость движения изображения (рис. 21.49). Практически тот же самый эффект применяется и в родственном приложении combustion.
948 Часть VIII. Визуализация и компоновка Рис. 21.49. Результат применения размытости движения объекта при уста- навливаемых по умолчанию параметрах: Multiplier 0,25 в диалоговом ок- не Obect Properties и Duration (frames) = О, 5 во вкладке Renderer диалого- вого окна Render Scene Размы гость движения изображения образуется с помощью смазывающего эф- фекта видеообработки, а не наложения отдельных выборок друг на друга. Данный эффект может применяться как па уровне отдельных объектов, так и во всем слое в целом. Внутренний механизм данного процесса мало чем отличается от размы 'гости движения объекта. Еще одно преимущество данного эффекта над размытостью движения объекта состоит в том, что в нем учитывается движение камеры. Обратите внимание, на- сколько отличаются углы размытия на рис. 2L49 и 21.50. Такой эффект в большей степени напоминает явление, происходящее в объективе настоящей камеры. Данное изображение реактивного самолета получено в кадре 16 сцены из файла Project Files\Ch21_CompositingXmotion blur-image.шах на прилагае- мом к этой книге DVD. Размытостью движения изображения фактически управляют параметры Dura- tion (frames) (из области Image Motion Blur во вкладке Renderer диалогового окна Render Scene) и Multiplier (из области Motion Blur диалогового окна Object Proper- ties). Первый из них действует таким же образом, как и аналогичный параметр настройки размытости движения объекта, а второй определяет увеличение сма- зывающего эффекта по оси общего движения. Кроме того, в размытости движе- ния изображения можно учитывать прозрачность отдельных участков сцены или взаимодействие с окружающим фоном. А при наличии движения камеры следует установить флажок Apply to Environment Мар (Применить в карге окружения) из области Image Motion Blur во вкладке Renderer диалогового окна Render Scene.
Глава 21. Компоновка 949 Рис. 21.50. Параметры настройки размытости движения этого изображе- ния остались такими же, как и для предыдущего изображения, но на этот раз осуществлена анимация движения камеры вверх и вниз Многопроходная размытость движения Этот вид размытости движения формируется с помощью камеры. Вся сцена визуализируется несколько раз, а полученные результаты затем компонуются. Данный эффект, а также размытость движения сцепы отнимают больше всего времени (рис. 21.51). НА ЗАМЕТКУ Во многих приложениях компоновки, включая и combustion, эффект размытости движения по отдельным пикселям может быть введен на этапе компоновки и монтажа, что делается довольно быстро, поскольку не требует многопроход- ной визуализации. При нехватке времени на продолжительную визуализацию это может стать удобным выходом из положения. Любопытно, что результаты многопроходной размытости движения можно наблюдать непосредственно в видовом окне, щелкнув на кнопке Preview. Пара- метры настройки эффекта многопроходной размытости движения доступны из свитка Motion Blur Parameters па панели Modify отдельной камеры (рис. 21.52). Процесс формирования данного эффекта можно сравнить со съемкой камерой при разной экспозиции. При этом суммарная экспозиция дает правильное коли- чес I во света в сцене. Числу экспозиций соответствует число проходов. Параметр Bias определяет начало размытия в кадре: в начале, в конце или посредине кадра (при значении 0,5). Параметр Dither Strength (Интенсивность размывания) оп-
950 Часть VIII. Визуализация и компоновка ределяет степень смешения отдельных проходов, а параметр Tile Size (Размер мо- заичного фрагмента) — часть изображения, визуализируемого в текущий момент времени. В процессе формирования изображение имеет вид клетчатого рисунка. Рис. 21.51. Результат применения многопроходной размытости движения при следующих параметрах из свитка Motion Blur Parameters на панели Modify камеры: Total Passes = 5, Duration (frames) = 0,5, Bias = 0,5, Dithe• Strength = 1, о и Tile Size = 32 - M otion Blur Parameters | -Sampling-------------------i I i!*/ Display Passes Total Passes. |5 $| | [Duration (frames) [0.5 C] Bias. [05~ Pass Blending--------------- p Normalize Weights Dither Strength Ji 0 Tile Size: [3? ; Scanline Renderer Params— ' Г Disable Filtering Г* Disable Antialiasing Рис. 21.52. Параметры настройки много- проходной размытости движения на пане- ли Modify камеры со значениями, установ- ленными для изображения на рис. 21.51
Глава 21. Компоновка 951 Эффект многопроходной размытости движения применяется настолько про сто, что не требует дополнительного упражнения. Впрочем, для эксперименти- рования с ним вы можете открыть сцепу из файла Project Files\Ch21_ Compos tingXmotion blur-Multipass .max на прилагаемом к этой книге DVD. Если перейти к кадру 16, то можно увидеть реактивный самолет посредине кадра. Размытость движения сцены И последний эффект — размытость движения сцепы — доступен в окне Video Post. Аналогично многопроходной размытости движения, вся сцена в данном случае визуализируется несколько раз. Несмотря на то что данный эффект отни- мает немало времени, он, как правило, применяется при интенсивном движении камеры, когда размытость движения изображения невозможна на уровне отдель- ных объектов пли слоев. Применение размытости движения изображения за- труднено, когда один размываемый объект проходит позади другого. Наиболь- шую пользу размытость движения сцены приносит в том случае, если требуется, чтобы позади быстро движущихся объектов оставались заметные следы. Если открыть файл фильма Project FilesXCh21_Compositing\animations pics\labNoMB.avi па прилагаемом к этой книге DVD, то можно заметить иснепс ляющий практически заживо анимационный эффект. При сравнении с файлом фильма labtest. avi из той же папки обнаруживается причина движение камеры. Такой эффект может служить в качестве удобного перехода к следующей сцене, воз- можно, внутри лаборатории. Другой причиной испепеляющего эффекта, как в примере из файла фильма labNoMB.avi, очевидно, является чре мерное проецирование карты рельефно- сти. При этом удаленные объекты иногда даже начинают скакать вверх и вниз! Подобный недостаток устраняется путем уменьшения степени проецирования карты рельефности. Именно это и будет сделано для исправления сцены лабора- тории в следующем упражнении наряду с применением эффекта размытости движения сцепы. 1. Откройте сцену из файла Project Files\Ch21_Compositing\motion blur-scene .max па прилагаемом к этой книге DVD. Сохраните эту сцену в соответствующей подпапке на жестком диске, выбрав команду Save As и присвоив ее файлу имя motion blur-sceneOl. max. 2. Выделите степы лаборатории, а затем щелкните на них правой кнопкой мыши и выберите комайду Properties из правого нижнего квадранта всплывающего квадратного меню. Установите флажок Enabled в обласги Motion Blur и щелкни- те па кнопке-переключателе Image диалогового окна Object Properties. 3. Выберите из главного меню команду Renderings Video Post. Выполните пробную визуализацию, чтобы определить продолжительность данного процесса, и запишите результат на бумаге. Проверьте, чтобы анимация со- хранялась в нужном месте на жестком диске. 4. Дважды щелкните на событии сцепы CameraOl и установите флажок Scene Motion Blur (Размытость движения сцепы) в открывшемся диалоговом окне Edit Scene Event (Правка события сцепы). Установите значение 1 в поле Duration (frames), значение 5 в поле Duration Subdivisions и значение 20 в поле Dither % (Размывание в процентах) (рис. 21.53). Щелкните па кнопке ОК, чтобы закрыть данное диалоговое окно.
952 Часть VIII. Визуализация и компоновка Рис. 21.53. Настройка параметров со- бытия сцены 5. Дважды щелкните на последнем событии в очереди, т.е. на событии вывода изображения. Укажите имя labMB.avi и место для сохранения выходного файла на жестком диске. Щелкните на кнопке ОК, чтобы закрыть данное диалоговое окно. 6. Нажмите клавишу <М>, чтобы открыть редактор материалов. Для материа- ла на первой позиции образца установлено значение 116 в поле Amount на- против позиции карты рельефности (Bump). Установите в этом поле зна- чение 35 и закройте редактор материалов. В качестве завершающего штриха введите в данную сцену звезды. 7. Вернитесь в окно Video Post и отмените выделение всех событий в очере- ди. Введите в нее событие фильтрации изображения и выберите из нижне- го раскрывающегося списка фильтр Starfield (Звездное поле) в открывшем- ся диалоговом окне Edit Filter Event. 8. Щелкните на кнопке Setup. Оставьте без изменения устанавливаемые по умол- чанию параметры настройки в диалоговом окне Stars Control (Управление звез- дами), как показано на рис. 21.54. Очень важно, чтобы в области Motion Blur был установлен флажок Use. В противном случае звезды будут мерцать непредска- зуемым образом. 9. Переместите фильтр изображения Starfield вверх, расположив его в очере- ди выше события вывода изображения labMB. avi. Выполните визуализацию в файл или откройте файл фильма Project Files\Ch2: _Compositing\ animations-pics\labMB.avi на прилагаемом к этой книге DVD, чтобы по- смотреть улучшенный вариант анимации. Следует заметить, что если в отсутст- вие размытости движения для визуализации каждого кадра анимации требова- лось около 11 секунд, то при наличии дашюго эффекта —уже около 32 секунд.
Глава 21. Компоновка 953 Для сравнения полученных результатов откройте сцен}' из файла Project Files\Ch21_Compositing\motion blur-sceneDone. max па прилагаемом к этой книге DVD. Рис. 21.54. Параметры настройки звезд- ного поля в диалоговом окне Stars Control | НА ЗАМЕТКУ____________________________________________________________ Применение любого вида размытости движения приводит (иногда к существен- ному) замедлению визуализации. Это удобный момент для подстановки упро- щенной еометрической формы ради ускорения данного процесса, так как вследствие размытия изображения лишние детали все равно не теряются. Для применения различных видов размытости движения в 3ds max не сущест- вует твердых правил. Все зависит от конкретной ситуации, вида анимации и лич- ных вкусов авторов проекта. Поэтому лучше всего опробовать разные методики применения размытости движения и выбрать из них наиболее подходящую. Самостоятельная работа По желанию вы можете продолжить работу над материалом этой главы, по- пробовав сделать следующее. • Дюваль-стрит. Для получения еще более внушительного вида летающей та- релки замаскируйте крупное дерево слева, что создать такое впечатление, будто она пролетает над всеми деревьями. Импортируйте в сцену реактивный истребитель, преследующий летающую тарелку, из любой сцены с эффекта- ми размытости движения. С другой стороны, оживите ряд транспортных средств на улице, чтобы сделать данную сцену еще более впечатляющей!
954 Часть VIII. Визуализация и компоновка • Лаборатория. Эффект свечения следует уменьшить во время удара молнии. Для этого придется перейти в режим Dope Sheet или Curve Editor окна Track View и найти трек анимации параметра свечения (Glow). Воспользуй- тесь прямоугольной формой кривой, чтобы мгновенно убавить свечение. • Размытость движения. Поэкспериментируйте с параметрами настройки и частотами кадров анимации, чтобы выяснить, каким образом с помощью размытости движения можно сделать более плавным быстрое движение пли же придать сцепе романтический вид. Попробуйте наложить анима- цию без размытости движения на анимации со значительной размытостью движения, чтобы затем найти применение подобному эффекту. Старайтесь использовать размытость движения в одпокадровых иллюстрациях, по- скольку она позволяет передать быстрое движение даже в одном кадре. Резюме Завершить данную книгу вполне уместно именно этой главой, поскольку для вас настало время расширить горизонты своих интересов в области трехмерной графики и анимации и запяться изучением других этапов производства. Конечно, можно занять пассивную позицию, исполняя лишь то, что скажет художник- постановщик или клиент, по от этого в конечном итоге страдает качество про- дукции. А проявив инициативу, вы можете предупредить грядущие осложнения и избавить себя от ненужных нервных перенапряжений, поскольку приобретенная репутация настоящего профессионала совсем пе помешает вам при поиске сле- дующей работы! Ниже приведены некоторые рекомендации относительно работы над анима ционным проектом. • Детально ознакомьтесь с проектом. Умение применять нужные средства к мест)' позволяет рационализировать труд там, где другие об этом даже не догадываются. • Освойте программное обеспечение компоновки. Даже если вам и пе придет- ся ретушировать кадры анимации после се визуализации навыки компоновки пригодятся вам при выборе способов вывода результатов в файлы. Связь между' трехмерной анимацией и компоновкой должна быть двухсторонней. • Пользуйтесь слоями при визуализации сложных сцен. Если вы всегда бу- дете подготавливать позиции для отступления, то прослывете среди коллег умелым тактиком, способным вовремя справиться с поставленным заданием. А если вы нарушите сроки сдачи работ из-за повторной визуализации, то вряд ли сможете заслужить уважение коллег, даже если это пе ваша оплошность. • Уделяйте время окончательной правке файлов. Вводить в сцену моде ш из старых файлов намного труднее, если они имеют такие имена, как ОЬ- ject237. Исключив из проекта ненужные варианты пробной визуализа- ции, подстановочную геометрическую форму, нсвизуализированные объ- екты и устаревшие материалы (с именами типа 01-Default), вы значи- тельно облегчите жизнь не только себе, ио и своим коллегам.
Глава 21. Компоновка 955 • Не удаляйте предыдущие варианты пробной визуализации и старые файлы сцен. Нет ничего хуже, когда вы сотрете файл сцены, созданной па прошлой неделе, а художник-постановщик решит вдруг вернуться к этому варианту! Обмен вариантами пробной визуализации среди художников также способствует согласованной работе над проектом. И последнее замечание: всегда настороженно относитесь к заявлениями типа: “Не волнуйтесь, мы исправим это во время монтажа”. Сразу выполняя свою рабо- ту грамотно и с максимальным удобством для внесения последующих изменений, старайтесь делать все возможное, чтобы в корне пресечь подобные попытки круглосуточной штурмовщины, выматывающей всех участников проекта.
приложение zi Управление проектами Райан Грин Производительный труд отличается, прежде всего, своей эффективностью, и эт<^ обстоятельство необходимо принимать во внимали , приступая к новому проекту/ Если над проектом работает большой коллектив, то для благополучного его выполне- ния необходимо установить ряд руководящих принципов организации труда -и, в ча- стности, выбрать эффективную, согласованную и отработанную методику. Это позво- лит предупредить срывы, которые могут возникнуть в ходе выполнения работ. При выборе подходящей методики организации труда необходимо принимать во внимание цели, преследуемые в проекте, потребности студии и наиболее подхо- дящие условия труда художников в коллективе. В этом отношении 3ds max 7 обла- дает достаточной гибкостью, позволяя работать так, как это удобнее всего для ре- шения конкретных задач. В данном приложении имеется ряд инструментов для ор- ганизации труда, позволяющих намного упростить управление самыми сложным проектами. Рационально используя 3ds max и соответствующие инструменты дан- ного приложения, можно существенно сократить время, необходимое для решения конкретной производственной задачи. Ниже будут рассмотрены решения, которые приходится принимать на этапе подготовки к производству а также специальные инструменты 3ds max, позво- ляющие ускорить сам процесс производства. Подготовка производства: беглый анализ проекта Перед тем как приступать к работе над любым проектом, необходимо проана- лизировать задачи, которые он ставит. Тщательное изучение потребностей всего проекта в целом на начальной его стадии позволяет избежать возможных камней преткновения уже на стадии производства. Масштабы проекта Прежде всего необходимо рассмотреть общие масштабы самого проекта. В ia- стпости, какова его продолжительность, сколько рабочего времени потребуется для его выполнения, в каких объемам следует создавать содержимое и насколько коротким должен быть производственный цикл?
958 Приложение А. Управление проектами Эти исходные соображения определяют выбор вариантов организации труда па студии, будь то в режиме вольного художника или в большом коллективе. Об- щие масштабы проекта дают приближенное представление о рабочем времени для его выполнения. Для этого необходимо сравнить расчетное рабочее время с тем, которое потребуется для создания конкретного содержимого. Из этого можно определить количество людей, которым можно поручить выполнение проектного задания. Так, если на конкретное задание требуется 80 рабочих часов, а клиенту нужно, чтобы работа была выполнена за неделю, в таком случае придет- ся напять на полную ставку двух людей. Подобные оценки па начальной стадии проекта позволяют правы п>но распределить наличные ресурсы. Масштабы решаемой задачи определяют многие аспекты производства и, в част- ности, количество работников в трудовом коллективе. Если задание можно поручить лишь ограниченному числу работников, необходимо согласовать с клиентом прием- лемые сроки окончания работ. Ведь если эти сроки жесткие, коллектив не сумеет справиться с заданием вовремя, и тогда для выполнения части работ придется при- влечь сторонних лиц или субподрядчиков или вообще отказаться от данного npoeici а Мера качества Еще одним фактором, определяющим количество рабочего времени для вы- полнения задания, является уровень качества, который требуется клиенту. Ведь несмотря на то что всякий художник стремится добиваться максимального качс ства своих работ, этому могут воспрепятствовать сроки их выполнения. Следова- тельно, прежде чем приступать к производству, необходимо установить уровни совершенства и детализации, за которые готов платить клиент. Что касается качества, то в разных проектах приходится уделять основное вни- мание разным аспектам. Так, если проект представляет собой демонстрацию архи- тектурного окружения, основное внимание следует уделить точности моделирова- ния и реалистичному освещению сцепы. Для оформления логотипа больше време- ни придется уделить спецэффектам, а при разработке игр — поработать над эффек- тивными схемами UV-просцирования карт. Но независимо от вида проекта необходимо выяснить наиболее важные аспекты задания и соответственно устано- вить приоритегность выполнения остальных, менее важных его частей. Разумеется, желательно, чтобы работа выглядела лучше, чем того ожидает клиент. Тем не менее не следует тратить время и труд па художественные укра- шения, которые все равно никто не оцепит. Это особенно справедливо для любой предварительно визуализируемой работы. Так, для художественного оформления архитектурного окружения совершенно не нужно моделировать заднюю сторону сооружений, если ее вообще не будет видно. Возможно, для тех, кто стремится к совершенству, это неприемлемо, однако в условиях производства это не только приемлемо, но и существенно экономит время. Визуальный стиль Необходимо также выбрать общий визуальный стиль проекта. Будут ли это за- тененные изображения в стиле мультипликации на прозрачной целлулоидной пленке или же сверхреалистичные изображения, которые должны удачно соче-
Приложение А. Управление проектами 959 таться с отснятым видео- иди киноматериалом? Выбор стиля необходимо сделать как можно раньше и, разумеется, предварительно утвердить его у клиента. Для многих проектов просто необходимы концептуальные эскизы. Обычно для уточнения визуального стиля требуется время, и в этом отношении концептуаль- ный эскиз представляет собой самое лучшее и недорогое средство. Если выбранный стиль незнаком членам коллектива, им необходимо предоставить концептуальный эскиз и образцовые изображения, а возможно, и раскадровку, чтобы направить их творческие усилия в нужное художественное русло. Учет визуального стиля помога- ет также оценить необходимое время и ресурсы для выполнения проекта. Студийные ресурсы После того как будут определены масштабы, уровень качества и визуальный стиль проекта, необходимо выяснить, какие ресурсы потребуются для его выпол- нения. В частности, насколько квалификация художников соответствует решае- мой задаче и нужно ли привлечь им на помощь специалиста? Если привлекаются дополнительные работники, для них нужно найти место в студии, а в отсутствие такового — организовать их работу вне студии. Постарайтесь сплотить коллектив и не показывать свои слабые стороны. Кроме того, необходимо выбрать программное обеспечение для эффективной работы над проектом. Для выполнения задания, возможно, окажется достаточно и 3ds max 7, но, как правило, пользу приносит и другое программное обеспече- ние. Так, если предполагается большой объем работ с текстурами, для этой цели понадобится хороший редактор изображений, например Adobe Photoshop. Па этапе компоновки и монтажа может пригодиться combustion компании discreet или другое приложение компоновки. Если же выполнение отдельных частей за- дания вызывает особые трудности, для облегчения труда и ускорения работ, воз- можно, потребуются некоторые подключаемые модули, специально предназна- ченные для 3ds max. Выбирая программное обеспечение, старайтесь принимать во внимание как можно больше различных факторов. В частности, насколько применение кон- кретного подключаемого модуля позволяет ускорить работу и окупается ли его приобретение за счет сэкономленного времени? Можно ли использовать данный подключаемый модуль в последующих проектах и тем самым ускорить его оку- паемость? Все подобные соображения необходимо тщательно взвесить. Для эффективного применения программного обеспечения требуется соот- ветствующее обору 1ованис. Поэтому необходимо выяснить, насколько быстро- действие имеющихся компьютеров соответствует требованиям проекта? Если в проекте предполагается применять фотографические текстуры, то достаточно ли цифровых фотокамер для художников и хватит ли места па устройствах долго- временной памяти для храпения всех этих данных? Имеются ли средства для ре- зервною копирования и отправки готовой продукции клиенту'? На оборудовании экономить не следует, иначе потенциал программного обеспечения и трудовых ресурсов пе будет использован полностью.
960 Приложение А. Управление проектами Этапы выполнения проекта После анализа проекта и собственных возможностей можно переходить к кон- кретным вопросам выполнения проекта. В частности, необходимо распределить обя- занности среди членов коллектива и обеспечить наиболее эффективное использова- ние аппаратных и программных средств, а также трудовых ресурсов Задания распределяются, а этапы выполнения проекта назначаются с учетом квалификации членов коллектива. Своевременному выполнению работ способст- вует постановка промежуточных целей, чтобы люди знали, что от них требуется и когда они должны сделать свою работу. Даже если над проектом приходится ра- ботать в одиночку как вольному художнику, своевременная постановка целен по- зволяет избежать чрезмерного затягивания отдельных видов работ. Поэтапный характер выполнения работ обычно практикуется па крупных сту- диях. Это дает возможность сразу же определить виды работ па кот орые потре- буется больше времени, а затем внести в производственный процесс необходи- мые коррективы. Так, если один вид работ требует больше времени, чем предпо- лагалось, для его выполнения можно выделить больше работников или же урезать само содержимое, чтобы уложиться в установленные сроки. Такая постановка целей позволяет не сбиться с намеченного пути. Необходи- мо постараться как можно точнее оценить продолжительность каждой стадии выполнения проекта. Подобную оценку следует делать с небольшим запасом, по- скольку все предусмотреть практически невозможно. Старайтесь придерживать- ся намеченного календарного плана, чтобы избежать таких кризисных ситуаций, как штурмовщина. Безусловно, мелкие кризисные ситуации все равно придется пережить, хотя их можно рассматривать как альтернативные варианты выполне- ния проекта. Придерживаясь первоначальных целей проекта, выбранного общего стиля и де- лая все возможное для своевременного завершения отдельных этанов, все задание в целом можно выполнить в установленный срок, профессионально и без лишнего перенапряжения. (Разбухание содержимого служит явным признаком того, что ху- дожник сбился с намеченного пути, тратя слишком много времени и усилий на соз- дание ресурсов, которые нс нужны для проекта.) Во избежание подобных отклоне- ний по ход}' выполнения проекта старайтесь придерживаться намеченных целей, выбранного стиля и установленных сроков окончания работ. Подготовка проекта и сцены После принятия общих решений можно приступать непосредственно к самому проект}'. Подготовку проекта также полезно планировать, чтобы провести ее без- болезненно. Такие, казалось бы, малозначительные вопросы, как управление файлами, могут вызвать большие осложнения, если они нс будут сразу же улаже- ны. Одни вопросы подготовки относятся к сфере решений общего руководства проектом, а другие — к особенностям конкретного программного обеспечения. Тем не менее, чем раньше они будут решены, тем меньше скрытых препятствий окажется на нуги к конечной цели проекта.
Приложение А. Управление проектами 961 Управление файлами Всякий раз, когда начинается работа над новым проектом, для пего следует вы- брать подходящую структуру каталогов и файлов Это относится не только к файлам 3ds шах, но и ко всем остальным файлам, которые предстоит создать и использо- вать в проекте. Как правило, рекомендуется организовать файловый сервер, на котором будут храниться все совместно используемые ресурсы, в том числе файлы сцен с рас- ширением .шах, файлы текстур и любые виды образцов и другого справочного материала, необходимого для проекта. Если для файлового сервера назначен от- дельный логический диск в сети, все члены коллектива должны пользоваться од- ним и тем же именем этого сервера. В этом случае им не придется специально на- страивать пути к файлам, поскольку 3ds max будет воспринимать установленные пути как действительные и сможет найти на файловом сервере любые файлы растровых изображений, которые могут быть связаны с конкретной сценой. Возможно, художникам будет удобнее копировать ежедневно все обновленные файлы из файлового сервера на свои локальные машины. Это вполне приемле- мый вариант, поскольку он позволяет сократить сетевой трафик и свести к ми- нимуму задержки во время коллективной рабо ты над сценой в 3ds max. Кроме то- го, он обеспечивает полную защиту благодаря наличию в сети нескольких копий каждого файла, которые могут быть использованы для восстановления данных при выходе дисков из строя. С другой стороны, художники должны помнить о том, что любой файл можно случайно перезаписать. Во избежание этого они должны сохранять файлы с последовательной нумерацией. Иногда в 3ds max возникают аварийные сбои и при этом теряется часть проде- ланной работы. К сожалению, это неизбежно во время работы с программным обеспечением трехмерной графики и анимации Учитывая это обстоятельство, рекомендуется почаще сохранять свою работу в файле, причем с последователь- ной нумерацией. Кроме того, 3ds max можно настроить на автоматическое со- хранение файлов несколько раз в час, указав каталог Autoback для резервного копирования, который обычно находится ниже корневого каталога установки 3ds max. Если 3ds max обнаруживает определенного рода ошибку, то предупреждает об аварийном отказе и предлагает сохранить копию рабочего файла в данном ка- талоге. Это, конечно, удобная схема, но особенно полагаться на нее не стоит, по- скольку аварийный сбой может произойти до того, как будет выдано подобное предупреждение с предложением сохранить файл. Если вы привыкли регулярно сохранять файлы вручную, то можете выключить режим автоматического сохранения или ограничить число таких сохранений в час. Для сохранения крупных и сложных сцен обычно требуется несколько се- кунд, причем в этот момент нельзя работать со сценой. Когда же подобная ситуа- ция повторяется несколько раз в час, ожидание затягивается и работать стано- вится неудобно. Поэтому отключите режим автоматического сохранения или же уменьшите число подобных сохранений во вкладке Files диалогового окна Prefer- ences, открываемого с помощью команды Custom ze^ Preferences Последовательная нумерация сохраняемых файлов также препятствует их не- обратимой порче, которая все же происходит, хотя и редко. И если отсутствуют
962 Приложение А. Управление проектами резервные копии испорченного файла, это может привести к серьезной задержке производства. Пережив нечто подобное, многие художники начинают поступать более благоразумно, сохраняя файлы с последовательной нумерацией, выбирая команду File^Save As или File^Save As Сору. Для этого достаточно щелкнуть на кнопке со знаком “плюс” (+) в открывшемся диалоговом окне. Копия сцены со- хранится с последовательно увеличенным порядковым номером, присоединяе- мым к имени файла. Безусловно, это неплохой страховочный прием, но впослед- ст вии некоторые лишние копии сцены придется удалить вручную. Кроме того, необходимо рассмотреть возможность организации среды для безо- пасного использования источников. Если существует вероятность того, что во вр мя работы нескольких художников с одним и тем же файлом они могуч случайно переза- писать работу друт друга, в таком случае рекомендуется установить специальное про- граммное обеспечение, блокирующее файлы в момент их использования и тем самым препятствующее одновременному доступу к ним со стороны нескольких пользовате- лей. Такой доступ к файлам обычно обеспечивают программы управления ресурсами, что особенно важно для работы над проектом в крупных коллективах. Если же по какой-либо причине структура каталогов проекта нарушена и фай- лы разбросаны по самым разным местам, это положение можно все же исправить. С помощью кнопки More на панели Utilities доступна утилита Resource Collector (Накопитель ресурсов), которая накапливает все копии файлов, связанных со сценой, в единой папке. Это может оказаться удобным в том случае, если проект пе организован. Кроме того, подобным образом можно довольно быстро создать резервную конто проекта в другом месте. Подключаемые модули Подключаемые модули нередко упрощают решение некоторых задач. Если в про- екте предполагается использовать подключаемые модули, убедитесь в том, чю с фай- лами сцен, где должны применяться подключаемые модули, можно по-прежнему ра- ботать. Иными словами, подключаемые модули должны быть установлены на всех ло- кальных машинах — рабочих местах художников чтобы не стать причиной ошибок при открытии сцен из-за отсутствия соответствующего подключаемого модуля. Некоторые подключаемые модули недостаточно надежно работают в 3ds max, что ограничивает возможности работы со сценой после ее открытия. Это может стать серьезным препятствием в организации нормального труда коллектива Поэтому данное обстоятельство следует учшывать, принимая решение о необходимости ис- пользовать конкретный подключаемый модуль. Если возникнут сомнения, проверьте подключаемый модуль на характерном примере файла сцены, прежде чем рисковать возможностью порчи или ограничения доступа к важному файлу сцены. Кроме того, необходимо выяснить, насколько действительно нужен подклю- чаемый модуль. Ведь зачастую с задачей в 3ds max можно справиться и без под- ключаемого модуля, если, конечно, знать для этого подходящее средство. Так или иначе, подключаемые модули требуют дополнительного времени для изучения и проверки со стороны художников. А ведь это время можно потратить на поиск решения непосредственно в 3ds max. Если же учесть дополнительные затраты на приобретение подключаемых модулей, то иногда более привлекательной оказы- вается перспектива работы в 3ds max без подобных расширений.
Приложение А. Управление проектами 963 Масштаб сцены Все художники, работающие над проектом, должны придерживаться одного и того же масштаба. Казалось бы, это само собой разумеющееся требование, тем не менее ошибки выбора масштаба могут вкрасться в проект и вызвать серьезные ос- ложнения. Ведь художники должны пользоваться общими ресурсами и передавать сцепы друт другу, и если общие размеры объектов будут при этом сильно отличать- ся, для устранения подобных недоразумений потребуется немало времени. Если же участники проекта придерживаются общепринятых масштабов сцен и объектов, они могут без труда пользоваться общими ресурсами без каких-либо разногласий. Рабочий масштаб устанавливается в 3ds max, исходя из потребностей проекта. Например, для некоторых игровых механизмов могут потребоваться модели осо- бою размера, тогда как проекты технического моделирования обычно выполня- ются в реальном масштабе. После масштаба необходимо выбрать единицы измерения для работы над сце- нами в 3ds max. С помощью команды Customize^Units Setup из главного меню можно выбрать базовые (Generic), метрические (Metric) или стандартные для США (U.S. Standard) единицы измерения. Эти единицы послужат удобной систе- мой отсчета, позволяющей точно судить об истинных размерах объектов, нахо- дящихся на сцене. Если для экспорта сцеп и данных требуется установить специ- альные размеры, в диалоговом окне System Unit Setup можно выбрать относи- тельный масштаб сцепы. При этом исходно установленные рабочие единицы из- мерения не изменяются, а созданные объекты по-прежнему наблюдаются в футах, метрах или базовых единицах. Системные единицы измерения дают лишь воз- можность судить о том, насколько велики или малы экспортируемые объекты. Присвоение имен объектам К одним из самых важных вопросов, решаемых в начале нового проекта отно- сится выбор подходящих условных обозначений. Если не присвоить объектам осо- бые имена, они получат в 3ds max устанавливаемые по умолчанию имена, которые совершенно непригодны с организационной точки зрения. Это особенно важно в том случае, если планируется объединение нескольких сцеп. Допустим, что требу- ется ввести несколько объектов зданий из одной сцены в другую. Если этим объек- там не присвоены уникальные описательные имена, в списке объектов, скорее все- го, появятся такие имена, как BoxOl, Вох02, ВохОЗ и т.д., по которым практически невозможно определить объекты, объединенные сданной сценой. Подходящие имена следует присваивать и материалам. Ведь если материалы по- лучают устанавливаемые по умолчанию имена, их можно легко потерять при объе- динении сцен, поскольку в этом случае 3ds max не в состоянии различить материа- лы с одинаковыми именами в объединяемых файлах. Следовательно, для надежно- сти рекомендуется присваивать уникальные имена всем материалам и даже картами внутри материалов. Как правило, удачно выбранные условные обозначения намного упрощают ра- бот}' с файлами сцен. Все файлы, связанные с проектом, включая растровые и ви зуализированпые изображения, объекты и материалы, должны именоваться в оп- ределенной логической последовательности. Даже если файлом не будут пользо- ваться дру1ис, удачно выбранные условные обозначения существенно облегчают
964 Приложение А. Управление проектами обращение со всем его содержимым, имеющим отношение к проект}'. Кроме того, упрощается правка анимации, а объекты без труда различаются для последующего сокрытия, использования в слоях, группах и т.д. Выбор условных обозначений — дело сугубо личное, но при этом нужно быть последовательным. Имена, присваиваемые объектам и материалам должны быть краткими, описательными и без пробелов. Например, рекомендуется использовать имя ComputerMonitor или Computer Monitor вместо Computer Monitor. Ведь если сцену или объект придется впоследствии импортировать в другую програм- му, будь то приложение трехмерной графики и анимации, игровой механизм или средство визуализации независимого производителя, пробелы в именах объектов и материалов могут быть не восприняты, а следовательно, этими данными нельзя будет воспользоваться. Если же в именах используются прописные буквы и знаки подчеркивания, такие имена намного легче читать. Кроме того, присваивая имена, следует усчитывать само содержимое файлов. Для этого имеется несколько подходов, один из которых состоит в присвоении удобочитаемых, описательных имен, как, например, Blue_Truck (Синий грузо- вик). Как правило, этого оказывается вполне достаточно, но если требуется объе- динить в сцепе несколько однотипных объектов, то более предпочтительным .может оказаться имя Truck_Blue, так как однотипные модели намного проще выбирать для работы, когда они имеют имена Truck_Blue, Truck_Red и грузо- вики друтих цветов. Если требуется, объектам можно присвоить еще более под- робные, описательные имена, как, например, Truck_Large_Blue (Грузовик большой синий) или Truck_Pickup_Red (Грузовик пикап красный). Если после начала производства обнаруживаются объекты с неверно присвоен- ными именами, данный недостаток следует немедленно устранить. Для этой цели B.3ds max имеется инструмент Rename Objects (Переименовать объекты), доступ- ный из главного меню Tools. С его помощью переименование объектов осуществля- ется довольно просто: выделите объект, присвойте ему новое имя и, если требует- ся, префикс или суффикс, а затем щелкните па кнопке Rename в диалоговом окне Rename Objects (рис. А.1). В идеальном случае подходящие имена лучше всего при- своить всем объектам сразу, но па практике это удается далеко не всегда. Рис. А.1. Диалоговое окно Rename Objects
Приложение А. Управление проектами 965 Неверно выбранные условные обозначения могут стать причиной существен- ных задержек в производстве. Поэтому ради сохранения эффективности произ- водства условные обозначения следует выбирать в самом начале проекта и при- держиваться их на всем его протяжении. Экспорт и импорт Что бы ни приходилось импортировать или экспортировать, будь то логотипы из Adobe Illustrator, сцены в игровой механизм или другое приложение, в проекте нередко возникает потребность в экспорте и импорте данных и файлов. Если заранее известно, что объекты или сцены предстоит экспортировать в иг- ровой механизм, в другое приложение трехмерной графики или анимации или же в средство визуализации независимого производителя, эти операции следует соот- ветственно запланировать, так как данные для некоторых игровых механизмов приходится специально подготавливать. В частности, объекты, возможно, придет- ся привести к определенному масштабу и исходному состоянию редактируемого каркаса для правильного восприятия игровым механизмом или редактором уров- ней, в моделях — свернуть стеки модификаторов, а в оживляемых персонажах — ис- ключить жесткие вершины. Это типичные примеры требований, которые предъ- являются к производству игровой продукции. Аналогично, средства визуализации независимых производителей предъяв- ляют особые требования к подготовке сцен. В частности, объекты, скорее всего, должны иметь конкретный масштаб и тип установленного базового состояния, а координаты UV-проецирования должны быть заданы определенным образом. Что же касается экспорта либо импорта в приложения двухмерной или трех- мерной графики и анимации, то выбор соответствующих средств может иметь решающее значение для четкого переноса данных. Несмотря на то что в 3ds max поддерживается экспорт и импорт в файлах многих форматов, далеко не все они способны переносить одни и те же данные. Поэтому рекомендуется заранее про- верить правильность переноса данных, чтобы предупредить любые осложнения, которые могут возникнуть при экспорте и импорте данных. Если встроенных в 3ds max возможностей недостаточно, в таком случае следу- ет обратиться к подключаемым модулям экспорта и импорта выяснив типы дан- ных, которые они способны переносить, а также их ограничения. Для примене- ния таких средств экспорта и импорта данных необходимо специально подгото вить сцены, иначе в процессе преобразования можно потерять данные и тем са- мым поставить весь проект под угрозу срыва. Организация сцен По завершении предварительного планирования и подготовки к производству можно приступать непосредственно к самой работе над проектом. Для того что- бы работать быстро и аккуратно, необходимо уметь рационально пользоваться 3ds max и правильно подбирать инструменты для решения конкретных задач. Кроме того, сцену необходимо поддерживать в организованном порядке, чтобы упростить перемещение по ней. Организация сцен не вызывает особых затрудне-
966 Приложение А. Управление проектами ний, если знать, какие для этого средства имеются в 3ds max. Правильно органи- зованной считается такая сцена, с которой легко работать. Чем лучше сцена ор- ганизована, тем больше времени расходуется на ее художественное оформление, а не на преодоление трудностей, связанных с манипулированием ею. Инструменты выделения Если в сцене приходится иметь дело с большим числом объектов, для быстро го и точного их выделения служит инструмент Select Object. Объекты выделяют- ся и с помощью инструментов преобразования, но при быстром перемещении мыши можно случайно сместить объекты, выбираемые щелчком. Поэтому для этой цели надежнее пользоваться инструментом Select Object. Для точного выделения объектов имеются и другие средства. В частности, с помощью фильтров выделения можно ограничить выбор объектов определен- ным типом. Так, если правится скелет персонажа, то для выделения костей доста- точно выбрать элемент Bone из раскрывающегося списка Selection Filter. Фильт- ры выделения удобны для работы с объектами как одного определенного типа, так и нескольких типов, обозначаемых в раскрывающемся списке Selection Filter элементом Combos (Комбинации) (рис. А.2). Рис. А.2. Выбор комбинации фильтров выделения Кроме того, объекты удобно выделять с помощью команды Edit1^ Select Ву^ Color (Правка1^Выделить по^Цвету) из главного меню. В этом случае выделяют- ся все объекты одного выбираемого по умолчанию цвета. Это очень удобно, если применяется простая система цветового кодирования объектов. Еще большей эффективностью обладают именованные совокупности выделе ния. Для их создания достаточно выбрать подходящие объекты и ввести имя
Приложение А. Управление проектами 967 в текстовом поле раскрывающегося списка Named Selection Sets (Именованные совокупности выделения), расположенного на основной панели инструментов. Для повторного выбора объектов необходимо лишь раскрыть данный список и выбрать требуемую совокупность выделения по имени. Объекты можно вводить или исключать из именованных совокупностей выделения либо удалять эти сово купности полностью (рис. А.З). Named Selection Sets doors 0 Door DoorOI - {} walls 0 Wai 00 0 WallOl 0 Wai 02 0 Wall04 jj{doors}-Selected 4 Рис. А.З. Доступ к именованным сово- купностям выделения и их правка Для сохранения совокупности выделенных объектов удобны такие инструмен- ты, как кнопка Selection Lock Toggle (Переключатель блокировки выделения), расположенная в строке состояния. А для выбора другой, более подходящей формы рамки выделения служит всплывающая панель Selection Region, находя- щаяся на основной панели инструментов. Одним из самых эффективных инструментов выделения является инструмент Select By Name. Если объекты названы надлежащим образом, то их нетрудно выде- лить с помощью данного инструмента в довольно сложной сцене. В открывшемся диалоговом окне Select Objects можно отфильтровать выделяемые объекты по ти- пам. С помощью ряда флажков, расположенных в нижней части этого диалогового окна, осуществляется доступ к целым иерархиям объектов, что очень удобно для тех, кто занимается снаряжением и анимацией персонажей Так, если установлен флажок Display Subtree (Показывать поддерево), все порожденные объекты ото- бражаются с отступом ниже выбранных родительских объектов (рис. А.4).
968 Приложение А. Управление проектами Рис. А.4. Диалоговое окно Select Objects с ус- тановленным флажком Display Subtree Значение инструментов выделения для производства трудно переоценить, по- скольку они экономят немало рабочего времени. Например, в своем последнем проекте для компании Valkyrie Entertainment мне пришлось решать непростую за- дачу. Это была игра в гонки, для которой в 3ds max необходимо было оформить ог- ромные треки с большим числом окружающих декораций Художник-постановщик проекта обратил внимание на то, что автомашины из декораций на заднем плане получились слишком мелкими. Большинство из них представляли собой уникаль- ную геометрическую форму', которую предстояло сделать крупнее на 20%, причем таких объектов было несколько десятков. Выделять и масштабировать их по от- дельности было бы слишком трудно и долго, поскольку' они были распределены по многокилометровому' треку'. К счастью, мы удачно выбрали условные обозначения объектов, и мне нетрудно было выделить с помощью инструмента Select By Name все модели автомашин на заднем плане и выполнить их локальное масштабирова- ние. Таким образом, благодаря удачно выбранным условным обозначениям и уме- лому' использованию доступных в 3ds max инструментов выделения удалось лишь за несколько минут выполнить задание, на которое иначе пришлось бы потратить не меньше часа. Слои Эффективная организация сцен в крупных проектах фактически означает ус- корение производственного процесса. Умело используя администратор слоев (Layer Manager), который позволяет быстро распределить объекты по слоям, можно существенно упростить работу со сценой. Если объекты распределены по слоям, их можно оперативно скрывать и отображать на сцене, не загромождая ее. Кроме того, с помощью слоев можно управлять видимостью объектов определен-
Приложение А. Управление проектами 969 ного типа, в том числе костями, системами частиц и вспомогательными объекта- ми. Это особенно удобно для сцен с многочисленными объектами, например, крупных наружных сцен с окружением или целой толпой действующих лиц. Слои позволяют фиксировать целые совокупности объектов. Зафиксированные объекты по-прежнему видны, хотя их нельзя выделить в видовых окнах. Это осо- бенно удобно в том случае, если некоторые объекты уже нах дятся на своих местах, причем их случайный сдвиг нежелателен, но в то же время они должны служить ви- зуальным ориентиром. Кроме того, с помощью слоев можно указать подлежащие визуализации объекты и их общий вклад в решение излучательности. Благоразумно используя слои, можно ускорить пробную визуализацию. Элементы управления слоями могут быть доступны из разных частей интерфейса 3ds шах, поэтому лучше всего воспользоваться администратором слоев в качестве центрального места для управления этими элементами сцены (рис. А.5). Рис. А.5. Применение администратора слоев Сокрытие и фиксация объектов Как упоминалось выше благодаря сокрытию и фиксации объектов упрощается работа со сценой. Но этого не нужно делать при наличии слоев. Скрывать и фик- сировать объекты можно на панели команд Display, где для этой цели имеются дополнительные элементы управления. 1ак, в свитке Hide by Category имеется ряд флажков для сокрытия объектов по их типу. Это очень удобно, например, в том случае, если требуется скрыть все объекты костей перед визуализацией не- которого фрагмента анимации персонажа или просто расчистить место на сцене для дальнейшей работы с ней. Кроме того, скрывать и фиксировать можно как выделенные, так и невыделенные объекты, используя кнопку' Hide by Hit (Скрыть объекты, выбранные щелчком) из свитка Hide на панели Display. А после щелчка на кнопке Unhide by Name (Показать объекты на сцене по имени) появляется список скрытых на сцене объектов, среди ко- торых можно выбрать объекты, отображаемые на сцене. Это служит еще одним осно- ванием для заблаговременного и надлежащего именования объектов.
970 Приложение А. Управление проектами Если требуется быстро скрыть, показать, зафиксировать или расфиксировать объекты в процессе производства, соответствующие команды для этой цели мож- но найти в квадратном меню, вызываемом щелчком правой кнопкой мыши. Так, если имеется несколько выделенных объектов, которые нужно скрыть, щелкните правой кнопкой мыши и выберите из всплывающего квадратного меню команду Hide Selection (Скрыть выделенное). Несмотря на то что квадратное меню не предоставляет все возможности, доступные па панели Display, его команды зачас- тую обеспечивают самый быстрый и оперативный способ сокрытия и фиксации. Работа с объектами После того как будет проведена подготовка к производству и решены общие вопросы организации сцен, можно приступать к построению моделей для сцен, что обычно и делается па большинстве студий. Для моделирования существуют разные методы и приемы. Некоторые из них уже рассматривались в части Ш этой книги, посвященной моделированию. А здесь будут представлены методы рационализации труда в процессе моделирования объектов, позволяющие эф- фективно работать с моделями и заблаговременно предупредить возможные ос- ложнения. Видовые окна и работа с объектами в диалоговом режиме На первый взгляд кажется, что перемещение в видовых окнах не требует осо- бых навыков, однако умелое использование элементов управления видовыми ок- нами упрощает и ускоряет работу в них. Для просмотра объектов, находящихся на сцене, можно воспользоваться инструментами, расположенными в правом ниж- нем углу интерфейса 3ds max, или же щелкнуть средней кнопкой мыши либо вос- пользоваться колесиком, если таковое имеется. С помощью средней кнопки мы- ши активизируется режим панорамирования (Pan). Если дополнительно нажать клавишу <Ali>, то активизируется режим вращения по дуге (Arc Rotate), а если до- полнительно нажать комбинацию клавиш <Ctrl+Alt>, то включается режим изме- нения масштаба (Zoom) Кроме того, после нажатия клавиши <7> активизируется режим Zoom Extents All Selected (Показать все выделенное полностью). При использовании элементов управления видовыми окнами необходимо сле- дить за тем, какие из них выбраны из соответствующих всплывающих панелей. Так, если щелкнуть на кнопке Arc Rotate, то доступными фактически окажутся три раз- ных режима вращения по дуге (рис. А.6). Первым будет доступен стандартный ре- жим вращения по дуге, при котором выбирается точка наблюдения где-то в центре текущего видового окна. Далее доступен режим Arc Rotate Selected (Повернусь по дуге вокруг выделенного), при котором точка вращения выбирается в зависимости от выделения на сцене объектов. Если требуется обойти один или несколько объек- тов по дуге, не выходя из кадра, выделите эти объекты и воспользуйтесь данным режимом. И наконец, доступен третий режим Arc Rotate SubObject (Повернуть по дуге вокруг подобъектов). Этот режим полезен при моделировании на уровне по- добъектов (вершин, ребер и пр.), поскольку в этом случае подобъекты располагают- ся симметрично вокруг точки вращения.
Приложение А. Управление проектами 971 Рис. А.6. Режимы вращения по дуге, доступные из всплывающей панели Для работы с объектами на сцене чаще всего применяются следующие инстру- менты выделения и преобразования: Select and Move, Select and Rotate и Select and Scale. Благодаря быстрому доступу к этим инструментам значительно ускоря- ется работа со сценой. По умолчанию для выделения, перемещения, вращения и масштабирования объектов назначены клавиши быстрого доступа <Q>, <W>. <Е>, <R>. С другой стороны, для быстрого доступа к этим инструментами преоб- разования имеются соответствующие команды, выбираемые из квадратного ме- ню, вызываемого щелчком правой кнопкой мыши. Перемещение по крупным сценам Работа с очень крупной сценой, на которой находятся многочисленные объек- ты, требует больше средств для просмотра объектов. Так, если в крупной сцене с городским пейзажем из сотен зданий требуется сделать крупнее модель мусор- ного контейнера, чтобы установить ее на тротуаре, добиться этого будет нелегко. Одного лишь увеличения масштаба и вращения по дуге может оказаться для этого недостаточно, поскольку при вращении вокруг мусорного ящика по дуге могут появиться здания, заслоняющие вид. В подобных случаях активизируется режим изоляции, позволяющий сосредоточить основное внимание на объекте, с кото- рым нужно работать Для этого достаточно выделить объект и выбрать из главно- го меню команду Tools’^Isolate Selection (Инструменты^Изолировать выделен- ное). Все остальные объекты скрываются на сцене, а вид выделенного объекта де- лается крупнее. После внесения необходимых изменений можно щелкнуть па кнопке Exit Isolation Mode (Выйти из режима изоляции), расположенной на всплывающей панели, чтобы показать на сцене остальные объекты. Данный ре- жим активизируется также с помощью комбинации клавиш <Alt+Q>. Для работы с крупными сценами полезна и утилита Ob ect Display Culling (Выборочное ото- бражение объектов), которая подробно рассматривалась в главе 1. Особенно сложно просматривать модели зданий изнутри. Организовать про- смотр здания изнутри, будь то архитектурный проект или уровень игры, не так-то просто Правда, теперь a 3ds max имеется новое видовое окно Walkthrough Navigation (Перемещение в окружении), специально предназначенное для по- добных ситуаций. Оно доступно из всплывающей панели инструмента Pan в пра- вом нижнем углу интерфейса 3ds max при активном окне вида в перспективе или окне вида из камеры.
972 Приложение А. Управление проектами Свойства объектов Для доступа к большому объему полезной информации об объекте достаточно выделить его, щелкнуть на нем правой кнопкой мыши и выбрать команду Proper- ties из всплывающего контекстного меню. В открывшемся диалоговом окне Object Properties сведены различные атрибуты объекта. Часть этой информации об объ- екте доступна на панели Display, из основного пользовательского интерфейса или из слоев. Если приходится работать на уровне объектов, диалоговое окно Object Properties может служить отличным местом для управления различными режима- ми отображения и визуализации объекта, а также другими его атрибутами. В области Display Properties из вкладки General диалогового окна Object Propert es доступны различные режимы отображения. Так, в режиме See-Through, акти- визируемом также с помощью комбинации клавиш <Atl+X>, выделенные объ- екты становятся прозрачными, что очень удобно для просмотра объекта на фоне образцового изображения или же для работы с костями, находящимися внут- ри каркаса персонажа. В процессе снаряжения я нередко устанавливаю каркас пер- сонажа в режим See-Through, а затем фиксирую его. Это дает мне возможность ра- ботать непосредственно с костями внутри объема, ограничивающего каркас. К другим режимам отображения объектов, доступным в области Display Prop- erties, относится режим Show Frozen in Gray (Выделить зафиксированное серым цветом), отвлекающий порой внимание. Поэтому для того чтобы видеть текстур- ные карты на зафиксированных объектах в видовых окнах, рекомендуется вы- ключить этот режим. В области Rendering Controls, а также во вкладках Advanced Lighting и mental ray доступны и режимы визуализации объекта. Они особенно полезны для необычной компоновки визуализированных изображений или спе- циального управления эффектами. Клонирование При создании объектов, предназначенных для размещения на сцене, создавать вручную лишние модели нерационально. Ведь намного проще скопировать уже имеющуюся модель, чем сделать еще одну точно такую же модель. Даже если объ- екты должны немного отличаться друг от друга, клонирование является весьма эффективным методом их ввода в сцену. Существует несколько способов копирования объектов. Это можно, в частно- сти, сделать из главного меню Edit. При этом получается точная копия на том же самом месте, где и оригинал. Такой способ удобен для создания моделей, имею- щих определенную степень детализации и предназначенных для игр, поскольку при экспорте модели они не смещаются относительно друг друга. Однако в визуа- лизируемых проектах копируемую модель приходится смещать в сторону. Во из- бежание этого следует дополнительно нажать клавишу <Shift>. В этом случае объ- ект копируется, какой бы инструмент преобразования ни был выбран. Данное правило распространяется как на объекты, так и на подобъекты. Следовательно, для быстрого копирования объекта достаточно нажать клавишу <Shift> и пере- местить его. Аналогичным образом копируются ребра во время работы на уровне подобъектов-ребер. При копировании ребер между оригиналом и новыми ребра- ми образуется соединяющий их многоугольник.
Приложение А. Управление проектами 973 Однако выделение объектов или подобъектов с использованием инструментов преобразования чревато некоторыми опасностями. Ведь подобным образом можно очень легко скопировать случайно совсем не то, что нужно. Поэтом)7 для выделения объектов и подобъектов рекомендуется пользоваться только специ- альными инструментами выделения. Кроме того, объекты копируются с помощью инструментов Array, Mirror и Spacing Эта инструменты обеспечивают более точное управление процессом расположения копируемых объектов. В частности, инструмент Array позволяет управлять величиной смещения, ориентацией и прочими параметрами объекта. Кроме того, он допускает предварительный просмотр объектов в новом положении перед их созданием. А ин- струмент Spacing выполняет расстановку объектов через равные промежутки по дли- не сплайна (рис. А.7). Это отличный выход из положения при расстановке таких объ- ектов, как телеграфные столбы, вдоль извилистой сельской дороги. И наконец ипст- румент М ггог просто переворачивает копию относительно указанной оси Все эти ин- струменты обеспечивают средства управления, которые отсутствуют у стандартных инструментов копирования объектов. Рис А 7. Применение инструмента Spacing Независимо от используемого метода всегда имеется возможность выбрать один из трех следующих способов клонирования: получение копии (Сору), экзем- пляра (Instance) и ссылки (Reference). Копия является дубликатом, никак не свя- занным с оригиналом после своего создания Экземпляр поддерживает взаимо- связь с оригиналом. При изменении параметров, модификаторов и элементов управления на уровне подобъектов оригинала эти изменения отражаются и па эк- земпляре. Ссылки подобны экземплярам, однако к ним можно применять моди- фикаторы, и их действие не будет распространяться на ссылочный объект. Если посмотреть на стек модификаторов полученной ссылки, то в нижней его части можно заметить серую полосу. Все модификаторы, находящиеся ниже этой поло- сы, являются общими как для ссылки, так и для оригинала, а те что находятся выше нее, уникальны только для данной ссылки (рис. А.8).
974 Приложение А. Управление проектами Рис. А.8. Стек модификаторов ссылки: вы- ше полосы находятся общие для нее и ори- гинала модификаторы, а ниже — только мо- дификаторы, уникальные для нее Экземпляр геометрической формы может использоваться в том случае, если преобразования клонируемых объектов не должны оказывать влияние на их эк- земпляры, а любые изменения в стеке модификаторов должны распространяться и па экземпляры. Это означает, что объект можно клонировать в виде экземпля- ра, а затем продолжить работу над моделью, все изменения в которой отразятся и на ее экземпляре. Любые преобразования (перемещение, вращение, масштаби- рование) одного экземпляра в целом не будут оказывать влияние на другой экзем- пляр. Так, на сцене можно расположить экземпляры объектов, замещающих мо- дель, затем уточнить модель, чтобы внесенные в нее изменения распространи- лись и на полученные экземпляры модели, где бы они ни находились. Получение экземпляров может стать весьма эффективным производственным ин- струментом. Допустим, что требуется создать лес из сосновых деревьев. Эти деревья в целом очень похожи друг на друга, хотя и отличаются размерами, величиной изги- ба, цветом и т.д. В условиях производства, вероятно, не совсем реально создать тыся- чи совершенно уникальных моделей деревьев. Вместо этого можно начать с одной модели и расставить по местам ее экземпляры, а затем повернуть экземпляры произ- вольным образом, чтобы нарушить единообразие их формы и ориентации. На экзем- пляры не распространяется информация преобразования па уровне объектов, поэто- му это удобный способ для введения некоторого разнообразия в высоту и ширину' по- лученных экземпляров деревьев. Кроме того, для деревьев можно назначить разные материалы, чтобы они несколько отличались своей корой и листвой. Если разнообра- зие деревьев по-прежнему недостаточно велико, в таком случае можно получить одну копию исходной модели дерева и внести в нее изменения на уровне подобъектов. По- сле подобных структурных изменений можно получить дополнительные экземпляры и этой модели дерева, чтобы внести еще большее разнообразие. Подобным методом без особого труда создаются крупные и пространные сцены. Внешние ссылки Внешние ссылки представляют собой объекты, появляющиеся в текущей сцене, но на самом деле эти объекты находятся в файле другой исходной сцены 3ds max, а обращение к ним происходит по внешней ссылке. Иными словами, такие объекты создаются в одном файле, но появляются в другом файле, где их уже нельзя изме- нить. Это особенно удобно для работы над проектом в большом коллективе, по-
Приложение А. Управление проектами 975 скольку объекты могут быть созданы в исходных файлах и затем неоднократно ис- пользованы по мере надобности в других файлах сцеп. С помощью внешних ссылок обеспечивается необходимая согласованность работ над проектом, поскольку во всех файлах сцен делаются ссылки на единственный оригинальный объект из ис- ходного файла. Любые изменения в оригинальном объекте из исходного файла по- являются и в файлах всех остальных сцен, где имеются ссылки па этот объект Внешние ссылки полезны, в частности, для графического оформления отдель- ных уровней игры. Если остальные художники занимаются лишь созданием боль- шей части объектов для сцеп, то художник-оформитель уровней игры должен ском- поновать все имеющиеся ресурсы в единую связанную игровую среду. Если же для компоновки отдельного уровня игры этому художнику оформителю требуется кон- кретный реквизит, он может быстро получить данный ресурс по внешней ссылке от одного из остальных художников. Даже если нужный объект находится па стадии эскиза геометрической формы, этого может оказаться достаточно художнику- оформителю для размещения данного объекта на отдельном уровне и принятия со- ответствующих решений относительно его компоновки. После этого художпику- оформите по уже не нужно беспокой гься о любых изменениях, вносимых в вы- бранный объект реквизита, а художнику, непосредственно оформляющему рекви- зит, — о замене подстановочной модели готовой моделью па данном уровне игры. Ему нужно лишь обновить исходный файл с объектом реквизита, внеся в модель любые изменения, которые могут для этого потребоваться, а файл сцены па вы- бранном художником-оформителем уровне обновляется автоматически. Как видите, с помощью внешних ссылок сокращается время па выполнение та- ких трудоемких заданий как замена объектов. Трудно даже себе представить воз- можные последствия в приведенном выше примере оформления игры если бы при этом не применялись внешние ссылки, — наити модель для ее правки в крупном файле уровней игры намного труднее, чем в отдельном файле сцены 3ds max. А что если бы объект декораций пришлось менять на десятках других уровней? Ниже приведена довольно простая процедура создания внешних ссылок. 1. Создайте файл сцены с одним или несколькими объектами. Это будет ис- ходный файл для оригиналов объектов. 2. Введите эти объекты в файл текущей сцены в виде внешних ссылок, выбрав команду FlIe^XRef Objects^Add (Файл^Впешпие ссылочные объекты^? Добавить), а затем выберите файл сцены, из которого требуется ввести объекты. ‘ 3. Откроется диалоговое окно XRef Merge (Объединение по внешним ссыл- кам). Выберите нужные объекты, чтобы они появились в сцене. Если требу- ется, введите дополнительные объекты из других исходных файлов, а по завершении закройте диалоговое окно XRef Objects. Как только объект появится па сцене, ei о можно как угодно перемещать, вра- щать и масштабировать. Любые изменения, происходящие с этим объектом, не оказывают влияние на исходный файл. Если посмотреть на стек модификаторов данного объекта, то можно замети ib, что это внешний ссылочный объект, для которого отсутствуют элементы управления на уровне подобъектов. Его можно переименовать и выполнить над ним преобразования, однако изменения в нем следует производить в исходном файле оригинала (рис. А.9).
976 Приложение А. Управление проектами Рис. А.9. Стек модификаторов внешнего ссылочного объекта Обращение по внешним ссылкам может быть организовано как для объектов, так и для сцен по одном}7 и тому же принципу: для доступа к данным, которые необходимо использовать в текущей сцене, служит некоторый внешний файл. В целом внешние ссылки позволяют организовать одновременную работу над проектом, задействуя без особого риска дополнительных специалистов. Так, художники-оформители макета и отдельных уровней игры могут сразу же приступать к разметке графического оформления игры, в то время как разработчики моделей создают и отделывают пер- сонажи, декорации и реквизит. Аниматоры могут обращаться по внешней ссылке к целой сцене, чтобы начать разметку анимации без риска нарушить что-либо случай- но. Аналогично, художники по свету могут приступать к организации освещения еще до завершения этапов моделирования, текстурирования и анимации. При правильном использовании внешних ссылок можно организовать синхрон- ный, нелинейный порядок выполнения операций, при котором художникам не нужно ждать, когда им передадут объект или задание. Каждый художник может сра зу же включиться в работу над проектом, даже если некоторые художественные ре- сурсы проекта находятся еще на стадии грубых набросков. Коллектив может быть уверен в том. что как только отдельные его члены обновят свои исходные файлы, все, кто пользуются общими ресурсами посредством внешних ссылок, сразу же уви- дят изменения. Благодаря тому что художники приступают к работе над проектом на более ранней его стадии, впоследствии удается избежать таких негативных яв- лений, как штурмовщина. Сворачивание стека модификаторов В процессе моделирования и ввода модификаторов в стеке могут накапливаться большие объемы данных. В некоторых случаях это вполне приемлемо. Если требуется доступ к модификаторам для их видоизменения, стек должен сохраняться в неизмен- ном виде, чтобы вносить изменения по мере надобности. Но это, пожалуй, исключе- ние из общего правила, согласно которому7 лучше избави ься от всего лишнего.
Приложение А. Управление проектами 977 В действительности наличие большого и запутанного стека модификаторов чревато некоторыми опасностями, особенно в том случае, если над моделью ра- ботает целый коллектив художников. Не следует забывать, что многие модифика- торы зависят от тех модификаторов, которые находятся в нижней части стека, и что любые изменения базового состояния объекта или этих модификаторов вместе с теми, что находятся в стеке выше, могут привести к катастрофическим последствиям. Кроме того, очень большие стеки модификаторов иногда наруша- ют устойчивое состояние сцены. Многие осложнения подобного рода устраняют- ся благодаря сворачиванию стека модификаторов. Если стек модификаторов требуется свернуть к базовому состоянию объекта, щелкните в стеке правой кнопкой мыши и выберите из всплывающего контекст- ного меню команду Collapse АН Свернуть все). Аналогичного результата можно добиться, щелкнув правой кнопкой мыши на самом объекте в видовом окне и вы- брав из всплывающего контекстного меню команду Convert То (Преобразовать). Отличие между этими двумя способами состоит в том, что с помощью команды Collapse АП объект преобразуется в редактируемый каркас или редактируемый многоугольник, а команда Convert То предоставляет больше возможностей для выбора вариантов преобразования. Опасные последствия выполнения команды Collapse АП заключаются в том, что при этом теряется управление всеми модификаторами в стеке. Так, если ин- формация UV-проецирования может быть восстановлена благодаря применению нового модификатора Unwrap UVW то управление модификаторами других ти- пов не восстанавливается. Кроме того, в результате выполнения команды Col- lapse АН или Convert То нарушаются все взаимосвязи между оригиналами и их эк- земплярами. Поэтому' если в сцене требуется сохранить подобные взаимосвязи, в таком случае этими командами лучше не пользоваться. Если требуется сохранить некоторое управление на уровне модификаторов или взаимосвязи между оригиналами и их экземплярами, но в то же время упорядочить стек, для этого достаточно щелкнуть правой кнопкой мыши на конкретном моди- фикаторе и выбрать команду Collapse То (рис. А.10). Выбранный модификатор свернется до базового состояния объекта. В отличие от команды Collapse АН, ко- манда Collapse То не нарушает взаимосвязи между оригиналами и их экземплярами. Так, если выбрать сначала модификатор посредине стека, а затем команду Collapse То, этот модификатор свернется до базового состояния, а все модификаторы, на- ходящиеся в стеке выше него, останутся без изменения. В целом команда Collapse То является самым безопасным вариантом сворачивания стека. НА ЗАМЕТКУ Будьте внимательны, сворачивая в текущей сцене стеки модификаторов объек- тов, доступных по внешним ссылкам из исходной сцены. Если свернуть стек или преобразовать базовое состояние объекта, его связь по ссылке с исходным фаи лом нарушится. В некоторых случаях это вполне приемлемо, хотя и нарушает основное назначение внешних ссылок. Обычно если требуется внести измене- ния в объект, это следует делать в исходном файле, где находится его оригинал
978 Приложение А. Управление проектами Рис. АЛО. Команда Collapse То Точность работы Работать иногда нужно не только быстро, но и точно. В 3ds max 7 имеется не- мало инструментов, особенно привязки, для работы с повышенной точностью. Существуют самые разные инструменты привязки, предназначенные для кон- кретных преобразований или операций. Например, для того чтобы быстро по- вернуть объект на 90° вокруг одной оси, достаточно щелкнуть на кнопке Angle Snap Toggle. При этом вращение происходит ограниченно с устанавливаемыми по умолчанию приращениями 5°. Аналогично, если требуется расположить две вершины вровень друг с другом, то следует щелкнуть на кнопке 3D Snap Toggle. А для настройки режима привязки достаточно щелкнуть правой кнопкой мыши на выбранной кнопке привязки и установить соответствующие параметры. Поля ввода координат преобразования (Transform Type-in) также обеспечивают необходимую точность работы. Иногда ввести числовое значение в таком поле на- много проще, чем пытаться повернуть или переместить объект с помощью гизмо преобразования. Такие поля можно использовать для выполнения любого активно- го преобразования. Для этого достаточно перейти к области Transform Type-In в нижней части интерфейса 3ds max или выбрать тип преобразования и щелкнуть правой кнопкой мыши, чтобы открыть всплывающую панель Transform Type-in со- ответствующего преобразования. Ввод координат преобразования может быть вы- полнен как на уровне объекта, так и на уровне подобъектов и точек опоры. Допус- тим, что на стене имеется несколько вершин, которые не находятся в одной плос- кости, поскольку некоторые из них были случайно смещены по оси X. Для исправ- ления этого положения можно выделить одну из вершин, находящихся на месте, перейти к области Transform Type-in, скопировать значение координаты ее поло- жения по оси X, вставить его в поле аналогичной координаты смещенных вершин и нажать клавишу <Enter>. В итоге смещенные вершины окажутся на своих местах. Иногда в процессе моделирования полезными оказываются и моделирующие ограничения, накладываемые на редактируемый многоугольник. Так, если требу- ется переместить геометрическую форму, окружающую силуэт модели, не нару- шая его, для этого достаточно выбрать ограничения из списка Constraints в свит-
Приложение А. Управление проектами 979 ке Edit Geometry перед тем, как перемещать вершины или другие подобъекты. Перемещение вершин можно ограничить поверхностью существующих граней или имеющимися ребрами (рис. А.11) Рис. А.11. Моделирующие огра- ничения, накладываемые на ре- дактируемый многоугольник Материалы и освещение Смоделированные объекты необходимо снабдить материалами и освещением перед тем, как их визуализировать. У многих художников эти этапы работы над проектом не вызывает особого энтузиазма, поскольку для достижения требуемых результатов приходится делать неоднократные попытки методом проб и ошибок. Тем не менее свой труд можно облегчить, если тщательно спланировать данные этапы производства. И в этом случае следует искать пути к сокращению времени на выполнение задания. Производственные операции, будь то L'V-проецирование подготовка материалов или организация освещения, необходимо максимально ра- ционализировать UV-проецирование Как только модели будут подготовлены для текстурирования, для них можно на- значить координаты проецирования, чтобы правильно выровнять текстуры на по- верхностях этих объектов. Для того чтобы снабдить подобной информацией отно- сительно простую геометрическую форму, обычно достаточно модификатора UVW Мар. Этот модификатор предоставляет ряд простых элементов управления, опре- деляющих порядок проецирования текстурных карт на геомеiрическую форму. Сих помощью можно, в частности, организовать выравнивание или мозаичное расположение текстуры, чтобы она накладывалась па объект так, как нужно. Для более точного управления координатами проецирования UV служит мо- дификатор Unwrap UVW. Помимо специальных инструментов проецирования, этот модификатор поддерживает сохранение координат проецирования в от- дельном файле. Это может быть очень удобно, если изменения координат про-
980 Приложение А. Управление проектами ецирования для объекта в одной сцене необходимо повторить для того же самого (невидоизмененного) объекта в другой сцене. Всякий раз, когда назначаются координаты проецирования UV, необходимо принять меры к тому, чтобы исключить несоответствия в наложении текстуры на объект. Так, во избежание растягивания текстуры при назначении координат проецирования на объект рекомендуется накладывать клетчатый или иной ха- рактерный рисунок. Этот рисунок служит удобным визуальным ориентиром, по которому' можно судить об искажениях текстуры, возникающих при назначении координат проецирования (рис. А. 12). Рис. А.12. Искажение накладываемой текстуры Существуют два общих метода текстурирования. Первый метод состоит в том, чтобы сначала создать текстуру, а затем выровнять координаты ее проецирова- ния по имеющемуся изображению текстуры. Этого обычно оказывается доста- точно, если в качестве текстуры служит фотография. Другой метод состоит в том, чтобы сначала назначить координаты проецирования, а затем экспортировать их в качестве образцового изображения текстуры. Для этой цели следует открыть окно Edit UVWs модификатора Unwrap UVW и нажать клавишу <Piini Scm> или же воспользоваться функцией Render То Texture. Как только будет получено об- разцовое изображение с UV-проекцией текстуры, поверх него можно раскрасить рисунок или скомпоновать из фотографии изображение текстуры. Оба метода текстурирования в равной степени пригодны для работы над проектом, хотя вто- рой из них чаще всего применяется для текстурирования персонажей. Редактор материалов В какой-то степени редактор материалов выполняет функции палитры худож- ника. Отдельные позиции образцов в этом редакторе можно использовать для экспериментирования с разными типами материалов и оттенителей, не приме- няя их в сцене. Для настройки подходящего материала достаточно перетащи ь его копию на новую позицию образца, а затем внести в него любые коррективы.
Приложение А. Управление проектами 981 Как упоминалось выше, материалам и связанным с ними картам следует при- сваивать подходящие описательные имена, чтобы впоследствии их легче было выбрать на сцене. Ведь если материал находится в редакторе материалов, это от- нюдь не означает, что он присутствует и на сцене, и наоборот. Если в редакторе материалов нельзя найти материал для последующей правки, его можно получить непосредственно со сцены. Для этого щелкните сначала на кнопке Pick Material from Object (Выбрать материал из объекта) с пиктограммой пипетки в редакторе материалов, а затем на объекте, для которого назначен ис- комый материал. Если сцена очень сложная, выбрать в ней объект с нужным ма- териалом будет не так-то просто. В таком случае материал лучше выбрать из окна Material/Map Browser (рис. А.13). . - X & Material/Map Browser Browse From: —* C MtlLbrary C Mtl Editor C Active Slot C Selected # Scene C New I Show - P Materials I P Maps Г* Incompatible! None * 9 X i_______________________________________ 0 Fern_Bifl (Standard) [Box05 S Diffuse Color Fern (Vegetaton_FefrA.tsaJ О Pine Leaves (Standard) [BoxOS] fS Diffuse Color: Pna|.eaves (Trea_Leaves_Pina tga) T Rocks (Standard) [Bok08| £? Diffuse Color: Granite (Rock_Granke.tga) -Ш Bump: Granite (Rock_Granite.tga) 0Trea_Bark_Pina_Dark (Standard) [Box07] -^DiffuseColor: DarkPine(Tree_Bark_Pine_Dark.tga Ш Bump: PineBarkBump |'Tree_Bark_P'ne DarkBump tg П Raw Only Рис. А.13. Выбор материала co сцены в окне Mate- rial/Map Browser для последующей правки Правильное именование материалов и карт помогает не запутаться в редакто- ре материалов. Если в материале применяются многочисленные карты и подкар- ты, то можно легко запутаться в уровнях его иерархии. Этого можно избежать, если присвоить картам подходящие описательные имена либо воспользоваться навигатором по материалам и картам (Material/Map Navigator). С помощью этого окна в виде всплывающей панели можно четко отобразить иерархический вид материала, с которым приходится работать в текущий момент. А для перехода к другой карте или на корневой уровень материала достаточно щелкнуть на име- ни требуемого уровня в данном навигаторе (рис. А. 14). Для того чтобы сохранить материалы с целью их последующего применения, достаточно выделить нужный материал и выбрать кнопку Put to Library (Поместить в библиотеку) в редакторе материалов. Выбранный .материал сохраняется в биб- лиотеке материалов. Если этот материал понадобится впоследствии, его можно вы- брать в окне Material/Map Browser, предварительно щелкнув на кнопке-переклю- чателе Mtl Library из области Browse From. Кроме того, в окне Material/Map Navigator имеются соответствующие средства для сохранения и загрузки специальных биб- лиотек материалов.
982 Приложение А. Управление проектами Diffuse Color LogoMap [Logo (да) £S= ° a____________________________________________ 0LogoShirt (Blend) 0MaterialT ShirtBiack (Standard) Bump: ShirtBump (ShirtBump. tga) a Material 2: Logo {Standard) -£7 Diffuse Color1 LogoMap (Logo.tga) i-£7 Specular Color- SparkleColor (ShineCokwSparkk L £? Specular Level: SpeckleShine {Speckle) Color 2 SparkleLogo {Shin-Intensity tga) {3 Mask: LogoMask (LogoMask tga]| Рис. A. 14. Навигатор материалов и карт Источники света Если приходится иметь дело с многочисленными источниками света, необходимо упростить организацию освещения с помощью этих источников. Прежде всего, ре- комендуется получить экземпляры однотипных источников света, чтобы упростить их настройку, корректир я параметры только одного источника света данного типа. Кроме того, с помощью команды Tools^Light Lister из главного меню можно открыть диалоговое окно Light Lister (Перечень источников света), из которого можно управ- лять наиболее важными параметрами источников света, находящихся на сцене. Под- робнее об этом диалоговом окне см. часть V этой книги, посвященной освещению. При организации освещения следует иметь в виду, что затенение отнюдь не все- гда точно отображается в видовых окнах 3ds max. Следовательно, вместо того что- бы постоянно щелкать на кнопке Quick Render, щелкните и не отпускайте эту кноп- ку до тех пор, пока не появится всплывающая панель, из которой следует выбрать средство визуализации с активным затенением (ActiveShade). Это средство визуали- зации автоматически обновляет визуализируемое изображение чернового качества всякий раз, когда вносятся изменения в источники света и материалы. Если имеется удобная осветительная оснастка, подходящая для других сцен, вы- делите ее и выберите из главного меню команд}' File^Save Selected. Сохраненную таким образом осветительную оснастку можно впоследствии использовать в других сценах. Благодаря данной команде сохраняются любые объекты, выделенные на сцене, в том числе каркасы вспомогательные объекты и системы частиц.
Приложение А. Управление проектами 983 Анимация Что касается анимации, то рекомендуется освоить как можно больше ее мето- дов, чтобы сохранить удобство манипулирования сценами. Как правило, для вы- полнения этого задания требуется специальный художник-аниматор, занимаю- щийся исключительно расстановкой и правкой ключевых кадров. Это трудная, но в то ж время интересная работа, если, конечно, пользоваться подходящими инст- рументами, не нарушая сроки выполнения проекта. Расстановка и правка ключевых кадров Установка ключевых кадров выполняется в активном режиме Auto Key или Set Key. Выбор одного из этих режимов зависит от вида анимации и личных пред- почтений самого аниматора. После того как ключевые кадры будут установлены, их можно быстро поправить, щелкнув правой кнопкой мыши на полосе трека (т.е. временной шкале анимации) или же на панели Motion. Так или иначе доступными становятся основные режимы интерполяции ио ключевым кадрам. Для более точного управления анимацией служит миниатюрный редактор кривых (Mini Curve Editor), обеспечивающий быстрый доступ к функциональным кривым анимации. Если этого недостаточно, то можно о ткрыть полноценный редактор кри- вых в окне Тrack View. Э то наиболее подходящее место для точной настройки значе- ний параметров в ключевых кадрах, а также в промежутках между ними. В меню редактора кривых имеется особенно полезная команда Reduce Keys (Сократить число ключевых кадров). Зачастую в импортируемой анимации, а также в анимации, формируемой в модуле reactor, па каждый кадр анимации приходится отдельный ключевой кадр. В таком виде анимация не подлежит правке. Для того чтобы преобразовать ее в удобную для правки форму, выделите все ненужные клю- чевые кадры в редакторе кривых и выберите команду' Reduce Keys. При этом не- нужные кадры удаляются и общее число ключевых кадров в анимации существенно сокращается, благодаря чему намного упрощается ее правка (рис. А. 15). Рис. А.15. Сокращение числа ключевых кадров Правка общей продолжительности анимации осуществляется в режиме подго- товительной таблицы (Dope Sheet) окна Track View Как и в редакторе кривых, ключевые кадры анимации могут быть разделены по отдельным трекам коорди- нат X, Y и Z, что намного упрощает их правку по сравнению с полосой трека. В режиме подготовительной таблицы окна Тrack View можно изменить продол- жительность анимации чтобы замедлить или, наоборот, ускорить ее а также пе- реместить целый диапазон кадров анимации к другому моменту' времени.
984 Приложение А. Управление проектами Кости, снаряжение и взвешивание При построении скелета персонажа из костей необходимо соблюдать осто- рожность, чтобы не выделить случайно каркас персонажа, перемещая кости на место. Для этой цели удобно пользоваться режимом See-Through, активизируе- мым с помощью комбинации клавиш <Alt+X>. В этом режиме кости видны внутри каркаса персонажа, отображаемого с затенением. Остается лишь зафиксировать каркас по соответствующей команде из квадратного меню и затем приступить к работе с костями, не беспокоясь о случайном выделении каркаса (рис. А.16). - Display Properties----------- Р* See-Through Г” DisplayasBox Freeze Selection , Unh deb’ Name Unhide Al Hide Unselected Hide Selection Рис. A. 16. Фиксация каркаса персонажа и активизация режима See- Through для удобства правки его костей Иногда аниматоры персонажей начинают работу с подстановочной модели, имеющей низкое разрешение, задолго до завершения самой модели персонажа. В таком случае сведения о взвешивании для модели персонажа с высоким разре- шением извлекаются с помощью модификатора Skin W rap. На первый взгляд, это не самое лучшее решение, однако оно может послужить неплохим началом для дальнейшей правки кожного покрова персонажа. Аниматоры нередко пользуются также подстановочными объектами с низким раз- решением для ускорения реакции 3ds max и обновления изображения. Как правило, модели с низким разрешением заменяются впоследствии моделями с высоким разре- шением посредством поверхностей подразделения — типичного метода моделирова- ния персонажей. Таким образом, сначала следует построить модель персонажа с ма- лым числом многоугольников и без сглаживания, снарядить и снабдить ее кожным покровом, оживить, а затем ввести модификатор MeshSmooth или TurboSmooth на
Приложение А. Управление проектами 985 вершине стека ее модификаторов, чтобы округлить геометрическую форму модели и уточнить детали ее конструкции. Все это можно сделать до визуализации, благодаря чему упрощается работа со сценой вплоть до окончательного вывода. Повторное использование анимации По завершении снаряжения персонажа с помощью системы кос гей и цепочек инверсной кинематики (ИК) це ^сообразно установить узел персонажа. Такой узел дает возможность устанавливать персонаж в стандартные позы, легко перемещать весь его скелет, а также сохранять и загружать отдельные фрагменты его анимации. Принцип повторного использования анимации наиболее более полно вопло- щен в модуле character studio и, в особенности, в двуногом объекте (Biped). По- мимо сохранения и загрузки анимации разных двуногих объектов, в character stu- dio имеется также возможность заново использовать фрагменты анимации в ре- жиме Motion Mixer (Смеситель движений). Из нескольких фрагментов анимации можно составить один более продолжительный фрагмент либо использовать от- дельные фрагменты анимации различных частей тела персонажа. Более подроб- но модуль character studio рассматривается в главе 15. Если в проекте требуется весьма реалистичная анимация персонажей, а сроки поджимают, в таком случае можно воспользоваться двуногим объектом вместе сданными фиксации движения. Фиксация движения означает решстрацию движе- ния настоящего человека и наделение этим движением трехмерного персонажа. В частности, фиксация движения является основным элементом анимации спор- тивных игр, цифровых дублеров и других проектов, где нужно особое исполнение, па анимацию которого обычным способом по ключевым кадрам требуется намного больше времени. Двуногий объект позволяет импортировать данные фиксации движения непосредственно из файла, хотя они, как правило, требуют дополни- тельной коррекции на соответствие конкретному персонажу и сцене. Тем не менее фиксация движения позволяет быстро по 1учить немало материала для анимации. Визуализация На этапе визуализации следует рассмотреть несколько вариантов повышения производительности. Прежде всего необходимо найти ответы на следующие во- просы: будет ли визуализированный материал компоноваться? Если да, то какие форматы файлов лучше всего для этого подойдут? Сколько времени потребуется для визуализации? Есть ли способы ускорить визуализацию? Имеется ли возмож- ность для визуализации на месте производства или же придется обращаться к сто- ронней организации, предоставляющей услуги визуализации? Визуализация в файлы разного типа Перед визуализацией проекта необходимо выяснить тип файла вывода. Если это предварительная, быстрая визуализация, то ее, скорее всего, придется выво- дить в таком формате фильма, как . avi или .mov. Следует также выбрать наибо- лее подходящий тип кодека. Главное— выбрать тот формат файла, в котором клиент может его посмотреть.
986 Приложение А. Управление проектами Вывод анимации в формате фильма не так прост, как кажется па первый взгляд. Большинство кодеков сжимают данные с потерями что приводит к неко- торому снижению качества изображения. Если же фильм требует дальнейшей правки, компоновки или монтажа, он будет подвергнут дополнительному сжатию, которое приводит к появлению артефактов и других осложнений. Следовательно, вместо формата фильма для вывода анимации из 3ds max лучше всего использовать ряд последовательно пронумерованных высококачественных неподвижных изображений например в формате . tga (Taiga). Эту последователь- ность пронумерованных изображений можно импортировать в большинство при- ложений компоновки и монтажа, чтобы составить из нее фильм. Такой формат вы- вода упрощает также остановку или перезапуск процесса визуализации, что было бы намного труднее сделать при выводе в формате фильма. А в последовательном ряде неподвижных изображений каждый кадр пронумерован поэтому визуализа- цию можно без труда продолжить с того места, где опа была остановлена. Если применяется приложение компоновки, способное воспринимать инфор- мацию о трехмерной сцепе, в этом случае следует попытаться вывести сцепу в фор- мате, способном переносить такую информацию. Так, форматы . ria и .rpf пере- носят информацию о трехмерной сцене, в том числе Z-глубину, данные об объектах и спецэффектах. А в отсутствие программы компоновки, способной воспринимать подобную информацию, приходится выбирать такой формат вывода, как . tga. По мере необходимости изображения формата Taiga могут быть составлены в фильм в окне Video Post. Кроме того, их можно откорректировать по цвету и прочим свойствам в режиме пакетной обработки в Photoshop. В крайнем случае, когда от- сутствуют специальные приложения компоновки и монтажа, вместо них можно воспользоваться Photoshop и окном Video Post в 3ds max. Визуализация по элементам Задачу компоновки можно упростить непосредственно в 3ds max, если вос- пользоваться визуализацией по элементам (Render Elements), при которой каж- дый элемент сцепы выводится в отдельный файл изображения. Любой визуали- зированный элемент сцены может быть затем поправлен независимо от осталь- ных ее элементов. Такие элементы располагаются дру! над другом слоями в при- ложении компоновки, где из них компонуется все изображение сцены в целом. Подобная визуализация требует, конечно, больше времени, по в то же время она предоставляет гораздо больше возможностей для управления каждым аспектом визуализации. Если, например, требуется коррекция цвета окраски теней, эту операцию нетрудно проделать с элементом визуализации теней. Такая коррекция не оказывает никакого влияния на цвета остальных элементов визуализации — иначе выглядят лишь гены. Аналогичным образом можно увеличить блеск, цвет рассеяния и поправить прочие элементы сцены. При визуализации сцены по от- дельным элементам для правки каждого из них предоставляются практически идеальные условия (рис. А. 17).
Приложение А. Управление проектами 987 Рис. АЛ 7. Визуализация по элементам Визуализация в текстуру Свойство Render То Texture (Визуализация в текстуру) позволяет сводить ос- вещение сцены, атрибуты материалов и другую информацию подобного рода в текстурную карту. Это общепринятый подход при разработке игр, где освеще- ние сцены сводится в отдельные карты освещения. Подобные текстурные карты содержат только информацию об освещении и определяют уровень яркости объ- ектов в игровом механизме. Такие методы усовершенствованного освещения в 3ds max, как метод излучательности, дают намного более качественные изобра- жения, чем те, которые способны воспроизвести игровые механизмы. С помо- щью этих методов можно добиться наиболее качественного освещения объектов чтобы затем свести информацию об освещении в соответствующую карту, фор- мируемую при визуализации в текстуру. Функция Render То Texture применяется также для сведения сложного мате- риала в единую, быстро загружающуюся текстурную карту. Это может оказаться полезным как для игр, так и для визуализируемых проектов. Допустим, что име- ется объект со сложным материалом. Информация о таком материале, скорее всего, не будет правильно воспринята игровым механизмом. А при визуализации для расчета отдельных свойств данного материала потребуется дополнительное время. Следовательно, материал целесообразно свести в новую карту типа Com- plete (Готовая карта). Такая карта содержит всю информацию о материале в од- ной текстуре, включая цвет, блеск, затенение и прочие свойства материала Ис- ходный материал можно затем заменить вновь полученной картой. Она будет вы- глядеть точно так же, а визуализироваться — намного быстрее. С помощью функции Render То Texture можно формировать и карты нормалей (Normal). Аналогично карте рельефности, карта нормалей дает представление о неровностях поверхности объекта. Но вместо полутонового изображения, ими- тирующего сложную форму поверхности, для формирования карты нормалей ис- пользуется детализированная модель объекта с большим числом многоугольников, после чего эта карта накладывается на упрощенную модель. Для игр это удобный
988 Приложение А. Управление проектами способ получения сложной модели из упрощенной. Если карта нормалей наклады- вается на объект с низкой степенью детализации, этот объект выглядит так, как будто он построен из большого числа многоугольников, хотя на самом деле это не так. Проецирование карты нормалей полезно также и для визуализации. Ведь мо- дель с малым числом многоугольников, на которую наложена карта нормалей, ви- зуализируется намного быстрее, чем модель с высокой степенью детализации, хотя на расстоянии обе модели выглядят практически одинаково (рис. А. 18). Рис. А.18. Визуализация в текстуру Сетевая визуализация Для визуализации крупных проектов целесообразно объединить вычисли- тельные ресурсы всех доступных компьютеров. Это так называемая сетевая ви- зуализация, предназначенная для существенного ускорения вывода проекта. Все доступные в сети вычислительные мощности могут быть использованы для визуа- лизации отдельных кадров анимации. Если одни компьютеры в сети заняты вы- полнением других задач, эстафету' могут подхватить другие компьютеры чтобы продолжить выполнение задания на визуализацию. Еще одно преимущество сетевой визуализации состоит в том, что несколько за- даний на визуализацию можно поставить в очередь, вместо того чтобы выполнять их одно за другим. Так, многие визуализируемые кадры могут обрабатываться в па- кетном режиме. Следовательно, не нужно ждать завершения одного задания на ви- зуализацию, чтобы приступить к выполнению другого. После организации очереди заданий визуализация в сети выполняется автоматически и без вмешательства пользователя. Такой режим может быть организован как для стандартных средств визуализации, так и для визуализации в текстуру.
Приложение А. Управление проектами 989 Адаптация производственного процесса В ходе выполнения каждого проекта неизбежны заминки и повторения зада- ний, которые способны замедлить производство. Следовательно, необходимо свести к минимуму факторы, замедляющие производство, а также поддерживать равномерный характер выполнения проекта. В зависимости от характера решае- мых задач и потребностей всего проекта, возможно, придется откорректировать производственный процесс. В связи с этим необходимо проявлять гибкость и го- товность решать сложные производственные вопросы. Средства подготовки В ходе производства нередко приходится иметь де- ло с импортируемыми объектами. Иногда модели или иные ресурсы должны импортироваться из другого приложения. Всякий раз, когда данные импортируются или экспортируются, существует вероятность их потери в той или иной степени. Это проявляется в таких аспек- тах, как невыровненные точки опоры или необычные результаты преобразования. Кроме того, осложнения могут возникнуть и в том случае, если в 3ds max приме- няются нетрадиционные методы. Если некоторые объекты ведут себя странно, в таком случае рекомендуется произвести в 3ds шах принудитель- ную переоценку их геометрической формы. И сделать это проще всего с помощью утилиты Reset XForm, а затем свернуть стек модификаторов. При этом, как правило, устраняется большинство ошибок преобразования. Если сворачивание стека нежелательно, вместо этого можно перейти к панели Hierarchy, откорректировать положение точки опоры и сбросить преобразования. Это не ради- кальная мера, поскольку стек модификаторов должен ос- таться без изменения Если сама модель содержит ошибки, к ней следует применить модификатор STL Check (Проверка стереоли- тографии). Этот модификатор проверяет такие ошибки моделирования, как разомкнутые ребра и двойные грани. Как только в модели будут найдены ошибочные участки, их можно поправить па уровне подобъектов используемой Рис. А.19. Применение мо- дификатора STL Check системы моделирования (рис. А. 19). Файлы портятся редко, но иногда это все же бывает. Если возникают осложне- ния с файлом исходной сцены, можно объединить объекты из этого файла с повой сценой, чтобы попытаться извлечь их, не затрагивая любые испорченные элемен- ты. Разумеется, во избежание порчи файлов рекомендуется почаще их сохранять.
990 Приложение А. Управление проектами Специальная настройка пользовательского интерфейса В ходе выполнения большинства проектов некоторые операции приходится повторять довольно часто. Так, если команда используется многократно, опера- тивный доступ к пей можно получить из квадратного меню или с помощью кла- виатурного эквивалента. Но если для определенной команды или функции отсут ствует клавиатурный эквивалент, его необходимо назначить во вкладке Keyboard (Клавиатура) диалогового окна Customize User Interface, которое открывается после выбора команды Customizec>Customize User Interface из главного меню Как правило, команды и функции быстрее всего выполняются с помощью комби наций клавиш, поэтому наиболее часто используемые команды необходимо слаб дить соответствующими клавиатурными эквивалентами. Во вкладке Quads диалогового окна Customize User Interface имеется также возможность вводить и удалять команды из квадратных меню, которые очень удобны в качестве контекстно-зависимых элементов интерфейса. Отдельные ко- манды могут быть введены в квадратные меню лишь для выполнения определен- ных заданий. Это избавляет от необходимости запоминать бесчисленное множе- ство комбинаций клавиш для быстрого доступа к часто используемым командам и в то же время дает возможность быстро выбирать их. Пользовательский интерфейс, возможно, придется настроить еще более ра- дикально — все зависит от потребностей конкретного проекта. Так, специально для проекта можно создать панели тех инструментов, доступ к которым обычно затруднен. С другой стороны, можно настроить цветовую схему таким образом, чтобы упростить просмотр объектов. Специально настроенные схемы располо- жения пользовательского интерфейса можно сохранить, если предполагается ис- пользовать их в последующих проектах (рис. А.20). Г* Edl Took Gnxo Wem СМИ Modfwrs CWt» reactor АгйшаЩп GudiEAa» кепзеоод <j -omee Hdp Рис. А.20. Альтернативные схемы расположения пользовательского интерфейса
Приложение А. Управление проектами 991 Сценарии Если приходится иметь дело с особенно трудоемкими заданиями, для их вы- полнения можно прибегнуть к сценариям MAXScript. Многочисленные сценарии свободно доступны в Internet, причем некоторые из них могут идеально подойти для выполнения конкретного задания. Одни сценарии достаточно просты, а дру- гие предоставляют сложные функции, которые могут отсутствовать в базовом па- кете 3ds max. Если в коллективе имеется специалист по написанию сценариев, он сможет дополнить набор инструментов необходимыми для выполнения конкрет- ного задания и проекта в целом. Но даже в отсутствие такого специалиста можно и самому научиться писать сценарии, используя макрорегистратор (Macro Recorder) в сочетании с приемни- ком команд (MAXScript Listener), регистрируя простые команды, чтобы неодно- кратно пользоваться ими впоследствии. Это очень удобно для автоматизации простых и часто повторяющихся операций. Ниже описывается, как написать простейший сценарий. 1. Активизируйте Macro Recorder и MAXScript Listener. 2. Выполните часто повторяющуюся команду. 3. Выделите в приемнике команд исходный текст данной команды и скопи- руйте его в буфер обмена. 4. Выберите из главного меню команду MAXScript1^ New Script и вставьте ско- пированную команду из буфера обмена. Сохраните сценарий. Если теперь понадобится повторить данную команду вы можете выполнить сценарий. Для ускоренного доступа к сценарию можно назначить соответствующую кнопку на папели инструментов. Я лично помещаю кнопки сценариев на новой панели инструментов, которую можно создать в диалоговом окне Customize User Interface. Для того чтобы скопировать сценарий на панель инструментов, открой- те его, выделите весь исходный текст сценария, нажмите клавишу <Ctrl> и пере- тащите его на панель инструментов. При этом па данной панели появится новая кнопка сценария. Щелкнув правой кнопкой мыши на этой кнопке, можно даже изменить ее внешний вид. Несмотря па то что регистрируются не все команды, приведенный выше способ быстрого написания простейших сценариев может оказаться весьма полезным. Даже простой набор команд, выполняемых по сценарию, позволяет сэкономить время. Это особенно справедливо для несложных команд, выполняемых сотни раз. Резюме Всякий проект требует отдельного подхода тем не менее существует ряд осно- вополагающих аспектов производства, распространяющихся на любой проект. Эффективность производства имеет решающее значение для правильного выпол- нения проекта с самого начала Не менее важно обеспечить согласованность дейст- вий, а также выбрать единый способ сохранения и резервного копирования фай- лов. Необходимо также наметить поэтапные цели выполнения проекта и выбрать
992 Приложение А. Управление проектами удобные условные обозначения. Как только будут приняты эти предварительные решения, следует как можно раньше приступить к работе над проектом и принять меры к том}', чтобы все члены коллектива работали с максимальной отдачей. Инструменты должны использоваться эффективно. Для каждого аспекта про- изводства могут потребоваться отдельные инстру тенты, а последовательность операций для выполнения каждого задания следует рационализировать. Худож- ники должны знать, какие именно инструменты имеются в их распоряжении на- ряду с простыми командами и оперативными клавишами для быстрого доступа к функциям в разных местах интерфейса. Возможно, для каждого художника при- дется специально настроить инструменты, чтобы упростить последовательность операций для выполнения порученного ему задания. Это можно сделать с помо- щью сценариев, специальной настройки пользовательского интерфейса или под- ключаемых модулей. По традиции работа над проектом трехмерной анимации разбивается на сле- дующие этапы: моделирование, текстурирование, освещение и т.д. И хотя этого порядка по-прежнему придерживаются, теперь имеется возможность для нелиней- ного порядка выполнения операций. В частности, аниматоры могут приступить к анимации двуногих объектов еще до того, как будут созданы модели персонажей, а художники по свету' могут запяться установкой осветительной оснастки еще до то- го, как будет завершено оформление окружения. Используя внешние ссылки и дру- гие искусные методы, можно постараться как можно раньше включить весь коллек- тив в работу над проектом. Это позволит не только вовлечь больше людей в творче- ский процесс, но и исключить сверхурочную работу' п штурмовщину. В таком случае все члены коллектива будут готовы внести свой посильный вклад в общее дело и ра- ботать продуктивно на протяжении всего проекта.
Приложение Б Снаряжение и анимация персонажей Сержио Мучинъо В этом приложении описываются снаряжение и анимация персонажей. Сна- чала будет подробно изложен процесс создания и применения специального сна- ряжения персонажей: от замысла до воплощения. А затем речь пойдет об анима- ции персонажей. Если у вас нет времени на снаряжение собственных персона- жей, воспользуйтесь модулем character studio, подробно описанным в главе 15. Основная цель этого приложения состоит не в том, чтобы показать весь про- цесс создания завершенного персонажа, а в том, чтобы помочь вам лучше понять, каким образом эго делается, хотя вам все же будет предоставлена возможность создать завершенный персонаж Если знать, как образуется определенный узел или взаимосвязь между узлами, эти знания можно в дальнейшем применить для создания собственных персонажей. Поэтому назначение этого приложения — научить вас мыслить как разработчик снаряжения, вместо того чтобы показы- вать, как снаряжать персонажи. Основы снаряжения Рассмотрим основные понятие, которые вам необходимо как следует усвоить, прежде чем создавать что-либо в 3ds max (это особенно важно, если вы еще не за- нимались снаряжением). Процесс снаряжения персонажа носит ярко выражен- ный технический характер. В действительности на многих студиях, как средних, так и очень больших, этим занимаются отдельные специалисты (разработчики снаряжения, или технические постановщики), поскольку для снаряжения персо- нажей требуются специальные знания, о которых речь пойдет ниже. Однако свободным художникам или художникам, работающим на небольших сту- диях, приходится выполнять самые разные обязанности в процессе создания трех- мерного содержимого, включая и снаряжение персонажей. В этой ситуации худож-
994 Приложение Б. Снаряжение и анимация персонажей пик становится мастером на все руки (именно таким образом я и занялся снаряжени- ем). Основное преимущество тех, кто оказывается в таком положении, заключается в том что они расширяют свои представления о процессе производства трехмерной анимационной продукции. Примером тому может служить моделирование персона- жей. Некоторые не отдают себе отчета в том, что моделирование персонажа включа- ет в себя создание не только привлекательной, по и правильно деформирующейся модели! Если модель персонажа создается без учета деформаций, в процессе ею сна- ряжения выявляется много трудных участков модели и недостатков се деформации. Безусловно, в 3ds max можно вернуться к моделированию, однако это непроизводи- тельно и ведет к значительной потере времени и средств. Допустим, что модель создана с учетом ее деформации во время анимации. То гда можно приступа ть к ее снаряжению. Снаряжение персонажа сродни созданию марионетки (называемой в дальнейшем куклой, как это принято в данной отрас- ли). В большинстве приложений трехмерной анимации, включая и 3ds шах, сна- ряжение основано на этом понятии. В 3ds max имеется солидный набор инстру- ментов, которые помогают создавать снаряжение любого типа: от самого элемен- тарного до сложного снаряжения, носящего полностью процедурный характер. Понятие куклы основано на том, как опа создана. Это сочлененная из отдель- ных частей кукла па ниточках, с помощью которых ее конечности соединяются с палочками. Кукольники двигают палочками, а те, в свою очередь, натягиваются и приводят в движение куклу. Они создают движение куклы косвенным образом, манипулируя внешними объектами. Это дает кукольникам возможность органи- зовать сложные движения кукол, прилагая минимум усилий. Если бы кукольники передвигали сами конечности куклы, им бы пришлось немало потрудиться для того, чтобы поставить куклу прямо. Такая же система косвенного управления применяется и в снаряжении персо- нажей. Ее преимущества аналогичны: применение простых, по весьма эффектив- ных элементов пользовательского интерфейса. В частности, аналогами палочек, управляющих куклой, в данном случае являются элементы пользовательского ин- терфейса передвигающие виртуальную куклу. А в качестве ниточек служат дина- мические элементы, приводящие куклу' в движение по командам от элементов пользовательского интерфейса (палочек). При разработке и создании снаряжения персонажа используется тот же прин- цип. Для непосредственного вращения конечностей персонажа редко приходит- ся манипулировать непосредственно ими. Вместо этого создастся пользователь- ский интерфейс снаряжения, обеспечивающий довольно сложные виды поведе- ния, превращающиеся в движения персонажа. В этом смысле пользователю 3ds шах приходится выполнять функции цифрового кукольника. А теперь самое время сформулировать следующее золотое правило: хорошее снаряжение персонажа предоставляет в распоряжение аниматора эффективный и в то же время простой и понятный пользовательский интерфейс, способный обеспечить самые разные виды движения. Этого правила следует придерживаться на про тяжении всего процесса снаря- жения. Далее речь пойдет о различных элементах, необходимых для создания прав- доподобного персонажа.
Приложение Б. Снаряжение и анимация персонажей 995 Кости Снаряжение состоит из элементов разного уровня. Каждый уровень выполня- ет конкретную функцию. Он оказывает влияние на нижележащие уровни и в то же время подвержен влиянию вышележащих уровней. Самый нижний уровень снаряжения состоит из объектов костей. Эти объекты непосредственно деформируют персонаж и выполняют функцию внутреннего скелета персонажа. Расположение костей, как правило, очень похоже на строе- ние скелета воссоздаваемого существа. Так, если создается персонаж гуманоида, его скелет должен быть похож па человеческий, поскольку его движения должны воспроизводить движения настоящего существа. И лучшего образца для тако» о строения скелета персонажа, чем в природе, просто не найти Разработать можно практически любое строение костей, предварительно изу- чив внутреннее строение существа, воссоздаваемого в цифровой среде. Даже са- мый необычный пришелец всегда похож на какие то настоящие существа или их сочетание. Это вероятно, связано с тем, что человек не в состоянии воссоздать принципиально другие типы существ, он способен лишь преобразить известные ему типы. Впрочем, это уже совершенно другая тема, связанная с философскими аспектами трехмерной анимации, поэтому не будем глубоко в нее вдаваться. Выше основного скелета обычно находится другой уровень костей, выпол- няющих особые функции. Некоторые из этих косгей можно использовать для специальных деформаций или даже для создания очень сложного, усовершенст- вованного механизма управления процедурной анимацией. Работая на втором уровне костей, не забывайте о приведенном выше золотом правиле — сохранять простым пользовательский интерфейс! В 3ds max любой объект может быть превращен в кость. Следовательно, в качест- ве кос гн можно использовать любой геометрический или пегсометрический объ- ект. Однако в 3ds max предоставляется объект Bone, специально предназначенный в качестве кости и обладающий преимуществом автоматического построения ие- рархии косгей. Именно такие объекты чаще всего используются для создания сис- темы костей персонажа. Но если они не подходят для конкретного снаряжения вместо них в качестве кости можно использовать любой другой объект. Контроллеры и пользовательским интерфейс Непосредственно над строением скелета персонажа находятся контроллеры. B3ds max контроллеры представляют собой небольшие программы, которые осуще- ствляют движения, в том числе и движения персонажа. Речь о них пойдет несколько ниже, а пока что можно рассматривать контроллеры в качестве ниточек куклы. Выше уровня контроллеров находятся управляющие объекты, образующие верхний уровень снаряжения. Они составляют видимый интерфейс, которым манипулирует пользователь, чтобы привести персонаж в движение. Управляю- щие объекты соответствуют ручным органам управления, с помощью которых ку- кольники двигают ниточками. Хорошо продуманное снаряжение должно обла- дать достаточной гибкостью, чтобы допускать самые разные виды движения, и в то же время оно должно быть достаточно надежным, чтобы противостоять без- жалостному' обращению с ним со стороны аниматора (в самом деле, аниматоры время о г времени приводят снаряжение в полную негодность). Чем сложнее сна-
996 Приложение Б. Снаряжение и анимация персонажей ряжение, тем больше требуется управляющих объектов. Иногда это просто неиз- бежно (вопреки упоминавшемуся выше золотому правилу). Но задача разработ- чика снаряжения в том и состоит, чтобы упростить до предела эти элементы управления, а значит, сделать так, чтобы аниматоры могли работать со снаряже- нием персонажей быстро и эффективно, извлекая из него максимальную пользу. Иногда снаряжение не в состоянии обеспечить определенные виды движения. Та- кое случается даже на больших студнях, где снаряжением занимаются отдельные спе- циалисты. В подобных случаях приходится нарушать один или два верхних уровня снаряжения и перестраивать их с учетом требуемых особых видов движения. Но если снаряжение не позволяет решать некоторые задачи анимации, то это еще не означа- ет, что ею замысел неверен. Даже тело человека ограничено в движениях, тогда как аниматоры могут придумать такие движения, которые человек не способен совер- шить. Поэтому необходимо стремиться создавать как можно более гибкое снаряже- ние, сохраняя аккуратный, простой и ясный пользовательский интерфейс. Деформации Как только будет получен рабочий вариант снаряжения, необходимо добиться то- го, чтобы оно приводило в движение модель персонажа. Как правило, эго делается с помощью процесса, называемого формированием кожного покрова. (Создатели игр иначе трактуют этот термин: в играх формирование кожного покрова обычно подра- зумевает раскраску текстур для конкретной модели персонажа.) В ходе эт ого процесса внутри модели для некоторых костей назначаются участки деформации. Э го означа- ет, что кость будет деформировать определенную часть модели персонажа. Процесс деформации модели происходит совсем иначе, чем у человеческого тела (или другого существа). В человеческом теле мозг посылает по нервной системе электрические импульсы для приведения мускулов в движение. Когда мускулы сокращаются или рас- тягиваются, они передвигают кость, к которой присоединены. В цифровых персона- жах все происходит наоборот при перемещении элементов управления внутри пер- сонажа передвигаются кости, которые деформирую т каркас, имитируя деформации, обусловленные передвижением мускулов. Недостаток такого подхода состоит в том, что деформации мускулов можно ими- тировать только до определенной степени, если при этом нс используется система, основанная па деформации мускулов. Наилучших результатов можно добиться благо- даря аккуратному' моделированию каркаса и тщательному назначению деформаций. Иногда для имитации таких движений мускулов требуются специальные кост и. Анимация Несмотря на то что обучение анимации персонажей выходит за рамки данного приложения (это отдельный вид искусства в области создания трехмерного со- держимого), рассмотрим некоторые инструменты и методы, которые могут ока- заться полезными в процессе анимации. Для одних анимация персонажей — не- вероятно трудная задача, другим же опа напоминает приятную прогулку по парку. Но одно остается неизменным- удачное снаряжение обеспечивает плавность про- текания процесса анимации, а неудачное снаряжение постоянно мешает анима- тору, которому, помимо этого, приходится еще устранять всевозможные ошибки и недостатки самой анимации. Снаряжение, которое будет создано ниже, допус-
Приложение Б. Снаряжение и анимация персонажей 997 кает краткую процедуру проверки. Это дает ясное представление о том, как ре- шения, принимаемые в процессе снаряжения, оказывают влияние на процесс анимации, а также на эффективность самого снаряжения. Ниже не будут детально описываться основные операции в 3ds max, поскольку' вы уже должны быть с ними знакомы. Вместо этого подробно рассматриваются вновь вводимые понятия и общие принципы, имеющие отношение к снаряжению. Иерархии и кинематика Итак, рассмотрим более подробно такие понятия снаряжения, как иерархии, прямая кинематика и инверсная кинематика (ИК). Иерархия — это цепочка объектов, хотя ее можно рассматривать и как семейство объектов, в котором порожденные объекты (потомки) связаны с родительским объектом (родителем), а этот родительский объект, в свою очередь, связан со сво- им родителем и т.д. При создании иерархии необходимо помнить о следующем. • У объекта может быть много порожденных объектов. • У объекта может быть лишь один родительский объект. Рассмотрим стандартную иерархию, состоящую из объектов костей (рис. Б.1). Как и в семье, в иерархии имеются определенные правила поведения ее членов. Эти правила распространяются в основном па преобразования. Однако правила могут меняться в зависимости от выбранного способа работы с иерархией. Рис. Б.1. Иерархия объектов костей
998 Приложение Б. Снаряжение и анимация персонажей Прямая кинематика В прямой кинематике преобразования передаются вниз по иерархии. Следова- тельно, что бы ни делал родительский объект, то же самое будет делать и порож- денный объект. Это так называемое наследование преобразований. Порожден- ные объекты будут перемещаться, вращаться или изменять свой масштаб не по причине их анимации или даже манипулирования ими, а потому, что они насле- дуют преобразования своего родительского объекта. На рис. Б.2 показано, что происходит с преобразованиями, передаваемыми от самого верхнего в иерархии родительского объекта. Рис. Б.2. Преобразование родительской кости Для того чтобы начать работать с прямой кинематикой, достаточно иметь иерархию объектов. Выделите объект, который требуется преобразовать, а затем выберите инструмент преобразования (Move/Rotate/Scale).
Приложение Б. Снаряжение и анимация персонажей 999 Инверсная кинематика Прямая кинематика является типичным методом манипулирования иерар- хиями. Она представляет собой быстрый и простой способ работы с персонажа- ми. Достаточно взять каждую кость или конечность и установить ее в нужное по- ложение, используя хорошо вам известные инструменты преобразования (как правило, Rotate). Но иногда прямая кинематика не действует. Представьте себе персонаж, опи- рающийся одной рукой о стену (рис Б.З). Рис. Б.З. Пример персонажа, опирающегося о стену Допустим, что этот персонаж поддерживает приятный разговор с другим пер- сонажем. Для показа его эмоций требуется повернуть его торс. Но если осущест- вить анимацию данного персонажа лишь с помощью прямой кинематики, в таком случае возможны серьезные осложнения. Всякий раз, когда перемещается торс, рука, опирающаяся о стену, отделяется от стены либо проникает сквозь нее. Прямая кинематика вынуждает корректировать положение руки всякий раз, ко- гда персонаж двигается (пусть и незначительно). В этом случае приходится тща- тельно настраивать каждое его движение Можете себе представить, насколько нескладным получается такое движение. Именно здесь и приходит на помощь инверсная кинематика, которая действу- ет иначе, чем прямая кинематика. Она позволяет преобразовать порожденный
1000 Приложение Б. Снаряжение и анимация персонажей объект и распространить преобразования вверх по цепочке объектов (вплоть до вершины иерархии). Для этого необходимо создать цепочку ИК, управляющую движением цепочки объектов с помощью некоторого вспомогательного объекта, а также начального и конечного объектов в цепочке. Начальный объект опреде- ляет место, где оканчивается действие вращения под управлением цепочки ИК (напомним, что преобразования переносятся вверх по иерархии). А конечный объект определяет место, где начинается вращение. В итоге появляется возможность управлять вращением родительского объекта в зависимости от положения порожденного объекта. Фактически перемещается не сам порожденный объект, а вспомогательный объект, присутствующий в це- почке ИК и называемый целью ИК. (В других приложениях трехмерной анима- ции цель ИК может называться исполнительным органом (End Effector), однако в 3ds max исполнительный орган — это еще один объект, принадлежащий цепочке ИК, и его вообще нс следует трогать.) Манипулирование цепочками ИК осущест- вляется с помощью нескольких вспомогательных объектов или параметров, ко- торые будут рассмотрены несколько ниже. Одно из основных преимуществ применения цепочек ИК состоит в том, что цель ИК — это объект, отделенный от иерархии в цепочке костей А поскольку' она не зависит от цепочки костей, то при перемещении последней цель ИК оста- ется на месте. В примере персонажа, опирающегося рукой о стену, это дает воз- можность привязать кисть руки к стене и оставить ее в этом положении. Незави- симо от того, насколько перемещается торс, кисть руки будет всегда оставаться на месте. Таким образом, решается проблема, с которой очень сложно справиться с помощью прямой кинематики. Еще одно значительное преимущество ИК состоит в том, что она превращает персонаж в виртуальную куклу, поскольку’ в данном случае манипулировать при- ходится не костями, а целями ИК (аналогично органам ручного управления кук- лой), лишь вытягивая или выталкивая конечности. Благодаря этому анимация персонажа приобретает более интуитивный характер В некоторых видах снаря- жения прямая и инверсная кинематика используется в определенном сочетании (подробнее об этом речь пойдет несколько ниже). В целом цепочки ИК обеспе- чивают новый уровень управления, упрощая процесс анимации. Принципы разработки снаряжения Сложное снаряжение — это весьма тонкий механизм, подобный часовому. Если в нем что-то работает неверно, это обстоятельство может оказывать влияние па ос- тальные детали механизма. На поиск и устранение неисправное гей в столь топком механизме .может потребоваться не один час, поэтому начинать следует с работо- способного замысла снаряжения еще па стадии разработки персонажа. На рис. Б.4 представлен персонаж Боевой Монах (Fighting Monk). Как видите, это обычный гуманоид. Для правильной разработки его снаряжения необходимо поставить перед собой следующие вопросы.
Приложение Б. Снаряжение и анимация персонажей 1001 Рис. Б.4. Боевой монах Каково строение костей персонажа? Внимательно присмотритесь к телу любого персонажа, для которого создается снаряжение, и найдите в реаль- ном мире образец для строения его костей. Найти образец гуманоида не- трудно — достаточно посмотреть анатомические атласы в Web или пробре- сти их в книжном магазине. Если же приходится снаряжать необычное инопланетное существо, оно, скорее всего, будет напоминать какое-то жи- вотное или иное уже известное существо, например паука, лошадь, кальма- ра, ящерицу или же определенное их сочетание. После того как вы найдете наиболее подходящий образец для своего персонажа, внимательно изучите строение его костей, чтобы снаряжение соответствовало такому с гроению. Каковы индивидуальные черты персонажа? Возможно, этот вопрос в боль- шей степени относится к сценаристам, однако он не менее важен и для раз- рабатываемого снаряжения. Индивидуальные черты персонажа определя- ют характер его движений, а последний — тип снаряжения. Немало инфор- мации об индивидуальных чертах персонажа можно почерпнуть из сцена- рия и раскадровки. Если персонаж будет сниматься только средним планом, то нужно ли вообще снаряжение его стоп? Если он будет только бежать, то зачем создавать сложное снаряжение для гимнастических упражнений? В тех проектах, где ничего подобного неизвестно, глядя на лист персонажа, можно попробовать мысленно представить, что он будет делать. Если пер- сонаж описан как пассивный, медлительный и вялый, то он вряд ли будет ехать на велосипеде. Тем пе менее снаряжение такого персонажа должно допускать самые разные виды вялых, ленивых и медленных движений. Лишь в особых случаях снаряжение персонажа может быть видоизменено или полностью переделано лишь для одного кадра съемки.
1002 Приложение Б. Снаряжение и анимация персонажей • Кто будет осуществлять анимацию персонажа? Это крайне важный вопрос. Если, скажем, анимацией персонажа будете заниматься именно вы, то снаря- дите его так, как вам это удобно. Но если этим будут заниматься другие ани- маторы, рекомендуется сначала встретиться с ними. Выясните, какое снаря- жение им требуется и какими элементами управления им удобнее пользо- ваться. Выслушайте их пожелания. Ведь в конечном счете вы работаете для них. В любом случае вам, скорее всего, придется изменить для них лишь пользовательский интерфейс, а внутренний механизм работы снаряжения останется тем же самым. Сделайте заметки и спросите себя откровенно: воз- можно ли осуществить то, о чем они просят? Ответ на этот вопрос зависит от вашей квалификации разработчика снаряжения персонажей. Выясните, где можно уступить аниматорам и где им придется мириться с тем, чт о вы смо- жете обеспечить в снаряжении. Разумеется, определенные элементы снаря- жения можно делать по-своему, по только не за счет дополнительного време- ни, которое придется потратить па анимацию персонажа. Ответив на эти вопросы, вы сможете ясно представить себе, каким образом должен протекать процесс снаряжения. Теперь вам известно, что нужно для сна- ряжения персонажа, какие инструменты следует использовать, а возможно, и сколько времени для этого потребуется. Только не спешите садиться за компь- ютер, не ответив на приведенные выше вопросы (если вы, конечно, не сума- сшедший или один из тех авторитетов в области снаряжения персонажей, кото- рые работают едва ли не вслепую). Нет ничего приятнее ложиться спать с созна- нием того, что в снаряжении учтена каждая мелочь. Ваши усилия будут по досто- инству оценены непосредственным и вышестоящим начальством. Снаряжение, повышающее производительность труда Теперь рассмотрим сам процесс снаряжения оживляемого трехмерного пер- сонажа. При всякой возможности разработчик снаряжения стреми 1ся повысить производительность труда аниматора, поскольку именно в этом и состоит конеч- ная цель создания снаряжения. При организации процесса снаряжения па больших студиях приходится учи- тывать то обстоятельство, что ради экономии времени и средств художники за- частую работают параллельно. Если один художник делает что-то одно, то ос- тальные художники делают что-то другое, связанное с первым, и в конечном ито- ге все это должно быть согласованно объединено в единое целое. Так, разработ- чик модели может начать работу с модели, имеющей низкое разрешение, а затем заменить ее моделью, имеющей высокое разрешение. По завершении снаряже- ния аниматор может приступить к работе над кадрами анимации, пользуясь еще подстановочной моделью с низким разрешением. Следовательно, разработчику снаряжения приходится принимать во внимание многие производственные фак- торы, включая и необходимость предусмотреть любые изменения, которые могут быть внесены в модель. Так, если система кожного покрова зависит от числа вер- шин, то поменять модели местами впоследствии будет не так-то просто. С учетом этих особенностей производства и следует планировать процесс снаряжения.
Приложение Б. Снаряжение и анимация персонажей 1003 Кроме того, у персонажа может быть два вида снаряжения: одно из них называ- ется анимационным снаряжением. Это относительно простое снаряжении, предна- значенное для того, чтобы аниматор лишь устанавливал персонаж в определенные позы и перемещал его. Такое снаряжение содержит i олько элементы управления, необходимые для организации убедительных движений персонажа. Второй вид снаряжения, называемый полным снаряжением, содержит все процедурные эле- менты управления, специальные кости, деформаторы и мускулы. Оба указанных вида снаряжения мирно сосуществуют в одном персонаже, хотя и имеют разное на- значение. Возьмем для примера невидимый персонаж из фильма “Пустой человек” (Hollow Man). Эго очень сложный персонаж. Разработчик включил в снаряжение этого персонажа даже те элементы, которые не касаются непосредственно самого снаряжения, например перекачиваемую кровь, только ради того, чтобы аниматор имел к ним доступ. А поскольку персонаж был отчасти невидимым и зрители мог- ли видеть внутреннее строение кровеносных сосудов, внутри них нужно было что-то поместить, поскольку у аниматора могла возникнуть потребность в анима- ции тока крови в зависимости о того, насколько интенсивно двигался персонаж. Осуществить анимацию параметра фазы материала крови было бы трудно, даже если бы у аниматора и был доступ к этому параметру. Поэтому разработчику' сна- ряжения пришлось ввести ползунковый регулятор биения сердца, чтобы управ- лять параметром фазы материала крови и даже изменять биение сердца для ими- тации показателя обмена веществ. Аниматор будет очень доволен, если предоставить ему единственный элемент управления (анимационное снаряжение) большей частью анимации. В итоге эко- номятся время и средства, а разработчик снаряжения получает повышение по службе и остается востребованным на студии. Снаряжение по уровням Принцип снаряжения по уровням может показаться вам новым. Но если вам уже приходилось снаряжать персонажи, вы, скорее всего, пользовались уровня- ми, возможно, даже не подозревая об этом, поскольку снаряжение по уровням оз- начает создание узлов, воздействующих па персонаж на разных уровнях. Такой принцип снаряжения может показаться пе совсем попятным, однако после про- чтения этого раздела вы, как можно надеяться, научитесь мыслить категориями уровней, представляя себе снаряжение персонажа. Сначала процесс снаряжения будет рассмотрен па примере простой системы костей, цепочек ИК и лишь не- скольких управляющих объектов (рис. Б.5). Самый низкий уровень снаряжения состоит из костей, деформирутощих кар- кас. В данном примере это единственный уровень костей в снаряжении (рис. Б.6), в других видах снаряжения может присутствовать несколько уровней костей.
1004 Приложение Б. Снаряжение и анимация персонажей Рис. Б.5. Очень простое снаряжение персонажа Рис. Б.6. Уровень костей в элементарном снаряжении
Приложение Б. Снаряжение и анимация персонажей 1005 Итак, это самый низкий уровень, на котором манипулирование объектами во- обще не производится. Кости приводятся в движение с помощью управляющих объектов, находящихся на другом уровне. Эти управляющие объекты можно рас- сматривать в качестве элементов пользовательского интерфейса для данного персонажа. По существу, создание снаряжения сродни компоновке пользователь- ского интерфейса для любого приложения. При создании такого интерфейса преследуются определенные цели. В частности, он должен предоставлять пользо- вателю полный доступ к приложению, оставаясь в то же время простым, понят- ным, удобно организованным и интуитивным. Следовательно, снаряжение пер- сонажа— это пользовательский интерфейс, предоставляющий аниматору макси- мум удобств для эффективного труда, оставаясь при этом совершенно устойчи- вым в работе. Все это следует иметь в виду при разработке снаряжения На следующем уровне снаряжения находятся объекты, управляющие костями. На этом уровне простого снаряжения обычно находятся цепочки И К и некото- рые объекты, управляющие этими цепочками (рис. Б. 7). Рис. Б.7. Цепочки ИК и управляющие объекты для элементарного снаряжения
1006 Приложение Б. Снаряжение и анимация персонажей Именно па этом уровне аниматоры работают большую часть своего времени, поэтому соответствующие элементы управления снаряжением должны быть ор- ганизованы четко и ясно. Кроме того, аниматоры не должны переходит ь па более низкие уровни, чтобы не привести снаряжение в полный беспорядок. Такие уровни могут быть заблокированы специальными методами, и хотя для этого по- требуется дополнительное время, понесенные затраты окупятся впоследствии сторицей. Даже работая вольным художником, когда анимацию приходится вы- полнять самому, снаряжение рекомендуется создавать так, как будто оно предна- значено для других. Обнаружив недостатки в снаряжении, вернитесь к исходному файлу' и устраните их. Только по делайте это в файлах текущих сцен. Удачное, грамотно сделанное снаряжение содержит также дополнительные промежуточные уровни. На этих уровнях находятся различные вспомогательные объекты, контроллеры и механизмы, предназначенные для управления снаряже- нием таким образом, чтобы упростить выполнение сложных операций. Пример такого снаряжения приведен далее в этом приложении. Подобные уровни необ- ходимо тщательно планировать и располагать, иначе можно запутаться среди множества контроллеров управления по выражению, узлов реакций, специаль- ных атрибутов, ползунковых регуляторов, счетчиков, вспомогательных объектов и прочих элементов управления снаряжением. Планирование процесса снаряже- ния будет рассмотрено ниже, а пока что важно попять, почему все эти уровни су- ществуют и как они действуют. Умение мыслить категориями уровней позволяет наглядно представить, что именно требуется для того, чтобы снаряжение выпол- няло свои функции. Рассмотрим отдельные уровни па примере более сложного снаряжения. • Нулевой уровень: деформирующие кости. На этом уровне находятся кос- ти, которые деформируют каркас персонажа. Они используются при фор- мировании кожного покрова персонажа. Если же применяется система, ос- нованная па деформации мускулов, она должна быть связана с костями. • Первый уровень: вспомогательные объекты. Это вспомогательный уро- вень деформации, па котором находятся узлы, связанные со специальными деформациями, в том числе и реалистичные эффекты формирования кож- ного покрова. Например, с помощью специальных костей можно добиться выкручивания запястья персонажа. С другой стороны, такие кости могут служить в качестве сухожилий. • Второй уровень: кости для прямом кинематики. Эти кости предназначе- ны для прямой кинематики. Если они отсутствуют в снаряжении, это объ- ясняется непосредственным переходом костей от инверсной к прямой ки- нематике и наоборот, а не смешением этих видов кинематики либо отсут- ствием поддержки прямой кинематики в данном снаряжении. • Третий уровень: кости для инверсной кинематики. На этом уровне нахо- дятся цепочки костей, управляемые ИК. Если данный уровень перемещает- ся, происходит непосредственный переход костей от инверсной к прямой кинематике и наоборот или же смешение этих видов кинематики, если по- добное поддерживается в снаряжении.
Приложение Б. Снаряжение и анимация персонажей 1007 • Четвертый уровень: скрытые элементы управления. На этом уровне на- ходятся элементы управления, которые требуется скрыть от аниматора, но которые играют важную роль в снаряжении. К таким элементам управления относятся цели ограничения, узлы, управляемые но выражению, и другие вспомогательные объекты. • Пятый уровень: вспомогательные элементы управления. На этом уров- не находятся вспомогательные элементы управления. Они нечасто исполь- зуются для управления снаряжением. К ним, в частности, относятся эле- менты управления волосами или расширением зрачков. Некоторые из та- ких элемен тов управления приводятся в действие аниматором, процедурно либо и тем и другим способом. • Шестой уровень: элементы управления движением. На этом уровне на- ходятся элементы управления, которыми аниматор пользуется чаще всего. К ним относятся объекты, управляющие перемещением кистей рук, ног, позвоночника и т.д. Они могут приводиться в действие как процедурно, так и вручную. На этом (и отчасти на предыдущем) уровне содержатся управ- ляющие объекты, которыми аниматор пользуется как элементами пользо- вательского интерфейса для анимации персонажа. • Седьмой уровень: объекты высшего уровня. На этом уровне находятся специальные объекты (как ггравило, лишь один объект), охватывающие весь ггерсонаж. С их помощью персонажи располагаются па сцепе, загру- жаются и сохраняются анимационные последовательности, устанавлива- ются режимы отображения и т.д. Именно для этой цели в 3ds max предос- тавляется специальный узел персонажа (Character Node), хотя аниматор может использовать любой объект, находящийся на данном уровне. Напомним, что перечисленные выше уровни служат лишь для справки отно- сительно организации снаряжения. Число уровней гге ограничивается лишь упо- мянутыми выше, поэтому некоторые виды снаряжения могут состоять более чем из семи уровней. Все зависит от того, насколько глубоко вы понимаете процесс снаряжения, а также от потребностей персонажа. На самом деле в отношении снаряжения гге существует жестких правил. Используйте все, что может понадо- биться для достижения главной цели — анимации правдоподобного персонажа. Снаряжение персонажа человека Допустим, что па бумаге уже составлен гглагг действии по снаряжению модели персоггажа. Далее в этом приложении будет рассмотрен вид достаточно развито- го снаряжения, которое содержит большое число элементов управления анима- цией и некоторые расширенные возможности для формирования кожного по- крова. К концу этого приложения должен получиться полностью функциони- рующий персонаж, готовый для передачи гга анимацию. Для примера ниже будет использован персонаж Боевой Монах, который вклю- чен в мой демонстрационный ролик. Признаюсь, что гге считаю себя очень опыт- ным разработчиком моделей, поэтом}' модель данного персонажа нс лишена недос- татков (рис. Б.8). Модель постросгга па оеггове эскиза, приведенного на рис. Б.4.
1008 Приложение Б. Снаряжение и анимация персонажей Рис. Б.8. Персонаж Боевой Монах, смоделированный в 3ds max Как видите, данный персонаж смоделирован в известной позе да Винчи с ру- ками, вытянутыми па ширину плеч. Некоторые художники предпочитают уста- навливать свои модели в более свободную позу, но я выбрал именно эту позу, по- скольку она упрощает формирование кожного покрова. Оболочка каждой кости получит при создании достаточно места, чтобы не вытягивать вершины из сосед- ней части каркаса. Я создал пример сцены в файле Project Files\ChCD2_CharacterRigging- AndAnimation\rigging_start.max па прилагаемом к этой книге DVD. Данную сцен}' можно использовать в качестве о травной точки или же создать по ходу дела собственную.
Приложение Б. Снаряжение и анимация персонажей 1009 Подготовка сцены в 3ds max Исходную сцену следует немного организовать и подготови ть к снаряжению. Учитывая число узлов, с которыми придется работать, необходимо принять меры к тому, чтобы по всей сцене не были разбросаны объекты с такими именами, как Point27. Здравый смысл подсказывает использовать логически обоснованные имена объектов, а объекты и элементы персонажа должны быть распределены по уровням для приведения снаряжения в организованный порядок. При этом необ- ходимо иметь в виду следующее. • Именование объектов. Очень важно присвоить объектам подходящие имена, чтобы упростить в дальнейшем их поиск. Те, кто будут работать с вашими сценами, только поблагодарят вас за это. • Подключаемые модули. На протяжении всего процесса снаряжения будут использоваться специальные атрибуты. Для их упорядочения и упрощения доступа к ним будет использован специальный модификатор Attribute Holder (Держатель атрибутов). Это сценарный модификатор, предоставляющий пустой пользовательский интерфейс, в который вводятся специальные ат- рибуты. Для его опробования создайте любой объект в 3ds max, перейдите к панели Mod fy и примените к этому объекту модификатор Attribute Holder. После применения этого модификатора па панели Modify его параметры будут отсутствовать. Вы можете ввести собственные параметры и связать их с параметрами любых других объектов, находящихся на сцене. • Продолжительность анимации сцены. Установите непомерно большую продолжительность анимации сцены, например около 10 тысяч кадров Для чего это нужно? Многие контроллеры, применяемые в снаряжении, действу- ют в течение определенного времени. Это означает, что они будут действо- вать на сцене в течение указанного числа кадров. Так, ели создать снаряже- ние па сцене продолжительностью 10 кадров, а затем импортировать персо- наж в файл сцены продолжительностью 2500 кадров, после кадра 100 кон- троллеры, действующие по времени, прекратят свою работу. Во избежание этого снаряжение следует создавать в довольно продолжительной сцене. Снаряжение ног персонажа Итак, сцена подготовлена, и процесс снаряжения можно начать с пог персонажа. Основные кости ног Снаряжение персонажа начинается с ног. И делается это довольно просто. Тем не менее у ног должен быть ряд специальных элементов управления, обеспе- чивающих перекатывание стопы с помощью одного ползункового регулятора. 1. Создайте цепочку' костей в окне вида справа, начиная с бедра и протянув ее вниз. Руководствуйтесь в качестве образца моделью, показанной на рис. Б.9. Как видно в остальных видовых окнах, цепочка костей ноги не находится
1010 Приложение Б. Снаряжение и анимация персонажей внутри персонажа, поскольку опа создана па пулевой, или базовой, плоско- сти окна вида справа. Эту цепочку костей необходимо расположить и затем откорректировать ее размер по ноге персонажа. Рис. Б.9. Цепочка костей для ноги 2. Выделите первую кость из цепочки (т.е. бедренную кость) в окне вида спе- реди и переместите се на то место, где она должна находиться на левой но- ге персонажа. Поместив эту кость приблизительно в указанном месте, по- верните ее по оси Y, используя okoiiiijio систему опорных координат, что- бы кость стопы оказалась внутри стопы персонажа. При этом очень важно добиться согласованной ориентации всей цепочки костей. Не обращайте внимания на то, что цепочка костей ноги оказывается короче ноги модели. Этот недостаток будет устранен позже.
Приложение Б. Снаряжение и анимация персонажей 1011 3. Откройте всплывающую панель Bone Tools из главного меню Character. Выберите инструмент Move и смените систему опорных координат па ло- кальную. Гизмо преобразования выровняется по соответствующей локаль- ной оси выделенного объекта. Это очень удобно, поскольку далее вам пред- стоит правка длины костей, для чего их придется переместить по локаль- ной оси X. В' другой системе опорных координат работать труднее, по- скольку ось гизмо преобразования не будет выровнена по объекту', а кость придется перемещать по двум осям, рискуя нарушить ее выравнивание. 4. Щелкните па кнопке Bone Edit Mode в диалоговом окне Bone Tools. Выде- лите вторую кость в цепочке, переместите ее по локальной оси X вниз к ко- лену, расположив ее там. Не забывайте постоянно проверять выравнива- ние костей в других видовых окнах — одного окна для этого недостаточно. Если требуется, переместите данную кость по ее локальной оси Y, чтобы соответственно выровнять ее по колену. 5. Повторите эти же действия с остальными костями, расположенными вниз по цепочке. Обратите внимание на то, что сочленения на утолщении ступни и пальцах ноги должны находиться на ступне. Если это требование не удовле- творяется, вращение стопы пе будет происходить там, где предполагается. 6. Завершив перемещение костей ноги, выровняйте концевую кость по ее ро- дительской кости. Воспользуйтесь инструментом Align, чтобы согласовать ориентацию точек опоры обоих объектов. Для этой цели сбросьте флажки X Position, Y Position и Z Position в диалоговом окне Align Selection. НА ЗАМЕТКУ Теперь все операции выравнивания будут выполняться по опорным точкам соот- ветствующих объектов, если не указано иное. Таким образом, концевая кость выравнивается по остальной части ноги. В итоге нога должна выглядеть так, как показано на рис. Б. 10. Итак, создание цепочки костей ноги завершено. Очень важно добиться пра- вильной ее ориентации, чтобы она аккуратно вписалась в модель персонажа, а ее сочленения оказались на тех местах, где они обычно находятся в теле человека. Уделите особое внимание стопе и, в частности, расположению сочленений в об- ласти лодыжки и утолщения ступни. Если они расположены неверно, персонаж будет хромать во время ходьбы! А теперь нужно сделать очень важный шаг: присвоить подходящие имена объ- ектам костей. До сих пор кости имели такие имена, как BoneOl, Вопе02 и т.д., поэтому их нужно переименовать. Начните с самой верхней кости, продвигаясь постепенно вниз но цепочке костей. Я лично пользуюсь самыми обычными ус- ловными обозначениями, а вы можете выбрать свои собственные. Но сделать это нужно так, чтобы из списка костей было ясно, что это за объект. Таким образом, вы не запутаетесь в снаряжении даже самых сложных персонажей.
1012 Приложение Б. Снаряжение и анимация персонажей Рис. Б.10. Завершенные кости ноги Ниже приведен мой вариант именования костей вниз по иерархии в данной цепочке. • Bone_calfLT (Кость голени левой ноги) • Bone f ootLT (Кость стопы левой ноги) • Bone CoesLT (Кость пальцев левой ноги) • Bone_legNUB_LT (Концевая кость левой ноги) Последняя кость (небольшая шишка) служит ориентиром для контроллеров ИК, указывающим на место окончания цепочки ИК. Эта кость нужна на стопе, поскольку стопа будет приводиться в движение с помощью ИК. А па таких участ- ках, как пальцы, цепочки ИК нс нужны. Поэтом)’ концевые кости на них можно удалить после их создания, что и будет сделано в дальнейшем.
Приложение Б. Снаряжение и анимация персонажей 1013 Управляющие объекты Далее вам предстоит воспользоваться операцией, называемой зеркальным отображением. С помощью этой операции все снаряжение ноги зеркально ото- бражается на другой стороне модели персонажа. Зеркальное отображение иерархий костей вместе с ИК требует особой аккуратности. Достаточно совер- шить незначительную ошибку, и все снаряжение придет в полный беспорядок, превратившись в нечто ужасное и не поддающееся контролю. Тем не менее про- цедура правильного зеркального отображения несложна. Снаряжение стопы создается по так называемой трехточечпой схеме, где у стопы имеются три точки опоры: на пятке, утолщении ступни и на пальцах ноги. Происхождение такой схемы организации снаряжения стопы вполне очевид- но. Для того чтобы убедиться в этом, встаньте и сделайте два шага, затем еще два шага и понаблюдайте за своими стопами. Во время ходьбы стопа то поднимается, то опускается, т.е. перекатывается, переходя с одной точки опоры на другую. Когда стопа ставится па землю, опа опускается на пятку. По мерс того как вес тела смещается вперед, стопа ставится на землю ровно. Когда же стопа поднимается, отрываясь от земли, она поворачи- вается на утолщении ступни. Перед тем как окончательно оторваться от земли, стопа поворачивается па пальцах ноги. Может показаться, что добиться всех этих поворотов стопы довольно сложно, но на самом деле это не так уж и трудно. Необходимо лишь аккуратно построить кости стопы и ряд вспомогательных объектов в правильном иерархическом порядке. Решатели И К Л теперь необходимо создать цепочки ИК для ноги. 1. Выделите кость Bone_thighLT и выберите из главного меню команду Animation^lK Solvers^HI Solver (Анимация^Решатели ИК^Независимый от предыстории решатель ИК). Создайте цепочку ИК от кости Bone_thighLT до кости Bone_f ootLT. Затем переместите цель ИК (синий крестик на конце цепочки ИК). Соответственно переместится снаряжение кости. Как видите, апимация цепочек ИК осуществляется довольно просто. 2. Присвойте вновь созданной цепочке ИК имя IKChain_legLT (Цепочка ИК для левой ноги), выделив ее цель. 3. Повторите описанную выше процедуру, чтобы создать еще две цепочки ИК. Они должны проходить следующим образом. • От кости Bone_f ootLT к кости Bone_toesLT. • От кости Bone_toesLT к кости Bone_legNUB_LT. 4. Присвойте вновь созданным цепочкам ИК имена IKChain_footLT (Цепочка ИК для стопы левой ноги) и IKChain_toesLT (Цепочка ИК для пальцев левой ноги). Полученный результат должен быть таким же, как и па рис. Б.11.
1014 Приложение Б. Снаряжение и анимация персонажей Рис. Б.11. Цепочки ПК, расположенные на своих местах (ради простоты модель пер- сонажа скрыта) Если попытаться переместить цель первой цепочки ИК (в области лодыжки), стопа станет на земле странным образом. Но именно это сейчас и нужно. Каждая цепочка ИК представляет собой независимый объект. Ее положение повторяют соответствующие кости. Далее необходимо создать иерархию объектов, которые помогают манипулировать цепочками ИК и тем самым легко добиваться более совершенного поведения всего снаряжения ноги в целом. 1. Создайте сначала три точечных вспомогательных объекта, расположив их по одному вблизи каждой цепочки ИК. Выделите каждый точечный объект и согласуйте его положение с соответствующей цепочкой ИК по всем трем осям. Цели ИК больше точечных объектов, что затрудняет выбор послед- них. Но этот недостаток нетрудно устранить, выбрав каждый точечный объект в окне Select Objects и откорректировав его размер В данном случае вполне достаточно размера 60 см, по если вы пользуетесь другими едини-
Приложение Б. Снаряжение и анимация персонажей 1015 цами измерения, то установите с их помощью соответствующий размер. В любом случае точечные объекты должны стать больше целей ИК а кроме того, они должны быть расположены надлежащим образом (рис. Ь 12). Рис. Б.12. Точечные объекты, расположенные на своих местах 2. Присвойте точечным объектам следующие имена. • Point_anklePivotLT для точечного объекта на лодыжке. • Point_ballPivotLT для точечного объекта на утолщении ступни. • Point_toesPivotLT для точечного объекта па пальцах ноги. 3. Скопируйте точечный объект, расположенный на утолщении ступни, пере- тащив его назад и нажав дополнительно клавишу <Shift>. Расположите ско- пированный точечный объект на пятке персонажа (в данном случае — на каб- луке обуви) (рис. Б.13). Присвойте этому объекту имя Point_heelPivotLT (Точечный объект для точки опоры на пятке левой ноги).
1016 Приложение Б. Снаряжение и анимация персонажей Рис. Б.13. Точечный объект на пятке Выравнивание точечных объектов Итак, получены практически все объекты, необходимые для приведения стопы в движение. Гем не менее в ее снаряжении что-то не так. Возможно, вы уже догада- лись, в чем здесь дело. Если оставить снаряжение ноги без изменения, то вращение управляющих объектов будет происходить несогласованно со стопой, а значит, поль- зы от такого снаряжения стопы будет мало. Поэтому необходимо выровнять точеч- ные объекты по соответствующим костям. Для этого достаточно выделить каждый точечный объект и согласовать ориентацию данного объекта и соответствующей кос- ти. Ниже перечислены объекты и кости, которые необходимо выровнять (в данном случае они выравниваются по ориентации, а не по положению). • Выровняйте точечный объект Point__anklePivotLT по кости Bone_f ootLT. • Выровняйте точечный объект Point_ballPivotLT по кости Bone_toesLT. • Выровняйте точечный объект Point_toesPivotLT по кости Вопе_ legNUB_LT. • Выровняйте точечный объект Point_heelPivotLT по кости Bone_toesLT. У вас может возникнуть резонный вопрос: почему точечный объект Point_ heelPivotLT выравнивается по кости Bone_toesLT, которая не находится ря- дом с ним? Дело в том, что в данном случае необходимо лишь выровнять точеч- ный объект по стопе, и ее кость служит для этого удобным ориентиром.
Приложение Б. Снаряжение и анимация персонажей 1017 | ПРЕДУПРЕЖДЕНИЕ__________________________________________________ Для правильного проведения упомянутой выше процедуры кости должны быть выровнены! Это означает, что локальные оси X каждой кости должны распола- гаться параллельно. Выравнивание костей нарушается лишь при их перемещении по оси Z, когда изменяется их местоположение внутри каркаса. Точки опоры Для того чтобы добиться поставленной цели — получить три разные точки опоры, которые могут действовать независимо друг от друга, но в то же время со- гласованно, — необходимо как-то связать все вместе. А для этого необходимо уяс- нить, как действует стопа. Начнем с точки опоры на пятке. При вращении этого объекта пальцы пог должны двигаться вверх и вниз. Следовательно, данная точка опоры должна управлять двумя следующими цепочками ИК: одной — па пальцах ног, а другой — на пятке. Напомним, что цепочки ИК представляют собой от- дельные объекты. Если они ни с чем не связаны, значит, они просто находятся на земле. Но для гого чтобы стопа действовала правильно, цепочки ИК должны подчиняться лишь одному, а в лучшем слу чае — двум узлам. Это важное обстоя- тельство поможет определить количество узлов, которое требуется для управле- ния вращением каждой точки опоры. Мы выяснили, что точка опоры на пятке управляет цепочками ИК пальцев ног и утолщения ступни. А теперь перейдем к самой точке опоры па пятке. При вра- щении стопы в этой точке должны подыматься пятка и лодыжка. А поскольку' на пятке отсутствует цепочка ИК (как, впрочем, и кость), необходимо позаботиться лишь о цепочке ИК для пятки. При вращении стопы на се копчике (т.е. на пальцах ноги) необходимо поднять утолщение ступни, пятку и лодыжку'. Исходя из числа подлежащих управлению уз лов, можно сделать вывод, что искомая точка должна располагаться в иерархии достаточно высоко. И наконец, когда стопа поворачивается на пятке, в движение должно приводиться все остальное. Таким обр юм, в результате проведенного ана- лиза движения стопы обнаруживается ряд различных уровней управ; ения, на осно- вании которых и строится иерархия. Теперь можно приступать к ее построению. 1. Начните с пальцев ног. Выделите цепочку' ИК IKChain_toesLT IK и свя- жите ее с точечным объектом Point_ballPivotLT. 2. Для правильного управления всеми упомянутыми выше видами вращения сто- пы требуются дополнительные узлы. Создайте один такой узел, выделив точеч- ный объект Point_ballPivotLT, и нажмите комбинацию клавиш <CtrI+V>. Откроется диалоговое окно Clone Options. Щелкните на кнопке-переклю- чателе Сору в области Object этого диалогового окна, закройте его и при- свойте вновь скопированному' объекту' имя Point_ballRotatorLT (Точеч- ный объект для вращения утолщения ступни левой ноги). Сбросьте флажок Cross (Перекрестие) и установите флажок Box (Прямоугольник) в свитке па- раметров данного объекта на панели Modify, чтобы оп хоть чем го отличался от остальных объектов. Щелкните па кнопке Unlink Selection (Разорвать связь с выделенным объектом), расположенной па основной панели инструментов, чтобы данный объект не был связан ни с одной из иерархий.
1018 Приложение Б. Снаряжение и анимация персонажей 3. Выделите цепочку ИК IKChain_legLT и свяжите ее с точечным объектом Point_ballRotatorLT. 4. Выделите по очереди объекты Point_ballPivotLT, Point_ballRotatorLT и IKChain_f ootLT и свяжите их с точечным объектом Point_toesPivotLT. 5. Свяжите точечные объекты Point_toesPivotLT и Point_heelPivotLT. 6. Свяжите точечные объекты Point_heelPivotLT и Point_anklePivotLT. 7. Если режим правки костей (Bone Edit Mode) выключен, проверьте пра- вильность вращения всех созданных выше объектов. Стопа должна повора- чиваться в зависимости от действия установленных точек опоры. Далее необходимо ввести еще один объект, который будет иметь следую цее важное назначение: вращение стопы в мировом пространстве Это требуется по нижеследующей причине. Точечный объект Point_anklePivotLT выровнен по объекту Bone_footLT, и поэтому он поворачивает стопу в локальном пространстве, т.е. стопа поворачи- вается параллельно ноге. Это не так уж и плохо, но когда стопа располагается не параллельно ноге, ее приходится поворачивать, например параллельно земле. А для этой цели требуется узел, выровненный по осям пространства мировых ко- ординат. Оба указанных пространства координат требуются для правильного функционирования снаряжения стопы в любых ситуациях. Ввести такой узел не составит особого труда. 1. Выделите точечный объект Point_anklePivotLT и вновь нажмите ком- бинацию клавиш <Ctrl+V>. Оставьте без изменения кнопку-переключатель Сору в области Object диалогового окна Clone Options, а затем присвойте вновь скопированному объекту имя LegControlLT (Объект, управляющий левой ногой). 2. Сбросьте флажок Cross и установите флажок Box в свитке параметров дан- ного объекта па панели Modify. Щелкните па инструменте Unlink Selection (это делается для гарантии того, что данный объект ни с чем не связан, хо- тя такую привычку полезно в себе выработать). 3. Выберите сначала инструмент Rotate, а затем систему мировых опорных координат и установите точку абсолютных координат (0,0,0) ориентации точечного объекта в мировом пространстве в полях диалогового окна Ro- tate Transform Type-In, открываемого щелчком правой кнопки мыши на ин- струменте Rotate. 4. Выделите точечный объект Point_anklePivotLT и свяжите его с управ- ляющим объектом LegControlLT. Это главный объект, с помощью которо- го стопа приводится в движение. Итак, снаряжение стопы завершено. Используя различные точки опоры, свя- занные в правильном порядке, можно поворачивать стопу, не прибегая к допол- нительным контроллерам или выражениям. На рис. Б. 14 приведен схематиче- ский вид данной иерархии. (Для открытия окна схематического вида служит ко- манда Graph Editors ^Schematic View (Редакторы графических представлений1^ Схематический вид), выбираемая из главного меню.)
Приложение Б. Снаряжение и анимация персонажей 1019 Рис. Б.14. Схематический вид снаряжения стопы В данной иерархии присутствует слишком много узлов, с которыми пришлось бы иметь дело аниматору. Но даже если их оставить па тот случай, если они пона- добятся аниматору, все равно придется создать ряд специальных элементов управления, позволяющих выполнять сложные движения и подвергать анимации ряд параметров, не обращаясь на поиски конкретных свойств. Специальные элементы управления для ног Настал черед создать ряд специальных элементов управления для аниматора, чтобы упростить процесс анимации. В данном случае будет введен элемент у прав- ления, позволяющий выполнять перекатывание стопы с помощью единственного ползункового регулятора. Это даст аниматору возможность осуществить анима- цию цикла ходьбы (типичного движения персонажа) по ключевым кадрам, не об- ращаясь к многочисленным трекам анимации соответствующих объектов. Кроме того, следует ввести элемент управления вращением вокруг оси X, которое пере- дается по иерархии от ноги к стопе (это так называемый угол вращения ноги). С помощью данного элемента управления аниматор сможет добиться того, чтобы стопа повторяла движения ноги или же твердо ставила ее на землю. Указанные элементы управления будут содержать две составляющие: сам эле- мент управления и соответствующий вид поведения объекта. Для встраивания в объекты разных видов поведения служат специальные контроллеры анимации. Если вам уже приходилось пользоваться контроллерами управления по выраже- нию или по сценарию, значит, этот принцип вам уже знаком. В данном снаряже- нии будут использованы следующие контроллеры. • Ограничения. • Контроллеры управления по выражению. • Связывание параметров. • Контроллеры управления по сценарию. • Контроллеры управления реакцией.
1020 Приложение Б. Снаряжение и анимация персонажей Угол вращения Прежде всего необходимо создать элемент управления углом вращения. 1. Выделите управляющий объект LegControlLT и примените к нему моди- фикатор Attribute Holder. Этот пустой модификатор предоставляет место для ввода специальных атрибутов. 2. Откройте всплывающую панель Parameter Editor, выбрав команду из глав- ного меню Animation^Parameter Editor (Анимация^Редактор параметров). На этой панели в объекты вводятся специальные атрибуты, предназначен- ные для управления треками анимации данного персонажа. 3. Установите на всплывающей панели Parameter Editor следующие значения параметров специального атрибута. • Parameter Туре (Тип параметра) = Angle (Угол; новый параметр в 3ds max 7) • UI Туре (Тип элемента пользовательского интерфейса) = Spinner (Счетчик) • Name (Имя специального атрибута) = Swivel Angle (Угол вращения). • Width (Ширина поля) = 100. • Range (Диапазон значений) = From (От): -360, То (До): 360, Default (Устанавливаемое по умолчанию значение): 0. • Alignment (Выравнивание) = Center (По центру). • Add Attribute to Туре (Место ввода атрибута) = Selected Object's Current Modifier (Текущий модификатор выделенного объекта). 4. Щелкните на кнопке Add из области Add/Edit/Delete па всплывающей пане- ли Parameter Editor. Вновь введенный атрибут появится в свитке Custom Attributes (Специальные атрибуты) модификатора Attribute Holder выделен- ного объекта. Этот атрибут позволяет регулировать угол вращения цепочки ИК для ноги — иными словами управлять ориентацией колена. Если же сейчас изменить значение данного атрибута, то ничего не произойдет, по- скольку он еще ни с чем не связан на сцене. Но прежде чем делать это, вве- дите в объект, управляющий ногой, еще ряд специальных атрибутов, кото- рые пригодятся в дальнейшем. Введите следующие значения параметров нового специального атрибута. • Parameter Туре = Float (С плавающей точкой). • UI Туре = Spinner. • Name = Foot Roll (Перекатывание стопы). • Width = 100. • Range = From:-5, То: о, Default: о, • Alignment Center • Add Attribute to Type = Selected Object’s Current Modifier. 5. Введите следующие значения параметров еще одного специального атрибута. • Parameter Type Float. • UI Type = Slider (Ползунковый регулятор).
Приложение Б. Снаряжение и анимация персонажей 1021 • Name = Inherit Swivel (Наследуемое вращение). • Width = 160. • Range = From: о, To: 1, Default: о. • Alignment Center. • Add Attribute to Type Selected Object’s Current Modifier. Закройте всплывающую панель Parameter Editor. | ПРЕДУПРЕЖДЕНИЕ Для ввода специальных атрибутов на сцене должен быть непременно выделен управляющий объект LegControlLT, а в стеке — модификатор Attribute Holder! А теперь введенные выше специальные атрибуты необходимо снабдить функ- циями в соответствии с их названиями. Когда аниматору передается персонаж, он должен определить назначение каждого элемента управления по его по внеш- нему виду. Если же вместе с персонажем приходится передавать инструкции по применению его снаряжения, .значит, в этом снаряжении что-то не так. (Помните о золотом правиле.) Далее необходимо связать параметры Swivel Angle ряда объектов. 1. Выделите объект LegControlLT и увеличьте изображение в видовых ок- нах, чтобы ясно видеть этот объект, а также объект IKChain_legLT. Щелкните правой кнопкой мыши на объекте LegControlLT, чтобы от- крыть квадратное меню. 2. Выберите из квадратного меню команду Wire Parameters (Связать парамет- ры). Свяжите параметр LegControlLT^ Modified Objects Attribute Holder^ Custom_Attributes[=>Swivel Angle с параметром IKChainJegLT^Transform/ Swivel Angle. В открывшемся диалоговом окне Parameter Wiring щелкните на кнопке направления связывания слева направо. 3. Щелкните па кнопке Connect (Соединить) и попробуйте установить значе- ние угла вращения в счетчике специального атрибута Swivel Angle. Нога ведет себя идеально. Закройте диалоговое окно Parameter Wiring. Возможно, при выполнении последнего пункта приведенной выше процедуры вы обратили внимание на следующее необычное явление: при изменении угла вращения ноги поворачиваются кости стопы. От этого нежелательного явления следуют избавиться немедленно, иначе твердо поставить стопу на землю не удаст- ся. Устранить данный недостаток нетрудно. 1. Выделите объект IKChain_footLT. Если этот объект трудно выделить не- посредственно в видовом окне, нажмите клавишу <Н>, чтобы открыть диа- логовое окно Select by Name. 2. Перейдите к папели Motion и щелкните на кнопке-переключателе IK Goal (Цель ИК) из области Parent Space (Родительское пространство) в свитке IK Solver Properties (Свойства решателя ИК).
1022 Приложение Б. Снаряжение и анимация персонажей 3. Вновь выделите данный объект и перейдите к панели Modify. Измените значение угла вращения в счетчике специального атрибута Swivel Angle. Теперь стопа остается па земле, в то время как колено поворачивается. В данном случае происходит следующее: если в области Parent Space из свитка IK Solver Properties выбрана кнопка-нереключатеЯь Start Joint (Начальное сочле- нение), родительское пространство для цепочки ИК определяется родительским сочленением. Это пространство постоянно искажается в результате вращения ноги, поэтому соответственно настраивается решатель ИК что приводит к упо- мянутому выше нежелательному вращению стопы. Если же выбрать кнопку- переключатель IK Goal, родительское пространство угла вращения ноги будет оп- ределяться целью ИК. А поскольку пространство преобразований цели ИК оста- ется постоянным, стопа по-прежнему ровно стоит па земле, что, собственно, и требуется. Об этом не следует забывать в тех случаях, когда в цепочке костей имеется несколько цепочек ИК и одна из них вращается отдельно. Наследуемое вращение Завершив настройку специального атрибута Swivel Angle, займемся на- стройкой еще одного специально! о атрибута — Inherit Swivel. Этот специальный атрибут применяется для передачи вращения от колена ноги к стопе но иерархии. Таким образом, стопа повторяет (наследует) движения ноги всякий раз, когда изменяется ориентация ноги. А благодаря тому что данный спе- циальный атрибут допускает установку значений с плавающей точкой (см. выше описание установки значений параметров специальных атрибутов), наследуемое вращение может быть частичным. Это означает, что вращение передается от ноги к стопе лишь частично. Если бы использовались целые значения данного атрибута, вращение наследовалось бы полностью либо вообще отсутствовало. Следовательно, необходимо настроить специальный атрибут Inherit Swivel. 1. Выделите объект LegControlLT, нажмите клавишу <Alt> и щелкните па нем правой кнопкой мыши. В открывшемся квадратном меню выберите ко- манду Freeze Rotation (Зафиксировать вращение). 2. Перейдите к свитку Assign Controller па панели Motion, разверните треки анимации контроллера управления вращением, выберите трек для назна- чения контроллера (Available) и назначьте для пего третий контроллер — Euler XYZ Rotation. Переименуйте два других контроллера данного ти- па в свитке Rotation List соответственно па Euler_zero и Euler_auto, ос- тавив имя третьего контроллера без изменения. В этом контроллере будут храниться все ключевые кадры анимации, выполняемой вручную. Для этого щелкните па кнопке Set Active (Сделать активным), предварительно выбрав данный контроллер из списка (рис. Б. 15). 3. Разверните треки анимации второго контроллера Euler_auto. При этом поя- вятся три дополнительных трека: X Rotation, Y Rotation и Z Rotation. Для этих треков по умолчанию назначены кон троллеры управления по кривой Безье. Выделите трек Z Rotation и щелкните па кнопке Assign Controller.
Приложение Б Снаряжение и анимация персонажей 1023 | - Assign ConUoter Ш f PositiorVRotation/ л. | F] Position Position XYZ ' | =| Rotation Rotation List н Пс] Eu!er_zero: Euler XyZ ► |^]Euler_auto Euler XYZ н-аа Euler XyZ Euler XYZ ' Rc]Available S Parameter Create Key D eSete Key Position 11 I Pt I Rotation Scale Position Rotation Scale Rotation List La/ci Euler_zero Euler auto CrfeittZ Weijht 1000 ’ WOO WOO SetAdrve^J DeSete Weight j 1000 r Pose to Pose Euler Parameters Axis Order | ’ Y Z j Rotation Axis, [x* V Рис. Б.15. Контроллеры управле- ния вращением точечного объекта 4. Выберите из списка контроллер Float Script, чтобы назначить его для трека Z Rotation. Это контроллер управления по сценарию MAXScript, позво- ляющий написать собственный сценарий. 5. Откроется повое окно Script Controller. Удалите 0 в подокне Script и введите следующий сценарий: objMod = $LegControlLT.modifiers[#AttributeHolder] objSA - objMod.swivel_angle objIS = objMod.inherit_swivel dependsOn objMod degtorad(objSA * objIS) 6. Щелкните на кнопке Evaluate (Вычислить) и закройте окно Script Controller. Ус- тановите ползунковый регулятор специального атрибута Inherit Swive на нулевую отметку, а затем настройте счетчик специального атрибута Swivel Angle. Как видите, стопа остается па месте. Переместите ползунковый регуля- тор Inherit Swivel к отметке 1 и вновь настройте счетчик специального ат- рибута Swivel Angle. Теперь стопа поворачивается вместе с ногой.
1024 Приложение Б. Снаряжение и анимация персонажей НА ЗАМЕТКУ В сценариях, используемых в контроллерах управления по сценарию, нередко делаются ссылки по имени на другие находящиеся на сцене объекты или атри- буты этих объектов. Следовательно, при изменении имени ссылочного объекта выполнение сценария нарушается и появляется сообщение об ошибке. Это имя можно изменить непосредственно в сценарии. Об этом ограничении следует помнить при написании сценариев и манипулировании контроллерами управле ния по сценарию. Для тех, кто незнаком с языком MAXScript, поясним, что в приведенном выше коде сценария сначала определяются значения специальных атрибутов Swivel Angle и Inherit Swivel, а затем на основании этих значений рассчитывается угол вращения, причем значение специального атрибута Inherit Swivel слу- жит в качестве множителя. К сожалению, место не позволяет проанализировать данный сценарий более подробно. Следует, однако, заметить, что без умения пи- сать сценарии MAXScript о серьезных занятиях снаряжением не может быть и речи. Я лично пользуюсь сценариями постоянно, даже если и не занимаюсь снаряжением Итак, два специальных атрибута настроены, и теперь можно переходить к третьему. Перекатывание стопы Элемент управления перекатыванием стопы позволяет аниматору легко органи- зовать перекатывающееся движение стопы с помощью единственного ползунково- го регулятора. Анимацию такого движения можно осуществить по ключевым кад- рам вручную, используя иерархию управляющих объектов, созданных для стопы. Аниматор не будет в восторге, если ему придется иметь дело с большим числом объектов и треков анимации. Но если создать элемент управления, помогающий добиться перекатывающегося движения без особого труда, т.е. с помощью одного элемента управления анимацией, в таком случае аниматор будет очень доволен. Для достижения этой цели придется часто пользоваться контроллером управ- ления реакцией, поскольку организуемое движение является отнюдь не простым. На протяжении всего движения придется манипулировать несколькими точками опоры с разными состояниями. Добиться аналогичного результата с помощью выражений или простых сценариев не так-то просто Но для этого отлично под- ходит контроллер управления реакцией. Этот контроллер необходимо назначить для нескольких точек опоры и установить ряд состояний их реакции на измене- ние значения в счетчике специального атрибута Foot Roll. 1. Прежде всего необходимо осуществить анимацию счетчика специального атрибута Foot Roll. Он пока еще ничем не управляет, однако с помощью контроллеров управления реакцией можно организовать восприятие изме- нений данного специального атрибута и соответствующую реакцию. Итак, выделите объект LegControlLT, перейдите к панели Modify, активизируй- те режим Auto Key и установите следующие значения в счетчике специаль- ного атрибута Foot Roll.
Приложение Б. Снаряжение и анимация персонажей 1025 • Значение 5 в пулевом кадре. • Нулевое значение в кадре 10. • Значение 5 в кадре 20. • Значение 10 в кадре 30. 2. Активизируйте режим Auto Key. На полосе трека должны появиться четыре кадра. А теперь проанализируем, каким образом выполняется перекатывание стопы Если требуется, еще раз прочтите материал, изложенный выше, в разделе “Снаря- жение ног персонажа”. Напомним, что в данном случае приходится манипулиро- вать тремя точками опоры: на пятке, утолщении стопы и пальцах ноги. В зави симости от значения в счетчике специального атрибута Foot Roll получаются разные положения стопы, определяемые этими точками опоры. • При значении -5 в счетчике специального атрибута Foot Roll стопа на- ходится в положении, предшествующем перекатыванию Точка опоры на- ходится па пятке, и стопа поворачивается, приподнимаясь вверх, как перед постановкой на землю. • При нулевом значении в счетчике специального атрибута Foot Roll стопа ровно стоит на земле (в нейтральном положении). • При значении 5 в счетчике специального атрибута Foot Roll стопа пово- рачивается па утолщении ступни вперед, как при незначительном пере- движении персонажа вперед. • При значении 10 в счетчике специального атрибута Foot Roll стопа по- ворачивается на пальцах ноги вперед. При этом стопа практически готова оторваться от земли, чтобы весь цикл ее движения повторился сначала. Можно себе представить, сколько времени аниматор сэкономит, организуя циклы ходьбы или бега с помощью такого элемента управления. После того как план создания данного элемента управления составлен, необходи- мо выбрать узлы, которые должны реагировать на вращение. Прежде всего, это, ко- нечно, объект Point_heelPivotLT. Далее следует объект Point_ballRotatorLT и, наконец, объект Point_toesPivotLT. Определите, вокруг каких осей они должны вращаться. Для этого выделите объект, выберите инструмент Rotate и установите локальную систему опорных координат преобразования Вращение должно проис- ходить вокруг вертикальной оси гизмо преобразования. В данном случае это сле- дующие оси. • Ось Z вращения объекта Pivot_toesLT. • Ось Z вращения объекта Pivot _ballRotatorLT. • Ось Z вращения объекта Pivot_heelLT. Эти оси могут быть другими — все зависит от того, как выровнены объекты. Далее необходимо обнулить вращение указанных выше объектов.
1026 Приложение Б. Снаряжение и анимация персонажей 1. Выделите все эти объекты. Нажмите клавишу <Alt> и щелкните правой кнопкой мыши, а затем выберите команду Freeze Rotation из всплывающего квадратного меню. 2. Переименуйте первый контроллер Euler XYZ па Euler_zero, а второй контроллер — на Euler auto. 3. Назначьте в списке третий контроллер Euler XYZ и активизируйте его. Повторите эти действия для каждого выделенного объекта. Теперь можно приступать к работе с пяткой, используя повое для 3ds max 7 свойство Reaction Manager. Действие этого инструмента основано па контролле- ре управления реакцией, однако у него более совершенный пользовательский ин- терфейс и простая последовательность операций. Он позволяет сосредоточить все имеющиеся в сцепе реакции в одном месте. 1. Перейдите к нулевому кадру. Откройте диалоговое окно Reaction Manager, выбрав из главного меню команду Animation^Reaction Manager (Анимация1^ Администратор реакций). Щелкните па кнопке Add Master. Выделите объект LegControlLT. Выберите из появившихся каскадных меню трек Modified Object^Attnbute HoldedCustorrcAttributes^Foot Roll. В подокне Reactions диалогового окна Reaction Manager появится новый элемент LegControlLT/ Foot Roll Именно этот параметр и будет управлять реакциями в других объектах. 2. Введите треки анимации подчиненных параметров. Эти треки будут реаги- ровать па трек анимации главного параметра. Выделите объекты Point_heelPivotLT, Point ballRotatorLT и Point_toesPivotLT. Щелкните в диалоговом окне Reaction Manager на кнопке Add Selected. Ес- ли подчиненные объекты должны вращаться вокруг разных осей, выполни- те для каждого из них приведенные ниже пункты данной процедуры В дан- ном случае все подчиненные объекты должны вращаться вокруг оси Z, по- этому все треки анимации их параметров можно ввести сразу. Помните об этом, иначе впоследствии все подчиненные объекты будут вращаться во- круг неверно указанных осей. 3. Выберите из появившихся каскадных меню трек Transform^Rotation1^ Euler_auto^Z. Ниже главного контроллера в подокне Reactions появятся три новых трека. Кроме того, в подокне States появится элемент Stated, содержащий подчиненные треки. 4. В подокне States вводятся и правятся новые состояния для организации реакций. Найдите ниже элемента Stated трек Point_heelPivotLT/Z Rotation. С ним связанно конкретное значение. Дважды щелкните на нем и введите значение 25, а затем нажмите клавишу <Еп1сг>. чтобы подтвердить ввод. Соответствующий точечный объект повернется назад и поднимет сто- пу. Если же он повернется вперед, введите значение -25. 5. Перейдите к кадру 5. Выделите все три подчиненных трека в подокне Reactions. Введите описанным выше способом нулевое значение для под- чиненного трека Point_heelP votLT/Z Rotation. Стопа ровно станет па земле.
Приложение Б. Снаряжение и анимация персонажей 1027 6. Перейдите к кадру 10 и создайте повое состояние для всех трех подчинен- ных треков анимации вращения. На этот раз установите значение -15 для трека Point_ballRotatorLT/Z Rotation. Если же данный объект вра- щается в противоположном направлении, введите значение 15. Стопа по- вернется вокруг точки опоры на утолщении стопы. 7. Перейдите к кадру 15 и создайте еще одно состояние для всех трех подчи- ненных треков. Установите значение -25 для трека Point_toesPivotLT/Z Rotation. Если же ориентация данного объекта окажется неверной, введите значение 25. Стопа повернется вокруг точки опоры на пальцах ног. Вот, собственно, и все! Переместите ползунок по временны! шкале анимации, чтобы понаблюдать за перекатыванием стопы (рис. Б.16). Затем удалите все клю- чевые кадры анимации специального атрибута Swivel Angle и установите нуле- вое значение в его счетчике. Снаряжение ноги завершено и должно обеспечивать все необходимые движе- ния ноги. Рис. Б.16. Диалоговое окно Reaction Manager с организованны- ми реакциями для элементов управления стопой (конкретные значения могут быть изменены)
1028 Приложение Б. Снаряжение и анимация персонажей Зеркальное отображение снаряжения ноги Настало время создать снаряжение для правой ноги. Конечно, это можно бы- ло бы сделать сызнова, но лучше все же зеркально отобразить уже имеющееся снаряжение левой ноги, хотя для этой цели придется предпринять ряд подгото- вительных шагов. 1. Создайте точечный объект и поместите его в точке с координатами (0,0,0). Присвойте этому объекту имя LegWrapperLT (Объект, охваты- вающий левую ногу). 2. Выделите объекты Bone_thighLT и LegControlLT и свяжите их с новым точечным объектом. НА ЗАМЕТКУ мЭЕсли цепочка объектов получается немного перевернутой, разорвите связь меж- ^ду ними и вновь созданным точечным объектом, выровняйте последний по объ- екту LegControlLT и свяжите их еще раз. 3. Дважды щелкните на точечном объекте LegWrapperLT, чтобы выделить все порожденные им объекты, т.е. все снаряжение левой ноги. 4. Перейдите в окно вида спереди, выберите инструмент Move, а затем режим преобразования Use Pivot Point Center (Использовать центр в точке опоры) из всплывающей напели, расположенной па основной панели инструмен- тов. Гизмо перемещения должен переместить гуда, где находится точечный объект. Очень важно, чтобы все произошло именно так! В противном слу- чае измените систему опорных координат на выборочную (Pick) и щелкни- те па точечном объекте. Если гизмо перемещения расположен неверно, выберите режим преобразования Use Тransform Coordinate Center (Исполь- зовать центр координат преобразования) из упомянутой выше всплываю- щей папели, чтобы переместить гизмо в нужное место. 5. Щелкните на инструменте Mirror, чтобы открыть диалоговое окно. Щелк- ните на кнопке-переключателе Сору в области Clone Selection а также па кнопке-переключателе X в области Mirror Axis данного диалогового окна (это следует сделать при активизированном окне вида спереди). Щелкните па кнопке ОК Таким образом, получена зеркально отображенная копия снаряжения левой ноги (рис. Б. 17).
Приложение Б. Снаряжение и анимация персонажей 1029 Рис. Б.17. Зеркально отображенное снаряжение ноги (ради простоты модель персонажа скрыта) Правка зеркально отображенного снаряжения ноги Зеркально отображенное снаряжение ноги требует исправлений. Прежде все- го необходимо переименовать соответствующие объекты, заменив в них обозна- чение левой ноги (LT) па обозначение правой ноги (RT). Для этой цели удобно воспользоваться новым инструментом Rename Objects. 1. Выберите из главного меню команду Tools'^ Rename Objects (Инструменты1^ Переименовать объекты), чтобы открыть диалоговое окно Rename Objects. 2. Выделите все объекты в снаряжении правой ноги. Сбросьте флажок Base Name (Базовое имя). Введите суффикс RT в поле Suffix и значение 4 в поле Remove Last Digits (Удаление последних цифр). Таким образом, в имени каждого объекта сначала будут удалены 4 последние цифры (в данном слу- чае — LT01), а затем введены символы суффикса RT в конце этого имени. 3. Щелкните на кнопке Rename. Вот и все! Как видите, объекты переимено- вываются очень просто и изящно. А теперь необходимо устранить еще один недостаток зеркального отображе- ния: неверные ссылки на объекты. Для этого выполните следующие действия.
030 Приложение Б. Снаряжение и анимация персонажей 1. Выделите объект LegControlLT. 2. Настройте счетчик специального атрибута Foot Roll. Поворачиваются обе стопы. 3. Переместите ползунковый регулятор специального атрибута Inherit Swivel к отметке 1 4. Настройте счетчик специального атрибута Swivel Angle. Поворачивают- ся оба колена. В результате зеркального отображения нарушены некоторые связи между па- раметрами исходных объектов, а в зеркально отображенных объектах остались :сылки па исходные объекты вместо появления новых. К сожалению, для этого ридегся вручную настроить контроллеры управления реакцией. Впрочем, упро- стить эту задачу поможет схематический вид. 1. Выберите из главного меню команду Graph Editors^New Schematic View, чтобы открыть окно New Schematic View. На рис. Б. 18 графически представ- лены связи межд} объектами, находящимися на сцепе. В данном схематиче- ском виде иерархии костей отделены друг от друга, а иерархии вспомога тельных объектов расположены рядом с костями соответствующих ног. ’ис. Б.18. Схематический вид снаряжения обеих ног 2. Рядом с окном Schematic View находится всплывающая панель Display, по- могающая работать более эффективно, поскольку па ней отображаются различные узлы и взаимосвязи между ними на сцене. В данном случае наи- больший интерес представляют взаимосвязи, поэтому щелкните на кнопке Param Wires (Связи между параметрами). В окне Schematic View появятся две розовые линии (рис Б. 19).
Приложение Б. Снаряжение и анимация персонажей 1031 Рис. Б.19. Связи между параметрами 3. Обе розовые линии проходят от одного точечного объекта к двум цепочкам ИК, а следовательно, к параметрам углов вращения. Однако каждая цепочка ИК должна быть связана с отдельным точечным объектом в своей иерар- хии. В данном случае в правой цепочке ИК по-прежнему отображается ссылка па левый точечный объект. Это положение следует исправить. Вы- делите неверную линию связи и дважды щелкните па пей. Откроется диа- логовое окно Parameter Wiring. 4. На одной стороне этого диалогового окна появится трек анимации пара- метра Swivel Angle цепочки ИК, а па другой — специальный атрибут Swivel Angle точечного объекта. Разорвите неверную связь между этими пара метрами, щелкнув на кнопке Disconnect. 5. Перейдите к вершине иерархии па той стороне, где находится точечный объ- ект, и найдите объект LegControlRT. Перейдите в данной иерархии к пара- метру LegControlRT/Modified Object/Attribute Holder/Custom_ Attributes/Swivel Angle. Свяжите его с треком анимации Transform/ Swivel указанной выше цепочки ИК и щелкните па кнопке Connect. Введите следующее выражение: degtorad(Swivel_Angle) Новая связь должна появиться в окне Schematic View (рис. Б.20). Вот и все, что требуется для правки связей между параметрами. Если же эта мера не исправляет положение, выделите объект LegControlRT и убедитесь в том, что контроллеры его специальных атрибутов не являются экземплярами друг друга. Если это так, сделайте их уникальными, чтобы разорвать оставшиеся неверные связи между параметрами. А если и это не поможет, удалите контрол- лер, устанавливающий связь между параметрами, назначьте контроллер управле- ния по кривой Безье для специального атрибута и восстановите связь между па- раметрами. На это уйдет немного времени, и такая мера подействует.
1032 Приложение Б. Снаряжение и анимация персонажей Рис. Б.20. Обновленная связь в окнах Schematic View и Parameter Wiring Правка зеркально отображенных контроллеров Далее необходимо проверить связи между остальными контроллерами. Щелк- ните па кнопке Param Wires, чтобы отключить ее, и щелкните па кнопке Control- lers всплывающей панели Display. Схематический вид снаряжения должен таким же, как и па рис. В.21. Наибольший интерес представляют связи, проходящие справа палево, посколь- ку они, очевидно, указывают на объекты, расположенные па противоположной стороне персонажа (именно поэтом}' схематический вид бы i организован так, что- бы видны были обе стороны). Для чтобы поправить связь, дважды щелкните на пей, как было описано выше для контроллеров, связывающих параметры. В данном случае следует открыть редактор сценариев для контроллера управления по сцена- рию в объекте LegControlRT (рис. Б.22). Если этот контроллер пе удается найти в схематическом виде, он находится на треке Z Rotation внутри контроллера Euler_auto. Для того чтобы открыть диалоговое окно Script Controller, выделите грек Z Rotation, щелкните на нем правой кнопкой мыши и выберите команду Properties из всплывающего контекстного меню. Правка контроллера управления по сценарию выполняется очень просто. Об- ращение к объектам в таком контроллере осуществляется по имени (по крайней мере, в данном случае). Поэтому достаточно ввести новое имя объекта в сценарии этого контроллера. В частности, замените суффикс LT на RT во всем сценарии (такая замена требуется лишь в объявлении переменной objMod). Щелкните на кнопке Evaluate, а затем закройте окно Script Controller.
Приложение Б. Снаряжение и анимация персонажей 1033 Рис. Б.21. Взаимосвязи между контроллерами в схематическом виде Рис. Б.22. Диалоговое окно Script Controller Остальные связи установлены с помощью контроллеров управления реакцией. Их также следует поправить. Выделите одну из них и дважды щелкните на ней. что- бы открыть диалоговое окно Reaction Manager. Щелкните на кнопке React То и выделите объект LegControlRT. К сожалению, при этом нарушаются и сохра- ненные реакции, поэтом}' каждый контроллер управления реакцией придется соз- давать сызнова, выполнив описанную ранее процедуру снаряжения левой стопы. После правки всех контроллеров новые связи могут отсутствовать в схемати- ческом виде. В гаком случае закройте окно Schematic View и откройте его еще раз. Схематический вид снаряжения после правки должен выглядеть так, как по- казано на рис. Б.23.
1034 Приложение Б. Снаряжение и анимация персонажей Рис. Б.23. Схематический вид после правки взаимосвязей между контроллерами Окончательная правка снаряжения ног (.наряжение пог требует еще некоторой правки, включая сокрытие любых объектов, которыми не должен манипулировать аниматор, а также блокировку всех преобразований, которые не должны быть доступны для аниматора. На са мом деле речь идет не о сокрытии отдельных частей снаряжения с помощью стандартных команд Hide и Unhide, поскольку постоянно скрывая и отображая объекты на сцепе, аниматор может и не увидеть те элементы снаряжения персо- нажа. которые нужны ему в первую очередь. Ниже представлен иной способ для сокрытия отдельных объектов из снаряжения пог. В снаряжении пог персонажа используются точечные объекты, обладающие рядом свойств отображения, с помощью которых они могут принимать разный вид. Обратите внимание па панель Modify выделенного точечного объекта. В об- ласти Display из свитка его параметров находится рад его свойств отображения, активизируемых с помощью соответствующих флажков. Если сбросить все флаж кп, точечный объект станет невидимым. Они пе окажутся вновь видимыми после выбора команды Unhide Такой способ имеет немало преимуществ, и главное из них состоит в том, что он не дает аниматорам возможности привести снаряжение персонажа в полный беспорядок, обнаружив те его элементы, которыми ему не следует пользоваться. Поэтому если требуется скрыть отдельные части снаряже- ния от любопытных глаз аниматора, пользуйтесь точечными объектами с выклю- ченными свойствами отображения. В данном снаряжении пог отсутствуют точечные объекты, которые следовгию бы скрыть, поскольку все они, кроме двух точечных объектов, соединяющих ноги в точке с координатами (0,0,0), могут пригодиться аниматору. Но в то же время можно скрыть цепочки ИК, чтобы не сместить их случайно, создав сдвиг между целью И К и ее управляющим объектом. Для этого выделите цель ИК, перейдите
Приложение Б. Снаряжение и анимация персонажей 1035 к панели Motion и сбросьте флажок Enabled в области Goal Display (Отображение цели) из свитка IK Display Options (Нежимы отображения ИК) Повторите эту операцию для всех шести цепочек ИК, чтобы скрыть все ненужные аниматору элементы снаряжения обеих ног. НА ЗАМЕТКУ Если цепочки И К требуется выделить позднее, это можно сделать в диалоговом окне Select Objects или Schematic View. Далее необходимо заблокировать все ненужные аниматору преобразования. 1. Выделите объект LegControlLT. Перейдите к панели Hierarchy и щелкни- те на кнопке Link Info. На данной панели появятся два свитка: Locks (Блокировки) и Inherit (Наследование). В данном случае наибольший инте- рес представляет свиток Locks. Узел придется перемещать и поворачивать по всем трем осям, поэтому заблокировать следует лишь оси масштабиро- вания. Для этого установите все три флажка в области Scale из свитка Locks. Повторите эти же действия для объекта LegControlRT. Далее все остальные пункты данной последовательности действий придется повто- рять для аналогичных объектов па другой ноге. 2. Выделите объект Point_anklePivotLT. Он должен вращаться вокруг всех трех осей и, главным образом, вокруг локальной оси Z, однако перемещать или масштабировать его не нужно, поэтому заблокируйте все оси этих пре- образований, как описывалось выше. 3. Выделите объект Point_heelPivotLT. Заблокируйте все оси его переме- щения и масштабирования. 4. Выделите объект Point_ballRotatorLT. Заблокируйте все оси его пере- мещения и масштабирования, а также оси вращения X и Y, поскольку дан- ный объект должен вращаться только вокруг оси Z. Сделайте то же самое и для объекта Point_ballPivotLT. 5. Заблокируйте оси перемещения и масштабирования объекта Point_ toesPivotLT, оставив незаблокированными оси его вращения. Ограничение углов вращения сочленений Итак, вопросы отображения и преобразования отдельных элементов снаряже- ния решены, по остался еще один вопрос. Если проверить правильность передви- жения обоих колеи, то можно заметить, что они немного сгибаются, в то время как ноги каркаса модели остаются прямыми (откройте окно Layer Manager, чтобы ото- бразить на сцене каркас, если оп скрыт). Аиимаюры нередко скрывают каркас, чтобы пользоваться во время анимации персонажа замещающим каркасом или про- сто костями в качестве образца. При этом аниматору приходится выпрямлять ноги персонажа, чтобы поставить его в определенную позу. Но если в снаряжении ноги будут выпрямлены, то в каркасе колени могут быть согнуты в обратную сторону, в результате чего возникает разность углов вращения ног в снаряжении и каркасе. Во избежание этого можно, в частности, ограничить утол вращения сочленения. 1. Выделите объект Bone_calfLT (эту же операцию следует повторить и для объекта Bone_calfRT).
1036 Приложение Б. Снаряжение и анимация персонажей 2. Перейдите к панели Hierarchy, щелкните на кнопке IK и раскройте свиток Rotational Joint (Вращательное сочленение). Данная кость вращается вокруг своей оси Z. Именно это вращение и следует ограничить, чтобы исключить “псрсразгибание” колена персонажа. 3. Установите флажок Limited в области Z Axis из свитка Rotational Joint и ос- тавьте без изменения пулевое значение в поле From, чтобы зафиксировать колено в несколько согнутом положении. Теперь аниматор не сможет вытянуть ногу' персонажа полностью, о чем его, скорее всего, придется предупредить. 4. Увеличьте постепенно значение в счетчике То. Как видите, кость повора- чивается назад. Когда же угол се вращения достигнет любого приемлемого значения, оставьте это значение (порядка 166). Таким образом, кость будет поворачиваться на угол, ограничиваемый значениями, установленными в полях From и То. Таким образом, аниматору доступны только те элементы снаряжения ног, ко торые действительно могут ему понадобиться. А преобразования он может выполнять только тем способом, какой предоставлен в его распоряжение. Снаряжение туловища персонажа Перейдем к снаряжению туловища персонажа, включая позвоночник, голову и шею. Для того чтобы упростить манипулирование позвоночником, безусловно, потребуются специальные элементы управления. Позвоночник представляет собой трудный участок модели персонажа. По тра- диции для его снаряжения применяется прямая кинематика. Но при этом услож- няется процесс его анимации, поскольку аниматору приходится поворачивать каждую конечность вручную, чтобы добиться требуемой позы. Тем не менее для предоставления аниматору дополнительных возможностей управлять данным участком тела персонажа приходится выбирать именно такой подход к снаряже- нию. Применение ИК в данном случае ничего не дает, поскольку' ИК зачастую до- пускает вращение вокруг только одной оси. Однако существует альтернатива данному походу в виде сплайнового решателя ИК (Spline IK Solver). Это цепочка ИК, в которой сплайн служит для управления вращением объектов, находящихся в данной цепочке. Манипулируя этим сплай- ном, можно заставить цепочку' костей принять конкретную позу пли повернуть ее определенным образом. Такой способ похож па прямую кинематику, по в то же время он обладает преимуществами ИК. А некоторые его недостатки будут опи- саны позже. Если вам не приходилось пользоваться решателем Spline IK Solver, прежде всего выполните ряд упражнений, посвященных злому типу решале гя ИК и входящих в состав 3ds max, чтобы нау'читься им пользоваться. Снаряжение позвоночника Снаряжение позвоночника начните со следующей процедуры. 1. Измените масштаб изображения в окне вида спереди, чтобы было хорошо видно туловище и шею персонажа.
Приложение Б. Снаряжение и анимация персонажей 1037 2. Перейдите к панели Create и щелкните на кнопке категории Systems. За- тем щелкните на кнопке Bones. Прежде чем создавать цепочку костей, рас- кройте список в свитке IK Chain Assignment (Назначение цепочки ИК) и выберите решатель Spline KSolver. 3. Установите флажок Assign То Children (Назначить для порожденных объ- ектов), оставив сброшенным по умолчанию флажок Assign То Root (Назна- чить для корпя иерархии). Сплайновый решатель ИК применяется к це- почке костей тотчас после его создания. 4. Щелкните в текущем видовом окне чуть ниже пупка персонажа и, продол- жая щелкать, перемещайтесь вверх. После каждого щелчка создается оче- редная кость позвоночника. Создайте подобным способом четыре кости приблизительно одного и того же размера, а также концевую кость. 5. Щелкните правой кнопкой мыши, чтобы завершить данную цепочку у ос- нования шеи. Откроется диалоговое окно Spline IK Solver (рис. Б.24). Рис. Б.24. Диалоговое окно Spline IK Solver
1038 Приложение Б. Снаряжение и анимация персонажей 6. Присвойте вновь созданной цепочке ИК имя IKChain_spine (Цепочка ИК для позвоночника), оставив без изменения остальные параметры в диа- логовом окне Spline IK Solver. Щелкните на кнопке ОК. Позвоночник должен состоять из четырех звеньев и концевой кости па ci лом его верху. Кроме того, снаряжение позвоночника должны составить пять точеч- ных объектов (четыре из них связаны с пятым), сплайн в центре костей и цель ИК. Теперь необходимо поправить форму цепочки костей позвоночника, чтобы вписать ее в каркас модели персонажа. 1. Перетащите первый точечный объект, поместив его в точке с координата- ми (0,0,0). За ним последуют все остальные точечные объекты из снаря жепия позвоночника. Продвигаясь вверх, выделите каждый точечный объ скт и перемести те его в точку с координатой 0 по оси X. Таким образом, позвоночник выравнивается и устраняются любые ошибки, которые могли возникнуть в результате неточного выполнения щелчков. 2. Перейдите к окну вида справа и переместите первый точечный объект не- много назад, ближе к спине персонажа. 3. Продвигаясь вверх, выделите следующий точечный объект и переместите его, расположив так, чтобы он повторял по форме спину персонажа. По- вторите эти же действия для остальных точечных объектов. 4. Переместите последний точечный объект ближе к центру шеи. Не обра щайте внимания на то, что кости не достигают точечных объектов. Этот недостаток будет в дальнейшем устранен. Далее следует откорректировать длину каждой кости, чтобы она плотно сиде- ла на каждом точечном объекте. 1. Выделите последнюю кость в цепочке (только не концевую). 2. Выберите из главного меню команду' Characters Bone Tools. Щелкните па кнопке Bone Edit Mode в диалоговом окне Bone Tools. Выберите инструмент Align па основной панели инструментов. Выделите ближайший точечный объ- ект в качестве целевого объекта выравнивания (Align Target Object). Выравни- ваемый точечный объект должен находиться у основания кости. Установите все флажки в области Align Position диалогового окна Align Selection. Основание кости переместится туда, где находится выбранный точечный объект. Подоб- ным образом следует выровнять каждую кость и ее точечный объект. 3. Повторите описанную выше процедуру для остальных костей. Кроме того, вы- ровняйте концевую (пятую) кость по пятому точечному объекту', чтобы в ко- нечном итоге вершина цепочки костей оказалась в центре шеи. Затем выйдите из режима правки костей и закройте диалоговое окно Bone Tools (рис. Б.25). 4. Переименуйте все элементы снаряжения позвоночника. В частности, при- свойте костям позвоночника имена Bone_spine01-Bone_spine04, а коп цевоп кости — имя Bone_spineNUB. Выделите сплайн в центре костей (для этого, возможно, придется перейти в каркасный режим отображения (Wireframe) в видовом окне) и присвойте ему имя SplineIKNode_spine (Сплайн узла ИК в позвоночнике). Переименуйте точечные объекты, на- чиная с нижнего (у основания позвоночника), следующим образом: Point_spineCTRL01-Point_spineCTRL05.
Приложение Б. Снаряжение и анимация персонажей 1039 Рис. 6.25. Цепочка костей позвоночника в завершенном виде после прав- ки и выравнивания 4. Выделите кости позвоночника и откройте диалоговое окно Bone Tools. Раскройте свиток Fin Adjustment Tools (Инструменты настройки выступов па костях) и установите флажок Front Fin (Передний выступ). Передний выступ окажется справа, а не спереди персонажа. Выровняйте все кости по- звоночника, чтобы сориентировать их в нужном направлении. 5. Выберите объект IKChain_spine и перейдите к панели Motion. Раскройте свиток IK Solver Properties и установите значение 90 параметра Twist Start Angle (Начальный угол скручивания). Теперь выступы костей должны быть сориентированы в правильном направлении. Выступы на костях Выступы па костях выполняют все важные функции. Во-первых, они позволяют определить “исходный объем” персонажа. Многие аниматоры пользуются во время анимации персонажей замещающими объектами или просто костями, чтобы уско- рить данный процесс. Но при этом аниматор теряет важную информацию об объе- ме. Если скрыть каркас персонажа и оставить только его кости, по ним трудно будет судить, какой объем персонаж тапимает в пространстве. Это может привести к та- ким нежелательным побочным эффектам, как автопересечения. И здесь па помощь приходят выступы на костях, поскольку они дают представление о том, какой объем
1040 Приложение Б. Снаряжение и анимация персонажей персонаж занимает в пространстве. О i корректировав размеры выступов на костях приблизительно до размеров персонажа, .можно установить, сколько места в про- странстве занимает каркас персонажа, пе отображая его в видовом окне. Вторая функция выступов состоит в том, что с их помощью можно определить на- правление огибающей кости в модификаторе Skin. Самая длинная ось ориентации выступа на кости определяет направление оболочки, которую она должна запять па данной ксюти. Это означает, что, создав длинный выступ на кости, можно повернусь исходную оболочку в нужном направлении. Именно поэтому очень важно решить, бу- дут ли использоваться выступы на костях и где именно следует это сделать. Что же касается позвоночника, то, поскольку грудная клетка многих персонажей занимает большой объем, для определения этого объема целесообразно использо- вать выступы на костях. Следовательно, установите подходящие размеры выступов на каждой кости позвоночника в диалоговом окне Bone Tools. На рис. Б.26 приве- ден примерный вид персонажа после подобной процедуры. Рис. 6.26. Выступы на цепочке костей позвоночника
Приложение Б. Снаряжение и анимация персонажей 1041 Формирование поведения позвоночника Сейчас необходимо выработать определенное поведение позвоночника. Пре- жде всего, каждая управляющая точка позвоночника (точечный объект) должна действовать независимо от остальных. Так, если переместить первый точечный объект, находящийся у основания позвоночника, за ним последуют остальные то- чечные объекты. Но такое поведение позвоночника в данном случае не требует- ся, поэтому его следует исправить. 1. Выделите объект SplineIKNode_spine и перейдите к папели Modify. К это- му объекту' применен модификатор Spline IK Control (Управление сплайном для ИК). 2. В области Link Types (Типы связей) из свитка параметров данного модифи- катора выбрана кнопка-переключатель Link All to Root (Связать все объекты с корневым). Именно поэтому все остальные точечные объекты следуют за первым. Щелкните в данной области па кнопке-переключателе No Linking (Без связывания). Теперь каждый точечный объект можно перемещать не- зависимо от других. Ниже будет организован еще один уровень снаряжения позвоночника. На этом уровне следует ввести дополнительные элементы управления, позволяющие устанавливать персонаж в типичные позы. Для более точного управления будут использованы уже имеющиеся точечные объекты. 1. Создайте точечный объект в окне вида в перспективе и выровняйте его по- ложение и ориентацию по первому точечному объекту Point_spineCTRL01, находящему у основания позвоночника. Установите флажок Cross в свитке его параметров и присвойте ему имя Point_spineCONTROL_low (Точечный объект, управляющий нижней частью позвоночника). 2. Повторите эти действия еще два раза, выровняв вновь созданные точечные объекты по уже имеющимся точечным объектам Point_spineCTLR03 и Point_spineCTRL05 и присвоив им имена Point_spineCONTROL_mi<3 (Точечный объект, управляющий средней частью позвоночника) и Point_spineCONTROL high (Точечный объект, управляющий верхней частью позвоночника) соответственно. Полученный результат должен со- ответствовать рис. Б.27. 3. В данный момент вновь созданные точечные объекты трудно выделить, по- скольку они находятся внутри каркаса па том же месте, где и ряд других объектов. Их следует расположить вне каркаса, не меняя в то же время те- кущее местоположение их точек опоры. Для этого выделите новые точеч- ные объекты и перейдите к панели Hierarchy. Щелкните иа кнопке Affect Object Only (Оказывать влияние только на объект) в свитке Adjust Pivot (Коррекция точки опоры) па данной панели. Перетащите три точечных объекта назад по оси Y, ч тобы расположить их за каркасом модели персо- нажа. Щелкните на кнопке Affect Object Only, чтобы отключить ее. Полу- ченный результат должен соответствовать рис. Б.28.
1042 Приложение Б. Снаряжение и анимация персонажей А для чего все это делается? Для того чтобы упростить выделение точечных объектов. Но в то же время точки опоры этих и других точечных объектов должны быть выровнены, поскольку положение точечных объектов нижне- го уровня будет ограничиваться положением точечных объектов верхнего уровня. 4. Выделите объект Point_spineCTRL01 и выберите из главного меню ко- манду Animation^Constraints^Position Constraint. Затем выделите объект Point_spineCONTROL_low в качестве цели ограничения. Введите ограни чепие на положение следующих узлов. • Point_spineCTRL03 и Point_spineCONTROL_mid • Point_spineCTRL05 и Point_spineCONTROL_high Рис. Б.27. Новые элементы управления низкого уровня, расположенные на своих местах
Приложение Б. Снаряжение и анимация персонажей 1043 Рис. 6.28. Точечные объекты в новом положении 5. Свяжите (но не ограничивайте) объекты Point_spineCTRL02-Point_ spineCTRL04 с объектом Point_spineCONTROL_mid. 6. Попробуйте переместить каждый объект типа Point_spineCONTROL, чтобы посмотреть, как двигается позвоночник. Выделите все вновь созданные точеч- ные объекты и зафиксируете их положение. (Если в квадратном меню Anima- tion отсутствует соответствующая команда, назначьте контроллер Position List для каждого из этих объектов и еще один контроллер Position XYZ в списке контроллеров, а затем сделайте его активным.)
1044 Приложение Б. Снаряжение и анимация персонажей Элементы управления скручиванием Далее в снаряжение позвоночника необходимо ввести элементы управления скручиванием, чтобы один точечный объект поворачивал нижнюю часть тулови ща персонажа а другой — верхнюю его часть. Ради простоты ниже будут исполь- зованы созданные выше точечные объекты, управляющие верхней и нижней ча- стью позвоночника. 1. Выделите объекты Point_spineCONTROL_high и Point_spineCONTROL_ low Point, а затем н-ажмитс клавишу <Ак> и щелкните правой кнопкой мы- ши в любом видом окне. Появится квадратное меню Animation. 2. Выберите команду Freeze Rotation из левого верхнего квадранта этого квадратного меню. К выделенным объектам будет применен контроллер Rotation List, в списке которого находятся два контроллера Euler XYZ. 3. Выделите объект IKChain_spine. Перейдите к напели Motion и назначьте контроллер Float Expression на треке анимации параметра Twist End Angle. Откроется диалоговое окно Expression Controller (Контроллер управления по выражению). Создайте скалярную переменную rotZ. 4. Щелкните на кнопке Assign to Controller, а затем назначьте данную перемен- ную для трека Point_spineCONTROL_high/Keyframe XYZ/Z Rotation в диалоговом окне Track View Pick. Введите в окне Expression Controller сле- дующее выражение: rotZ 5. Щелкните па кнопке Evaluate, выделите объект Point_spineControl_ high и поверните его вокруг оси Z. Позвоночник должен скрутиться, как показано па рис. Ь.29. 6. Повторите эту процедуру для трека анимации параметра Twist Start Angle, по на этот раз в качестве образца для значения этого параметра выберите угол вращения объекта Point_spineCONTROL_low и назначьте для ука- занного точечного объекта вместо переменной следующее выражение: rotZ + degToRad(90) 7. В этом выражении выполняется преобразование из градусов в радианы. Ведь позвоночник приходится поворачивать па 90° , чтобы развернуть кости лицевой стороной вперед. И если раньше это было сделано вручную, то теперь — автоматически, с помощью приведенного выше выражения. Как только будет выполнена описанная выше процедура, при вращении то- чечного объекта будет поворачиваться и весь позвоночник.
Приложение Б. Снаряжение и анимация персонажей 1045 Create Delete Name potZ Scala Vector iV»i» ’ fcfwn• Fvcjbw не- -ф- P<i*nt sprne£(l NT R 0L_mid 1^'-ф-Ро#1 _*pineC0NTR0l high Vatwbte Parameter: Scalars Vectors г Desertion-- •O’ . *.n Pf.tl. . ' 1Ш1' -"-<• RcfcalUt * Rc] iralP^e ' -» fic] eyhameXYZ EuerXYi .---f~|X Rotation Bezier Float ‘ j j----fi~~|Y Rotation Bezier Float *— 6~~l^ Rotation Bezier Float Assigned to: Pomt_$prd2ONTROL_high\Z T — ticks F frames S secs NT - normalized Ime Function List Asssgn to Constant Assign to Controfler Save Load Debug Evaluate ' Close | --BerH Scale 6-ф- ЬЩРоНИЙИ Рис. 6.29. Контроллер управления по выражению для анимации параметра Twist End Angle Теперь необходимо организовать вращение против часовой стрелки верхней части позвоночника, чтобы он нс поворачивался при изменении значения пара- метра Twist Start Angle. 1. Выделите объект IKChain_spine. 2. Перейдите к панели Motion и назначьте контроллер Float List для трека анимации параметра Twist End Angle. При этом сохраняется созданный ра- нее контроллер управления по выражению. 3. Назначьте контроллер Float Expression для трека Available. 4. Создайте скалярную переменную rots в диалоговом окне Expression Con- troller
1046 Приложение Б. Снаряжение и анимация персонажей 5. Назначьте эту переменную для трека Z Rotation в контроллере Keyframe XYZ Rotation анимации объекта Point_spineCONTROL_low. Введите в редакторе выражении следующее выражение: -rots Таким образом, верхняя часть позвоночника поворачивается в сторону, про- тивоположную вращению нижней его части. Далее необходимо ввести ряд дополнительных контроллеров, чтобы упро- стить изящное сгибание позвоночника дугой, не перемещая каждую его управ ляющую точку' в отдельности. Это можно считать третьим уровнем снаряжения позвоночника. Каждый такой уровень упрощает управление им. 1. Создайте в окне вида в перспективе три точечных объекта. Установите флажок Axis Tripod (Тренога осей) в области свойств отображения из свит- ка их параметров и присвойте им следующие имена: Spine_controlLOW, Spine. controlMID и Spine controlHIGH. Выровняйте их положение и ориентацию по точечным объектам Point_spineCONTROL_low, Point_ spineCONTROL_mi<3 и Point_spineCONTROL_high соответственно ис- пользуя точки опоры (рис. Б.30). 2. Свяжите объекты Spine_controlHIGH и Spine_controlMID, а также объекты Spine_controlMID и Spine_controlLOW. 3. Создайте круглый сплайновый объект в окне вида в перспективе и выров няйтс его положение и ориентацию по объекту Point_spineCTRL01. Вы- берите для него темно-синий цвет, чтобы лучше его распознавать, а затем присвойте ему имя SpineControl arc. Сделайте радиус данного объекта достаточно большим, чтобы он свободно охватывал талию персонажа (в данном случае вполне подойдет радиус 70 см). Свяжите объекты Spine_ controlLOW и SpineControl arc. Если повернуть круглый сплайновый объект, то можно замелить, как его вращение передастся точечным объектам (в данный момент кости позвоноч- ника не должны двигаться). Именно этого и требовалось добиться. Но, кроме того, необходимо добиться сгибания позвоночника дутой. Для этого необхо- димо выполнить двойное преобразование точечных объектов. Это означает, что они должны не только наследовать вращение, по и копировать сто. Таким образом, точечный объект, расположенный в иерархии пыже, будет повора- чиваться больше, а позвоночник - постепенно сгибаться дугой. 4. Выделите все три точечных объекта типа Spine_control, нажмите клавишу <Ак> и щелкните правой кнопкой мыши, чтобы вызвать квадратное меню Animation, а затем выберите команду Freeze Rotation из левого верхнего квад- ранта этого квадратного меню. Выделите объект Spine_controlMID, пе- рейдите к панели Motion и разверните треки анимации контроллера управле- ния вращением. Выберите коплроллср Initial Pose, присвойте ему имя Auto и разверните его треки анимации. Назначьте копл роллср Float Expres- sion для трека X Rotation в текущем контроллере. Создайте скалярную пе- ременную rot.
Приложение Б. Снаряжение и анимация персонажей 1047 Рис. Б.30. Вновь созданные и выровненные точечные объекты Назначьте эту переменную для трека X Rotation анимации объекта SpineControl_arc. Введите в окне Expression Controller следующее выра- жение: rot Щелкните па кнопке Evaluate и закройте окно Expression Controller 5. Вновь поверните объект SpineControl_arc вокруг оси X Средняя часть позвоночника будет поворачиваться больше, чем обычно, что, собственно, и требуется. Таким образом, чем больше смешается верхний точечный объ- ект, тем сильнее позвоночник сгибается дугой. Повторите эти же действия для трека У Rotation, назначив для пего контроллер управления по вы- ражению. А для трека Z Rotation этого делать не нужно, поскольку скру- чиванием позвоночника управляет другой объект. Остается лишь собрать все вместе, чтобы управлять вращением костей позво- ночника с помощью единственного круглого сплайнового объекта. Для этого свяжите вместе следующие объекты.
1048 Приложение Б. Снаряжение и анимация персонажей • Point_spineCONTROL_low и Spine_controlLOW • Point_spineCONTROL_midH Spine_controlMID • Point_spineCONTROL_high и Spine_controlHIGH Теперь весь позвоночник можно поворачивать с помощью одного круглого сплайнового объекта. Завершение снаряжения позвоночника Несмотря па то что снаряжение позвоночника действует, осталось сделать еще кое-что. Прежде всего необходимо полностью скомпоновать снаряжение позво- ночника. Как следует из схематического вида, в данный момент позвоночник пред- ставляет собой большое скоп гснис несвязанных друг с другом объектов. Их нужно объединить в единое целое, но так, чтобы ненужные преобразования не передава- лись с одного уровня па другой. Кроме того, необходимо выполнить следующее • Настроить ряд объектов таким образом, чтобы они лучше реагировали па вращение позвоночника. • Свести все элементы управления к одному объект}', чтобы аниматору не нужно было перескакивать с одного узла па другой для решения разных за- дач анимации. • Создать ряд особых элементов управления. • Окончательно поправить снаряжение позвоночника. ИI ак, приступим. 1. Сначала необходимо собрать все вместе. Создайте новый точечный объект, ус- тановите флажок Box в области свойств отображения из его свитка парамет- ров, сделайте этот объект чуть больше, чем остальные точечные объекты в по- звоночнике, присвойте ему имя Point_spineAssembly (Точечный объект для сборки позвоночника) и выровняйте его положение и ориентацию по объекту Point_spineCTRL01, используя точку опоры. Выделите по очереди и свяжите с этим новым точечным объектом следующие объекты: IKChai _spine, SplineIKNode_spine, Point_spineCTRL01, Point_spineCTRL03 и Point_ spineCTRL05. 2. Создайте новый точечный объект и выровняйте только его положение по кости Bone_spine01. Присвойте ему имя Point_boneAssembly (Точеч ный объект для сборки костей) и свяжите с костью Bone_spine01. Затем свяжите вместе точечные объекты Point boneAssembly и Point_ spineAssembly. 3. Создайте новый точечный объект (еще больше, чем предыдущий, чтобы его было удобно выделять й распознавать), выровняйте его аналогично описанному выше и присвойте ему имя Point_SPINE. Свяжите с ним объ- ект Point_spineAssembly. 4. Свяжите объекты Point_SPINE и SpineControl_arc. Теперь схематический вид снаряжения позвоночника должен выглядеть так, как показано на рис. Б.31.
Приложение Б. Снаряжение и анимация персонажей 1049 Рис. Б.31. Схематический вид завершенной иерархии объектов позвоночника Если проверить вращение позвоночника, то можно обнаружить следующий недостаток в снаряжении позвоночника. Когда он поворачивается с помощью сплайнового объекта, наклоняясь вперед, его верхние кости, достигая опреде- ленного угла поворота, неожиданно поворачиваются па 180°. Это объясняется недостатком наследования, присущим решателю Spline IK Solver. Кость перево- рачивается. достигая угла поворота 90° относительно своего родительского объ- екта Этот недостаток необходимо устранить. 1. Выделите объект IKChain_spine. Перейдите к панели Motion. В свитке IK Solver Properties ниже метки Pick Upnode (Выбрать верхний узел) должна быть выбрана кнопка с именем выбранного объекта Point_spineCTRL01. 2- Щелкните на этой кнопке и выделите объект Point_SPINE. Теперь кости пе переворачиваются. Впрочем, этот недостаток может проявляться при крайних углах поворота, па что следует обращать особое внимание во врс мя анимации. А теперь, когда практически весь позвоночник составляет единую иерархию (кроме тех объектов, которые будут введены далее для завершения его снаряже- ния), необходимо ввести специальные атрибуты и связать их вместе с остальны- ми параметрами.
1050 Приложение Б. Снаряжение и анимация персонажей 1. Выделите объект SpineControl_arc и примените к нему .модификатор Attribute Holder. Используя всплывающую панель Parameter Editor, введите в э том .модификаторе следующие специальные атрибуты. Специальный атрибут#! • Parameter Туре = Angle • Ul Туре = Spinner • Name = Lower Twist (Скручивание нижней части позвоночника) • Width = 100 • From = -360 • То = 360 • Default = 0 • Alignment Center • Add Attribute to Type = Object’s Current Modifier 2. Ниже приведены лишь те параметры других специальных атрибутов, кото- рые необходимо изменить, а остальные параметры имеют те же значения, что и у приведенного выше специального атрибута. Специальный атрибут #2 • Name = Upper Twist (Скручивание верхней части позвоночника) Специальный атрибут #3 • Parameter Type Float • Name = Propagation (Распространение) • From = 0 • То = 100 3. Установите двухстороннюю связь .между специальным атрибутом SpineControlALL/Modified Object/Attribute Holder/Custom_ Attributes/Lower Twist и треком анимации Point_spineCONTROL_ low/Transform/Rotation/Keyframe XYZ/Z Rotation. Оставьте без изменения выражения с обеих сторон данной связи (функция degtorad в выражении не требуется, поскольку в данном случае используются данные типа Angle). А для чего нужна двухсторонняя связь? Для тою чтобы аниматор мог пово- рачивать нижнюю часть позвоночника, используя специальный атрибут пли выделяя и вращая непосредственно точечный объект. Одни аниматоры предпочитают пользоваться специальными атрибутами, другие же выделя- ют объекты и выполняют их непосредственное преобразование. Благодаря двухсторонней связи им предоставляются обе возможности. Теперь необходимо связать остальные специальные* атрибуты. 4. Установите двухстороннюю связь между специальным атрибутом SpineControlALL/Modified Object/Attribute Holder/Custom_ Attributes/Upper Twist и треком анимации Point_spineCONTROL_ high/Transform/Rotation/Keyframe XYZ/Z, используя те же выраж - ния, что и прежде. 5. Теперь необходимо связать специальный атрибут Propagation. Он слу- жит для распространения вращения от нижней части позвоночника
Приложение Б. Снаряжение и анимация персонажей 1051 к верхней (это стандартное поведение сплайнового решателя ИК). В дан пый мо.мепт значение этого специального атрибута равно нулю, т.е. враще- ние не распространяется. Если же установить значение 100 данного атри- бута, скручивание полностью распространится вверх ио позвоночнику (в соответствии со стандартным поведением). 6. Установите одностороннюю связь между специальным атрибутом SpineControlALL/Modified Object/Attribute Holder/Custom_ Attributes/Propagation и вторым треком анимации IKChain_spine/ Transform/Twist End Angle/Weights/Weight: Float Expression. Эта односторонняя связь должна проходить от точечного объекта к цели ИК. Соответствующее выражение должно иметь следующий вид: (100-Propagation)/100 Деление на 100 требуется потому, что в контроллере управления вращени- ем используются значения в пределах от 0 до 1, тогда как в специальном ат- рибуте — значения в пределах от 0 до 100 (рис. Б.32). Рис. Б.32. Выражение для связывания специального атрибута Propagation Итак, получено полностью автоматизированное сложное снаряжение позво- ночника. Для того чтобы проверить функции каждого элемента управления, соз дайте небольшую анимацию, используя управляющий объект SpineControlALL для вращения в разных направлениях. Затем воспроизведите эту’ анимацию, ос тапавливаясь на каждом ключевом кадре, корректируя значения в счетчиках спе- циальных атрибутов и наблюдая их действие на позвоночник. Снаряжение головы и лица персонажа Теперь необходимо создать элементы управления шеей, головой и частью ли- ца персонажа, а затем связать их вместе, чтобы получить элементарное снаряже- ние головы персонажа. Эти элементы управления позволят осуществить анима- цию глаз и челюсти персонажа.
1052 Приложение Б. Снаряжение и анимация персонажей 1. Перейдите сначала к окну вида справа, а затем к папели Create и щелкните на кнопках Systems и Bones. Прежде чем создавать кости в текущем видо- вом окне, отключите на панели Create все выступы па костях. Сделайте крупнее изображение в текущем видовом окне, чтобы ясно видеть шею и голову персонажа, оставив в то же время немного места сверху и снизу. 2. Если для системы костей по-прежнему выбран решатель SplinelKSolver, выбе- рите вместо него решатель IKHISolver. Начните создание цепочки костей, щелкнув на кости Bone_spine04. Таким образом, новая цепочка костей бу- дет начата в точке опоры выбранной кости и автоматически свяжется с пей. 3. Щелкните на том месте, где кость сходится с головой. Перетащите курсор вверх и щелкните чуть выше головы. Щелкните правой кнопкой мыши, что- бы завершить создание костей. Активизируйте правый выступ па кости голо- вы, чтобы проверить ориентацию костей лица персонажа в правильном на- правлении (рис. Б.ЗЗ). Рис. Б.ЗЗ. Цепочка костей головы и шеи
Приложение Б. Снаряжение и анимация персонажей 1053 4. Присвойте первой кости в данной цепочке имя Bone_neck (Шейная кость), а второй — Bone_hea<3 (Кость головы). Удалите третью (концевую кость), поскольку она в данном случае не нужна. 5. Создайте в окне вида справа кость, проходящую от верхнего края шейной кости к точке подбородка. Щелкните правой кнопкой мыши, чтобы завер- шить создание цепочки костей, и удалите небольшую кость на конце этой цепочки. Присвойте данной кости имя Bone_jaw (Челюстная кость) и свя- жите ее с костью Bone head. 6. Активизируйте выступы па упомянутых выше костях и откорректируйте их размер (рис. Б.34). Рис. Б.34. Кости головы, шеи и челюсти с выступами и размерами, откорректированными по голове персонажа (ради простоты каркас скрыт) В процессе создания костей шея была связана с позвоночником, поэтому она будет повторять его движения всякий раз, когда он повернется. Но ради просто- ты установки головы в разные положения она должна двигаться независимо от шеи. А на тот случай, если аниматору потребуется, чтобы голова повторяла дви-
1054 Приложение Б. Снаряжение и анимация персонажей жепия шеи, следует создать специальный элемент управления. Еще один такой элемент потребуется для вращения головы вручную. 1. Создайте новый точечный объект. Установите флажок Cross в области свойств отображения из свитка его параметров. Присвойте этому объекту имя Point_headCTRL. Выровняйте его положение и ориентацию по кости Bone_head, используя точку опоры. Выберите сначала инструмент Move, а зачем локальную систему опорных координа т. 2 Перейдите к панели Hierarchy, щелкните сначала на кнопке Pivot, а зачем на кнопке Affect Object Only и переместите выбранный точечный объект на- зад, расположив его за головой персонажа. Отключите режим Affect Object Only. Свяжите сначала данный точечный объект с костью Bone_neck, а за- тем кость Bone head с этим объектом. Щелкните па кнопке Link Info из па- нели Hierarchy и сбросьте все флажки в области Rotate из свитка Inherit для данного точечного объекта (рис. Б.35). Рис. Б.35. Точечный объект, управляющий головой и шеей персонажа 3. Выделите объект Point_headCTRL и зафиксируйте его вращение. Перей- дите к панели Motion, назначьте контроллер Euler XYZ па доступном треке анимации вращения (Available) и замените контроллер Keyframe XYZ контроллером Orientation Constraint. Сделайте этот контроллер ак- тивным, щелкните па кнопке Add Onentat on Target (Ввести цель ограниче- ния по ориентации) и выделите объект Bone_neck Установите флажок Keep Initial Offset (Сохранить исходное смещение).
Приложение Б. Снаряжение и анимация персонажей 1055 Если теперь повернуть объект SpineControlALL, вместе с позвоночником повернется и голова. Такое поведение головы будет усовершенствовано с помо- щью ряда дополнительных элементов управления. Снаряжение лица персонажа Далее необходимо снарядить части лица персонажа, приводимые в движение костями (в данном случае — челюсть и глаза). 1. Отобразите на сцене каркас модели персонажа и, если требуется, расфик- сируйте его. Создайте два точечных объекта, установите флажок Cross в области свойств отображения из свитка их параметров и выровняйте по- ложение и ориентацию этих объектов по каждому' из глаз (рис. Б.36). При- свойте вновь созданным точечным объектам имена EyeTgt_LT (Цель для левого глаза) и EyeTgt_RT (Цель для правого гд*за) соответственно. Рис. Б.36. Точечные объекты, выровненные по глазам и служащие в качестве их целей
1056 Приложение Б. Снаряжение и анимация персонажей 2. Выберите сначала инструмент Move, а затем локальную систему опорных ко- ординат. Выделите обе цели для глаз и переместите их вперед, расположив перед персонажем. Выделите один глаз и примените к нему ограничение по линии взгляда (LookAt Constraint), выбрав находящийся перед этим глазом точечный объект в качестве цели для данного ограничения. При этом глаз перевернется. Следовательно, необходимо изменить локальную ось, исполь- зуемую для ограничения по ориентации. Для этого перейдите к панели Motion и щелкните на кнопке-переключателе Z в области Select LookAt Axis (Выбор оси для ограничения по линии взгляда) из свитка LookAt Constraint. Глаз вы ровняется по линии взгляда в направлении точечного объекта, служащего в качестве его цели. 3. Сбрось ге флажок View! ne Length Absolute (Абсолютная длина линии взгля да), чтобы длина вектора, обозначающего ограничение по линии взгляда, динамически корректировалась в видовых окнах. Повторите эти же дейст- вия для другого глаза и его цели. СОВЕТ Если вектор вам мешает, отмените его отображение, установив флажок Viewl пе Length Absolute и введя нулевое значение в поле Viewhne Length. 4. Создайте еще один точечный объект, присвойте ему имя Point_eyesCTRL (Точечный объект, управляющий глазами) и установите флажок Box в об- ласти свойств отображения из свитка их параметров. Выровняйте его по одному ыз точечных объектов, служащих в качестве целей для глаз. Выбе- рите сначала инструмент Move, а затем систему мировых опорных коорди- нат. Используя диалоговое окно Transform Type-In, переместите данный точечный объект в точку с координатой 0 по оси X. Затем сместите его не- много вперед, расположив перед остальными точечными объектами. Свя- жите оба объекта, EyeTgt_LT и EyeTgt RT, с объектом Point_eyesCTRL. Теперь, перемещая точечный объект Point_eyesCTRL, можно управлять обоими глазами, а перемещая объекты EyeTgt_LT и EyeTgt_RT,— управ- лять каждым глазом в отдельности (рис. Ь.37). 5. Необходимо добиться того, чтобы глаза повторяли движения головы, но в то же время аниматору должна быть предоставлена возможность привязывать глаза к любому объекту, находящемуся па сцепе, независимо от того, движет- ся он или нет. В 3ds max для этой цели имеется ограничение по линии связи (Link Constraint). Создайте такое ограничение, чтобы привязать трек анима- ции преобразований (Transform) объекта Point—eyesCTRL к обьекту Point_headCTRL. Теперь цели для глаз будут повторять движения шеи. 6. Для того чтобы ввести эти элементы управления в иерархию, свяжите объ- ект Point_eyesCTRL с объектом Point_headCTRL. Но в такой иерархии наследуемые преобразования заменяются ограничением по линии связи. 7. Выделите оба каркасных объекта глаз (EyeLT и EyeRT) и свяжите их с ко- стью Bone_head. Итак, получено отлично действующее снаряжение голо- вы персонажа.
Приложение Б. Снаряжение и анимация персонажей 1057 Рис. Б.37. Снаряжение глаз Далее следует ввести ряд специальных атрибутов, приводящих в движение часть лица персонажа посредством элементов управления глазами. Это необхо- димо для сведения всех элементов управления лицом персонажа в единый объект, а следовательно, для удобства работы аниматора. 1. Выделите объект Point_eyesCTRL и примените к нем}- модификатор Attribute Holder. Используя всплывающую панель Parameter Editor, введите в этом моди- фикаторе следующие специальные атрибуты. Специальный атрибут #1 • Parameter Туре = Float • III Type = Slider • Name = Inherit Spine (Наследование движений позвоночника) • Width = 160 • From = 0 • To 100 • Default = о • Alignment = Center • Ticks (Отметки) = 4 • Add Attribute to Type = Selected Object’s Current Modifier Специальный атрибут #2 • UI Type = Spinner • Width = 60 • Name = Value (Значение)
1058 Приложение Б. Снаряжение и анимация персонажей • Size = 7 О • Alignment = Left (По левому краю) • (Остальные параметры оставьте без изменения) Специальный атрибут #3 • LII Type Spinner • Width = 100 • From = 8 • То = 20 • Alignment = Center 2. Выделите объект Bone_jaw и зафиксируйте его вращение. Затем установи- те следующие связи между параметрами. Связь #1 Между специальным атрибутом Wire Point_eyesCTRL/Modif ied Object/ Attribute Holder/Custom_Attributes/Jaw Rotation и треком Bone_jaw/Transform/Rotation/Keyframe XYZ/Z. Эта односторонняя связь должна проходить от точечного объекта к объекту' кости. Соответст- вующее выражение должно иметь следующий вид: degtorad(Jaw_Rotation) Связь #2 Между специальным атрибутом Point_eyesCTRL/Modified Object/ Attribute Holder/Custom_Attributes/Inherit Spine и треком Point_headCTRL/Transform/Rotation/Weights/Weight: Orientation Constraint. Эта односторонняя связь должна проходить от объекта Point_eyesCTRL к объекту Point_headCTRL. Соответствующее выраже- ние должно иметь следующий вид: Inherit Spine/100 Связь #3 Между специальными атрибутами Point_eyesCTRL/Modified Object/ Attribute Holder/Custom_Attributes/Value и Poin _eyesCTRL/ Modified Object/Attribute Holder/Custom_Attributes/Inherit Spine. Эта связь должна быть двухсторонней. В ней используется выраже- ние, устанавливаемое по умолчанию. Благодаря такому связыванию параметров наследование преобразований на голо- ве персонажа можно корректировать с помощью ползункового регулятора или счет- чика. Если ползунковый регулятор нс позволяет установи 1ь точные значения, это можно сделать с помощью счетчика. Такая возможность показана здесь лишь для примера, хотя это совсем не обязательно для снаряжения головы. Подобный способ можно применять всякий раз, когда для управления объектами удобнее пользоваться ползунковым регулятором, а для установки точных значений — счетчиком. Окончательная правка снаряжения головы и позвоночника И в завершение требуется лишь немного поправить скомпонованное вместе снаряжение головы и позвоночника персонажа. Сначала следует заблокировать преобразования, чтобы их нельзя было нарушить. Ниже приведен только пер -
Приложение Б. Снаряжение и анимация персонажей 1059 чень объектов и блокируемых преобразований (для доступа к средствам их бло- кировки перейдите к панели Hierarchy, щелкните па кнопке Link Info и установите соответствующие флажки в свитке Locks). • Объект Point_eyesCTRL. Заблокируйте все оси масштабирования, а также оси вращения X и Y. • Объекты EyeTgt_LT и EyeTgt_RT. Заблокируйте все оси масштабирова- ния и вращения. • Объект Point_headCTRL. Заблокируйте все оси масштабирования и пере- мещения. • Все объекты типа Spine_control. Заблокируйте все преобразования этих объектов. • Все объекты типа Point_spineCTRL. Заблокируйте все оси масштабиро- вания и вращения. • Объект Point_spineCONTROL_high. Заблокируйте оси вращения X и Y, а также все оси масштабирования. • Объект Point_spineCONTROL_mid. Заблокируйте все оси масштабирова- ния и вращения. • Объект Point_spineCONTROL_low. Заблокируйте оси вращения X и Y, а также все оси масштабирования. • Объекты Point_SPINE и Point_spineAssembly. Заблокируйте все пре- образования этих объектов. • Объект SpineControlALL. Заблокируйте все оси масштабирования и пе- ремещения. Отключите свойства отображения следующих объектов. • Все объекты типа Spine_control. • Объект Point_spineAssembly. • Объект Point_SPINE. • Объект Point_spineCTRL01. • Объект IKChain_spine. Для отключения свойств отображения последнего объекта перейдите к панели Motion и сбросьте флажок Enabled в области Goal Display из свитка IK Display Options. И наконец, создайте новый точечный объект и присвойте ему имя Point_neckAutoRot. Оп будет использован для автоматического вращения шеи в зависимости от поворотов головы персонажа. 1. Выровняйте положение вновь созданного точечного объекта по объекту Bone_neck, а его ориентацию по объекту' Point_headCTRL, используя в обоих случаях точку опоры. Свяжите сначала этот точечный! объект с ко- стью Bone_spine04, а затем кость Bone_neck с данным объектом. Зафик- сируйте его вращение. Перейдите к панели Motion и разверните треки ани- мации контроллера управления вращением.
1060 Приложение Б. Снаряжение и анимация персонажей 2. Свяжите треки Point_neckAutoRot/Transform/Rotation/Keyframe XYZ/X Rotation и Point_headCTRL/Transform/Rotation/Euler XYZ/X Rotation. Эта связь должна быть односторонней: от точечного объекта, управляющего головой, к точечному объекту, автоматически управляющему вращением шеи. В данном случае используется следующее выражение: X_Rotation/3 3. Повторите пп. 1, 2 данной последовательности действий для осей L и Y, за- менив X на Y и Z, а также 3 на 2 в приведенном выше выражении. Шея должна сгибаться больше, когда персонаж смотрит вверх и вниз, по срав- нению с поворотами головы в стороны. Таким образом, шея поворачивается на треть угла поворота головы. Еще раз выделите вновь созданный точечный объект, отключите его свойства отображения и заблокируйте все его преобразования. На этом снаряжение позвоночника и головы персонажа завершается (рис. Б.38). Рис. Б.38. Завершенное снаряжение позвоночника и головы персонажа
Приложение Б. Снаряжение и анимация персонажей 1061 Снаряжение рук и их кистей Снаряжение рук и их кистей отличается автоматическим вращением ключиц, скручиванием костей в предплечьях и плечах, а также сочетанием прямой и ин- версной кинематики. Назначение такого снаряжения — предоставить аниматору как можно больше возможностей для управления этой частью персонажа, чтобы у него был широкий выбор методов анимации. Кроме того, аниматору необходи- мо предоставить возможность приводить в движение всю руку персонажа с по- мощью одного или двух элементов управления. В конечном итоге снаряжение рук должно получиться удобным, эффективным и готовым к применению вместе с остальным снаряжением персонажа. В данном случае будет применен распространенный метод трехуровневого снаряжения рук. Это означает, что персонаж оснащается не одним, а тремя вида- ми снаряжения рук с каждой стороны, а всего их получается шесть. Такой подход выбран из-за большого числа свойств, которыми необходимо снабдить снаряже- ние рук Таким обраюм, для руки применяются следующие виды снаряжения. • Снаряжение руки #1: кожный покров руки. Это снаряжение служит для формирования кожного покрова руки персонажа. Оно состоит из костей, которые вращаются процедурно, образуя вдоль руки аккуратный спад скру- чивания, используемый в модификаторе Skin для формирования аккурат- ных переходов. • Снаряжение руки #2: инверсная кинематика руки. В этом снаряжении стандартная иерархия, приводимая в движение инверсной кинематикой, служит для организации движений па основе ИК. • Снаряжение руки #3: прямая кинематика руки. Это обычная прямая ки- нематика руки, которой аниматор пользуется в гех случаях, когда она ока- зывается более пригодной, чем инверсная кинематика. Кожный покров руки обеспечивает плавное сопряжение двух других видов ее снаряжения. Основное снаряжение руки Для того чтобы создать основное снаряжение руки, выполните следующие действия. 1. Создайте элементарную цепочку костей руки, начав ее с плеча в окне вида сверху, продолжив до локтя и завершив па запястье (рис. Б.39). 2. Если перейти в окно вида спереди, то можно заметить, что цепочка костей руки была создана у запястья персонажа. Выделите корневую кость и пере- местите ее вверх на уровень руки, вписав ее по центру руки. Попробуйте выровнять цепочку руки, чтобы начало первой ее кости оказалось точно на месте плечевого сочленения, а остальные кости проходили по центру руки.
1062 Приложение Б. Снаряжение и анимация персонажей Рис. Б.39. Цепочка костей левой руки 3. Выделите первую кость в данной цепочке и активизируйте ее выступ. Он, скорее всего, обращен к задней, а не передней стороне коса и. В таком слу- чае выберите сначала инструмент Rotate, а затем локальную систему опор- ных координат и поверните кость на 180°. Вместе с ней повернется вся це- почка, но теперь кости будут сгибаться назад. Откройте диалоговое окно Bone Tools и верните все кости на место. Только сделайте это в окне вида сверху! Благодаря этому не нарушается выравнивание костей друг относи- тельно друга. Если концевая кость не выровнена по своей родительской кости, выровняйте ее с помощью инструмента Align. 4. Выделите всю цепочку костей и щелкните на кнопке Unlink из основной па- нели инструментов. В итоге иерархия костей нарушится и останутся от- дельные кости. Для чего это нужно? Данная цепочка костей была нужна лишь в качестве вспомогательного средства для определения новых цепо- чек, которые будут использоваться в дальнейшем. 5. Создайте три точечных объекта и выровняйте положение и ориентацию каждого из них по соответствующей кости. Установите флажок Cross в свитке их параметров. Присвойте вновь созданным точечным объектам следующие имена от плеча и до запястья: Point_IKbone .upperarmLT (Точечный объект для ИК кости плеча левой руки), Point_[Kbone_ forearmLT (Точечный объект для ИК кости предплечья левой руки) и Point_IKbone_handLT (Точечный объект для ИК кости кисти левой ру- ки). Свяжите сначала точечный объект на запястье с точечным объектом па локте, а затем данный объект с точечным объектом на плече. В итоге будет получена иерархия точечных объектов (рис. Б.40).
Приложение Б. Снаряжение и анимация персонажей 1063 Рис. Б.40. Иерархия точечных объектов, расположенных на своих местах 6. Выделите кость Bone_spine04 и откройте диалоговое окно Bone Tools. Щелкните на кнопке Connect Bones (Соединить кости) в свитке Bone Editing Tools (Инструменты правки костей) и перетащите пункт ирную линию к кор- невой кости в цепочке костей руки (формально такая цепочка уже не сущест- вует). В итоге будет создана новая кость, идущая от позвоночника к руке. Вы- делите вновь созданную кость и присвойте ей имя Bone_clavicleLT (Кость левой ключицы). 7. Активизируйте передний выступ на кости. Если оп обращен назад, выбери- те сначала инструмент Rotate, а затем локальную систему опорных коордт на г. Перейдите к панели Hierarchy и щелкните сначала на кнопке Pivot, а за- тем на кнопке Don t Affect Children (He оказывать влияния на порожденные объекты) в свитке Adjust Transform (Настройка преобразования). Поверни те кость ключицы вперед. Это необходимо сделать потому, что применяв- шийся ранее инструмент соединения костей связывает их в иерархию, что очень хорошо. Однако вместе с ключицей поворачивается и рука, что уже плохо. Режим Don’t Affect Children препятствует распространению преобра- зований вниз по иерархии. (Не забудьте только отключить его.) Получен пый результат должен выглядеть так же, как и на рис. Б.41. 8. Выделите кость на плече и вновь щелкните на кнопке Unlink. Эта кость не должна быть частью иерархии. 9. Выделите объект Point_IKbone_upperarmLT и свяжите его с костью Bone_clavicleLT. Выберите из главного меню команду' Animations IK SolversSHI |К Solver. Затем выделите объект Point_IKbone_handLT в ка- честве конечной точки для данного решателя ИК Выберите цель ИК и не- много сместите ее. При перемещении цели ИК точечные объекты враща ются, а решатель ИК соединяет все вместе. 10. Присвойте данной цели ИК имя IKChain_armLT (Цель ИК для левой руки).
1064 Приложение Б. Снаряжение и анимация персонажей Рис. Б.41. Кость ключицы Итак, получено снаряжение руки на основе точечных объектов. В данном слу- чае точечные объекты использованы вместо костей только ради удобства работы с персонажем в видовых окнах. Разумеется, для снаряжения руки можно было бы воспользоваться обычными костями, но это привело бы к загромождению видо- вых окон. А ведь для работы со сложными сценами ясность имеет огромное зна- чение (конечно, кости можно скрыть, но вы уже знаете, с какими трудностями это связано в снаряжении). Далее необходимо создать цепочки костей, которые понадобятся для кожного покрова персонажа.
Приложение Б. Снаряжение и анимация персонажей 1065 1. Выделите кость в предплечье и откройте диалоговое окно Bone Tools. Щелкните сначала па кнопке Refine (Уточнить), а затем переместите кур- сор на треть длины кости и щелкните. После этого переместите курсор па две трети длины кости и еще раз щелкните. Наконец, щелкните правой кнопкой мыши, чтобы выйти из режима Refine. В итоге получатся три кос- ти вместо одной. Присвойте им следующие имена, начиная с кости у локтя: Bone_forearm01LT, Bone_forearm02LT и Bone_forearm03LT (т.е. три кости предплечья левой руки). Удалите концевую кость. 2. Щелкните сначала на кости, находящейся па плече, а затем дважды па кнопке Create End. На конце плеча появится небольшая концевая кость, а после нее еще одна концевая кость. Выделите эту последнюю концевую кость и отсо- едините ее от цепочки, а затем выровняйте се положение и ориентацию по кости па плече. Свяжите кость на плече с этой концевой кос тью. 3. Выделите кость, находящуюся па конце кости плеча, и щелкните на кнопке Reassign Root (Переназначить корень иерархии) в диалоговом окне Bone Tools. Произойдет перестановка костей в цепочке. Если ее кости обращены лицевой стороной назад, о чем можно судить по ориентации передних вы- ступов па костях, поверните всю цепочку па 180° в локальной системе опорных координат. 4. Выделите небольшую кость прямо на точечном объекте плеча (т.е. вторую кость в цепочке). Выберите сначала инструмент Move, а затем локальную сис- тему опорных координат, перейдите в режим правки костей и переместите выделенную кость по оси X к центру бицепсов. При этом размеры цепочки костей должны измениться таким образом, чтобы длина обеих костей оказа- лась приблизительно одинаковой. Выйдите из режима правки костей. Выде- лите меньшую кость, оставшуюся па конце цепочки, и удалите ее. Все это сложное описание процесса создания цепочки костей лучше всего подкрепить подходящей иллюстрацией (рис. Б.42). 5. Свяжите одну кость плеча, находящуюся у подмышки, с другой костью, на- ходящейся у локтя, образовав единую цепочку из двух соседних костей. За- тем активизируйте выступы на этих костях. Как видите, получилось довольное необычное строение костей руки. Зачем кости плеча были переставлены? Это сделано для того, чтобы кости в данной це- почке могли вращаться независимо и аниматор мог скручивать их так, как ему нужно. Ничего подобного нельзя было бы сделать в обычной цепочке, приводи- мой в движение с помощью ИК. Именно поэтому и понадобились независимые цепочки костей. Такой метод перестановки костей плеча позволяет добиться не- зависимого поведения костей, не прибегая к многочисленным ограничениям по линии взгляда и связи (хотя они применяются, но не так часто).
1066 Приложение Б. Снаряжение и анимация персонажей Рис. Б.42. Цепочки костей руки Далее следует переименовать созданные выше кости, начиная с цепочки кос- тей плеча. 1. Выделите корневую кость в цепочке (т.е. кость, находящуюся у локтя) и присвойте ей имя Bone_upper-arm01LT (Первая кость плеча левой ру- ки). Затем присвойте второй кости имя Bone_upperarm02LT. 2. Выделите кость Bone_forearm01LT и свяжите ее с точечным объектом Point_IKboneforearmLT. Затем свяжите кость Bone_upperarmO1LT с точечным объектом Point IKbone upperarmLT. Если теперь переместить цель в цепочке ИК руки, вся рука и ее кости должны аккуратно переместиться. Таким образом, получено полностью действующее сна- ряжение, состоящее из цепочки инверсной кинематики руки и костей, предна- значенных для формирования кожного покрова персонажа, который должен плавно повторять движения цепочки инверсной кинематики руки. Кости для кожного покрова пока еще не действуют, но они будуг настроены в дальнейшем.
Приложение Б. Снаряжение и анимация персонажей 1067 Элементы управления рукой Теперь мы создадим элементы управления, необходимые для организации надлежащих движений руки. Они должны, в частности, приводить в движение цепочку ИК и кости для кожного покрова. 1. Создайте новый точечный объект, установите флажок Box в области свойств отображения из свитка его параметров, выровняйте положение и ориента- цию этого объекта по цепочке ИК руки и присвойте ему имя ArmControlLT (Элемент управления левой рукой). Свяжите с этим точечным объектом це- почку' ИК руки. Вместе с ним будет перемещаться вся рука. Создайте еще один точечный объект и выровняйте только его положение (но пе ориента- цию) по точечному объекту' локтя. Выберите сначала инструмент Move, а за- тем локальную систему опорных координат и переместите данный объект немного назад. Присвойте ему' имя Point—swivelTgtLT (Точечный целевой объект для вращения левой руки). 2. Выделите цепочку ИК руки и перейдите к панели Modify, Щелкните па кнопке Pick Target в свитке IK Solver Properties. Эта кнопка позволяет вы- брать целевой объект для управления углом вращения цепочки ИК. Выде- лите точечный объект Point swivelTgtLT и немного переместите его. Вся рука повернется, нацеливая локоть па данный точечный объект. Для чего это было сделано? Напомним, что при снаряжении ноги персона- жа угол вращения цепочки ИК был непосредственно связан со специаль- ным атрибутом в объекте, управляющем ногой. Для применения в данном случае управляющего объекта вместо специального атрибута имеются две причины. Во-первых, для того чтобы продемонстрировать второй метод. И во-вторых, данный метод упрощает создание элементов смешанного управления прямой и инверсной кинематикой, пе прибегая к сложным ма- тематическим выражениям. 3. Создайте еще один точечный объект и установите флажок Axis Tripod в об- ласти свойств отображения из свитка его параметров. Выровняйте положе- ние этого объекта по цепочке ИК руки, а затем выровняйте его ориентацию по кости Bone_f orearm03LT. Присвойте ему имя Point—wristControlLT. Свяжите его с точечным объектом Point— IKbone_forearmLT. Этот объект будет использован для локального вращения запястья и выкручивания пред- плечья. 4. Введите элементы управления выкручиванием предплечья. Выделите все три кости в предплечье и зафиксируйте их вращение. Затем выделите последнюю кость в данной цепочке, перейдите к панели Motion и разверните треки ани мации контроллера управления вращением. Далее разверните треки анима- ции контроллера Keyframe XYZ и назначьте для трека X Rotation кон- троллер Float Expression. Создайте новую скалярную переменную rot. Назначьте эту переменную для трека X Rotation анимации объекта Ро nt_wristControlLT. Введите в окне Expression Controller следующее выражение (рис. Б.43): rot/2
1068 Приложение Б. Снаряжение и анимация персонажей Рис. Б.43. Вид окна Expression Controller для кости предплечья 5. Щелкните на кнопке Evaluate и закройте данное окно. Если кость перево- рачивается на 180°, выделите элемент управления запястьем и поверните его на 360° вокруг локальной оси, чтобы вернуть кость к ее исходной ори- ентации. 6. Повторите эти же действия для кости Bone_f orearm02LT, но на этот раз введите следующее выражение: rot/4 Как видите, при вращении элемента управления запястьем вокруг его локаль- ной оси X предплечье постепенно выкручивается. Это обстоятельство будет ис- пользовано для формирования с помощью модификатора Skin плавного перехода по всему' предплечью, чтобы тем самым избежать неприятного эффекта “скручивающегося полотенца” как в запястье, так и в плече. Снаряжение плеча А теперь необходимо поработать над снаряжением плеча. Добиться правиль- ного его функционирования будет несколько сложнее, так как нужно, чтобы вто- рая кость плеча не наследовала от своего родительского объекта вращение вокруг
Приложение Б. Снаряжение и анимация персонажей 1069 оси X. Казалось бы, для этого достаточно сбросить соответствующий флажок на панели Hierarchy. Но, к сожалению, такая мера может привести к появлению до- вольно неприятного явления блокировки рамки, в результате которого кость бу- дет постоянно переворачиваться па 180°. Поэтому придется выбрать другой способ. В первую очередь следует выпол- нить обратное преобразование кости относительно ее родительского объекта, т.е. принудительно повернуть кость вокруг оси X в обратном по отношению к ее родительскому объекту направлении. Таким образом, опа будет действовать гак, как будто для нее отключено наследование вращения. Далее необходимо ввести еще один контроллер для управления вращением данной кости в зависимое! и от вращения остальных объектов, причем это управление должно быть организова- но с помощью специального элемента, чтобы аниматор мог сочетать разные виды вращения по своему усмотрению. 1. Сначала нужно заменить наследуемые виды вращения кости. Для этого требу- ется образец по котором^'будут определяться виды вращения Создайте новый точечный объект, установите флажок Cross в области свойств отображения из свитка его параметров и выровняйте положение и ориентацию этого объекта по кости Bone_upperarm02LT, используя точку опоры. Свяжите вновь создан- ный точечный обьект с объектом Point_IKbone_upperarmLT и присвойте ему имя Point_upperRotRefLT (Точечный объект в качестве образца для вращения плеча левой руки). Выделите обе кости плеча и зафиксируйте нх вращение. 2. Выделите вторую кость в данной цепочке (Bone_upperarm02LT) и перей- дите к панели Motion. Разверните треки анимации контроллера управления вращением, а затем и треки анимации контроллера Keyframe XYZ. На- значьте контроллер Float List для трека X Rotation. Разверните треки анимации этого контроллера и назначьте конт роллер Float Script для трека Available. Введите в окне Script Editor следующий сценарий: dependson $Point_upperRotRefLT -degtorad(($Point upperRotRefLT.transform.rotation as eulerangles).x) Если кость переворачивается назад, введите оператор +degToRad(180) в кон- це последней с сроки сценария, ч тобы она выглядела следующим образом: -degtoradl($Point_upperRotRefLT.transform.rotation as euleran- gles) .x) + degToRad(180) 3. Если кость Bone_upperarmO2LT выделена, сверните на панели Motion тре- ки анимации контроллера Keyframe XYZ, щелкнув на знаке “минус”. Най- дите ниже трек Available (он не относится к трекам данного контролле- ра) и назначьте для него контроллер Orientation Constraint. Сделайте огра- ничение по ориентации активным контроллером и выберите кость Bone_upperarm01LT в качестве ci о цели. Кость теперь ведет себя так, как будто ничего не произошло. Попробуйте при вести руку в движение, переместив объект Point_swivelTgtLT.
1070 Приложение Б. Снаряжение и анимация персонажей Специальный атрибут для сочетания разных видов вращения Далее следует ввести элемент пользовательскою интерфейса для сочетания разных видов вращения. 1. Выделите объект ArmControlLT и примените к нему модификатор Attribute Holder. Используя всплывающую панель Parameter Editor, введите в этом модификаторе следующий специальный атрибут. • Туре = Float • Ul Туре = Spinner • Name = Shoulder Twist (Выкручивание плеча) • Width = 100 • From -- О • To=l • Default 1 • Alignment = Center • Add Attribute to Type = Selected Object’s Current Modifier 2. Свяжите специальный атрибут ArmControlLT/Modified Object/ Attribute Holder/Custom_Attributes/Shoulder Twist с треком ани- мации Bone_upperarm02LT/Transform/Rotation/Weights/Weight: Orientation Constraint. Эта связь должна быть односторонней: от то- чечного объекта к кости. Оставьте без изменения выражение связывания параметров (рис. Б.44). Рис. Б.44. Выражение связывания для специального атрибута Shoulder Twist
Приложение Б. Снаряжение и анимация персонажей 1071 3. Проверьте созданный выше специальный атрибут Shoulder Twist и ус- тановите ею значение 1. Выделите объект Point_SwivelTgtLT и пере- местите его вверх и вниз. Рука поворачивается так, как и ожидалось. А те- перь верните специальный атрибут Shoulder Twist к исходному пулево- му значению и еще раз переместите объект Point—SwivelTgtLT вверх и вниз, обратив внимание на плечо. Как видите, вторая кость плеча больше не вращается. Благодаря этому па данном участке руки получается аккурат- ный спад скручивания, используемый в целях формирования кожного по- крова. Такое поведение организуется с помощью специальною атрибута, позволяющего аниматору регулировать спад скручивания вручную. Для этой цели вполне подходит значение в пределах от 0,3 до 0,4, хотя оно может быть настроено, если требуется. Специально настраиваемые элементы управления рекомендуется использо- вать в снаряжении персонажей при всякой возможности, поскольку с их помо- щью аниматоры могут точно настраивать персонажи в соответствии с потребно- стями отдельных кадров съемки, а кроме того, сводится к минимуму специальная настройка всего снаряжения па конкретные кадры съемки. Автоматическое управление ключицей Далее необходимо создать механизм автоматического управления вращением ключицы в зависимости от движения руки. Именно так ведет себя ключица чело- веческого тела. Для организации такого поведения ключицы требую 1ся опреде- ляемые пользователем значения, оказывающие влияние на вращение вокруг каж- дой оси, а также элемент управления вращением ключицы вручную. 1. Создайте точечный объект и выровняйте его положение и ориентацию по кости Bone_clavicleLT. Установите флажок Axis Tripod в области свойств отображения из свитка параметров этого объекта и выберите для пего дру- гой цвет (например, красный) для удобства его распознавания. Присвойте ему имя Point_clavRotRefLT (Точечный объект в качестве образца для вращения ключицы левой руки). 2. Свяжите вновь созданный точечный объект с костью Bone_spine04. За- фиксируйте его вращение и перейдите к панели Motion. Разверните треки анимации контроллера управления вращением и назначьте для трека Available контроллер LookAt Constraint. 3. Сделайте ограничение по линии взгляда активным контроллером и выбе- рите в качестве его цели объект ArmControlLT. Сбросьте флажок Viewhne Length Absolute (рис. Б.45). Именно этот объект будет использован в каче- стве образца для расчетов вращения ключицы. 4. Но для управления вращением ключицы требуется еще один точечный объект. Поэтому создайте его, установите флажок Cross в области свойств отображения из свитка параметров этого объекта и выровняйте его таким же образом, как и предыдущий точечный объект. Присвойте ему имя Point_clavicleCtrlLT.
1072 Приложение Б. Снаряжение и анимация персонажей Рис. Б.45. Точечный объект, ограничиваемый по линии взгляда 5. Свяжите вновь созданный точечный объект с костью Bone_spine04, а за- тем свяжите с этим объектом кость ключицы. Таким образом, данный то- чечный объект введен в иерархию между костью ключицы и ее родитель- ским объектом. Для ввода объекта в иерархию необходимо сначала связать его с предполагаемым родителем (родительским объектом), а затем связать с ним новый потомок (порожденный объект). В противном случае могут возникн гь осложнения, если пространства локальных преобразований объектов не совмещены. 6. Прежде чем продолжить снаряжение ключицы, создайте специальные ат- рибуты, которые будут использоваться для установки значений, опреде- ляющих вращение ключицы. Для этого выделите объект ArmControlLT, выберите в стеке модификатор Attribute Holder и введите в нем следующие специальные атрибуты. (Ниже приведены значения параметров лишь для первого специального атрибута, поскольку для второго и третьего специ- альных атрибутов они не меняются.) Специальный атрибут#! • Parameter Type Angle • Ul Type-Spinner • Name = AutoC X (Автоматическое вращение вокруг оси X) • Width = 80 • From = 0 • То = 1 • Default = О
Приложение Б. Снаряжение и анимация персонажей 1073 • Al gnment = Center • Add Attribute to Type = Selected Object’s Current Modifier Специальный атрибут #2 • Name = AutoC Y (Автоматическое вращение вокруг оси Y) Специальный атрибут #3 • Name = AutoC Z (Автоматическое вращение вокруг оси Z) 7. Свяжите снаряжение ключицы с созданными выше специальными атрибу- тами. Для этого выделите объект Point_ clavicleCtrlLT и зафиксируй- те его вращение. Перейдите к панели Motion и разверните треки анимации контроллера управления вращением. Назначьте для трека Available кон- троллер Rotation Script. Введите в окне Script Editor следующий сценарий: dependson $Point_clavRotRefLT $ArmControlLT.modifiers[#Attribute_Holder] refObjRot = ($Point_clavRotRefLT.transform.rotation) xComp = -(refObjRot as eulerangles).x yComp = -(refObjRot as eulerangles).у Zcomp = -(refObjRot as eulerangles).z xRot = xComp * $ArmControlLT.modifiers[#Attribute_Holder].AutoC_X yRot = yComp * $ArmControlLT.modifiers[#Attribute_Holder].AutoC_Y zRot = zComp * $ArmControlLT.modifiers[#Attribute_Holder].AutoC_Z angRot = eulerangles xRot yRot zRot angRot Это более сложный сценарий, чем предыдущие. Вместо пего можно было бы воспользоваться контроллером Euler XYZ и назначить контроллеры Float Script для треков анимации вращения вокруг осей X, Y и Z. Однако сценарии, используемые па этих треках, очень похожи и только ус- ложняют работу в три раза, поскольку их пришлось бы отлаживать по отдельно- сти. А в данном сценарии вращение организуется сразу вокруг всех трех осей, но в то же время сохраняется индивидуальное влияние на вращение вокруг отдель- ных осей в зависимости от значений созданных выше специальных атрибутов. В данный сценарий необходимо внести одну поправку. По мере настройки счет- чиков специальных ат рибутов AutoC X, AutoC Y и AutoC Z объекта ArmContrо 1LT ключица приходит в движение. Необходимо сделать так, чтобы ключица на враща- лась при изменении своей ориентации. Для этого достаточно определить величины углов поворота до и после сдвига ключицы, а затем вычесть одну из другой. 1. Установите нулевое значение в счетчиках трех специальных атрибутов AutoC X, AutoC Y и AutoC Z. Выделите объект Point_clavicleCtrlLT и введите в приемнике команд (MAXScript Listener или MAXScript Mini Listener) следующую команду: $.transform.rotation as eulerangles В ответ в приемнике команд будет получено следующее значение: (eulerAngles 176.511 17.6391 -1.05835) 2. Выделите обьект ArmControlLT и верните счетчики всех трех специальных атрибутов к значению 1. Затем выделите объект Point_clavicleCtrlLT
1074 Приложение Б. Снаряжение и анимация персонажей и повторите приведенную выше команду MAXScript, чтобы получить еще од- но значение: (eulerAngles 176.257 22.8932 -1.84608) У вас эти значения могут быть иными. 3. Вычтите друг из друга первые числа в первом и втором выражениях (176.511 176.257 = -0.253998), а затем вторые и третьи числа, чтобы получить разницу 5.2541 н -0.78773 соответственно. Запишите но ученные результаты вычитания. 4. Вернитесь к введенному выше сценарию и введите полученные разностные значения после выражений хСотр, уСотр и zComp. Окончательно сцена- рий выглядит следующим образом: dependsOn $Point_clavRotRefLT $Bone_spine04 $ArmControlLT.modifiers[#Attribute_Holder] refObjRot = ($Point_clavRotRefLT.transform.rotation) xComp = (refObjRot as eulerangles).x - 0.253998 yComp = (refObjRot as eulerangles).у + 5.2541 Zcomp = -(refObjRot as eulerangles).z - 0.78773 xRot = xComp * $ArmControlLT.modifiers[#Attribute_Holder].AutoC_X yRot = yComp * $ArmControlLT.modifiers[#Attribute_Holder].AutoC_Y zRot = zComp * $ArmControlLT.modifiers[#Attribute_Holder].AutoC_Z angRot = eulerangles xRot yRot zRot angRot После выполнения сценария и закрытия окна Script Editor ключица вернется в исходное положение. Для проверки функционирования специальных атрибутов автоматического вращения ключицы выделите объект ArmControlLT, установите значение 0,3 всех трех специальных атрибутов, AutoC X, AutoC Y и AutoC Z, и переместите выделенный точечный объект в окне вида в перспективе. Вслед за рукой немного перемещается и ключица. Это движение станет более естественным после того, как будет сформирован кожный покров персонажа. Если увеличить значение в счетчике любого из специальных атрибутов AutoC X. AutoC Y и AutoC Z, движение ключицы станет более заметным. Л если уменьшить эго значение, дви- жение будет менее заметным. Значения этих специальных атрибутов, разумеется, подлежат анимации. Следовательно, аниматор может точно управлять движени- ем ключицы Если ключица поворачивается в противоположном направлении во- круг любой нз осей, удалите знак “минус” в соответствующем выражении или же введите его, если он отсутствует, как, например, в выражении yComp приведен- ного выше сценария. И наконец, необходимо ввести еще контроллер, чтобы аниматор мог переме- щать ключицу вручную. 1. Выделите объект Point_clavicleCtrlLT и перейдите к панели Motion. 2. Разверните треки анимации контроллера управления вращением и на- значьте контроллер Euler XYZ для трека Available. Сделайте этот кон- троллер активным. Теперь ключицу можно поворачивать вручную, исполь- зуя объект Point_clavicleCtrlLT (рис. Б.46).
Приложение Б. Снаряжение и анимация персонажей 1075 | PRS Parameters ] - Create Key -i Delete Key Position Rotalion I । - 1*<л 11 I Scale______jf .j* |jl Position | Rotation ScaleJ Rotation List | Layet _____ | Weight InilalPose 100.0 Keyframe XYZ 100.0 Rotation Scupt 100.0 >EdetZT7 100.0 I------------------------- Set Active Delete Cui Weyn (IODO Г" Pose to Pose | - Eider Parameters Axis Order [~ RotalionAxisrfx* Y j zj Рис. Б.46. Контроллеры управления враще- нием объекта Point_clavicleCtrlLT Итак, автоматическое управление ключицей организовано и полученное до сих пор снаряжение руки действует совсем неплохо. Сочетание прямой и инверсной кинематики руки Нам осталось создать последнюю часть снаряжения руки. Правильно функцио- нирующую инверсную кинематику руки следует дополнить прямой кинематикой и элементами управления, обеспечивающими плавное сочетание обоих видов ки- нематики. А для чего это нужно? Дело в том, чтобы многие аниматоры до сих пор пользуются прямой кинематикой для вращения отдельных частей тела персонажа, а инверсная кинематики нужна для организации целого ряда других его движений. С едовательно, аниматору необходимо предоставить обе возможности. А почему этого не было сделано в снаряжении ног? А потому что анимация ног персонажа за- пас гую выполняется с помощью ИК. Прямая кинематика редко используется для этой цели, поскольку ноги привязаны к земле большую часть времени. Тем не менее в некоторых случаях прямая кинематика ног оказывается полезной.
1076 Приложение Б. Снаряжение и анимация персонажей Начнем с костей прямой кинематики, которые буду! служить для вращения руки. В данном случае вместо обычных костей используются стандартные парал- лелепипеды. 1. Создайте в окне вида в перспективе параллелепипед длиной и шириной 25 см. Присвойте ему имя Bone_FKclavicleLT (Кость прямой кинематики ключицы левой руки) и выровняйте его по кости Bone_clavicleLT. Как видите, этот параллелепипед обращен не в том направлении. 2. Перейдите к панели Hierarchy и щелкните сначала на кнопке Pivot, а затем на кнопке Affect Object Only. Выберите инструмент Rotate, а затем локаль- ную систему опорных координат и поверните параллелепипед на 90° во- круг оси Y, чтобы правильно развернуть его в направлении руки. Откор- ректируйте его длину по длине кости ключицы. 3. Нажмите клавишу <Shift> и сместите параллелепипед в сторону. Выберите вариант клонирования Сору в открывшемся диалоговом окне Присвоите вновь созданному параллелепипеду имя Bone_FKupperarmLT (Кост ь прямой кинематики плеча левой руки). Выровняйте этот параллелепипед по точеч- ному объекту Point_IKbone_upperarmLT. Вновь нажмите клавишу <Shifi> и сместите параллелепипед в сторону. Выровняйте вновь созданный третий параллелепипед по точечному объекту Point_IKbone_forearmLT и при- свойте ему имя Bone_FKforearmLT (Кость прямой кинематики предплечья левой руки). Скопируйте подобным образом еще один параллелепипед, при- свойте ему имя Bone_FKhandLT (Кость прямой кинематики кисти левой ру- ки) и выровняйте его по точечному объекту Point_wristControlLT. 4. Выделите все четыре параллелепипеда и щелкните правой кнопкой мыши в текущем видовом окне. Выберите команду Properties из правого нижнего квадранта всплывающего квадратного меню. Установите в диалоговом окне Object Properties флажок See-Through и убедитесь в том, что выбрана кноп- ка By Object, а не By Layer. Щелкните на кнопке ОК, чтобы закрыть это диа- логовое окно. Параллелепипеды станут полупрозрачными (рис Ъ 47). 5. Свяжите параллелепипеды в следующую иерархию (с отступом показаны порожденные объекты). • Bone_spine04 • Bone_FKclavicleLT • Bone_FKupperarmLT • Bone_FKforearmLT • Bone FKhandLT 6. Выделите все четыре параллелепипеда и зафиксируйте их вращение. Цепочка прямой кинематики фактически готова.
Приложение Б. Снаряжение и анимация персонажей 1077 Рис. Б.47. Кости прямой кинематики руки и их свойства, представленные в диалоговом окне Object Properties Специальные атрибуты для сочетания прямой и инверсной кинематики Далее необходимо создать специальные атрибуты для сочетания прямой и ин- версной кинематики костей руки и еще один специальный атрибут для общего управления таким сочетанием. 1. Выделите объект ArmControlLT, выберите в стеке модификатор Attribute Holder и введите в нем следующий специальный атрибут. • Type Float • UI Type-Slider • Name = IK.........................FK (Сочетание инверсной и пря- мой кинематики)
1078 Приложение Б. Снаряжение и анимация персонажей • Width 160 • From 0 • То = 100 • Default = 0 • Add Attribute to Type = Selected Object’s Current Modifier 2. Создайте небольшой фрагмент анимации, чтобы проверить вновь создан- ный специальный атрибут в действии. Для этого перейдите к кадру 30, включите режим Auto Key и поверните параллелепипеды в положение, от- личное о г исходного (рис. Б.48). Рис. Б.48. Новое положение костей прямой кинематики
Приложение Б. Снаряжение и анимация персонажей 1079 3. На определенное сочетание прямой и инверсной кинематики, прежде всего, реагирует ключица. Выделите объект Point_clavicleCtrlLT и перейдите к панели Motion. Разверните треки анимации контроллера управления вращением и назначьте для трека Available, расположенно- го ниже трека последнего контроллера Euler XYZ. ограничение по ори- ентации. Сделайте это ограничение активным контроллером и выберите в качестве его цели параллелепипед Bone_FKclavicleLT. Вновь активи- зируйте предыдущий контроллер Euler XYZ. При перемещении ползун- ка по временной шкале анимации ключица последует за костью прямой кинематики ключицы. В дальнейшем это движение будет организовано и с помощью ИК. 4. Теперь нужно сделать так, чтобы рука следовала за цепочкой прямой ки- нематики. Для этого выДелмггс точечный объект ArmControlLT и на- значьте па панели Motion контроллер Position List для трека анимации по- ложения данного объекта. Разверните треки анимации данного контрол- лера и назначьте контроллер Position XYZ для второго трека Available. Для третьего трека назначьте контроллер Position Constraint. Сделайте ограничение по положению активным контроллером и выберите в каче- стве его цели объект Bone_FKhandLT. Вновь активизируйте второй кон- троллер Position XYZ. 5. Переместите ползунок по временной шкале анимации. Рука следует за це- почкой прямой кинематики, однако локоть немного отстает. Для того чтобы устранить этот недостаток, выделите объект Point_swivelTgtLT и назначьте контроллер Position List для трека анимации положения дан- ного объекта. Затем разверните треки анимации данного контроллера и назначьте контроллер Position XYZ для второго трека Available. Для третьего трека назначьте контроллер Position Constraint. Сделайте огра- ничение по положению активным контроллером и выберите в качестве его цели объект Bone. FKforearmLT. Вновь активизируйте второй кон- троллер Position XYZ. Если теперь переместить ползунок по временной шкале анимации, рука иде- ально последует за цепочкой прямой кинематики (рис. Б.49). Попробуйте повер- нуть в данной цепочке все параллелепипеды, кроме кисти руки. Рука отреагирует идеально. Отреагирует даже элемент управления выкручиванием плеча.
1080 Приложение Б. Снаряжение и анимация персонажей Рис. Б.49. Рука следует за цепочкой прямой кинематики Итак, для того чтобы завершить снаряжение руки, остается объединить оба вида кинематики. 1. Начните с точечного объекта Point_swivelTgtLt. Свяжите трек анима- ции этого объекта Point_swivelTgtLt/Transform/Position/Weights/ Weights: Position Constraint co специальным атрибутом ArmCon- trolLT/Modified Object/Attribute Holder/Custom_Attributes/ IK........................FK. Эта связь должна быть односторонней: от объекта ArmControlLT к точечном}' объекту Point_ swivelTgtLt. Вос- пользуйтесь для связывания следующим выражением: IK.......................FK/100 2. Закройте диалоговое окно Parameter Wiring. Выделите объект ControlArmLT и переместите ползунковый регулятор специального атрибута IK. . . FK. Це- левой объект для вращения руки (Point_swivelTgtLt) переходит из поло- жения ИК в положение прямой кинематики.
Приложение Б. Снаряжение и анимация персонажей 1081 3. Повторите описанную выше процедуру, связав па этот раз специальный ат- рибут ArmControlLT/Modified Object/ Attribute Holder/Custom_ Attributes/IK..........................FK с треком анимации ArmControlLT/Transform/Position/Weights/Weights: Position Constraint. Эта односторонняя связь должна проходить от ползункового регулятора к треку анимации весовых значений. В данном случае использу- ется то же выражение, что и выше. 4. Свяжите специальный атрибут ArmControlLT/Modified Object/ Attribute Holder/Custom_Attributes/IK.......................FK с треком анимации Point_clavicleCtrlLT/Transform/Rotation/ Weights/Weight: Orientation Constraint. Эта односторонняя связь должна проходить от ползункового регулятора к трек}' анимации весовых значений. В данном случае используется то же выражение, что и выше. Переместите ползунковый регулятор IK. . . FK, чтобы убедиться в его работо- способности. Работает он действительно идеально. Таким образом, получено снаряжение, приводящее руку в движение средствами прямой и инверсной кине- матики. Снаряжение кисти руки Кисть руки снаряжается относительно просто. Для этого необходимо создать ряд костей, ввести в их иерархию вспомогательные объекты прямой кинематики и организовать сгибание каждого пальца под управлением ползунковых регулято- ров в объекте, приводящем в движение всю руку. 1. Создайте в окне вида сверху стандартные кости для каждого пальца, начи- ная с сустава и кончая копчиком пальца. Последней должна получиться концевая кость. От нее можно избавиться позднее Выполните эти дейст- вия для всех пальцев, кроме большого. А для большого пальца создайте це- почку из двух костей, щелкнув на сочленении основной и периферической фаланги (т.е в месте соединения кости пальца и многочисленных фаланг). 2. Как видите, кости получились довольно большими, поскольку их размеры установлены относительно пальцев. Для коррекции размеров этих костей откройте сначала диалоговое окно Bone Tools, а затем раскройте свиток Fin Adjustment Tools. Обязательно выделите все кости пальцев. Установите значение 3 в полях Width и Height. В итоге должны быть установлены при- емлемые размеры костей. 3. Перейдите к свитку Bone Editing Tools и активизируйте режим Refine. Щелкните на том месте, где должно быть сочленение костей каждого паль- ца, кроме большого Для каждого пальца необходимо создать два сочлене- ния: одно — между основной и средней фалангой, а другое — между средней и периферической фалангой. Выйдите из режима Refine и удалите конце- вые кости, оставшиеся па кончиках пальцев, кроме большого. Теперь необходимо поправить кости пальцев. Перейдите в режим правки костей, выберите сначала инструмент Move, а затем локальную систему опорных координат и переместите каждую кость только по оси X. Присвойте
1082 Приложение Б. Снаряжение и анимация персонажей костям пальцев подходящие имена, пронумеровав их от 01 до 03, где 01 — номер корневой кости, а 03 — номер кости копчика пальца (например, Bone_pinky01LT — первая (корневая) кость мизинца левой руки). В итоге должно получиться такое же строение костей пальцев, как и на рис. Б.50. Рис. Б.50. Исходное строение костей пальцев 4. Перейдите в окно вида в перспективе и переместите все кости, расположив их в каркасе кисти руки. Если требуется, поверните каждую фалангу, чтобы она осталась внутри соответствующего пальца. Эго следует делать только относительно оси Y локальных координат. Большой палец чуть толще остальных пальцев. Поэтому поверните его корневую кость вокруг обеих осей X и Y. Затем перейдите в режим правки костей и откорректируйте длину основной фаланги Ориентация этих кос- тей должна быть иной, чем у костей остальных пальцев. В итоге должно по- лучиться такое же строение костей пальцев, как и на рис. Б.51.
Приложение Б. Снаряжение и анимация персонажей 1083 Рис. Б.51. Завершенное строение костей пальцев Кости кисти руки Далее необходимо создать кости внутри кисти руки (так называемые пястные кости). Таких костей требуется лишь три: одна — для мизинца, другая — 1ля боль- шого пальца и третья — для трех других пальцев руки. Они нужны, поскольку при переходе кисти руки в определенные положения перемещаются в основном эти кости. Попробуйте сложить кисть руки в пригоршню, и вы увидите, паско 1ько интенсивно двигается пястная кость большого пальца. Двигается также и пястная кость мизинца, хотя и в меньшей степени. А пястные кости остальных пальцев двигаются незначительно. Но даже если показывать кисть руки крупным планом, движения этих костей можно сымитировать с помощью системы формирования кожного покрова и трех имеющихся пястных костей. 1. Введите первую пястную кость (посредине ладони). Для этого создайте в окне вида в перспективе кость расположив ее посредине кисти руки. Начните ее создание, щелкнув на последней кости запястья (Bone_forearm03LT), а за- вершите его между средним и безымянным пальцем, где кончается сама кисть руки. Удалите концевую кость в данной цепочке. 2. Начните создание пястной кости мизинца на краю кисти руки рядом с только что созданной костью. Не удаляйте концевую кость в данной цепочке. За- вершите создание данной цепочки на корневой кости мизинца. Затем начните создание пястной кости большого пальца на той же самой кости Bone_f orearm03LT и завершите его на корневой кости большого пальца. Не
1084 Приложение Б. Снаряжение и анимация персонажей удаляйте концевую кость в данной цепочке. Пястные кости большого и среднего пальцев уже связаны с костью запястья, поскольку процесс их соз- дания был начат щелчком на этой кости. 3. Выделите пястную кость мизинца, перейдите в окно вида сверху и выровняйте ее положение относительно оси Z по любой другой пястной кости. В итоге данная кость должна подняться по оси Z, оказавшись в центре кисти руки (пер- воначально она была создана на уровне исходной координатной сетки). Для коррекции размера этой кости можно открыть диалоговое окно Bone Тools 4. Выделите концевую кость в цепочке пястных костей мизинца, перейдите в режим правки костей и выровняйте положение этой кости по корневой кости мизинца. Сделайте то же самое для цепочки пястных костей большо- го пальца 5. Удалите концевые косги в обеих цепочках пястных костей. Присвойте пяст ным костям следующие имена: Bone_pinkyMetacarpianLT (Пястная кость мизинца левой руки), Bone_handMetacarpianLT (Пястная кость средней час- ти кисти левой руки) и Bone_thumbMetacarpianLT (Пястная кость большого пальца левой руки). Вторая пястная кость названа так потом}', что она приводит в движение средний, указательный и безымянный пальцы. Свяжите корневую кость каждого пальца с соответствующей пястной кост ью (рис. Б.52). Рис. Б.52. Завершенное строение костей кисти руки
Приложение Б. Снаряжение и анимация персонажей 1085 Элементы управления и вспомогательные объекты для кисти руки Для того чтобы организовать вращение каждой фаланги вручную, следует ввести ряд вспомогательных объектов в иерархию объектов кисти руки, а также управляю- щий объект для вращения запястья. А для чего нужен еще один объект, управляющий запястьем, когда такой объект уже имеется? В снаряжение кисти руки предстоит вве- сти ряд элементов управления, чтобы привязывать и отвязывать кисть от руки. В привязанном состоянии кисть наследует вращение от руки, а в отвязанном состоя- нии этого нс происходит, что дает возможность заблокировать кисть в пространстве мировых координат. Эго удобно в том случае, когда киегь остается неподвижной, то- гда как остальная часть тела персонажа или его рука движется. 1. Создайте новый точечный вспомогательный объект, установите флажок Box в области свойств отображения из свитка параметров этого объекта и выров- няйте его положение и ориентацию по объекту Point_wristControlLT. Присвойте ему имя Point_wristRotatorLT (Точечный объект, управляю- щий вращением запястья левой руки). Свяжите вновь созданный точечный объект с объектом Point_IKbone_forearmLT, а затем пястные кости с этим объектом. Выделите объект Point_wristRotatorLT, перейдите к панели Hierarchy, щелкните на кнопке Link Info и сбросьте все флажки в области Ro- tate из свитка Inherit. Зафиксируйте вращение этого объекта. 2. Перейдите к панели Motion, разверните треки анимацми контроллера управления вращением и назначьте ограничение по ориентации для трека Available, расположенного ниже трека Keyframe XYZ. Сделайте это ог- раничение активным контроллером и выберите в качестве его цели объект Point_wristControlLT. Вновь активизируйте контроллер Keyframe XYZ (рис. Б.53). А сейчас наступает самый интересный момент: создание вспомогательных объ- ектов для пальцев. Это нужно сделать в каждом суставе пальца и сочленении кисти руки. Созданные таким образом вспомогательные объекты будут использованы для вращения вручную каждой кости в кисти руки. Это дает возможность поворачивать каждую фалангу, нс выделяя соответствующие объекты внутри каркаса. 1. Создайте по одному вспомогательному объекту на каждую кость, кроме кос- ти Bone_handMetacarpianLT, и выровняйте положение и ориентацию каждого из них по соответствующей кости. Присвойте этим объектам под- ходящие имена, как, например, Point_pinky01LT-Point_pinky03LT для мизинца левой руки. А для точечного объекта управляющего пястной ко- стью мизинца, вполне подходит имя Point_pinkyMetaLT. 2. Выделите все вновь созданные точечные объекты и зафиксируйте их вра- щение.
1086 Приложение Б. Снаряжение и анимация персонажей | Keyframe XYi Sei Active I Delete | Cu’ J ** 11 Weight ГООО C Г Pose to Pose | - Eder Parameters ] Axis Order |WZ 3 Rotation Axis: fx Y | Z j Рис. Б.53. Точечный объект, управляющий вращением запястья, и контроллеры анимации его вращения Rotation List Leyei WeighC InilalPose 100. -> Keyframe XYZ | 100.0 Orientation Co.. 100 0 3. Для топ> чтобы вставить вспомогательные объекты между двумя другими объ- ектами в иерархии, свяжите сначала каждый из них с родительским объектом той кости, которой он должен управлять. Затем свяжите кость с тем вспомога- тельным объектом, который должен приводить ее движение. Придерживай- тесь именно такого порядка. Наг ример, для того чтобы вставить точечный объект Point_pinky01LT между костями Bone_pinkyMetacarpianLT и Bone pinkvOILT, свяжите этот вспомогательный объект сначала с пястной костью мизинца, а затем корневую кость мизинца с этим объектом. Сделайте то же самое и для остальных вспомогательных объектов. 4. Откорректируйте соответст венно размеры вспомогательных объектов в свитке их параметртв на панели Modify. Только нс делайте их слишком крупными, иначе они заслонят собой более важные объекты. Размеры этих объектов должны быть такими, чтобы их легко было выделить в каркасе модели персо- нажа (рис. Б.54).
Приложение Б. Снаряжение и анимация персонажей 1087 Рис. Б.54. Вспомогательные объекты для пальцев Далее следует ввести ряд элементов управления, чтобы аниматору не нужно было выбирать все упомянутые выше вспомогательные объекты для уста- новки кисти руки в нужное положение. Кроме того, необходимо создать ряд элементов управления сгибанием пальцев, чтобы эту операцию можно было выполнять с помощью простых ползунковых регуляторов. Для этой цели все необходимые специальные атрибуты будут введены в объ- ект ArmControlLT. 5. Выделите объект ArmControlLT, перейдите к папели Modify, выберите в сте- ке модификатор Attribute Holder и введите в нем следующие специальные ат- рибуты (рис. Б.55). Специальный атрибут #1 • Parameter Туре = Float • Ul Type Slider • Name = Wr i s t Free..........Locked (Привязка и отвязка запястья) • Width = 160 • From = 0 • To = l • Default = 0 • Alignment = Center • Add Attribute to Type = Selected Object s Current Modifier
1088 Приложение Б. Снаряжение и анимация персонажей Рис. Б.55. Специальные атрибуты объекта ArmControlLT Специальный атрибут #2 • Ul Type Spinner • Name = Thumb Curl (Сгибание большого пальца) • Width = 100 • Alignment = Center Специальный атрибут #3 • Name = Index Curl (Сгибание указательного пальца) • Width = 100 • Alignment = Center Специальный атрибут #4 • Name = Mid Curl (Сгибание среднего пальца) • Width = 100 • Alignment = Center Специальный атрибут #5 • Name = Ring Curl (Сгибание безымянного пальца) • Width 100 • Alignment Center Специальный атрибут #6 • Name = Pinky Curl (Сгибание мизинца) • Width = 100 • Alignment - Center
Приложение Б. Снаряжение и анимация персонажей 1089 Специальный атрибут #7 • Name = Finger Spread (Размах пальцев) • Width = 100 • From = 1 • То -1 • Default = 0 • Alignment = Center Все эти специальные атрибуты нужно теперь связать. Ради экономии места данный процесс будет показан ниже на примере одного пальца (мизинца), а для остальных пальцев вам придется повторить его самостоятельно. 1. Выделите объект ArmControlLT и щелкните правой кнопкой мыши. Выбе- рите команду Wire Parameters из всплывающего квадратного меню. Свяжи- те специальный атрибут ArmControlLT/Modified Object/Attribute Holder/Custom_Attributes/Pinky Curl с треком анимации Point_ pinkyOlLT/Transform/Rotation/Keyframe XYZ/Y Rotation. Эта связь должна быть односторонней: от объекта, управляющего рукой, к то- чечному вспомогательному объекту, управ гяющему мизинцем. Воспользуй- тесь для связывания следующим выражением: degtorad(Pinky_Curl)*80 Число 80 в этом выражении обозначает угол поворота пальца в градусах в зависимости от положения ползункового регулятора сгибания этого пальца. Если палец нужно повернуть на больший или меньший уг ол, изме- ните это число. В данном случае его вполне достаточно для аккуратного сгибания пальца. 2. Выделите объект Point_jpinky01LT, перейдите к панели Motion и разверните треки анимации контроллера управления вращением Keyframe XYZ. На- значьте контроллер Float List для трека Y Rotation. Связываемый контроллер следует ввести в список данного контроллера. Разверните треки анимации коп троллсра управления по списку и назначьте для трека Available контроллер Bezier Float, который становится активизированным. Благодаря этому анима- тор может по-прежнему вращать данный вспомогательный объект вручную. 3. Повторите описанные выше действия для связывания специального атри- бута Pinky Curl с объектами Point_pinky02LT и Point pinkvO3LT. Проверьте правильность функционирования специального атрибута сги- бания мизинца. 4. Свяжите аналогичным образом кости остальных пальцев с соответствующи- ми специальными атрибутами. Если какой нибудь точечный объект вращает ся нс в том направлении введите знак “минус” в выражении degtorad. Повторение приведенной выше процедуры для каждого пальца, безусловно, усложняет процесс снаряжения, однако понесенные затраты труда и времени окупаются сторицей благодаря удобству и простоте управления пальцами с по- мощью специальных атрибутов.
1090 Приложение Б. Снаряжение и анимация персонажей Снаряжать труднее всего большой палец, который вращается одновременно вокруг двух осей (в данном случае это оси X и Z). Кроме того, пястную кость большого пальца нужно немного опустить, а для этого придется установи ть связь с вращением этого объекта вокруг оси / Медленно сжав кисть руки в кулак, .мож- но увидеть, как двигается каждая се кость. Для того чтобы поместить большой па- лец на место при сжатии руки в кулак, придется также установить связь с враще- нием данного объекта на 25° вокруг оси X. Специальный атрибут Finger Spread предназначен для растопыривания пальцев (кроме большого) по их оси Z. При значении -1 этого специального ат- рибута пальцы выпрямляются и располагаются близко друг к друг}'. При его зпа чепии 1 пальцы растопырены максимально, а при значении 0 их положение нс меняется. Этот специальный атрибут связывается описанным выше способом с вращением пальцев вокруг оси Z. Множитель в выражении связывания па этот раз должен быть намного меньше. Его конкретное значение зависит от того, на- сколько пальцы должны быть растопырены. Если растопырить собственные пальцы, то можно заметить, что больше всего перемещаются указательный палец и мизинец, а меньше всего — средний н безымянный пальцы. Именно этого и нужно добиться с помощью данного специального атрибута. Если после связывания какой-нибудь точечный объект поворачивается па дру- гой угол, отмените операцию связывания параметров, назначьте контроллер управления по списку для связываемого трека и установите связь с треком Available внутри данного контроллера. Благодаря этому соответствующий трек обнуляется и указанный недостаток устраняется. И наконец, остается связать специальный атрибут Wrist. 1. Выделите трек анимации Point_wristRotatorLT/Transform/Rotation/ Weights/Weight: Orientation Constraint и свяжите его со специаль- ным атрибутом ArmControlLT/Modified Object/ Attribute Holder/ Custom_Attributes/Wrist_Free...........................Locked. Эта связь должна быть односторонней: от точечного объекта, управляюще- го рукой, до точечного объекта, вращающего запястье. Оставьте без изме- нения используемое по умолчанию выражение связывания параметров. 2. Объект Point_wristControlLT должен реагировать па вращение объекта Point_wristRotatorLT, чтобы при вращении запястья выкручивалось предплечье. Поэтому свяжите треки анимации Point_wristControlLT/ Transform/Rotation/X Rotation и Point_wristRotatorLT/ Transform/Rotation/Keyframe XYZ/X. Эта связь должна быть односто- ронней: от точечного объекта, вращающего запястье, к точечному объекту, управляющему запястьем. Оставьте без изменения используемое по умолчанию выражение связывания параметров. 3. Вновь выделите объект Point_wristControlLT, перейдите к панели Mo- tion, разверните треки анимации контроллера управления вращением и на- значьте контроллер Float L st для трека X Rotat on. Кроме того, назначьте контроллер Bezier Float для трека Available и активизируйте его.
Приложение Б. Снаряжение и анимация персонажей 1091 Для проверки функционирования данного специального атрибута выполните анимацию опускания руки персонажа вниз. Когда рука окажется в нижнем поло- жении, переместите ползунковый регулятор специального атрибута Wrist. Об- ратите внимание на то, что запястье перемещается, следуя за рукой, или же воз- вращается в исходное положение выравнивания в пространстве мировых коор- динат. Если требуется анимация запястья, ползунковый регулятор специального атрибута Wrist следует установи ть па отметку' Wrist Free. Окончательная правка снаряжения руки Итак, остается лишь внести окончательные поправки в снаряжение руки, а имен- но: заблокировать преобразования п установить свойства отображения управляющих объектов. Ниже перечислены объекты, управляющие рукой, их функции и блокируе- мые преобразования. • Объект ArmControlLT. Перемещает руку, по не вращается. Заблокируйте все оси сто вращения. • Объект Point_WristRotatorLT. Вращает запястье. Заблокируйте все оси его перемещения. • Объект Point_wristControlLT. То же, что и выше. • Все мелкие точечные объекты в кисти руки. Вращают кисть. Заблокируйте все оси их перемещения. • Объект Point_upperRotRefLT. Этот объект должен быть недоступен. За- блокируйте все его преобразования. • Объект Point_swivelTgtLT. Заблокируйте все оси вращения этого объ- екта, поскольку они пе используются. • Объект Point_clavicleCtrlLT. Заблокируйте все оси перемещения дан- ного объекта, а также ось его вращения X, поскольку оп пе должен вра- щаться вокруг этой оси. • Объект Point_clavRotRefLT. Этот объект должен быть недоступен. За- блокируйте все его преобразования. Блокировать преобразования всех точечных объектов типа Point_IKBone пе нужно, поскольку они находятся под управлением решателя ИК, и аниматор вряд ли сможет причинить им вред. Установите свойства отображения управляющих объектов. 1. Выделите объект Point_clavRotRefLT. Перейдите к панели Motion и щелкните на кнопке Rotation в свитке PRS Ра ameters (Пар негры распо- ложения, вращения и масштабирования), а затем установите нулевое зна- чение в поле Viewline Length из свитка LookAt Constraint, если не требуется иное. В итоге отображение вектора линии взгляда отключается, 2. Сбросьте флажки всех свойств отображения на панели Modify следующих точечных объектов. • Point_clavRotRefLT • Point_IKbone_upperarrnLT
1092 Приложение Б. Снаряжение и анимация персонажей • Point upperarmRotRefLT • Point IKbone_forearmLT • Point_IKbone_handLT • IKChain_armLT (свойства отображения этого объекта доступны на па- нели Motion) На этом снаряжение руки завершается (рис. Б.56). Рис. Б.56. Завершенное снаряжение руки Зеркальное отображение снаряжения руки Для того чтобы полностью скомпоновать снаряжение персонажа, осталось лишь зеркально отобразить снаряжение его рукы. Под окончательной компонов- кой подразумевается объединение всего снаряжения персонажа в единую иерар- хию. А для этого потребуется ряд дополнительных вспомогательных объектов, хол я большая часть рабо гы по снаряжению персонажа уже сделана. 1. Создайте новый точечный объект в окне вида в перспективе и выровняйте только его положение по кости Bone_spine04. Установите флажки Cross Box в области свойств отображения из свитка параметров этого объекта. Присвойте ему имя ArmWrapperLT (Объект, охватывающий левую руку). Свяжите данный объект с костью Bone_spine04. 2- Выделите объекты ArmControlLT, Point_swivelTgtLT и Point_ clavicleCtrlLT и свяжите их с вновь созданным точечным объектом. Откройте окно Schematic View и свяжите объект Point_clavRotRefLT и кость Bone_FKclavicleLT с этим объектом. Это следует сделать именно в окне схематического вида, поскольку' указанные объекты скрыты или не- видимы в видовых окнах. Все объекты, составляющие снаряжения руки, должны расположиться ниже вновь созданного узла (рис. Б.57).
Приложение Б. Снаряжение и анимация персонажей 1093 Рис. Б.57. Схематический вид снаряжения руки 3. Выделите все объекты находящиеся ниже объекта ArmWrapperLT, дважды щелкнув на нем. Выберите сначала выборочную (Pick) систему опорных ко- ординат, а затем точечный объект ArmWrapperLT 4. Выберите режим преобразования Use Transform Coordinate Center. Гизмо пре- образования должен переместиться в точку' опоры данного точечного объекта. 5. Зеркально отобрази те все снаряжение левой руки относительно оси X в окне вида спереди, выбрав вариант клонирования Сору. Как видите все снаряже- ние руки зеркально отображается идеально, кроме кисти, которая при этом только копируется, поскольку свойство наследования вращения у объекта, вращающего запястье, выключено. Вследствие того что вращение не переда- ется этому объекту вниз по иерархии, зеркальное отображение не распро- страняется далее по иерархии (на самом деле во время зеркального отобра- жения происходит отрицательное масштабирование объектов). Этот недостаток устраняется двумя способами. Во первых, можно отменить операцию зеркального отображения, активизировать свойство наследова- ния вращения для точечного объекта, вращающего запястье, еще раз вы- полнить зеркальное отображение снаряжения руки и вновь отключить данное свойство для кистей обеих рук. И во-вторых, зеркальное отображе- ние снаряжения кисти руки можно выполнить вручную, и в этом случае пригодится знание языка MAXScript 6. Прежде всего переименуйте объекты снаряжения правой руки. Для этого выделите объект ArmWrapperLTOl, а также все находящиеся ниже пего объекты и выберите инструмент Rename Objects. Сбросьте флажок Base Name, установите флажок Suffix и введите суффикс RT в поле, расположен- ном справа от этого флажка в открывшемся диалоговом окне Rename Ob- jects. Установите флажок Remove Last и введите значение 4 в поле Digits. Вам уже хорошо знаком инструмент Rename Objects поэтому' все эти опе- рации должны бы гь вам понятны Щелкните на кнопке Rename
1094 Приложение Б. Снаряжение и анимация персонажей НА ЗАМЕТКУ Если зеркальное отображение не выполняется, то, скорее всего, ранее были ос- тавлены активизированными свойства наследования других объектов. Внима- тельно проверьте эти свойства, прежде чем повторять зеркальное отображение снаряжения руки. Зеркальное отображение снаряжения кисти руки Недостатки зеркального отображения снаряжения кисти руки будут устране- ны ради примера упомянутым выше ручным способом. 1. Для этого придется выполнить вручную отрицательное масштабирование потомков объекта, управляющего запястьем. К ним относятся объекты Bone_handMetacarpianRT, Point_pinkyMetaRT и Bone_thuinbMetaRT. 2. Выделите объект Point_wristRotatorRT в любом видовом окне и на- жмите клавиш)' <Page Down>. В итоге будут выделены все потомки объекта Point_wristRotatorRT. Именно они и подлежат отрицательному мас- штабированию. Как только будут выделены порожденные объекты, введите в приемнике команд Mini Listener следующую команду, завершив ее ввод на- жатием клавиши <Enter>: for i in selection do (i.scale=[-1,-1,-1]) 3. Эта мера позволит устранить недостатки зеркального отображения снаря- жения кисти руки. Тем не менее мизинец по-прежнему занимает неверное положение. И этот недостаток нетрудно устранить. Выделите в снаряже- нии левой руки объект Point—р ’ nkyMetaLT. Выберите сначала ипсгру- мент Move, а затем систему мировых опорных координат. Откройте диало- говое окно Move Transform Type-in и запишите мировые координаты дан- ного объекта (в данном случае— [189,481 см, б, 403 см, 1254 см]). Далее выделите объект Point_pinkyMetaRT и введите записанные координаты (только координата X должна быть на этот раз отрицательной). В итоге ми- зинец установится в правильное положение. Прежде чем делать это, раз- блокируйте оси перемещения данного объекта на панели Hierarchy, по- скольку они были заблокированы перед зеркальным отображением снаря- жения руки, а затем заблокируйте их вновь. 4. Нетрудно выявить еще один очевидный недостаток зеркального отображения: ориентацию кисти руки в неверном направлении. В частности, ладонь обраще- на внутренней стороной вверх, а не вниз. Для устранения этого недостатка вы- делите объекты Point_pinkyMetaRT и Point_thumbMetaRT, а затем свя- жите их с костью Bone JiandMetacarpianRT. Выберите сначала инструмент Rotate, а затем систему мировых опорных координат и поверните кость Bone_handMetacarpianRT на 180° вокруг оси X. Кисть руки повернется в правильном направлении. Вновь свяжите объекты Point_pinkyMetaRT и Point_thuinbMetaRT с объектом Point_wristRotatorRT.
Приложение Б. Снаряжение и анимация персонажей 1095 НА ЗАМЕТКУ Если кисть руки вращается не так, как предполагалось, этот недостаток, скорее всего, кроется в блокировке вращения. Проверьте блокировку преобразований того объекта, который вращается неверно. А кроме того, проверьте, были ли внесены изменения в назначаемый по умолчанию контроллер управления преоб- разованием данного объекта. 5. Но это еще не все устраненные недостатки зеркального отображения. При перемещении ползункового регулятора специального атрибута Wrist Free. . . Locked в объекте ArmControlRT кисть руки по-прежнему повора- чивается. Это означает, что объект, управляющий запястьем, поворачива- ется па 180° относительно объекта, вращающего запястье Поэтому устано- вите данный ползунковый регулятор в положение, соответствующее пра- вильной ориентации кисти руки. 6. Создайте новый точечный объект в окне вида в перспективе и выберите его внешний вид на свое усмотрение. Выровняйте только его ориентацию по объекту Point_wristRotatorRT. Затем выровняйте ориентацию объ- екта Point_wristControlRT по вновь созданному точечному объекту. Вог, собственно, и все. Удалите вновь созданный точечный объект, по- скольку он больше не нужен. А почему нельзя было выровнять объект, вращающий запястье, по объекту, управляющему' запястьем? Дело в том, что между этими объектами сущест- вуют определенные зависимости, в силу которых выполнение подобной операции в 3ds max оказывается просто невозможным. 7. И наконец, необходимо устранить вращение костей предплечья вместе с их образцовым точечным объектом, который выровнен неверно. Для этого придется внести поправки в соответствующее выражение. Выделите кость Bone forearm02RT, перейдиie к папели Motion, разверните сначала треки анимации контроллера управления вращением, а затем треки анимации контроллера Keyframe XYZ Rotation. 8. Правка требуется контроллеру, назначенному для трека X Rotation. Вы- делите его, щелкните па нем правой кнопкой мыши и выберите из контек- стного меню команду Properties Откроется диалоговое окно Expression Controller. Внесите в выражение, отображаемое в этом окне следующие по правки: rot/4-degToRad(45) В этом выражении из утла вращения кости вычитается числовое значение 45°. Если щелкнуть на кнопке Evaluate или Close, кость вернется к своей исходной ориентации. Сделайте то же самое для кости Bone_forearm03RT, но на этот раз воспользуйтесь выражением. го t/2-degToRad(90) Сбросьте флажки в области свойств отображения из свитка параметров обоих объектов типа Point_wristRotator, поскольку эти свойства боль- ше не нужны.
1096 Приложение Б. Снаряжение и анимация персонажей Теперь необходимо проверить во всех контроллерах ссылки па неверные объ- екты. Вспомните, что происходило со снаряжением ноги после зеркального ото- бражения? И в этом случае следует проверить, пе было ли нарушено связывание параметров или каких-либо контроллеров в результате зеркального отображения. Сначала нужно убедиться в правильности функционирования специальных атри- бутов. К счастью, все специальные атрибуты, приводящие в движение кисть руки, функционируют практически идеально. А вот специальные атрибуты скручива- ния плеча и автоматического вращения ключицы действуют неверно. И причина этого кроется, скорее всего, в именах объектов, используемых в контроллерах управления но сценарию. Итак, поправки будут внесены сначала в автоматиче- ское вращение ключицы. 1. Выделите объект Point_clavicleCtrlRT в окне Schematic View, перей- дите к панели Motion и разверните треки анимации контроллера управле- ния вращением. Найдите контроллер Rotation Script и откроите диа- логовое окно Script Controller. Замените в тексте сценария суффикс LT на RT, чтобы обеспечить обращение к объектам па нужной (в данном случае — правой) стороне снаряжения руки. Проверьте значения, присвоенные переменным xComp, yComp и zComp. Удали ie в этих значениях знаки “минус” там, где они имеются, и введите их там, где их нет. Таким образом, значения в указанных переменных должны быть противоположны установленным для левой руки. 2. Выделите объект Point_clavRotRefRT и перейдите к напели Motion. Ус- тановите флажок Flip в области Select LookAt Axis из свитка LookAt Con- straint. Благодаря этому данный объект правильно развернется в сторону объекта ArmControlRT. 3. А теперь внесите поправки в скручивание плеча. Выделите кость Bone_upperarm02RT. Перейдите к панели Motion, разверните треки ани- мации контроллера управления вращением, а затем контроллера Keyframe XYZ. Выделите контроллер Float Script и щелкните па нем правой кнопкой мыши. И в этом случае в тексте сценария следует заменить суф- фикс LT па RT, чтобы обеспечить правильное обращение к объектам на правой стороне снаряжения руки. Щелкните на кнопке Evaluate в окне Script Controller. Кость повернется лицевой стороной назад. Для изменения ее ориентации введите числовое значение 180 между первой и второй круглой скобками. Теперь сценарий должен иметь следующий вид: dependsOn $Point_upperRotRefRT -degtorad(180+($Point_upperRotRefRT.transform.rotation as eulerangles). x) В итоге кость повернется лицевой стороной вперед. Итак, снаряжение правой руки персонажа поправлено! Если вы обнаружите какие-либо другие недостатки зеркального отображения этого снаряжения, уст- раните их — теперь вы знаете, как это делается. Ведь назначение этого приложе- ния — помочь вам научиться правильно снаряжать персонажи, а самое главное — попять, как и почему это делается.
Приложение Б. Снаряжение и анимация персонажей 1097 Окончательная компоновка снаряжения персонажа А теперь можно приступать к составлению снаряжения персонажа в единую иерархию, чтобы свободно перемещать, оживлять и внедрять его в новые сцепы В настоящий момент снаряжение персонажа состоит из пяти отдельных ие рархий: двух ног, двух рук и головы с позвоночником. Из них нужно составить единую иерархию. 1. Прежде всего в снаряжение позвоночника необходимо ввести еще один управляющий объект, позволяющий вращать весь позвоночник, не скручивая его. Создайте круглый сплайновый объект и выровняйте его положение и ориентацию по объекту SpineControl_arc, используя точку опоры. При- свойте ему имя SpineControl_noArms (Обьект, управ шющпй позвоночни- ком, по не руками). Радиус этого объекта должен быть бо 1ыпе, чем у круга, который уже опоясывает талшо персонажа. Скопируйте этот объект п при- свойте его копии имя SpineControl_Arms (Объект, управляющий позво- ночником и руками). Оба полученных круга будут использоваться для враще- ния позвоночника как вместе с руками, так и без них. Заблокируйте все осп перемещения и масштабирования обоих круглых управляющих объектов. 2. Свяжите сначала объект SpineControl_LOW с объектом SpineControl_arc, обьект SpineControl_arc с объектом SpineControl_noArms, а послед- ний — с объектом SpineControl_Arms. Далее свяжите обьекты типа ArmCon- trol с объектом SpineControl_Arms. 3. Создайте новый точечный объект и выровняйте только его положение по любом}' из объектов типа ArmWrapper. Присвойте ему имя Point_armsLock (Точечный объект для блокировки рук). Свяжите этот точечный объект с ко- стью Bone_spine04. Далее свяжите оба объекта, ArmWrapperLT и Arm- WrapperRT, с объектом Point_armsLock и сбросьте флажки в области свойств отображения из свитка параметров этих объектов. Зафиксируете вращение объекта Point_armsLock. Перейдите к панели Motion и замените контроллер Keyframe XYZ ограничением по ориентации. Выделите объест Point .spineCONTROL low в качестве цели этого ограничения. Выберите для данного ограничения правило преобразования World-World, т.е. с учетом преобразования родительского узла в мировом пространстве. После этого за- блокируйте все преобразования данного объекта и сбросьте флажки свойств отображения из свитка его параметров. Если переместить элементы управ- ления позвоночником (один из них был введен ранее, а два других теперь), то можно заметить, как руки двигаются согласованно с туловищем персонажа. 4. Перейдите к снаряжению ног. Создайте многоугольный сплайновый объект в окне вида в перспективе. Присвойте ему имя HipsControl (Объект, управ ляющий бедрами) и выровняйте его положение и ориентацию по любому из объектов типа Point_spineCONTROL. Свяжите с ним объекты LegWrap- perLT и LegWrapperRT. Выделите объекты LegControlLT и LegControlRT и щелкните па кнопке Unlink основной панели инструментов. При вращении объекта HipsControl аккуратно поворачиваются бедра персонажа.
1098 Приложение Б. Снаряжение и анимация персонажей 5. Создайте еще один главный точечный объект, чтобы соединить вместе ту- ловище и ноги персонажа. Установите флажок Box в области свойств ото- бражения из свитка параметров этого объекта. Выровняйте его положение и ориентацию по объекту HipsControl Присвойте ему имя Character- Control (Объект, управляющий персонажем). Свяжите с ним объект SpineControl_Arms. Затем свяжите объекты HipsControl и Point_ spineCONTROL_low. И наконец, свяжите объекты Point_SPINE и Spine- Control_arc. Проверьте полученную иерархию по схематическому виду. Все объекты снаряжения персонажа должны составить единую иерархию, кроме от- дельных иерархий объек тов типа LegControl. 6. Создайте еще один круглый сплайновый объект и переместите его в точку с координатами (0,0,0). Расположите его ниже стоп персонажа и присвой- те ему имя CHARACTER_ALL (Объект, управляющий всем персонажем). Свя- жите с ним объекты Charactercontrol, LegControlLT и LegControlRT. Воспользуйтесь объектом CHARACTER_ALL, чтобы переместить весь персо- наж по сцепе и поверните его в правильное положение. С его помощью мож по также масштабировать персонаж, если масштабы окружения иные, чем у персонажа. Завершенное снаряжение персонажа приведено па рис. Ь 58. Рис. Б.58. Завершенное снаряжение персонажа
Приложение Б. Снаряжение и анимация персонажей 1099 Итак, снаряжение персонажа завершено полностью. Оно содержит развитые элементы управления анимацией персонажа, которые по достоинству оценит ани- матор. В завершенном виде это снаряжение можно посмотреть в сцене из файла Project Files\ChCD2_CharacterRiggingAndAnimation\rigging_end.max на прилагаемом к этой книге DVD. К сожалению, здесь недостаточно места для освещения весьма важных вопро- сов снаряжения персонажей, касающихся формирования кожного покрова и морфинга. А в заключение следует сказать несколько слов о применении соз- данного выше снаряжения персонажа в анимации. Анимация Несмотря на то что анимация — это совершенно друтая дисциплина, тем не менее опа определяет процесс разработки снаряжения персонажа. Поэтому для тех, кто собирается заниматься анимацией собственных персонажей, ниже будет дано краткое описание того, что при этом происходит. Анимацией персонажей занимаются те, кто имеет особые навыки оживле- ния персонажа. Мне пе раз приходилось видеть неудачные примеры анимации персонажей как в демонстрационных роликах, так и в производственных про- ектах. Если вы собираетесь стать аниматором персонажей, вам придется отве- тить на следующие вопросы: имеете ли вы ясное представление о том, как эмо- ции передаются посредством движения? Готовы ли вы потратить немало вре- мени на то, чтобы стать настоящим профессионалом в этом деле? Если вы отве- тите утвердительно, значит, когда-нибудь вы действительно станете умелым аниматором персонажей, а возможно, вы уже нм стали! Откровенно говоря, для этого требуется особый дар. Он имеется далеко не у каждого, и пе всякому уда- ется развить его в себе. Тем пе менее любая помощь в изучении анимации никогда не помешает. 14 в этом отношении удачное снаряжение персонажа намного упрощает задачу овладения этим искусством — по крайней мере, не нужно преодолевать сложно- сти программного обеспечения. В данном случае речь идет об анимации персо- нажа Боевого Монаха. Попробуйте создать ряд фрагментов анимации, чтобы показать именно такой характер данного персонажа. Затем попытайтесь соз- дать нечто совершенно другое. В частности, сделайте так, чтобы оп вел себя, как животное или робот. Снаряжение данного персонажа позволяет делать с ним практически все, что угодно. В снаряжении использован узел персонажа для полного его охвата. Это да- ет возможность сохранить анимацию на диске для последующего применения и приступить к составлению собственной библиотеки движений и поз персо- нажа, а затем внедрять в сцепу разные виды движения во время анимации персонажа.
1100 Приложение Б. Снаряжение и анимация персонажей В 3ds max 1 появился очень полезный инструмент — накопитель парамет- ров (Parameter Collector). По существу, это пустая всплывающая панель, на которой можно накапливать из сцены все параметры, которые требуется со- хранить для удобства анимации Накопитель параметров позволяет сосредо точить в одном месте все треки анимации, чтобы не переходить между раз- ными узлами для анимации различных параметров. Что касается данного пер- сонажа. то в накопителе параметров можно сохранить различные треки апи мации его параметров (рис. Б.59). Благодаря упрощенному доступу к этому инструменту аниматор может уделить больше внимания своим прямым обя занностям: анимации персонажа, не думая о том, где находятся отдельные ат- рибуты управления персонажем. Рис. Б.59. Накопитель параметров персонажа Боевого Монаха В данном случае в накопителе параметров сосредоточены разные свитки со специальными атрибутами для управления отдельными частями тела персонажа. Этому набору параметров присвоено имя, а соответствующие значения для управляющего объекта CHARACTER_ALL сохранены с помощью команды Put to Object на тот случай, если аниматор решит нарушить узел персонажа. Таким об- разом, пользовательский интерфейс накопителя параметров сохранится. Анимация персонажей — это целое искусство, и для овладения им требуется время. Даже если вы решите, что это занятие не для вас, умение подготавливать персонажи к анимации может весьма пригодиться. Надеюсь что материал этого приложения поможет вам стать на верный путь (рис. Б.60).
Приложение Б. Снаряжение и анимация персонажей 1101 Рис. Б.60. Завершенный персонаж, готовый к действию Резюме Даже после проработки всего материала этого приложения остается ряд свойств, нереализованных в снаряжении данного персонажа. Поэтому ниже при- ведены некоторые рекомендации для самостоятельной доработки полученного выше снаряжения. • Введите элемент управления поворо тами челюсти в разные стороны. • Организуйте процедурное поведение пальцев пог, чтобы они растопыри- вались в зависимости от величины перекатывания стопы и угла вращения точки опоры стопы. • Введите в снаряжение персонажа эластичные кости.
1102 Приложение Б. Снаряжение и анимация персонажей • Подберите для костей разные цвета в зависимости от величины их эла- стичности (если в снаряжение были введены эластичные кости как рско- мепдовалось выше). • Сымитируй те деформации мускулов с помощью эластичных костей. • Организуйте нсевдомускульпое поведение, используя модификатор Skin Wrap. • Исключите в контроллерах управления по сценарию зависимость от имен объектов. Со снаряжением данного персонажа можно сделать и многое другое, по для начала достаточно буде т п этого. Напомним что назначение этого приложения состоит не в том, чтобы пока- зать сам процесс снаряжения персонажа, а в том, чтобы помочь вам лучше по- нять, почему п как это делается. Приобретенные знания вы сможете применить для разработки снаряжения собственных персонажей, а при желании — расши- рить своп знания. Ниже приведен ряд ссылок па учебный материал, ста тьи и Web- сайты самых лучших художников по снаряжению персонажей. Надеюсь, что эта информация окажется для вас пе менее полезной. Желаю всяческих успехов! Дерзайте! Ссылки • Web-сайт Косса Риппсна (Kees Rijnen): http:\ \www. keesri j nen. com • Web-сайт Майкла Комета (Michael Comet): http: \\ww. comet-cartoons . com\toons\ • Web-сайт Пола Нила (Paul Neale): http: Wwww.paulneale.com • Часто задаваемые вопросы по математическому аппарату матриц и кватер- нионов: http:Wskal.planet-d.net\demo\matrixfaq.htm • Мой личный Web-сайт: http: \ \www. maxtd. com
Предметный указатель А Адаптивная субдискрстизация, 885 Айсберг, разбиваемый па куски. 613 Альфа-канал, 914 Алиматика, 8G8 Анимация вручную и автоматическая, объединение. 662 дельфина как твердого тела, 647 по ключевым кадрам, 657 инструменты, 496 манипуляторов, 549 нелинейная, 581 персонажей, 554; 996; 1099 повторное использование, 985 процедурная, 553 раскадровки, 868 расстановка и правка ключевых кадров, 983 свойств частиц,681 сжатие и распаковка, 855 скелетов, 554 твердого тела вручную, 649 точек опоры, 566 эффекта мокрого камня, 408 эффектов частиц, <809 Б Блики в объективе, 941 Блокировка рамки,161 В Верхний свет, 882 Визуализация анимационных файлов, 855 в текстуру, 987 вывод результатов, 834 двухмерных штриховых рисунков, 874 каустики, 906 методы и средства, 871 модели иа рирпроекциоппом фоне, 460 настройка параметров в mental ray, 906 стандартная, 830 окончательная, 829 основные методы, 825 панорамного вида, 865 по методу излучательности, 145; 891 повышение эффективности, 867 предварительно заданные параметры,137 прозрачных теней, 136 сетевая, 988 слоями, 921 сцепы по элементам, 471; 916; 920; 986 Внешние силы, 686 Внешние ссылки, 974 Вогнутые объекты, 614 Вспомогательный объект Expose Transform, 104 Выпуклые объекты, 614 Выступы на костях, 1039
1104 Предметный указатель Г Граф ТСВ, 5G2 последовательности движений, 578 д Двуногий объект анимация в произвольной форме, 562; 565 веса влияния треков. 590 инструменты,569 по следам,562; 567 экспорт в формате FBX, 580 инструменты отображения, 575 копирование и вставка поз, 575 модификатор Physique, 561 модификатор Skin, 560 настройка положения центра масс, 571 определение, 121 правка скелета, 556 разновидности скелетов, 555 смещение веса, 572 создание, 555 установка кадров и траектории, 565 Двухмерные формы, 202 Действия в системе частиц Particle Flow, 696; 704 Деформируемые тела, 668 Динамика двуногого объекта, 567 позвоночника, 568 Допуск на столкновение, 643 Е Единицы измерения, 963 3 Замещающие объекты в анимации, 344 столкновений,721 Зеркальная подсветка, 423 Зеркально отраженный свет, 423 И Иерархия, 997 Избыточная выборка, 837 Излучатели частиц, 683 Имитация вогнутых объектов, 617 выпуклых объектов, 617 глобального освещения, 889 движения воды, 673 с помощью reactor, 612 столкновений,643 Импорт в формате MPEG, 90 данных фиксации движения, 578 ресурсов, 989 Инструменты Array, 973 Bevel, 227 Bridge, 65; 315 Clone and Align, 52 Cut, 68 Extrude, 227 Mirror, 973 Paint Selection Region, 42 Quick Align, 51 Rename Objects, 964 Select By Name, 967 Select Object, 966 Spacing, 973 анимации,495 выделения, 967 организации труда, 957 привязки, 54 Интерфейс в окне Particle View, 696 панель отображения событий,701 панель параметров, 700 строка меню, 696
Предметный указатель 1105 хранилище действий, 701 изменения в меню, 40 квадратные меню, 41 новые элементы на панелях инструментов, 40 открытие и закрытие окон, 38 рационализация труда, 42 специальная настройка, 990 усовершенствованные инструменты привязки, 54 Источник частиц PF Source параметры, 691 пиктограмма, 690 Источники света в mental ray, 903 задняя подсветка, 417 заливающего, 417 направленного, 417 специальные, 417 стандартные, 424 тины, 423 фотометрические, 425 К Каналы объектов, 937 эффектов в материале, 937 Карты Bitmap, 84 Displacement, 232 Falloff, 388 Noise, 388 Normal, 84; 237 Vertex Color, 147 процедурные, 237; 239; 360 растровые, 239; 359 типы, 360 Кватернионы, 562 Кинематика инверсная, 128; 999 прямая, 127; 998 сочетание обоих видов, 1075 Клонирование объектов, 972 Кодеки, 855; 986 Команды Macro Recorder, 154 Object Display Culling, 45 Render Shortcuts, 39 переключения режимов привязки, 42 Компланарные объекты, 654 Компоновка в Video Post, 932 определение, 914 причины для обращения, 921 слоями, 930 со сценой па рирпроекционном фоне, 856 Контроллеры ТСВ, 562 для снаряжения персонажей, 1019 назначение, 495 управления кватернионами, 562 управления по списку, 574 управления по сценарию, 505; 1024 управления по Эйлерову вращению, 506 управления реакцией, 111; 1024 Конус спада света, 453 Концептуальный эскиз, 223; 959 Копии,973 Копирование параметров текстур, 92 Кости выступы, 1040 зеркальное отображение, 1013 назначение, 995 ноги, 1011 пястные, 1083 руки, 1061 Куски взаимное проникновение, 614 взрывное разделение па части, 614 вогнутые, 618 выпуклые, 618 нереактивпость, 641 определение,613
1106 Предметный указатель потери энергии при разламывании, 645 создание, 624 стабилизация,631 физическое равновесие, 645 Кэш частиц, 783 м Манипуляторы, 495; 544 Маска, 914 Массивы, 198 Масштаб сцены, 963 Материалы Ink'n Paint, 874 Matte/Shadow, 922 mental ray, 904 Multi/Sub-Object, 372 Multi-Layer, 409 коэффициент отражения, 896 пропускания, 897 многослойные, 409 оживляемые для частиц, 753 типы, 356 Матрицы преобразования, 277 Метачастицы, 685 Метод излучательности, 466; 891 сечения,625 Моделирование в окне вида в перспективе, 332 головы персонажа, 327 карикатурных глаз персонажа, 345 кратера, 250 кристаллов, 259 кухни из примитивов, 196 макрофагов, 282 мускулов, 321 окружающей среды, 223 параллелепипедное, 74; 294 персонажей, 293 плоскости основания, 246 присоединение конечностей, 313 растительности, 263 рационализация труда, 970 с помощью поверхностей подразделения, 294 свиньи из куба, 294 скалистого утеса, 224 точное, 195 Модификаторы Attribute Holder, 1009 Displace Mesh (WSM), 238 Edit Mesh, 60 Edit Poly, 60 Edit Spline, 206 Linked XForm, 513 MeshSmooth, 74; 320 Physique, 559 Projection, 82 Renderable Spline, 142 Skin, 559 Skin Morph, 118 Skin Wrap, 115 STL Check, 989 Symmetry, 296 TurboSmooth, 74; 320 Unwrap UVW, 80; 232; 979 UVW Map, 79; 979 VertexPaint, 93; 147; 486 Xform, 277 правки, 306 проецирования, 366 Модуль Backburner, 467 character studio, 103; 120; 553 Light Tracer, 466; 884 mental ray, 901; 903 reactor 609; 612 H Набор деформируемых каркасов, 663 Назначение координат проецирования, 980 Накопитель параметров, 1100
Предметный указатель 1107 Наложение переводных картинок, 378 растровых текстур, 384 Наследование преобразований, 998 Нововведения в анимации, 103 в визуализации, 133 в интерфейсе 3ds max 7, 29 в моделировании,59 в текстурировании, 77 Нормали, 71 О Ограничения в reactor, 610 виды 496 моделирующие, 978 назначение, 495 но линии взгляда, 530 по линии пути, 533 по линии связи, 518 по поверхности, 524 по положению, 540 по присоединению, 496 Окно Adjust Color, 93 Customize User Interface, 990 Edit UVWs, 79 Environment and Effects, 422; 842 I ight Lister, 480 Listener, 156 Material/Map Browser, 981 Material/Map Navigator, 981 Motion Mixer, 126; 582 Numerical Expression Evaluator, 198 Object Properties, 972 Pai amclcr Collector, 108 Parameter Wiring, 495; 545 Particle View, 690; 695 Reaction Managei ,111 Render Scene, 829 Render To Texture, 85; 240; 489 Scatter Objects, 602 Trackgioup Filtei, 587 Video Post, 757; 932 Окрашивание, 882 Операторы в системе частиц Particle Flow, 706 в сценариях для управления частицами, 786 Организация сцен, 965 Осветительная оснастка, 982 Освещение вершин, 486 визуализация по элементам, 471 глобальное, 881 для вещания, 459 заливающим светом, 479 игр, 459; 476 модели па рирпроекциопиом фоне, 462 направленным светом, 476 настощее, имитация, 461 объемное, 845 окраска, 418 организация, 417; 982 персонажа, 449 с помощью Light Tracer, 887 сведение элементов, 489 специальное, 479 сцены,принципы,418 усовершенстованное, 882 Отражатели, 686 Оттенители Orcn-Nayar-Blinn, 402 SSS, 97 в mental ray, 905 рассеивающие, 402 типы, 355 Очередь событий, 932 п Палитра цветов, 94 Панель инструментов Render Shortcuts, 137 в reactor, 610
1108 П редметны й указатель в окне Motion Mixer, 583 Переливчатость, 396 Петли из ребер, 82; 327 Печать и экспорт, 863 Плавное выделение кистью, 63 назначение,62 План сцены, 224 Поверхности подразделения, 74; 294 Подключаемые модули, 962 Подповерхностное рассеивание, 97 Подстановочная модель, 984 Покрытие, 412 Поля ввода координат преобразования, 978 Привязка к конечной точке, 206 к сетке, 197 Приемник команд, 156 Примитивы, 195 Проверки в системе частиц Particle Flow, 705 по сценарию, 790 частиц на столкновение, 770 Проект анализ масштабов, 957 визуальный стиль, 958 календарный план, 960 организация труда, 957 подготовка, 960 резервное копирование и сохранение файлов, 961 ресурсы, 959 структура каталогов и файлов, 961 уровень качества, 958 этапы выполнения, 960 Проецирование в мировом пространстве, 368 в пространстве объектов, 368 виды, 368 карт Falloff, 392 Noise, 388 Normal, 237 на отдельные стороны объектов, 372; 375 отражения, 392 по принципу конструктора, 377 процедурных, 388 текстурных, 232; 364 планарное, 383 сферическое, 78 цилиндрическое, 78 Пространственные исказители Drag, 802 Gravity, 719 PBomb, 686 Wind, 803 Профили и формы из сплайнов, 209 Процедурные объекты, 364 Псевдокод, 153 Р Разлом, 612 Размытость движения изображения, 947 многопроходная, 949 объектов, 944 особенности,943 сцены,951 Рассеянное затенение, 402 Рассеянный свет, 421 Расширения SSE, 836 Регистрация действий в Maci о Recorder, 154 Редактируемый многоугольник, 294 Редактор кривых, 983 материалов, 354; 980 Режимы Array Preview, 48 Auto Key, 983 Figure, 121; 558 Flat Shaded, 30 Footstep, 124 Highlight Seams, 77 Make Planar, 64
Предметный указатель 1109 Mixer, 126 Motion Blur 142 Motion Flow, 125; 576 Paint Deformation, 71; 287; 321 Preserve UVs, 95 Relax, 73 Render Bounding Box/Selected, 384 Rubber Band,573 Select Poly by Angle, 61 Set Key, 983 Subframe Sampling, 716 Turn Edges, 69 анимации двуногого объекта, 127 изоляции в крупных сцепах, 971 обхода, 32 отображения, 972 подготовительной таблицы, 983 Рентгеновский эффект, 400 Решение излучательности, 146 Рирпроекционный фон, 372 Рисованное затенение, 874 РЭМ, 282 С Сведение, 240; 459; 489 Сворачивание стека модификаторов, 977 Связывание параметров, 495; 545 Сглаживание методы, 837 назначение, 836 Системы дневного света, 43] костей персонажа, 995 организации толпы, 597 освещения, 427 солнечного света, 427 частиц Blizzard, 687; 814 Р Array, 688 Particle Flow, 546; 690; 761 PCloud, 687 Snow, 687 Spray, 687 Super Spray, 687 неуправляемые событиями, 687 управляемые событиями, 687 элементы, 683 Следы,124 Слои компоновки, 914 сцепы, 968 Снаряжение анимационное, 1003 головы персонажа, 1051 зеркальное отображение кисти руки, 1094 ноги, 1028 руки,1092 золотое правило, 994 кисти руки, 1081 ключицы, 1071 лица персонажа, 1055 пог персонажа, 1009 перекатывание стопы, 1024 персонажей как кукол 994 планирование, 1002 плеча, 1068 по уровням,1003 подготовка сцены, 1009 позвоночника, 1036 полное, 1003 пользовательский интерфейс, 994 рук персонажа, 1061 составление в единую иерархию, 1097 специальные атрибуты, 1021 стоны, 1013 туловища персонажа, 1036 уровни, 995; 1006 человеческого персонажа, 1008 элементы управления для аниматора, 1019 События в Video Post, 932 в системе частиц Particle Flow, 690; 702
1110 Предметный указатель глобальные, 707 зарождения частиц, 707 операторы, 690 проверки, 690 связывание, 710 Сокрытие и фиксация объектов, 969 Составляющие света, 421 Составные объекты BlobMesh, 685; 724 Scatter, 279 булевые, 219 лофта, 213 Сплайновый решатель ИК 1036 Средства визуализации ActiveShade, 826 mental ray, 901 методом излучательности, 897 с 1 ©строчной разверткой, 871 глобального освещения, 882 просмотра панорамных видов 864 экспорта Shockwave 3D, 866 Ссылки,973 Столкновения данные, 634 имитация, 643 планарные, 723 сохраненные, 636 фильтрация, 640 Схема освещения сцены, 417 Сценарии MAXScript colorClip, 188 quickDraft, 175 визуальный редактор VMXS, 155 готовые, 153 для потоков частиц, 786 из потока частиц, 810 написание кода, 153 обобщение кода, 155 предпосылки для написания, 192 применение в проекте, 991 справочное руководство, 153 текстовый редактор TextPad, 155 т Такты имитации, 643 Текстурирование, методы, 980 Текстурные швы, 77 Тела твердые и мягкие 612 Тени назначение, 434 типы,434 Толпа имитация в системе Crowd, 597 объект толпы, 597 поведение, 600 представитель, 597 процедурная анимация, 597 создание, 598 У Узел персонажа, 985 Управление экспозицией, 464; 894 Управляющие объекты, 995 Условные обозначения, 963 Утилиты Assign Vertex Colors, 146 Camera Match, 856 File Link Manager, 142 Reset XI orm, 989 Resource Collector, 962 Video Post, 913 Visual MAXScript, 178 Ф Фиксация движения, 985 Фильтрация движений, 584 столкновений,640 Фильтры выделения, 966 Форматы вывода в файл, 833; 920; 985
Предметный указатель 1111 Формирование кожного покрова, 996 Фотометрические источники света для метода излучательности, 892 предварительно заданные, 133 распределение силы света 425 распределительного типа, 134 типы, 426 Фотометрические профили, 135; 425 Фотоны, 906 X Хранилище клипов, 589 операторов, 696 ц Цвет обозначения прозрачности, 918 фильтрация, 444 фона, 429 Цели ИК, 1000 морфинга, 344 Цепочки ИК, 1000; 1017 костей, 1000 объектов, 1000 ч Частицы визуализация, 740 выделение, 806 для эффектов окружения, 711 определение,681 отклонившиеся, улавливание, 722 процедурные, 681 пустой поток, 690; 707 свойства, 681 стандартный поток, 690; 707 столкновение, 718 формы, 684 Четвероногие объекты, 595 э Экземпляры, 973 Экспозиция, виды, 894 Экспорт и импорт данных, 965 Элементы управления видовыми окнами,970 Эффекты видеомонтажа, 819 видсообработки,934; 943 вулканические, 711 дымовые, 799 мерцающего пламени, 796 объемный туман, 848 огневые, 791; 851 окружения, 710 полосатый след от самолета, 762 разбрызгивания 744 рассеяние поля заряженных частиц, 778 расщепление молнии, 775 свечения, 757 следы обгорания, 794 удар молнии, 769 ударного и текучего размазывания, 751 частиц, 761 электрические, 769 Я Язык MAXScript знак S, 157 классы объектов, 165 ключевые слова, 162 команды classOf, 165 move, 160 random, 167 rotate, 161 scale, 161
1112 Предметный указатель show, 158 контекстный указатель in coordsys, 160 массивы, 171 назначение, 151 операторы at time, 173 where, 163 сравнения,163 свойства объектов, 158 типы переменных, 159 функции try() и catchf), 186 цикл for, 161 Яркое пятно, 453
ВНУТРЕННИЙ МИР 3ds max 7 Чтение этой книги можно сравнить с выполнением производственного задания. Ее авторы, имеющие большой опыт выпуска анимационной продукции на высоком профессиональном уровне, раскрывают потенциальные возможности 3ds max 7 на примере ряда реальных проектов. Трудно найти более исчерпывающее справочное пособие по 3ds max 7! Отличительные особенности книги. Шон Бонни — основной автор книги, художник в области трехмерной графики. Шон работал ведущим дизайнером региональной библиотечной системы высшего разряда, был свободным художником- оформителем компьютерных игр на нескольких студиях Кроме того, он является одним из авторов трех предыдущих книг по 3ds max, вышедших в издательстве New Riders. Стив Анзовин литературный редактор книги. Является автором восьми книг по вычислительной технике и компьютерной графике В 2000 году он основал студию Ansovin Studio, специализирующуюся на выпуске компьютерной анимации персонажей для кино, телевидения и игр. Описание анимационной системы character studio, входящей в состав 3ds max 7 Рассмотрение нововведений в 3ds max 7 Детальное изложение часто упускаемых из виду расширенных возможностей 3ds max, включая эффекты частиц, визуализацию и компоновку Профессиональные советы и рекомендации для художников, специализирующихся на разработке игр, производстве кино-, теле- и видеопродукции DVD-ROM содержит "Т* все файлы, необходимые для выполнения упражнений, а также дополнительный материал, включая приложения по организации производства в 3ds max 7, снаряжению и анимации персонажей. Категория Трехмерная графика и анимация Предмет рассмотрения Уровень 3ds max 7 Средний — профессиональный ВИЛЬЯМС www.williamspublishmgcom Неш Riders 1 1249 Eighth Street, Berkeley^ CA 94710, U S.A. wwwnewnders.com