Серия «Читай и смотри»
Зеньковский В. А
Cinema 4D Практическое руководство видеоуроки на DVD-диске
Москва СОЛОН-ПРЕСС 2008
УДК 621.396.218 ББК 32.884.1 3 56
Зеньковский В. А.
Cinema 4D. Практическое руководство. — М.: СО-ЛОН-ПРЕСС, 2008. — 376 с: ил. (Серия «Читай и смотри»). ISBN 978-5-91359-012-1
В книге рассмотрены структура графического пакета Cinema 4D (версия 9) и приемы работы с ним. Книга богато иллюстрирована примерами и содержит прилагаемый DVD с записью видеоуроков.
Сайт издательства «СОЛОН-ПРЕСС»: www.solon-press.ru E-mail: solon-avtor@coba.ru КНИГА—ПОЧТОЙ
КНИГА—ПОЧТОЙ
Книги издательства «СОЛОН-ПРЕСС» можно заказать нало-женным платежом (оплата при получении) по фиксированной цене. Заказ оформляется одним из трех способов: Послать открытку или письмо по адресу: 123242, Москва, а/я 20. Оформить заказ можно на сайте www.solon-press.ru в разделе «Книга — почтой». Заказать по тел. (495) 254-44-10, 252-73-26.
Бесплатно высылается каталог издательства по почте. При оформлении заказа следует правильно и полностью указать адрес, по которому должны быть высланы книги, а также фамилию, имя и отчество получателя. Желательно указать дополнительно свой телефон и адрес электронной почты. Через Интернет вы можете в любое время получить свежий каталог издательсза «СОЛОН-ПРЕСС», считав его с адреса www.solonpress.ru/kat.doc. Интернет-магазин размещен на сайте www.solon-press.ru.
По вопросам приобретения обращаться: ООО «АЛЬЯНС-КНИГА КТК» Тел: (495) 258-91-94, 258-91-95, www.abook.ru
ISBN 978-5-91359-012-1 © Макет, обложка «СОЛОН-ПРЕСС», 2008 © Зеньковский В. А., 2008
Введение Среди современных графических пакетов Cinema 4D занимает одно из ведущих мест на мировом рынке и пользуется заслуженной популярностью у профессионалов и любителей трехмерной графики как за рубежом, так и в нашей стране. Несмотря на громадную популярность графического пакета Cinema 4D, учебная литература по этой программе на русском языке практически отсутствует. Исключение составляют изданные книги Корсакова С. В. и ресурсы Интернета. В данной книге рассматривается девятая версия программы Cinema 4D. За долгий путь своего развития Cinema 4D, с одной стороны, вобрала в себя лучшие достижения таких программ, как 3DS Max, MAYA, Light Wave, а с другой стороны, создала набор уникальных инструментов, которые вы не найдете в других графических пакетах. К несомненным достоинствам Cinema 4D следует отнести также удачно продуманную компоновку интерфейса по функциональным группам (менеджерам), объединенным общими задачами. Главное меню и панели инструментов также скомпонованы с удивительной логичностью — расположение инструментов легко запоминается. Программа состоит из собственно ядра Cinema 4D и следующих модулей: Advanced Render — модуль позволяет при рендеринге осуществлять общую подсветку сцены, моделировать эффекты, получаемые с помощью светофильтров, реалистично моделировать блики на поверхностях, использовать функцию глубины поля, а также предоставляет другие возможности усовершенствования окончательного изображения. МОССА — включает в себя важнейшие инструменты для анимации объектов. В частности: — инструменты для управления цепочками костей в режиме обратной кинематики (в обратной кинематике движение строится от дочерних объектов к родительским, в прямой кинематике — от родительских к дочерним); — инструмент Cappucino для интерактивной анимации в режиме реального времени; — инструмент Pose Mixer для анимации морфинга (изменения формы) объекта на основе начального и конечного состояния объекта; — инструмент Р2Р для анимации морфинга на основе набора состояний объекта; — тэг Retarget для присваивания анимации одного объекта другому; — функцию хронографа Motion Blending, позволяющую получать траекторию движения объекта, составленную из траекторий других объектов; — инструмент Clothilde, служащий для создания одежды персонажа и ее анимации при движении. XPresso — редактор узлов, позволяющий строить сложные взаимодействия между объектами, используя графическое представление объектов в виде прямоугольников (узлов), имеющих входы и выходы (кибернетический принцип черного ящика). Thinking Particles — модуль позволяет создавать разного рода системы частиц, с помощью которых можно моделировать скопления движущихся и неподвижных объектов, например, косяки рыб, стаи птиц и звезды. Наиболее эффективно данный модуль работает с модулем XPresso. PyroCluster — модуль предоставляет набор инструментов для создания пиротехнических эффектов. Dynamics — модуль позволяет моделировать силовые поля и создавать кинематику объектов под воздействием этих полей. Sketch and Toon — модуль позволяет создавать изображения в характерной технике карикатур и мультипликационных персонажей. Body Paint 3D — модуль позволяет осуществлять трехмерную раскраску объекта К книге прилагается DVD с записью видеоуроков (в формате .avi) по Cinema 4D. На этом DVD кроме того в папке «Рисунки к главам» записаны рисунки к главам книги, что позволяет просматривать в цвете приводимые примеры (рисунки в книге выполнены в черно-белом варианте). В силу ограничений по объему, ряд вопросов в книге не рассмотрен. Например, не рассмотрены вопросы, связанные с записью звука. Информацию относительно программы Cinema 4D можно узнать, в частности, на сайте фирмы разработчика www.maxon.net. Автор выражает благодарность Рыжову А. М. за техническую помощь в подготовке рукописи.
Глава 1. Интерфейс Cinema 4D При первом входе в программу предъявляется диалоговое окно для ввода регистрационных данных пользователя и регистрационных номеров каждого из модулей программы (рис. 1.1). Лучше сразу ввести регистрационные номера всех модулей (обычно они прилагаются на диске) Можно отложить регистрацию и, щелкнув по кнопке Cancel, войти в программу. Вводить регистрационные номера модулей можно в ходе работы по мере необходимости (окно доступно через главное меню Help -> Personalize). Cinema 4D имеет свободно настраиваемый интерфейс, что облегчает использование возможностей, заложенных в программу. Рассмотрим начальный вариант интерфейса (рис. 1.2) при разрешении монитора
1024x768. При меньшем разрешении монитора доступ к не поместившимся кнопкам осуществляется прокруткой панели инструментов (нажать левой или правой кнопкой мыши на разделитель между пиктограммами и протянуть влево/вправо, вверх/вниз).
Чтобы изменить способ отображения команд на панелях инструментов, следует щелкнуть правой кнопкой мыши на панели инструментов и в контекстном меню выбрать один или сразу несколько из следующих пунктов: Icons (отображает значки), Text (отображает надпись) и Vertical (размещает надпись под значком) (рис. 1.3). Настройка вертикальной и горизонтальной панелей инструментов производятся раздельно.
Выбрав в контекстном меню пункт Transpose, можно развернуть панели инструментов (рис. 1.4). Чтобы расположить значки на панелях инструментов более чем в один ряд, следует выбрать пункт Rows/Columns и задать количество рядов (рис. 1.5). С помощью пункта Icon Size (размер значка) можно изменить размеры значков. Для экономии места в рабочем окне можно свернуть панели инструментов до одной кнопки, выбрав в
контекстном меню пункт Fold Palette (свернуть палитру). Чтобы вернуться к развернутой панели инструментов, щелкните (левой кнопкой мыши) на значке кнопки Revert to Default Layout и выберите пункт Standart (рис. 1.6). Окно проекций позволяет рассматривать создаваемый объект или сцену фронтально, сбоку, сверху и в перспективе. Соответственно этому Cinema 4D имеет 4 типа окон проекции, которые вызываются через меню окна проекции View (рис. 1.7) Каждое из окон проекции имеет: координатную сетку, оси глобальной системы координат, фон, заголовок и рамку. Как было сказано, для конфигурирования окна проекций служит пункт меню View -> Panels (Вид -> Панели) (рис. 1.8), с помощью которого можно выбрать различное количество, расположение и вид окон. Для удобства работы размер объекта (или объектов) можно привести в соответствие с размером окна. Для этого в меню Edit предусмотрены следующие возможности (рис. 1.9) — Frame Selected Elements — размеры выделенного элемента сцены становятся соизмеримы с размерами окна; — Frame Active Object — размеры активного объекта становятся соизмеримы с размерами окна;
— Frame Scene Without Camera/Light — размеры всех объектов сцены, кроме камер и источников освещения, становятся соизмеримы с размерами окна; — Frame Scene — размеры всех объектов, включая камеры и источники освещения, становятся соизмеримы с размерами окна; — Frame Default — установка по умолчанию. Кроме основных 4-х видов проекции объекта (фронтально, сверху, сбоку и в перспективе) можно использовать дополнительные виды, перечисленные совместно с основными в меню Cameras (камеры) (рис. 1.10). Эти виды становятся доступны благодаря различному расположению камер, через которые ведется наблюдение за объектом. В основном новые виды проекций получаются как разновидности параллельного вида (Parallel), в котором отсутствуют
перспективные сближения параллельных линий, создающих эффект глубины (перспективы). Рассмотрим данные типы проекций на примере примитива Piramid (Пирамида), который можно создать через главное меню Objects -> Primitive -> Piramid (рис. 1.11). — Parallel — параллельный вид (перспективное сближение сторон отсутствует, все линии параллельны) (рис. 1.12) — Bottom — вид снизу; — Military — военный стиль, являющийся разновидностью параллельного вида при соотношении значений координат X:Y:Z, равным 1:1:1 (рис. 1.13); — Frog — вид «лягушка», являющийся разновидностью параллельного вида при соотношении значений координат X:Y:Z равным 1:2:1 (рис. 1.14);
— Bird — стиль «птица», являющийся разновидностью параллельного вида (рис. 1.15); — Gentleman — стиль «джентльмен», являющийся разновидностью параллельного вида с соотношением X:Y:Z, равным 1:1:0,5 (рис. 1.16); — Isometric — изометрический вид (рис. 1.17); — Dimetric — диметрический вид (рис. 1.18). С помощью меню Display -> Level of Detail (Отображение -> Уровень детализации) (рис. 1.19) можно задавать степень детализации (качество) представления
объекта (чем ниже качество представления, тем меньше времени затрачивается программой на построение при рендеринге). Предусмотрено 4 варианта детализации: Low (низкая), Medium (средняя), High (высокая) и Use Render LOD for Editor Rendering (использовать настройки, заданные в меню рендеринга). Настройки интерфейса Cinema 4D собраны в окне Preferences (Настройки) (рис. 1.20), вызываемом через главное меню Edit -> Preferences.
— Adapt Thread Priority (установка приоритета) — служит для предоставления программе Cinema 4D оптимального объема системных ресурсов (другие приложения будут работать медленнее); — Use Quick Time — позволяет увеличить перечень форматов файлов, доступных для загрузки в Cinema 4D (если программа Quick Time установлена на вашем компьютере); — Graphic Tablet (графический планшет) — флажок устанавливается при использовании графического планшета; — Save Layout at Program End (сохранить настройки при выходе из программы) — сохраняет все настройки при выходе из программы; — Realtime Spinner (счетчик в режиме реального времени) — служит для включения/отключения работы счетчика в режиме реального времени при воспроизведении анимации; — Realtime Manager Update — обновление менеджеров в режиме реального времени в режиме воспроизведения анимации; — Recalculate Scene on Rewind — обновляет изменяющиеся элементы сцены при перемотке анимационного ролика; — Render Threads — задает требуемое число проходов при визуализации сцены. — Категория Interface (Интерфейс) (рис.1.22) содержит настройки для элементов интерфейса: — Dialogs (OK/Cancel Group) содержит два списка Style и Alignment (рис. 1.23). — Список Style позволяет выбрать стиль интерфейса (Windows-like, как в Windows, или Macintosh-like, как в Macintosh), а список Alignment — признак выравнивания элементов на диалоговых окнах. Если задать, В левой части окна приведен перечень категорий, представленных в виде иерархической структуры, а в правой части — содержащиеся в выбранной категории настройки. Рассмотрим кратко назначение настроек для перечисленных категорий. Категория Common (Общие) (рис. 1.20): — Language (язык) — служит для выбора языка, используемого в интерфейсе программы; — Scheme (схема) — служит для выбора цветовой схемы (рис. 1.21);
например, Right, то в окне регистрации (рис. 1.1) кнопки будут выровнены по правой границе (рис. 1.24). — Help Text позволяет задать способ вывода подсказки имени элемента, на который наведен курсор: либо в строке состояния, расположенной в нижней части экрана (Help Text on Statusbar), либо как всплывающая подсказка (Bubble Help). — Menus позволяет настраивать внешний вид выпадающего меню. С помощью флажка Show Icons (отображать значки) можно выводить значки для обозначения команд слева от названия команды, а с помощью флажка Show Shortcuts (отображать комбинации клавиш) — выводить «горячие клавиши» (рис. 1.25). — Look&Feel позволяет, если щелкнуть по кнопке F, задать шрифт для элементов графического интерфейса (GUI Font, рис. 1.26), а также вернуться к системному шрифту, щелкнув по кнопке R. Имя действующего шрифта указано справа от кнопки R. Например, чтобы получить в рабочем окне надписи, выполненные шрифтом 22 пункта (рис. 1.27), надо установить GUI Font, щелкнуть по кнопке F и в появившемся окне Font выбрать параметры шрифта. В пункте Delays (задержки) можно настроить задержку (в мс) для различных динамических элементов интерфейса (рис. 1.28): всплывающее меню (Menu Popup), прокрутка меню (Menu Scrolling), всплывающие названия команд (Command Popup),
автопрокрутка при перетаскивании (Drag & Drop Autoscrolling), стрелки полосы прокрутки (Scroller Arrows), повтор прокрутки (Scroller Repeat), переключение закладок в окнах (Tab Switch). В каталоге Interface имеется подкаталог Colors (рис. 1.29), содержащий список элементов интерфейса, для которых можно перенастроить цвет. Если в верхней области окна поставить флажок Live Refresh, то можно наблюдать изменение цвета объекта в процессе настройки цвета. Например, выберем в правой части окна пункт General — Text — Selected, позволяющий изменять цвет выделенного текста. В данном случае это цвет слова Colors (рис. 1.29). В правой нижней части окна появятся переключатели трех режимов настройки цветов. На рис. 1.29 переключатель стоит на Bitmap (растровая карта). Для выбора растровой карты щелкните по
кнопке Построителя (кнопка справа с тремя точками) и в появившемся окне выберите нужный файл. Если установить переключатель на RGB, то можно либо вызвать окно палитры цветов и там выбрать нужный цвет, либо передвигать ползунки, наблюдая при этом за изменением цвета выделенного слова Colors (рис. 1.30). Если установить переключатель на Reference (Образец), то можно выбрать цвет, например, выделенного текста на основе другого элемента (рис. 1.31). В папке Viewport (окно проекции) собраны: — настройки (Options), позволяющие выбрать режим затенения (Software Shading или OpenGL Shading); — параметры (View), влияющие на режим перерисовывания активного окна при моделировании (флажок Refresh Active View Only (Modeling)) и анимации сцен (флажок Refresh Active View Only (Animation)), а также флажок (3D Grid) включения/
отключения трехмерной сетки. Если, например, поставить флажок Refresh Active View Only (Modeling),
то это означает, что при моделировании будет обновляться только активное окно, что ускорит работу со сложными сценами; — значение времени (в мс), требуемое для плавного перемещения объекта при сложном режиме отображения (задается в поле Redraw Limit (предел перерисовывания)). Чтобы исключить «торможение» при перемещении объекта, программа Cinema 4D будет использовать более быстрый режим отображения, если рассчитанное ею время превышает предел, заданный в поле Redraw Limit; — величина отношения высоты и ширины (в пикселях) экрана, задаваемая в поле Editor: Pixel в том случае, если для данного монитора это отношение отличается от 1:1 (для исключения искажений при изображении объекта). Каталог Viewport (окно проекции) содержит 3 подкаталога (рис. 1.32):
— Colors служит для настройки цветов элементов окна просмотра (рис. 1.33); — OpenGL Shading и Software Shading служат для задания настроек тонировки в окне просмотра. — В каталоге Document (файл) содержатся следующие настройки, относящиеся к работе с файлами (рис. 1.34): . — Save RTTM Textures (сохранять RTTM-текстуры) позволяет сохранять примененные текстуры вместе с файлом сцены, что хотя и приводит к увеличению размера файла, но зато ощутимо сокращает длительность загрузки; — Save Particles (сохранять частицы) позволяет сохранять используемые системы частиц вместе с файлом сцены, что сокращает продолжительность загрузки; — Create New Object in View Center (создавать новые объекты в центре окна просмотра) позволяет размещать вновь создаваемые объекты в центре окна, а не в начале координат, что недопустимо, если начало координат находится вне пределов окна; — — Generate Backup Copies (создавать резервные копии) позволяет создавать резервные копии в папке под тем же именем, что и основной файл, но с расширением .bak и с указанием порядкового номера
копии, число которых задается в поле Backup Copies (рис. 1.34); — Undo Depth — задает количество операций, которые могут быть отменены командой Undo; — Recent File List (список недавних файлов) задает максимальное количество файлов, сохраняемых в меню File -> Recent Files. Каталог Import/Export (импорт/экспорт) содержит настройки для программ, из которых можно импортировать сцены в Cinema 4D и в которые можно импортировать сцены из Cinema 4D. Настройки позволяют производить импорт/экспорт также не целиком всей сцены, а отдельных составляющих ее элементов, как например, текстур, освещения и т. д.). Каталог Texture Path (размещение текстур) содержит 10 полей, в которые могут быть введены пути размещения на диске папок, хранящих текстуры для данной сцены. Каталог Units (единицы измерения) (рис. 1.35) содержит две группы настроек Units и Color Chooser. Группа Units позволяет:
— с помощью флажка Display Units (отображать единицы измерения) выводить название используемых единиц измерения во всех числовых полях программы; — с помощью списка Basic Units (базовые единицы измерения) выбрать единицу измерения; — с помощью флажка Use НРВ System (использовать систему курс-тангаж-крен) заблокировать вращение объекта с помощью мыши (для опытных пользователей); — с помощью списка Animation Units выбрать анимационную единицу (кадр, секунда, временной код SMPTE) для отсчета времени анимации. Группа Color Chooser позволяет выбрать и настроить цветовую систему. RGB (красный — зеленый — синий) или HSV (оттенок — насыщенность — значение). Каталог XPresso содержит настройки цвета для элементов интерфейса окна редактора узлов XPresso (этому редактору посвящена специальная глава книги). Для настройки частоты смены кадров при анимации (параметр Frame Rate), задания номера начального кадра (Minimum) и конечного кадра анимации (Maximum), а также задания уровня детализации (Level of Detail) при отображении объекта служит окно Project Settings (настройки проекта) (рис. 1.36). Окно вызывается через главное меню Edit -> Project Settings. Флажок Use Render LOD of Editor Rendering (рис. 1.36) позволяет использовать степень детализации, указанную в настройках визуализации для объекта.
Это окно Render Settings (настройки визуализации) (рис. 1.37) вызывается через главное меню Render -> Render Settings (визуализация -> настройки визуализации). К рассмотрению настроек, приведенных в этом окне, вернемся в разделе, посвященном визуализации. Количество команд, доступных Cinema 4D, достигает нескольких десятков тысяч. Все команды перечислены в алфавитном порядке в окне Commands
(менеджер команд). Чтобы открыть это окно, выберите в главном меню Window > Layout > Command Manager (рис. 1.38). Наиболее часто используемые команды вынесены в интерфейс программы в виде пунктов меню и пиктограмм панелей инструментов. Остальные команды скрыты. Список команд можно использовать различным образом. Например, если установить флажок Edit Palettes (редактирование панелей инструментов), то можно перетаскивать левой кнопкой мыши значки команд из окна Commands на существующие или вновь созданные панели инструментов. Чтобы облегчить процесс поиска нужных команд, следует воспользоваться списком All Commands (все команды), находящемся в верхней части окна (рис. 1.39). В этом списке все команды сгруппированы по характеру выполняемых ими действий.
Для создания перегородок между командами на панелях инструментов предусмотрены разделители Separator 1 и Separator 2, которые также можно перетаскивать из окна Commands на соответствующую панель инструментов (рис. 1.40). В нижней части окна Commands в области Details выводится следующая информация о выбранной команде (рис. 1.41): — Details — увеличенный значок команды; — Command — название команды; — Description — назначение команды; — поля Current (текущий), в которых указываются комбинации клавиш (Shortcut 1 и Shortcut 2) для вызова команды (чтобы убрать комбинацию, щелкните по кнопке с красным крестиком); — поля Assign (назначить), в которых можно задать новую комбинацию для выбранной команды. Щелкните мышью по полю Assign, нажмите комбинацию клавиш и щелкните по кнопке с зеленой галочкой. Если комбинация уже занята, то внизу появится сообщение Assigned to с указанием имени команды,
уже имеющей эту комбинацию. Чтобы удалить ненужную комбинацию, нажмите клавишу Esc. Перечень зарезервированных клавиш можно увидеть в списке Hotkeys, вызываемом через список All Commands в верхней части окна Commands (рис. 1.42). Для создания новой панели инструментов вначале надо создать окно для новой панели инструментов, а затем наполнить это окно значками команд. Для создания нового окна выполните одно из трех действий: — в главном меню выберите Window -> Layout -> New Icon Palette; — щелкните правой кнопкой мыши на одной из существующих панелей инструментов и выберите в контекстном меню пункт New Icon Palette (рис. 1.43); — щелкните левой или правой кнопкой мыши на значке «стыковка» (рис. 1.44) окна любого менеджера и в появившемся меню выберите пункт New Icon Palette. В рабочем окне появится заготовка окна панели инструментов (рис. 1.45). В окне Commands поставьте флажок Edit Palette. Выберите строку со значком нужной команды в окне Commands (или в горизонтальной/вертикальной панелях инструментов выберите нужный значок) и перетащите его, удерживая левой кнопкой мыши на область Empty Palettes окна заготовки. Новая панель инструментов готова (рис. 1.46).
Для настройки меню вызовите окно менеджера меню Window -> Layout -> Menu Manager (рис. 1.47). По умолчанию в списке в верхней части окна указано меню M_Editor, содержащее подменю основного меню: Submenu File, Submenu Edit, Submenu Objects и т. д. Чтобы раскрыть (свернуть) пункты подменю, например, Submenu File, дважды щелкните на строке Submenu File (рис. 1.48). Сравните появившиеся подпункты меню с подпунктами меню File программы Cinema 4D. В нижней области окна находятся 11 кнопок (рис. 1.47), служащих: — для копирования выделенных команд (кнопка Сору); — для вставки скопированных команд (кнопка Paste); — для удаления с копированием выделенных команд (кнопка Delete/Cut); — для переименования команд (кнопка Rename);
— для перемещения выделенных команд на одну позицию вверх или вниз (кнопки Move Up и Move Down); — для создания нового подменю над выделенным подменю (кнопка New Submenu); — для применения всех сделанных изменений (кнопка Apply), для сохранения всех сделанных изменений (кнопка Save All Changes); — для отмены всех сделанных настроек и применения последних сохраненных (кнопка Revert to Saved); — для применения настроек по умолчанию (кнопка Revert to Original). Как отмечалось выше, интерфейс программы Cinema 4D можно перенастраивать в соответствии с решаемой задачей. Для этого служит инструмент Revert to Default Layout (вернуться к исходной компоновке), пиктограмма которого расположена слева наверху на вертикальной панели инструментов (рис. 1.49). Имеются следующие варианты компоновок интерфейса: — Animation — для оптимизации настройки анимации; — BP 3D Paint и BP UV Edit — для работы с модулем BodyPaint; — Мосса — для работы с модулем Мосса; — Modeling — для моделирования; — Standart — стандартная.
Глава 2. Объекты и их инструменты 2.1. Параметрические примитивы Cinema 4D содержит набор объектов, которые описываются математическими уравнениями и изначально заданы в параметрическом виде. Эти объекты называются параметрическими примитивами. В большей своей части примитивы задают базовые геометрические формы (сферу, цилиндр, конус, куб, пирамиду, тор и др.), но включают также манекен (Figure) для наглядного изучения кинематики, рельеф, плоскость. Всего программа содержит 16 примитивов. Чтобы увидеть их, прижмите пиктограмму (на верхней горизонтальной панели инструментов) Add Cube Object (добавить куб) (рис. 2.1) или вызовите список примитивов через меню Objects -> Primitive (рис. 2.2).
Чтобы примитив появился в окне проекций, либо щелкните по его значку, либо выберите его имя из списка через главное меню Objects -> Primitive (рис. 2.2). Выберем, например, тор (Torus) (рис. 2.3). В соответствии с настройками интерфейса, рассмотренными выше, тор появился в центре окна проекций. В окне менеджера объектов в левом поле появилось имя тора Torus и значок тора синего цвета, указывающий, что примитив представлен в параметрическом виде (рис. 2.4). Чтобы перевести примитив в полигональный вид, выберите в меню Functions -> Маке Editable или нажмите клавишу C (лат.). Значок изменится на синий треугольник. Это значок одинаков для всех примитивов, представленных в по-
лигональном виде, в то время как значки для примитивов в параметрическом виде для каждого примитива различные. Пересчитать примитив обратно в параметрический вид невозможно, но можно отменить действие (пиктограмма ). Далее следуют две точки (рис. 2.4), позволяющие управлять видимостью объекта в окне проекций (верхняя
точка) и в окне рендеринга (нижняя точка). Чтобы сделать объект невидимым, точка должна быть красного цвета. Для этого щелкните по ней левой кнопкой мыши. Чтобы объект был видимым, точка должна быть зеленого цвета или дезактивирована. Проверьте действие точек видимости на торе. Чтобы вызвать окно рендеринга, в главном меню (имя Torus должно быть выделено) выберите Render-> Render View. В правой части указываются значки тэгов — программ, предоставляющих дополнительные свойства объектам. На рис. 2.4 это тэг черно-белого тонировщика по Фонгу (Phong), который присваивается примитивам по умолчанию. Тонировщик создает впечатление объема тора, распределяя светотень по его поверхности. Источник освещения по умолчанию находится слева сзади от пользователя, смотрящего на экран монитора (вернее, от камеры, через объектив которой мы видим примитив в окне проекций). Тэгов у объекта может быть несколько, и они играют важную роль в работе с объектами. Если щелкнуть левой кнопкой мыши по имени объекта Torus, то в окне менеджера атрибутов будут выведены его свойства (рис. 2.5). Подробно свойства примитивов рассмотрим позже.
надо преобразовать в полигональный вид и применить к нему инструменты работы с вершинами, ребрами и полигонами. Для этого в окне менеджера объектов надо выделить имя примитива, а затем выполнить одно из трех действий — нажать клавишу C (в латинском алфавите); — щелкнуть по пиктограмме на левой вертикальной панели инструментов; — выбрать в главном меню Functions -> Make Editable (рис. 2.7).
В этом режиме станут доступны основные структурные элементы примитива: вершины (Vertex) (рис. 2.8); ребра (грани) (Edges), получаемые при соединении вершин между собой (рис. 2.9); полигоны (Polygons) (рис. 2.10) — треугольники или четырехугольники, получающиеся при соединении трех или четырех граней. Для управления ориентацией полигона используется расположенный в центре его поверхности (перпендикулярно) единичный вектор — нормаль к поверхности. С выделенными элементами объекта можно работать: перемещать их, масштабировать, вращать, изменяя
Представление примитивов в параметрическом виде позволяет легко изменять такие их параметры, как, например, радиус, высоту и т. п. На рис. 2.6 приведены эти параметры для нашего примера с тором на вкладке Object. Однако для пластического изменения формы поверхности примитива (продавливание поверхности, вытягивание, скручивание и т. п.) к примитиву либо следует применить специальные инструменты деформации (рассмотрены в следующей главе), либо примитив
тем самым вид объекта, то есть, моделируя из поверхности примитива нужные формы. Ниже приведены результаты, полученные перемещением вершин, (рис. 2.11), ребер (рис. 2.12) и полигонов (рис. 2.14). Вид пиктограмм для выбора вершин, ребер полигонов приведен на рис. 2.14. Рассмотрим более подробно действия при создании и работе с примитивом. Первый шаг. Создайте примитив, например, тор (рис. 2.15), выбрав его, как было сказано выше, либо из меню Objects -> Primitive -> Torus, либо выбрав из пиктограмм кнопки Add Cube Object. Тор будет представлен уже в выделенном состоянии, помеченный ребрами габаритного контейнера красного цвета, (рис. 2.15). Если названия окон менеджеров скрыты, то надо вызвать контекстное меню, щелкнув по значку стыковки (в виде синей кнопки) (рис. 2.16) и сбросить флажок Hide Window Title (скрыть заголовок окна) (рис. 2.17). В окне менеджера координат Coordinates (рис. 2.16) в поле Position задаются координаты расположения центра объекта (предварительно выбрав в нижнем списке Object). В поле Size задаются размеры объекта, а в поле Rotation — углы поворота
(Н — вращение в плоскости XZ, Р — вращение в плоскости XY, В — вращение в плоскости YZ). Чтобы применить заданные значения, щелкните по кнопке Apply. В окне менеджера Attributes (атрибуты) (рис. 2.18) на вкладке Objects можно задавать габариты объекта и количество полигонов, на которые разбита его поверхность. Так, для тора: — Ring Radius — значение радиуса тора;
— Ring Segments — количество сегментов, на которые тор разбит вдоль периметра; — Pipe Radius — значение радиуса трубы тора; — Pipe Segments — количество сегментов, на которые тор разбит по высоте.
Для увеличения гладкости поверхности объекта можно увеличить количество сегментов разбиения, но при этом увеличится время отображения объекта. Второй шаг. Переведите тор в редактируемое состояние (клавиша C, или Functions -> Make Object Editable, или пиктограмма Make Object Editable рис. 2.14). Третий шаг. Выберите один из трех инструментов Use Point Tool (выделение вершин), Use Edge Tool (выделение ребер) или Use Polygon Tool (выделение полигонов) (рис. 2.14). При этом красный габаритный контейнер исчезнет, а цвет полигональной сетки на поверхности тора во всех трех случаях изменится на зеленый. Для инструмента Use Point Tool дополнительно появятся обозначения точек-вершин (рис. 2.19). Четвертый шаг. На верхней панели инструментов выбираем тип инструмента выделения, с помощью которого будем выделять вершины, ребра или полигоны. Предусмотрено 4 типа инструментов выделения (рис. 2.20). Доступ к этим инструментам также можно получить, вызвав контекстное меню щелчком правой кнопки мыши в любой точке окна проекции (рис. 2.21). Инструмент Live Selection выделяет элементы, над которыми проводят курсором при нажатой левой кнопке мыши (рис. 2.22). Для ограничения области выделения к курсору добавляется окружность, размер которой можно настраивать в окне менеджера Attributes в поле Radius (рис. 2.23). При выделении нескольких элементов, например, нескольких групп вершин, следует удерживать клавишу Shift (рис. 2.22).
Инструмент Rectangle Selection (выделение прямоугольником) выделяет все элементы, попадающие в прямоугольную область. Если установить флажок Tolerant Selection, то будут также выделяться элементы, попадающие на границу прямоугольной области выделения.
Инструмент Freehand Selection (выделение вручную) позволяет произвольно задавать форму выделяемой области, рисуя (при нажатой левой кнопке мыши) ее контур на поверхности объекта. После отпускания кнопки мыши первая и последняя точки ав-
томатически соединяются, образуя замкнутую область. Инструмент Polygon Selection (выделение полигона) позволяет создавать область выделения в виде полигона. Левой кнопкой мыши делается первый щелчок — это первая вершина полигона.
Передвигаем курсор — это первая прямая линия — сторона полигона. Делаем второй щелчок — это вторая вершина полигона и т. д. Первую и последнюю вершины совмещаем. Для выделения всех объектов сцены служит пункт меню Edit -> Select All или сочетание клавиш Ctrl А. Выделять объекты можно также, выделяя их имена в окне менеджера объектов (рис. 2.24). В правом верхнем углу окна проекции расположены пиктограммы инструментов навигации, позволяющие перемещаться в окнах проекции (рис. 2.25). Для пользования инструментом надо щелкнуть на нем левой кнопкой мыши и, удерживая кнопку, перемещать мышь по пространству окна проекций. Возможны три способа навигации: — панорамирование, при котором проекция объекта перемещается в плоскости, параллельной плоскости экрана (можно также панорамировать, удерживая нажатой клавишу 1 и нажав любую кнопку мыши или колесико, двигать указателем мыши); — масштабирование, при котором проекция объекта приближается или удаляется (также можно масштабировать, удерживая клавишу 2 и нажав любую кнопку мыши; перемещайте указатель мыши влево для уменьшения, вправо для увеличения размера проекции); — вращение, при котором происходит вращение объекта или группы объектов вокруг их геометрического центра (можно также вращать объект, удерживая нажатыми клавишу 3 и любую кнопку мыши или колесико, перемещать указатель мыши по окну проекций). :
В предыдущих примерах вместе с примитивом перемещалась и координатная сетка. Чтобы перемещать примитив по окну проекций вправо, влево, вверх, вниз при неподвижной координатной сетке, надо выделить имя примитива в окне менеджера объектов и, удерживая нажатыми
клавишу 4 и левую кнопку мыши, двигать указатель мыши по окну проекций. Для того чтобы удалять и приближать объект, выполните те же действия, но с нажатой клавишей 5. Для вращения — удерживайте клавишу 6. Рассмотрим назначение параметров примитива Cube в окне менеджера атрибутов на закладке Object (рис. 2.29). Size X, Size Y, Size Z — задают размеры ребер куба. Segments X, Segments Y, Segments Z — задают количество разбиений поверхности на секции (сегменты) по соответствующим осям. После перевода примитива в редактируемое состояние сегменты становятся полигонами (рис. 2.26). Флажок Separate Surfaces — позволяет в результате преобразования к полигональному виду создать для каждой грани куба отдельный полигональный объект. На рис. 2.27 эти объекты — грани имеют имена Face 1, Face 2 и так далее. Полигональный куб в этом случае будет, как бы собран из отдельных граней, которые можно, например, растащить в стороны, предварительно
выделяя соответствующие грани (рис. 2.28). Флажок Fillet задает наличие фаски (рис. 2.29), Fillet Radius — радиус округления, Fillet Subdivision — количество сегментов, на которые разбивается область фаски. На закладке Coord (рис. 2.30) приведены параметры, позволяющие: — перемещать объект по оси 0Х (параметр Р.Х), по оси 0Y (параметр P.Y), по оси 0Z (параметр P.Z) (буква P — первая буква от слова Position — позиция); — масштабировать по оси 0Х (параметр S.X), по оси 0Y (параметр S.Y), по оси 0Z (параметр S.Z) (буква S от слова Scale — масштаб); • — вращать объект в плоскости XZ (параметр R.H), в плоскости YZ (параметр R.P), в плоскости XY (параметр R.B). Как видно, при вращении объекта используется не система осей XYZ, где применяются линейные единицы измерения (метры и т. п.), а НРВ, где применяются градусы. Буква Н от слова Heading — направление поступательного движения влево/вправо, буква P от слова Pitch — движение вверх/вниз, буква B от слова Bank наклон влево/вправо. Следует помнить, что в Cinema 4D существуют два режима, режим моделирования, включаемый пиктограммой (Use Model Tool), и режим анимации, включаемый
— Spherical — позволяет натянуть ландшафт на сферу.
пиктограммой (Use Object Tool). При масштабировании в режиме моделирования масштабируется поверхность объекта, при масштабировании в режиме анимации масштабируются оси объекта. Важно помнить, что при создании анимации объекта надо переключиться в режим Use Object Tool, иначе изменение масштаба не будет записано в анимации. Рассмотрим параметры примитива Landscape (Ландшафт) . Для создания рисунка используются фрактальные алгоритмы (целая картинка создается из ее уменьшенных копий). На рис. 2.31 приведено окно менеджера атрибутов с настройками примитива Ландшафт: — Size — задает размер плоскости с ландшафтом; — Width Segments, Depth Segments — определяют количество разбиений по ширине и глубине; — Rough Furrows Fine Furrows — грубые и, соответственно, мелкие канавки, задают скалистость ландшафта; — Scale — задает глубину расселин ландшафта; — Sea Level — задает высоту уровня воды; — Plateau Level — ландшафт отсекается сверху, создавая сплющенные горные вершины; — Orientation — задает ориентацию по осям; — Multifractal — рекомендуется для получения более натурального изображения ландшафта; — Borders At Sea Level — определяет вид ландшафта на границе соприкосновения с морем;
Примитив Relief (Рельеф) использует изображение (например, цифровая фотография в формате .tiff), а не фрактальный алгоритм. Загружаемое изображение будет, как бы продавлено на поверхности примитива. При этом структура рельефа формируется по яркостям пикселей: чем ярче пиксель, тем он кажется более приподнятым над поверхностью, чем темнее, тем он кажется глубже. Например, на рис. 2.32 слева приведена фотография, а справа — ее рельефный отпечаток (после рендеринга). Вы также можете сделать подобный отпечаток со своей фотографии. На рис. 2.33 приведены настройки примитива Relief Щелкните по кнопке конструктора (с тремя точками) справа от поля Texture (рис. 2.33) и в диалоговом окне Open File выберите файл. Если ваше фото размещено не в папках Cinema 4D, то появится уведомляющее окно (рис. 2.34), предлагающее создать копию запрашиваемого файла. Согласитесь, щелкнув на кнопке Да. Чтобы отрендерить изображение, в главном меню выберите Render-> Render View. Чтобы просмотреть загруженное изображение, щелкните на черном треугольнике справа от надписи Texture (рис. 2.35).
Рассмотрим остальные настройки. Size — задает размер примитива Relief. Width Segments, Depth Segments — задают количество сегментов по ширине и глубине; чем больше сегментов, тем слаженнее структура (рис. 2.36). Button Level — нижний уровень, определяющий уровень воображаемой водной поверхности, в которую погружен рельеф. Если задать 100%, то рельеф будет как бы сокрыт под водой (рис. 2.37). Top Level — действие, противоположное Button Level, когда изображение начинает срезаться сверху, создавая расплющенные вершины (рис. 2.38). При Top Level = 0% результатом будет плоскость с едва различимым контуром изображения.
Orientation — задает расположение плоскости рельефа в пространстве. . Spherical — позволяет обернуть рельеф вокруг сферы. На рис 2.39 приведен вид рассмотренного выше рельефа, обернутого вокруг сферы. Имеются также три ручки интерактивного регулирования размеров рельефа (рис. 2.40). Кроме рассмотренных параметрических примитивов, в Cinema 4D применяются сплайны. Сплайны — это кривые, которые образуются отрезками линий, соединяющими контрольные точки. С помощью контрольных точек можно
регулировать степень сглаженности сплайна. Имеется 5 типов сплайнов и обширная коллекция сплайновых форм. Особое внимание следует обратить на неоднородные рациональные В-сплайны, сокращенно NURBS (Non-Uniform Rational B-Splines), которые позволяют получать более реалистические поверхности объектов, чем полигональные структуры. Сплайнам посвящена следующая глава.
2.2. Сплайны Сплайн строится соединением точек (вершин) линиями (сегментами). Название Spline расшифровывается как Segments Point Line — сегментно точечная линия. Сплайны представляют собой линии нулевой толщины, расположенные в двумерном пространстве, не имеющие третьего измерения. Объекты, получаемые из сплайнов, создаются как ткань из ниток — множество сплайнов, расположенных рядом, создают двумерную поверхность, из которой в свою очередь строится трехмерный объект. Так как сегмент соединяет две соседние точки, то от типа сегмента, его кривизны зависит и форма всего сплайна. Типы сплайнов перечислены в меню Objects -> Create Spline (рис. 2.41). Тип Freehand позволяет рисовать сплайн в окне проекций двумя способами: не отпуская левой кнопки мыши и по точкам, удерживая нажатой клавишу Ctrl (рис. 2.42). Тип Bezier позволяет с помощью ручек управления задавать радиус кривизны линии в этой вершине и направление кривизны.
Ручки управления появляются при создании и выделении вершины. Выберите сплайн Bezier в меню Objects -> Create Spline-> Bezier. Щелкните левой кнопкой мыши в точке окна проекций, из которой собираетесь начать построение сплайна. Не отпуская левой кнопки мыши, передвиньте мышь в произвольном направлении. Появятся две ручки управления розового цвета (рис. 2.43). Чтобы настроить радиус кривизны сегмента в этой вершине, следует изменить длину ручек, а чтобы настроить направление кривизны, измените направление ручек. Задайте произвольные радиус и направление кривизны. Отпустите левую кнопку мыши и щелкните в следующей точке, в которой вы предполагаете расположить вторую вершину кривой, и так далее. Чтобы закончить построение, нажмите клавишу Enter. В результате получится кривая белого цвета (рис. 2.44). Чтобы войти в режим редактирования кривой, щелкните по значку Use Point Tool ( ). Контрольные точки (вершины) изменят цвет на темно-красный — они готовы к редактированию. Прижмите левой кнопкой мыши любую из двух розовых точек ручек — если прижать розовую линию, вслед за мышью сдвинется весь узел — и удлините ручку. Вы заметите, что кривизна сегмента увеличилась (рис. 2.45). Чтобы изменить направление кривизны, поверните ручку вокруг центральной точки (рис. 2.46). В данном случае ручка повернута по часовой
стрелке. Чтобы получить точное значение, например, угла поворота ручек, обратитесь к окну менеджера Coordinates к параметру Rotation (рис. 2.47). В типе B-Spline кривая не проходит непосредственно через все вершины, а лишь направляется ими, позволяя получить высокую степень сглаженности (рис. 2.48). При этом, чем ближе вершина располагается к кривой,
тем большее воздействие она оказывает на форму кривой. Тип Linear (линейный) представляет собой набор вершин, соединенных прямыми линиями. Это самый простой тип сплайнов (рис. 2.49). Построение и редактирование осуществляются аналогично рассмотренному выше для других сплайнов. Тип Cubic (кубический) представляет собой набор вершин, соединенных сегментами, имеющими ощутимые отклонения от прямолинейности (рис. 2.50). Тип Akima имеет более прямолинейный характер сегментов, и кривая всегда точно проходит через вершины, хотя в целом сплайн выглядит более ломаным и менее сглаженным, чем кубический сплайн (рис. 2.51). Кроме 6-ти рассмотренных выше типов сплайнов, имеется также 15 сплайновых примитивов, список которых можно вызвать через главное меню Objects ->
Примитив создается через главное меню Objects -> Spline Primitive -> Arc или с помощью кнопки на верхней панели инструментов Create Arc Spline (рис. 2.55). Примитив Arc может быть представлен в форме дуги, сектора, сегмента или кольца. В окне менеджера Attributes собраны параметры, задающие форму сплайнового примитива Arc (рис. 2.56). Туре — позволяет выбрать тип представления: Arc — дуга; Sector — сектор; Segment — сегмент; Ring — кольцо (рис. 2.57). Radius — задает значение радиуса окружности, из которой вырезается дуга. Inner Radius — задает внутренний радиус кольца.
Spline Primitive (рис. 2.52) или с помощью пиктограммы на верхней панели инструментов (рис. 2.53). Первые два вертикальные ряда значков рис. 2.53, приведенные отдельно на рис. 2.54, представляют инструменты построения 6-ти рассмотренных выше типов сплайнов. Остальные значки представляют инструменты построения сплайновых примитивов. В сплайновых примитивах, в отличие от 6-ти типов сплайнов, создаваемых вручную, чтобы получить доступ к управлению вершинами, сплайн нужно перевести в редактируемое состояние. Это делается так же, как с параметрическими примитивами (главное меню Functions -> Make Editable или клавиша C в латинском алфавите). Для настройки сплайновых примитивов имеются такие общие для них всех параметры, как Intermediate Points (точки интерполяции), Plane (плоскость) и Reverse (обратить), которые позволяют создавать новые вершины, задавать характер поведения линии вблизи менять плоскость расположения сплайна и порядок расположения вершин на обратный. Рассмотрим характеристики сплайновых примитивов.
Сплайновый примитив Arc (дуга)
Start Angle — задает угол начала дуги. End Angle — задает угол конца дуги. Plane — задает плоскость (XY, YZ, XZ), в которой располагается сплайн (рис. 2.58). Reverse — позволяет расположить вершины в обратном порядке, то есть сделать первую вершину последней. Порядок расположения вершин имеет значение при применении метода лофтинга или задании пути анимации. Intermediate Points — задает метод интерполяции, определяющий разбиение сплайна на сегменты и характер их поведения вблизи вершин. Позволяет получить более сглаженный вид сплайна. Имеются следующие методы: — None — дополнительные вершины не создаются, сплайн представлен в виду ломаной линии (рис. 2.59).
— Natural — сплайн разбивается на вершины, количество которых задается в поле Number. На рис. 2.60 наглядно представлено изменение степени сглаживания сплайна при отсутствии дополнительных точек (Number = 0) и при двух дополнительных точках. Дополнительные точки располагаются неравномерно по длине дуги. — Uniform — то же, что и метод Natural, только дополнительные точки располагаются с равными интервалами. — Adaptive — метод создает дополнительные точки с интервалами, заданными в поле Angle. Интервал выражен в градусах изменения угла дуги. Как уже отмечалось, параметры Plane, Reverse и Intermediate Points являются общими для всех сплайновых примитивов и далее при рассмотрении остальных примитивов рассматриваться не будут.
Сплайновый примитив Circle (окружность) Позволяет создавать сплайны в виде окружности, эллипса и кольца. Вызовите примитив через главное меню Objects -> Spline Primitive -> Circle или с помощью кнопки Create Circle Spline на панели инструментов (рис. 2.61). Параметры сплайнового примитива собраны в окне менеджера Attributes. На рисунке приведены все три возможных реализации примитива и значения параметров. Флажок Ellipse включает режим построения эллипса, активизируя поле Radius Y, где задается вертикальная ось эллипса. Флажок Ring включает режим построения кольца, активизируя поле Inner Radius, где задается внутренний радиус кольца. Об остальных параметрах было сказано выше.
Сплайновый примитив 4 Sided polygon (четырехугольник) Позволяет получить сплайн в виде ромба, трапеции и прямоугольника. Их изображения и значения параметров
приведены на рис. 2.62. Настройка вида сплайна производится в параметре Туре.
Сплайновый примитив n-Sided Polygon (n-угольник) Позволяет строить равносторонние многоугольники с количеством сторон от 2 и выше. На рис. 2.63 приведен треугольник и окно менеджера Attributes с параметрами. Параметр Sides задает число сторон многоугольника, Radius — размеры сторон, флажок Rounding — скругление вершин (со своим параметром Radius, задающим радиус скругления, рис. 2.63).
Сплайновый примитив Star (звезда) Позволяет получить изображение звезды с произвольным числом, размером и наклоном лучей. Основные параметры (рис. 2.64): — Inner Radius, Outer Radius — внутренний (от центра до основания луча звезды) и наружный (от центра до вершины звезды) радиусы; — Twist — задает наклон лучей звезды; — Points — задает количество лучей звезды.
Сплайновый примитив Cogwheel (шестеренка) Основные параметры: — Teeth — количество зубцов; — Inner Radius, Middle Radius, Outer Radius — внутренний, средний и наружный радиусы (рис. 2.65); — Bevel — скос фаски зубца.
Сплайновый примитив Flower (цветок) Основные параметры: — Inner Radius, Outer Radius — внутренний и внешний радиусы; — Petals — задает количество лепестков (от 3 и выше).
Сплайновый примитив Text (текст) Позволяет производить текстовые надписи с помощью сплайнов. Основные параметры:
Start Radius, Start Angle — задают радиус первого витка спирали и начальный угол, отсчитываемый от оси 0Х в направлении против часовой стрелки; — End Radius, End Angle — задает радиус последнего витка спирали и конечный угол, по которому можно определить количество витков, разделив его на 360°; — Height Bias — неравномерность шага между витками (по высоте спирали) (рис. 2.69).
— Text — в это поле вводится исходный текст; — Font — позволяет производить настройку шрифтов; — Align — производит выравнивание текста относительно центра локальной системы координат по правой (Right) или левой (Left) крайней букве или по центру текста (Middle); — Height — высота букв; — Horizontal Spacing — задает расстояние между буквами; — Vertical Spacing — задает расстояние между строками.
Сплайновый примитив Helix (спираль) Основные параметры:
Сплайновый примитив Cissoid Позволяет создавать помимо Cissoid (рис. 2.77), также Lemniscate (рис. 2.78) и Strophoid (рис. 2.79). Настройка типов с помощью параметра Туре.
Сплайновый примитив Profile (профиль) Тип профиля настраивается с помощью параметра Туре (рис. 2.71).
Сплайновый примитив Cycloid (циклоида) Позволяет создать циклоиду (Cycloid) (рис. 2.73), эпициклоиду (Epicycloid) (рис. 2.74), гипоциклоиду (Hypocycloid) (рис. 2.75). Назначение параметров очевидно.
Сплайновый примитив Formula (формула) Позволяет построить сплайн, заданный математической формулой. На рис. приведен сплайн, построенный по формуле, записываемой в полях X(t), Y(t), Z(t) (где t — горизонтальная ось). Параметры Tmin, Tmax задают диапазон изменения аргумента t.
В меню Structure содержатся команды для работы со сплайнами (рис. 2.80). Команда Add Point позволяет добавлять точки к имеющемуся сплайну. Выделите имя сплайна в окне менеджера объектов, выберите команду Structure и щелкните по сплайну
(в окне проекций) в том его месте, где надо добавить точку. Чтобы удалить точку, ее надо выделить и нажать клавишу Delete. Пункт Structure -> Edit Spline содержит список команд для работы со сплайнами. Рассмотрим их назначение. Hard Interpolation — обнуляет значения тангенсов углов наклона касательных к выделенным точкам (рис. 2.81). Если точки не выделены, то команда действует на все точки сплайна. Команда неприменима к B-Spline.
Soft Interpolation — возвращает ориентацию и длины касательных выделенных точек к состоянию по умолчанию. Команда неприменима к B-Spline.
Equal Tangent Length — касательная к точке имеет правую и левую часть (относительно точки). При редактировании сплайна (при включенном инструменте Move и удерживая клавишу Shift) правая и левая части касательной могли приобрести различные длины рис. 2.82). Эта команда позволяет сделать длины частей касательной равными друг другу (выравнивание по большей длине).
Equal Tangent Direction — если правая и левая части касательной к точке образуют угол, отличный от 180 (это может случиться вследствие работы с касательной при нажатой клавише Shift) (рис. 2.83), то данная команда позволяет расположить левую и правую части касательной по одной линии. Break Segment — удаляет сегменты слева и справа от выделенной точки (вершины) сплайна. Выделите на сплайне точку и вызовите команду Structure -> Break Segment (рис. 2.84). Join Segment — соединяет два сегмента одного сплайна. Примером сплайна, состоящего из отдельных сегментов, является сплайновый примитив Text. Возьмем разделенный сплайн, полученный, например, после применения команды
Break Segment. Выделим две точки, которые надо соединить, и вызовем команду Structure -> Join Segment. Точки будут соединены сегментом. Explode Segments — разделяет сплайн на самостоятельные сегменты, имеющие имена. Рассмотрим действие команды на примере сплайнового примитива Text, который после вызова преобразуйте в редактируемое состояние (Functions -> Make Editable) и примените команду Explode Segments. В окне менеджера объектов будут выведены имена подобъектов с индивидуальными именами. Каждая буква представлена отдельным сплайном (рис. 2.85). Буква е — имеет два сплайна (рис. 2.86). Теперь можно, например, изменить форму отдельных букв (перейдя в режим Use Point Tool) (рис. 2.87). Set First Point — позволяет назначить новую первую точку сплайна. Начальная часть сплайна окрашивается желтым цветом, конечная — красным. Выделим точку где-нибудь посередине сплайна (рис. 2.88) и применим команду Set First Point.
В результате образовался разрыв сплайна и выделенная точка встала на первое место. Предыдущие точки начала и конца сплайна соединились сегментом (рис. 2.89). Reverse Sequence — меняет местами начало и конец сплайна. Это можно заметить по изменению цвета сплайна (желтый меняется на красный и обратно). Move Down Sequence, Move Up Sequence — команды передвигают первую точку сплайна по сплайну в направлении по и против часовой стрелки. Это видно по перемещению разрыва сплайна перед первой точкой или перемещению желтого или красного участков сплайна. Chamfer — из одной выделенной точки создает две точки и разносит их на определенное расстояние друг от друга, создавая таким образом срез (фаску). Выделите точку на сплайне (сильно приблизьте вид части сплайна с точкой в проекции, например, на плоскости XY, функциональная клавиша для перехода на плоскость XY — F4) и примените команду Chamfer. В диалоговом окне Chamfer (рис. 2.90) поставьте флажок Flat
(задает форму сегмента, соединяющего две образованные точки, Flat — значит прямолинейный сегмент), Radius — задает расстояние между двумя созданными точками. Щелкните по кнопке Apply (рис. 2.90). Эффективно применение команды к сплайновым примитивам. Например, у примитива Rectangle можно срезать углы (рис. 2.91). Не забудьте предварительно преобразовать Rectangle в полигональный вид (Functions -> Make Editable), выделить 4 вершины (если вершины не выделять, то команда будет применена ко всем вершинам), задать параметры в диалоговом окне и щелкнуть по кнопке Apply (рис. 2.91). Create Outline — создает контур выделенного сплайна. Применим инструмент с сплайновому примитиву Flower, который вначале надо привести к полигональному виду (меню Functions -> Make Editable или клавиша C в латинском алфавите). Вызвав инструмент Create Outline, прижмите контур сплайна Flower левой кнопкой мыши и перетащите его в сторону (рис. 2.92). Повторив многократно эту операцию для того же сплайна Flower, можно получить изощренные узоры (рис. 2.93). Cross Section — позволяет строить сечения по нескольким сплайнам. Создайте и расположите 4 сплайна в пространстве так, чтобы они не лежали в одной плоскости. Для этого нарисуйте от руки (Create Spline > Freehand) 4 сплайна, например, в плоскости XY (F4) (рис. 2.94). Перейдите на вид Perspective и сдвиньте сплайны по оси 0Z так, чтобы все 4 сплайна лежали в разных, но параллельных друг другу плоскостях (рис 2.95). Важно соблюсти порядок следования сплайнов в соответствии с их именами, так как инструмент Cross Section будет
соединять сплайны в последовательности Spline -> Spline 1 -> Spline 2 -> Spline 3. Далее проделайте следующие действия — разверните проекцию (как показано на рис. 2.95); — в окне менеджера объектов выделите все 4 сплайна (удерживая нажатой клавишу Shift); — выберите инструмент Cross Section (Structure -> Edit Spline -> Cross Section);
— прижав левую кнопку мыши, проведите линии сечений, пересекающие сплайны (начинайте и заканчивайте линии сечений несколько до и после сплайнов) (рис. 2.96).; — разверните проекцию. Обратите внимание, что вновь образованные контуры сечений также являются сплайнами и их имена приведены в окне менеджера объектов (рис. 2.98).
Забегая несколько вперед, если применить к сплайнам-сечениям инструмент Loft NURBS (Objects -> NURBS -> Loft NURBS), выделив эти сплайны и сделав их подобъектами Loft NURBS (рис. 2.99), то можно получить NURBS-поверхность (рис. 2.100). Инструмент Loft NURBS натягивает поверхность на сплайны, как натягивают материю на металлический каркас палатки.
На рис. 2.101 приведен рендеринг полученного объекта (объект повернут). Disconnect — позволяет разъединить сплайн в данной точке или отсоединить от объекта полигон. Создайте сплайн, выделите вершину, которую хотите отсоединить, и примерите инструмент Disconnect. Выберите инструмент Move и сдвиньте вершину, чтобы убедиться, что сплайн разделен на две части (рис. 2.102). Создайте примитив Cube, приведите его к полигональному виду, выберите режим Use Polygon Tool, выделите полигон и примените команду Disconnect. Выделенный полигон будет отсоединен, но останется на своем месте. Выберите инструмент Move и сдвиньте его вдоль оси 0Z (рис. 2.103). Edge То Spline — позволяет создать из ребер объекта отдельный сплайн. Создайте параметрический примитив, например, Cube. В окне менеджера атрибутов задайте разбиение на сегменты, как на рис. 2.104. Приведите примитив Cube к полигональному виду, выберите режим Use Edge Tool, выберите инструмент Live Selection и выделите 6 ребер, как показано на рис. 2.105. Примените команду Edge То Spline. В окне менеджера атрибутов появится подобъект Cube Spline — это имя созданного из цепочки ребер сплайна. Перетащите Cube Spline, чтобы он стал самостоятельным объектом, и выключите видимость объекта Cube (верхняя точка должна быть красного цвета, рис. 2.106).
У вас останется только сплайн Cube Spline, полученный из ребер куба (рис. 2.107). Line Up — позволяет спрямлять криволинейные участки сплайна. Команда размещает выделенные точки сплайна на прямой линии. Создайте сплайн, выделите 5 расположенных друг за другом точек на криволинейном участке сплайна (рис. 2.108, слева) и примените команду Line Up (рис. 2.108, справа).
Project — позволяет проецировать (прикреплять) сплайн на поверхность объекта. Создайте сплайн и объект, на поверхность которого вы хотите прикрепить сплайн (рис. 2.109). В окне менеджера объектов выделите имя сплайна и вызовите инструмент Project, диалоговое окно которого приведено на рис. 2.110. Выбор пункта View позволяет проецировать на поверхность объекта ту часть сплайна, вернее, те его вершины, которые совпадают с поверхностью объекта, если смотреть с данной точки зрения. На рис. 2.111 куб и сплайн расположены таким образом, что вы видите 6 точек сплайна совпадающими с поверхностью грани куба. Применим команду Project и получим, что часть сплайна спроецирована на поверхность грани куба (рис. 2.112). Если изменить угол зрения, повернув по иному объекты (камеру), то сплайн спроецируется подругому (рис. 2.113).
ЕСЛИ увеличить количество точек, например, до 60, то получится совсем другая фигура (рис. 2.118). Split — позволяет создавать сплайн из исходного сплайна путем дублирования его сегментов. Создайте сплайн и выделите, например, три точки (рис.2 119). Применим команду Split. В результате продублируется участок сплайна, заключенный между выделенными точками. Его имя появится в окне менеджера объектов (рис. 2.120).
XY, XZ, ZY Plane — точки сплайна проецируются на поверхность объекта в соответствии с выбранной плоскостью. XY, XZ, ZY Radial — точки сплайна проецируются на поверхность объекта в цилиндрической системе координат. Radial — точки сплайна проецируются на поверхность объекта в сферической системе координат. Round — позволяет увеличивать количество точек на выделенном участке сплайна и производить интерполяцию одним из типов сплайна. Создадим сплайн и выделим две точки (рис. 2.114). Вызовем команду Round и зададим 4 точки и интерполяцию B-Spline (рис. 2.115). Как видно на рис. 2.116, на заданном участке сплайна вместо двух точек теперь 4. Применим этот инструмент к сплайновому примитиву Star, задав параметры, указанные на рис. 2.117.
Чтобы увидеть созданный сплайн, сделайте невидимым (точка видимости в окне проекций должна быть красного цвета) исходный сплайн с именем Spline (рис. 2.121).
2.3. Создание NURBS-объектов NURBS — объекты создаются на базе сплайнов с помощью следующих специальных инструментов (рис. 2.122). Чтобы увидеть значки инструментов, щелкните по кнопке Add HyperNURBS Object на горизонтальной панели инструментов (рис. 2.123). Рассмотрим характеристики и применение этих инструментов.
Инструмент HyperNurbs Инструмент HyperNurbs является мощным скульптурным инструментом в Cinema 4D для создания моделей как неорганических, так и органических объектов. В отличие от рассмотренных в предыдущей главе примитивов, NURBS-объекты не содержат полигонов. NURBS является аббревиатурой от Non-Uniform Rational B-Splines (неоднородные рациональные Бисплайны).
HyperNURBS использует алгоритм разбиения и закругления объектов. Существует множество методов создания моделей. Наиболее популярными являются методы, в которых исходным материалом является какой-либо примитив. Вначале такой примитив, например, Pyramid (пирамида), конвертируют в полигональный редактируемый объект (главное меню Functions -> Make Editable). Затем вызывают HyperNURBS и в окне менеджера объектов располагают пирамиду на дочерний уровень по отношению к HyperNURBS (как подобъект HyperNURBS) (рис. 2.124). В результате HyperNURBS приобретает вид каркаса того примитива, который является его подобъектом, в данном случае пирамиды, а сам подобъект преобразуется (рис. 2.125). Выберите инструмент Use Point Tool и выделите вершину HyperNURBS пирамиды (рис. 2.126). Прижмите и удерживайте клавишу на клавиатуре с точкой (если в латинской раскладке, то это клавиша, на которой изображены буква Ю и >, если в кириллице, то это клавиша, на которой изображены / и ?). Прижав вершину каркаса HyperNURBS пирамиды левой кнопкой мыши (координатные оси HyperNURBS должны переместиться в эту вершину), попытайтесь подвигать эту вершину влево-вправо. Вершина каркаса останется на месте, но начнет перемещаться
соответствующая ей точка примитива Pyramid — она потянется к вершине HyperNURBS пирамиды (рис. 2.126). Сделайте эту операцию для трех вершин пирамиды (рис. 2.127). По умолчанию для HyperNURBS было использовано значение Subdivision Editor = 2 (рис. 2.129), что привело к несглаженной поверхности исходного объекта. Увеличив значение параметра Subdivision Editor, получаем более сглаженные поверхности (рис. 2.130). В результате из пирамиды получилась в высшей степени сглаженная поверхность, напоминающая объект органического происхождения (рис. 2.133). Чтобы убедиться, насколько Hyper NURBS сглаживает поверхности объектов, создадим стул из обычного примитива Cube, а затем сгладим его поверхность с помощью инструмента HyperNURBS.
1. Создадим примитив Cube с 4-мя сегментами на каждой из сторон и масштабом 0,2 по оси 0Z (рис. 2.134). 2. Переведем примитив Cube в полигональный вид (главное меню Functions -> Make Editable), выберем инструмент Use Polygon Tool
и инструмент
выделения Live Selection . Удерживая нажатой клавишу Shift, выделим 4 полигона, расположенных по углам (рис. 2.135). Там будут расположены ножки стула. 3. В главном меню выберите Structure -> Extrude (или нажмите клавишу D). Таким образом будет выбран инструмент Extrude. Удерживая нажатой левую кнопку мыши, сдвиньте мышь вправо — выделенные полигоны будут выдавлены. При движении мыши влево выделенные полигоны будут выдавлены в противоположенную сторону. Ножки стула готовы (рис. 2.136). 4. Сбросьте выделение с полигонов ножек, разверните примитив, как показано на рис. 2.137. Можно сразу выделить 4 полигона для создания из них спинки, но полигоны слишком широкие и спинка из них получится также слишком толстая. Надо разрезать полигоны, уменьшив их толщину. Для этого в главном меню выберите Structure -> Knife. Инструмент Knife (Нож) позволяет разрезать крупные полигоны на более мелкие полигоны. Проведите линию, как показано на рисунке. Выделите ряд из 4-х полигонов (рис. 2.138). 5. В главном меню выберите инструмент Structure -> Extrude и выдавите выделенные 4 полигона, создав заготовку для спинки стула (рис. 2.139). 6. Создадим отверстие в спинке стула. Снимем выделение с полигонов, развернем заготовку стула, как показано на рис. 2.140, выберем в главном меню инструмент Structure -> Knife
и проведем две горизонтальные линии где-то в центре спинки. Возникнут два дополнительных полигона (рис. 2.140). Разверните заготовку стула и повторите операции для противоположной стороны спинки. Можно использовать виды проекций на плоскости XY, XZ, YZ.
7. Сбросьте предыдущее выделение полигонов и выделите созданные 4 полигона с обеих сторон спинки Чтобы создать отверстие в спинке, выберите инструмент Structure -> Bridge (Мост). Прижмите левой кнопкой мыши один из углов выделенных полигонов на одной из сторон спинки. Граница выделенных полигонов окрасится в желтый цвет, а в углу возникнет
Инструмент Extrude Nurbs (выдавливание) Создайте исходный сплайн, например, сплайновый примитив Flower (цветок). Активизируйте инструмент выдавливания Extrude. В окне менеджера Objects поместите исходный сплайн на уровень подобъекта по отношению к инструменту Extrude NURBS (рис. 2.145).
желтая точка. Не отпуская левую кнопку мыши, плавно и медленно передвигайте курсор вправо-вверх до тех пор, пока не возникнет вторая желтая точка, которая будет соединена с первой линией желтого цвета (рис. 2.141). Это означает, что найден угол выделенного полигона, расположенного на противоположной стороне спинки. Как только вы отпустите левую кнопку мыши, будет проделано сквозное отверстие, соединяющее оба полигона (рис. 2.142). 1. Заготовка стула готова, однако выглядит она не слишком изящно. Чтобы сгладить резкие очертания модели стула, вызовем инструмент Hyper NURBS и разместим объекты в окне менеджера объектов так, как показано на рис. 2.143. На рис. 2.144 приведен вид созданного стула в сглаженном виде. Почувствуйте разницу по сравнению с объектом, изображенным на рис 2.142, и оцените пользу от инструмента Hyper NURBS.
Ставим флажок Hierarchical и, отрегулировав значение параметра Movement, наблюдаем эффект выдавливания по отношению ко всем трем сплайновым примитивам (рис. 2.152).
Как только сплайн будет помещен на уровень подобъекта, к нему будет применено действие инструмента Extrude NURBS и произойдет выдавливание (рис. 2.146). Параметры инструмента приведены в окне менеджера Attributes (рис 2.147). — Movement — задает глубину выдавливания по трем осям; первое поле относится к оси 0Х, второе к оси 0Y, третье — к оси 0Z; — Subdivision — задает число разбиений вдоль направления выдавливания (рис. 2.148); — Flip Normals — изменяет на противоположное направление нормалей к поверхности объекта; — Hierarchical — позволяет объединять в группу несколько сплайнов, чтобы в дальнейшем применить один инструмент выдавливания к каждому сплайну из группы. Например, изображаем в окне проекции три сплайновых примитива (рис. 2.149) и вызываем инструмент выдавливания Extrude NUBBS. В окне менеджера Objects это будет выглядеть, как показано на рис. 2.150. Удерживая клавишу Shift, выделяем каждый из сплайновых примитивов (n-Side, Profile, Star) и помещаем всю группу на уровень подобъекта по отношению к инструменту Extrude NUBBS (рис. 2.151).
— Флажок Untriangulate — позволяет отключать/включать режим разбиения поверхности на элементы треугольной формы (рис. 2.153). Если среди сплайнов — примитивов подходящего сплайна нет, то его можно нарисовать от руки в окне проекций, например, на плоскости XY, ориентируясь по клеточкам фона. Рассмотрим пример создания лестницы. На плоскости XY нарисуем сечение лестницы (рис. 2.154). Воспользуемся инструментом Objects -> Create Spline -> Freehand. Пусть лестница будет старая, кривая, со сбитыми стертыми ступенями. Перейдем в окно проекций Perspective (рис. 2.155).
Вызовем инструмент Extrude NURBS и разместим сплайн, изображающий сечение лестницы (Spline 1), на уровень подобъекта по отношению к Extrude NURBS (рис. 2.156). Создастся выдавливание по контуру сплайна на глубину по оси 0Z по умолчанию на 20. Увеличим глубину выдавливания до 1900 (рис. 2.158).
Инструмент Lathe Nurbs (вращение, токарный станок) Инструмент создает поверхность, закручивая исходный сплайн вокруг оси 0Y. Создайте исходный сплайн, например, сплайн-примитив Star (звезда). Так как вращение будет происходить вокруг оси 0Y, то расположить исходный сплайн следует в плоскости XY или ZY (рис. 2.159).
В главном меню Objects -> NURBS выберите инструмент Lathe и, в окне менеджера Objects, разместите примитив Star на уровень подобъекта по отношению к инструменту Lathe (рис. 2.160). На рис. 2.161 и 2.162 изображено полученное NURBS-тело вращения. Параметры настройки собраны в окне менеджера Attributes (рис. 2.163). Angle — задает угол закрутки исходного сплайна (360° для задания полного оборота); в нашем случае для получения непрерывной поверхности достаточно
было задать 180°, так как ось вращения проходила через центр симметрии исходного сплайна. Subdivision — задает количество элементов, на которые разделена поверхность. Movement — задает режим вращения исходного сплайна по спирали и значение шага спирали, то есть расстояние, на которое будет сдвинут каждый виток относительно предыдущего (рис. 2.164). Scaling — задает размер исходного сплайна. Флажок Flip Normals — позволяет изменить направление нормалей к поверхности на противоположное. Построим кое-что из посуды, например, бокал. Перейдем в плоскость XY (клавиша F4) и нарисуем инструментом Freehand исходный сплайн (рис. 2.165).
Инструмент Loft Nurbs (покрытие опорных сечений оболочкой) Позволяет создать поверхность на основе двух и более опорных сечений (сплайнов).
Создайте 2 опорных сечения, например, из сплайновых примитивов Flower (рис. 2.166). Активизируйте инструмент Loft NURBS (рис. 2.167). Удерживая клавишу Shift, выделите имена двух исходных сплайнов Flower и Flower 1 и разместите их на уровень подобъекта по отношению к инструменту Loft NURBS (рис. 2.167). Как только вы это сделаете, лофтинговая поверхность будет создана (рис. 2.168). Направление построения соединяющей лофтинговой поверхности определяется порядком расположения имен сплайнов в окне менеджера объектов (рис. 2.167). В данном случае поверхность будет строиться от сплайна Flower 1 к сплайну Flower. Параметры приведены в окне менеджера Attributes (рис. 2.169).
Mesh Subdivision U — задает число разбиений в направлении U, в данном случае по контуру опорных сечений (рис. 2.170, 2.171). Mesh Subdivision V — задает число разбиений поверхности в направлении оси V, в данном случае в направлении лофтинга.
Isoparm Subdivision U — задает количество изопараметрических разбиений по контуру объекта. Флажок Organic Form — позволяет придать лофтинговой поверхности более сглаженный вид. Флажок Loop — позволяет соединить первый опорный сплайн с последним по их контурам, при этом торцы окончательной лофтинговой фигуры останутся открытыми (рис. 2.174). Используя настройки, собранные на вкладке Caps (2.175), можно добавлять закругления и «торцевые заглушки» для полученного объекта. Рассмотрим еще один пример. Создадим модель лодки. В окне проекций перейдем на плоскость XY (клавиша F4) и нарисуем сплайн (например, Безье-сплайн), который будет одним из опорных
сечений каркаса лодки (рис. 2.176). В окне менеджера объектов дважды щелкните по имени сплайна и в появившемся диалоговом окне переименуйте его в Сечение 1. Сделаем копию этого сплайна. Для этого при выделенном сплайне нажмите клавиши Ctrl C, чтобы создать копию, а затем Ctrl V, чтобы вставить копию. В окне менеджера объектов появится имя второго сплайна. Используя параметр P.Z в окне менеджера атрибутов, переместите сплайн Сечение 2 в положительном направлении вдоль оси 0Z (например, на 179 м) (рис. 2.177). Повторите операцию и создайте еще два таких же опорных сечения, разместив их с тем же шагом по оси 0Z (рис. 2.178). Удерживая клавишу Shift, выделите Сечение 1 и Сечение 4. В окне менеджера атрибутов в поле параметра S.X задайте им уменьшение масштаба по оси 0Х до 0,8 (рис. 2.179). Это создаст сужение каркаса лодки к носу и корме. Теперь надо создать кормовой и носовой каркасы. Они должны быть совсем мелкие и приподняты на уровень свободных концов созданный сплайнов. Создаем копию Сечения 1 и переименовываем в Сечение 0. С помощью параметра P.Z (в окне менеджера атрибутов) перемещаем Сечение 0 в отрицательном направлении по оси 0Z на 160 м, с помощью параметра P.Y поднимаем по оси 0Y на 160 м в положительном направлении и уменьшаем масштабы по оси 0Y до S.Y = 0,1 и по оси 0Х до S.X = 0,07 (рис. 2.181).
Для создания кормового каркаса Сечение 5 копируем Сечение 0 и перемещаем его в положительном направлении по оси 0Z до P.Z = 700 м. Каркас готов (рис. 2.182). Вызываем инструмент Loft NURBS. Обратите внимание на порядок следования имен опорных сечений
в окне менеджера объектов. Поверхность будет натянута именно в соответствии с этим порядком. Поэтому поменяйте местами имена сечений, перетаскивая их левой кнопкой мыши так, чтобы они расположились в порядке возрастания номеров. Затем, удерживая нажатой клавишу Shift, выделите все имена сечений и
расположите их на уровень подобъекта по отношению к объекту Loft NURBS (рис. 2.183). Лодка готова (рис. 2.184)
Инструмент Sweep NURBS (выдавливание по нелинейному пути) Для работы потребуется два или три сплайна. Начнем с двух сплайнов. Один из сплайнов используется в качестве сечения, второй как траектория, по которой это сечение перемещается. След от перемещения сечения вдоль траектории и есть создаваемая поверхность. Сплайн Сечение должен располагаться в плоскости XY. Перейдем в окне проекций на плоскость XY (клавиша F4) и создадим сплайновый примитив Circle (Objects -> Spline Primitive -> Circle) (рис. 2.185). Назовем этот сплайн Сечение. Перейдем в окне проекций на плоскость ZX (клавиша F2) и создадим такой же сплайн Circle. Назовем его Путь. Перейдем в окне проекций на Perspective (клавиша F1) (рис. 2.186), где наглядно видно взаимное расположение двух сплайнов. Вызовем инструмент Sweep NURBS. В окне менеджера объектов разместим сплайны на уровень подобъектов по отношению к Sweep NURBS, (рис. 2.187). Важно, чтобы первым подобъектом был сплайн Сечение, а затем Путь. Результат приведен на рис. 2.188, где для наглядности приведены 4 вида проекций. Изменяйте величину радиуса сплайна Путь рис. 2.189) и наблюдайте за изменениями в окнах проекций. Вы увидите, что центр сплайна Сечение привязан к сплайну Путь и перемещается вслед за
ним. Поэтому изначально располагать сплайн Сечение можно в любом месте на плоскости XY, в результате он все равно будет «посажен» своим центром точно на сплайн Путь как на направляющую.
Инструмент Bezier NURBS Создает плоскость, лежащую в плоскости XY (рис. 2.190). Для создания NURBS-фигур используются не исходные сплайны, а контрольные точки поверхности. Создайте плоскость Bezier NURBS с помощью инструмента, активизированного через главное меню Objects -> NURBS -> Bezier NURBS. Щелкните по кнопке Make Object Editable и затем перейдите в режим редактирования вершин Use Point Tool
С помощью инструмента выделения (рис. 2.191) выделите группу контрольных точек на поверхности Bezier NURBS. Применяя к контрольным точкам инструменты редактирования (рис. 2.191), изменим поверхность (рис. 2.192).
Щелкните по пиктограмме Use Model Tool чтобы выйти из режима редактирования вершин. Сделайте рендеринг (главное меню Render -> Render View). В окне менеджера Attributes собраны основные настройки инструмента Bezier NURBS (рис. 2.193): Subdivision X — задает количество отрезков по оси 0Х; Subdivision Y — задает количество отрезков по оси 0Y;
Grid Points X — задает количество управляющих точек по оси 0Х; Grid Points Y — задает количество управляющих точек по оси 0Y; Флажок Closed X — вызывает соединение граней поверхности в направлении оси 0Х; Флажок Closed Y — вызывает соединение граней поверхности в направлении оси 0Y. С помощью инструмента выделения (рис. 2.191) выделите группу контрольных точек на поверхности Bezier NURBS. Применяя к контрольным точкам инструменты редактирования (рис. 2.191), изменим поверхность (рис. 2.192).
2.4. Инструменты деформации Важную роль при моделировании играют 18 инструментов деформации, перечень значков которых можно увидеть, щелкнув по пиктограмме Add Bend Deformation (добавить деформацию изгиба), расположенной на горизонтальной панели инструментов (рис. 2.194).
Инструменты деформации можно вызвать также через главное меню Objects -> Deformation (рис. 2.195). Рассмотрим применение инструментов деформации. Инструмент деформации Bend (изгиб) Инструмент позволяет изгибать объект в одном направлении. Разберем последовательность действий при применении этого инструмента к объекту. 1. Создайте примитив, например, Cube (куб). 2. Выберите инструмент деформации Bend. На экране появится голубой контур габаритного контейнера деформации (рис. 2.196). Контейнер показывает характер производимой деформации, а расположение контейнера относительно объекта может повлиять на результат деформации. 3. В окне менеджера Objects (объекты) (рис. 2.197) появились два значка для объекта Cube и для инструмента деформации Bend. Зеленая галочка напротив имени объекта говорит о том, что объект включен (активирован). Чтобы выключить объект, надо щелкнуть по галочке, которая сменится на красный крест, — объект перейдет в выключенное (деактивированное) состояние.
Чтобы применить инструмент деформации к объекту, инструмент деформации должен стать подобъектом по отношению к деформируемому объекту, то есть должен быть размещен на уровень ниже объекта.
Прижмите левой кнопкой мыши значок инструмента деформации Bend и перетащите его на значок объекта Cube (куб) (рис. 2.198). Для подсказки снизу у курсора изображается белый квадратик, а справа — черная стрелка, которая
в момент наведения на объект сменит направление с горизонтального (справа налево) на вертикальное (сверху вниз). 4. Управлять ходом деформации можно с помощью грубых и тонких настроек. Для грубой настройки служит оранжевая точка управления деформацией (рис. 2.199). При наведении курсора на эту точку, она меняет цвет на желтый. Прижмите точку левой кнопкой мыши и перемещайте ее, учитывая следующее: — направление, в котором перемещается точка, соответствует направлению деформации; — при удалении точки от оси деформации (в данном случае от оси 0Y) увеличивается сила изгиба, то есть увеличивается угол между нормалями к нижнему и верхнему основанию контейнера деформации. В окне менеджера Objects щелкните по значку инструмента деформации Bend и перемещайте точку, создавая изгиб (рис. 2.200). Обратите внимание, что изгиба куба не получилось. Куб не изогнулся, а сдвинулся в сторону. Это произошло потому, что при создании куба по умолчанию
количество сегментов вдоль оси 0Y равно 1. Чтобы убедиться в этом, сделайте активным объект Cube и зайдите в окно менеджера Attributes (рис. 2.201). На результат деформации оказывает влияние количество сегментов, на которые куб разбит вдоль оси деформации 0Y (значок трех осей координат с их именами приведен в нижнем левом углу окна проекции). Один сегмент может сдвинуться, но не может изогнуться. Добавим несколько сегментов. На рис. 2.202 они обозначены белым цветом
Результат произведенной деформации Bend (изгиб) изображен на рис. 2.203. Если приглядеться, то становятся видны места границ сегментов. Следовательно, чем больше сегментов, тем более гладкой получается поверхность.
Параметры тонкой настройки собраны на закладке Objects окна менеджера атрибутов (рис. 2.203). Чтобы вызвать этот менеджер, сделайте активным инструмент деформации Bend. Рассмотрим назначение параметров: — параметр Size (размер) задает размеры габаритного контейнера по осям X, Y, Z: — параметр Mode (способ) задает, как влияет размер контейнера на охватываемый им объект. Параметр имеет три значения: Limited (ограниченный) — деформируется только та часть объекта, которая находится внутри габаритного контейнера; часть объекта, находящаяся вне контейнера, просто следует за перемещениями с целью сохранения непрерывности поверхности объекта; Within Box (в контейнере) — та часть объекта, которая находится вне контейнера, остается неизменной; Unlimited (неограниченный) — деформируется весь объект независимо от того, как он расположен относительно контейнера; — параметр Strength (сила) задает степень изгиба, выраженную в градусах;
— параметр Angle (угол) задает направление изгиба, выраженное в градусах от оси 0Х; при 0° и 180° изгиб происходит в сторону оси 0Х; при 90° и 270° изгиб в сторону оси 0Z. Для наглядности щелкните и удерживайте стрелку счетчика вверх (на увеличение значения) для параметра Strength. Вы будете наблюдать, как постепенно увеличивается изгиб куба. Зафиксировав значение Strength, например, на 55°, то же проделайте со счетчиком Angle, изменяя угол от 0 до 360° и наблюдая за круговым вращением верхней изогнутой части куба. Чтобы проверить работу параметра Mode, придадим, например, конусу форму рога. Для этого проделайте следующие действия: — разместите в окне проекций примитив Cone (конус) и инструмент деформации Bend (изгиб); — сделайте активным инструмент деформации Bend (в окне менеджера Objects щелкните по значку Bend); — с помощью счетчика Y в окне менеджера Coordinates (рис. 2.204) измените значение координаты Y, чтобы поднять контейнер вверх. Лучше сделать эту операцию с помощью счетчика, который обеспечит параллельный перенос контейнера строго вдоль оси 0Y, не изменяя других координат (иначе операция изгиба конуса будет выполнена некорректно); — добившись неполного охвата контейнером деформируемого объекта, задайте в окне менеджера Attributes последовательно
значения параметра Mode (Limited, Within Box и Unlimited) и убедитесь, как влияют эти значения на получаемый результат. На рис. 2.205 приведен результат деформации при значении Mode Unlimited: контейнер охватывает лишь незначительную часть конуса, но, тем не менее, воздействует на него целиком. Применим деформатор Bend к объекту в форме гриба, полученному с помощью инструмента Lathe NURBS (рис. 2.206). Заставим этот объект изогнуться и вращать шляпкой. Добавим деформатор Bend и расположим его в окне менеджера объектов так, как показано на рис. 2.207. Такое расположение имен означает, что вначале к сплайну Spline будет применен инструмент Lathe NURBS, а затем к полученному объекту будет применен деформатор Bend. Выставите значения для параметра Strength и анимируйте параметр Angle так, чтобы объект совершил один оборот. Для анимации щелкните правой кнопкой на имени анимируемого параметра в окне менеджера атрибутов. В данном случае это параметр Angle. В контекстном меню выберите Animation -> Add KeyFrame, как показано на рис. 2.208. Слева от параметра появится красная точка, означающая, что параметр готов к анимации. Передвигая бегунок на временной шкале анимации, задавайте номер кадра и изменяйте значение Angle для этого кадра, после чего надо сделать этот
кадр ключевым Animation -> Add KeyFrame. И так далее для каждого вновь созданного кадра. Для усиления анимационного эффекта желательно сделать контейнер деформатора невидимым в окне проекций. Для этого щелкните по верхней точке справа от имени деформатора Bend. Точка должна стать красной (рис. 2.209). Чтобы сделать деформатор невидимым при рендеринге, щелкните по нижней точке — она тоже должна стать красной. Деформатор можно применить к отдельному сплайну. На плоскости XY (клавиша F4) создайте сплайновый примитив Circle и настройте его как эллипс (рис. 2.210). Требуется изогнуть этот сплайн вправо. Применим деформатор Bend. Результат приведен на рис. 2.211.
Инструмент деформации Bone (кость) Инструмент позволяет деформировать оболочку, в которую он помещен. В качестве оболочки может выступать также готовая модель человека, что позволяет анимировать персонаж. Рассмотрим более подробно инструмент Bone. Вызовите инструмент через главное меню Objects -> Deformation -> Bone (рис. 2.212). Кость окрашена в зеленый цвет, заключена в габаритный контейнер красного цвета и располагается вдоль оси 0Z. Утолщенный конец кости называется основанием. В нем располагается начало локальной системы координат кости. Утонченный конец кости называется вершиной и снабжен регулятором в виде оранжевой точки. Выберите инструмент Move и перейдите в режим Use Model Tool. Если прижать оранжевую точку левой кнопкой мыши и при нажатой клавише Ctrl перемещать мышь, то можно вытянуть из тонкого конца кости еще одну кость — дочернюю (рис. 2.213). Новая кость (дочерняя кость) автоматически становится подобъектом той кости, из которой она была создана (родительская кость), что
отражается в окне менеджера Objects (рис. 2.214). Рассмотрим применение деформатора Bone, например, к примитиву Cylinder (цилиндр). Попробуем анимировать изгиб цилиндра. Разместим в окне проекций примитив Cylinder (цилиндр). Произвольно увеличим его высоту и радиус, а затем перейдем в режим отображения трех проекций (главное меню окна проекций View -> Panels -> Tree Views Top Split) (рис. 2.215). Через главное меню Objects -> Deformation -> Bone создадим кость (рис. 2.216).
В окне менеджера Objects щелкните по имени объекта Bone, чтобы сделать его активным (рис. 2.217). Затем в окне менеджера Attributes, изменяя парамет-
ры, приведенные на закладке Coord (рис. 2.218), расположите кость строго по оси цилиндра, совместив точку основания кости с центром окружности верхнего основания цилиндра (рис. 2.219). Эту операцию центрирования можно проделать в два этапа. Вначале поверните кость в плоскости YZ на 90°, чтобы ее ось совпала с осью цилиндра и чтобы она была повернута утонченным концом вниз. Для точного расположения воспользуйтесь параметром R.P (вращать в перпендикулярной плоскости) в окне менеджера Attributes, задав его значение, равным 90° (рис. 2.220).
Для перемещения кости вверх воспользуйтесь параметром P.Y (позиция по оси 0Y) (рис. 2.221). Для достижения более точного расположения сверяйте перемещение кости в окнах проекций вида сверху и сбоку. Создадим вторую кость, дочернюю по отношению к первой. Для этого, удерживая нажатой клавишу Ctrl, левой кнопкой мыши прижмите оранжевую точку на утонченном конце кости. Точка поменяет цвет на желтый. Не отпуская левую кнопку мыши, передвиньте точку в нужном направлении. В результате из первой кости будет вытянута вторая кость (рис. 2.222). Тот факт, что первая кость является родительской по отношению ко второй, видно в окне менеджера Objects (рис. 2.223). Сцентрируйте вторую кость по оси цилиндра, пользуясь либо точной настройкой в окне менеджера Attributes на вкладке Coord (рис. 2.224), либо перемещая кость за оранжевую точку на ее утонченном конце в окнах проекций вида сверху и сбоку. Настроим величину диапазона деформирующего влияния каждой кости на окружающую ее оболочку, в данном случае на цилиндр. Начнем с родительской кости. Активизируйте ее (щелкните по ней левой кнопкой мыши) в окне менеджера Objects и, перейдя в окно менеджера Attributes на закладку Object, поставьте флажок
Limit Range (ограничить диапазон) (рис. 2.226). В результате станут доступны два поля Minimum и Maximum, в которых можно задать минимальный и максимальный радиусы области воздействия кости на окружающую оболочку. Одновременно в окнах проекций появятся графические инструменты настройки параметров Minimum и Maximum. Каждый из таких инструментов состоит из четырех орбит (две вертикальные и две горизонтальные) зеленого цвета с расположенными на них шестью управляющими точками оранжевого цвета (рис. 2.227). Для настройки прижмите левой кнопкой мыши любую точку на орбите (при этом точка изменит цвет на желтый) и перетащите ее в нужном направлении — орбиты последуют за ней. Значения минимального и максимального радиусов могут не сильно отличаться друг от друга, но диапазон должен перекрывать весь участок, намечаемый к деформированию. Проделайте аналогичные операции для второй кости. В окне менеджера Objects расположите кости на уровне подобъекта по отношению к объекту Cylinder (рис. 2.228). Чтобы привязать кости к цилиндру, щелкните правой кнопкой мыши по имени родительской кости в окне менеджера Objects и выберите Fix Bones (рис.
2.229). Теперь кости будут привязаны к оболочке и, двигая костьми, можно будет перемещать оболочку. Активизируйте вторую кость, щелкнув по ее имени в окне менеджера Objects. Активизируйте инструмент Move
.
Прижав левой кнопкой мыши оранжевую точку на утонченном конце второй кости, подвигайте ее в стороны — поверхность цилиндра будет сгибаться вслед перемещению второй кости (рис. 2.230). Рассмотрим свойства инструмента Bone, приведенные в окне менеджера атрибутов на закладке Object (рис. 2.233). Null — кость становится нуль-объектом (рис. 2.234). Smart Bone — флажок переключает алгоритмы расчета силы воздействия кости на объект в некоторой его точке (называется еще весом точки). Эти алгорит-
мы используются в параметре Limit Range (рис. 2.232). В сброшенном состоянии флажка деформирующая сила кости в некоторой точке объекта обратно пропорциональна квадрату расстояния от кости
до этой точки. В установленном состоянии включается более быстрый и более точный алгоритм расчета, учитывающий особенности геометрии объекта. При этом становится доступным флажок параметра Absolute Vertex Map. В установленном состоянии этот флажок отключает все остальные настройки и задает карту весов всех точек объекта: Length — регулирует длину выделенной кости. Function — задает алгоритм, по которому рассчитывается сила притяжения точек объекта к костям в области сочленения двух костей (на сгибе) (рис. 2.235). Алгоритм следует присваивать родительской кости (самой верхней в иерархии в окне менеджера объектов). Родительскую кость надо выделить, а затем выбрать закон из списка Function. Strength — задает силу, с которой выделенная кость воздействует на точки объекта в процентах от силы воздействия остальных костей цепочки.
Scale Strength — применяется при анимации длины кости, чтобы не были нарушены ее пропорции по другим координатам. Limit Range — задает величины минимальной (Minimum) и максимальной (Maximum) областей влияния деформатора. На закладке Fixation (рис. 2.236) собраны параметры, позволяющие делать кости неподвижными, но перемещать, масштабировать и вращать объект, к которому кости привязаны. Флажок Fixed — изменяет цвет выбранной кости. Служит только для визуальной отметки выбранных в окне менеджера объектов костей. Создайте цепочку костей, сцентрируйте их с цилиндром и привяжите к цилиндру (пункт Fix Bones в контекстном меню родительской кости) (рис. 2.237). Выделите среднюю кость и изменяйте параметр R.H (рис. 2.236). Как видно из рис. 2.238, кости остались на месте, но цилиндр деформировался, согнувшись на выделенной кости.
На закладке Display собраны настройки параметров, определяющих внешний вид кости (рис. 2.239). Флажок Show Proxy — в установленном состоянии заменяет стандартное представление костей другой геометрической фигурой (рис. 2.240). Start Size, End Size — задают размеры начала и конца кости по соответствующим координатам. Start Offset, End Offset — задают координаты точек начала и конца кости.
Инструмент деформации Bulge (вздутие) Инструмент позволяет сделать поверхности исходного объекта выпуклыми или вогнутыми. Создайте исходный объект, например, примитив Cylinder (цилиндр). Выберите в главном меню инструмент деформации Objects -> Deformation -> Bulge. В окне менеджера Objects расположите инструмент деформации Bulge как подобъект исходного объекта Cylinder (рис. 2.241).
В интерактивном режиме деформация производится с помощью ручки управления: перемещение оранжевой точки вправо — утолщение, перемещение оранжевой точки влево — утончение исходного объекта (рис. 2.242). Для тонкой настройки служат следующие параметры (рис. 2.244). Size — задает размер габаритного контейнера. Mode — задает режим деформации (тот же, как в деформаторе Bend). Strength — задает степень воздействия деформатора на объект. Curvature — задает величину кривизны деформируемых поверхностей. Fillet — позволяет производить сглаживание поверхности объекта в верхней и нижней его частях. На рис. 2.245 приведен результат применения деформатора Bulge к объекту Zygote Man (справа изображение после рендеринга).
Инструмент деформации Explosion (взрыв) В результате применения этого инструмента объект распадается, а его осколки разносятся в стороны и могут при этом закручиваться, уменьшаться или увеличиваться в размерах. Количество осколков определяется числом сегментов, на которые была разделена поверхность объекта. Подготовив в качестве объекта для деформации примитив Sphere (сфера) и создав инструмент деформации Explosion (взрыв) как подобъект Sphere (в окне менеджера Objects, рис. 2.246), перейдем к рассмотрению настроек этого деформатора, приведенных в окне менеджера Attributes (рис. 2.247). — Strength — задает состояние поверхности объекта в различные моменты взрыва. При 0% — в преддверии взрыва (поверхность объекта цела), при 100% — объект полностью взорван. Чтобы посмотреть динамику взрыва, щелкните левой кнопкой мыши кнопку счетчика Strength на увеличение (черный треугольник вершиной вверх) и удерживайте кнопку нажатой, пока значение параметра Strength не станет равным 100%. За этот промежуток времени сфера будет полностью уничтожена взрывом. Нажмите и удерживайте кнопку счетчика Strength на уменьшение (черный треугольник вершиной вниз) до тех пор, пока значение параметра Strength не станет равным 0%. Вы увидите обратный процесс — воссоздание сферы из осколков. Значение параметра Strength можно изменять с помощью ручки оранжевого цвета (рис. 2.248), которая в начальный момент взрыва находится в начале координат. — Speed — задает скорость разлетания осколков и, следовательно, расстояние, на которое отлетают
осколки. При значении 0 осколки остаются на месте. Проверьте это. — Angle Speed — задает угловую скорость вращения осколков при разлетании. Задайте значение 100000° и посмотрите динамику взрыва (как было показано выше с параметром Strength). Поставьте значение 10° и также посмотрите динамику взрыва. Отметьте различия. — End Size — задает размер осколков в момент окончания взрыва. Задайте значение 0, просмотрите динамику взрыва и убедитесь, что к концу взрыва осколки полностью исчезнут. Задайте значение 1, просмотрите динамику взрыва и убедитесь, что на протяжении взрыва размер осколков не изменяется. — Randomness — задает степень хаотичности взрыва. При 0% осколки разлетаются таким образом, что сферическая форма сохраняется, так как все осколки имеют одинаковые значения параметров Speed и Angle Speed. При отличии параметра Randomness от 0%, значения параметров Speed и Angle Speed для различных осколков будут варьироваться случайным образом. Проверьте этот эффект. Взрываемый объект может иметь на своей поверхности определенную текстуру. Смоделируйте самостоятельно взрыв куба из кирпичей (рис. 2.249). В многокомпонентных объектах деформатор Explosion можно прикреплять к тому подобъекту, который необходимо взорвать. Например, если объекту Zygote Man (меню Objects -> Object Library -> Zygote Man) надо взорвать левую руку, то деформатор Explosion следует разместить как подобъект L_Forarm (рис. 2.250). Анимировав параметр Strength (рис. 2.247), получите изображение взрыва левой руки персонажа (рис. 2.251, 2.252).
Инструмент деформации Explosion FX (взрыв FX) Инструмент имеет 8 групп параметров, представленных в окне менеджера Attributes (рис. 2.253), что позволяет получать более реалистичные изображения взрыва. В качестве деформируемого объекта возьмем примитив Sphere (сфера) и сформируем деформатор Explosion как подобъект для Sphere (рис. 2.254).
В окне проекций имеем следующую картину (рис. 2.255), на которой 3 параметра изображены в виде разноцветных орбит. Орбиты зеленого цвета относятся к параметру Time (группа Object), задающему состояние поверхности деформируемого объекта в различные моменты взрыва и позволяющему просматривать динамику взрыва. Орбиты красного цвета относятся к параметру Blast Range (группа Explosion), задающему радиус воздействия взрывной волны на объект. Орбиты синего цвета относятся к параметру Range (группа Gravity), задающему область действия эффекта гравитации на
деформируемый объект. Для регулировки значения указанных параметров служат ручки управления (точки) оранжевого цвета, который меняется на желтый при наведении на них курсора. Ручки управления (точки) образуются в месте пересечения орбиты с осью 0Х. Рассмотрим содержимое каждой из групп параметров, приведенных в окне менеджера Attributes (рис. 2.256). Группа Basic (базовые) содержит имя деформатора (Name), параметры настройки «показать/скрыть деформатор» в окне проекций (Visible in editor) и при визуализации (Visible in renderer), параметры использования цвета (Use Color) и тонировщика (Shaded Wire Mode), а также флажок включения/выключения деформатора (Enabled) (рис. 2.257). Группа Coord (координаты) содержит настройки координат расположения деформатора (Р.Х, P.Y, P.Z), масштаба по осям (S.X, S.Y, S,Z) и вращения (R.X, R.Y, R.Z) (рис. 2.258). Группа Object (объект) имеет один параметр Time (время), задающий состояние поверхности деформируемого объекта в различные моменты взрыва и позволяющий наблюдать динамику взрыва.
Группа Explosion (взрыв) содержит следующие параметры, разделенные на 5 подгрупп. Первая подгруппа содержит 3 параметра, описывающих характеристики силы: — Strength — задает значение силы, воздействующей на осколки при взрыве. Поставьте значение 3, просмотрите динамику взрыва (параметр Time), поставьте значение 3000г просмотрите динамику взрыва, сравните результаты; — Decay — задает степень ослабления силы взрыва Strength; при 0% ослабления не происходит, при 100% сила взрыва равна 0 при достижении осколками границы взрыва; — Variation — задает, на сколько может изменяться сила взрыва, воздействующая на отдельный осколок (выражается в процентах от значения Strength); при значении 100% сила, воздействующая на отдельный осколок, может изменяться от 0 до удвоенного значения, заданного в параметре Strength. Следующая подгруппа параметров задает направление распространения взрывной волны: — Direction — задает направление распространения взрывной волны; — АН — по всем направлениям равномерно; Only X — только вдоль одной оси X (для других осей аналогично Only Y, Only Z), Exept X — кроме оси X (аналогично для других осей). На рис. 2.261 приведен пример распространения осколков только вдоль оси X;
— Linear — если взрывная волна распространяется только вдоль одной оси, то при установке флажка ко всем осколкам прилагается одинаковая сила; — Variation — задает, насколько осколки будут отклоняться от заданного направления распространения взрывной волны; — Blast Time — задает силу взрывной волны. Чтобы оценить влияние параметра, задайте вначале значение 1, а затем 10000 при фиксированном значении параметра Time в группе Object равным, например, 5% (то есть в один и тот же момент взрыва).
Следующая подгруппа параметров позволяет регулировать скорость распространения взрывной волны: — Blast Speed — устанавливает значение скорости взрывной волны (м/с); максимальное значение 100000 м/с; — Decay — задает степень ослабления скорости взрывной волны в процентах от первоначального значения; — Variation — задает изменение скорости взрывной волны для различных осколков (в процентах от первоначальной скорости); 100% означает, что скорость для отдельных осколков может изменяться от 0 до удвоенного значения, указанного в параметре Blast Speed. Последние два параметра позволяют изменять радиус воздействия взрывной волны: — Blast Range — задает значение радиуса воздействия взрывной волны на объект; на рисунке этот параметр соответствует красным орбитальным линиям, перемещая которые можно изменять значение параметра; — Variation — позволяет варьировать значение Blast Range для отдельных осколков. — Группа Cluster (осколки) задает параметры осколков. — Thickness — задает толщину осколков; — Density — задает плотность материала объекта, что позволяет учитывать вес каждого осколка; — Cluster Туре — задает способ разбиения поверхности объекта на осколки; тип осколков можно выбрать из выпадающего списка (рис. 2.265).
Polygons — осколки формируются согласно полигональному разделению поверхности объекта (рис. 2.266). Automatic — программа создает формы осколков, комбинируя полигоны; осколки получаются различной формы (рис. 2.267). Use Selection Tags (использовать метки выделения) — осколки формируются из выделенных полигонов; Selection + Polys — осколки образуются из выделений и отдельных полигонов (рис. 2.268); Mask — хранит имена выделенных полигонов; Fix Unselected — взведенный флажок заставляет невыделенный полигон (в режиме Use Selection Tags) оставаться неподвижным при взрыве; Min Polys и Max Polys — задают минимальное
и максимальное количество полигонов при выборе режима Automatic параметра Cluster Туре (рис. 2.269); Disappear — задает режим исчезновения полигонов в процессе взрыва и делает доступными остальные настройки (рис. 2.270); Kind — позволяет выбрать параметр, относительно которого будет настраиваться момент (если выбрать Time) или точка отсчета (если выбрать Distance) начала и продолжительность (если выбрать Time) или точка окончания (если выбрать Distance) процесса исчезновения осколков; Start — задает начальный момент времени (если выбрать Time) или минимальное расстояние (если выбрать Distance), с которых начинается исчезновение осколков; Duration — задает период, по истечении которого осколки будут уже не видны.
Чтобы наглядно убедиться во влиянии единиц измерения (Time или Distance) задайте значения Start и Duration как на рис. 2.271. Параметр Time (группа Object) задайте 25%. С помощью поля Kind переключайте единицы измерения для параметров Start и Duration и наблюдайте за изменениями, происходящими в картине взрыва (рис. 2.271). Группа Gravity (гравитация) содержит настройки воздействия силы гравитации к осколкам (рис. 2.272). Acceleration — задает ускорение осколков, которое они приобретают под воздействием силы тяготения; по умолчанию задано ускорение свободного падения. В поле тяготения Земли 9,8 м/с2. Variation — позволяет варьировать это значение для различных осколков. Direction — указывает оси координат, в направлении которых действует сила притяжения; при выборе None действие силы притяжения отключается. Например, чтобы задать падение осколков вниз (на землю), задайте ось — Y World. Range — задает область действия силы притяжения. Variation — позволяет варьировать для отдельных осколков значение Range. Группа Rotation задает параметры вращения отдельных осколков вокруг собственной оси (рис. 2.273).
Инструмент деформирования FFD (деформатор свободной формы) Инструмент FFD (Free Form Deformation — деформация свободной формы) позволяет производить деформацию с помощью создаваемого контейнера деформации. Действие деформатора основано на свойстве узлов сетки контейнера деформатора притягивать к себе поверхность деформируемого объекта. Деформация объекта происходит во время перемещения узлов сетки контейнера. Ручек управления деформатор FFD не имеет. Создадим исходный объект — примитив Sphere (сфера), выберем инструмент в меню Objects -> Deformation -> FFD и расположим их в окне менеджера Objects, как показано на рис. 2.275.
В окне проекции возникнет следующая картинка (рис. 2.276).
Speed — задает скорость вращения; задайте 100 единиц и посмотрите динамику взрыва, перемещая ручку регулятора параметра Time в окне проекции; Decay — задает степень ослабления скорости вращения по мере удаления от эпицентра взрыва; если задать 100%, то при достижении границы взрыва осколки прекращают вращение; Rotation Axis — позволяет задать ось вращения (X Axis, Y Axis, Z Axis) или центр вращения, в качестве которого предлагается центр гравитации (Center of Gravitation). Задайте различные оси и центр и посмотрите динамику взрыва. Группа Special (специализированные) задает параметры имитации ветра (Wind) и закручивания (Twist) (рис. 2.274).
Количество сегментов, на которые разделены грани контейнера деформатора, можно изменить через параметры Grid Points X, Grid Points Y и Grid Points Z, задав их в окне менеджера Attributes (рис. 2.277). Размер контейнера можно задать там же через параметр Grid Size.
ДЛЯ дальнейшей работы надо перейти в режим редактирования вершин, активизировав инструмент Use Point Tool (кнопка располагается на вертикальной панели инструментов слева). В результате цвет вершин сегментов контейнера изменится на красный. На выделенной вершине возникает значок трех осей, с помощью которых можно перемещать вершину в нужном направлении. Близлежащие участки поверхности деформируемого объекта будут следовать за перемещаемыми вершинами, создавая тем самым деформацию (рис. 2.278). С помощью инструментов выделения можно выделять группы вершин.
Чтобы оценить результат, надо сделать сетку контейнера невидимой. Для этого дважды щелкните по верхней точке справа в окне менеджера Objects (рис. 2.279). Точка станет красного цвета, а контейнер невидимым. Чтобы сделать контейнер видимым, снова щелкните по точке.
Инструмент деформации Formula (по формуле) Как следует из названия, деформация задается некоторой математической зависимостью. Разместите в окне проекций объект Sphere (сфера) и инструмент деформации Formula. В окне Objects разместите значок деформатора Formula как подкаталог объекта Sphere (рис. 2.281). Размеры контейнера деформатора можно изменять вручную с помощью ручек управления оранжевого
цвета (рис. 2.280), а можно через параметр Size в окне менеджера Attributes (рис. 2.282).
Параметр Effect (эффект) в окне менеджера Attributes задает, каким образом будет применена формула для деформации. Возможные варианты приведены в выпадающем списке: — Manual — формула закона деформации задается вручную для каждой оси; — Spherical — задает область действия формулы от начала координат контейнера деформатора равномерно во всех направлениях; — Cylindrical — задает область действия формулы вдоль осей X и Z, а вдоль оси Y формула не действует; — X Radial, Y Radial, Z Radial — задает область действия формулы только вдоль одной из осей. Параметр d (u,v,x,y,z,t) позволяет задать формулу закона деформации. Здесь u, v — сферические координаты; х, у, z — линейные геометрические, t — время (указывается для анимации деформации во времени). Если выбран Manual, то формулу надо указывать для каждой координаты. Можно наглядно исследовать влияние перечисленных выше параметров на получаемую форму. Введение параметра x в качестве формулы деформации деформирует объект в направлении оси 0Х (рис. 2.283). Аналогично для других осей. Если задать параболический закон изменения x ^ (х 2, где знак ^ обозначает операцию возведения в квадрат) (рис. 2.284), то в сечении по оси x будет заложена формообразующая парабола и объект будет деформирован соответствующим образом (рис. 2.285). Для гиперболического закона формы сечения деформированного объекта (х^3) по оси 0Х имеем сле-
дующую картинку (рис. 2.286), на которой отчетливо видна гиперболическая форма деформации. Начиная с шестой степени производимая для сферы деформация будет практически неразличима.
Исследуем влияние сферических координат u (рис. 2.287) и v (рис. 2.288). На рис. 2.289 приведено влияние более сложной зависимости на форму деформации. Деформатор анимирован, так как в формуле допускается ввод параметра t (время). Оставьте формулу по
умолчанию, а остальные параметры установите, как на рис. 2.290. Запустите просмотр анимации.
Деформатор можно применять к многокомпонентным объектам, например, Zygote Man. Разместите деформатор на уровне подобъекта к Zygote Man (рис. 2.291).
Задайте синусоидальную функцию по умолчанию и анимируйте параметр Strength. Несколько кадров приведены на рис. 2.292
Инструмент деформации Melt (плавление) Создает эффект плавления объекта и его растекания по плоскости. На рисунке приведен пример применения данного деформатора для объекта Cone (конус). В окне менеджера Attributes перечислены настройки деформатора Melt: — Strength — задает степень расплавления в процентах: 0% — объект не расплавлен, 100% — объект расплавлен полностью; — Radius — задает значение радиуса основания виртуального конуса, который бы плавился равномерно; если задать 0 — объект исчезнет, результат плавления при значениях 1, 5, 10 (рис. 2.294— 2.296) показывает уменьшение степени неравномерности оплавления у основания конуса при увеличении значения параметра Radius; — Vertical Randomness (вертикальная составляющая степени хаотичности) и Radial Randomness (горизонтальная составляющая степени хаотичности)
— Noise Scale — задает степень неровности поверхности расплавления. Если сделать активным объект Cone (конус) и перейти на вид сбоку, то можно увидеть расположение деформатора на конусе (рис. 2.300).
задают неравномерность плавления по высоте объекта в процентах. Для конуса заметно влияет параметр Radial Randomness: при 0% «пятно расплава» у основания имеет больший диаметр, чем при 100% (рис. 2.297—2.298); — Melted Size — характеризует и изменяется от 100 до 1000 в условных процентах (рис. 2.299);
Для большей наглядности анимируйте самостоятельно параметр Strength (вызовите контекстное меню, щелкнув правой кнопкой по имени параметра, выберите Animation -> Add KeyFrame, слева от имени появится красная точка, передвигайте бегунок шкалы анимации, устанавливая кадры, меняйте значение параметра и каждый раз задавайте ключевой кадр Animation -> Add KeyFrame) применительно к персонажу Zygote Man. Учтите, что Zygote Man надо поднять по оси 0Y на 200 м (при размерах Zygote Man, принятых по умолчанию), а инструмент Melt опустить по оси 0Y настолько же, чтобы значок Melt находился у подошв Zygote Man (рис. 2.301).
Инструмент Polygon Reduction (уменьшение количества полигонов) Позволяет понижать количество полигонов любого геометрического объекта, созданного в результате моделирования в Cinema 4D. Наличие избыточных полигонов увеличивают время расчета анимации и требуют дополнительных ресурсов. Создадим объект Hyper NURBS и применим к нему Polygon Reduction, расположив иерархию, как показано на рис. 2.302. На рис. 2.303 приведено окно менеджера атрибутов с перечнем свойств деформатора Polygon Reduction. Reduction Strength — задает степень снижения исходного количества полигонов объекта. Выражается в процентах от несходного количества полигонов. Для Reduction Strength = 10% результат приведен на рис. 2.304. Слева объект представлен в полигональном виде, справа — после рендеринга. Для Reduction Strength = 90% результат приведен на рис. 2.305. Mesh Quality — задается количество проверок на разрывы и перекрытия полигональной сетки. Может принимать значения от 0 до 2000. Оптимальное значение 1000. Co-Planar Optimization — при установке флажка задается специальный быстрый метод оптимизации областей, полигоны которых лежат на одной плоскости (компланарных областей).
Boundary Curve Preservation — установка флажка предотвращает разрушения на границах криволинейных объектов в результате сокращения количества полигонов. Polygon Quality Preservation — установка флажка включает программу проверки поверхности на наличие длинных треугольных полигонов (треугольников с внутренним углов < 15°) и устранение их. Инструмент деформации Shatter (дробление) В отличие от взрыва, в результате данной деформации осколки не разлетаются во все стороны, а осыпаются на плоскость основания, характер распределения по которой задается параметрами деформатора. Создайте примитив Cube (Куб) и подобъект деформатор Shatter (дробление) (рис. 2.306). Задайте произвольное число полигонов (сегментов), на которые разбита поверхность куба. Для этого сделайте активным объект Cube и в окне менеджера Attributes задайте значения для параметров SegmentsX, SegmentsY SegmentsZ (рис. 2.307). Количество осколков, на которые распадается объект, соответствует количеству сегментов. Рассмотрим основные параметры деформатора Shatter (рис. 2.308). Strength — задает степень завершенности процесса дробления. На рисунке приведена последовательность стадий дробления в зависимости от значения параметра Strength: Angle Speed — задает угол закрутки осколков в конце процесса; End Size — задает окончательный размер осколков;
Randomness — задает отклонения размеров и угла закрутки отдельных осколков. Инструмент деформации Shear (сдвиг) Инструмент позволяет производить сдвиг части объекта. Создайте в качестве исходного объекта примитив Cylinder (цилиндр) и выберите в главном меню инструмент Shear. Расположите в окне менеджера Objects так, чтобы инструмент Shear оказался подобъектом по отношению к Cylinder (рис. 2.310). Для точной настройки параметров деформатора служит окно менеджера Attributes (рис. 2.311). Size — задает размеры контейнера деформатора; Mode — задает режим деформации (аналогично деформатору Bend, см. выше); Strength — задает силу сдвига; Angle — задает величину угла между осью 0Х и направлением сдвига; Curvature — задает кривизну сдвига; Fillet — задает режим сглаживания верхней и нижней частей деформируемого объекта. Произведем сдвиг средней части цилиндра (рис. 2.312). Для подготовки объекта уменьшим высоту контейнера деформатора так, чтобы он охватывал среднюю часть цилиндра. Воспользуемся счетчиком по оси 0Y параметра Size в окне менеджера Attributes (рис. 2.313).
Далее можно изменять значения параметра Strength (рис. 2.314). Чтобы увидеть работу параметра Angle, развернем проекцию с помощью инструмента поворота (в правом верхнем углу окна проекции), создав вид сверху (рис. 2.315). В правой части рисунка приведена схема расположения осей. Начнем увеличивать значение параметра Angle, следя за изменениями в положении верхней части деформируемого объекта (рис. 2.316). Видно, что верхняя часть, образовавшаяся за зоной сдвига, вращается против часовой стрелки в плоскости XZ. Параметр Angle можно использовать при анимации вращения части искривленного объекта. Для работы с деформатором Sheare в интерактивном режиме служит ручка управления оранжевого цвета. Удаляя точку от вертикальной оси увеличиваем силу сдвига Strength.
Инструмент деформирования Spherify (придать форму сферы) Как следует из названия, данный инструмент придает деформируемому объекту вид сферы. Сам инструмент имеет вид трех орбит
Попытаемся придать пирамиде вид сферы. Расположим в окне объектов имена деформатора и пирамиды, как показано на рис. 2.318. Для получения сферической формы пирамида должна быть разбита на значительное количество сегментов. На рис. 2.319 приведены результаты применения деформатора Spherify к пирамиде с различным числом сегментов разбиения Segments для параметра Strength = 10%.
Инструмент деформирования Spline Deformer (сплайновый деформатор)
синего цвета с ручками управления. Управляющими параметрами являются радиус орбит (Radius) и сила воздействия (Strength) (рис. 2.317).
Данный инструмент деформирует объект, используя два сплайна: исходный и целевой (модифицирующий). Деформатор сравнивает расположение и форму двух сплайнов и согласно этому деформирует объект. Деформируем объект Plane. Создадим примитив Plane. Исходный сплайн должен лежать в плоскости деформируемого объекта. Для плоского объекта надо перейти в окно проекций на соответствующую плоскость. (Случай объемного объекта будет рассмотрен ниже). Нажмите клавишу F2 и на плоскости ZX, совпадающей с плоскостью расположения примитива Plane, нарисуйте, используя, например, инструмент Freehand (Objects -> Create Spline -> Freehand), исходный сплайн (рис. 2.320). Расположение исходного сплайна должно согласовываться с расположением второго целевого сплайна, являющегося ориентиром-целью деформации. Если мы хотим создать возвышения, то целесообразно нарисовать второй сплайн в плоскости XY над первым сплайном. Обратите внимание, первый сплайн должен находиться в плоскости объекта, а второй располагается вне объекта (поверхность объекта будет тянуться к нему как к цели). Нажмите функциональную клавишу F4, перейдите на плоскость XY и нарисуйте второй сплайн. Он будет располагаться в плоскости, перпендикулярной плоскости расположения первого сплайна.
В результате должна получиться примерно следующая картинка (рис. 2.322). Вызовите деформатор Spline Deformer и расположите его в окне менеджера объектов на уровень подобъекта по отношению к объекту Plane (рис. 2.323). Для удобства переименуйте исходный и целевой сплайны соответственно. В окне менеджера объектов выделите Spline Deformer. На рис. 2.324 приведено окно менеджера атрибутов с параметрами деформатора Spline Deformer на вкладке Object.
Перетащите в поле Original Spline имя исходного сплайна Исходный из окна менеджера объектов, а в поле Modifying Spline — имя целевого сплайна Целевой (рис. 2.325). Как только будут перетащены имена сплайнов, возникнет изображение, приведенное на рис. 2.326.
С помощью инструмента поворота ( ) окна проекций загляните на полученную модель снизу, чтобы сопоставить расположение исходного сплайна и полученных деформационных возвышений (рис. 2.327). Как видно, исходный сплайн задает путь, по которому следует область деформации объекта. Рассмотрим назначение параметров деформатора, приведенных в окне менеджера атрибутов. B-Spline Approximation — если сплайны типа BSpline, то можно регулировать степень разбиения сплайна. Radius — задает поведение деформируемой поверхности в области изгибов сплайна. Для сравнения на рис. 2.328 представлены деформации для разных значений Radius. Флажок Use Length — если сплайны имеют разное количество точек, следует поставить этот флажок. Точки будут перераспределены с тем, чтобы результирующая деформация получилась
максимально точной. Флажок Full Polygons — позволяет при построении деформации учитывать не только точки, но и все полигоны. Shape — позволяет использовать график с управляющими точками для влияния на окончательную форму деформируемого объекта. Точки расставляются на координатной сетке произвольно и перемещаются мышью. Для иллюстрации влияния на форму деформации положения точек на графике, на рис. 2.332 представлено исходное состояние объекта, а на рис. 2.333, 2.334 измененное в зависимости от выбранных точек (указаны стрелками) и их положения.
Инструмент деформации Spline Rail (сплайновые направляющие) Служит для деформации объектов по сплайнам в количестве от 2 до 4-х. Сплайны могут ограничивать
Создаем примитив Cube, который будем деформировать, сам деформатор Spline Rail и размещаем их в окне менеджера объектов, как показано на рис. 2.336. Перетаскиваем имена сплайнов в поля Z Spline Left и Z Spline Right. Перемещайте контейнер деформатора Spline Rail. При встрече с плоскостью сплайнов примитив Cube будет деформироваться в ленту (рис. 2.337). Инструмент деформации Taper (сужение) Инструмент позволяет сузить или расширить часть исходного объекта. Создадим в качестве исходного объекта примитив Cylinder (цилиндр). В главном меню выберем Objects > Deformation -> Taper. В окне менеджера Objects разместим деформатор Taper
область деформации слева/справа и сверху/снизу. В первом случае сплайны должны располагаться в плоскости XY, а во втором случае в плоскости YZ. На плоскости XY создадим 2 сплайна (рис. 2.335). Это будут сплайны, задающие левую и правую границы деформации объекта, при его перемещении вдоль оси 0Z.
как подобъект по отношению к объекту Cylinder (рис. 2.339). Параметры деформатора собраны в окне менеджера Attributes (рис. 2.340): Size — задает размер контейнера деформатора; Mode — задает режим деформации (подробные пояснения см. деформатор Bend); Strength — задает силу и направление деформации; при положительных значениях (до определенной величины) верхняя часть объекта суживается (рис. 2.341), а при отрицательных — расширяется
(рис. 2.342). При больших положительных значениях можно добиться возникновения сужения в произвольной точке по высоте объекта (рис. 2.343); Curvature — задает кривизну сужения; Fillet — задает наличие скругления в верхней и нижней частях деформируемого объекта. На рис. 2.344 приведен один и тот же объект слева с включенным параметром Fillet, справа — с выключенным.
Инструмент деформации Twist (кручение) Инструмент служит для закручивания исходного объекта вокруг вертикальной оси. В качестве исходного объекта создадим, например, примитив Cube (куб), а в главном меню выберем Objects -> Deformation -> Twist. В окне менеджера Objects разместим деформатор Twist как подобъект исходного объекта Cube (рис. 2.345).
Деформировать объект можно в интерактивном режиме с помощью ручки управления оранжевого цвета, перемещая точку вправо/влево (рис. 2.346) либо изменяя настройки в окне менеджера Attributes (рис. 2.347). — Рассмотрим настройки инструмента Twist: Size — задает размер габаритного контейнера по трем осям;
Mode — задает один из трех возможных режимов деформации: Limited, Within Box и Unlimited, характер действия которых аналогичен инструменту Bend, рассмотренному выше; Angle — задает значение угла закрутки.
Инструмент деформации Wind (ветер) Инструмент позволяет получить колебания поверхности, расположенной в плоскости XY в результате воздействия силы ветра, «дующего» вдоль оси 0Х. В качестве исходного объекта возьмем примитив Plane (плоскость). Чтобы расположить объект в плоскости XY, выберем значение параметра Orientation, равным +Z (рис. 2.349), что ориентирует нормаль к поверхности вдоль оси 0Z (рис. 2.350). В главном меню выбираем Objects -> Deformation > Wind и размещаем деформатор Wind в окне менеджера Objects как подобъект объекта Plane (рис. 2.351). В результате в окне проекций возникает картинка развевающегося прямоугольного куска материи (рис. 2.352). С помощью ручек управления можно управлять величиной амплитуды волн Amplitude (ручка, направленная вдоль оси 0Z) и длины волны в направлениях X и Y (ручка, направленная вдоль оси 0Х). Для тонкой настройки служат параметры, собранные в окне менеджера Attributes (рис. 2.353). Amplitude — задет амплитуду основной волны, распространяющейся вдоль оси ОХ; Size — задает длину основной волны;
Frequency — задает скорость распространения основной и дополнительной волны; Turbulence — задает параметры дополнительной поперечной волны, распространяющейся вдоль оси 0Y (рис. 2.354); Fx — задает количество волн в направлении оси 0Х; на рис. 2.355 значение параметра Fx равно 4; Fy — задает количество волн в направлении оси 0Y; на рис. 2.356 значение параметра Fy = 4;
Flag — позволяет сделать неподвижными все точки «развевающейся» плоскости, лежащие в плоскости YZ осей координат деформатора. На рис. 2.357 показано, где надо разместить координатные оси деформатора для получения развевающегося флага. Деформатор Wind анимирован, то есть вы можете просмотреть анимацию развевающегося флага, щелкнув на соответствующих кнопках панели управления анимацией (рис. 2.358).
Инструмент деформирования Wrap (обертка) Инструмент позволяет обернуть деформируемый объект вокруг цилиндрической или сферической поверхности. В качестве объекта выберем примитив Cone (конус), создадим деформатор Wrap и расположим его на иерархическом дереве окна Objects как подобъект объекта Cone (рис. 2.359). Деформатор состоит из двух поверхностей (с границами синего цвета): одна поверхность плоская, другая — криволинейная. Плоская поверхность будет стремиться расплющить (сузить) объект (при увеличении параметра Width, рис. 2.359). Криволинейная будет стремиться намотать (обернуть) объект на себя (при увеличении параметра Radius, рис. 2.360). Таким образом, параметры Radius и Width задают размеры площадей плоской и криволинейной поверхностей. Изменяя соотношение этих площадей, можно задавать тип деформации объекта. Чем меньше площадь неизогнутой поверхности по отношению к площади криволинейной поверхности, тем большая часть объекта приходится на деформируемой криволинейной плоскости, то есть тем большая часть объекта обвернута вокруг криволинейной поверхности. Тип криволинейной поверхности задается параметром Wrap в окне менеджера Attributes (рис. 2.361) и может быть
Spherical (сферический) или Cylindrical (цилиндрический). Рассмотрим назначение параметров деформатора: — Width — задает ширину плоской поверхности; при уменьшении этого параметра влияние криволинейной поверхности на объект будет увеличиваться. Для регулировки ширины служит также ручка оранжевого цвета (рис. 2.362);
— Height — регулирует высоту поверхностей деформатора (рис. 2.363); можно также воспользоваться оранжевой ручкой манипулятора; — Radius — задает радиус цилиндра или сферы, вокруг которых обворачивается объект; — Wrap — задает тип криволинейной поверхности; — Longitude Start (начальный угол в горизонтальной плоскости) — задает угол в горизонтальной плоскости, от которого начинается деформация объекта, накладываемого на цилиндрическую поверхность (на рисунке данный угол равен 0°); — Longitude End (конечный угол в горизонтальной плоскости) — задает угол в горизонтальной плоскости, по достижении которого заканчивается деформация, накладываемая на цилиндрическую поверхность (на рисунке данный угол равен 180°);
— Latitude Start (начальный угол в вертикальной плоскости) — задает угол в вертикальной плоскости, от которого начинается деформация объекта, накладываемого на сферическую поверхность; — Latitude End (конечный угол в вертикальной плоскости) — задает угол в вертикальной плоскости, на котором заканчивается деформация объекта, накладываемого на сферическую поверхность; — Movement — параметр позволяет закручивать объект вокруг криволинейной поверхности по спирали
в направлении оси 0Y; значение параметра равно шагу витка спирали (рис. 2.364); — Scale Z — задает масштаб по оси 0Z (рис. 2.365); — Tension — задает кривизну криволинейной поверхности деформатора; при значении 0% кривизна становится равной 0 (рис. 2.366), при значении 100% — кривизна максимальная.
2.5. Инструменты моделирования Инструменты моделирования собраны в меню Objects -> Modeling (рис. 2.367), а также на панели инструментов (рис. 2.368).
Инструмент моделирования Array (массив) Инструмент служит для создания копий исходного объекта и расположения их по окружности (в одной плоскости) или в форме пространственной волны. Создайте исходный объект, например, Cube (куб) и инструмент Array (массив). Обратите особое внимание на их расположение на иерархическом дереве в окне менеджера Objects.
Amplitude — задает смещение объектов по оси, перпендикулярной плоскости расположения массива (выше/ниже). На рис. 2.371 приведен пример. Инструмент Array анимирован, и можно запускать просмотр анимации, задав значения параметров Frequency и Array Frequency. Frequency — задает скорость распространения волн по массиву при просмотре анимации. Array Frequency — задает количество волн в массиве. Задайте значение Frequency, равное 5, a Array Frequency — равное 1. На панели управления анимацией щелкните по кнопке начала просмотра (рис. 2.372). Появится катающееся на ребре кольцо. Измените значение Array Frequency, например, на 3. Цельность исчезнет, составляющие массив кубы будут подпрыгивать каждый сам по себе. Используйте в качестве объекта модель Zygote Man (Objects -> Object Library) с настройками, приведенными на рис. 2.373, 2.374. Запустите анимацию. Если позволит мощность компьютера, увидите своеобразный танец 5-ти подпрыгивающих мужчин (рис. 2.375).
Объект Cube должен быть подобъектом инструмента Array (рис. 2.369). Сделайте активным инструмент Array. Рассмотрим основные свойства, приведенные в окне менеджера Attributes (рис. 2.370). Radius — задает расстояние, на котором от центра массива расположены объекты; Copies — задает число копий;
Инструмент моделирования Atom Array (атомарный массив) Позволяет размещать сферы произвольного радиуса в вершинах полигонов объектов. По внешнему виду получаемая картинка напоминает атомарные решетки — отсюда и название инструмента моделирования. Создайте исходный объект, например, примитив Cube (куб), и вызовите инструмент Atom Array. Разместите их в иерархическом порядке в окне менеджера объектов, как показано на рис. 2.376. На иерархическом дереве выделите объект куб и в окне менеджера атрибутов задайте по одному сегменту на гранях (рис. 2.377). На иерархическом дереве в окне менеджера объектов выделите инструмент Atom Array. В окне проекций по вершинам куба появятся сферы (рис. 2.378). На рис. 2.379 приведены параметры инструмента Atom Array. Cylinder Radius — задает радиус основания цилиндров, образующих ребра каркаса объекта. Измените значение радиуса цилиндра на 4 единицы и сравните полученный результат с приведенным на рис 2.380. Sphere Radius — задает величину радиуса для сфер, расположенных по вершинам объекта. Измените это значение на 30 и сравните полученный результат с приведенным на рис. 2.381.
Subdivisions — задает количество полигонов на поверхности сфер (размещенных в вершинах объекта).
Флажок Single Elements влияет на Atom Array только в полигональном состоянии. При этом вначале надо поставить флажок Single Elements, а затем перевести объект Atom Array в полигональный вид
(главное меню Functions -> Make Editable). В результате в окне менеджера объектов появится иерархиче-
ское дерево, приведенное на рис. 2.382. Здесь каждая сфера (Point), находящаяся в вершине куба, и каждый цилиндр (Edge), представляющий ребро куба, представлены как отдельные объекты. При этом каждую сферу и каждый цилиндр можно редактировать отдельно, перемещая их и изменяя их параметры (рис. 2.383, 2.384). Сделайте активным объект Cube и увеличьте количество сегментов (в окне менеджера Attributes) до 4 по каждой из осей (рис. 2.385).
На рис. 2.386 приведен полученный результат. На рис. 2.387 приведен результат для куба с числом секторов 12x12x12 при невидимом каркасе. На рис. 2.388 приведен результат, полученный для сферы.
Инструмент моделирования Boole (булевы операции) Применяя операции булевой алгебры к объектам, можно добиться эффектов объединения, исключения, пересечения и вычитания объектов. В результате будут получены новые формы. Создадим два примитива, например, Cube и Sphere. Выберем инструмент моделирования Boole. В окне менеджера Objects разместим примитивы на уровень
подобъектов по отношению к объекту Boole (рис. 2.389). При этом примитивам Cube и Sphere будут автоматически присвоены имена A и В. Логические имена А и B присваиваются объектам в порядке появления их имен на уровнях подобъектов по отношению к объекту Bool (в окне менеджера объектов). Если подобъектов более двух, то логические имена присваиваются только первым двум, а остальные, которые следуют за первыми двумя, имен не получают и не участвуют в логических операциях. Но у подобъектов могут быть и свои подобъекты, которые будут участвовать в логической операции. Например, на рис. 2.390 у объекта B имеются два собственных подобъекта, которые также будут иметь имя B. Таким образом в логической операции будет участвовать под именем В три сферы. Это позволит, например, вырезать в некотором объекте три отверстия. Рассмотрим смысл параметров инструмента Boole, приведенных в окне менеджера Attributes (рис. 2.391).
Boolean Type — задает тип логической операции с объектами, в данном случае с А и В. В списке перечислены следующие логические операции A union В (объединение) — создает из двух объектов (операндов) один цельный объект (рис. 2.392). A subtract В (исключение) — вычитает из объема объекта (операнда) А объем объекта В; объект В исчезает, а на поверхности объекта А строится поверхность, соответствующая поверхности объекта В, закрывая таким образом образующееся отверстие (рис. 2.393). Чтобы в кубе вырезать три отверстия, надо добавить на подуровень логического объекта B еще две сферы (рис. 2.394). С другой стороны, если для объекта A создать несколько подобъектов, то эти подобъекты подпадут под воздействие объекта B, то есть в их телах появятся отверстия от сферы (рис. 2.395). A intersect В (пересечение) — остается лишь тот объем, который совпадает при пересечении объектов А и В (рис. 2.396).
Инструмент моделирования Instance (экземпляр) Инструмент позволяет создавать копии исходного объекта. Почти все параметры исходного объекта и примененные к нему деформаторы наследуются копиями. При изменении параметров исходного объекта автоматически соответствующим образом изменяются параметры копий. Копии не наследуют положение, масштаб и ориентацию оригинала. Создайте исходный объект, например, примитив Sphere. При выделенном примитиве Sphere, в главном меню выберите Objects-> Modeling -> Instance. Копия создана. Чтобы ее увидеть, надо сдвинуть исходный объект в сторону (рис. 2.398). В окне менеджера Attributes на закладке Basic в поле Name указано имя копии Instance. Имя исходного объекта приведено в том же окне, но на закладке Object (рис. 2.399). Второй способ создания экземпляра заключается в создании пустого экземпляра с последующим перетаскиванием имени нужного объекта из окна менеджера объектов в поле Reference Object (рис. 2.400). Для создания пустого экземпляра либо не должно быть выделено ни одного объекта, либо должно быть выделено более одного объекта (если
A without В — операция, аналогичная операции subtract, с той разницей, что на месте расположения объекта В поверхность не строится и в объекте А остается отверстие (рис. 2.397).
Создадим три примитива — сферы и расположим их, как показано на рис. 2.403. Вызовем инструмент Metaball и расположим (в окне менеджера объектов) три сферы на уровень подобъектов по отношению к Metaball (рис. 2.404). Возникнет оболочка, покрывающая три сферы (рис. 2.405). Настройка параметров инструмента Metaball производится в окне менеджера Attributes (рис. 2.406) Hull Value — задает плотность облегания оболочкой объекта; чем выше значение, тем плотнее оболочка облегает объект или группу объектов (рис. 2.407). Это происходит по следующей причине. Параметр Hull Value задает размер сфер (метаболов), расположенных в вершинах объекта. Чем выше значение Hull Value, тем меньше размер сфер (метаболов) и тем слабее они взаимодействуют (притягиваются) друг с другом (по умолчанию сила притяжения сфер друг к другу обратно пропорциональна квадрату расстояния между сферами). Поэтому оболочка плотнее облегает каркас объекта и дальше отходит от своей первоначальной сферической формы. Чем ниже значение Hull Value, тем больше размер сфер в вершинах объекта, тем они сильнее взаимодействуют друг с другом, сливаясь в единую сферу, окружающую объект. Сказанное иллюстрируется примером с кубом (рис. 2.408, 2.409). Editor Subdivision — задает число, характеризующее размер элемента, на которые разбивается поверхность оболочки при ее отображении в режиме редактирования.
выделен один объект, создастся его копия). Создадим экземпляр куба и применим к оригиналу деформатор, например, Bulge. На экземпляре (рис. 2.401) также появится контейнер деформатора Bulge (который будет повторять действия деформатора на оригинале), в то время как в окне менеджера объектов показан только один деформатор (рис. 2.402).
Инструмент моделирования Metaball (метабол) Инструмент можно рассматривать как оболочку, которую можно натянуть на отдельные объекты и на их комбинации. Вызывается инструмент из главного меню Object -> Modeling -> Metaball.
наковых условиях, на левом рисунке экспоненциальное ослабление включено, на правом рисунке — отключено. При увеличении числа вершин (при увеличении числа полигонов, на которые разбивается поверхность объекта) количество метаболов соответственно увеличивается. Если в рассматриваемом примере увеличить разбиение граней куба до 3x3x3 (на рис. 2.412 SegmentsX = 3, SegmentsY = 3, SegmentsZ = 3), то можно получить интересный эффект возникновения сферической оболочки при сбрасывании флажка Exponential Falloff (рис. 2.412). На рис. 2.413 приведен пример применения инструмента Metaball к сплайну. Можно использовать несколько сплайнов. При определенных соотношениях между значениями Hull Value и расстояниями между сплайнами создаваемые оболочки могут сливаться и создавать новую форму (рис. 2.414). При Hull Value = 22% получится нерегулярная объемная форма, которую можно использовать для моделирования, например, клубня картофеля (рис. 2.415). Если задать большое значение, например, Hull Value = 300%, то можно получать трубообразные формы со сглаженной поверхностью. На рис. 2.416 приведен пример получения из сплайнового примитива Спираль
Чем меньше это число, тем меньше размер элементов, тем больше их количество и тем более гладкой выглядит поверхность (рис. 2.410). Render Subdivision — устанавливает число разбиений оболочки при визуализации. Exponential Falloff — задает экспоненциальный закон ослабления силы притяжения метаболов друг к другу (по умолчанию предусмотрен линейный закон притяжения). На рис. 2.411 показан момент зарождения оболочки для объекта Cube (куб). Оболочка возникает на основе восьми метаболов. При прочих оди-
(Helix) пружины, а на рис. 2.417 — элементов узоров на основе B-Spline На рис. 2.418, 2.419 приведен результат применения Metaball для двух пирамид, что дает также интересную форму.
Инструмент моделирования Symmetry (зеркальное отражение) Инструмент позволяет создавать зеркальную (симметричную) копию объекта. То есть можно создать половину объекта, а затем достроить его, зеркально отразив относительно одной из трех плоскостей XY, YZ или XZ. Создадим исходный объект, например, примитив Sphere. Деформируем его поверхность. Для этого щелкнем по кнопке Make Object Editable (на левой вертикальной панели инструментов ) и затем на той же панели инструментов по кнопке Use Polygon Tool ( ). Цвет полигональной сетки на поверхности объекта должен измениться на зеленый. Выделим один полигон и переместим его, как показано на рис. 2.420. Щелкните по кнопке Use Model Tool ( ) и передвиньте объект в сторону от центра координат. Выберите инструмент Symmetry в меню Object-> Modeling -> Symmetry. В окне менеджера Objects расположите объект Sphere как подобъект инструмента Symmetry (рис. 2.421). Как только вы это сделаете, в окне проекций возникнет зеркальное отражение исходного объекта. То, что изображение зеркальное, можно удостовериться по расположению деформированного участка поверхности (рис 2.422).
Настройка параметров инструмента Symmetry производится в окне менеджера Attributes (рис. 2.423). Mirror Plane — задает плоскость, относительно которой производится зеркальное отражение объекта (XY, YZ, ZX). Weld Points — позволяет получить бесшовное соединение пересекающихся поверхностей объекта и его зеркального отражения. Tolerance — задает значение радиуса, в пределах которого точки на линии пересечения поверхностей будут слиты; задайте самое большое значение этого параметра, и объекты сколются в плоскость. Symmetric — перемещает точки, несколько отстоящие от линии симметрии, непосредственно на нее. Инструмент Symmetry особенно полезен, когда создается симметричный объект, например, лицо. В этом случае можно создать одну половину, а для создания второй — зеркально отразить первую. Создайте сферу, преобразуйте ее в полигональный вид и активизируйте инструмент Use Point Tool. Выберите инструмент выделения Rectangle Selection и в окне менеджера атрибутов сбросьте флажок Only Select Visible Elements (рис. 2.424). Это делается, чтобы при выделении были выделены точки и на противоположенной (невидимой) стороне сферы. Перейдите в окно проекций YX (клавиша F4), выделите рамкой левую половину сферы (не захватывая точки на оси) и нажмите клавишу Delete. Правая половина сферы будет удалена (рис. 2.425). При выделении правой половины сферы точки на центральной оси сферы оставляйте не захваченными прямоугольником выделения.
На рис. 2.430 приведен результат. Аналогично можно достраивать симметричные наполовину построенные изображения. Примените к полученному сплайну инструмент Меtaball и выполните рендеринг изображения (рис. 2.431). Перейдите в окно проекций Perspective (F1) и деформируйте каким-либо образом полусферу (рис. 2.426). Примнем инструмент Symmetry (рис. 2.427). Инструмент применим также к сплайнам. Перейдем в окне проекций на плоскость XY и создадим сплайн, изображающий левое крыло (рис. 2.428). Вызовем объект Symmetry и расположим сплайн Spline в окне менеджера объектов на уровень подобъекта по отношению к Symmetry (рис. 2.429). Зададим плоскость симметрии ZY.
Инструмент Construction Plane По умолчанию в окне проекций присутствует рабочая плоскость (в виде решетки) глобальной системы координат. Как следует из названия, эта рабочая плоскость не может сдвигаться и вращаться, так как ее расположение является эталоном и началом отсчета координат. При вызове инструмента Construction Plane рабочая плоскость глобальной системы координат отключается
и вместо нее появляется другая рабочая плоскость со своей мобильной системой координат. Эта плоскость может перемещаться и вращаться (рис. 2.432). На рис. 2.433 приведены параметры инструмента Construction Plane. Type — задается плоскость, в которой лежит сетка. Grid Spacing — задается расстояние между линиями. Lines — задается общее количество линий сетки. Major Lines Every — задается частота основных линий сетки Construction Plane (основные линии темнее
промежуточных). Если задать, например, 3, то каждая третья линия будет основной.
Глава 3. Анимация В программе Cinema 4D существует множество способов создания анимации. Как уже говорилось, анимационный ролик строится на основе ключевых кадров, создаваемых пользователем программы, а промежутки между ключевыми кадрами заполняются изображениями, автоматически дорисованными программой Cinema 4D. В этой главе, разбирая назначение и структуру панели инструментов Animation, окна Timeline (Хронограф) и F-кривых, рассмотрим 4 основных способа создания анимации: — с помощью кнопки записи ключевых кадров; — с помощью кнопки автоматической записи ключевых кадров; — посредством анимации параметров в окне менеджера атрибутов объекта; — с помощью окна Timeline (Хронограф). В других главах, например, «Модуль Dynamics», «Модуль МОССА», будут рассмотрены другие способы анимации объектов.
3.1. Работа с панелью инструментов Animation Выберите режим компоновки рабочего окна Animation. Для этого щелкните по кнопке Revert to Default Layout и выберите
в появившемся меню пункт Animation (рис. 3.1). На рис. 3.2 приведен вид компоновки Animation. Рассмотрим назначение элементов панели инструментов Animation (рис. 3.3). Current Time Marker — маркер (ползунок) текущего времени, служащий для перехода от кадра к кадру; номер текущего кадра указывается на маркере (на рис. 3.3 указан нулевой кадр 0F, где F сокращение от Frame — кадр); в правой части строки прокрутки указывается общее число кадров (по умолчанию 90). Чтобы изменить общее количество кадров, войдите в главное меню Edit -> Project Settings и в диалоговом окне Project Settings задайте новое значение параметра Maximum. — кнопки перехода к началу анимации (для перехода на нулевой кадр можно использовать сочетание двух клавиш Shift+ G) и к концу анимации
(для перехода на последний кадр можно использовать сочетание клавиш Shift+ F). — кнопки перехода к предыдущему (или клавиша F) и последующему кадру (или клавиша G). кнопки просмотра анимации в обратном (или клавиша F6) и прямом (или клавиша F8) направлениях.
ровать, например, вращение, то следует отжать соответствующую кнопку на панели анимации.
— кнопка останова просмотра анимации на текущем кадре (или клавиша F7). кнопка включения и отключения звука в анимации.
вых кадров ), если кнопка инструмента на панели анимации не активизирована. На запись ключевых кадров для инструментов Move (перемещение) и Rotate (вращение) при любом режиме записи не влияет.
— Record Position, Scale, Rotation and PLA for Active Objects (PLA — point level animation — анимация точек (вершин) полигонов, на которые разбита поверхность объекта) — кнопка записи ключевых кадров (можно использовать функциональную клавишу F9). Каждый щелчок левой кнопкой мыши по кнопке позволяет записывать в ключевой кадр изменения положения, масштаба, углов поворота и PLA параметров выделенного объекта.
— Turn On/Off Point Level Animation for Record — кнопка позволяет включать (в утопленном состоянии) и отключать режим записи анимации на уровне вершин полигональных сеток объектов (режим PLA); например, для записи перемещения одного из полигонов вдоль оси 0Х выполните следующие действия: — создайте примитив Cube (куб) и задайте по 4 сегмента на его ребрах (рис. 3.4);
— Turn On/Off Parameter for Record — кнопка позволяет включать (в утопленном состоянии) и отключать (в отжатом состоянии) запись ключевых кадров при работе с инструментом Scale Tool (масштабирование) в режиме автоматической записи ключе-
— Automatic Keyframing — кнопка автоматической записи ключевых кадров (можно использовать сочетание двух клавиш Ctrl F9). Достаточно один раз щелкнуть по этой кнопке и для создания ключевых кадров остается лишь изменять параметры выделенного объекта и перемещать маркер (ползунок) текущего времени. При включении данного режима вокруг окна проекции появляется рамка красного цвета, а в окне менеджера Attributes названия анимируемых параметров окрасятся в красный цвет — Set Selection Object for Keyframing — позволяет выбрать объект, которому будет присвоены записанные ключевые кадры. При активном пункте Active Elements ключевые кадры присваиваются объекту, выбранному в окне менеджера объектов. — кнопки, определяющие параметр (перемещение, масштабирование и вращение), изменения которого будут записаны в ключевые кадры. Значки аналогичны значкам инструментов на горизонтальной панели инструментов окна проекций. Если на горизонтальной панели инструментов выбран, например, инструмент Move (перемещение), а на панели анимации его кнопка не активизирована (не утоплена), то в ключевых кадрах вращение объекта не запишется. Кроме того, при записи ключевых кадров должен быть включен режим Use Object Tool . Особенно это касается записи масштабирования объекта, так как в этом режиме масштабируются его оси. Если будет включен ражим Use Model Tool, то масштабироваться будет поверхность объекта и в ключевые кадры масштабирование не запишется. Следует обратить внимание, что если на панели анимации кнопка некоторого параметра утоплена, а параметр не изменяется, то программа все равно создает кадры с записью этого параметра, несущие ненужную информацию, которая будет обрабатываться при воспроизведении анимации и расходовать ресурса компьютера. Поэтому если не планируется аними-
— переведите куб в полигональное состояние (щелкните по кнопке Make Object Editable клавише C (лат.));
или по
— выберите инструмент Use Polygon Tool ; — на панели инструментов Animation щелкните по кнопке Turn On/Off Point Level Animation for Record
;
— выберите инструмент Move Tool ; — поставьте маркер текущего времени, например, на 22 кадр, в котором хотите записать ключевой кадр; — выделите полигон на боковой грани и переместите его, например, вдоль оси 0Х; — щелкните по кнопке Record Position , создав тем самым ключевой кадр в кадре 22; — переместите полигон далее и повторите действия по созиданию следующих ключевых кадров (рис. 3.5);
— воспроизведите анимацию. Аналогичным образом можно анимировать перемещение вершине — Set Playback Rate to Project Settings позволяет задавать скорость просмотра анимации и тип интерполяции Default Interpolation (для создания плавного движения), Custom Interpolation и Edit Interpolation между ключевыми кадрами (то, как компьютер «дорисовывает» изображение между ключевыми кадрами) (рис. 3.6). Чтобы контекстное меню появилось и не исчезало, не отпускайте сразу левую кнопку мыши после нажатия. Активизация пункта All Frames позволяет проигрывать все кадры анимации. Если пункт не активирован и компьютер оказывается недостаточно мощным для
Помимо работы с инструментами вручную (перетаскивая с помощью мыши в окне проекций при активном инструменте), параметры перемещения (Р.Х, P.Y, P.Z), масштабирования (S.X, S.Y, S.Z) и вращения (R.H, R.P, R.B) можно настраивать более точно в окне менеджера атрибутов через соответствующие счетчики (рис. 3.8).
3.2. Работа с окном Timeline (Хронограф) Чтобы открыть отдельно окно Timeline, выберите в главном меню Window -> Timeline или нажмите две клавиши Shift F3 (рис. 3.9). Создайте объект, например, примитив Cube, анимируйте его и откройте окно хронографа. Горизонтальные линии называются треками. Они содержат ключевые кадры, обозначенные прямоугольниками, и соединяющие их линии, называемые последовательностями. Если щелкнуть на значке + слева от имени трека, то в треке будет выведена также F кривая, которая задает характер интерполяции между ключевыми кадрами. Если сцена содержит много объектов, которые можно сгруппировать по каким-либо функциональным признакам, то это удобно сделать, пользуясь слоями. Предусмотрено 8 слоев. В слой можно поместить ключевые кадры, группу объектов или отдельный объект. анимации всех кадров, то часть кадров будет пропущена. Активация пункта Project (рис. 3.6, слева) позволяет проигрывать анимацию со скоростью Frame Rate, заданной в диалоговом окне Edit -> Project Settings (рис. 3.7, слева). Если выбраны другие скорости, то пункт Project дезактивируется и галочка появляется напротив цифр выбранной скорости (рис. 3.6, справа).
Некоторые из рассмотренных выше функций можно реализовывать также через пункты главного меню Animation (рис. 3.7, справа).
Слой вместе с содержащимися в нем объектами и их треками можно отключить, что освободит пространство в окне Timeline. Каждому слою приписан свой цвет (рис. 3.10). Для включения/отключения изображения слоя в окне временной шкалы предусмотрены кнопки в форме глаз. При щелчке по кнопке меняется изображение
глаза с открытого на закрытое, а слой становится невидимым. Находящиеся ниже кнопки в виде замка (рис. 3.10) позволяют блокировать доступ к находящимся в слое объектам для их выделения и редактирования. При щелчке по значку замка он запирается.
При создании объектов, например, примитивов, они автоматически записываются в слой, обозначенный серым цветом (крайний слева) (рис. 3.10). Чтобы записать объект в какой-либо другой слой, надо выделить этот объект и либо в меню Layer (окна Timeline) в пункте Color Selection выбрать номер слоя (рис. 3.11), либо, удерживая клавишу Ctrl, щелкнуть по соответствующему цветному прямоугольнику слоя. Выделить объект можно не только в окне проекций, но и в списке объектов, приведенном слева в окне Timeline. Создайте три объекта-примитива: Cone (конус), Sphere (сфера) и Cube (куб). По умолчанию они будут помещены в первый слой, обозначенный серым цветом (Layer 1) (рис. 3.12). Щелкните по кнопке с изображением глаза для первого слоя. Изображение
открытого глаза заменится на изображение закрытого, и имена трех объектов исчезнут из окна Timeline. Щелкните по изображению закрытого глаза и верните три объекта в окно Timeline. Запишите Sphere в четвертый слой (розовый). Чтобы проверить, находится ли объект Sphere в четвертом слое, с помощью
значка «глаз» отключите этот слой — имя Sphere должно исчезнуть из списка. Видимость слоя (а также его запертость), например, слоя Layer 1, можно задавать и через меню Layer -> Toggle Layer -> Layer 1 (рис. 3.13). Повторный вызов возвращает слою видимость и открывает его для редактирования.
Пункт меню Layer -> Solo Layer -> Layer 1 устанавливает номер единственного слоя, который будет открыт и не заперт. Чтобы установить открытость и незапертость для всех слоев, выберите пункт All Layers > Visible. Справа от группы кнопок управления слоями находится временная шкала (рис. 3.12), отградуированная в зависимости от настроек в кадрах, в секундах или в единицах SMPTE (минуты:секунды:кадры). Настроить размерность можно в диалоговом окне Edit -> Preferences (рис. 3.14). На временной шкале предусмотрено три типа цветных маркеров. Маркер синего цвета указывает номер текущего кадра анимации. Бегунок на панели Animation (маркер текущего времени) синхронно перемещается, указывая тот же номер кадра. Два маркера зеленого цвета задают начальный и конечный кадры области предварительного просмотра (Preview Range), которая также окрашена в зеленый цвет (рис. 3.15). Если в меню выбрать Animation -> Play Mode -> Preview Range (рис. 3.16), то из всей анимации можно будет просматривать только кадры, входящие в эту область. Также эту область можно использовать для редактирования треков, например, удаления части последовательности.
По умолчанию создается 9 треков (по три на каждый анимируемый параметр Move, Scale и Rotate). Исходная информация для этих треков может задаваться и храниться в окне менеджера атрибутов на вкладке Coord под именами Р.Х, P.Y и P.Z для параметра Move, под именами S.X, S.Y и S.Z для параметра Scale и под именами R.H, R.P и R.B для параметра Rotate (рис. 3.20). Треки можно создать также через контекстное меню New Tracks -> Parameter, вызываемое щелчком правой кнопкой мыши по области
Новые пользовательские маркеры можно создавать через меню File -> New Marker или через пункт New Marker контекстного меню, вызываемого щелчком правой кнопкой мыши по временной шкале окна Timeline. В диалоговом окне (рис. 3.17) задается номер кадра, на который предполагается установить маркер, его имя и номер слоя (и, соответственно, цвет маркера), которому маркер будет принадлежать. По умолчанию маркеры создаются во втором слое и имеют желтый цвет. Создавать маркеры можно также, щелкая в нужном месте на временной шкале при нажатой клавише Ctrl. Чтобы удалить созданный маркер, прижмите левой кнопкой мыши ту его часть, которая находится на оцифрованной временной шкале и, не отпуская кнопки мыши, перетащите за пределы временной шкалы (при этом курсор принимает вид мусорного бачка). Чтобы удалить сразу все созданные маркеры, выберите пункт меню Edit -> Delete All Markers. Справа от списка объектов расположена область треков. Трек создается автоматически при создании первого ключевого кадра для какого-либо параметра Содержимым трека является последовательность и ключевые кадры. Последовательность имеет вид полоски, цвет которой соответствует цвету слоя, которому принадлежит анимируемый объект (рис. 3.18). Переместите объект в другой слой и убедитесь, что цвет трека изменился соответствующим образом. Количество треков соответствует как минимум количеству выбранных на панели Animation параметров (то есть для каких параметров включены кнопки, рис. 3.19).
списка объектов окна Timeline (рис. 3.21). В этом случае кроме трех упомянутых параметров можно анимировать многие другие, содержащиеся в списках параметров Object и Basic окна менеджера атрибутов (рис. 3.22). Сравните список параметров, приведенный на рис. 3.21 и 3.22. Таким образом, анимации подлежат многие параметры, приведенные в окне менеджера атрибутов. Как было упомянуто, имеются 4 основных способа создания анимации (помимо остальных, которые будут рассмотрены далее): с помощью кнопки записи ключевых кадров, с помощью кнопки автоматической записи ключевых кадров, с помощью выделенных параметров в окне менеджера атрибутов (было рассмотрено в главе о моделировании) и в окне хронографа Timeline. Рассмотрим этот последний способ. Откройте окно хронографа, создайте примитив, например, Cube, разместите его имя в окне хронографа, щелкните правой кнопкой по имени и из контекстного меню выберите параметр, который будете анимировать. Например, перемещение по оси 0Х (рис. 3.23). Удерживая нажатой клавишу Ctrl, щелкните левой кнопкой в любом месте на шкале хронографа — появится маркер красного цвета и в окне менеджера атрибутов будут выведены его свойства (рис. 3.24). Задайте Time 0F и Value 0 (то есть для нулевого кадра перемещение по оси 0Х равно нулю). Еще раз, удерживая клавишу Ctrl, щелкните левой кнопкой по шкале и в окне менеджера атрибутов задайте Time 40F и Value 300 (то есть для 40 кадра куб переместится по оси 0Х на 300 м). Запустите анимацию и убедитесь, что между кадрами 0 и 40 куб переместился на 300 м. Одну последовательность можно разбить на две последовательности, которые разделены зазором. Для этого установите зеленые маркеры на номера кадров, соответствующие левой и правой границам зазора. На рис. 3.25 для трека Position X это кадр 30 и кадр 60. Чтобы выделить один трек (и затем вызвать контекстное меню для трека), в меню Edit поставьте флажки Track Selection и Sequence Selection, а остальные флажки сбросьте.
Затем щелкните правой кнопкой мыши по редактируемому треку и в появившемся контекстном меню выберите пункт Insert Preview Range (вставить диапазон предварительного просмотра). В результате трек разделится на две части (рис. 3.26), общая длина которых равна длине исходного трека. Команду Insert Preview Range можно вызвать также через пункт меню Sequences.
Чтобы вырезать из последовательности участок со всеми записанными в нем ключевыми кадрами, следует выделить вырезаемый участок зелеными маркерами и в контекстном меню (или в меню Sequences) выбрать команду Delete Previous Range (удалить диапазон предварительного просмотра). В этом случае суммарная длина трека будет меньше исходной. Чтобы удалить ненужные участки последовательности, например, образовавшиеся после проведения описанных выше операций (рис. 3.27), примените команду Adjust из меню Sequences или из контекстного меню для данного трека (щелкнув правой кнопкой именно по удаленной части трека). Результат приведен на рис. 3.28.
Для соединения разделенных последовательностей служит команда Connect, которая находится в меню Sequences или в контекстном меню трека. Проверим работу описанных выше инструментов на примере анимации примитива Cylinder (цилиндр). Цилиндр должен взлететь на 500 м вверх и приземлиться на расстоянии 500 м от точки взлета, оставаясь в плоскости YZ. В верхней точке траектории цилиндр должен перевернуться на 180° против часовой стрелки, а затем на нисходящей части траектории развернуться в обратном направлении на 180° и приземлиться на то же свое нижнее основание, с которого взлетел. 1. Создайте примитив Cylinder со следующими параметрами (рис. 3.29).
2. Установите цилиндр основанием на координатную сетку, для чего цилиндр надо переместить по оси 0Y на половину его высоты. Для этого в окне менеджера Attributes установите настройку P.Y = 100 м, контролируя перемещение цилиндра по его проекции «вид сбоку» (рис. 3.30). 3. Убедившись, что маркер текущего времени (бегунок) установлен на 0F (нулевой кадр), создайте первый ключевой кадр, щелкнув по красной круглой кнопке Record Position, Scale, Rotation and PLA for Active Objects на панели анимации (рис. 3.31). В результате в окне менеджера Attributes на закладке Coord рядом с настройками параметров появятся красные точки, означающие, что для этих настроек созданы ключевые кадры (рис. 3.32). 4. Переместите маркер текущего времени на кадр 45 (для точной установки маркера пользуйтесь кнопками покадрового перемещения). Задайте значения настроек P.Y (перемещение вверх по оси 0Y), P.Z (перемещение
в сторону по оси 0Z) и R.P (вращение в плоскости YZ), указанные на рис. 3.33. Значение P.Y = 600 м, так как к 500 м, которые требуется выставить по условию задачи, добавляются 100 м, оставшиеся от операции установки цилиндра основанием на координатную сетку. Значение P.Z =250 м, так как наивысшая точка приходится на половину смещения по оси 0Z. Вращение задается параметром R.P = 180°. Как вы помните из предыдущего материала, параметр R.P (Р сокращение от Pitch) задает угол поворота в плоскости YZ. Чтобы запомнить выставленные настройки в кадре 45, щелкните по круглой красной кнопке Record Position, Scale, Rotation and PLA for Active Objects. 5. Запустите анимацию. Несмотря на то, что мы задали только два кадра (начальное и конечное состояние объекта), программа Cinema 4D рассчитала и дорисовала все промежуточные кадры. Действительно, как это видно на мониторе, вращение цилиндра начинается с первого кадра и равномерно развивается до 45 кадра (рис. 3.34). В наивысшей точке (кадр 45) ось 0Y локальной системы координат цилиндра будет направлена вниз в результате полного поворота цилиндра на 180° (рис. 3.34).
6. Достроим анимацию. Передвинем бегунок на кадр 90 и выставим значения настроек, как показано на рис. 3.35. Чтобы цилиндр приземлился на свое нижнее основание, зададим поворот в обратную сторону, то есть зададим R.P = 0°. Не забудьте щелкнуть по круглой красной кнопке записи ключевых кадров Record Position, Scale, Rotation and PLA for Active Objects. 7. Запустите анимацию целиком. Если объект выделен, то траектория его движения будет показана в виде сплайна (рис. 3.36). 8. Добавим эффект сплющивания цилиндра (по оси 0Y) в наивысшей точке траектории. Для этого отредактируем трек. Установим бегунок на кадр 45 и добавим в окне менеджера атрибутов настройку S.Y = 0.28 (рис. 3.37). Запомним этот кадр, щелкнув по кнопке
анимации была произведена при скорости 30 кадров/с при общем количестве кадров 90). Если же теперь изменять параметр Frame Rate, то автоматически будет изменяться общее число кадров исходя из неизменной общей длительности анимации. Поставьте значение Frame Rate, равное 1, и получите общее количество кадров, равное 3 (рис. 3.40). Обратите внимание на изменение вида траектории — из-за малого количества кадров она не сглажена и состоит из трех прямолинейных участков.
Record Position, Scale, Rotation and PLA for Active Objects. Запустите анимацию. 9. Откроем окно Timeline, на котором представлены 9 треков для каждой настройки анимированных параметров (рис. 3.38). Изменим частоту смены кадров анимации. Для этого вызовем диалоговое окно Project Settings (через главное меню Edit -> Project Settings или нажатием клавиш Ctrl+ D) и изменим значение параметра Frame Rate (рис. 3.39). Обратите внимание, что длительность созданной анимации остается неизменной и равной 3 с (запись
10. Сохраните созданную анимацию (главное меню File -> Save As). Создадим анимацию, в которой цилиндр совершает 2 подскока: первый как в предыдущем примере (без учета изменения масштаба), второй — по такой же траектории, но направленный на 90° вправо. 1. Увеличим количество кадров до 181 (каждый прыжок по 90 кадров). Для этого вызовем окно Edit -> Project Settings и установим параметр Maximum, равный 181. 2. Для первого прыжка используем анимацию из предыдущего примера. 3. Отмасштабируем временную шкалу окна Timeline под 181 кадр (так как теперь у нас не 90, а 181 кадр). Удерживая нажатой клавишу 2, щелкните левой кнопкой мыши в любом месте на временной шкале или в области треков и, не отпуская кнопку мыши, подвигайте мышью влево и вправо. При движении влево расстояния между делениями шкалы уменьшаются (это позволяет увидеть большую часть шкалы и области треков), при движении вправо расстояния между делениями шкалы увеличиваются. Отрегулируйте таким образом, чтобы справа было видно до 181 кадра (рис. 3.41). Так как часть временной шкалы и треков левее кадра 0 не будет использоваться, то целесообразно
ее скрыть. Для этого, удерживая нажатой клавишу 1, прижмите левой кнопкой мыши любую точку временной шкалы или области треков и перетащите ее влево. Снова отмасштабируйте и снова передвиньте до тех пор, пока шкала с кадрами от 0 до 181 не займет отведенное ей пространство окна (рис. 3.42). Так как трек Position X не несет полезной информации (перемещения по оси 0Х нет), то выделите его и удалите, нажав клавишу Delete. Остальные пустые треки удалим позже.
Чтобы установить копируемый трек точно на нужный кадр для начала второго прыжка (в данном случае это кадр 91, так как кадр 90 занят — это последний кадр трека первого прыжка), смотрите на информационное
4. Создадим треки для второго прыжка, используя уже готовые треки первого. Посмотрим на окно проекций (рис. 3.43). Чем будет отличается второй прыжок от первого?
Это будет точно такой же прыжок, только повернутый на 90° вправо. То есть перемещение вдоль оси 0Z (трек Position.Z на рис. 3.44) надо заменить на перемещение вдоль оси 0Х (трек Position.X на рис. 3.44), а вращение цилиндра в плоскости YZ (трек Rotation.Р на рис. 3.44) надо заменить на вращение в плоскости YX (трек Rotation.В на рис. 3.44). Настройка для перемещения по вертикальной оси Position Y остается неизменной и для второго прыжка. Так как ключевые кадры с указанными настройками уже записаны в окне Timeline для первого прыжка, то их можно просто скопировать в область треков для второго прыжка. Начнем с трека Position.Z. Выделим его (рис. 3.44) и, удерживая нажатой клавишу Ctrl, перетащим, прижав левой кнопкой мыши, на место для трека настройки Position X на диапазон от кадра 91 до кадра 181 (рис. 3.45).
сообщение Selection внизу окна Timeline. При копировании подвигайте копируемый трек вправо-влево, пока он не займет требуемое положение на кадрах диапазона 91—181. 5. Проделайте аналогичные операции для трека Position.Y, отвечающего за перемещение в вертикальном направлении. Он копируется из диапазона кадров первого прыжка в диапазон кадров для второго прыжка без изменения строки (рис. 3.46). 6. При копировании трека вращения Rotation.Р его надо вставить в строку трека Rotation.В для кадров 91—180 (с изменением направления второго прыжка изменяется и плоскость, в которой вращается цилиндр) (рис. 3.46). 7. На рис. 3.46 приведены окончательные треки для первого и второго прыжков. Запустите анимацию и убедитесь в ее работоспособности. 8. Пустые треки, в которых не записаны ключевые кадры, рекомендуется удалять. Один из таких пустых треков уже удален — это трек Position.X для первого прыжка для кадров 0—90. Выделите оставшиеся пустые треки для кадров 0—90 (выделяйте по одному) и с помощью клавиши Delete удалите их (рис. 3.47). Если треки «не хотят» выделяться по одному, а выделяются
маркера красного цвета. Прижмите красный прямоугольник
сразу все после щелчка по одному из них, то проверьте в меню Edit (окна Timeline) установку флажков в пунктах связанных с выделением (Object Selection, Track Selection и т. д.). 1. Если кажется, что цилиндр слишком быстро отскакивает из последней позиции и переносится на начало траектории, то следует увеличить общее количество кадров, например, до 190. Для этого вызовите с помощью клавиш Ctrl D диалоговое окно Project Settings и измените значение параметра Maximum на 190. 2. Сохраните созданную анимацию (главное меню File -> Save As). Решим задачу предыдущего примера, но с учетом изменения масштаба цилиндра по оси 0Y (настройка S.Y) при движении цилиндра по траектории в первом и втором прыжках. 1. Выполним действия, аналогичные разобранным в предыдущем примере, над готовыми треками для однократного прыжка с изменением масштаба. 2. Так как настройки масштаба по оси 0Y для второго прыжка сохраняются, то, копируя треки настроек, имеем следующий окончательный вид окна Timeline (рис 3.48).
Создадим анимацию, в которой цилиндр совершает 3 одинаковых подскока, всякий раз поворачиваясь на 90° (по часовой стрелке). 1. За основу возьмем треки из предыдущего примера для двух прыжков с изменением масштаба, увеличив продолжительность анимации до 290 кадров. Подготовленный вид окна Timeline приведен на рис. 3.49. 2. Треки для третьего прыжка можно получить из первого, поменяв местами некоторые ключевые кадры. Начнем с ключевых кадров начала и конца для трека Position.Z. Скопируем трек Position.Z из первого прыжка и вставим его в диапазон кадр 181 — кадр 271 (рис. 3.50). 3. Выделите ключевой кадр 270, щелкнув левой кнопкой мыши именно по прямоугольнику на линии трека (рис. 3.51). Возникнет вертикальная линия
выделенного кадра и, не отпуская мыши, перетащите его по линии трека на левый конец. То же проделайте с ключевым кадром 181, переместив его в позицию кадра 271 на правый конец линии трека. При перемещении рядом с курсором возникает изображение белого прямоугольника. Точность установки кадра проверяйте по информационной строке Selection (внизу окна Timeline).
4. Таким образом, вы поменяли ключевые кадры местами. Проверьте полученный эффект, запустив анимацию. На третьем прыжке самого прыжка еще нет, но цилиндр должен двигаться прямолинейно в направлении убывания значения Z параллельно оси 0Z (рис. 3.52). 5. Добавим оставшиеся треки, скопировав их из диапазона треков для первого прыжка (рис. 3.53). Обратите внимание на настройку вращения: она снова должна проходить в плоскости YZ, то есть должен присутствовать трек Rotation.Р. Пустые треки удалены. 6. Запустите анимацию и убедитесь в ее работоспособности. Создадим анимацию, в которой цилиндр совершает 4 одинаковых прыжка, поворачиваясь на каждом
прыжке на 90° и возвращаясь в конце в исходную позицию. 1. Загрузим анимацию из предыдущего примера и увеличим в окне Project Settings количество кадров до 390 (с запасом). Отмасштабируем временную шкалу окна Timeline (рис. 3.54).
2. Треки для четвертого прыжка идентичны трекам для второго. Отличия составляют расположение ключевых кадров трека для настройки Position.X, то есть цилиндр должен двигаться в противоположную сторону. Для этого надо поменять местами ключевые кадры на концах трека. Эти действия аналогичны предыдущему примеру для трека Position.Z третьего прыжка. Скопируем трек и поменяем местами кадры 272 и 362 (рис. 3.55). 3. Запустите полученную анимацию. На четвертом прыжке (самого прыжка еще нет) цилиндр должен двигаться по оси 0Х к началу координат. 4. Скопируйте остальные треки из второго прыжка (рис. 3.56). 5. Просмотрите полученную анимацию, убедившись, что цилиндр ведет себя именно так, как было задумано.
Анимируем смену текстуры на объекте: на поверхности куба на 50 кадре тонировщик Cloud должен смениться на тонировщик Cyclone. 1. Откройте окно Timeline. Создайте примитив Cube. 2. Создайте два новых материала (в окне менеджера материалов File -> New Material) и в окне Material Editor (открывается двойным щелчком левой кнопкой мыши по значку нового материала в окне менеджера материалов) загрузите в их свойства Color соответственно тонировщики Cloud и Cyclone (рис. 3.57). Чтобы выбрать тонировщики, откройте список, щелкнув по черному треугольнику справа от имени Texture. Подробно о текстурах будет рассказано в следующей главе. 3. Назначьте кубу текстуру Cloud, перетащив значок материала с этой текстурой из окна менеджера материалов на куб. 4. Перетащите значок тэга назначенного кубу материала из окна менеджера объектов в окно Timeline
7. Аналогично создайте еще один ключевой кадр и перетащите в окно менеджера атрибутов второй материал с текстурой Cyclone, а в параметре Time задайте 50 F (рис. 3.62). (рис. 3.58). После этого остальные объекты в Timeline окажутся скрытыми и останется только имя Tag Texture. 5. В окне Timeline вызовите контекстное меню и выберите New -> Parameter-> Material (рис. 3.59).
В результате для материала будет создан трек и последовательность (рис. 3.60). 6. Удерживая нажатой клавишу Ctrl, щелкните левой кнопкой мыши в любом месте последовательности, чтобы создать ключевой кадр. Обратите внимание, что в открывшемся в окне менеджера атрибутов окне свойств для созданного ключевого кадра в поле Material уже записан материал с текстурой Cloud (рис. 3.61). Задайте для параметра Time значение 0F (задайте нулевой кадр) — маркер красного цвета переместится на отметку 0 в окне Timeline.
Запустите анимацию. На 50-м кадре текстура Cloud должна смениться на текстуру Cyclone. Обратите внимание, что в ключевых кадрах мы задавали значения некоторых параметров. Все, что происходит со значениями параметров между ключевыми кадрами, создается программой Cinema 4D. По умолчанию изменение значений параметров от кадра к кадру протекает с постоянной скоростью. Однако с помощью окна Timeline можно сделать так, что эта скорость будет уменьшаться или возрастать при переходе от кадра к кадру. Для отображения и задания скорости изменения параметров служат F-кривые, которые для каждого из анимируемых параметров можно увидеть в окне Timeline, если щелкнуть по значку «плюс» слева от имени трека (рис. 3.63). На F-кривых ключевые кадры представлены в виде точек, соединенных линиями. Форма линий позволяет судить о том, как изменяется скорость. Так, прямая линия соответствует линейному закону. Для настройки закона изменения скорости в окрестности одного ключевого кадра, выделите этот кадр (например, для трека Position X кадр 136, рис. 3.64). В окне менеджера атрибутов (рис. 3.65) будут приведены характеристики выделенного ключевого кадра: Name (имя трека, к которому относится кадр), Time (номер кадра), Value (числовое значение параметра на этом кадре). Флажок Link Tangents позволяет настроить закон изменения скорости справа и слева от данного ключевого кадра. Если флажок установлен, то закон изменения скорости справа и слева от кадра одинаковый. Если флажок сброшен, то есть возможность устано-
вить разные законы справа и слева от кадра. Для этого служат
пример для трека Position X. Рядом с точкой ключевого кадра возникает красная точка управляющего вектора — касательного к F-кривой (рис. 3.67, слева). Прижав левой кнопкой мыши точку, переместите ее. F-кривая деформируется (рис. 3.67, справа).
Запустите анимацию. Вы увидите, что скорость движения цилиндра на участке слева от ключевого кадра 136 перестает оставаться равномерной и испытывает заметное ускорение. Траектория движения также меняется (так как общее время анимации остается неизменным, то при увеличении скорости должно увеличиться и проходимое цилиндром расстояние) и по форме соответствует заданной кривой на рис. 3.68.
поля Interpolation L (слева) и Interpolation R (справа) (рис. 3.66). Custom — позволяет пользователю задавать характер изменения скорости. На рис. 3.67 приведен
Soft — форма кривой задается с помощью настройки Strength L (слева от ключевого кадра) или Strength R (справа от ключевого кадра). Чем выше значение Strength, тем выше нелинейность кривой (рис. 3.69). При Strength = 0 кривая спрямляется. Для примера на приведено влияние настройки Strength на форму Fкривой для Position Y слева от ключевого кадра. Linear — позволяет задавать F-кривой на отрезке входа в ключевой кадр линейный характер (рис. 3.70).
Для работы с F-кривыми можно воспользоваться специальным окном на закладке F-curve окна Timeline в режиме Animation (рис. 3.74). Чтобы вызвать Fкривую, надо щелкнуть по имени настройки в левой части окна.
Для настройки сложной кривой ее можно разбить на большее число ключевых кадров (меню Curves -> Bake Curve), задав в диалоговом окне (рис 3.75), для какого количества кадров создать один ключевой.
Step — справа от ключевого кадра настройка остается постоянной, пока анимация не достигнет следующего ключевого кадра (рис. 3.71).
Slow — вблизи ключевого кадра частота смены промежуточных кадров будет ниже, чем на остальной части F-кривой (рис. 3.72). Fast — вблизи ключевого кадра частота смены промежуточных кадров будет выше, чем на остальной части F-кривой (рис. 3.73). Символ <-> означает, что закон изменения скорости будет заимствован у соседнего ключевого кадра с левой или с правой стороны.
В данном примере для каждых трех кадров создается 1 ключевой. На рис. 3.76 приведен результат. Можно создать анимацию и без ключевых кадров, просто нарисовав траекторию в виде сплайна и пустив по ней объект. 1. Нарисуйте Безье-сплайн (главное меню Objects > Create Spline -> Bezier) (рис. 3.77). 2. Создайте объект-примитив, например, Figure (рис. 3.78). 3. Щелкните правой кнопкой мыши по имени Figure в окне менеджера объектов и выберите в контекстном меню пункт Show Tracks (рис. 3.79). В результате объект Figure будет помещен в окно Timeline (рис. 3.80). 4. В меню Objects окна Timeline выберите пункт Spline to position Track... 5. В появившееся диалоговое окно (рис. 3.81) введите имя Spline и щелкните по кнопке ОК. В результате у объекта Figure появятся три трека Position X, Position Y и Position Z (рис. 3.82). 6. Снимите выделение с фигуры и сплайна (в окне менеджера Objects снимите выделения с имен Figure и Spline), запустите анимацию и убедитесь, что фигура двигается по траектории.
7. Выделите имя Spline в окне менеджера Objects и щелкните по кнопке Delete. Объект Spline исчезнет из окна проекций. Запустите анимацию. Объект Figure будет продолжать двигаться вдоль невидимой траектории. 8. Снова выделите объект Figure и примените к нему инструмент Rotate (рис. 3.83). 9. Задайте вращение объекта Figure в трех плоскостях в соответствии с приведенными на рис. 3.84 Fкривыми.
Можете задать произвольное вращение объекта, но при просмотре анимации должно возникать впечатление, что фигура парит в воздухе, плывя по траектории (рис. 3.85).
на букве Р в имени параметра R.P (рис. 3.86). В появившемся контекстном меню выберите Animation -> Add KeyFrame (рис. 3.87).
В результате слева рядом с названием параметра R.P появится красный кружок, означающий, что первый ключевой кадр анимации для параметра R.P создан. Щелкните еще раз правой кнопкой мыши на букве Р в названии параметра и выберите из контекстного меню Animation -> Show Track. Появится диалоговое окно хронографа Timeline (рис. 3.88). На треке изображен созданный первый кадр анимации в виде красного прямоугольника.
Для модели мужской фигуры Zygote Man создадим кивок головой, опуская ее на 30 градусов. Выберем фигуру в главном меню Objects -> Objects Library -> Zygote Man. В окне менеджера объектов в иерархической структуре выделим узел Head. В окне менеджера атрибутов щелкните правой кнопкой мыши
Щелкните один раз левой кнопкой мыши на значке первого кадра. Откроется окно менеджера атрибутов ключевого кадра (рис. 3.89), куда надо будет ввести конечное значение угла наклона головы. Но это надо сделать, когда будет готов последний кадр анимации. Чтобы создать его, перетащим первый кадр при нажатой клавише Ctrl до кадра 90 на шкале хронографа (рис. 3.89). Этим действием мы скопируем первый
кадр в 90-й по шкале хронографа. Чтобы все сделать точно, следите за сообщением внизу диалогового окна, и как только появится Selection 90F, можно отпустить кнопку мыши (рис. 3.89).
В менеджере атрибутов для ключевого кадра в поле Value введите 30 градусов (рис. 3.90) и щелкните по кнопке прямого воспроизведения анимации. Убедитесь, что персонаж кивает головой, опуская ее на грудь.
треков или объектов окна Timeline. Также можно вызвать его через пункт меню File -> New Track окна Timeline. Применение пункта Parameters было рассмотрено выше. Рассмотрим пункт Morph.
Недостатком этой анимации является то, что голова двигается без ускорения или замедления, совершенно равномерно, что неестественно. Для создания ускорения воспользуемся функциональными кривыми (Fcurves). Выберите в меню окна F-curves пункт Select All (Выделить все) — оба ключевых кадра будут выделены красным цветом. Далее выберите в меню Curves -> Custom Tangents -> Soft Interpolation (Кривые -> Касательные заданные пользователем -> Мягкая интерполяция) (рис. 3.91).
New Track -> Morph
Выберите Curves -> Custom Tangents -> Flat. Окно FCurves приняло вид, изображенный на рис. 3.92. Меняя с помощью касательных форму кривой, можно получать различный характер движения головы. Рассмотрим более подробно возможности контекстного меню New Track (рис. 3.93). Для его вызова надо щелкнуть правой кнопкой мыши в области имен
Как следует из названия, пункт позволяет производить анимацию морфинга (изменения формы) объектов. Для этого необходим исходный объект и несколько его копий, которые будут играть роли, например, начального и конечного состояний объекта. Следовательно, копии необходимо как-то изменить. Далее создаются ключевые кадры, в которые и записываются соответствующие копии объекта. При запуске анимации исходный объект будет плавно изменять свою форму, приближаясь к кадрам с соответствующими копиями. Рассмотрим пример. Требуется создать анимацию изменения формы лица персонажа Zygote Man (главное меню Objects -> Object Library -> Zygote Man). Пусть в кадре 5 у персонажа будет вытянутый нос, а подбородок нормального размера. В кадре 70 нос будет нормального размера, но подбородок вытянется. Морфинг от кадра 5 к кадру 70 должен произойти плавно.
Создадим персонаж Zygote Man и выделим в окне менеджера объектов голову персонажа под именем Head (рис. 3.94). В окне проекций голова также перейдет в выделенное состояние.
Активизировав инструмент Move, передвинем вы деленные полигоны (рис. 3.97). Объект Head 1 готов.
Выделив объект Head 2, выделим группу полигонов на подбородке (рис. 3.98).
Скопируем голову (главное меню Edit -> Сору) и сделаем две копии Head 1 и Head 2 (главное меню Edit -> Paste), разместив их по бокам от оригинала (рис. 3.95). Активизировав инструмент Move, передвинем полигоны (рис. 3.99). Объект Head 2 готов.
Пусть копия Head 1 будет начальной формой (длинный нос), а копия Head 2 — конечной формой (длинный подбородок). Выделим объект Head 1 и, удерживая клавишу Shift, выделим полигоны на носу (рис. 3.96). Расположение полигонов на рис. 3.96 дано ради примера. Вы можете для большего реализма выделить полигоны, например, по всей длине носа.
На рис. 3.100 показаны все три головы. В окне менеджера объектов с помощью точек видимости скроем объекты Head 1 и Head 2 (рис. 3.101). Откройте окно Timeline (главное меню Window -> Timeline). Щелкните правой кнопкой мыши по имени Head и в контекстном меню выберите New Track -> Morph (рис. 3.102). Обратите внимание, что вызвать меню надо для исходного объекта Head, а не для его копий. В результате для объекта Head будет создан трек Morphing (рис. 3.103).
кадр 5 будет создан, и в окне менеджера атрибутов откроется окно его свойств (рис. 3.105). Перетащите, прижав левой кнопкой мыши, имя Head 1 из окна менеджера объектов в окно менеджера атрибутов в поле параметра Morph Target (рис. 3.105). В окне Timeline также у кадра 5 появится имя Head 1 (рис. 3.104).
Аналогичным способом создайте второй ключевой кадр 70 и перетащите в поле параметра Morph Target имя объекта Head 2 (рис. 3.106). Окончательный вид кривой приведен на рис. 3.107. Запустите анимацию. На рис. 3.108 для иллюстрации приведено несколько кадров. Возможно, все лицо или только нос и подбородок будут иметь текстуру черно-белого цвета. Чтобы придать им цвет кожи, перетащите на них из менеджера материалов материал Skin (рис. 3.109). Теперь осталось разместить на треке два ключевых кадра 5 и 70, записав в них объекты Head 1 и Head 2. Удерживая нажатой клавишу Ctrl, щелкните левой кнопкой мыши по треку на кадре 5 (рис. 3.104). Ключевой
New Track -> PLA С помощью этого пункта можно анимировать точки выделенных полигонов и сплайнов. Анимируем рост носа персонажа Zygote Man.
Создайте персонаж Zygote Man и в окне менеджера объектов выделите подобъект Head (рис. 3.110).
В окне проекций увеличьте лицо персонажа, активизируйте инструмент Polygon Tool и выделите несколько полигонов на кончике носа (рис. 3.111, слева). Вызовите окно Timeline (главное меню Window -> Timeline), в списке объектов выделите имя Head, щелкните рядом с именем правой кнопкой мыши и в появившемся контекстном меню выберите New Track -> PLA (рис. 3.112).
New Track -> Time
В результате будет создан трек PLA (рис. 3.113), на котором создайте ключевой кадр 0 (удерживая нажатой клавишу Ctrl, щелкните левой кнопкой по треку в кадре 0). В этом кадре будет записано лицо персонажа, приведенное на рис. 3.111 (слева). Важно, чтобы выделение полигонов на момент создания ключевого кадра не было снято. Активизируйте инструмент Move и передвиньте вперед выделенные полигоны кончика носа (рис. 3.111, справа). Выделения с полигонов не снимайте. Создадим второй ключевой кадр, в который запишем изменение формы носа. Вначале переместим маркер (ползунок) на шкале анимации на кадр 50 и в окне Timeline создадим ключевой кадр 50.
С помощью этого пункта можно создавать неравномерное движение объекта. Создайте анимацию движения примитива Cube вдоль оси 0Х от кадра 0 до кадра 90. Убедитесь, что куб все время двигается с постоянной скоростью. Однако в реальности объекты, например, автомобиль, никогда сразу не приобретают окончательную скорость, а разгоняются постепенно. И останавливается тоже не сразу. Преобразуем движение куба в неравномерное, например, на участке от кадра 0 до кадра 45 он двигается медленно, а в кадре 60 резко ускоряется. В окне Timeline для объекта Cube создайте трек Time (рис. 3.115). Убедитесь, что имя Cube выделено. Удерживая нажатой клавишу Alt, щелкните левой кнопкой мыши по последовательности трека Position.X. В появившемся окне Sequence Properties перетащите в поле параметра Time Track имя трека Time (из окна Timeline) (рис. 3.115).
Запустите просмотр анимации. Hoc будет плавно увеличиваться с кадра 0 до кадра 50. В окне менеджера атрибутов (рис. 3.114) параметр Bias задает тип интерполяции между ключевыми кадрами. Если флажок Smooth сброшен, то интерполяция, задаваемая в параметре Bias, распространяется только на область, лежащую после ключевого кадра. Если флажок Smooth установлен, то интерполяция распространяется на области до и после ключевого кадра. Окно Timeline теперь выглядит следующим образом (рис. 3.116) (последовательность трека Position.X обозначена сдвоенной красной линией). Создайте ключевой кадр на кадре 45 (рис. 3.117). В окне менеджера атрибутов установите для этого ключевого кадра значение Value = 46% (рис. 3.118). Это значение задает медленное движение объекта. Можно также вручную передвинуть кривую, прижав левой кнопкой мыши точку на ней, соответствующую кадру 45.
или клавишами Shift+ F4. Ha рис. 3.120 представлено окно менеджера F-кривых для анимации перемещения куба вдоль оси ОХ (анимации параметра Position.X для куба).
Создайте еще один ключевой кадр на кадре 60 (рис. 3.117) и задайте для него Value = 120%. Это означает, что в данном кадре (точке) объект должен получить ускорение. Запустите просмотр анимации. Куб будет двигаться неравномерно: вначале медленно, а затем с ускорением.
3.3. Работа с F-кривыми F-кривые (функциональные кривые) задают закон движения объекта между ключевыми кадрами. Fкривые создаются Cinema 4D автоматически и, как было отмечено выше, вызываются щелчком по знаку + слева от имени трека в окне Timeline (рис. 3.119). Редактировать F-кривые можно либо непосредственно в окне Timeline, либо в окне менеджера Fкривых, которое открывается из главного меню Window-> F-curve Manager
Для работы с окном предусмотрено два режима: ручной (значок замка в правом верхнем углу изображает закрытый замок, рис. 3.120) и автоматический (разомкнутый замок) Работа с F-кривыми сводится в основном к изменению их формы. Это можно делать, перетаскивая точки ключевых кадров, прижав их левой кнопкой мыши. Можно задавать математические формулы, описывающие формы кривых (рис. 3.121). Здесь углы задаются в радианах, а время обозначается переменной t и имеет диапазон изменения от 0 (начало анимации) до 1 (конец анимации).
Обозначения тригонометрических функций стандартное, функция извлечения квадратного корня обозначается SQRT, значение по модулю — ABS. Команда Ramp Up (пункт меню Curves -> Function, рис. 3.121) позволяет преобразовать форму исходной F-кривой рис. 3.120 в наклонную прямую линию (рис. 3.122).
Результат применения команды Ramp Down к исходной F-кривой (рис. 3.120) приведен на рис. 3.123.
Действие команды Ridge к исходной F-кривой (рис. 3.120) представлено на рис. 3.124. На рис. 3.125 представлено действие команды Ease In, которая позволяет изменить форму F-кривой таким образом, что для выделенных ключевых точек будет автоматически добавлено ускорение движению объекта. Действие команды Ease Out обратно — для выделенных точек добавляется замедление движению объекта (рис. 3.126). Команда Ease Ease поддерживает на постоянном уровне значение параметра (в данном случае Position.X) до и после выделенной точки (рис. 3.127). Команда Hold фиксирует значение параметра (в данном случае Position.X) в выделенной точке до достижения следующей точки (рис. 3.128). Команда Clamp позволяет спрямлять кривую между двумя точками, имеющими одинаковое значение параметра (рис. 3.129). Предварительно надо выделить
точки. Чтобы задать точные значения, воспользуйтесь окном менеджера атрибутов для выделенной точки (рис. 3.130).
На рис. 3.134 для точки, указанной стрелкой, координаты приведены в нижнем левом углу окна Timeline:
Команда Move позволяет перемещать выделенные точки, что приводит к изменению формы F-кривой. Выделите точку на F-кривой и вызовите команду Curves -> Move. Появится диалоговое окно (рис. 3.131), в котором вводятся значения приращений по горизонтальной оси (поле Time) и вертикальной оси (параметр Data). В поле Time введите количество кадров, на которое надо передвинуть точку по горизонтальной оси, а в поле Data — приращение значения параметра Position.X (координата по вертикальной оси).
На рис. 3.132 приведен результат перемещения точки. В отличие от перемещения точек вручную (перетаскиванием), такой способ более точен. Команда Scale масштабирует координаты выделенных точек. В диалоговом окне Values (рис. 3.133) в поле Time вводится масштаб по горизонтальной оси, в поле Data — масштаб по вертикальной оси.
по горизонтальной оси Time = 36F, по вертикальной оси Value = 236,138. Зададим увеличение этих координат в два раза (рис. 3.133). На рис. 3.135 представлен результат масштабирования — точка переместилась в соответствии с новыми
диалоговом окне (рис. 3.141). Параметр Frequency задает количество кадров, которые следует пропустить (не добавляя точек) между кадрами, в которые
координатами, точные значения которых приведены в нижнем левом углу окна Timeline. Команды Mirror X и Mirror Y позволяют точкам меняться друг с другом координатами. Чтобы команды были доступны, выделите как минимум две точки (рис. 3.136).
Команда Cycle позволяет создавать копии выделенных точек. Для доступа к команде выделите как минимум две точки. Количество копий задается в диалоговом окне Duplicate (рис. 3.137).
На рис. 3.138 приведена исходная кривая с двумя выделенными точками. Создадим две копии (рис. 3.139). Команда Cycle with Offset аналогична команде Cycle. Отличие — в расположении копий (рис. 3.140). Команда Bake Curve позволяет добавлять точки не изменяя формы F-кривой. Количество точек задается в
добавляются точки. Таким образом, при Frequency = 1 будет получено максимальное количество точек (в каждом кадре по точке). На рис. 3.142 приведен результат добавления точек для значения Frequency, заданного на рис. 3.141.
Команда Simplify Curve позволяет уменьшать количество точек на F-кривой. Параметр X задает количество кадров между двумя соседними точками, параметр Y расстояние между двумя соседними точками для анимируемого параметра. Значения, заданные в окне на рис. 3.143, позволяют уменьшить число точек на F-кривой (рис. 3.142). Результат представлен на рис. 3.144.
Глава 4. Текстурные карты 4.1. Основные понятия Текстура может быть получена либо на основе растровых изображений (по точкам), либо построена в результате расчета по математическим зависимостям. В первом случае растровый (точечный, пиксельный) рисунок накладывается на поверхность объекта. При наложении задается ряд параметров, в частности, метод сглаживания пикселей (MIP или SAT). Во втором случае текстура рассчитывается по определенному алгоритму с помощью математических формул. Полученные таким образом текстуры называются тонировщиками. Тонировщики могут быть двумерными, применяемыми к поверхностям, и трехмерными, применяемыми к объему объекта. Тонировщики в свою очередь подразделяются на две группы по признаку наличия собственного окна Material Editor. Во всех случаях для создания материалов используется менеджер материалов. Окно менеджера материалов находится в левом нижнем углу экрана под окном проекций (рис. 4.1) при всех компоновках рабочего окна, за исключением компоновки Мосса и Animation, для которых окно расположено справа сверху (рис. 4.2). Вызывается окно менеджера Materials через главное меню Window -> Material Manager или сочетанием клавиш Shift+ F2. Загрузка библиотеки готовых растровых (точечных) изображений материалов производится с помощью меню File -> Load Materials в окне менеджера материалов (рис. 4.3). В диалоговом окне Open File (рис. 4.4) откройте папку Materials и загрузите файл Basics.
Образцы материалов нанесены на сферы, размеры которых можно настраивать в меню Edit (окна менеджера материалов) в пунктах Mini Icons (мелкие значки), Small Icons (маленькие значки), Medium Icons (средние значки) и Large Icons (крупные значки) (рис. 4.5). 8 тонировщиков (текстуры, полученные расчетным путем), имеющие собственные окна Material Editor, также можно загрузить через меню File -> Shader (рис. 4.6). Кроме указанных 8-ми типов тонировщиков с собственными диалоговыми окнами, в Cinema 4D предусмотрены тонировщики, которые могут «добавляться» к основному материалу в его свойства для придания нужных эффектов (рассмотрим позже в этой главе).
4.8). Перетащите (прижав левой кнопкой мыши) в это поле образец нужного материала из окна менеджера материалов — этот материал будет присвоен объекту. Назначить материал объекту можно также с помощью меню Function -> Apply окна менеджера Materials (рис. 4.9). При этом предварительно объект и образец материала должны быть выделены. После применения любого из трех способов назначения материала объекту в окне менеджера объектов появится тэг материала (рис. 4.10). Если щелкнуть по тэгу, то будет открыта закладка Tag окна менеджера атрибутов, где представлены
Эти тонировщики не имеют собственных окон Material Editor. Назначить материал объекту можно различными способами. Можно просто перетащить материал с образца (прижав левой кнопкой мыши) из окна менеджера материалов на объект в окно проекций. При этом рядом с курсором, когда он будет находиться на объекте, должен появиться значок «черный плюс в белом квадрате». Назначить материал можно также, щелкнув правой кнопкой мыши по выделенному объекту (или по имени объекта в окне менеджера объектов) и в контекстном меню выбрать следующие пункты New Tag -> Cinema 4D Tags -> Texture (рис. 4.7). После этого в окне менеджера атрибутов активизируется закладка Tag, в которой размещается поле свойства Material (рис.
свойства тэга (рис. 4.11). Рассмотрим основные свойства тэга. В поле Material приведен образец и название выбранного материала. С помощью параметра Selection можно присвоить разным частям (полигонам) одного и того же объекта различные материалы. Присвоим полигонам грани куба два разных материала. Создадим примитив Cube, зададим по 3 сегмента на каждое ребро, переведем куб в полигональное состояние и активизируем режим Use Polygon Tool. Выбрав инструмент выделения Live Selection, выделим (удерживая нажатой клавишу Shift) 5 полигонов на одной из граней (рис. 4.12).
Выберите в меню Selection -> Set Selection, чтобы создать тэг Polygon Selection. Когда тэг Polygon Selection появится в окне менеджера объектов (рис. 4.13), щелкните по нему левой кнопкой мыши, чтобы в окне менеджера атрибутов открылись свойства тэга (рис. 4.13, внизу). В поле Name введите имя тэга, например, Материал 1. Присвойте объекту Cube какой-либо материал, например, brick001 (перетащив его левой кнопкой мыши на имя Cube в окне менеджера объектов). В окне менеджера объектов появится тэг материала brick001 (рис. 4.14). Щелкните по этому тэгу, чтобы открыть его
свойства в окне менеджера объектов. В поле Selection введите имя тэга Polygon Selection Tag. Это имя — Материал 1 (рис. 4.14).
Присвоенный материал будет убран со всей поверхности куба кроме полигонов, которые были включены в параметр Selection (рис. 4.15). Повторим аналогичные действия для следующих 4х полигонов (рис. 4.16). Не забудьте предварительно снять выделение с предыдущей группы полигонов. Присвоим второму созданному тэгу Polygon Selection Tag имя Материал 2 (рис. 4.17). Присвоим кубу материал tile005 и впишем в поле Selection имя Материал 2 (рис. 4.18). На рис 4.19 приведен результат: часть грани куба имеет материал brick001, а часть — материал tile005. Если сразу материал не проявляется, щелкните в окне менеджера объектов по тэгу Polygon Selection Tag Материал 1. Можно продолжить назначать аналогичным образом материалы остальным полигонам. Вернемся к параметрам тэга Texture Tag (рис. 4.14).
Spherical — сферический контейнер. Как видно из рис. 4.20, текстурная карта корректно спроецирована только на сферический объект. Cylindrical — цилиндрический контейнер дает для тех же трех объектов схожий результат (рис. 4.21). Flat — плоский контейнер корректно применим только к одной плоскости, а затем протягивается в перпендикулярных к ней направлениях. Особенно отчетливо это видно на примере куба (рис. 4.22). Cubic — контейнер в форме куба, идеально подходит для объекта Cube, а для объекта Plane дает приемлемый результат (рис. 4.23). Так как данный контейнер проецирует текстуру на 6 плоскостей, то для сферы получается неудовлетворительный результат.
В выпадающем списке Projection приведены названия контейнеров, с помощью которых плоская текстурная карта накладывается (проецируется) на поверхность объекта. Так как поверхность объекта может быть произвольной формы (например, куб, сфера), то важно выбрать контейнер, схожий по форме с объектом. Рассмотрим контейнеры и их применение, например, для примитивов Sphere, Plane, Cube и материала brick001.
Spatial — пространственный контейнер (рис. 4.25).
Frontal — плоский контейнер, положение которого фиксировано и привязано к плоскости фронтального вида сцены (рис. 4.24); при перемещении объекта, текстура остается на месте, так как привязана к координатам сцены.
UVW Mapping — контейнер, использующий при наложении текстуры локальные (собственные) координаты объекта UVW (буквы UVW заменяют названия осей XYZ) (рис. 4.26). Shrink Wrapping — контейнер создает эффект заворачивания объекта в текстуру (рис. 4.27). При этом в какой-то точке на поверхности образуется полюс, где текстура собирается в точку. Camera Mapping — позволяет проецировать текстуру через камеру. При выборе Camera Mapping окно свойств тэга изменяется (рис. 4.28). Для проецирования текстуры через камеру создайте новый материал (в меню окна менеджера материалов выберите File -> New Material). Дважды щелкните на значке нового материала в окне менеджера материалов. Откроется диалоговое окно Material Editor (рис. 4.29). Активизируйте свойство Luminance. Загрузите в свойство нового материала Luminance текстуру, которую хотите спроецировать на поверхность объекта. Для выбора текстуры откройте список, щелкнув
по кнопке с черным треугольником справа от имени Texture (рис. 4.29). Выберем, например, тонировщик Checkerboard (рис. 4.30).
Присвойте этот материал объекту, например, примитиву Cube. Создайте объект Camera и установите флажок в меню окна проекций Cameras -> Scene Cameras -> Camera. Откройте окно свойств тэга Texture Tag «Mat». Выберите в списке Projection пункт Camera Mapping. Перетащите имя Camera из окна менеджера объектов в поле Camera (рис. 4.31). Сделайте рендеринг сцены (рис. 4.32). Вызовите свойства камеры (рис. 4.33) и изменяйте ее параметры Р (положения), S (масштаба) и R (вращения), наблюдая за изменениями вида проекции текстуры на объекте. Вернемся к окну менеджера атрибутов тэга Texture Tag (рис. 4.28). Настройка Side (сторона) позволяет выбрать из списка сторону поверхности объекта, на которую проецируется текстура (рис. 4.34).
гональный вид. Если после выделения полигонов они окрасились в красный цвет и на них появились нормали желтого цвета, то это фронтальная поверхность (передняя сторона поверхности) (рис. 4.35).
Противоположная сторона — задняя (обратная). Полигоны на ней окрашены в синий цвет и нормалей нет (рис. 4.36). Направление нормалей можно поменять на обратное, вызвав в главном меню Functions -> Reverse Normals. Если нормали вообще не отображаются, то выберите в меню окна проекций Edit -> Configure (рис. 4.37). В окне менеджера атрибутов откройте закладку Display и поставьте флажки Normals и Tinted Poly Normals (рис. 4.38).
Both — текстура проецируется на обе стороны поверхности. Front — текстура проецируется на фронтальную поверхность (передняя сторона поверхности). Back — текстура проецируется на заднюю поверхность. Фронтальная и задняя поверхности определяются в зависимости от направления нормалей к поверхности. Создайте примитив Plane и переведите Plane в поли-
Настройки Length X и Length Y позволяют изменять масштаб проекции текстуры соответственно по осям 0Х и 0Y. Настройки Tiles X и Tiles Y задают количество повторений рисунка текстуры по осям 0Х и 0Y. Чтобы рисунок повторялся, надо поставить флажок Tile. Настройки Length X и Length Y связаны отрицательной обратной связью с настройками Tiles X и Tiles Y, то есть при увеличении значений настроек Length X и Length Y значения настроек Tiles X и Tiles Y уменьшаются и обратно. На рис. 4.40 приведены результаты (для исходного изображения на рис. 4.39 слева) при установленном флажке Tile.
Чтобы проверить работу параметра Side, присвойте объекту Plane какой-либо материал, например, Tile005. Назначьте параметру Side значение Front, разверните Plane передней стороной и произведите рендеринг изображения (главное меню Render -> Render View). Разверните Plane обратной стороной, сделайте рендеринг и убедитесь, что на задней стороне текстуры нет. Аналогично проверьте действие остальных пунктов. Настройки Offset X и Offset Y позволяют сдвигать текстуру в вертикальном и горизонтальном направлениях относительно поверхности объекта. Присвоим примитиву Cube материал ball002 (рис. 4.39, слева) и будем изменять настройки Offset X и Offset Y (рис. 4.39, в центре и справа).
Флажок Mix Textures позволяет смешивать текстуры, наложенные друг на друга слоями. При установленном флажке Seamless линия стыка областей с повторенным рисунком фактуры становится незаметной за счет зеркального отражения рисунка. Установка флажка Use UVW for Bump сглаживает неровности на границах полигонов при использовании рельефной текстуры. Существует удобный инструмент масштабирования и сдвига изображения текстуры на поверхности объекта. Инструмент называется Use Texture Tool и доступен либо через главное меню Tools -> Texture (рис. 4.41), либо через кнопку на боковой панели инструментов Use Texture Tool . После вызова этого инструмента надо левой кнопкой мыши щелкнуть по объекту. В результате на объекте появляется координатная сетка зеленого цвета, форма которой определяется заданной формой контейнера Projection. На рис. 4.42—4.44 приведены несколько различных форм координатной сетки инструмента Use Texture Tool в зависимости от выбранного контейнера Projection.
В качестве объекта взят примитив Cube с текстурной картой ball002. Для отмены действия инструмента Use Texture Tool щелкните по кнопке Use Model Tool Для примера воспользуемся сеткой инструмента Use Texture Tool для контейнера UVW Mapping (рис. 4.45). Чтобы сетка производила перемещение или масштабирование текстуры на поверхности объекта, надо выбрать инструмент перемещения
или мас-
штабирования (кнопки расположены на верхней горизонтальной панели инструментов). Далее, прижав сетку левой кнопкой мыши, перемещаем ее, наблюдая за изменениями в текстуре на поверхности объекта. При масштабировании перемещение сетки вверх и влево уменьшает масштаб, а перемещение вправо и вниз — увеличивает. Вернемся к меню Function окна менеджера материалов (рис. 4.46), в котором мы остановились на пункте Apply. Пункты меню позволяют производить действия над образцами материалов, представленными в окне менеджера материалов.
Rename — позволяет переименовывать материалы, что рекомендуется делать для облегчения поиска объектов, к которым принадлежат материалы; Select Materials of Active Objects — позволяет выделить красным цветом имена материалов в библиотеке Materials (рис. 4.1), примененных к активным (выделенным) объектам (для выделения нескольких объектов в окне проекций или в окне менеджера объектов щелкните по ним левой кнопкой мыши, удерживая клавишу Shift); Find First Active Material — если для демонстрации библиотеки материалов используется полоса прокрутки, то данный пункт позволяет перейти к образцу материала, выбранному первым; Select Texture Tags/Objects — для выделенного объекта, к которому применен материал, открывает окно Attributes на закладке Tag, где приведены параметры наложения рисунка материала на объект (размеры рисунка, смещение и др.); Render Materials — при загрузке сохраненной ранее сцены программа в целях экономии памяти может снизить качество загружаемого рисунка текстуры; чтобы этого не произошло, следует активизировать данный пункт; Render All Materials — аналогичен предыдущему пункту, но касается всех материалов, а не только тех, которых были применены к объектам; Sort Materials — позволяет отсортировать материалы по алфавиту по первой букве в их именах; New Material Group — позволяет оформить несколько выделенных образцов материалов в отдельную группу для удобства работы с ними; для этого: — выделите, например, два образца ball001 и ball 002, щелкая по ним левой кнопкой мыши и удерживая клавишу Shift, — вызовите пункт New Material Group, в диалоговом окне Name задайте имя для создаваемой группы материалов, например, Group 1 (рис. 4.47) и щелкните по кнопке ОК; — библиотека Materials преобразится (рис. 4.48): появится дополнительное меню из трех пунктов, переключая которые можно выбирать следующие режимы демонстрации образцов материалов: All — показать все имеющиеся образцы;
Other — показать все образцы, кроме объединенных в группу; Group 1 — показать образцы, объединенные в группу (они показаны на рис. 4.48). Remove Material Group — удаляет выделение материалов в группу (сами материалы остаются в окне менеджера материалов); пункт доступен только, если активна закладка Group (рис. 4.48); Remove Unused Materials — удаляет из библиотеки материалов в окне Materials материалы, не примененные к объектам; Remove Duplicate Materials — удаляет материалы с одинаковыми именами и параметрами; Edit — при выбранном образце материала вызывает окно редактирования материала Material Editor (рис. 4.49), в котором производится настройка основных свойств материала; окно вызывается также двойным щелчком левой кнопкой мыши по образцу материала. В левом верхнем углу окна Material Editor находится окно предварительного просмотра материала, которое можно отключить, щелкнув по кнопке в виде черного треугольника. Ниже находится поле для имени материла и список свойств (каналов) материала.
Чтобы активизировать (подключить) свойство, надо слева от его имени поставить флажок, а чтобы изменить значения свойства, надо щелкнуть по его имени и в правой части окна произвести необходимые настройки параметров. Изменения этих параметров сразу же отражаются в окне просмотра и на объекте (в окнах проекций), к которому материал был применен (чтобы применить материал к объекту, прижмите его образец левой кнопкой мыши и перетащите его из окна менеджера материалов на объект в окне проекций). Список свойств (каналов) текстуры можно получить также в контекстном меню Texture Channels, щелкнув правой кнопкой мыши по образцу материала в библиотеке материалов (рис. 4.50).
именем tile005 и перетащите его, прижав левой кнопкой мыши, в окно проекций на примитив Cube. Чтобы вызвать диалоговое окно Material Editor, щелкните дважды по образцу материала в окне менеджера Materials. В правой части окна (рис. 4.51) приведены настройки свойства Color, среди которых одноименная настройка Color, позволяющая изменять цвет текстуры. В данном случае для материала tile005 библиотечный цвет — светло-коричневый. Изменить библиотечный цвет материала можно либо в палитре цветов, появляющейся после щелчка по белому прямоугольнику (рис. 4.51), либо с помощью бегунков каналов для цветовых схем RGB (красный, зеленый, синий) или HSV (оттенок, насыщенность, значение). Схема выбирается щелчком по кнопке, находящейся под белым прямоугольником (рис. 4.52). Допустим, вы задали зеленый цвет. Он отобразится в прямоугольнике, который до этого был белым (рис. 4.51). В данный момент выбранному материалу tile005 присвоено сразу два цвета: первоначальный из библиотеки (светло-коричневый) и заданный нами
4.2. Свойства материалов Рассмотрим свойства материалов (текстур) на примерах растровых изображений, загружаемых через меню окна менеджера материалов File -> Load Materials.
Свойство Color На рис. 4.51 приведен пример внешнего вида окна Material Editor для настройки свойства Color (основной цвет) для материала tile005. В свойстве Color задается сама текстура и ее цвет, которые будут применены к объекту. Эту текстуру, первоначально выбранную из библиотеки, можно с помощью, настройки Texture (рассмотрим ниже) заменить на другую текстуру, которая будет сразу же применена к текстурируемому объекту и заменит собой первоначально выбранную текстуру. Можно также изменить цвет, в котором представлена текстура в библиотеке. Варьируя с помощью настройки Mix Strength долевое присутствие библиотечного и нового цветов, можно получать текстуру, выполненную в новой цветовой гамме. Назначьте текстуру tile005 примитиву Cube (куб). Для этого выберите в библиотеке (в окне менеджера Materials) соответствующий образец материала с
(зеленый). Долевое присутствие каждого цвета в смеси задается положением бегунка настройки Mix
Strength. В крайнем правом положении он задает материалу только первоначальный цвет, в крайнем левом — только новый цвет. Передвигая бегунок влево, мы тем самым увеличиваем долю вновь назначенного цвета (зеленого) в смеси. Еще одна настройка будет влиять на окончательный цвет. Это способ смешения цветов, задаваемый в Mix Mode. Установите Normal. Рассмотрим пример. Задайте с помощью регулятора Brightness яркость зеленого цвета 80% и передвиньте бегунок настройки Mix Strength на 15%. Вы увидите сохраненный рисунок библиотечной текстуры (черепица), выкрашенный уже в зеленый цвет. Изменяя значение Mix Mode последовательно на Add (сложить), Subtract (вычесть) и Multiply (умножить) (рис. 4.53), оцените отличия в получаемых цветовых смесях.
Помимо цвета, можно заменить и саму текстуру (текстурную карту). Для этого служит параметр Texture. Справа от надписи Texture расположены три кнопки (рис. 4.54).
Крайняя левая кнопка с изображением черного треугольника служит для вызова главного параметра Texture (рис. 4.55). В пункте Bitmaps приведен список загружаемых растровых (построенных по точкам) текстур (рис. 4.56). Среди них присутствуют (только под другими именами) те же материалы, что были загружены в окно менеджера материалов. Так, материал из окна менеджера материалов brick001 имеет имя basic040.jpg (он находится в Texture -> Bitmaps -> basic040.jpg), материал ball002 имеет имя basic051.jpg, материал brick002 имеет имя basic046.jpg и т. д. Проверьте остальные имена. В пунктах Effects и Surfaces (рис. 4.57) можно найти список тонировщиков (текстурных карт, полученных в результате расчета по определенному алгоритму), не имеющих собственных окон Material Editor. Назначим, например, текстуру Stars свойству Color (рис. 4.58). Если в списке на рис. 4.57 выбрать пункт Create New Texture, то вместо новой текстуры можно задать просто цвет (без рисунка). Цвет задается в окне New Texture (рис. 4.58). Тогда с помощью настройки Mix Strength можно просто смешивать эти два цвета. Назначение остальных пунктов меню рассмотрим позже. Вернемся к рис. 4.54. На средней удлиненной кнопке выводится имя файла,
в котором хранится текущий материал, в данном случае это basic042.jpg. Щелчок по этой кнопке изменяет вид правой части окна (рис. 4.59), позволяя задавать основные свойства текстуры (закладка Basic), настраивать характеристики рисунка текстуры (закладка Shader) и параметры анимации (закладка Animation, только для растровых текстурных карт). На рис. 4.59 приведено окно для закладки Basic. Параметр Name сообщает о типе текстуры. Для всех растровых изображений указывается тип Bitmap, а для текстур, полученных расчетным путем (для тонировщиков), индивидуальное название каждого изображения, например, Fire (огонь) (рис. 4.60). Параметры Blur Offset и Blur Scale задают степень размытости изображения и масштаб размытости (рис. 4.61).
На закладке Shader для растровых текстурных карт (рис. 4.62) приведены следующие параметры:
Sampling — задает метод сглаживания пикселей изображения; возможны следующие варианты: — None — текстура выводится без сглаживания пикселей; — Circle, Square, Alias1, Alias2 и Alias3, MIP и SAT — методы сглаживания пикселей, дающие улучшенное качество (в соответствии с порядком их перечисления); например, метод Circle дает худшее сглаживание, чем метод Alias3; File — указывает имя файла, в котором хранится данная текстурная карта; кнопка с тремя точками (конструктор) открывает окно Open File. Кнопка Reload Image — позволяет перезагрузить текстуру, если после внесенных изменений изображение текстуры на образце не обновилось; Кнопка Edit Image — открывает окно графического редактора Microsoft Photo Editor (рис. 4.63),
для каждого из выбранных цветов. В случае с пламенем это диапазоны черный/красный (левый диапазон), красный/оранжевый, оранжевый/желтый и желтый/белый.
в котором возможна обработка изображения, начиная с создания простых размытостей и кончая сложными эффектами изменения характера текстуры с помощью фильтров, собранных в главном меню Effects, и инструментов, собранных в меню Tools. На рис. 4.64 приведен результат редактирования рисунка исходной текстурной карты tile003 с помощью фильтра Stained Glass. Как видно, изображение изменилось до неузнаваемости.
На рис. 4.65 приведено окно фильтра Stained Glass. Рабочая рамка позволяет выводить в окно предварительного просмотра (кнопка Preview) результат. Для текстуры, например, Fire, на закладке Shader (рис. 4.66) с помощью градиентной шкалы Color можно отрегулировать доли составляющих изображение цветов. Шкала работает следующим образом. Указатели в форме карандашей, расположенные под шкалой, задают диапазоны
Внутри каждого диапазона на градиентной шкале находятся белые ромбики, которые задают конкретный цвет из диапазонов, то есть задают хроматический состав пламени и его размеры (рис. 4.67).
Параметр U Frequency задает число повторений рисунка по горизонтальной оси локальной системы координат объекта (ось 0U). На рис. 4.68 приведены изображения, полученные при различных значениях координаты U. Параметр V Frequency указывает, какую долю от высоты объекта занимает изображение. Чем меньше величина этого параметра, тем большее места занимает изображение (рис. 4.69). Влияние параметра Turbulence проиллюстрировано на рис. 4.70. На закладке Animation приведены следующие настройки (рис. 4.71): Mode — позволяет задать способ воспроизведения анимации: Simple — анимация проигрывается один раз; Loop — анимация проигрывается циклично; Ping-Pong — анимация проигрывается в прямом направлении, а затем в обратном.
Свойство Diffusion Это свойство служит для задания областей, в которых основной цвет текстуры затемняется или осветляется. Таким образом, на рисунок основной текстуры накладывается дополнительная полутоновая текстура, называемая картой диффузии. Она выбирается из списка параметра Texture пункта Bitmaps, в котором перечислены имена растровых текстурных карт (рис. 4.56), или из списка пункта Surfaces, где представлены имена тонировщиков (рис. 4.57). Таким образом, в качестве карт диффузии используются те же самые текстурные карты, что и при создании основного цвета в свойстве Color. Так как многие текстурные карты цветные, то при использовании их в качестве чернобелой карты диффузии в учет принимается только информация о яркости пикселей, а информация о цвете игнорируется. Рассмотрим пример. Присвойте примитиву Cube в качестве основной текстурную карту brick001 (выберите в библиотеке образец материала brick001 и перетащите его, прижав левой кнопкой мыши, на куб) (рис. 4.72).
Дважды щелкните по образцу материала brick001, чтобы открылось окно Material Editor (рис. 4.73), в котором поставьте флажок напротив свойства Diffusion и щелкните по надписи Diffusion. В результате в окне Material Editor в правой его части откроются настройки свойства Diffusion. Настройка Brightness задает яркость основной текстуры до того момента, пока на нее не наложена карта диффузии (после наложения движок яркости не работает, пока основная текстура не будет выделена из «смеси» перемещением движка Mix Strength влево). В списке параметра Texture (вызывается щелчком по левой кнопке с изображением черного треугольника) выберем тонировщик Checkerboard (Surfaces -> Checkerboard, рис. 4.73). В результате на основную текстуру наложена карта диффузии Checkerboard. Таким образом, на основной текстурной карте мы создали области затенения и осветления (рис. 4.74). С помощью настройки Blur Offset задается степень размытости границ областей (рис. 4.75).
Настройки Affect Luminance, Affect Specular и Affect Reflection задают характеристики диффузионного отражения света для свойств Luminance (свечение), Specular (блик) и Reflection (отражение). Текстурная карта Checkerboard сама по себе чернобелая, поэтому проблем с определением затененных и высветленных областей не возникает. Проверим, как себя ведет цветная текстурная карта, например тонировщик Brick (Surfaces -> Brick). Текстурная чернобелая карта диффузии создается на основе сравнения яркости пикселей, но не их цвета (рис. 4.77).
Свойство Luminance
При перемещении бегунка Mix Strength влево доля присутствия карты диффузии уменьшается, и при значении настройки Mix Strength 0% эффект наложения карты диффузии исчезает (рис. 4.76).
Материал, у которого поставлен флажок Luminance, становится самосветящимся, то есть не отражающим падающий свет, а излучающим собственный. Такой самоизлучающий материал назначается через параметр Texture после установки флажка Luminance. Самоизлучать может не только материал, но и просто цвет, который назначается в настройке Color. Рассмотрим пример. Используем объект из предыдущего примера, для которого назначен основной материал brick001 и карта диффузии Brick. Если в рассмотренном выше свойстве Diffusion флажок Affect Luminance сброшен, то выбранная в свойстве Diffusion карта диффузии не может быть использована в качестве самоизлучающего материала. Если при этом для свойства Luminance в параметре Texture самоизлучающий материал не выбран, а в настройке Color не выбран самоизлучающий цвет, то объект будет
ослабевает и проступает зеленое свечение, которое полностью подавляет свечение текстуры при Mix Strength 0%. Если поставить флажок Affect Luminance в рассмотренном выше свойстве Diffusion и сбросить самоизлучающие цвет и текстуру, то в качестве самоизлучающего материала будет использована карта диффузии (рис. 4.81).
светиться цветом, установленным по умолчанию, — белым (рис. 4.78). Установим цвет самосвечения. Для этого щелкните по белому прямоугольнику настройки Color и выберите, например, зеленый цвет. В результате куб будет светиться зеленым цветом, просвечивая основной материал brick001 и карту диффузии Brick (рис. 4.79). Если теперь добавить самоизлучающий цвет, то карта диффузии станет излучать этим цветом. Добавьте зеленый и убедитесь, что карта диффузии излучает зеленый свет. Добавьте теперь самоизлучащую текстуру, например, тонировщик Flame (рис. 4.82). При положении бегунка настройки Mix Strength в позиции 100% зеленый цвет самоизлучения карты диффузии будет блокирован цветом тонировщика Flame. Но при положении бегунка Mix Strength в позиции 0% карта диффузии будет излучать зеленый цвет. Установим поверх самосветящегося цвета еще и самосветящуюся текстуру. Для этого щелкните по левой кнопке (с черным треугольником) настройки Texture и выберите в выпадающем меню Surface -> Flame (рис. 4.80). Как и для остальных свойств, параметр Mix Strength задает процентное содержание в смеси двух компонентов — исходной текстурной карты и второй карты, назначенной с помощью параметра Texture. При положении бегунка настройки Mix Strength в районе 100% назначенная самоизлучающая текстурная
Свойство Transparency
карта подавляет зеленое свечение основной карты. При перемещении бегунка влево свечение текстуры
Данное свойство придает объекту прозрачность. На рис. 4.83 приведено изображение двух объектов: цилиндр вставлен в куб. Куб взят из предыдущего примера. Степень прозрачности куба регулируется положением бегунка настройки Brightness: максимальная прозрачность при 100%, минимальная — при 0. На рис. 4.83 цилиндр просвечивает через куб, у которого установлена максимальная степень прозрачности. Коэффициент преломления материала может изменяться в диапазоне от 0,25 до 4 и задается в настройке Refraction (рис. 4.86). В зависимости от угла, под которым наблюдатель рассматривает поверхность материала, меняется отношение между преломленным
и отраженным светом. Для учета этого эффекта следует поставить флажок настройки Fresnel. Рассмотрим пример. Исследуем влияние настройки Refraction. Создадим композицию, изображенную на рис. 4.84 (вид сверху).
Здесь дополнительно к кубу из предыдущего примера добавлены светящийся цилиндр и прозрачный куб. Цилиндру задайте свечение белым светом (рис. 4.85). Значения параметров свойства Transparency приведены на рис. 4.86. Обратите внимание, что первоначально настройка Refraction установлена на 0.25. Разверните сцену по отношению к наблюдателю следующим образом (рис. 4.87). Светящийся цилиндр должен быть справа, куб из предыдущего примера — позади прозрачного куба.
Для манипуляций с объектом используйте инструменты, размещенные в правом верхнем углу окна проекций (рис. 4.88).
Исследуем влияние изменения коэффициента преломления материала куба Refraction на получающееся изображение. Напомним, что коэффициент преломления характеризует изменение направление луча света при переходе через границу двух сред с различной плотностью. Коэффициент преломления для воды относительно воздуха составляет 1.33. В нашем случае окружающая среда имеет коэффициент преломления 1. При неизменных прочих настройках для всех объектов, входящих в сцену, будем менять настройку Refraction для материала полупрозрачного куба, присваивая ей последовательно следующие значения 0,25; 1; 1.73; 4. Для просмотра сцены надо включить режим визуализации (рендеринга) — в главном меню
Render -> Render View. Подробнее рендеринг (пересчет трехмерного изображения в двумерное) будет рассмотрен в последующей главе. Результаты и комментарии приведены на рис. 4.89 — 4.93.
Вернемся к настройкам свойства Transparency. Настройка Additive позволяет сохранить основной цвет материала при изменении степени прозрачности. Настройка Texture позволяет использовать текстурную карту в качестве карты прозрачности. Яркость пикселя текстуры определяет степень прозрачности этого участка, а цвет пикселя — цвет пропускаемого света. На рис. 4.93 в качестве карты прозрачности назначен черно-белый тонировщик Checkerboard.
Настройка Dispersion позволяет имитировать матовый материал. Для различных участков поверхности материала в зависимости от сложности используется различное количество расчетных узлов, задаваемое в настройках Min Samplers и Max Samplers. Качество матового эффекта задается в процентах в настройке Accuracy (рис. 4.86).
Свойство Reflection Свойство придает поверхности материала зеркальность. Рассмотрим пример. Создадим отражение одного примитива (например, сферы), от поверхности
жения из набора тонировщиков Checkerboard. В настройке Color можно также задать цвет отражения.
другого примитива (например, куба). Расположим объекты, как показано на рис. 4.94. На рис. приведены точные координаты расположения объектов (на рис. 4.95 для куба, на рис. 4.96 — для сферы).
Назначим кубу материал marble003, а сфере — brick001. В окне Material Editor материала marble003 для куба зададим только одно свойство Reflection (рис. 4.97). В окне Material Editor материала зададим тоже только одно свойство — Luminance (рис. 4.98). Для рендеринга полученного изображения в главном меню выберем пункт Render -> Render View (или Ctrl R) (рис 4.99). Если задать материалу куба еще свойства Color и Diffusion, то будут видны очертания куба и рисунок материала поверхности (рис. 4.100). Можно дополнительно задать текстуру, определяющую карту отражения по принципу: более темные пиксели соответствуют области с более низкой отражательной способностью и обратно. Карта отражения задается с помощью параметра Texture. На рис. 4.101 отражающей поверхности куба присвоена карта отра-
Создадим отражение поверхности пола, создав предварительно сам пол (меню Objects -> Scene -> Floor), на поверхности лежащего на полу предмета.
Свойство Environment
Поверхности пола присвоим материал Brick001 (рис. 4.102). Результаты для сферы и цилиндра на рис. 4.103.
Сделаем то же самое для цилиндра (рис. 4.104, 4.105).
Данное свойство позволяет создать в качестве отражения на поверхности не окружающие предметы, а какое-либо изображение. Изображение загружается в настройку Texture свойства Environment. При данном способе построения отражения не нужны окружающие предметы и само построение (расчет) происходит быстрее, чем при использовании свойства Reflection. Рассмотрим пример. Зададим в качестве отражения на поверхности примитива Cube с материалом metal008 текстурную карту Stars. Создав примитив Cube, назначим его поверхности материал metal008 с активными свойствами, указанными на рис. 4.106, 4.107.
Для свойства (канала) Environment с помощью параметра Texture зададим тонировщик Stars (рис. 4.107). Тонировщик будет использован материалом meta!008 в качестве картинки, отраженной от его поверхности. В полях Tiles X и Tiles Y указывается число повторений изображения текстуры (используемой в качестве отражения) по осям 0Х и 0Y. Обратите внимание на параметры Tile X и Tile Y, которые задают количество повторений изображения. Они заданы по 30. При, например, 1 на поверхности куба может отразиться часть изображения звезды. Флажок Exclusive в установленном состоянии позволяет строить отражение через свойство (канал) Environment только на той части поверхности объекта, где нет отражений от «реальных» окружающих предметов, построенных через свойство Reflection. Не забывайте для просмотра результата производить рендеринг (Render -> Render View).
Свойство Fog Данное свойство позволяет получить размытое изображение объекта (как бы в тумане). Используйте свойство Fog (туман) совместно со свойством Transparency, настройка которого Refraction определяет коэффициент преломления материала.
Настройка Distance определяет близость наблюдателя к объекту, окутанному туманом. Рассмотрим пример. На рис. 4.108, 4.109 приведены значения настроек для примитива Cube с материалом marble003, а на рис. 4.110 — изображение объекта в тумане. Измените настройку Refraction с 3 на 0,6. Изображение куба стало еще более размытым. Результат приведен на рис. 4.111. Измените значение настройки Distance с 1000 м на 10 м. При неизменных прочих условиях, эффект размытости исчезает.
Свойство Bump Свойство позволяет имитировать неровности (рельеф) на поверхности объекта. Эффект рельефа возникает на основе оптического ощущения приближенности светлых мест и удаленности темных. Таким образом, чем ярче пиксель, тем он кажется выше над поверхностью (ближе к наблюдателю), чем темнее пиксель — тем ниже он воспринимается (дальше от наблюдателя). Изменение яркости пикселей возникает за счет изменения направления нормалей к поверхности объекта. Рассмотрим пример. Создадим новый материал (в меню менеджера материалов File -> New Material) и примитив Cube (куб). Присвоим новый материал кубу. Щелкнем дважды по значку нового материала в окне менеджера материалов и откроем окно Material Editor. Активизируем свойство Bump (рис. 4.112) и загрузим в него текстурную, например, Texture -> Surfaces -> Checkerboard (рис. 4.112). Параметр Strength задает степень неровности поверхности и может намного превышать 100%. Задайте 800%. Можно задать отрицательные значения, что инвертирует рельеф (выпуклости станут углублениями).
На рис. 4.113 приведено изображение, полученное после рендеринга (Render-> Render View или нажать две клавиши Ctrl+ R). Цветная текстура, используемая в свойстве Bump, становится черно-белой, так как для создания рельефа важна интенсивность (яркость) пикселей, а не их цвет. Убедимся в этом. Удалим предыдущую текстуру (Texture -> Clear) и назначим цветную текстуру, например, Texture -> Surfaces -> Cloud (рис. 4.114).
Задайте величину рельефа в параметре Strength побольше, например, 550%. Сделайте рендеринг и убедитесь, что изображение черно-белое (рис. 4.115). Чтобы добавить к рельефу цвет, задайте его (для того же материала) в свойстве Color (рис. 4.116) и сделайте рендеринг изображения.
Свойство Alpha Свойство позволяет скрыть часть рисунка текстурной карты на поверхности объекта за счет наложения на объект второй текстурной карты, которая выбирается в параметре Texture и загружается в свойство Alpha. Светлые области текстуры Alpha непрозрачны, а темные — прозрачны.
Рассмотрим пример. Назначим объекту Cube в свойство Color материал brick001 В свойство Alpha загрузим текстуру Checkerboard (Texture -> Surfaces -> Checkerboard) (рис. 4.117). Таким образом чернобелая текстура (шахматная доска) наложена на текстуру кирпичной кладки.
При установке флажка Soft белые квадраты накладываемой текстуры будут абсолютно непрозрачны и лежащей под ними кладки видно не будет, а черные станут совершенно прозрачны. Флажок Invert меняет порядок чередования областей прозрачности на противоположный (рис. 4.118).
Рассмотрим другой пример. В окне менеджера материалов создайте новый материал (File -> New Material). Дважды щелкните на значке нового материала, чтобы вызвать окно Material Editor. Активизируйте свойство Color и с помощью параметра Texture загрузите в него не текстуру, а какое-либо изображение, например, фотографию картины (Texture -> Load Image) (рис. 4.119, 4.120). Присвойте этот материал, содержащий картину, примитиву Plane (рис. 4.121).
Активизируйте свойство Alpha. Используя настройки Color и Delta (рис. 4.122), попытайтесь удалить
некоторые цвета с картины. Для этого надо щелкнуть на прямоугольном поле справа от имени Color или Delta, чтобы вызвать палитру цветов, в которой выбрать скрываемый (удаляемый) цвет.
Очень важно правильно угадать основной скрываемый цвет Color и цвет, задающий допустимое отклонение от основного цвета Delta. Это сделать достаточно сложно, так как восприятие цвета индивидуально. Лучше иметь перед собой хроматический круг и подбирать по нему цветовые диапазоны настроек Color и Delta, а также определять участки картины, которые в эти цветовые диапазоны попадают. На рис. 4.123 приведен пример удаления цветов, попавших в диапазон Color — зеленый и Delta — фиолетовый. В живописных картинах градация цветов очень тонка, поэтому попасть в тон достаточно трудно.
Рассмотрим пример. Для объекта примитива Plane (плоскость) назначим новый материал: в менеджере материалов вызовем пункт меню File > New Material (Файл -> Новый материал) (рис. 4.124). Присвоим созданный материал примитиву Plane, перетащив на него левой кнопкой мыши пиктограмму материла (из окна менеджера материалов) (рис. 4.125).
Дважды щелкнем на пиктограмме созданного материала, чтобы открыть окно Material Editor (рис. 4.126), активизируем свойство Color и загрузим в него тонировщик Cloud (облако) (Texture -> Surfaces -> Cloud) (рис. 4.126).
Активизируем свойство Alpha и загрузим в него тонировщик Fire (Огонь) (Texture -> Surfaces -> Fire) (рис. 4.127).
Параметры пятна блика отражаются на диаграмме, и их можно изменять с помощью следующих настроек (рис. 4.129); Width — определяет размер пятна блика;
Текстурная карта тонировщика Fire (через свойство Alpha) будет наложена на текстуру Cloud (загруженную в свойстве Color) и «вырежет» из нее область по форме пламени. Изображение после рендеринга показано на рис. 4.128. Таким образом с помощью Alpha-канала можно вырезать как по трафарету из материала, на который накладывается текстура Alphaканала.
Height — определяет яркость в центре пятна блика; Falloff — задает плавность перехода яркости от центра к периферии блика; Inner Width — задает размер области внутри пятна блика, в которой яркость постоянна.
Свойство Specular Color Свойство Specular Свойство позволяет создавать блик на поверхности объекта. Основные настройки приведены на рис. 4.129. Меню Mode позволяет выбрать тип блика: Plastic — имитирует блик белого цвета с отчетливо различимой границей, характерный для таких материалов, как пластик, дерево (рис. 4.130). Metal — имитирует блик металлических поверхностей; цвет блика определяется основным цветом материала, а остальная часть поверхности затемняется; Colored — аналогично Metal, но остальная часть поверхности не затемняется (рис. 4.131).
Свойство служит для задания цвета блика и отражающейся в блике текстуры. Если блик типа Plastic (блик белого цвета), то задаваемые в свойстве Specular Color цвет и текстура присваиваются блику. Например, задайте блику на поверхности примитива Sphere с материалом marble003 текстуру Brick (рис. 4.132), и текстура Brick отразится в блике (предварительно надо настроить параметры блика в свойстве Specular). Если блик типа Metal или Colored (блик цвета основной текстуры), то задаваемый в свойстве Specular Color цвет и текстура смешиваются с цветом основной текстуры.
Настройка Out Strength задает интенсивность (в относительных процентах) свечения вокруг границы объекта (ореол) (рис. 4.135).
Свойство Glow Свойство позволяет создавать свечение вокруг объекта. Рассмотрим пример. На рис. 4.133 приведены значения настроек для получения свечения вокруг объекта Sphere с материалом metal008.
Настройка Radius задает радиус распространения свечения вокруг объекта (размер ореола) (рис. 4.136).
Флажок Use Material Color назначает свечению основной цвет материала, задаваемый в параметре Color свойства Color. Если флажок снят, то цвет ореола задается в параметре Color свойства Glow.
Свойство Displacement Настройка Inner Strength задает интенсивность (в относительных процентах) свечения тела объекта (рис. 4.134).
Отличие свойства Displacement от свойства Bump в том, что свойство Displacement действительно деформирует поверхность объекта.
Вначале объект необходимо перевести в полигональное состояние (меню Functions -> Make Editable), так как на объекты, представленные в параметрическом виде, свойство не действует. Создайте примитив Sphere и переведите его в полигональный вид. Создайте в окне менеджера материалов новый материал, откройте его окно Material Editor, активизируйте свойство Displacement и через свойство Texture загрузите материал, например, тонировщик Cloud (Texture -> Surfaces -> Cloud) (рис. 4.137). Тонировщик Cloud будет использован как карта деформации для поверхности объекта.
Параметр Strength задает величину деформации, параметр Height максимальное расстояние от поверхности объекта, которое не должно быть превышено при изменении значения Strength (рис. 4.138, 4.139).
Можно в свойстве Color задать объекту первоначальный материал, например, С1ау001, а затем в свойстве Displacement задать текстуру, например, basic022.jpg в качестве карты деформации (рис. 4.140). На рис. 4.141 представлен результат после рендеринга.
Свойство Illumination Создает подсветку. Предусмотрено три модели подсветки по Фонгу (Phong), по Блинну (Blinn) и Ориен — Найяр (Orien — Nayar).
Модели перечислены в списке Model (рис. 4.142). Модель по Фонгу дает блик с нечетко очерченными краями и применима, например, для пластика. Модель Блин дает блик с аккуратными краями и применима к блестящим материалам, например, к металлу. Модель Ориен — Найяр применима к шероховатым поверхностям (песок, бумага, бетон).
4.3. Тонировщики
Свойство Assignment Выводит список объектов с тэгами материалов, участвующих в сцене (рис. 4.143).
Если щелкнуть правой кнопкой на имени объекта, будет выведено контекстное меню, содержащее следующие пункты: Remove — удаляет материал (тэг исчезает в окне менеджера объектов, но имя объекта остается); Remove All — удаляет все материалы; Show in Manager — если объектов много, то в окне менеджера объектов производится прокрутка и находится выбранный объект; Delete Tag — удаляет тэг материала; Select Tag — выбор тэга (открывает в окне менеджера атрибутов свойства тэга).
Тонировщики (Shaders), в отличие от растровых изображений, построенных по точкам (пикселям), получены расчетным путем и при большом увеличении сохраняют гладкость картинки («не пикселят»). Так как тонировщики рассчитываются по математическим формулам, то это позволяет учитывать при их создании изменения таких параметров сцены, как интенсивность освещения, расположение поверхностей, позицию камеры и т. д. Различают двухмерные (2D Shader) и трехмерные (3D Shader) тонировщики. Двухмерные тонировщики просто накладываются на поверхность, а трехмерные учитывают объем объекта. Все параметры тонировщиков могут быть анимированы. Тонировщики разделены на две группы. Первая группа тонировщиков не имеют своего окна Material Editor и загружается в какое-либо свойство (канал) материала, например, в Color или Luminous. Как вы заметили из предыдущего материала, эти тонировщики доступны в окне Material Editor данного материала в списке параметра Texture (рис. 4.144). Создайте новый материал (в окне менеджера материалов), вызовите для этого материала окно Material Editor, в котором щелкните по кнопке с черным треугольником справа от имени Texture. Имена тонировщиков собраны в списке, начиная с имени Color (рис. 4.144). Пункты Effects, Surfaces имеют собственные списки тонировщиков, которые также будут рассмотрены ниже.
Тонировщики второй группы имеют собственные диалоговые окна Material Editor. Эти тонировщики собраны в меню File -> Shader окна менеджера материалов (рис. 4.145). Вначале рассмотрим тонировщики первой группы.
4.3.1. Тонировщики, не имеющие собственного окна Material Editor Тонировщик Color
Рассчитывает цвет. Создайте объект — примитив Sphere, создайте новый материал, вызовите Material Editor.
В свойстве Color загрузите одноименный тонировщик Color (Texture -> Color) (рис. 4.146). Чтобы открыть окно свойств тонировщика (рис. 4.147), щелкните либо на длинной кнопке с именем тонировщика, либо на прямоугольнике предварительного просмотра (рис. 4.146). В окне свойств перейдите на закладку Shader, где собраны свойства тонировщика (для каждого разные). Задайте нужный цвет и яркость (ползунок Brightness).
Тонировщик Noise Позволяет создавать 30 различных типов шумов (хаотичных узоров) (2D и 3D). Преимуществом трехмерных шумов является бесшовное наложение на объект. На рис. 4.148 представлены свойства тонировщика Noise.
Color 1 и Color 2 задают два цвета, с помощью которых создается случайный узор (шум) на поверхности объекта. Noise — содержит список 30 типов шумов (рис. 4.149). Шум создает структуру случайного узора, который можно использовать для моделирования, например, каменистой поверхности, органических объектов. Задайте различные пары цветов и просмотрите, как выглядят различные типы шумов. Не забывайте делать рендеринг изображений. Octaves — задает уровень детализации шума (узора). Space — задает тип пространства, в котором создается шум (рис. 4.150). UV — в двумерном пространстве. Texture — в объеме объекта, принимая во внимание параметры, указанные в свойствах тэга. Object — как Texture, только не учитываются свойства тэга. World — в глобальных координатах. Camera — в поле зрения камеры. Screen — с учетом глубины по координате Z. При движении по оси 0Z узор перспективно изменяется. Raster — как Screen, только не учитывается изменение по оси 0Z. Global Scale, Relative Scale — позволяют масштабировать узор.
Тонировщик Gradient Позволяет создавать различные градиенты в двух и трехмерных пространствах.
Чтобы задать цвета градиента, щелкните на черном треугольнике справа от имени Gradient (рис. 4.152). В результате появятся дополнительные параметры (рис. 4.153).
Animation Speed — задает скорость анимации в циклах/с. Detail Attenuation — задает степень сглаживания. Delta — позволяет получить отчетливый рельеф. Movement — задает параметры по координатам при пересчете рисунка рельефа при его движении вдоль оси 0Z. Speed — применяется для задания скорости при анимации движения (например, воды и языков пламени). Cycles — задает, за сколько циклов был создан случайный (шумовой) узор. Low Clip, High Clip — задают нижнюю и верхнюю границы полосы пропускания шума. Brightness — задает яркость изображения шума. Contrast — задает четкость изображения шума. Use As Environment — заставляет узор (шум) обтекать объект (рис. 4.151).
Вначале градиент будет черно-белый с двумя бегунками. Чтобы добавить цвет, добавьте бегунок. Для этого щелкните левой кнопкой мыши по свободному месту под градиентной шкалой там, где уже есть бегунки. Как только бегунок возникнет, активизируются параметры назначения цвета. Эти параметры задают цвет для данного бегунка (квадрат бегунка будет выкрашен в этот цвет), то есть цвет для монохромного градиента. Если хотите создать полихромный градиент, то добавьте еще бегунки и назначьте им соответствующие цвета. Цвет выбирается стандартно через палитру или в долях RGB.
Тонировщик Frensel Определяет угол между нормалью к поверхности объекта и осью визирования камеры (углом, под которым объект рассматривается в окне проекций). Если
этот угол меньше 90 , то применяется цвет, заданный в левой части шкалы градиентов Gradient (рис. 4.154). Если угол больше 90°, то применяется цвет, заданный в правой части шкалы градиентов. Создадим модель глазного яблока. Области по периферии должны быть белого цвета, а в центре пусть будет черный зрачок с голубой радужной оболочкой. Так как нормали по периферии образуют к направлению наблюдателя (камеры) угол больше 90°, то им будет присвоен цвет левой части градиентной шкалы. Поэтому в левой части градиентной шкалы создадим белую область (рис. 4.154).
Тонировщик Filter Позволяет фильтровать другие тонировщики или растровые изображения.
Зрачок и радужная оболочка располагаются в области, нормали к которой составляют угол к направлению наблюдателя меньше 90°, поэтому цвета для зрачка и радужной оболочки расположим в правой части градиентной шкалы (рис. 4.154). Присвойте полученный материал к примитиву сфера и сделайте рендеринг (рис. 4.155).
Исходная текстура загружается из списка параметра Texture и настраивается с помощью стандартных настроек (рис. 4.157), влияющих на цветовые оттенки (Hue), насыщенность цвета (Saturation), яркость (Lightness) и т. д. А сейчас самое интересное. С помощью инструмента Rotate (рис. 4.156) произвольно вращайте сферу и снова сделайте рендеринг. Вы увидите, что несмотря на то, что сфера была повернута, зрачок все равно снова смотрит на вас. Это происходит потому, что текстура Frensel не прикрепляется намертво к поверхности объекта, а размещается на ней, исходя из взаимной ориентации нормалей к поверхности и направления взгляда (камеры) наблюдателя.
Тонировщик Fusion Позволяет объединить две текстуры, которые задаются в параметрах Base Channel и Blend Channel (рис. 4.158). Параметр Mode задает различные режимы смешения текстур. Параметр Blend задает долю двух текстур Base Channel и Blend Channel в окончательном изображении: Текстура, заданная в Base Channel, располагается в нижнем слое окончательного изображения. Текстура, заданная в Blend Channel, располагается в верхнем слое и подмешивается к текстуре, заданной в
Base Channel. При сброшенном флажке Use Mask: ползунок в левом положении дает только текстуру Base Channel, ползунок в правом положении дает только текстуру Blend Channel. Создадим изображение земли в дымке облаков (рис. 4.159, 4.160).
Можно присвоить этот материал стакану, изготовленному с помощью инструмента Lathe NURBS по сплайну (задает контур половины сечения стакана) (рис. 4.161). Если установить флажок Use Mask, то положение ползунка параметра Blend будет задавать прозрачность текстуры, заданной в канале Mask Channel, и уже через него будет подмешиваться текстура канала Blend Channel. Установите параметры, как показано на рис. 4.162. На рис. 4.163 показан результат после рендеринга. Параметр Invert Mask инвертирует прозрачные и непрозрачные области текстуры маски, параметр Invert Output инвертирует цвета окончательной текстуры.
Копировщик Layer Позволяет объединять множество изображений и текстурных карт (как растровых, так и тонировщиков) (рис. 4.164). Тонировщик крайне эффективен для создания сюрреалистических композиций с просвечиванием одного изображение сквозь другое.
Кнопка Image... позволяет загружать исходные изображения, например, ваши оцифрованные фотографии. Кнопка Shader позволяет загружать тонировщики. Загрузим с помощью кнопки Image... две оцифрованные фотографии картин (рис. 4.165). Вы можете загрузить две любые свои фотографии. Картины будут выведены в окне Material Editor (рис. 4.166). Справа расположены ползунки, задающие долю каждого изображения в конечном изображении.
Добавьте с помощью кнопки Shader тонировщик Checkerboard и настройте все три ползунка (оцифрованные настройки на рис. 4.166), чтобы получилось изображение как на рис. 4.167.
Кнопка Effects — открывает список дополнительных настроек, действие которых понятно из названий (рис. 4.168). На рис. 4.169 приведены настройки, а на рис. 4.170 результат применения эффекта Distort (Искажение) к одному из исходных изображений.
угольнику справа от имени Texture, загрузите какуюлибо текстуру и проверьте действие тонировщика Colorizer. Если яркость участка текстуры превосходит допустимое значение, то при сброшенном флажке Cycle действие тонировщика Colorizer отключается. Установленный флажок Cycle отменяет отключение тонировщика Colorizer.
Тонировщик Posterizer Используется как фильтр, чтобы настроить другой тонировщик или изображение, загружаемое через параметр Texture (рис. 4.173). Кнопка Folder создает папку, в которой могут быть сгруппированы (для удобства дальнейшего пользования) текстуры и изображения. Кнопка Remove удаляет выбранное изображение.
Тонировщик Colorizer Позволяет раскрашивать текстуру цветовой гаммой, задаваемой в настройке Gradient (рис. 4.171).
Позволяет задавать до 40 оттенков одного цвета (задается параметром Levels). Границы тоновых переходов цвета сглаживаются с помощью Filter Width. Переходим к группе тонировщиков, собранных в пункте меню Effects (рис. 4.174).
Тонировщик Backlight Позволяет создавать эффект просвечивания поверхности (с генерацией теней), похожий на то, как просвечивают лист бумаги. Для получения подсветки тонировщик Эффективно, в частности, для раскраски чернобелых тонировщиков, например, Noise. Раскраска текстуры производится через одно из ее цветовых свойств, задаваемых в параметре Input. Это светосила (Luminance), оттенок (Hue), насыщенность (Saturation), яркость (Lightness), красный (Red), зеленый (Green), голубой (Blue) (рис. 4.172).
В параметре Gradient задается цветовой градиент. Самые темные участки текстуры раскрашиваются цветом левой части градиентной шкалы, а самые светлые — цветом правой части. Цвета средней части шкалы используются для участков с промежуточной светосилой. В окне Material Editor щелкните по черному тре-
Spread — задает телесный угол, в котором могут распространяться испускаемые поверхностью лучи относительно нормали к поверхности. При 100% лучи могут распространяться в любых направлениях в пределах полусферы. При 0% — только в направлении нормали к поверхности. Contrast — задает степень контрастности изображения грязи. На рис. 4.179 приведен пример применения тонировщика Dirt для примитива Landscape (главное меню Objects -> Primitive -> Landscape). Параметры примитива Landscape приведены на рис. 4.177. Настройки тонировщика Dirt приведены на рис. 4.178. Backlight следует разместить в свойстве Luminance, при этом общий цвет задается в свойстве Color. На рис. 4.175 приведены свойства тонировщика Backlight: Color — диффузный цвет подсвечиваемой поверхности; Algorithm — задается алгоритм для расчета свечения; Illumination — максимальная интенсивность свечения; Roughness — задает степень неровности (шершавости) поверхности; Shadow Intensity — задает степень непрозрачности тени; Contrast — задает степень контрастности свечения.
Тонировщик Dirt Позволяет имитировать эффект накопления грязи в углублениях рельефной поверхности. Существует два метода. Один метод применим в случае, если у вас установлен модуль Body Paint.3D. Надо вызвать в главном меню Render -> Calculate Dirt для создания текстурной карты участков загрязнения по поверхности объекта. Второй метод использует непосредственно тонировщик Dirt, окно свойств которого приведено на рис. 4.176.
Number of Rays — задает количество лучей, генерируемых точкой поверхности. Высокие значения создают грязь с более гомогенными (однородными) характеристиками.
Тонировщик загружается в свойство Color материала New Material.
Тонировщик Distorter Позволяет деформировать одну текстуру с помощью другой текстуры. Деформируемая текстура загружается через свойство Texture, деформирующая текстура загружается в свойстве Distorter (рис. 4.180). Загрузите текстуры, как показано на рис. 4.181. В качестве объекта использован примитив Plane. Параметр Туре задает алгоритм, по которому рассчитывается деформация.
Параметры X, Y, Z задают величину деформации по соответствующим осям. Параметр Delta позволяет настраивать качество рельефа на поверхности. Параметр Step работает при использовании алгоритма Flow Field (параметр Туре, рис. 4.181) и используется для определения направления деформации (рис. 4.184).
Тонировщик Falloff Параметр Wrap позволяет выбрать действие над частью текстуры, которая была деформирована и теперь находится вне UV-координат. Параметр Amount задает величину суммарной деформации (рис. 4.182, 4.183).
В зависимости от угла между единичным вектором (нормалью) к поверхности объекта и направлением визирования камеры на объект (в каком ракурсе объект представлен в окне проекций) тонировщик окрашивает эту поверхность в соответствующие цвета, используя параметр Gradient (рис. 4.185).
В параметре Direction задаются координаты вектора, определяющего направление визирования камеры на объект. В параметре Space задается используемая при расчете система координат. Флажок Use Bump в установленном состоянии позволяет учитывать неровности поверхности объекта при построении нормали.
Тонировщик Lumas Позволяет получать блик на поверхности объекта. Окно свойств содержит 6 закладок (рис. 4.186). Закладка Shader содержит настройки непосредственно самого тонировщика. Это основной цвет поверхности (Color), алгоритм расчета, шероховатость поверхности (Roughness), освещенность и контраст.
Закладка Anisotrophy позволяет смоделировать, например, царапины на поверхности (рис. 4.188).
Тонировщик Normal Direction Поверхности объекта, нормали к которым совпадают с направлением взгляда наблюдателя, окрашиваются в цвет, заданный в параметре Color 1 (рис. 4.189). Остальные поверхности окрашиваются в цвет, задаваемый в параметре Color 2.
Тонировщик Projector Проецирует текстуру на поверхность объекта (рис. 4.190). Закладки Specular 1, Specular 2 и Specular 3 позволяют настроить следующие параметры трех бликов на поверхности объекта (рис. 4.187) цвет (Color), интенсивность (Intensity), размер (Size), контрастность (Contrast), яркость (Glare), ослабление (Falloff).
Texture — задает текстуру или какое-либо другое изображение, которое будет спроецировано на поверхность. Projection — задает метод проецирования. Смысл остальных параметров очевиден из предыдущего изложения.
Тонировщик Proximal Позволяет связать яркость выбранного объекта с расстоянием до объекта и объектом, к которому применен тонировщик. Наиболее эффективно тонировщик проявляет себя, будучи загруженным в свойство Luminance. Создайте примитив Cube и переведите его в полигональное состояние. Создайте эмиттер (рис. 4.191). Создайте новый материал и присвойте его объекту Sphere. Откройте окно Material Editor для нового материала.
Загрузите тонировщик Proximal в свойство Luminance и перетащите в поле Object имя Emitter (рис. 4.192).
следы частиц в зависимости от значения параметра End Distance.
Тонировщик Ripple Тонировщик позволяет смоделировать на поверхности объекта следы (вмятины, рябь) от ударов частиц. В качестве источника частиц можно использовать стандартный эмиттер (Objects -> Particle -> Emitter) или модуль Thinking Particles. Действие тонировщика можно наблюдать только в окне Render -> Picture Viewer. Наиболее эффектно действие тонировщика наблюдается при его загрузке в свойство Bump (рис. 4.197). Создайте объект — примитив Sphere и эмиттер Objects -> Particle -> Emitter (рис. 4.195, 4.196).
Основные параметры, задающие влияние расстояния, это Start Distance и End Distance. Запустите анимацию и сделайте рендеринг для какого-либо из кадров, в котором частицы долетают до поверхности куба. На рис. 4.193, 4.194 видны световые
Примитив Sphere переведите в полигональное состояние и настройте количество генерируемых частиц (параметр Birthrate для объекта Emitter). В окне менеджера материалов создайте новый материал и присвойте его объекту Sphere (перетащите его значок на объект Sphere в окно проекций). Откройте окно Material Editor. В свойстве Color назначьте основной цвет. Активизируйте (поставьте галочку) свойство Bump (рельеф) и откройте его, щелкнув на его имени. Выберите в списке свойства Texture -> Effects -> Ripple и откройте свойства тонировщика (рис. 4.197). Из окна менеджера объектов перетащите имя Sphere в поле Object окна Material Editor, а имя Emitter в поле Particles (рис. 4.197).
Тонировщик Spectral Позволяет создавать многоцветные (полихромные) блики как на поверхности янтаря или на оптическом CD-диске. Для получения нужного эффекта тонировщик следует загрузить в свойство Specular Color. Создайте новый материал, присвойте его сфере, откройте окно Material Editor и загрузите в свойство Specular Color тонировщик Spectral (рис. 4.199).
Рассмотрим параметры тонировщика Ripple (рис. 4.197): Wave Length — задает расстояние между гребнями ряби (деформации), получаемой на поверхности объекта в результате бомбардировки его частицами. Speed, Amplitude — задают скорость распространения ряби и высоту гребня. Falloff — моделирует эффект затухания ряби по мере удаления от места попадания частицы (эпицентра возмущения). Minimal Strength — для экономии времени рендеринга начиная с заданного значения полностью уничтожает рябь, ослабленную действием параметра Falloff. Periods — задает количество вмятин (кратеров) от ударов частиц. Particles Dependent — позволяет задавать размер деформации в зависимости от размера частиц. Работает только с модулем Thinking Particles. Запустите анимацию и для любого кадра сделайте рендеринг (Render -> Picture Viewer) (рис. 4.198).
Рассмотрим свойства тонировщика. Intensity — задает яркость полихромного блика, цвета которого задаются с помощью градиента параметра Spectrum. Variation — задает количество повторений полихромного рисунка блика внутри заданного размера блика (рис. 4.200). Метод реализации заданного количества повторений определяется параметром Out of Range. На рис. 4.200 параметр Out of Range равен Stop.
Тонировщик Spline
Out of Range Type — задает один из трех методов повторения полихромного рисунка блика: Stop, Mirror и Tilling. Работает совместно с параметром Variation. На рис. 4.200 приведен результат для значения Stop, когда цветовой градиент применен только один раз и для внешней части блика используется цвет крайний справа в градиенте параметра Spectrum. На рис. 4.201 приведен результат для значения Mirror, когда зеркально отражается, чтобы избежать возникновения швов на рисунке. На рис. 4.201 приведен результат для значения Tiling, когда полихромный рисунок блика повторяется в количестве, заданном в параметре Variation.
Spectrum — задает цветовой градиент для блика. Флажок Use CD Effect — позволяет применить тонировщик к цилиндрическим поверхностям, что создает эффект отраженного света от поверхности CD-диска. Приведенные ниже параметры становятся доступны только при установленном флажке Use CD Effect. Width — задает ширину блика на поверхности CDдиска. Peak — при увеличении увеличивается количество цветов, присутствующих в блике. W Factor — задает начало построения полихромного блика. При 1 начало находится в центре CD-диска. Diffuse Intensity — задает интенсивность цветов блика. Diffuse Variation — добавляет «случайные» цвета в полихромный набор цветов блика. Front Side — задает плоскость, на которую проецируется полихромный блик. Если сразу блик не виден, то переключите плоскость (XY, ZX, ZY).
Позволяет проецировать сплайн на поверхность объекта (рис. 4.202). Чтобы спроецировать сплайн на объект, проделайте следующие действия: Нарисуйте сплайн (например, Freehand) и создайте объект (например, примитив Cube) таким образом, чтобы объект был крупнее сплайна (рис. 4.203). Создайте новый материал в окне Material Editor загрузите в свойство Color тонировщик Spline (рис. 4.204). Перетащите имя сплайна из окна менеджера объектов в окно Material Editor в поле параметра Spline (рис. 4.204). Если параметр Spline недоступен, сбросьте флажок Text Spline (рис. 4.202, внизу справа). Задайте плоскость, в которой находится нарисованный сплайн (обычно это плоскость XY). В параметрах Background Texture и Line Texture задайте соответствующие цвета объекту (Background Texture) и сплайну (Line Texture). Для этого щелкните на черном треугольнике и выберите цвет из палитры
таким образом, чтобы сплайн был различим на фоне поверхности объекта, куда он проецируется. С помощью параметров XOffset, YOffset, XScale и YScale передвиньте и отмасштабируйте проекцию сплайна, наблюдая в окне предварительного просмотра за результатом. Как видно из рис. 4.205, сплайн спроецировался на все 6 граней куба. Остальные параметры имеют следующий смысл: Флажок Single Pixel — в установленном состоянии задает толщину проекции сплайна равной одному пикселю. Line Width — позволяет регулировать толщину проекции сплайна. Smooth Width — задает степень размытости проекции сплайна. Флажок Caps — в установленном состоянии закругляет концы проекции сплайна (рис. 4.206). Флажок Fill — позволяет закрасить замкнутые пространства в проекции сплайна. На рис. 4.207 приведен пример проекции сплайна, имеющего замкнутое пространство. Чтобы закрасить это пространство новым цветом, поставьте флажки Fill и Use Fill Color. В результате станет активным параметр Fill Texture, в котором можно выбрать цвет для закраски (рис. 4.208). Если флажок Use Fill Color сброшен, то замкнутое пространство закрашивается цветом Line Texture.
Тонировщик Vertex Map Позволяет раскрашивать поверхность объекта в соответствии с весами точек. Следующая группа тонировщиков размещена в пункте Texture -> Surfaces (рис. 4.209).
Тонировщик Brick Позволяет моделировать кирпичную кладку. В свойствах тонировщика (рис. 4.210) параметры Color 1, Color 2 задают цвета кирпича и шва между кирпичами, Ramp — размытость границ кирпичей, Joint — ширину шва.
Тонировщик Checkerboard Цвет прямоугольников задается в параметрах Color 1, Color 2. Количество прямоугольников по осям задается в параметрах U Frequency, V Frequency (рис. 4.213).
Для изменения количества кирпичей воспользуйтесь свойствами тэга Tile X, Tile Y, предварительно поставив флажок Tile (рис. 4.211, 4.212).
Чтобы получить квадраты, задайте значение V Frequency на 1 больше, чем U Frequency (рис. 4.214).
Тонировщик Cloud Позволяет моделировать структуру облаков (рис. 4.215, 4.216).
Тонировщик Cyclone Для реализма (растянутости облаков по горизонтали) задавайте U Frequency меньше, чем V Frequency (координата U направлена вертикально, координата V — горизонтально). Флажок Compatibility Mode обеспечивает совместимость текстуры Cloud из предыдущих версий программы Cinema 4D.
Моделирует структуру циклона. Назначение настроек очевидно (рис. 4.217, 4.218).
Тонировщик Earth Позволяет моделировать текстуру, схожую с текстурой поверхности земли (рис. 4.219, 4.220). Параметры Sea Level, Land Level и Mountain Level — задают соответственно цвета океана (участков, расположенных ниже нулевой отметки), суши и гор. Frequency — задает количество участков суши и акваторий (рис. 4.221).
Level — задает уровень суши. При 0% все покрыто водой, при 100% — видна только суша.
Тонировщик Fire
Тонировщик Galaxy
Тонировщик моделирует горизонтальную полосу огня, состоящую из множества единичных языков пламени (факелов). Цвет регулируется с помощью градиента Color (рис. 4.222). Наибольший эффект тонировщик дает, если его загрузить в свойство Transparency. U Frequency, V Frequency — задают пропорции пламени по горизонтали и вертикали. Т Frequency — задает частоту мерцания пламени. Turbulence — задает, насколько сильно пламя прерывается воображаемым ветром.
Моделирует структуру вихря (рис. 4.225).
Тонировщик Flame Моделирует единичный факел (язык пламени). Настройки тонировщика Flame (рис. 4.223) идентичны настройкам тонировщика Fire.
Color — задает цвет вихря. Angle — задает угол закрутки вихря. Spiral Arms — задает количество хвостов вихря.
Тонировщик Marble Имитирует текстуру мрамора. На рис. 4.227 приведены свойства тонировщика.
Color — задает цвет текстуры. Frequency — задает масштаб текстуры по осям X, Y И Z. Turbulence — изменяет рисунок текстуры (рис. 4.228).
Тонировщик Metal Позволяет моделировать металлические поверхности (рис. 4.229). Параметр Frequency повышает степень детализации изображения.
На рис. 4.231 приведено изображение колец Сатурна, которые были изображены на плоскости. На рис. 4.232 приведен результат загрузки тонировщика Planet с выбранными кольцами Сатурна в альфа-канал (Alpha) с последующим присвоением его сфере.
Тонировщик Rust
Тонировщик Planet Позволяет имитировать поверхность планет Сатурна, колец Сатурна, Урана и Нептуна (рис. 4.230).
Моделирует структуру ржавчины на поверхности. Используя свойство Color (рис. 4.233), можно подобрать цвета металла и ржавчины. Параметр Rust задает долю ржавчины на поверхности. Параметр Frequency управляет степенью деталировки изображения поверхности, покрытой ржавчиной (рис. 4.234).
Тонировщик Simple Noise Тонировщик создает текстуру, которая может быть применена, например, для имитации поверхности камня. Цвет текстуры задается параметром Color, а параметры U Frequency и
V Frequency задают вытянутость текстуры (рис. 4.235).
Так, при значении U Frequency > V Frequency рисунок текстуры будет вытянут в вертикальном направлении (рис. 4.236), а при U Frequency < V Frequency — в горизонтальном (рис. 4.237).
Тонировщик Simple Turbulence
Параметр Octaves задает количество итераций (шагов) для расчета турбулентности.
Тонировщик StarField Позволяет моделировать звездное небо (рис. 4.240). Настройки приведены на рис. 4.239.
Создает турбулентность, цвет которой задается в свойстве Color. Параметры U Frequency и V Frequency задают направление турбулентности по тому же принципу, что в тонировщике Simple Noise (рис. 4.238).
На рис. 4.240 приведена текстура при Blur Offset = 1%, на рис. 4.241 при Blur Offset = 5%, на рис. 4.242 при Blur Offset = 8%.
Тонировщик Stars Позволяет создавать текстуру фона со звездами. Параметры приведены на рис. 4.243.
Color 1 — цвет фона. Color 2 — цвет звезд. Streaks — задает количество лучей у звезды. Inner Radius, Outer Radius — соответственно внутренний (по основанию лучей) и внешний (по концам лучей) радиусы звезды. Density — количество (плотность) звезд на единицу поверхности фона.
Тонировщик SunBurst Позволяет моделировать вспышки на солнце и корону солнечного излучения. Параметры приведены на рис. 4.245.
Параметр Radius — определяет место зарождения вспышки. Параметр Height — определяет ширину области вспышки.
Тонировщик Tiles Предназначен для создания мозаики из плиток и узоров с использованием трех цветов, которые задаются в параметрах Tiles Color 1, Tiles Color 2, Tiles Color 3 (рис. 4.248). Цвет Grout Color используется для шва между элементами узора.
Параметр R Frequency — задает форму языков пламени вспышки (рис. 4.246, 4.247). Чем ниже значение, тем прямее языки.
Параметр A Frequency — задает количество языков пламени. Параметр Т Frequency — задает скорость изменения формы пламени. Параметр Turbulence — задает степень хаотичности пламени.
Параметр Pattern содержит список узоров (рис. 4.249). Параметр Grout Width — задает толщину шва между элементами узора. Параметр Bevel Width — задает величину скоса края элемента узора у шва. Флажок Bevel — задает характер скоса (линейный или сглаженный). Флажок Randomize Color — в установленном состоянии позволяет использовать не чистые цвета Tiles Color 1, Tiles Color 2, Tiles Color 3, а их смеси друг с другом в случайных пропорциях. Параметр Orientation — позволяет переориентировать узор в вертикальном (V) или горизонтальном (U)направлениях. Параметр Global Scale — масштабирует весь узор. Параметр U Scale — масштабирует узор в горизонтальном направлении. Параметр V Scale — масштабирует узор в вертикальном направлении. Параметр Radial Scale — масштабирует в радиальном направлении узор, имеющий радиально расположенные элементы (например, узор Radial Lines). Параметр Rotate — позволяет повернуть узор вокруг его центра (например, для узора Spiral).
Тонировщик Water Моделирует водную поверхность, покрытую рябью и волнами.
Соотношение между параметрами U Frequency и V Frequency задает направление водного потока (рис. 4.253). Параметр Т Frequency задает скорость моделируемого потока, а параметр Wind — скорость ветра.
Тонировщик Venus Моделирует вихревое облако.
Тонировщик Wood Моделирует текстуру дерева — годовые кольца. Сорт дерева задается в параметре Туре (рис. 4.254), цвет — в градиенте Color, степень прорисовки деталей в параметре Frequency, отклонение формы годовых колец от строгой окружности в параметре Turbulence.
4.3.2. Тонировщики, имеющие собственное окно Material Editor Доступ к следующей группе тонировщиков производится в окне менеджера материалов через меню File -> Shader (рис. 4.255). Тонировщики этой группы отличаются от рассмотренных выше тем, что имеют собственные диалоговые окна Material Editor, а не используют диалоговое окно основного материала Material Editor, чтобы загрузиться в его свойства.
Refraction Index — задает значение коэффициента преломления материала объекта. На рис 4.259 примитиву Sphere присвоен тонировщик
Тонировщик Banji Позволяет моделировать прозрачные материалы, в частности стекло. Диалоговое окно со свойствами приведено на рис. 4.256.
Рассмотрим кратко назначение параметров, перечисленных слева в столбик. Ряд параметров повторяется для различных тонировщиков, поэтому более подробно о них будет сказано ниже по ходу изложения. Параметр Diffuse — задает основной цвет поверхности объекта. Параметры Specular 1, Specular 2, Specular 3 задают цвет блика на поверхности, его размер, яркость, контрастность и характер ослабления по краям. Параметр Transparency — задает следующие оптические характеристики объекта, которому присвоен тонировщик Banji (рис. 4.257). Front Opacity — задает степень непрозрачности фронтальной поверхности объекта. При Front Opacity = 0% цвет поверхности, заданный в параметре Diffuse, не отображается. При Front Opacity =100% — цвет отображается. Back Opacity — задает степень непрозрачности задней поверхности объекта. Edge Opacity — затеняет боковые грани, максимально удаленные от наблюдателя (рис. 4.258).
Banji с Refraction Index = 0,85. За сферой в окне проекций расположен примитив Figure, чтобы можно было оценить эффект преломления. На рис. 4.260 Refraction Index =1,17. Флажок Internal Reflection задает наличие внутреннего отражения лучей.
Тонировщик Banzi Позволяет моделировать деревянные поверхности. Диалоговое окно со свойствами приведено на рис. 4.261.
Рассмотрим свойства параметра Wood (смысл остальных свойств рассмотрим ниже — они общие для различных тонировщиков). Color — задает цвет областей рисунка структуры деревянной поверхности. В левой части градиентной шкалы цвет светлых волокон дерева, в правой части — темных участков между волокнами. Дважды щелкните левой кнопкой мыши по левому квадратному бегунку. Откроется палитра. Выберите светлокоричневый цвет для волокон и сделайте рендеринг (рис. 4.262). Подразумевается, что тонировщик Banzi присвоен объекту, в данном случае это куб. Ring Intensity — задает характер годовых колец (рис. 4.263). Ring Scale — масштабирует структуру древесных волокон, в частности годовых колец (рис. 4.264).
Ring Turbulence, Turbulence Scale — позволяет размывать границы светлых и темных областей для придания текстуре большего реализма (рис. 4.265).
Ring Variance — изменяет ширину колец без изменения их относительных пропорций. Core Variance, Variance Scale — позволяют изменять форму структурных волокон, создавая впечатление, что ствол дерева имел определенную кривизну. Radial Variance, Variance Scale — задают ассиметричность годовых колец. Grain Intensity — задает степень дискретизации текстуры дерева (рис. 4.266).
Создайте примитив Sphere и присвойте ему тонировщик Sheen со значениями, показанными на рис. 4.269. Grain Scale — масштабирует размеры структурных элементов текстуры дерева (рис. 4.267).
Параметры свойства Transparency приведены на рис. 4.270.
Attenuation — задает снижение детализации изображения при поворотах, и удалении от камеры. Для статических изображений рекомендуется низкое значение (можно 0), для анимации — высокое.
Тонировщик Cheen Позволяет моделировать мелкие детали поверхности (например, микрорельеф). Рассмотрим свойства Gradients и Transparency. Свойство Gradients имеет два параметра (рис. 4.268). Color — задает изменение цвета в зависимости от величины угла между нормалью к поверхности и осью камеры (направлением взгляда наблюдателя). В левой части градиентной шкалы задается цвет по краям объекта, в правой части — цвет по центру. Opacity — задает прозрачность. Черный ползунок задает прозрачность, белый — непрозрачность.
Refraction Index — задает значение коэффициента преломления. Флажок Internal Refraction — задает наличие внутренних преломлений (внутри объема объекта). Флажок Solid Object — объект, которому присвоен тонировщик, рассматривается как целое с учетом его границ. Добавим за сферой, для которой выше было настроено свойство Gradients, примитив Figure, который будет просвечивать сквозь сферу. Таким образом, с помощью тонировщика Cheen смоделировано стекло с рифленой поверхностью (рис. 4.271).
Тонировщик Danel Позволяет имитировать поверхности, содержащие вкрапления металла и анизотропных материалов, а также поверхности, раскрашенные глянцевыми красками.
Диалоговое окно со стандартными свойствами приведено на рис. 4.272.
Color — задает основной цвет тумана. Samples — задает степень ослабления интенсивности отдельного луча. Чем выше это число, тем выше качество моделируемого тумана. Начните с 6. Volumetric — при установленном флажке позволяет принимать в расчет влияние сторонних источников освещения. Frequency — чем выше значения по осям X, Y, Z, тем более детализованным получается изображение. Туре — задает закон убывания плотности тумана Linear (Линейный), Exponential (Экспоненциальный), No Decrease (Без убывания) (рис. 4.275). Тонировщик Fog присвоен сфере, за сферой размещен примитив Figure...
Свойства Specular 1, Specular 2 и Specular 3 имеются во всех тонировщиках и задают свойства блика на поверхности. В их параметры входит цвет блика Color (рис. 4.273). Таким образом, три цвета оптически смешиваются. Кроме этого, можно настроить размеры пятна блика (Size), причем для каждого параметра Specular можно задать свой размер, что также скажется на результирующем блике. Можно также задать различную яркость (Glare, Intensity), контрастность (Contrast) и степень затухания (Falloff). Thickness — задает плотность тумана. Decrease — задает степень заполненности туманом объема объекта, которому назначен тонировщик Fog (рис. 4.276). В данном случае выбран объект сфера. Turbulence, Amplitude, Т Frequency — задают неоднородности тумана (рис. 4.277).
Тонировщик Mabel
Тонировщик Fog Позволяет моделировать эффект тумана. Диалоговое окно со свойствами приведено на рис. 4.274.
Используется для имитации поверхности мрамора Диалоговое окно со свойствами приведено на рис. 4.278. Свойство Veining позволяет регулировать характеристики прожилок мраморной фактуры. Параметр Veining Turbulance задает гиперреалистически выполненный рисунок прожилок. Рисунок прожилок выбирается из списка. На рис. 4.279—4.282 представлены некоторые из них.
Параметр Veining String задает количество прожилок. На рис. 4.283 приведен пример для узора прожилок Box Noise. Параметр Veining Scale позволяет масштабировать узор прожилок (рис. 4.284).
рующая поверхность создается из смешения параметров двух исходных слоев (поверхностей) Surface 1 и Surface 2, которые можно выбрать в выпадающем списке окна Material Editor сверху слева под именем тонировщика (рис. 4.286). Каждый слой имеет свои параметры кроме трех общих групп параметров, собранных на Fusing, Illumination и Assignment. Смешение настроек двух слоев происходит с помощью параметров группы Fusing (рис. 4.286).
Параметр Veining Octaves позволяет задавать степень сложности фрактальных изображений, применяемых для создания рисунка прожилок. Фрактальное изображение строится из таких же, но уменьшенных изображений. Например, большая ветка может быть составлена из таких же по форме, но уменьшенных веток. Фрактальные алгоритмы широко применяются в компьютерной графике. Параметр Veining Size позволяет задавать толщину прожилок (рис. 4.285).
Veining Contrast — задает степень четкости границ прожилок. Variance Turbulence — позволяет изменять тип узора прожилок, заданный в параметре Veining Turbulence, с помощью другого узора, который выбирается из аналогичного списка. Variance Amplitude — задает степень влияния узора, заданного в параметре Variance Turbulence. Variance Octaves — задает степень сложности фрактальных изображений узора. Variance Scale — задает масштаб узора. Variance Contrast — задает четкость изображения границ узора.
Копировщик Nukei Моделирует поверхности, подвергшиеся атмосферным воздействиям и покрытые ржавчиной. Результи-
Назначение части параметров группы Fusing понятно из предыдущего материала. Так, текстура назначается в параметре Texture, тип проекции на поверхность объекта задается параметром Projection и т. д. до кнопки Paste Tag. Кнопка Paste Tag позволяет перенести настройки тэга Texture Tag из окна менеджера объектов в настройки окна Material Editor тонировщика Nukei. Флажок Override Time в установленном состоянии позволяет преобразовывать время, вводимое в поле параметра Speed, в ключевые кадры хронографа. Параметр Falloff — высокие значения задают полное смешение слоев, при низком значении видна граница между слоями. Offset позволяет сдвигать границы исходных слоев. Edge Shadow Intensity создает затемнение слоев вблизи их границ (под старину) (рис. 4.287). Edge Shadow Falloff задает ширину участка затемнения для параметра Edge Shadow Intensity. 1 Bump Amplitude и 2 Bump Amplitude задают высоту рельефа для слоев Surface 1 и Surface 2. 1 Edge Width и 2 Edge Width — задают ширину граница между слоями. 1 Edge Bump Amplitude и 2 Edge Bump Amplitude — задают ширину границ вокруг рельефов слоев.
На рис. 4.288 приведено окно для свойства Diffuse (суффикс А для слоя Surface 1, суффикс В для слоя Surface 2). Свойство Ambient позволяет задавать дополнительный цвет к основному цвету подсветки, который задается в параметрах объекта Environment. Смысл параметров (рис. 4.291) интуитивно понятен.
Параметр Color задает цвет поверхности. Algorithm — задает модель расчета освещенности объекта. Модель Internal задает гладкую поверхность объекта. Модель Oren Nayar учитывает степень шероховатости поверхности. Illumination и Contrast задают освещенность и контрастность цвета. Свойство Specular задает характеристики блика на поверхности объекта. Для каждого слоя предусмотрено три типа блика с идентичным набором параметров (рис. 4.289). Смысл параметров понятен из предыдущего изложения. Свойство Environment позволяет задать для слоя Surface 1 текстуру (предусмотрен параметр Image
(рис. 4.290), для слоя Surface 2 его нет) и все остальные параметры для обоих слоев: цвет, интенсивность, степень ослабления.
Свойство Roughness позволяет изменять степень шероховатости поверхности, добавлять рельеф (рис. 4.292).
Параметр Function содержит список программ построения неровностей (рис. 4.293). На рис. 4.294 приведен пример применения программы Pezo. Свойство Anisotrophy позволяет перераспределять блики на поверхности объекта (рис. 4.295). Параметры свойства Anisotrophy (рис. 4.296) интуитивно понятны.
Тонировщик Terrain Позволяет моделировать участки суши. Размер фрагмента по ширине задается габаритами объекта, которому присвоен тонировщик. Фрагмент окрашивается по-разному в зависимости от выбранного пункта в выпадающем списке Туре (рис. 4.298).
Пункт Desert (пустыня) окрашивает фрагмент в желтый цвет, Polar (полярный) в белый. Параметр Height задает высоту неровностей. На рис. 4.300 Height = 25%, на рис. 4.300 Height = 100%
Глава 5. Камеры, освещение и дополнительные объекты сцены В меню Objects имеется пункт Scene (сцена), с помощью которого можно оснастить создаваемую сцену съемочными камерами, источниками освещения, небесным сводом, земной поверхностью и т. д. (рис. 5.1).
5.1. Типы камер Различают два типа камер: свободная (Camera) и нацеленная (Target Camera). Отличие заключается в наличии объекта цели, по которому корректируется направленность камеры. Для создания камеры используйте либо главное меню, либо пиктограмму на панели управления (рис. 5.2). При создании камеры в окне проекции возникает схема, на которой линиями зеленого цвета обозначены сама камера и область, видимая через ее объектив (рис. 5.3).
При создании нацеленной камеры ось камеры привязана к началу глобальной системы координат, где размещается нуль-объект Camera Target (рис. 5.4). Камера отслеживает перемещение нуль-объекта. В окне менеджера объектов справа от имени Camera отображен тэг Target Expression (рис. 5.5).
После щелчка по тэгу в окне менеджера атрибутов откроется окно свойств тэга, где на закладке Tag в поле Target Object будет указан нуль-объект Camera Target (рис. 5.5). Куда бы вы не перемещали этот нульобъект, камера будет постоянно отслеживать его перемещения, удерживая его в фокусе.
Очевидно, что вместо нуль-объекта можно подставить любой другой объект, перетащив его в поле Target Object из окна менеджера объектов. Для этого надо предварительно очистить поле Target Object, щелкнув по кнопке с черным треугольником и выбрав из выпадающего списка пункт Clear (рис. 5.6).
Чтобы в окне проекции отобразить то, что видно через объектив камеры, выберите в меню окна проекций пункт Cameras -> Scene Cameras -> Camera, как показано на рис. 5.7.
Чтобы изменить положение камеры (а также отменить вид через объектив), в том же меню выберите
пункт Editor Camera. Применяя к камере инструменты перемещения, масштабирования и вращения (рис. 5.8), можно перемещать, масштабировать и вращать камеру, изменяя тем самым точку и угол обзора сцены.
Для автоматизации процесса композиции кадра можно пользоваться пунктами меню окна проекций Edit -> Frame... (рис. 5.9).
Рассмотрим пример. Требуется навести камеру на выделенный объект сцены. Создайте камеру и сцену из нескольких объектовпримитивов (рис. 5.10).
Выделите один из объектов, например, конус (рис. 5.10), а затем выберите в меню Edit пункт Frame Active Objects (рис. 5.11).
Можно также получить укрупненный вид не только всего объекта, но также и отдельных его элементов. Для этого элементы должны быть выделены. Рассмотрим другой пример. Требуется получить укрупненный вид двух полигонов на поверхности сферы. Для этого выполним следующие действия. 1. Преобразуем сферу из предыдущего примера в редактируемый вид (клавиша C (лат.)). 2. Выберем на правой вертикальной панели инструментов инструмент Use Polygon Tool (рис. 5.12). 3. Удерживая нажатой клавишу Shift, выделим полигоны на поверхности сферы (рис. 5.12). 4. В меню Edit выберем пункт Frame Selected Elements (рис. 5.12).
На рис. 5.13 показан получаемый в результате укрупненный вид выделенных полигонов. Назначение остальных пунктов меню Edit следующее: Frame Scene Without Camera/Light — отображаются все объекты кроме камер и источников освещения; Frame Scene — полностью отображаются все объекты сцены (вместе с источниками освещения); Frame Default — воспроизводится такой же вид, как в момент создания камеры.
Если камера в процессе съемки будет перемещаться и вращаться, то целесообразно воспользоваться нацеленной камерой (Target Camera), которая автоматически удерживает объект в кадре. В качестве цели используется нуль-объект, «внутрь» которого как в контейнер можно поместить объект съемки. Рассмотрим пример. Требуется создать камеру, следящую за перемещением фигуры Zygote Man. Возможно два подхода.
1 Способ 1. Создайте анимацию перемещения фигуры Zygote Man, используя ключевые кадры. На рис. 5.14 показана траектория перемещения фигуры. Так как траектория является сплайном, то на экране монитора начало траектории будет окрашено желтый цвет, переходящий к концу траектории в красноватый.
2. Создайте нацеленную камеру. Target Camera (рис. 5.15). 3. Установите фигуру в точку начала траектории, которая в данном случае совпадает с началом координат. Если надо, то измените координаты объекта Target Camera так, чтобы начальные координаты фигуры Zygote Man и объекта Target Camera совпадали (рис. 5.16). То есть в окне менеджера атрибутов значения Р.Х, P.Y, P.Z для Zygote Man и Target Camera должны совпадать. Это означает, что фигура находится и будет находиться на протяжении своего движения под постоянным прицелом камеры. 4. В окне менеджера объектов переместите нульобъект Camera Target на уровень подобъекта по отношению к объекту Zygote Man (рис. 5.17). 5. Выберите в меню окна проекций Camera -> Scene Camera -> Camera (рис. 5.7) (чтобы сцена
была видна через объектив камеры) и настройте, если надо, кадр. Например, можно через меню Edit настроить Frame Active Objects (рис. 5.18).
Просмотрите анимацию с помощью проигрывателя (рис. 5.21).
1. Запустите просмотр анимации. Камера будет автоматически следить за перемещением фигуры Zygote Man по траектории. 2. Сделайте рендеринг сцены. В меню Edit окна проекций выберите пункт Use As Render View, указанный на рис. 5.19. В меню Render выберите пункт Make Preview (рис. 5.20).
2 Способ 1. В окне менеджера объектов щелкните на значке 2. мишени Target Expression «Cinema Target». 3. В окне менеджера атрибутов перетащите в поле 4. Target Object имя Zygote Man из окна менеджера объектов (рис. 5.22). 5. Настройте вид через камеру и запустите просмотр анимации.
5.2. Настройки камер Основные настройки камеры собраны в окне менеджера атрибутов на двух вкладках Object и Depth. Рассмотрим содержимое вкладки Object (рис. 5.23).
В списке Projection собраны следующие 14 типов проекций. Perspective — перспективный вид с точкой схода линий (рис. 5.24). Parallel — параллельный вид; перспектива отсутствует, все линии параллельны (рис. 5.25). Виды слева (рис. 5.26), справа (рис. 5.27), спереди (рис. 5.28), сзади (рис. 5.29), сверху (рис. 5.30) и снизу (рис. 5.31) очевидны. Military — вид с соотношением координат X, Y, Z как 1:1:1 (рис. 5.32). Frog — вид с соотношением координат X, Y, Z как 1:2:1 (рис. 5.33). Bird — вид с соотношением координат X, Y, Z как 1:0,5:1 (рис. 5.34). Gentlemen — вид (перспектива отсутствует, все линии параллельны) с соотношением координат X, Y, Z как 1:1:0,5 (рис. 5.35).
На рис. 5.36, 5.37 приведены примеры изометрического и диметрического видов. Только для проекции типа Perspective доступны настройки фокусного расстояния (Focal Length), апертуры (Aperture Width) и угла охвата (Field of View) (рис. 5.38). Для других типов проекций доступен только Zoom (приближение камеры).
Связь между настройками как в обычных камерах: чем больше фокусное расстояние Focal Length, тем меньше угол охвата Field of View. Чем больше апертура Aperture Width, тем больше угол охвата. При малых фокусных расстояниях (например, Focal Length = 3, Field of View =161) имеют место искажения пропорций, что может создавать определенный художественный
эффект. На рис. 5.39 приведены примеры таких искажений для объекта Zygote Man. Параметры Film Offset X и Film Offset Y позволяют сдвигать рамку кадров созданной анимации по осям 0Х и 0Y. Важно, что анимация уже создана, как если бы фильм был уже снят. Но, сдвигая рамку кадра вправо, влево, вверх, вниз, можно захватывать в кадр другие объекты. Размер кадра при этом не меняется. Создайте три персонажа Zygote Man, Zygote Boy и Zygote Woman. Создайте анимацию облета камерой фигуры Zygote Man так, чтобы два других персонажа не попали в кадр. При этом Film Offset X = 0 и Film Offset Y = 0. На рис. 5.40 приведен 46 кадр.
Изменяя значения Film Offset X и Film Offset Y, добейтесь, чтобы в кадр вошли фигуры Zygote Boy и Zygote Woman (рис. 5.41). Дальнейшая анимация будет воспроизводиться при сохранении этих значений Film Offset X и Film Offset Y, что может привести к появлению неожиданных объектов в кадре, так как первоначальная рамка кадра сдвинута.
Флажок Show Cone выводит (в режиме настройки камеры (Edit Camera)) пирамиду с зелеными ребрами, изображающую угол охвата объектива камеры и позволяющую настраивать величину этого телесного угла с помощью оранжевых точек (рис. 5.42).
На вкладке Depth (глубина) (рис. 5.43) собраны параметры, отвечающие за четкость изображения, получаемого с помощью камеры.
Можно задавать области размытости интерактивно, используя пирамиду угла охвата (рис. 5.47). Прямоугольники с границами темно-зеленого цвета можно
Поле Target Distance — служит для задания расстояния от камеры до объекта. Объект, находящийся на этом расстоянии от камеры, изображается четко. Объекты, находящиеся ближе или дальше, могут быть размыты в зависимости от того, какой флажок поставлен — Front Blur (объекты, находящиеся ближе, чем Target Distance, размыты) или Rear Blur (объекты, находящиеся дальше, чем Target Distance, размыты). Если ни один флажок не установлен, все объекты показаны в фокусе. Флажок Use Target Object — если флажок установлен, то расстояние от камеры до цели определяется автоматически. Front Blur — создает размытость для объектов, находящихся на расстоянии Target Distance. Rear Blur — создает размытость для объектов, находящихся на расстоянии, превышающем Target Distance (до 109 м). Отсчет значений Start и End производятся от точки, удаленной от камеры на расстояние Target Distance (рис. 5.44).
перемещать, прижав оранжевую центральную точку. Расположение этих прямоугольников задает значение End для Front Blur и Rear Blur.
5.3. Создание движущейся камеры
На рис. 5.45 схематично проиллюстрирован принцип отсчета значений параметров Start и End для параметра Front Blur. Зеркально для параметра Rear Blur.
Возможны два способа создания движущейся камеры: посредством задания ключевых кадров или путем назначения камере траектории перемещения. Первый способ не отличается от способа создания анимации, рассмотренной выше в главе 3: вы создаете ключевые для каждого перемещения, поворота и изменения масштаба камеры. Рассмотрим второй способ детально.
1. Создайте объект, например, фигуру Zygote Woman. 2. Создайте заготовку для траектории камеры. Это может быть сплайновый примитив Circle (рис. 5.48).
6. В окне менеджера атрибутов для объекта Circle выберите в списке Intermediate Points пункт Uniform (равномерный) и задайте в поле Number количество точек, на которые будут разбита окружность (рис. 5.52). 3. Переведите окружность в плоскость XZ, для чего в окне менеджера атрибутов выберите в списке Plane плоскость XZ (рис. 5.49).
7. Создайте нацеленную камеру и поместите нульобъект Camera Target на уровень подобъекта Zygote Woman в окне менеджера атрибутов (рис. 5.53).
4. Поднимите сплайн Circle и расположите его над головой фигуры (рис. 5.50). 5. Преобразуйте сплайн Circle в редактируемый объект, нажав на клавиатуре клавишу C (лат.).
8. В меню окна проекций выберите Cameras -> Scene Cameras -> Camera (рис. 5.54). 9. Выберите компоновку рабочего окна Animation (рис. 5.55). В результате добавится окно хронографа Timeline (рис. 5.56). 10. В окне менеджера объектов щелкните правой кнопкой мыши по имени Camera и выберите из контекстного меню Show Tracks (рис. 5.57). В результате в окне хронографа Timeline отобразится красным цветом имя Camera (рис. 5.58). 11. В окне хронографа Timeline в меню Objects выберите пункт Spline to Position Track (рис. 5.59).
В результате появится диалоговое окно. Введите в него имя объекта, который будет использован в качестве траектории. Этот объект — Circle (рис. 5.60).
В результате последней операции в окне хронографа Timeline появятся треки с записью параметров положения камеры и вид сверху на фигуру Zygote Woman (рис. 5.61). 12. Запустите просмотр анимации. Камера будет «облетать» фигуру, показывая ее со всех сторон (рис. 5.62).
5.4. Освещение По умолчанию Cinema 4D самостоятельно расставляет источники освещения, обеспечивая стандартное освещение объектов. Если объект один, то по умолчанию используется точечный источник белого
света, не отбрасывающий теней, который располагается позади — левее камеры. При создании и расстановке источников освещения пользователем, освещение по умолчанию (позади-левее) отменяется. В программе Cinema 4D предусмотрено три типа источников освещения: Light освещения), Target Light
(свободный источник (нацеленный источник
освещения) и Sun Light (солнечный свет). Их можно выбрать в главном меню Objects -> Scene (рис. 5.63) или по пиктограммам на горизонтальной панели инструментов. Рассмотрим свойства источника освещения Light. Создадим сцену, состоящую из источника освещения Light и освещаемого объекта (рис. 5.64). В окне менеджера объектов выделите объект Light и перейдите в окно менеджера атрибутов (рис. 5.65), где свойства источника освещения классифицированы на 10 групп. В группах Basic и Coord приведены настройки, смысл которых очевиден. Рассмотрим группу настроек General. Назначение настроек Color и Brightness очевидны (цвет света и его яркость). Настройка Туре (рис. 5.66) позволяет выбрать характер освещения:
Omni — моделирует всенаправленный источник света (светящаяся сфера или наподобие бытовой лампочки) и задается по умолчанию. Spot (Round), Spot (Square) — моделирует конусообразное излучение (рис. 5.67), создающее на освещаемой поверхности пятно в форме круга или квадрата (рис. 5.68, 5.69). Излучение распространяется в одном направлении, по умолчанию вдоль оси 0Z. Перемещая левой кнопкой мыши управляющие точки оранжевого цвета, можно изменять размеры основания светового конуса и его высоту (рис. 5.67).
Используя виды сверху и сбоку, разместите источник по центру одной из боковых граней примитива Cube и в главном меню выберите режим рендеринга Render -> Render View (рис. 5.68, 5.69). Если поставить флажок No Light Radiation, то световое пятно на поверхности объекта при рендеринге показано не будет. Distant — моделирует источник освещения, удаленный на бесконечное расстояние. Расположение источника значения не имеет — все объекты сцены будут освещены равномерно. Определяющим параметром является направление излучения, задаваемое осью с оранжевой точкой на конце. Активизируйте инструмент Rotate и перемещайте направляющую ось (рис. 5.70, 5.71).
Если повернуть направляющую ось вниз (вверх), то будет освещена верхняя (нижняя) грань куба. Обычный источник освещения надо было бы еще и переместить вверх (вниз), чтобы он находился над (под) соответствующей гранью, но для источника Да-
лекий важно направление, а не взаимное расположение с освещаемым объектом (рис. 5.72).
атрибутов для параметра Visible Light значение Visible (рис. 5.75), то появятся два вложенных контейнера (рис. 5.76). Внешний контейнер (белые линии, если цвет излучения задан белым) определяет границы распространения излучения в окружающее пространство, внутренний (тонкие линии) задают границу излучения с равномерной яркостью.
Аналогичный эффект наблюдается при повороте оси в сторону (рис. 5.73).
Изменяя размеры контейнеров, можно получить различные виды светящихся трубчатых форм (рис. 5.77, 5.78). Регулировка размеров производится либо вручную, перетаскиванием за оранжевые точки, либо в окне менеджера атрибутов на вкладке Coord с помощью параметров S.X, S.Y, S.Z. Для просмотра результата включите режим рендеринга (Ctrl+ R).
Parallel — моделирует испускание параллельных друг другу лучей в направлении, задаваемом направляющей линией с оранжевой точкой на конце. Parallel Spot (Round) (Square) — моделирует излучение, испускаемое источником взаимопараллельных лучей и заключенное в направляющий контейнер круглого или прямоугольного поперечного сечения (рис. 5.74). Tube — имитирует излучение протяженного источника (светящаяся труба). Если выбрать в менеджере Изменяя цвет излучения, можно добиться очень красивых эффектов. Area — имитирует изотропное (равномерное) излучение плоской прямоугольной поверхности. Чтобы явственней заметить эффект излучения поверхностью, измените цвет излучения (с помощью движков R, G, В в группе Color на закладке General в окне менеджера атрибутов), например, на фиолетовый. Обратите внимание, что цвет линий прямоугольного контейнера
Тип тени Hard (рис. 5.82) дает нереалистичный эффект постоянно четкой границы тени вне зависимости от того, на какой высоте располагается объект, отбрасывающий тень.
также изменился с белого на фиолетовый. Сделайте рендеринг (Ctrl+ R) и убедитесь, что куб освещен фиолетовым светом. Следующий параметр закладки General это Shadow (тень).
Часть тени, отбрасываемая поверхностью объекта, находящейся ближе к полу, должна иметь более резкую границу, чем тень, отбрасываемая удаленной от пола частью объекта. Наиболее размытая часть тени отбрасывается наиболее удаленной от пола частью поверхности объекта. Этот эффект воспроизводит тип тени Area (рис. 5.83).
Имеются следующие типы теней (рис. 5.80): Soft (с размытыми однородными границами) (рис. 5.81), Hard (с четкими границами) (рис. 5.82) и Area (с размытыми неоднородными границами) (рис. 5.83). Для приведенных примеров использовался источник излучения типа Omni, но может использоваться любой тип излучения. Тень от примитива Cube отбрасывается на поверхность пола, для создания которого вызовите из главного меню инструмент Floor (Objects -> Scene -> Floor). Объекту Cube назначен материал Brick 001, а объекту Floor материал Wall 001. Тип тени Soft (рис. 5.81) дает однородный характер размытости по длине участка тени, отбрасываемой, в данном случае, ребром куба. В действительности так не бывает. Чем дальше предмет располагается от поверхности, на которую он отбрасывает тень, тем более размыты границы тени.
Следующий параметр закладки General это Visible Light. В реальности луч света становится видимым в атмосфере дыма, тумана, пыли, то есть там, где происходит рассеяние света на неоднородностях атмосферы. Тип излучения Visible моделирует излучение, проникающее сквозь объект и, следовательно, не отбрасывающее теней. Поэтому если расположить такой источник в центре, например, примитива куб, то куб будет светиться изнутри (рис. 5.85). При этом должен быть установлен флажок No Light Radiation Enabled. Для регулировки размеров светящегося пространства служат орбиты с точками оранжевого цвета (рис. 5.86).
Тип излучения Inverse Volumetric позволяет усиливать интенсивность видимого излучения в той области светового конуса, где в реальности излучение должно быть ослаблено (рис. 5.88).
Следующий параметр Noise позволяет внести неоднородность в освещение (рис. 5.89).
Тип Illumination позволяет получить на освещаемых поверхностях неоднородности освещения, имитирующие загрязненность промежуточной атмосферы между источником излучения и поверхностью объекта (рис. 5.90).
Тип видимого излучения Volumetric позволяет получить тени от видимого излучения (рис. 5.87). При этом флажок No Light Radiation Enabled должен быть сброшен.
Значение Visibility создает эффект неоднородности в самом источнике излучения (рис. 5.91). Значение Both позволяет совместить оба этих эффекта (рис. 5.92). На закладке Details (рис. 5.93) собраны параметры, позволяющие настраивать дополнительные характеристики источников излучения. Флажок Use Inner в установленном состоянии добавляет источнику освещения (типа Spot или Parallel) дополнительный внутренний конус (или цилиндр), угол в вершине которого задается в параметре Inner Angle.
значение Inner Angle = 0, то уменьшение освещенности будет начинаться от центра светового пятна. Параметр Aspect Ratio задает отношение диаметров основания светового конуса, для получения эллипса (рис. 5.95).
Параметр Brightness задает яркость, а параметр Contrast — контрастность. Группа Falloff позволяет задать закон ослабления яркости освещения у границ светового пятна (рис. 5.96). В скобках знаками R7 помечены элементы, перешедшие из 7 версии программы Cinema 4D.
Параметр Outer Angle задает угол при вершине для внешнего конуса (рис. 5.94). В результате на части светового пятна (на освещаемой поверхности объекта) между основаниями внутреннего и внешнего конусов создается размытость (освещенность уменьшается от 100% до 0%). Если флажок Use Inner установлен, но
Inner Radius — радиус, внутри которого ослабления излучения не происходит. Radius/Decay — радиус, на внешней границе которого интенсивность излучения опускается до 0. Флажок Ambient Illumination — позволяет устанавливать одинаковую яркость на всей освещаемой поверхности без прокладки теней от выступов на поверхности и на более удаленных местах (исчезает эффект объема поверхности). На рис. 5.97, 5.98 приведены примеры для текстуры Ball001
Флажок No Specular в установленном состоянии не показывает блики от источника освещения на поверхности объекта (рис. 5.99, справа нет блика). Материал объекта Metall003.
ринге используется материал, тег которого расположен крайним справа (рис. 5.102).
Флажок Separate Pass позволяет создавать независимые слои для параметров диффузионного отражения, зеркального отражения и тени. Флажок Near Clip позволяет «отодвинуть» излучение от источника, на некоторое расстояние, задаваемое в поле From (рис. 5.103).
Это означает, что на расстоянии от 0 до 160 м (от источника) излучения нет. Начиная от 160 м появляется излучение и к 287 м равномерно нарастает до максимума. Для регулировки и визуального представления параметр Near Clip представлен орбитами синего цвета (рис. 5.104). Здесь источник Omni расположен непосредственно на объекте Floor. Флажок Colored Edge Falloff работает совместно с параметрами Use Inner Color (флажок должен быть в установленном состоянии) и Inner Color (должен быть выбран цвет) и позволяет показывать цветом область ослабления интенсивности излучения по краям светового пятна. Источник излучения должен быть типа Spot и должен быть задан Inner Angle (рис. 5.100). Флажок No Diffuse в установленном состоянии не показывает цвет объекта, задаваемый материалом, а показывает только блик на поверхности (если флажок No Specular сброшен). Если в окне менеджера объектов у данного объекта имеется несколько тегов материалов, то при ренде-
На рис. 5.105 представлен результат после рендеринга.
градиенты освещенности на внутренней и внешней границах тороидальной фигуры, образованной из плоскости объекта Floor с помощью инструментов Near Clip и Far Clip.
На рис. 5.106 виден след светового тора (тип излучения Omni) для значений Near Clip от 160 до 287 м. Источник поднят над поверхностью. Перейдем к закладке Visibility (рис. 5.110)
Флажок Far Clip (рис. 5.93) позволяет создавать дальнюю (по отношению к источнику излучения) границу излучения. В окне проекций орбиты параметров From и To отображаются зеленым цветом (рис. 5.107).
Зададим значения как на рис. 5.108.
На рис. 5.109 приведен результат рендеринга для источника, расположенного на поверхности объекта Floor. Отчетливо видны границы, а также плавные
Флажок Use Falloff активизирует параметр Falloff — аксиальное (в направлении оси от источника до границы светового конуса) ослабление плотности светового потока. При 0% плотность не уменьшается, при 100% — уменьшается от 100% до 0% (рис. 5.111 для источника Spot (Square)). Флажок Use Edge Falloff управляет включением параметра Edge Falloff — ослабление плотности излучения по направлению к краям светового конуса (рис. 5.112). Флажок Colored Edge Falloff окрашивает зону ослабления излучения у краев светового конуса, используя красно-желтый цветовой градиент. Параметры Inner Distance и Outer Distance задают позиции сечений в световом конусе, между которыми
плотность излучения источника понижается со 100% до 0%. На рис. 5.113 сверху приведена схема расположения сечений в конусе, а снизу в том же масштабе изображение светового конуса после рендеринга. Мысленно спроецируйте позиции сечений Inner и Outer Distance и оцените характер ослабления плотности излучения.
На рисунке приведен пример, когда требуется создать вытянутый световой конус. Параметр Sample Distance позволяет настраивать качество тени, создаваемой от источника освещения типа Volumetric. Большие значения Sample Distance позволяют получать низкое качество тени, но рендеринг производится быстрее, чем при малых значениях Sample Distance. С другой стороны, малые значения Sample Distance позволяют получить высокое качество тени.
Параметр Brightness задает яркость видимого излучения (на закладке General параметр Visible Light должен быть выбран Visible).
Параметр Dust позволяет создавать затемнения в световом конусе. Параметр Dithering создает неоднородности излучения. Параметр Custom Color позволяет задать цвета внутренней (Inner Color) и внешней (Outer Color) областям светового конуса. Флажок Additive позволяет использовать источники освещения из 7 версии программы Cinema 4D. Флажок Adapt Brightness в установленном состоянии предотвращает появления нежелательных размытостей при слишком большой яркости источника освещения. Рассмотрим следующую закладку Shadow (рис. 5.116). Параметр Density позволяет изменять степень насыщенности тени (рис. 5.117). Параметр Color позволяет задавать цвет тени, а параметр Transparency — прозрачность тени. Если флажок Clipping Influence установлен, то на характеристики тени влияют установки закладки Details. Параметр Shadow Map доступен только для теней типа Soft и задает разрешение, с которым рассчитывается текстурная карта тени. Параметры Resolution X и Resolution Y позволяют задавать вручную разрешение по соответствующим осям.
Параметр Memory Usage (требуемая память) рассчитывается автоматически в зависимости от выбранного разрешения карты теней Shadow Map. Параметр Sample Radius задает точность расчета карты теней Shadow Map. Чем выше значение Sample Radius, тем выше точность. Повышение точности может компенсировать низкое разрешение карты. Флажок Absolute Bias позволяет попеременно включать параметр Bias (Rel) и Bias (Abs). Параметр Bias (Rel) задает в процентах степень удаленности объекта, отбрасывающего тень, от поверхности — чем объект дальше (чем выше значение Bias (Rel)), тем тень слабее (рис. 5.118). Между тенью и нижней частью объекта виден зазор, как бывает, когда объект не покоится на поверхности. Параметр Bias (Abs) задает абсолютное удаление объекта от поверхности в принятых единицах измерения, в данном случае в метрах (рис. 5.119). Флажок Outline Shadow позволяет создавать контур (границы) тени (рис. 5.120). Флажок Shadow Cone ограничивает все построения, связанные с созданием текстурной карты тени, областью теневого конуса (угол при вершине конуса тени задается параметром Angle). Это предотвращает возникновение остаточных явлений. Например, при создании карты теней для источника типа Omni рассчитываются 6 вспомогательных карт, что сопровождается
соответствующими графическими построениями, которые в данном случае не будут выходить за рамки теневого конуса и влиять на последующие построения. Флажок Soft Cone в установленном состоянии смягчает границу конуса тени. Тени от окружающих объектов, попадающие внутрь конуса, будут ослаблены. Параметры Area Shadow Width и Area Shadow Samples относятся к теням, создаваемым специальным источником освещения Area.
Закладка Caustics (рис. 5.121) содержит параметры, позволяющие создавать световые рефлексы на поверхностях (флажок Surface Caustics) и в объемах (флажок Volume Caustics) с учетом ослабления интенсивности (параметр Falloff). Моделируется влияние коэффициентов отражения и преломления материалов для падающего светового луча. Эффект рассчитывается по величине суммарного энергетического потока (Energy) или по количеству фотонов (Photons). Эти свойства доступны, если подключен модуль Advanced Render.
Illumination Scale — задает интенсивность шума. Wind, Wind Velocity — создает эффект ветра при анимации. Закладка Lens содержит параметры, моделирующие эффекты аберрации линз камер при визировании светящегося объекта, например, солнца. Чтобы наблюдать эффекты в окне проекций после рендеринга, на закладке General выберите один из следующих типов источников освещения Omni, Distant, Tube или Area. Эффекты можно увидеть также в окнах просмотра образца (в диалоговых окнах, рис. 5.123).
Закладка Noise содержит параметры, позволяющие создавать неоднородности освещения в виде темных и светлых областей (рис. 5.122).
Glow — позволяет выбрать тип свечения (светящегося объекта). Список содержит 24 наименования. На рис. 5.124 приведен результат рендеринга для Sun1. Самостоятельно просмотрите, как выглядят остальные типы.
Type — содержит 4 программы создания неоднородностей (из них три — для создания турбулентности). Octaves — определяет размер темных и светлых областей (для турбулентности). Velocity — задает скорость перемещения неоднородностей при анимации. Brightness, Contrast — служат для задания яркости и контраста неоднородностей. Флажок Local — в установленном состоянии фиксирует координаты источника освещения. Visibility Scale — задает размеры неоднородностей по соответствующим осям.
Brightness — регулирует яркость свечения объекта. Aspect Ratio — при значении, отличном от 1, придает свечению форму эллипса. Settings — вызывает окно настроек Glow Editor (рис. 5.125), назначение пунктов которого рассмотрим позже.
Кнопка Edit (рис. 5.123) вызывает окно Lens Editor (рис. 5.128), настройки которого будут рассмотрены далее.
Reflexes — позволяет задать тип эффекта, возникающего вследствие отражения от поверхности линз камеры. Это своеобразные блики. На рис. 5.126, 5.127 показан эффект Hi — 8 и Star 1 (для предыдущего примера Glow Sun 1). Примените остальные эффекты. Они позволяют получать в Cinema 4D гиперреалистические изображения.
Scale — позволяет масштабировать одновременно размеры объектов, задаваемых параметрами Glow и Reflexes. Rotation — позволяет повернуть на определенный угол объект, задаваемый параметром Glow. Reference Size — если флажки Glow Distance Scale и Reflex Distance Scale установлены, то данный параметр задает значение, используемое при расчетах яркости свечения в зависимости от близости светящегося объекта к камере (чем ближе, тем яркость выше). Флажок Use Light Parameters — в установленном состоянии учитывает настройки параметров закладки General на параметры Glow и Reflexes. Например, если цвет источника освещения был выбран синим, то Glow и Reflexes также будут с синим оттенком. Флажок Fade If Behind Object — ослабляет излучение источников, расположенных за объектами. Флажок Glow Distance Scale — яркость освещения зависит от удаленности источника от камеры. Флажок Fade If Near Border — сила эффектов, задаваемых в Reflexes, максимальна в центре кадра. Флажок Fade If Approaching Object — сила эффектов, задаваемых в Reflexes, убывает по мере перемещения источника освещения за объект. Флажок Reflex Distance Scale — сила эффектов, задаваемых в Reflexes, зависит от удаленности источника от камеры. Рассмотрим параметры диалогового окна Glow Editor (рис. 5.129). Glow — в списке 5 объектов (Element 1 и т. д.), каждый из которых можно настроить индивидуально, а затем применить к сцене. Будет получен суммарный эффект. Туре — в списке содержится 5 элементов, придающих свечению различную яркость. Size — задает размер свечения в процентах от размера экрана. R — задает форму свечения. Может изменяться от 0,1 до 10. При 1 —окружность, <>1 —эллипс. На рис. 5.130 приведен пример формы свечения для значений параметров, указанных ниже. Следующая группа параметров (Ring, Type, Size, R) позволяет настраивать характеристики кольца, центр которого совпадает с центром свечения (рис. 5.131).
Следующая группа параметров управляет характеристиками лучей, исходящих из центра свечения (рис. 5.132).
Beams — в списке 5 объектов (Element 1 и т. д.), каждый из которых можно настроить индивидуально, а затем применить к сцене. Будет получен некий суммарный эффект. Туре — содержит в списке 7 типов лучей. Выбор любого типа кроме Inactive вызывает второе окно для настройки лучей (рис. 5.133). Thickness — задает толщину луча. Beams — задает количество лучей. Breaks — позволяет создавать группы лучей. На рисунке показан результат для параметра Breaks = 3.
Width — задает ширину промежутка между группами лучей в процентах. Для рисунка Width =42%. Флажок Random Distribution — задает случайное распределение лучей (внутри групп лучей, если группы созданы) (рис. 5.134). Флажок Random Beam Length — в установленном состоянии присваивает лучам случайное распределение длин. Флажок Star Like — в установленном состоянии создает размытость (рис. 5.135).
Рассмотрим параметры диалогового окна Lens Editor (рис. 5.136).
Добавьте к сцене из предыдущего примера примитив Cylinder. Перетащите из окна менеджера объектов имена объектов Cube и Floor окно менеджера атрибутов в поле Objects на закладке Scene (рис. 5.139). Выберите из списка Mode команду Include. Это означает, что объекты, находящиеся в поле Objects, будут учтены при расчете освещенности (при рендеринге), то есть будут освещены. На рис. 5.139 слева приведен результат, полученный после рендеринга сцены. Element — Чтобы добавить элемент, служит кнопка Add. Чтобы удалить — Rem. Lens Type — позволяет выбрать форму рефлекса (блика), возникающего на поверхности линзы. На рис. 5.137 для формы блика выбран восьмиугольник.
Если в списке Mode выбрать команду Exclude, то неучтенными при расчете освещенности окажутся объекты, находящиеся в поле Objects (рис. 5.140).
Position — задает положение блика (рис. 5.137). Size — задает размер блика. Color — задает цвет блика. Закладка Scene (рис. 5.138) позволяет выбирать, какие объекты, участвующие в сцене, включать в расчет освещенности (при рендеринге), а какие не включать.
Для удаления одного из объектов или очистки поля щелкните правой кнопкой мыши по имени объекта или по любому месту поля и в контекстном меню выберите нужный пункт Remove (удалить один объект) или Remove All (удалить все) (рис. 5.141).
Щелкните правой кнопкой на имени Cone (в окне менеджера объектов) и выберите в контекстном меню Show Tracks (рис. 5.143). В меню хронографа Objects выберите пункт Spline to Position Tracks (рис. 5.144).
Флажки PyroCluster Illumination и PyroCluste Shadow Casting работают при подключенном модуле PyroCluster. При создании источника освещения Target Light создается Null Object, который является мишенью для источника освещения и контейнером для любого объекта, на который должен быть нацелен свет. Анимируем движение, например, примитива Cone вдоль криволинейной траектории, при этом сделаем так, чтобы источник освещения Target Light следил за перемещением Cone как за целью. Создайте источник освещения Target Light, примитив Cone и сплайн Spline. В окне менеджера объектов щелкните на тэге Target Expression «Cone» (в форме мишени). В окне менеджера атрибутов откроется окно Target Expression (рис. 5.142).
Запустите просмотр анимации. Источник освещения будет поворачиваться вслед за двигающимся по траектории конусом как за целью (рис. 5.146). Источник излучения Sun имеет аналогичные параметры, что и источник Light. Свойства его тэга Sun Expression (вкладка Tag) приведены на рис. 5.147.
В появившемся диалоговом окне (рис. 5.145) введите имя объекта, который будет использоваться в качестве пути. Имя этого объекта — Spline (можно ввести только первую букву S). Перетащите в поле Target Object имя Cone (рис. 5.142). Откройте окно хронографа (главное меню Window > Timeline).
Источник излучения Sun с помощью свойств тэга Sun Expression позволяет учитывать географическую долготу и широту, а также время суток. Это дает возможность получить реалистическое освещение ландшафта,
Флажки Interpolate Time, Interpolate Date — если надо анимировать освещение объекта, например, с 10 до 19 в течении 5-ти дней, установите оба флажка;
необходимое при планировке, например, городских зданий и загородных коттеджей. Latitude — задается географическая широта местности с указанием северного (N) или южного (S) полушария. Влияет на положение объекта Sun (выше/ниже). Longitude — задается географическая долгота местности с указанием западного (W) или восточного (Е) полушария. Влияет на положение объекта Sun (правее/левее) Distance — расстояние от центра глобальной системы координат до объекта Sun. Чем меньше значение, тем ниже орбита солнца располагается над землей. Time — задается время суток. Если надо ввести текущее время суток, щелкните по кнопке Now. Ниже расположены поля для ввода даты. С помощью значений Time можно управлять перемещением объекта Sun (а в принципе, любого объекта, у которого имеется тэг Sun Expression). Создайте сцену из следующих объектов: Cube, Floor с материалом Grass 001 и Sun. Для установленных Latitude, Longitude и других параметров (рис. 5.148) изменяйте время суток (с помощью счетчика) и наблюдайте за перемещением объекта Sun по орбите. Восход — на востоке, расположенном на положительной полуоси оси 0Х. Зенит расположен на положительной полуоси оси 0Y. Закат — на западе, расположенном на отрицательней полуоси оси 0Х. Соответственно изменяется отбрасываемая объектом Cube тень (рис. 5.149—5.151).
если необходимо анимировать освещение объекта, например, в 10 часов, но для различных дней, установите флажок Interpolate Time, а флажок Interpolate Date сбросьте. Флажок Set Light Color— в установленном состоянии задает автоматическое окрашивание освещения в зависимости от географического расположения, времени суток и даты. Можно в окне менеджера объектов перетащить тэг Sun Expression от объекта Sun к другому объекту, например, Sphere (рис. 5.152). Теперь Sphere будет перемещаться по траектории так, как до этого делал объект Sun. Так можно смоделировать движение луны.
5.5. Дополнительные объекты сцены 5.5.1. Объект Floor Объект Floor (пол) можно создать либо через главное меню (рис. 5.153), либо щелкнув по пиктограмме Add Light Object на горизонтальной панели инструментов и выбрав пиктограмму Floor (рис. 5.154). Объект Floor всегда располагается в плоскости XZ глобальной системы координат и имеет бесконечную протяженность во всех направлениях при рендеринге (меню Render -> Render View). Присвойте объекту Floor материал Wood (рис. 5.155), перетащив его значок из окна менеджера материалов на значок Floor в окне менеджера объектов.
В окне менеджера объектов появился тэг текстуры «Wood 009.1». Можно по-другому назначить материал объекту Floor. Для этого выделите тэг текстуры «Wood 009.1», откроется окно свойств тэга (рис. 5.156). В поле Material щелкните по кнопке с черным треугольником и в открывшемся списке выберите команду Clear, которая очистит поле Material. Материал Wood 009.1 будет удален. Выберите в менеджере материалов материал
Grass 001 (трава) и перетащите его в поле Material. Объекту Floor будет материал Grass 001 (трава) (рис. 5.156). Можно не вызывать команду Clear, а сразу перетащить в поле Material значок нового материала. Создадим еще один объект Floor, разместим его над первым объектом на высоте 1000 м и присвоим ему материал Sky001
Настройки материала приведены на рис. 5.158. Для получения единичного изображения неба на всей плоскости Floor важно, чтобы значения Length X и Length Y были большими и чтобы был установлен флажок Tile.
Разверните плоскость с облаками, как показано на рис. 5.159. Сделайте рендеринг сцены (рис. 5.160). Если сцена получилась темной, можно добавить источник света. На рис. 5.161 приведена картина «На краю земли».
5.5.2. Объект Sky Способы создания небесного свода (Sky) показаны на рис. 5.162. Объект Sky представляет собой сферу бесконечного радиуса с центром в начале координат (глобальная система координат). В окне менеджера атрибутов представлены параметры объекта Sky (рис. 5.163).
Это стандартный набор координат перемещения, масштабирования и вращения. Создадим на объекте Sky облака. Для этого загрузим в окно менеджера материалов библиотеку растровых текстурных карт (в меню окна менеджера материалов выберите File -> Load Materials и в появившемся диалоговом окне выберите Basics). Выделите материал Sky 001 и перетащите его (прижав значок материала левой кнопкой мыши) в окно менеджера объектов на имя Sky (рис. 5.164). Как только отпустите кнопку мыши, справа от имени Sky появится тэг Texture Tag «sky001» (тэг — это прикрепляемая к объекту программа, расширяющая набор свойств объекта). Щелкните по значку тега — в окне менеджера атрибутов откроется окно с его свойствами. Перейдите
на закладку Tag. Так как объект Sky это сфера с бесконечным радиусом, то параметр Projection (тип проекции текстуры) надо выбрать соответственно Spherical или Cubic (рис. 5.165). Остальным параметрам присвойте значения, указанные на рис. 5.165. Если облака кажутся слишком большими, то надо увеличить значение параметра повторения рисунка Tile X и Tile Y при установленных флажках Tile и Seamless (бесшовный). Присвоим объекту Sky материал Brick 001 (рис. 5.167). Создайте мужскую фигуру Objects -> Object Library > Zygote Man и расположите ее так, чтобы фигура скрывалась за плоскостью объекта Floor с облаками
Изменим значение прозрачности на 20% — фигура Zygote Man, спрятанная за плоскостью, станет видна (рис. 5.169).
Удалите объекты Floor и разверните фигуру Zygote Man, чтобы получилась сцена падения человека с кирпичной стены (рис. 5.170).
Создайте самостоятельно единичную фигуру человека, парящего в облаках (рис. 5.171), и группу людей в облаках (рис. 5.172). Для создания группы объектов, расположенных по кругу, используйте Objects -> Modeling -> Array (см. Глава 2, раздел Инструменты моделирования).
5.5.3. Объект Environment Объект служит для создания окружающей среды сферу; Имеются следующие возможности при работе с окружающей средой (рис. 5.173):
— создание рассеянного освещения, цвети интенсивность, которого придают сцене определенную атмосферу; — создание эффекта туманной или подводной сцены, На рис. 5.174 приведен пример создания рассеянного освещения красного цвета и синего тумана.
Параметр Environment Strength регулирует силу подсветки, созданной параметром Environment Color.
5.5.4. Объекты Foreground и Background Объект Background позволяет создавать фон для сцены. Присвоим объекту Background материал Sky 001 и разместим на этом фоне объект Zygote Man (рис. 5.176).
На рис. 5.175 приведены настройки параметра Environment. Для задания тумана следует взвести флажок Enable Fog и задать его цвет (Color), силу (Strength) и густоту тумана (глубину видимости) (Distance).
Объект Foreground позволяет создать на переднем плане некоторое изображение. Если изображение непрозрачное, то оно закроет собой всю сцену. Если же задать материалу переднего плана определенную степень прозрачности, то можно получить интересные эффекты наложения нескольких изображений. Для сцены, изображенной на рис. 5.177, добавим объект Foreground, присвоим ему материал Brick001 (рис. 5.178) и зададим значение параметра Transparency (прозрачность) материала, например, 80% (рис. 5.177).
Туман заполняет сферу с бесконечным радиусом с началом в центре глобальной системы координат. Параметр Environment Color используется для создания дополнительных цветовых эффектов. Например, с помощью этого параметра можно подобрать к основному цвету сцены дополнительный цвет. Цвет создается либо щелчком по прямоугольному полю (вызывается палитра и выбирается цвет), либо щелчком по черному треугольнику вызывается трехцветовая шкала RGB (результирующий цвет составляется в долях из красного, зеленого и синего).
Окончательный результат приведен на рис. 5.179.
Можно создать в редакторе Word какой-либо текст, взяв его, например, из коллекции WordArt (рис. 5.180), скопировать, загрузить в Photoshop и преобразовать, например, в TIFF-формат. Имя файла пусть будет Текст.TIFF.
Создав в Cinema 4D новый материал (в менеджере материалов File -> New Material), присвойте новому материалу изображение, записанное в файле Текст.TIFF. Для этого щелкните по значку нового материала. В окне менеджера атрибутов откроются его свойства. Щелкните по кнопке с черным треугольником справа от имени параметра Texture (рис. 5.181). В появившемся списке выберите пункт Load Image... (рис. 5.182). В диалоговом окне Open File выберите файл Текст.TIFF. Появится диалоговое окно с предложением создать копию выбранного документа (рис. 5.183), ответьте утвердительно. В результате новому материалу будет присвоено изображение с текстом надписи (рис. 5.184). Переименуйте новый материал, дав ему имя Текст. Перетащите значок нового материала на имя объекта Background в окне менеджера объектов (рис. 5.185). Справа от имени Background появится значок тэга Texture Tag «Текст». Таким образом, новая текстура создана и присвоена объекту Background.
Отрегулируем теперь степень прозрачности материала с текстом. Для этого двойным щелчком по значку материала Текст вызовем диалоговое окно Material Editor и зададим параметру Transparency значение 80% (рис. 5.186). Сделаем рендеринг сцены (главное меню Render -> Render View) (рис. 5.187).
Допустим, мы хотим, чтобы с первого кадра по 20 сцену снимала камера с именем Camera. С 21 кадра по 50 — камера с именем Camera 1. С 51 кадра по 80 — снова камера Camera. С 81 по 90 кадр — камера Camera 1. Щелкните по имени Stage в окне менеджера объектов, поставьте движок шкалы анимации на первый кадр и перетащите имя Camera из окна менеджера
5.5.5. Объект Stage Выполнят функции кинорежиссера или оператора на съемочной площадке. Например, если у вас в сцене несколько камер, то с помощью объекта Stage можно задать, на каком кадре происходит переключение с одной камеры на другую. Создадим сцену со следующими объектами (рис. 5.188).
мыши по кружку слева от имени параметра Camera. Так вы создали второй ключевой кадр. Повторите указанные операции для остальных кадров. Запустите анимацию. Вы убедитесь, что камеры переключаются на заданных кадрах.
объектов в окно менеджера атрибутов в поле Camera (рис. 5.190). Удерживая нажатой клавишу Ctrl, щелкните левой кнопкой мыши по кружку слева от названия параметра Camera. Кружок закрасится красным цветом, что означает — ключевой кадр создан. Передвиньте движок шкалы анимации на 21 кадр. Перетащите левой кнопкой мыши имя камеры Camera 1 из окна объектов в окно атрибутов в поле Camera (на то же самое место, где был объект Camera) и, удерживая клавишу Ctrl, щелкните левой кнопкой
Аналогично можно задать временной график появления объектов сцены (если они были созданы) Sky, Foreground, Background и Environment.
Глава 6. Меню Tools и Selection 6.1. Меню Tools
6.1.1. Инструменты Move и Rotate
Начнем рассмотрение с команд и инструментов, собранных в меню Tools (рис. 6.1). Там, в основном, дублируются инструменты, представленные пиктограммами на (левой вертикальной и верхней горизонтальной) панелях инструментов.
Инструмент Move позволяет перемещать в окнах проекций выделенный объект и его элементы, инструмент Rotate позволяет вращать объект и его элементы. При перемещении объекта важно следить за тем, какая система координат выбрана в данный момент. Создайте объект — примитив Cube (куб). На рис. 6.2 видны две системы координат; одна привязана к самому объекту (локальная система координат), другая находится в левом нижнем углу окна проекций (глобальная система координат).
Переключаться между этими системами можно через меню Tools -> Coordinate System (рис. 6.3) или клавишей W (от слова World — мир) или щелкнув по пиктограмме на горизонтальной панели инструментов: включена глобальная система координат, включена локальная система координат. На рис. 6.3 направления осей двух систем координат совпадают, поэтому при перемещении объекта не важно, в какой системе мы находимся. Но направление осей двух систем координат может и не совпадать. Применим к объекту инструмент Rotate (рис. 6.4) и повернем объект вместе с осями локальной системы координат. Теперь оси локальной системы координат ориентированы иначе, чем оси глобальной (рис. 6.4). Это видно по цветам осей. 0Х — красный цвет, 0Y — зеленый, 0Z — синий. Выделим объект куб и выберем инструмент Move.
Заблокируем возможность перемещения по осям 0Y и 0Z и оставим единственно возможное направление перемещения — ось 0Х. Блокировка производится с помощью кнопок Ограничителей перемещения вдоль осей (рис. 6.5), которые располагаются на верхней горизонтальной панели инструментов. Активизируйте (нажмите) кнопку со значком X. Изображение стрелочки в активном состоянии должно быть в цвете, соответствующем цвету оси, в данном случае — это красный цвет. Кнопки Y и Z приведите в неактивное состояние (в неактивном состоянии стрелки обесцвечены) (рис. 6.5). Выберите глобальную систему координат (клавиша W), установите курсор на свободном месте в окне проекций, прижмите левую кнопку мыши и подвигайте курсор по окну проекций. Так как оси 0Z и 0Y заблокированы, то, несмотря на ваши движения мышью в различные стороны, куб будет перемещаться строго в направлении оси 0Х глобальной системы координат, направление
осей которой изображено в левом нижнем углу окна проекций (рис. 6.4). Перейдите в локальную систему координат и снова подвигайте курсор (при нажатой левой кнопке мыши) по свободному месту окна проекций. Теперь куб будет перемещаться в другом направлении, хотя тоже по оси 0Х, но уже локальной системы координат, изображенной на самом объекте (рис. 6.4). Если прижать левой кнопкой мыши любую из осей локальной системы координат (выбранная ось окрашивается в желтый цвет), то куб будет двигаться в направлении этой оси, несмотря на блокировку перемещения по этой оси. Можно также прижать левой кнопкой мыши значок (в виде маленького куба) начала координат локальной системы координат и подвигать объект в произвольных направлениях. В этом случае блокировка также не действует. Двойной щелчок левой кнопкой мыши по оси локальной системы координат делает направление этой оси единственно возможным для перемещения. Остальные оси блокируются (значки на панели инструментов это не отражают). Если при смене блокировок возникает путаница, щелкните по значку начала координат локальной системы координат, чтобы снять установки с осей. Создайте еще один куб Cube 1 и разместите его на уровень подобъекта к первому Cube (рис. 6.6) Для этого в окне менеджера объектов прижмите левой кнопкой имя Cube 1 и перетащите его на имя Cube. При правильном положении курсора появляются черная стрелка, указывающая вниз, и белый квадрат. Отпустите кнопку мыши и объект Cube 1 станет подобъектом объекта Cube (рис. 6.6). Если выделить родительский объект Cube, то при его перемещении будет перемещаться и подобъект Cube 1. Чтобы зафиксировать подобъекты, надо при перемещении удерживать клавишу Ctrl. Чтобы выделить группу самостоятельных объектов, выделите в окне менеджера объектов их имена, щелкая левой кнопкой мыши по именам при нажатой клавише Shift (рис. 6.7).
В этом случае в окне проекций будет создана групповая система координат. Ее значок будет расположен между выделенными объектами (рис. 6.8). Теперь, пользуясь рассмотренными выше приемами, можно передвигать сразу все три объекта в групповой системе координат.
Если групповая система координат по каким-либо причинам не подходит, то можно вызвать локальную систему координат любого из объектов группы. Для этого надо внимательно всмотреться в изображение объектов (можно увеличить вид) и щелкнуть на едва различимом значке локальной системы координат, который представлен в центре объекта в виде трех разноцветных осей (рис. 6.9).
После вызова локальной системы все три объекта будут перемещаться в ее осях. В окне менеджера атрибутов приведены параметры инструмента Move на вкладке Modeling Axis (рис. 6.10). Modeling Axis это оси, которые используются при моделировании. Именно вокруг этих осей объект вращается, передвигается, масштабируется. Первоначально центр Modeling Axis совмещен с центром объекта. Чтобы переместить Modeling Axis, надо создать объект, например, примитив Cube, перевести его в редактируемое состояние, удерживать нажатой функциональную клавишу F10, прижать левую кнопку
мыши в любом месте окна проекций и передвинуть курсор в нужном направлении. Для поворота Modeling Axis выполните те же действия, но только с нажатой клавишей F11 (рис. 6.12).
Если теперь выделить все грани куба (главное меню Edit -> Select All), то куб можно, например, вращать (выбрав инструмент Rotate) вокруг перемещенного центра Modeling Axis (рис. 6.13).
6.1.2. Инструмент Scale Служит для изменения масштаба объектов (пиктограмма имеет вид Существует 2 режима применения инструмента масштабирования: режим Модели (пиктограмма Use Model Tool на вертикальной панели инструментов слева) и режим Объекта (пиктограмма Use Object Tool ). В режиме Модели масштабировать примитивы, представленные в параметрическом виде, можно только равномерно по всем осям, а примитивы, представленные в полигональном виде, — можно масштабировать по каждой оси в отдельности. В режиме Объекта масштабировать примитивы как в параметрическом, так и в полигональном виде можно по каждой оси в отдельности. Для равномерного масштабирования выделенного объекта (находящегося в параметрическом или в полигональном виде в режиме модели или объекта) используйте клавишу 7. Удерживая нажатой клавишу 7, двигайте курсор в окне проекций (при нажатой левой кнопке мыши).
6.1.3. Инструмент Magnify Просто щелчок при выбранном инструменте увеличивает изображение, щелчок при нажатой клавише Ctrl — уменьшает изображение.
6.1.6. Режим Tweak В режиме Default Mode надо вначале щелкнуть по элементу, чтобы его выделить, а затем выбрать инструмент и произвести с выделенным элементом операции. В режиме Tweak для применения к элементу какого-либо инструмента надо вначале выбрать инструмент, а затем навести курсор на элемент. Когда элемент пожелтеет, надо нажать левую кнопку мыши и применить инструмент к элементу. Щелчка для выделения элемента не требуется. В режиме Tweak недоступны многие инструменты меню Structure (работают только инструменты Move, Extrude, Smooth Shift и Bevel).
6.1.7. Инструмент N-gon Triangulation При рендеринге (пересчете трехмерного изображения в двумерное) Cinema 4D преобразует все Nугольники в треугольники. Если включить этот режим, то преобразование будет производиться автоматически. В противном случае всякий раз надо вызывать функцию Functions -> Retriangulate N-gons.
6.1.8. Инструмент Use Isoline Editing Создадим примитив Cube с разбивкой по три сегмента на ребро. Переведем примитив в полигональный вид и сделаем подобъектом HyperNURBS (рис. 6.14).
6.1.4. Режим Default Mode Режим по умолчанию. Позволяет выделять элементы объектов (точки, ребра, полигоны) и сами объекты. Объект должен быть переведен в полигональное состояние. Вначале надо выбрать режим (Use Point Tool, Use Edge Tool, Use Polygon Tool). Затем надо выбрать объект (щелкнуть левой кнопкой мыши, а затем уже применять к выделенному элементу инструменты).
6.1.5. Режим Auto Switch Mode Позволяет автоматически переключаться между режимами точек, ребер и полигонов. При наведении курсора на элемент поверхности объекта (предварительно объект должен быть приведен к полигональному виду) этот элемент окрашивается в желтый цвет. Если в этот момент щелкнуть левой кнопкой мыши по подкрашенному в желтый цвет элементу, то произойдет автоматическое переключение в соответствующий режим. Так, если щелкнуть по желтой точке (вершине), то активизируется Use Point Tool. Если щелкнуть по желтому ребру, активизируется режим ребер (Use Edge Tool). Если щелкнуть по полигону, активизируется режим полигонов (Use Polygon Tool).
На рис. 6.15 слева показан вид с неактивным инструментом Use Isoline Editing. Справа — с активным, где все присутствующие первоначально в разбивке поверхности примитива (точки, ребра и полигоны) спроецированы на сетку HyperNURBS, где их можно легко выделить. Ряд инструментов (например, Close Polygon Hole) не работают с инструментом Use Isoline Editing.
6.1.9. Инструмент Show Axis Делает видимыми или скрывает значки локальных систем координат для выделенных объектов (рис. 6.16).
Для поворота камеры вокруг осей 0Х и 0Y прижмите клавишу 3 и двигайте курсор при нажатой левой кнопке мыши. Для поворота камеры вокруг оси 0Z прижмите клавишу 3 и двигайте курсор при нажатой правой кнопке мыши. Для выполнения этих операций можно также использовать инструменты Move, Scale и Rotate.
6.1.11. Инструмент Object (Use Object Tool)
6.1.10. Инструмент Camera Вначале надо создать объект Camera (камера). Это делается либо через главное меню Objects -> Scene -> Camera, либо щелкнув по пиктограмме Add Light Object и выбрав из набора пиктограмму Camera (рис. 6.17).
При выборе инструмента Use Object Tool включается режим Object, предназначенный для работы с объектом на стадии анимации. В этом режиме можно совершать с объектом операции перемещения, масштабирования и вращения. Для работы с объектом на стадии моделирования следует активировать инструмент Use Model Tool (включается режим Model). Отличие между инструментами в том, что в режиме Object при масштабировании выделенного объекта масштабируются оси объекта, что будет видно при анимации. В режиме Model масштабируется поверхность объекта.
6.1.12. Инструмент Points
В окне проекций появится габаритная рамка и значок камеры зеленого цвета (рис. 6.18).
Для интерактивных манипуляций с камерой существуют следующие комбинации клавиш. Для перемещения камеры вправо/влево прижмите клавишу 1 и двигайте курсор при нажатой левой кнопке мыши. Для приближения/удаления камеры прижмите клавишу 2 и двигайте курсор при нажатой левой кнопке мыши.
Позволяет редактировать точки объекта. Данный пункт меню дублирует пиктограмму Use Point Tool на левой вертикальной панели инструментов. Объект должен быть предварительно переведен в полигональное состояние. Точки можно выделять, при этом они изменяют цвет на оранжевый. Выделять точки можно отдельно каждую (удерживая клавишу Shift, щелкать по точкам левой кнопкой мыши) или все точки сразу (меню Edit -> Select All). Для создания новой точки удерживайте нажатой клавишу Ctrl и щелкните левой кнопкой мыши на том месте, где нужно создать новую точку. Это может быть любое место на ребре или грани поверхности (рис. 6.19).
6.1.13. Инструмент Edges Позволяет редактировать ребра объекта, представленного в полигональном виде. Данный пункт меню дублирует пиктограмму Use Edge Tool на левой вертикальной панели инструментов. Выделенное ребро оранжевого цвета. Для выделения и преобра-
зования ребер применимы те же операции, что и для точек.
6.1.14. Инструмент Polygons Позволяет редактировать полигоны объекта, приведенного к полигональному виду. Данный пункт меню дублирует пиктограмму Use Polygon Tool на левой вертикальной панели инструментов. Различают три типа полигонов: треугольные, четырехугольные и Nугольные.
6.1.15. Инструмент Object Axes Применяется в случаях, когда надо переместить точку начала локальной системы координат. Например, при создании тела вращения из сплайна перемещением начала координат можно получать различные объекты (рис. 6.20). Если осей не видно, проверьте пункт Tools -> Show Axis — он должен быть включен.
Преобразуйте объект и подобъект в полигональный вид (меню Functions -> Make Editable). Войдем в режим Object (Use Object Tool) и применим к родительскому объекту Cone инструмент Scale. Объект Cone деформируется, так как деформировались его оси (рис. 6.22).
Оси подобъекта Cube также отмасштабировались, так как он является подобъектом. Если теперь выделить Cube и применить к нему инструмент Rotate, то точки поверхности Cube будут перемещаться не по окружностям, а по эллипсам, то есть Cube будет искажен при вращении (рис. 6.23).
6.1.17. Инструмент Model (Use Model Tool) Применяется для работы с объектом на этапе моделирования с использованием инструментов Move, Scale и Rotate. В Cinema 4D для анимации применяется режим, включаемый инструментом Use Object Tool, для моделирования — Use Model Tool. Отличие проявляется при масштабировании иерархических объектов, где есть родительский и дочерний объекты. Например, создайте иерархию, как показано на рисунке.
Чтобы этих искажений не происходило, надо при моделировании объектов изначально применять инструмент Use Model Tool, включающий режим Model.
При этом внешне все выглядит так же, как и при режиме Object (рис. 6.24) — при масштабировании родительского объекта деформируется также и дочерний объект. Отличие в том, что их оси не искажаются — остается неизменным соотношение длин единичных векторов осей 1:1:1.
В появившемся диалоговом окне выберите Basics. Выберите материал Ball 002 и, прижав его образец левой кнопкой мыши, перетащите из окна менеджера материалов на объект Cube в окне проекций. Вызовите инструмент Texture. На поверхности объекта появится двумерная координатная сетка синего цвета (рис. 6.27).
Если применить к подобъекту инструмент вращения, то вращение будет происходить без искажений пропорций подобъекта Cube (рис. 6.25). Выбрав инструмент Move, можно перемещать эту сетку — вслед за сеткой перемещается и рисунок текстуры на поверхности объекта (рис. 6.28).
Если действия в режиме Object уже выполнены, то, чтобы восстановить масштаб осей локальной системы координат, надо (при выделенном объекте Cone) выбрать в меню Functions -> Reset System и установить в диалоговом окне Reset System флажки, как показано на рис. 6.26.
To же повторить для подобъекта Cube.
6.1.18. Инструмент Texture Создайте объект, например, примитив Cube. Что бы загрузить набор материалов, в окне менеджера материалов в меню выберите File -> Load Materials
Выбрав инструмент Scale, можно масштабировать наложенную на поверхность текстуру (рис. 6.29).
6.1.19. Инструмент Inverse Kinematics Инструмент позволяет перемещать объекты, выстроенные в иерархическую цепочку, перемещая самый последний в цепочке объект. Создадим иерархическую цепочку объектов (рис. 6.30).
между объектами и поддерживает его постоянным с тем, чтобы иерархическая цепочка не распалась. По умолчанию при перемещении родительского объекта за ним автоматически перемещаются все его подобъекты, расположенные на нижних уровнях иерархии. То есть если выделить Cube и применить инструмент Move, то вслед за кубом будут перемещаться сфера, конус и цилиндр. Если выделить конус и применить к нему инструмент Move, то вслед за конусом будет перемещаться цилиндр, как подобъект. Такой порядок называется прямой кинематикой.
Можно поэкспериментировать на примитиве Figure (не забудьте предварительно перевести его в полигональное состояние), перемещая стопу манекена при включенном инструменте Inverse Kinematics (рис. 6.34). В качестве цели для движения ноги первого манекена можете добавить второй манекен.
Часто при анимации персонажа легче строить движение, начиная не с родительского объекта, а именно с дочернего. Проще двигать к цели именно кисть руки, чем перемещать кость плеча, пытаясь в результате действия прямой кинематики попасть кистью в цель. В этом случае должна действовать обратная кинематика — перемещение дочернего объекта в иерархии вызывает соответствующее перемещение родительских объектов. Для реализации обратной кинематики служит инструмент Inverse Kinematics. Выделите Cylinder — самый младший (нижний) объект в иерархии (рис. 6.32) и активизируйте инструмент Inverse Kinematics. На объекте Cylinder появится общий значок инструментов перемещения и вращения (рис. 6.32). Перемещайте цилиндр. Остальные объекты, хотя и находятся на более высоких уровнях иерархии, будут следовать за ним. Программа просчитывает расстояние
Более подробно тема инверсной кинематики рассмотрена в главе, посвященной модулю МОССА.
6.1.20. Инструмент Animation Позволяет менять форму траектории, по которой движется анимируемый объект. Создадим анимацию для примитива Cube (рис. 6.35). Вызовем инструмент Animation. Теперь можно, кроме перемещения отдельных точек траектории, модифицировать траекторию целиком: перемещать, масштабировать и вращать.
вокруг осей, так как в ней применяются линейные единицы измерения, например, метры. Так, результат анимации вращения объекта вначале вокруг оси 0Х, а затем вокруг оси 0Y может не таким, как если вначале вращение было вокруг оси 0Y, а затем вокруг оси 0Х. Система НРВ не чувствительная к подобным вещам, так как для измерения в ней применяются градусы. При выполнении операции вращения объектов Cinema 4D всегда работает в системе НРВ — это видно в окне менеджера атрибутов для параметра R (рис. 6.37).
Установка системы НРВ для инструмента Rotate, который применяется интерактивно, производится следующим образом: Edit -> Preferences, в разделе Units поставить флажок Use НРВ System (рис. 6.38).
6.1.21. Инструменты XAxis/Heading, YAxis/Pitch, ZAxis/Bank Позволяют заблокировать перемещение объекта по соответствующим осям. Например, создав примитив Cube и выбрав инструмент Move, можно отключить оси 0Y и 0Z (не выбрав эти значки либо в меню Tools, либо на верхней горизонтальной панели инструментов), а активной оставив только ось 0Х. Теперь при передвижении курсора по свободному пространству окна проекций перемещение объекта Cube будет происходить только в направлении оси 0Х.
На рис. 6.39 приведены отличия в изображении инструмента Rotate в системе осей XYZ и НРВ. Название НРВ имеет авиационное происхождение H от слова Heading — изменение курса самолета вправо/влево, Р от Pitch — движение носа самолета вверх/вниз, В от Bank — наклон самолета на левое/правое крыло. Оси НРВ независимы друг от друга,
6.1.22. Инструмент Coordinate System Позволяет переключаться между локальной и глобальной системами координат. Для каждого инструмента запоминается система координат, в которой инструмент был применен. Например, перемещение объекта инструментом Move было произведено в глобальной системе координат. Потом вы перешли в локальную систему координат и сделали масштабирование. Затем снова вызвали инструмент Move. В этот момент Cinema 4D автоматически перейдет в локальную систему координат с которой было связано последнее применение инструмента Move. Для вращения объектов используется система координат НРВ. Система XYZ чувствительна к последовательности, в которой производятся вращения объекта
единицы измерения — градусы. Таким образом, имеется следующее соответствие между системами. R.H — поворот в плоскости XZ, R.P — поворот в плоскости YZ; R.B — поворот в плоскости XY.
6.1.23. Инструмент Camera Rotation Позволяет вращать камеру вокруг выделенного объекта.
6.2. Меню Selection 6.2.1. Selection Filter По умолчанию в окне проекций все объекты могут быть выделены двойным щелчком мыши. Selection Filter (рис. 6.40) содержит набор инструментов, позволяющих запретить или разрешить выделение определенных типов объектов. Настройки Selection Filter имеют силу только в пределах окна проекций. Несмотря на настройки Selection Filter, любой объект можно выделить в окне менеджера объектов. Selection Filter полезен при работе с большим количеством объектов разных типов.
Инструмент Select Tool имеет диалоговое окно с двумя закладками Objects и Tags (рис. 6.41). Инструмент позволяет выделить сразу все объекты сцены, относящиеся к одному классу. Например, если установить флажок Polygon на вкладке Objects, то автоматически будут выделены все полигональные объекты (объекты, переведенные в полигональное состояние Functions -> Make Editable), участвующие в сцене.
Если некоторые (но не все) из выделяемых объектов уже были выделены, то на месте галочки слева от имени Polygon в окне Select Tool появится знак минус, что означает частично выделены. Чтобы снять минус, щелкните по нему. На вкладке Tags перечислены имена тэгов, которые можно выделить. Флажок. Restrict to Active Objects в установленном состоянии разрешает выделять только тэги уже выделенных объектов (рис. 6.42).
Команда Create Selection Object позволяет создать объект, хранящий имена объектов, которые были выделены в момент применения команды Create Selection Object. Например, в сцене 3 объекта: конус, сфера и куб. Выделены конус и сфера (рис. 6.43). Вы применяете команду Create Selection Object и создаете объект Selection. Его имя возникает как в окне менеджера объектов (рис. 6.43), так и в меню (рис. 6.44). При этом, хотя выделение с объектов снимается (рис. 6.43, справа), в объекте Selection хранится информация о том, какие объекты были выделены. Поэтому если щелкнуть в меню на имени Selection (рис. 6.44), то выделение объектов в окне менеджера объектов будет восстановлено (рис. 6.45).
6.2.2. Инструмент Live Selection Служит для выделения точек, ребер и полигонов объектов, представленных в полигональном виде. Является аналогом инструмента на горизонтальной панели инструментов . Инструмент имеет вид окружности, которая становится видна при нажатии левой кнопки мыши на объекте или в любом месте окна проекций, если хотя бы один объект сцены переведен в полигональный вид (если все объекты в параметрическом виде, то окружность не видна) (рис 6.46). Для интерактивного изменения радиуса окружности, при нажатой левой кнопке мыши вращайте колесико мыши. Радиус (Radius) и другие характеристики
инструмента Live Selection можно также задать в окне менеджера атрибутов (рис. 6.47). Pressure Dependent Radius — позволяет изменять радиус в зависимости от силы нажатия ручки графического планшета. Only Select Visible Elements — при установленном флажке выделяет только видимые элементы. Например, полигоны, находящиеся на противоположной грани куба, выделены не будут. Tolerant Edge Selection — доступен только в режиме редактирования ребер. При установленном флажке ребро становится выделенным, если хотя бы малая его часть попадает в окружность инструмента. При сброшенном флажке в окружность должна попасть большая (не менее 75%) часть ребра. Mode — задает, какие дополнительные операции можно производить при выделении. Normal — только выделение. Vertex Painting — создание цветовой карты веса вершин (Vertex Map) с возможностью установки (Set), добавления (Add) и вычитания (Subtract) весов (рис. 6.48, 6.49). Soft Selection — позволяет включать в зону выделения не только непосредственно выделенный полигон (полигоны), но и соседние с ним полигоны, которые выделены не были. Параметры Soft Selection приведены на рис. 6.50. Зона захвата соседних полигонов определяется величиной параметра Radius. Установка флажка Rubber делает выделенную поверхность более пластичной. Параметр Falloff задает закон распределения силового воздействия на прилегающие невыделенные полигоны. На рис. 6.51—6.53 приведены примеры различных типов параметра Falloff для Soft Selection, примененного к единичному полигону при Radius =
80 м. В качестве исходного объекта взят примитив Plane. Типы Linear Dome Bell и Circle внешне практически идентичны, поэтому представлены одним рисунком. На рис. 6.54 приведен пример, где закон распределения задан с помощью формы сплайна.
6.2.3. Инструменты Loop Selection и Ring Selection Позволяет одним щелчком производить выделение замкнутой цепочки полигонов, ребер или точек поверхности объекта. Например, для примитива Cube в
режиме полигонов (рис. 6.55) достаточно щелкнуть на одном полигоне, чтобы выделить все полигоны, расположенные по периметру. Выбор горизонтального или вертикального кольца определяется тем местом на поверхности полигона, по которому произведен щелчок левой кнопкой мыши: если щелкнули ближе к правой/левой границе полигона, то выделяется горизонтальное кольцо полигонов, если к верхней/нижней границе — вертикальное.
Выделите на щеке персонажа Zygote Man ребра трех смежных полигонов (рис. 6.58). Желательно, чтобы цепочка выделенных ребер была замкнутой.
Выберите инструмент Fill Selection и наведите курсор на область внутри выделенных ребер. Полигоны, находящиеся в этой области, станут желтого цвета. Щелкните левой кнопкой мыши по этим полигонам — полигоны будут выделены и окрасятся в красный цвет (рис. 6.59). Также можно выделить полигоны, окружающие выделенную область (рис. 6.60).
6.2.4. Инструмент Outline Selection Инструмент позволяет выделять ребра, расположенные по периметру выделенных полигонов. Например, на рис. 6.57 красным цветом выделено 4 полигона и оранжевым (после применения инструмента Outline Selection) выделены ребра, расположенные по контуру выделенных полигонов. Для выделения контура, надо, находясь в режиме Use Polygon Tool при выбранном инструменте Outline Selection, подвести указатель мыши к контуру, который станет желтого цвета, и щелкнуть по нему левой кнопкой мыши.
6.2.5. Инструмент Fill Selection Позволяет производить выделение полигонов на основании выделенных ребер.
делит все полигоны, связанные с выделенным полигоном сегмента.
6.2.10. Инструмент Grow Selection Позволяет увеличивать выделенную область (количество выделенных полигонов, ребер и точек) за счет присоединения соседних полигонов (ребер, точек) (рис. 6.62). В отличие от предыдущего инструмента, здесь к первоначально выделенному элементу присоединяются только элементы первого слоя близости. Если применить инструмент еще раз, то к полученной области добавится еще один слой, например, полигонов, контактирующий непосредственно с исходной выделенной областью. Выделенная область увеличится.
6.2.6. Инструмент Convert Selection Позволяет преобразовывать типы выделенных элементов. Например, выделенный полигон (рис. 6.61) можно преобразовать в выделенные соответствующие вершины (точки) или в ребра. Тип преобразования задается в диалоговом окне. В частности, полигон преобразуется в 4 соответствующих полигону ребра (рис. 6.61). Характер преобразования задается в диалоговом окне Convert Selection. В списке слева надо выбрать исходный объект, в списке справа — объект, в который будет произведено преобразование. Щелкните по кнопке Convert.
6.2.11. Инструмент Shrink Selection Позволяет уменьшить выделенную область за счет снятия выделения с периферийных элементов первого слоя близости. Действие инструмента обратно действию предыдущего. Пример приведен на рис. 6.63. Повторное применение инструмента снимет еще один слой и так далее.
6.2.7. Инструменты Select All и Deselect All Вначале выделите какой-либо один элемент, например, ребро. Чтобы выделить теперь все ребра объекта, примените команду Select All. Для снятия выделения примените команду Deselect All.
6.2.8. Инструмент Invert Делает выделенные элементы невыделенными, а невыделенные — выделенными.
6.2.9. Инструмент Select Connected Полигональные объекты часто состоят из отдельных сегментов, которые не связаны друг с другом полигонами или сплайнами. В этом случае, чтобы выделить все полигоны (вершины, точки) сегмента, можно выделить один полигон (ребро, точку) сегмента и применить инструмент Select Connected. Инструмент вы-
6.2.12. Инструмент Hide Selected Делает невидимым в окне проекций любой выделенный объект (элемент) сцены. Можно скрыть, например, ребра полигонов или сами полигоны, при этом в поверхности объекта образуется дыра (рис. 6.64).
6.2.13. Инструмент Hide Unselected Позволяет сделать невидимыми невыделенные элементы (рис. 6.65).
(рис 6.68), а в окне менеджера атрибутов — перечень свойств тэга (рис. 6.69). Если были бы выделены не ребра, а точки или полигоны, то вместо Edge в поле Name фигурировали бы слова Point или Polygon Selection.
6.2.14. Инструмент Unhide All Позволяет сделать видимыми все объекты сцены
6.2.15. Инструмент Invert Visibility Позволяет поменять местами скрытые и не скрытые элементы сцены (рис. 6.66).
6.2.16. Инструмент Set Selection Если после выделения элементов объекта или его элементов произвести какие-либо другие действия, то выделение снимется. Данный инструмент позволяет запоминать выделение (выделенные объекты) и производить с ним ряд операций. Выделять можно сами объекты, точки, ребра и полигоны объектов. Выполните, например, выделение 4-х ребер, как показано на рис. 6.67. Примените инструмент Set Selection. В окне менеджера объектов появится тэг Edge Selection Tag
Restore Selection — делает видимым элементы группы Set Selection, то есть восстанавливает выделенные элементы. Select and Hide Others — делает видимым элементы группы Set Selection и скрывает элементы, не входящие в группу. Select Edges — присоединят элементы группы Set Selection к только что выделенным элементам. Deselect Edges — снимает визуальное выделение красным цветом с элементов группы Set Selection. Hide Edges — скрывает элементы, включенные в выделение Set Selection. Unhide Edges — обратно предыдущему действию.
6.2.17. Инструмент Set Vertex Weight Позволяет создавать карту весов точек поверхности объекта, что можно применить при работе с деформаторами (например, деформатор Bone) Окрашивается весь объект. Желтый цвет указывает на 100% влияние деформатора, красный — на 0% влияние. Диалоговое окно инструмента Set Vertex Weight приведено на рис. 6.70.
Value — устанавливает значение веса точки (точек выделенной области) на поверхности объекта.
Mode — режим задания веса точкам. Set — режим присваивания выделенным точкам значения Value. Add — режим добавления значений весов точек, заданных в Set Vertex Weight, к имеющимся. Subtract — режим вычитания значений весов точек, заданных в Set Vertex Weight, от текущего. Если к весам, заданным в режиме Set (рис. 6.70), применить настройки, приведенные на рис. 6.72, то получится другая картина распределения весов точек.
Глава 7. Меню Structure и Functions 7.1. Меню Structure В меню Structure собраны команды и инструменты, позволяющие редактировать структуру поверхностей и сплайнов. В силу важности этих инструментов их рассмотрение выделено в отдельную главу. Чтобы пункты меню были доступны, объекты должны быть преобразованы в полигональный вид и выделены. Имеется в виду, что выделен должен быть сам объект целиком в окне менеджера объектов, а затем его элемент, с которым будут проведены преобразования: вершина (точка), ребро или полигон. Если элементы не выделены, то действие инструмента распространяется на весь объект.
7.1.1. Edit Spline На рис. 7.1 приведено содержание этого пункта. Hard Interpolation — преобразует все типы сплайнов (кроме B-Spline) в сплайн Безье, у которого длина касательных к точкам равна нулю.
Soft Interpolation — возвращает представление сплайна с касательными стандартной длины и направления (кроме B-Spline). На рис. 7.2 приведено изображение исходного сплайна типа Cubic с касательной в выделенной точке. Касательная имеет стандартную длину и направление. Вид сплайна, после применения к нему Hard Interpolation, приведен на рис. 7.3. Если применить Soft Interpolation, сплайн будет возвращен в исходное состояние (рис. 7.2). Equal Tangent Length (только для Безье-сплайнов) — устанавливает одинаковую длину правой и левой частей касательной в точке (рис. 7.4). Чтобы сделать разные длины, надо (при нажатой клавише Shift)
7.10), в то время как до применения команды Explode Segments все четыре буквы являлись одним сплайном.
прижать левой кнопкой мыши точку на конце одной из касательных и передвинуть ее. Equal Tangent Direction (только для Безье-сплайнов) — устанавливает одинаковое направление правой и левой частей касательных к точке (рис. 7.5). Для создания угла между левой и правой частями касательной, надо (при нажатой клавише Shift) прижать левой кнопкой мыши точку на конце одной из касательных и передвинуть ее.
Break Segment — позволяет разделить сегмент на две части. Для этого надо выделить точку и применить команду Break Segment. Будут удалены два сегмента — правее и левее выделенной точки (рис. 7.6).
Join Segments — после операции Break Segment можно соединить получившиеся сегменты. Выделите по точке на каждом сегменте (на рис. 7.7 указаны стрелками) и примените команду Join Segments. Результат приведен на рис. 7.8. Explode Segments — позволяет разделить сплайн на отдельные независимые друг от друга сегменты, которые становятся самостоятельными объектами. Создайте сплайновый примитив Text, переведите его в редактируемое состояние и примените команду Explode Segments. В окне менеджера объектов у объекта Text появятся 5 подобъектов (в букве Е можно выделить два сплайна) (рис 7.9). Теперь можно выделять отдельно каждую букву и обрабатывать ее как самостоятельный сплайн (рис.
Можно, например, выделить сплайн буквы Т и преобразовать его, создав множественный контур (рис. 7.11).
Set First Point — позволяет назначить новую начальную точку сплайна. Разрыв между начальной и конечной точками сплайна перемещается соответствующим образом на другие точки. Сказанное иллюстрируется на рис. 7.12.
На черно-белом рисунке не видно, но обратите внимание на изображение сплайна на своем мониторе: начальные сегменты сплайна окрашены в желтый цвет, конечные переходят в красноватый. После применения команды Set First Point происходит соответствующее изменение цветов концов сплайна. Reverse Sequence — позволяет поменять выделенные точки местами: первые сделать последними и
обратно. Действие команды будет заметно по изменению цвета сегментов: желтый (первый) станет красным (последним), а красный станет желтым.
Move Down Sequence, Move Up Sequence — позволяет изменять на единицу (уменьшать или увеличивать) порядковые номера точек в сплайне. Возьмем сплайн из предыдущего примера (рис. 7.13), где видны точки. Несколько раз применим к сплайну команду Move Down Sequence. Выбеленные изображения сплайна приведены на рис. 7.14. Сравните с рис. 7.13, обратив внимание на порядок перемещения первой и последней точек сплайна.
Chamfer — позволяет из одной выделенной точки сплайна создать две и расположить их так, что образуется контур фаски. Перейдите на плоскость, например, XY (клавиша F4) и создайте сплайн. Выделите точку сплайна (рис. 7.15) и вызовите команду Chamfer.
Диалоговое окно настроек команды Chamfer приведено на рис. 7.16.
Radius — задает радиус, на величину которого исходный сплайн «спиливается» под фаску. Флажок Flat — определяет, будет ли фаска иметь скругленные (рис. 7.17) или неокругленные (рис. 7.18). Работать с командой Chamfer можно также интерактивно, двигая мышь (при нажатой левой кнопке) вправо и влево.
занный флажок сброшен, то контур не отделится (среднее изображение на рис. 7.19). Настройки команды приведены на рисунке. Параметр Distance задает величину зазора между исходным сплайном и его контуром.
Создавая множественные контуры, можно получить интересные изображения. Например, переведя сплайновый примитив Star в редактируемое состояние, можно получить следующее изображение (рис. 7.21).
Create Outline — позволяет создать контур вокруг исходного сплайна. Создайте сплайн, вызовите команду Create Outline и, прижав левую кнопку мыши, двигайте курсор влево/вправо, пока рядом с исходным сплайном не появится контур. Начальная и конечная точки контура будут соединены с начальной и конечной точками исходного сплайна (рис. 7.19). Когда отпустите левую кнопку мыши, то возможны два варианта. Если флажок Create New Object установлен (рис. 7.20), то контур отделится
от исходного сплайна и станет самостоятельным сплайном (правое изображение на рис. 7.19) — его имя появится в окне менеджера объектов. Если ука-
На рис 7.22 приведен узор, полученный из сплайнового примитива Flower (не забудьте предварительно перевести примитив в редактируемое состояние). Cross Section — позволяет создавать поперечные сечения для группы сплайнов.
На виде Perspective нарисуйте несколько сплайнов Безье (например, 4 сплайна). Изменяя настройки положения сплайнов Р.Х, P.Y, P.Z, расположите сплайны так, чтобы они не лежали в одной плоскости. Выделите все четыре сплайна. Вызовите команду Cross section и, удерживая нажатой левую кнопку мыши, проведите линии в тех местах, где вы хотели бы получить сечения 4-х сплайнов (рис. 7.23).
Обратите внимание, что на рис. 7.23 сечения имеют вид линий, но в действительности это двумерные объекты овальной формы, повернутые к нам ребром. Разверните изображение (рис. 7.24).
Disconnect — позволяет отделить полигоны или точки от объекта. На рис. 7.25 приведен пример отсоединения полигона, который отодвинут на некоторое расстояние от поверхности. Подготовительные шаги следующие: создать примитив Cube, разбить на сегменты по 4 на ребро, перевести Cube в полигональный вид, выбрать режим Use Polygon Tool, выделить полигон, применить инструмент Disconnect и с помощью
инструмента Move переместить выделенный полигон. Аналогично можно отделить часть сплайна, выделив точку, в которой произойдет разъединение. Создайте сплайн Безье, выделите одну точку сплайна, вызовите команду Disconnect. В отличие от команды Break Segment сплайн не выглядит разъединенным. Чтобы разъединить сплайн, активизируете команду Move и сдвиньте выделенную точку (рис. 7.26).
Edge to Spline — команда создает сплайн из выделенных ребер объекта. Создайте объект, например, примитив Cube. Переведите его в полигональное состояние и активизируйте режим ребер. Выделите несколько ребер (на рис. 7.27 указаны стрелками) и примените команду Edge to Spline.
В окне менеджера объектов у объекта Cube появится подобъект Cube Spline (рис. 7.28, слева). Прижмите имя Cube Spline левой кнопкой мыши и, не отпуская кнопку, перетащите это имя немного вниз на свободное место окна менеджера объектов. В результате подобъект Cube Spline станет самостоятельным объектом (рис. 7.28, справа).
В окне менеджера объектов выделите имя Cube и удалите его кнопкой Delete. Останется только сплайн, что и требовалось получить (рис. 7.29).
Project — команда позволяет проецировать (наложить) сплайн на поверхность объекта. Диалоговое окно команды содержит список Projection, в котором перечислены возможные способы создания проекций сплайна (рис. 7.33). Рассмотрим эти способы подробнее.
Можно получить своеобразно изогнутый сплайн, сняв его со сферы. На рис. 7.30 полученный сплайн немного повернут, чтобы была заметна его изогнутость.
View — проецирует ту часть сплайна, которая при данном угле зрения визуально помещается на поверхность объекта (куда сплайн проецируется). На рис. 7.34 выбран такой угол, что только верхняя часть сплайна накладывается на грань куба. Если выделить сплайн и куб, а затем применить команду Project, то на грань куба спроецируется именно эта верхняя часть сплайна, а нижняя останется на исходном месте (рис. 7.34).
Line Up — позволяет расположить ряд выделенных точек сплайна по прямой линии. Выделите на сплайне несколько точек, расположенных подряд друг за другом (на рис. 7.31 эти 4 точки указаны стрелками). Для получения лучших результатов рекомендуется использовать Безье-сплайн или Linear. Вызовите команду Line Up. Результат приведен на рис. 7.32. Все 4 точки расположились на одной прямой линии. Если изменить позицию камеры (наблюдателя), то изменится и проекция сплайна (рис. 7.35). XY Plane, ZX Plane, ZY Plane — точки сплайна проецируются перпендикулярно на выбранную плоскость объекта. Поэтому сплайн и объект должны быть расположены друг относительно друга так, чтобы сплайн полностью помещался на поверхности объекта. Создадим примитив Cube, перейдем на плоскость XY и нарисуем сплайн Безье так, чтобы он полностью поместился в рамках грани куба (рис. 7.36).
Так как проецируются именно точки сплайна, то достаточно выделить только эти точки, а поверхность, на которую проецируется сплайн (грань куба), можно не выделять (рис. 7.40).
Если вернуться к трехмерному виду, то будет заметно, что сплайн находится впереди куба (рис 7.37).
Чтобы «положить» его на поверхность куба, выделим куб и сплайн и выполним команду Project. В диалоговом окне выберем настройки, как показано на рис. 7.38. В результате сплайн будет проецирован на грань куба (рис. 7.39).
Применив команду Project, получим тот же результат (рис. 7.39). XY Radial, ZX Radial, ZY Radial — сплайн проецируется в цилиндрической системе координат. Radial — сплайн проецируется в сферической системе координат. Round — позволяет сглаживать выделенные точки сплайна. На рис. 7.41 выделено 5 точек сплайна. После вызова команды Round появляется диалог (рис. 7.42), в котором задается количество добавленных точек (Points) и тип интерполяции (Interpolation). После выбора параметров, как указано на рис. 7.42, имеем 20-точечную сглаженность (рис. 7.43).
Теперь можно удалить объект с именем Spline или сделать его невидимым в окне менеджера объектов (верхняя точка справа от имени объекта в окне менеджера объектов должна быть красного цвета). Останется только отделенная часть сплайна (рис. 7.47).
Пример сглаживания сплайнового примитива Star приведен на рис. 7.44.
7.1.2. Инструмент Add Point
Split — позволяет отделить часть сплайна. С помощью этой команды в сплайне с выделенными точками из предыдущего примера можно отделить ту его часть, которая находится между выделенными точками. На рис. 7.45 эта часть показана белым цветом.
Инструмент позволяет добавлять точки на поверхности объектов, создавать самостоятельные точки (точки в пространстве), добавлять точки на сплайны. Для добавления точек на поверхность объекта создадим объект — примитив Cube, разобьем на сегменты (по 3 на каждую ось), переведем примитив в полигональный вид и активизируем инструмент Use Point Tool. Выберем в главном меню Structure -> Add Points и щелкнем левой кнопкой мыши внутри любого из полигонов. Создастся новая точка, которая автоматически соединится с 4-мя близлежащими, создавая новые полигоны (рис. 7.48).
В окне менеджера объектов появится новое имя, присвоенное этой выделенной части сплайна, Spline 1 (рис. 7.46). Если щелкнуть на ребре, то добавится точка на ребре, если при этом удерживать клавишу Shift, то точка соединится с двумя вершинами (рис. 7.49). Для создания самостоятельной точки, находящейся вне объекта в «пустом» пространстве, надо в момент щелчка левой кнопкой мыши удерживать нажатой клавишу Ctrl.
7.1.3. Инструмент Bridge Инструмент позволяет соединять выделенные элементы поверхности объектов. Соединим точки, создавая тем самым полигоны. 1. Создайте объект Objects -> Polygon Object. Это пустой объект (контейнер), в котором будем размещать создаваемые полигоны. 2. Выберите на левой вертикальной панели инструментов инструмент Use Point Tool, а на верхней горизонтальной панели — инструмент Move. 3. Перейдите на плоскость XY. 4. Удерживая нажатой клавишу Ctrl, перемещайте мышь и щелкните 8 раз, создав два ряда точек по 4 в каждом. 5. Выберите инструмент Structure -> Bridge и соедините точки, как показано на рис. 7.50. Образуются 3 полигона.
С помощью инструмента Bridge можно проделать отверстие в объекте, выделив полигоны на противоположных поверхностях. 1. Создадим примитив Cube с 3-мя сегментами по каждой оси. Сузим куб по оси 0Z, чтобы получить заготовку доски. 2. Переведем примитив в полигональное состояние и, удерживая нажатой клавишу Shift, выделим центральные полигоны на противоположных сторонах (рис. 7.51). 3. Выберите инструмент Structure -> Bridge и, удерживая нажатой левую кнопку мыши, подведите курсор к одному из углов полигона. Угол и периметр полигона станет желтого цвета. Медленно
передвиньте мышь внутрь полигона, пока не появится ответная желтая точка, соединенная с углом линий (рис. 7.52). Это означает, что на противоположной стороне примитива у второго полигона найден соответствующий угол. Как только вы отпустите левую кнопку мыши, два полигона на противоположных поверхностях соединятся отверстием (рис. 7.52, справа).
С помощью инструмента Bridge можно связать полигоны двух объектов. Создадим два примитива Cylinder с достаточным количеством сегментов, переведем их в полигональное состояние и, выбрав инструмент Use Polygon Tool, выделим полигоны в основании каждого. Разместим цилиндры, как показано на рис. 7.53. Выберем инструмент Bridge и, прижав левую кнопку мыши, соединим полигоны основания одного цилиндра с другим. Должна появиться соединяющая прямая линия желтого цвета (рис. 7.53, слева). Отпустите левую кнопку мыши. Возникнет соединяющая поверхность (рис. 7.53, справа).
7.1.4. Инструмент Brush Инструмент позволяет производить деформацию объекта в полигональном состоянии. Инструмент имеет значок, состоящий из трех орбит желтого цвета, в центре которых находится выделенная вершина объекта, передвигая которую инструмент будет производить воздействие на объект (рис. 7.54). Если во время перемещения мыши удерживать нажатой
клавишу Ctrl, то объект деформируется в противоположном направлении. На рис. 7.55 приведено окно свойств инструмента. Характер движения выделенной инструментом вершины задается в списке Mode (рис. 7.55). При выборе, например, режима Spin (рис. 7.56), можно вращать выделенную вершину, прижав ее левой кнопкой мыши. При выборе режима Pull любое движение мышью будет удалять вершину от объекта, вытягивая объект. Сила воздействия и радиус инструмента задаются соответственно в параметрах Strength и Radius. Характер ослабления силы воздействия инструмента задается из списка Fall-Off и в случае, если будет выбран Spline, имеется возможность отредактировать этот параметр, перемещая точки сплайна. Например, если сдвинуть все точки на нижний уровень (рис. 7.57), то несмотря на силу воздействия 162%, никакого перемещения выделенной вершины, при работе с инструментом Brush, не произойдет.
Стоит только переместить одну из точек (рис. 7.58), как инструмент начнет оказывать воздействие на выделенную вершину, перемещая ее согласно выбранному методу из списка Mode.
7.1.6. Инструмент Create Polygon 7.1.5. Инструмент Close Polygon Hole Если ошибочно удален полигон или группа полигонов, то данный инструмент может восстановить полигональную сетку. Допустим, на носу персонажа Human Mag (Objects -> Object Library) был ошибочно удален полигон (рис 7.59). Это удаление сделать в режиме Use Polygon Tool, выделив полигон и нажав клавишу Delete. Образовалась дыра, через которую видна внутренняя поверхность объекта.
Выбираем инструмент Close Polygon Hole и наведем курсор на границу отсутствующего полигона. Сразу же появится заплатка желтого цвета (рис. 7.60). Щелкните на ней левой кнопкой мыши, и полигон восстановится (рис. 7.61).
Инструмент позволяет создавать новые поверхности. Создадим выкройку майки для персонажа Zygote Man. 1. Вызываем пустой полигональный объект, в котором будем размещать создаваемые объекты Objects > Polygon Object. 2. Вызываем персонаж Objects -> Object Library -> Zygote Man и размещаем его в окне проекций XY (рис. 7.62).
3. Выбираем инструмент Structure -> Create Polygon и последовательно щелкаем левой кнопкой мыши, создавая точки полигона (идем по воображаемому контуру создаваемой выкройки) (рис. 7.63). Точки на данном этапе получаются оранжевого цвета, а сам полигон заполняется желтыми секторами. 4. Пройдя по всему контуру, вернитесь в исходную точку и щелкните по ней. Полигон готов. Его контурные линии — голубого цвета, опорные точки — розовые (рис. 7.64). 5. Перейдите в окно проекции Perspective (клавиша F1). Сделайте активным объект Polygon (в окне менеджера объектов), выберите инструмент Move и отодвиньте созданный полигон от фигуры вперед на некоторое расстояние (рис. 7.65). Можно создать полигон по точкам, следуя по контуру изображения, спроецированного на задний план в окне проекций. Чтобы получить проекцию изображения (это может быть фотография или рисунок), надо
В появившемся диалоговом окне выберите папку, в которой у вас хранятся фотографии и рисунки. Загрузим, например, такое фото (рис. 7.68).
выбрать в меню Edit окна проекций пункт Configure (рис. 7.66). В результате в окне менеджера атрибутов откроются параметры объекта Viewport. Войдите на вкладку Back и щелкните по кнопке конструктора параметра Image (рис. 7.67).
Задача состоит в создании полигона, имеющего контур домов и набережной. Создаем пустой объект Object -> Polygon Object и повторяем операции с инструментом Create Polygon из предыдущего примера (рис. 7.69). Переходим в окно проекций Perspective (F1). Полигон готов (рис. 7.70).
Offset — позволяет перемещать точки вдоль ребра, не изменяя расстояния между ними. При значении 50% точки располагаются равномерно. Scale — изменяет расстояние между точками. Subdivision — задает количество точек, располагаемых на ребре. Create N-gons — при сброшенном флажке соединяет точки на ребре с вершинами объекта. При повторном щелчке по ребру количество точек и соответственно полигонов удваивается (рис. 7.72).
7.1.7. Инструмент Edge Cut Инструмент позволяет делить выделенные ребра объекта на отрезки путем добавления точек на ребра. Добавленные точки соединяются с соответствующими вершинами объекта, образуя таким образом полигоны. Инструмент работает только с полигональными объектами при выбранном инструменте Use Edge Tool (в режиме выделения ребер). Создадим примитив Cube с двумя сегментами на каждой грани и переведем куб в полигональное состояние. Активизируем инструмент Use Edge Tool, выделим в полигональном кубе одно ребро и вызовем инструмент Edge Cut с настройками, приведенными на рис. 7.71 (справа). Как видно из рис. 7.71, образовались новые полигоны. Таким образом, тремя точками ребро разбивается на четыре отрезка и образуется 8 полигонов. Если выделить 12 ребер и применить инструмент Edge Cut с теми же настройками, то получится следующее узорное расположение полигонов (рис. 7.72).
7.1.8, Инструмент Iron Инструмент позволяет устранять неровности полигональной сетки, разглаживая ее как утюгом. Инструмент работает в режиме выделенных вершин (точек), ребер и полигонов. Создайте выступ на боковой поверхности примитива Cube, пользуясь разбивкой на полигоны из предыдущего примера. Для этого выделите точку и переместите ее, образуя пирамидальный выступ (рис. 7.73). Допустим, что подобного рода деформация поверхности возникла случайно и ее надо удалить.
изменять интерактивно, перемещая курсор в окне проекций при нажатой левой кнопке мыши и при нажатой клавише Shift. Percent — задает степень (силу) сглаживания. При +100% выступ полностью сглаживается. При отрицательных значениях выступ увеличивается (рис. 7.75). Можно задавать интерактивно, перемещая курсор в окне проекций при нажатой левой кнопке мыши.
7.1.9. Инструмент Knife
Вызовем инструмент Iron и установим значения параметров (рис. 7.74).
Angle — задает предельный угол, образуемый ребрами выступа. Если текущее значение угла равно/меньше предельного, то выступ сглаживается. По своей геометрической сути сглаживание представляет собой увеличение угла между ребрами. Если угол острый, то ребра образуют выступ, при 180° ребра располагаются в плоскости. В этом можно убедиться, увеличивая значение параметра Angle при неизменной геометрии выступа. Чтобы применить инструмент для каждого значения Angle, щелкайте по кнопке Apply на вкладке Tool. До определенного значения параметра Angle с выступом ничего не происходит. Но по достижении некоторого значения (в данном случае это 73°), выступ сглаживается. Значение параметра можно
Инструмент позволяет создавать новые полигоны, деля существующие на части. Объект должен быть предварительно переведен в полигональный вид, а также должен быть включен один из режимов редактирования точек, ребер или полигонов. Используем созданный в предыдущем примере полигон, моделирующий выкройку передней части майки, для демонстрации работы инструмента Knife (рис. 7.64). Активизируйте инструмент Knife и установите его настройки, как показано на рис. 7.76.
Настройки инструмента Knife имеют следующий смысл. Параметр Mode задает режим работы инструмента.
Line — создается прямая линия от ребра или вершины до ребра или вершины. Hole — позволяет создавать замкнутый контур, из которого образуется отверстие. Plane — позволяет создавать полигоны, перемещая (параллельно самой себе) секущую плоскость вдоль осей объекта (рис. 7.79). Плоскость, в которой лежит секущая плоскость, задается в окне менеджера атрибутов в параметре Plane (рис. 7.80).
На рис. 7.83, 7.84 приведены примеры сечения фигуры инструментом Knife в режиме Plane в различных плоскостях. Loop — курсором указывается ребро, через которое должна пройти замкнутая линия (Loop), создающая новые полигоны.
Offset — позволяет точно позиционировать сечение вдоль оси объекта, изменяя значение с помощью счетчиков (кнопки с черными треугольниками). Keep Lock — с помощью клавиши Shift можно зафиксировать позицию сечения. Если флажок параметра Keep Lock установлен, то нельзя создать и работать со следующим сечением. Если этот флажок сброшен, то можно создавать и работать со следующие сечением. Cuts — задает количество сечений в пакете. Пакет можно перемещать вдоль осей объекта и щелкать левой кнопкой мыши в том месте, где надо за один раз создать столько разрезов, сколько сечений в пакете. На рис. 7.81 в пакете 10 сечений. Spacing — задает расстояние между соседними сечениями в пакете (рис. 7.82).
Инструмент работает в трех режимах: выделенных точек, ребер и полигонов. На рис. 7.86 приведены примеры для персонажа Humane Mag.
Only Edges — разрезает только ребра (если флажок Create N-gons установлен). Visible Only — при сброшенном флажке создает разрезы и на невидимых в данном расположении объекта полигонах. Например, если в полигональном кубе при сброшенном флажке Visible Only провести разрез, как показано на рис. 7.88, а затем развернуть куб, то обнаружится, что на сопряженных гранях также появились полигоны (рис. 7.89). Чтобы исключить появление таких побочных полигонов, установите флажок.
Path — позволяет создавать новые полигоны внутри выделенной области полигонов. На рис. 7.87 выделен ряд полигонов. Инструмент Knife в режиме Path позволяет автоматически одной ломаной линией разделить сразу всю область. Можно продолжать аналогичным образом делить область на новые полигоны. Параметр Single — если флажок установлен, то будет проведен только один разрез; если флажок сброшен, то можно создать несколько разрезов, щелкая по точкам на границах полигонов — после каждого щелчка линия разреза будет возобновляться. Restrict to Selection — при установке флажка будут разрезаться только выделенные полигоны. Select Cuts — при установленном флажке оставляет созданный разрез выделенным (цветом). Параметр работает в режиме Use Edge Tool. Create N-gons — при установленном флажке создает n-угольники.
Параметр Angle задает угол, под которым будет проведен «разрез» (при этом надо удерживать клавишу Shift). Constrain — если флажок установлен, то разрез автоматически будет проведен под углом, заданным параметром Angle (клавишу Shift удерживать не надо). Разделим полигон — выкройку (рис. 7.64) на более мелкие полигоны. Для этого прижмите левую кнопку мыши в нужной точке границы полигона и, не отпуская кнопки мыши, проведите линию (она будет желтого цвета) до другой границы исходного полигона. Когда отпустите кнопку мыши, линия изменит цвет (рис. 7.90). Можно сделать иначе: щелкнуть по начальной точке, провести линию и повторно щелкнуть на конечной точке. Таким образом деля исходный полигон на части, создается произвольное количество полигонов.
7.1.10. Инструмент Magnet
представлен в полигональном виде, о чем свидетельствуют треугольники справа от имен. Выбрав инструмент Magnet, установим значения настроек, как показано на рис. 7.93.
Инструмент имеет вид трех пересекающихся орбит желтого цвета с центральной точкой в центре. Установим эту точку на кончике носа персонажа (рис. 7.94).
Инструмент позволяет вытягивать из объектов части полигональных поверхностей и сплайнов. Предварительно объект должен быть переведен в полигональный вид и находиться в режиме редактирования полигонов или точек. Для примера, увеличим нос персонажу Zygote Man. На рис. 7.91 приведен первоначальная форма носа персонажа. Выделим в окне менеджера объектов подобъект Head (рис. 7.92). Объект Zygote Man изначально
Прижав левой кнопкой мыши, переместим инструмент влево (рис. 7.95). На рис. 7.96 приведен окончательный вид после пластической операции на носе.
Рассмотрим назначение параметров инструмента Magnet (рис. 7.97). Nearest Point — задает способ выбора вершины (точки) объекта в случае, когда курсор наведен
не точно на вершину, а находится где-то рядом. Если флажок Nearest Point сброшен, то автоматически (в результате вычислений расстояния до вершин и сравнения их друг с другом) выбирается та вершина, к которой инструмент находится ближе всего (рис. 7.98). Обратите внимание, что сам инструмент не перемещается в выделенную вершину. Это повышает точность дальнейшего моделирования.
Если флажок установлен, то инструмент автоматически перемещается в наиближайшую вершину (рис. 7.99). Surface — если флажок сброшен, инструмент воздействует только на ту область поверхности, которая
ограничена значком инструмента — 3-мя орбитами желтого цвета. Поэтому в этом случае выделенная точка должна находиться внутри орбит (рис. 7.99). Размер орбит задается параметром Radius (см. ниже). Если флажок установлен, то инструмент воздействует на всю поверхность прилегающих к точке полигонов. Visible Only — при сброшенном флажке инструмент будет воздействовать, кроме видимых, также и на скрытые элементы (чтобы скрыть элемент, его надо выделить и вызвать команду из главного меню Selection -> Hide Selected). При установленном флажке воздействие распространяется только на видимые элементы. Mode — позволяет выбрать закон ослабления воздействия инструмента от центра к периферии области воздействия. В результате получаются различные формы вытянутых областей. Список приведен на рис. 7.97. Coords — выбор системы координат (локальная, глобальная и камера). X, Y, Z — координаты по соответствующим осям, ограничивающие перемещение значка инструмента. Задайте все три координаты равными 0 (рис. 7.100). Таким образом действие инструмента Magnet будет заблокировано. Проверьте это. Strength — задает силу воздействия инструмента.
Radius — задает размер орбит значка инструмента, а следовательно, и область воздействия в случае, когда флажок Surface сброшен.
ленном флажке такие сдублированные точки будут слиты в одну. Value — положение осей, относительно которых строится зеркальное отражение, может быть задано точно с помощью этого параметра.
Width — определяет характер воздействия инструмента на деформируемую поверхность (мягче, жестче).
7.1.11. Инструмент Mirror Позволяет получать зеркальное отображение выделенных точек и полигонов объектов. Работает, соответственно, в режимах точек и полигонов. Если точки и полигоны не выделены, а инструмент Mirror применен, то зеркально отображаются все точки или полигоны объекта.
Duplicate Points — если флажок установлен, то вначале создается копия объекта, а затем его зеркальное отражение. Snap to Points — в режиме Screen позволяет точно устанавливать ось зеркального отражения, привязывая ее к ближайшей точке поверхности объекта. Чтобы попробовать инструмент в действии, создайте зеркальное отражение (расположенное за спиной) передней части выкройки майки (рис. 7.103).
Coordinate System — позволяет выбрать систему координат. Screen — позволяет интерактивно выбирать оси, щелкая и удерживая левую кнопку мыши в различных областях окна проекций. Так, если щелкнуть в верхней или нижней области окна проекций, то вызывается горизонтальная ось, если щелкнуть в левой или правой области окна проекций, то вызывается вертикальная ось. Вызванную ось можно перетаскивать в нужное место, не отпуская левую кнопку мыши. На рис. 7.102 создана зеркальная копия головы из предыдущего примера относительно горизонтальной оси. Object, World — позволяет задавать ось с помощью списка Mirror Plane (XY, XZ, ZY) исходя из локальной системы координат объекта или из глобальной системы координат. Weld Points — после построения зеркального отражения некоторые точки могут оказаться в том же самом месте или в его малой окрестности. При установ-
7.1.12. Инструмент Set Point Value Позволяет задавать значения параметрам выделенных точек. Предварительно объект должен быть переведен в полигональный вид и включен режим Use Point Tool. Точки должны быть выделены. Параметры инструмента представлены на рис. 7.104.
All, X, Y, Z — позволяет выбрать координатную ось, для которой будет назначен один из следующих режимов: Leave — координаты по данной оси изменяться не будут;
те левой кнопкой мыши по любому месту окна проекций. Quantize — осуществляет привязку выделенных точек к осям. Crumple (Normal) — позволяет задавать с помощью счетчика Val распределение координат точек вдоль нормали к точке (поэтому доступен только счетчик по одной координате). Crumple (Radial) — позволяет задавать с помощью счетчика Val распределение координат точек вдоль оси, исходящей из центра объекта.
Set — установка координат по данной оси производится с помощью счетчика Val; Center — перемещает точки на середину выбран ной оси. На рис. 7.105, 7.106 произведено центрирование трех выбранных точек на сфере для всех координат.
Crumple (Axial) — позволяет задавать с помощью счетчика Val распределение координат точек по осям объекта. Coordinate System — позволяет выбрать систему координат Object (локальная), World (глобальная) и Screen (интерактивная). In and Out — работает в режимах Crumple (см. выше). При установленном флажке обеспечивает перемещение точек как внутрь, так и наружу (рис. 7.109). При сброшенном флажке — только наружу.
Например, если для примитива Cube (куб) задать центрирование точек по оси 0Z (рис. 7.107), то все точки объекта соберутся на плоскости XY, расположенной на оси 0Z в точке, координата которой равна половине длины стороны куба по оси 0Z (рис. 7.108). Чтобы эта операция получилась, куб предварительно надо перевести в полигональное состояние, включить режим Use Point Tool, выделить все точки (Selection -> Select All). Затем вызываете инструмент Set Point Value, выставляете настройки как на рис. 7.107 и щелкае-
Перейдем в режим Use Edge Tool и выделим ребра обоих полигонов (удерживая нажатой клавишу Shift), которые надо сшить друг с другом. Выберите инструмент Stitch and Sew и, удерживая нажатой клавишу Shift, проведите курсором (при нажатой левой кнопке мыши) от одного выделенного ребра ко второму. Оба ребра, которые надо сшить, примут желтый цвет и будут соединены линией
7.1.13. Инструмент Slide Позволяет перемещать выделенное ребро (или вершину), изменяя тем самым структуру полигональной сетки (рис. 7.111). Инструмент работает в режимах ребер и точек.
Перемещение производится либо интерактивно с помощью мыши, либо изменяя значение параметра Value. Чтобы воспользоваться счетчиком Value, вначале надо задать направление перемещения, передвинув ребро или вершину мышью.
7.1.14. Инструмент Stitch and Sew Позволяет соединять выделенные ребра объектов, имеющих одинаковое количество точек. Инструмент работает в режимах точек, ребер и полигонов. Вернемся к примеру создания выкройкой майки (см. Инструмент Create Polygon и Knife). С помощью инструмента Knife «разрежем» полигон на 4 полигона, как показано на рис. 7.113. Активизируем инструмент Use Polygon Tool и с помощью инструмента Functions -> Clone (о нем речь пойдет ниже) создадим копию полигона. Настроим диалоговое окно, как показано на рис. 7.114. Получим второй полигон, находящийся за спиной персонажа и являющийся копией первого (рис. 7.115).
желтого цвета. Отпустите левую кнопку мыши. Между ребрами возникнет соединяющий их полигон. Проделайте аналогичную операцию для остальных трех пар ребер (рис. 7.117). Таким образом выкройки груди и спины сшиты. Заготовка майки готова. Дальнейшие операции с создаваемой одеждой будут рассмотрены в главе, посвященной модулю Мосса.
Единственная настройка — флажок Create N-gons (рис. 7.118). Если он сброшен, то для соединения ребер используется алгоритм инструмента Bridge
На рис. 7.119, 7.120 приведен результат соединения точек.
7.1.15. Инструмент Weld Инструмент позволят соединять выделенные точки (вершины), ребра и полигоны объектов друг с другом, стягивая соединяемые элементы в точку.
Можно выделить полигоны двух объектов, но произойдет все равно соединение вершин полигонов в одну точку (рис. 7.123, 7.124). Можно соединять точки сплайнов (рис. 7.125, 7.126).
7.1.16. Инструмент Bevel Позволяет создавать фаски для точек, ребер и полигонов. Например, чтобы создать фаску для вершины пирамиды рис. 7.127, переведите примитив Pyramid в полигональный вид, выберите режим точек, выделите вершину пирамиды и вызовите инструмент Bevel. Далее можно работать либо интерактивно, перемещая
точек, с которыми можно манипулировать и на основании которых строится поверхность фаски. В режиме редактирования точек инструмент имеет следующие активные параметры (рис. 7.129).
курсор (при нажатой левой кнопке мыши) влево (выдавливает вершину)/вправо («срезает» вершину), либо задавать значения параметров в окне менеджера атрибутов. На рис. 7.128 представлен результат создания фаски для вершины пирамиды, справа — для одной из точек самой фаски. Выделенная вершина заменяется группой
Inner Offset — задает глубину «среза» вершины (положительные значения) или высоту ее выдавливания (отрицательные значения). Var — задает возможные отклонения значений Inner Offset в процентах от установленного. Subdivision — воздействие параметра Subdivision при сброшенном флажке Create N-gons проиллюстрировано на рис. 7.130—7.132. В режиме редактирования полигонов набор параметров больше (рис. 7.133). Параметр Maximum Angle работает при установленном флажке Preserve Groups и задает предельный
Если же задать Maximum Angle = 0, то это значение совпадает со значением угла между нормалями выделенных полигонов и фаски построятся раздельно для каждого полигона (рис. 7.135).
Extrusion — определяет длину, на которую выдавливается полигон. Inner Offset — задает размер полигона, который определяет скос боковых граней образующейся фаски (рис. 7.136, 7.137). Параметр Туре служит для задания формы фаски. В режиме User можно задавать (перетаскивая управляющие точки) форму сплайна, который будет использован в качестве сечения для тела фаски (рис. 7.138).
угол между нормалями полигонов, при равенстве или превышении которого фаски для каждого полигона строятся раздельно. Например, если задать Maximum Angle = 2°, то для 4-х выделенных полигонов будет построена общая фаска, так как угол между нормалями полигонов, расположенных на плоскости, не превышает 0° (рис. 7.134).
7.1.17. Инструмент Extrude Предназначен для выдавливания точек, ребер и полигонов. Если нет выделенных точек, ребер или полигонов, то выдавливаются все точки, ребра или полигоны в зависимости от включенного режима (Use Point Tool (рис. 7.139), Use Edge Tool или Use Polygon Tool (рис. 7.140). По умолчанию выдавливание производится по направлению нормалей к поверхности.
На рис. 7.141 приведены параметры инструмента. Maximum Angle — при установленном флажке Preserve Group задает значение угла ориентации выдавленных полигонов относительно друг друга. Полигоны, не превышающие этот угол, образуют группу и не могут быть обработаны по отдельности. Например,
если выделены полигоны, расположенные, как показано на рисунке, то угол между их нормалями составляет 90°. Если задать значение Maximum Angle = 90° и выше, то после применения инструмента полигоны будут выдавлены как единое целое (рис. 7.142).
Offset — задает максимальную длину выдавленных элементов (точек, ребер, полигонов). Если после установки значения этого параметра щелкнуть по кнопке Apply на вкладке Tool (рис. 7.141), то выдавливание элементов произведется автоматически. Можно выдавливать интерактивно, перемещая в окне проекций мышь вправо/влево при нажатой левой кнопке. Var — задает разброс значений длин выдавливаемых элементов. При 0% элементы выдавливаются на одинаковую длину (рис. 7.143). Subdivision — задает количество разбиений по длине выдавленного элемента (рис. 7.144).
Смысл параметров аналогичен рассмотренным выше для других инструментов. Для интерактивной работы с инструментом перемещайте мышь с нажатой левой кнопкой влево (полигон увеличивается) или вправо (полигон уменьшается) в окне проекций.
7.1.19. Инструмент Matrix Extrude
Create N-gons — позволяет создавать вдоль поверхности выдавленного элемента N-угольники. Create Caps — создает поверхность у основания выдавленного элемента, отделяя тем самым выдавленный элемент от исходного объекта. Edge Angle — задает угол, под которым происходит выдавливание ребер. Edge Snap — ограничивает угол, под которым происходит выдавливание ребер значением, задаваемым параметром Value.
Позволяет за время одной операции произвести многократное выдавливание выделенного полигона. На рис. 7.148 приведен пример применения инструмента и его параметры. Саму операцию можно производить, задавая значения параметров в окне менеджера атрибутов и щелкая затем по кнопке Apply на вкладке Tool или интерактивно, перемещая мышь с нажатой левой кнопкой влево/вправо в окне проекций.
7.1.18. Инструмент Extrude Inner Позволяет уменьшать (рис. 7.145) или увеличивать (рис. 7.146) размеры полигонов. Параметры инструмента приведены на рис. 7.147. Steps — задает количество вдавливаний (шагов), производимых за одну операцию. На рис. 7.149 данный параметр равен 8, что выражается в 8-ми составных элементах выдавленного полигона. Polygon Coordinates — при сброшенном флажке используются глобальные координаты, что дает иной результат (рис. 7.149). Move — задает величину выдавливания полигона по трем осям. Scale — при значении меньше 100% размер выдавленного полигона на каждом шаге уменьшается;
при значении больше 100% — увеличивается; при равенстве 100% — сохраняется неизменным. Rotate — задает угол поворота выдавленного полигона относительно соответствующих осей. Variation — позволяет вносить случайные изменения в установленные выше параметры: Initial — вариации задаются в начале и применяются для всех
шагов; Per Step — вариации задаются для каждого шага. None — вариации не задаются. Вариации задаются в полях параметров Move Min/Max, Scale Min/Max, Rotate Min/Max. Обратите внимание, что на вкладке Tool (рис. 7.150) имеется флажок RealTime Update. При установке этого флажка изменения параметров применяются в режиме реального времени. При сброшенном флажке для применения измененных значений параметров требуется щелкнуть по кнопке Apply. Аналогичная система имеет место и для остальных инструментов.
7.1.21. Инструмент Normal Move
7.1.20. Инструмент Smooth Shift Инструмент позволяет учитывать при выдавливании ориентацию расположенных по соседству полигонов. Направление, в котором будут выдавлены выделенные полигоны, определяется также направлением нормалей соседних невыделенных полигонов. Выделим 4 смежных полигона на поверхности примитива сфера (рис. 7.151). Выставим значения параметров, как показано на рис. 7.152. Применим инструмент Smooth Shift, щелкнув по кнопке Apply на вкладке Tool. Если угол между нормалями соседних полигонов оказался больше указанного в параметре Maximum Angle, то между полигонами строится дополнительная поверхность (рис. 7.152). Увеличим значение параметра Maximum Angle. При определенном значении (в данном случае 15°) он становится равным или большим угла между нормалями выдавливаемых полигонов и дополнительные поверхности не строятся (рис. 7.153). Остальные параметры аналогичны параметрам рассмотренных выше инструментов.
Инструмент доступен только в режиме Use Polygon Tool и позволяет перемещать выделенные полигоны вдоль их нормалей.
7.1.22. Инструмент Normal Scale Позволяет масштабировать выделенные полигоны в плоскости, перпендикулярной нормали (рис. 7.154). Доступен только в режиме полигонов.
7.1.23. Инструмент Normal Rotate Позволяет вращать выделенные полигоны вокруг нормали к их поверхности.
7.2. Меню Functions 7.2.1. Инструмент Make Editable Позволяет переводить объект в редактируемое состояние.
7.2.2. Инструмент Arrange Позволяет разместить объекты вдоль сплайна. Рассмотрим пример. Необходимо разместить 4 примитива вдоль замкнутого контура. Для решения надо сделать следующее: 1. Создадим 4 примитива (рис. 7.156). 2. Используя инструмент Objects -> Create Spline -> Freehand, нарисуем в плоскости XZ замкнутый сплайн. 3. Выделяем все 4 примитива. 4. Вызываем инструмент Arrange и перетаскиваем имя сплайна из окна менеджера объектов в окно инструмента Arrange (рис. 7.156). 5. В параметрах Start Pos и End Pos зададим начало и конец используемого контура. Задайте значение параметра Align равным +Х, что означает выравнивание по оси ОХ. 6. Щелкните по кнопке Apply, и 4 примитива будет равномерно расставлены вдоль замкнутого контура (рис. 7.157).
7.2.3. Инструмент Center Функция позволяет размещать объекты внутри воображаемого куба. Положение объектов задается относительно осей куба, которые могут принимать значения, соответствующие положительной (Positive), средней (Middle) и отрицательной (Negative) частям числовой оси, а также оставаться неопределенными (рис. 7.158). На рис. 7.159 приведен пример выравнивания трех примитивов вдоль грани куба, находящейся в области
отрицательной части оси 0Х. Для трех созданных примитивов вызовите функцию Center, на вкладке Option задайте значения параметров, как указанно на рис. 7.159. Перейдите на вкладку Tool и щелкните по кнопке Apply.
Следует иметь в виду, что некоторые сочетания значений параметров размещают объекты в одной точке (рис 7.160).
7.2.5. Инструмент Current State to Object Инструмент предназначен для создания полигональной копии объекта. Особенно полезен при создании копии объекта в процессе просмотра анимации. Помимо копии в окне проекций, в менеджере объектов появится продублированное имя объекта со значком полигонального объекта — синим треугольником (рис. 7.163). При копировании подобъекты игнорируются.
7.2.4. Инструмент Connect Инструмент позволяет объединить несколько объектов в один. Рассмотрим пример. Надо создать объект, объединяющий три примитива — сферу, конус и куб. Создадим три примитива, выделим их и вызовем инструмент Connect. В окне менеджера объектов появится объединяющий объект, в данном случае Cone 1 (так как верхним в иерархии стоит Cone; если бы стоял Cube, то объединяющий объект именовался бы Cube 1). В окне менеджера объектов выделите три примитива, а объединяющий объект не выделяйте (рис. 7.161). Теперь группу можно передвигать, масштабировать и вращать, делая эти действия с объединяющим объектом, представленным осями (рис. 7.162).
7.2.6. Инструмент Duplicate Позволяет создавать произвольное количество копий объекта. При выборе данного инструмента в окне менеджера атрибутов открывается диалоговое окно (рис. 7.164). В группе Dublicate можно задать количество копий (поле Copies) или экземпляров (флажок Generate Instances). В группе Options в списке Mode выбирается способ расположения копий (рис. 7.165):. Linear — расположение копий вдоль прямой линии, направление задается флажками выбора осей координат и значениями соответствующих счетчиков. Например, чтобы расположить 8 копий радиуса 100 м вдоль оси 0Z с шагом 300 м (рис. 7.167), надо задать параметрам значения, представленные как на рис. 7.166. Чтобы расположить копии под углом 45°, надо задать направление по двум осям, например, Y и Z, с одинаковым шагом 300 м (рис. 7.168). Флажок Per
В группе Rotate можно задать угол, на который каждая копия должна быть повернута относительно осей (рис. 7.173). Вернемся к выпадающему списку Mode. Пункт Circle — позволяет расположить копии по окружности. Для настроек имеем следующее расположение (рис. 7.174). Пункт Spline позволяет расположить копии вдоль заданного сплайна. Нарисуйте сплайн и перетащите его имя из окна менеджера объектов в окно инструмента Duplicate в поле Spline (рис. 7.176).
Step (Пошагово) должен находиться в установленном положении. Можно применить изменение масштаба для каждой последующей копии на основании размера предыдущей. На рис. 7.170 в счетчиках группы Scale задано 50% по каждой из осей.
7.2.7. Инструмент Measure & Construction Инструмент позволяет измерять расстояние между точками (объектами) в окне проекций. Это единственная функция, доступная, когда в окне проекций нет ни одного объекта (рис. 7.178).
Измерим, например, расстояние между рукой и ногой фигуры Zygote Man (рис. 7.179). Можно измерять расстояние по двум направлениям и определять угол между ними. Для этого надо поставить флажок 3rd Point (рис. 7.180).
7.2.8. Инструмент Transfer Инструмент позволяет передавать одному объекту позицию, масштаб или угол поворота другого объекта. Например, в окне проекций имеются два объекта,
конус и пирамида. Пирамида повернута на некоторый угол (рис. 7.182). Чтобы передать этот угол поворота конусу, выделим конус и вызовем функцию Transfer. В поле параметра Transfer to перетащим имя Pyramid и установим флажок Enable Rotation (рис. 7.183). Перейдем на вкладку Tool и щелкнем по кнопке Apply. Конус повернется на угол, на который повернут конус (рис. 7.184). Зададим сфере масштаб по оси 0Y, равный 0,2. Передадим этот масштаб цилиндру.
Исследуем влияние параметра Seed (рис. 7.189, 7.190).
7.2.9. Инструмент Randomize Инструмент позволяет разместить объекты случайным образом. Рассмотрим пример. Требуется разместить случайным образом 8 копий фигуры Zygote Man в кубе 200x200x200 м. Для решения выполним следующие действия. 1. Создадим с помощью рассмотренной выше функции Duplicate 8 копий фигуры Zygote Man. 2. В окне менеджера объектов выделим 8 копий. 3. Вызовем функцию Randomize и зададим в счетчиках параметра Move размеры области, в пределах которой могут располагаться объекты, то есть 200x200x200 м (рис. 7.187). Значение остальных параметров — масштаб Scale и угол поворота фигуры в пространстве Rotate — оставим, как показано на рис. 7.187. Параметр Seed задает вариант случайного распределения. 4. Щелкнем по кнопке Apply. Результат представлен на рис. 7.188.
Зададим различный масштаб (Scale) и угол поворота фигуры в пространстве (Rotate) (рис. 7.191).
Align Orthogonally — восстанавливает взаимно перпендикулярную ориентацию осей, если она была нарушена. Offsets — при установленном флажке восстанавливаются только оси объекта, позиции точек на поверхности объекта не восстанавливаются. Reset Sub-Objects — восстанавливает координатную систему для всех подобъектов.
7.2.11. Инструмент Align Normals
7.2.10. Инструмент Reset System Восстанавливает координатную систему объекта. Диалоговое окно представлено на рис. 7.193. Normalize Axes — восстанавливает длины осей объекта (если они были масштабированы) в отношении 1:1:1. Координатные оси масштабируются, когда при масштабировании вы работаете в режиме Use Object Tool (пункт меню Tools -> Object или пиктограмма на левой вертикальной панели инструментов). Этот режим следует применять только при создании анимации. При моделировании следует работать в режиме Use Model Tool (меню Tools -> Model
или пиктограмма ). При этом масштабируются не оси объекта, а его поверхности.
Восстанавливает направление нормалей к создаваемым поверхностям. Направление нормали важно для указания Cinema 4D, где внешняя, а где внутренняя сторона поверхности объекта. Принято, что та сторона, от которой исходит нормаль (единичный вектор, перпендикулярный к поверхности), считается внешней.
7.2.12. Инструмент Reverse Normals Переориентирует направление нормалей на противоположное.
7.2.13. Инструменты Move Down Sequence, Move Up Sequence Изменяют порядок следования (нумерации) точек полигона. В результате изменяются параметры локальной системы координат полигона. Эти команды также приведены в меню Structure, но там они применялись к точкам сплайна. Действие указанных команд заметно после применения какого-либо инструмента, использующего локальную координатную систему полигона. Таким инструментом является Matrix Extrude. Создадим примитив Cube с тремя сегментами на каждой грани, переведем его в редактируемое состояние, выберем инструмент Use Polygon Tool и выделим, например, три полигона (рис. 7.194).
Применим к выделенным полигонам инструмент Matrix Extrude (рис. 7.195).
С помощью команды Collapse изменим форму носа у персонажа Zygote Man (рис. 7.199).
Отменим действие команды, вернувшись в состояние выделенных полигонов (рис. 7.194). Применим к выделенным полигонам команду Move Down Sequence, а затем снова Matrix Extrude (рис. 7.196). В результате смены порядка следования точек в полигоне изменился результат выдавливания. На рис. 7.197 приведены результаты, полученные в результате еще двух применений команды Move Down Sequence.
7.2.14. Инструмент Collapse Инструмент производит нулевое масштабирование выделенных точек, ребер и полигонов («схлопывание» в точку). На рис. 7.198 выделенный полигон сжат в точку.
7.2.15. Инструмент Melt Инструмент «стирает» выделенные точки, ребра и полигоны, оставляя пустую (неразмеченную) поверхность. Эту операцию можно интерпретировать как укрупнение полигона. Например, если стереть выделенные полигоны со щеки персонажа, то получим полигон с большой поверхностью, с которым можно производить различные манипуляции (рис. 7.200).
В режиме точек (Use Point Tool) удаляются все примыкающие к точкам полигоны (рис. 7.201).
В режиме ребер стираются выделенные ребра.
7.2.16. Инструмент Optimize Позволяет устранить лишние элементы (точки, ребра и полигоны), возникающие в процессе преобразований и моделирования. Например, после преобразо-
вания параметрического примитива к полигональному виду могут возникнуть сдублированные (повторенные) точки. При моделировании с помощью функции Connect могут возникнуть продублированные ребра и полигоны. Не все сдублированные элементы следует удалять. При создании заглушек на торцах (Caps), например, цилиндров, дополнительные ребра создаются по дополнительным точкам.
Параметры команды собраны в диалоговом окне (рис. 7.202). Polygons — при установленном флажке удаляются сдублированные полигоны. Unused Points — при установленном флажке удаляет неиспользуемые точки. Points — удаляет сдвоенные точки, а также точки, расположенные на определенном расстоянии друг от друга. Tolerance — задает предельное расстояние между точками. Параметр доступен, только если флажок Points установлен. Если точки находятся на большем расстоянии, чем предельное, то они не удаляются. Если на меньшем — то одна из точек удаляется. Например, если для куба, приведенного к полигональному виду, со стороной 200 м задать Tolerance = 210 м (как на рис. 7.203), то 4 вершины куба будут удалены, а следовательно, изменятся и полигоны.
Subdivision — задает количество шагов. Для треугольных и прямоугольных полигонов их количество за каждый шаг увеличивается в 4 раза. Например, если для куба (не забудьте преобразовать параметрический примитив Cube в полигональный вид) изначально был один прямоугольный полигон на грань, то при Subdivision = 2 общее количество полигонов на грань станет 16 (по 4 на ребро) (рис. 7.205). Для N-угольника деление на полигоны производится следующим образом: из центра N-угольника проводятся ребра к его углам. HyperNURBS Subdivide — позволяет в процессе деления на полигоны одновременно производить сглаживание поверхности. На рис. 7.206 приведен пример для примитива Cube. Параметр Maximum Angle задает угол между соседними полигонами, при превышении которого данные полигоны (вернее, общее ребро
между ними) не сглаживаются. Этот угол задается для исходной геометрии объекта. В данном случае это куб. У куба грани (исходные полигоны) располагаются друг по отношению к другу под углом 90. Зададим 180 и получим сглаженную до сферы поверхность, разбитую на 96 полигонов (на каждой грани по 16 полигонов, всего 6 граней).
7.2.17. Инструмент Subdivide Позволяет увеличить количество полигонов (ребер и точек), на которые разбита поверхность объекта. Параметры команды приведены в диалоговом окне (рис. 7.204).
Зададим Maximum Angle = 89°. Этот угол меньше, чем угол между гранями, поэтому HyperNURBSсглаживание не работает (рис. 7.207).
7.2.18. Инструмент Triangulate Команда преобразует прямоугольные полигоны в треугольные (рис. 7.208).
исходный объект. Если для примитива Cube задать количество копий, как указано на рис. 7.209 (по 3 на каждую ось), то будет выведено 27 изображений куба, из которых создано 26 (рис. 7.210).
7.2.19. Инструмент Untriangulate Команда, обратная предыдущей. Для Cinema 4D для процесса рендеринга оптимальнее иметь разбивку поверхности на четырехугольные полигоны, чем на треугольные Часто при импорте объектов из других программ объекты имеют треугольные полигоны. Команда не работает с N-угольниками.
7.2.20. Инструмент Retriangulate N-gons Преобразует N-угольники поверхности объекта к треугольникам на время рендеринга.
7.2.21. Инструмент Remove N-gons Преобразует N-угольники к треугольникам и четырехугольникам.
7.2.22. Инструмент Array Инструмент позволяет создавать массив копий исходного объекта или его элементов, а также производить операции перемещения, масштабирования и вращения над этими копиями. Исходный объект должен быть переведен в полигональный вид. На рис. 7.209 приведен вид диалогового окна инструмента Array (массив). Группа параметров Clones задает общее количество копий исходного объекта, размещаемых по соответствующим осям. В это общее количество входит и
Параметр Holes (отверстия) определяет в процентах от заданного количества копий, сколько копий не показывать. При Holes = 0% показываются все созданные копии. При Holes = 50% — показывается половина копий (рис. 7.211). То, какие конкретно копии не показывать, определяется случайным образом. Не пытайтесь получить из изображения на рис. 7.210 изображение на рис. 7.211 — в этом случае просто добавятся новые копии. Чтобы получить конструкцию с отверстиями, надо начать сначала — для одного объекта Cube задать нужное значение Holes и запустить построение.
Группа Offset задает размеры объекта, составленного из уложенных определенным образом копий. Если размеры разные по разным осям, то копии куба накладываются друг на друга, чтобы поместиться внутри заданного габарита (рис. 7.212). Группа параметров Move Variation задает пределы допустимых отклонений позиции копий по осям. При всех значениях = 0, копии размещаются по осям в строгом регулярном порядке. При значении, например, для оси X = 100 м координаты копий по оси 0Х
С помощью инструмента Array можно дублировать и преобразовывать также выделенные точки и полигоны (рис. 7.216).
могут изменяться случайным образом в диапазоне от -100 м до +100 м (рис. 7.213). Группа параметров Scale Variation задает пределы допустимых изменений размера копий по осям. Значение 100% означает, что размер изменяться не будет. При <100% размер по соответствующей оси будет уменьшен, при >100% — увеличен. Установленный флажок Uniform Scale включает режим относительного масштабирования. Например, для значений параметров Scale Variation X = 200%, Y = 100% и Z = 300% получается соотношение 2:1:3. В этом случае оси отдельных копий могут быть масштабированы только с учетом этой пропорции. При сброшенном флажке оси отдельных копий могут быть масштабированы независимо друг от друга (рис. 7.214, 7.215). Группа параметров Rotation Variation задает пределы допустимых отклонений угла поворота копий вокруг соответствующих осей.
7.2.23. Инструмент Clone Инструмент позволяет создавать копии выделенных полигонов и точек объекта и применять к копиям операции масштабирования, перемещения и вращения. На рис. 7.217 приведено диалоговое окно инструмента с основными параметрами.
Rotation — задает угол поворота последней копии относительно оригинала. Углы поворота промежуточных копий вычисляются автоматически (делением заданного угла на количество копий). Чтобы был виден поворот, изменим ось и зададим угол поворота 90° (рис. 7.220 после рендеринга). Move Variation, Scale Variation, Rotation Variation — задают отклонения соответственно в заданных значениях Offset, Scale и Rotation. Это позволяет создать ощущение случайности конструкции, составленной из копий. Для предыдущего примера зададим допустимое отклонение по 10% на угол поворота (Rotation Variation) (рис. 7.221). Clones — задает количество копий, которые будут расположены на оси, выбранной с помощью параметра Axis. Holes — задает, сколько созданных копий будет показано. Выражается в процентах от общего количества, указанного в поле параметра Clones. Если задано 100%, то все копии будут скрыты. Если 50%, то будет показана только половина созданных копий. Axis — задает ось, на которой будут размещены созданные копии. Offset — задает величину сдвига вдоль оси, заданной в параметре Axis для каждой последующей копии. При = 0 м копии будут оставаться в одном и том же месте, накладываясь друг на друга. Создадим из конуса елочку, создав 4 копии и «насадив» их друг на друга с шагом (Offset) 300 м (рис. 7.218).
Scale — позволяет масштабировать копии. Введем в предыдущий пример масштаб 50% от предыдущей копии (рис. 7.219).
7.2.24. Команда Disconnect Команда также доступна в меню Structure (см. описание меню Structure).
7.2.25. Команда Explode Segments Команда также доступна в меню Structure (см. описание меню Structure).
7.2.26. Команда Split Команда также доступна в меню Structure (см. описание меню Structure).
7.2.27. Команда Break Phong Shading Для выделенных ребер отменяет действие тонировка по Фонгу.
7.2.28. Команда Unbreak Phong Shading Восстанавливает тонировку по Фонгу.
7.2.29. Команда Select Broken Phong Edges Если для выделенных ребер была отменена тонировка по Фонгу, а выделение с ребер снято, то с помощью этой команды можно автоматически отыскать соответствующие ребра с отмененной тонировкой по Фонгу и выделить их.
В главном меню Functions щелкните по пункту Increase HN Subdivision — количество полигонов с каждым повтором этой операции будет увеличиваться (рис. 7.223).
7.2.30. Команды Increase HN Subdivision, Decrease HN Subdivision С помощью этих команд можно увеличивать и уменьшать количество полигонов на поверхностях HyperNURBS (HN) объектов. Создадим примитив Cone (конус), приведем его к полигональному виду, вызовем инструмент HyperNURBS, разместим Cone на уровень подобъекта HyperNURBS (рис. 7.222).
Команда Decrease HN Subdivision работает в обратном направлении.
Глава 8. Редактор узлов XPresso Редактор узлов XPresso позволяет строить сложные взаимодействия между объектами, используя графическое представление объектов в виде прямоугольников, называемых узлами. Узлы имеют порты ввода/вывода, посредством которых их можно соединять друг с другом, создавая сложные взаимосвязанные системы, называемые сценариями поведения или выражениями. Такой подход эффективен для автоматизации процесса создания анимации. Работа по созданию выражений производится в окне редактора XPresso. Чтобы открыть окно редактора XPresso, необходимо вначале создать хотя бы один объект, а затем выбрать в меню окна менеджера объектов File -> Cinema 4D Tags -> XPresso (рис. 8.1). Окно редактора XPresso также можно вызвать через контекстное меню, щелкнув правой кнопкой мыши по имени объекта или его значку в окне менеджера объектов. Предварительно был создан объект — примитив Cube. В результате к объекту в окне менеджера объектов добавится тэг выражения XPresso (рис. 8.2).
На рис. 8.3 приведен вид окна XPresso редактора на закладке Х-Рооl.
В XPresso применяется принцип черного ящика, известный из кибернетики. Объект рассматривается как некий элемент (узел), имеющий набор входов и выходов, причем внутреннее устройство этого элемента игнорируется. Чтобы получить узел объекта, надо из окна менеджера объектов левой кнопкой мыши перетащить значок объекта (или его имя) на рабочее поле окна редактора XPresso. Рассмотрим пример. Создадим два примитива Cube (Куб) и Sphere (Сфера). Щелкнув по значку, например, Cube правой кнопкой мыши, вызовем окно редактора XPresso. Левой кнопкой мыши перетаскиваем из окна менеджера объектов значки куба и сферы, размещаем их на рабочем поле окна редактора XPresso. При этом значки автоматически преобразуются в стандартизированного вида прямоугольники, называемые узлами. Перемещая левой кнопкой мыши границы полученных узлов, настраиваем их размеры с таким расчетом, чтобы внутри прямоугольников хватило места для размещения надписей (рис. 8.4). Обратите внимание, что в окне менеджера объектов справа от имени Cube появился тэг XPresso выражения, в то время как у имени Sphere такого тэга нет. Причина в том, что окно редактора XPresso создавалось с использованием объекта Cube, который был активен. Красная рамка, которой обведен тэг, говорит о том, что тэг активен (выделен) и открыто соответствующее окно менеджера атрибутов. Если для активного тэга нажать клавишу Delete, то тэг вместе
(пункт Rename). Назначение остальных пунктов рассмотрим ниже по ходу изложения. Синяя область в левой части заголовка содержит перечень названий портов ввода — это параметры, которые можно использовать в качестве входных параметров для данного узла. Чтобы открыть выпадающее меню для синей области, щелкните по ней левой кнопкой мыши (рис. 8.7).
с окном редактора XPresso будут удалены. Создайте в качестве тренировки еще одно окно редактора XPresso, но при активном объекте Sphere, а затем удалите тэг и окно XPresso. Структура узла для любого объекта одинакова. Заголовок имеет три области, различающиеся по цвету: синюю, белую и красную. Белая область, — это непосредственно заголовок, где указывается имя узла, совпадающее с именем объекта. Белый цвет заголовка задается по умолчанию, но его можно изменить в настройке Основной цвет окна менеджера атрибутов, которое вызывается щелчком левой кнопкой мыши по заголовку (рис. 8.5).
С помощью левой кнопки мыши можно перемещать узел целиком, а щелкнув правой кнопкой, можно открыть контекстное меню (рис. 8.6).
На данном этапе размещения узла выберите из меню пункт Align to Grid (Выровнять по сетке). В результате узел расположится точно по границам клеточного фона окна редактора XPresso. Пункт View (Вид) позволит выбрать габариты узла. Пункт Optimize (Оптимизировать) изменит размер узла в соответствии с размером текста, записанного внутри узла. Также можно удалить узел (пункт Delete) и переименовать
Выберите для входного порта узла Sphere параметр Position X. В результате слева появится значок порта ввода в виде синей окружности, а внутри узла будет выведено название параметра, действующего на входе в узел (рис. 8.8).
Красная область в правой части заголовка содержит перечень названий портов вывода — это выходные параметры, доступные для данного узла. Список вызывается щелчком левой кнопки мыши по области красного цвета. Выберите для узла Cube порт вывода Position X (рис. 8.9). В правом вертикальном поле узла появится красный кружок порта вывода, а внутри узла — название выходного параметра. В результате имеем вид узлов, приведенный на рис. 8.10. Соединим оба узла через созданные порты. Для этого левой кнопкой мыши прижмем красный кружок узла Cube и протянем линию к синему кружку узла Sphere. Такая операция называется установкой связи между узлами (рис. 8.11). Связь можно «нарисовать» и в обратном направлении: от порта узла Sphere к порту узла Cube. Направление проведения соединяющей порты линии не играет роли. Ведущим в этой паре узлов все равно будет тот узел, у которого задействован порт вывода, и ведомым — у которого задействован порт ввода.
Для лучшей организации узлы группируются, размещаясь в XGroup. Каждая XGroup имеет инструменты перемещения и масштабирования, подобные инструментам в окне проекций (рис. 8.13). Узлы внутри Х-группы можно перемещать вверх, вниз, вправо, влево с помощью клавиш со стрелочками (для перемещения курсора).
Параметры узлов задаются в окне менеджера атрибутов узла. Для каждого узла набор параметров будет разным. Имеется возможность добавлять новые параметры в окне менеджера атрибутов по своему усмотрению. Например, для узла Null Object нам нужно добавить параметр Высота, выраженный в метрах в формате вещественный с плавающей запятой в форме шкалы с бегунком. Для объекта Null Object открываем окно менеджера атрибутов и в меню этого окна выбираем пункт User Data -> Add User Data (рис. 8.14). Посмотрим, что мы получили в результате. Координата расположения объекта Sphere на оси 0Х задается координатой расположения объекта Cube на оси 0Х. То есть объект Sphere самостоятельно, отдельно от объекта Cube перемещать по оси 0Х нельзя. Но в то же время при перемещении объекта Cube по оси 0Х объект Sphere будет следовать за ним. Мы связали два объекта по координате X. Проверим это. В окне проекций выделим Sphere и попытаемся переместить ее по оси 0Х. Для этого в окне менеджера атрибутов попытайтесь изменить значение счетчика Р.Х (позиция на оси 0Х). Вы обнаружите, что счетчик блокирован. Также не удастся сдвинуть Sphere с помощью инструмента Move (рис. 8.12). Проделайте те же операции по перемещению вдоль оси 0Х для объекта Cube. Вы увидите, что Cube перемещается сам и перемещает за собой Sphere. Таким образом, мы связали в помощью выражения XPresso координату по оси 0Х для двух объектов.
В появившемся диалоговом окне (рис. 8.15) вводим необходимую информацию и щелкаем по кнопке ОК. Имя параметра можно ввести по-русски. В результате в окне менеджера атрибутов появилась новая группа параметров User Data с новым пользовательским параметром Высота, значение которого регулируется положением бегунка и счетчиком (рис. 8.16).
8.2. Узлы XPresso Узлы XPresso собраны в иерархическую структуру на закладке X-Pool в левой части окна XPresso редактор (рис. 8.17). Для создания нового узла надо открыть папки Системные операторы -> XPresso, открыть нужную группу узлов и выбрать нужный узел.
Кроме перетаскивания мышью значка объекта из окна менеджера объектов на рабочее поле редактора XPresso, новый узел можно также создать с помощью контекстного меню (щелчок правой кнопкой) на свободном месте окна редактора XPresso (рис. 8.18). Рассмотрим характеристики узлов по группам.
8.2.1. Группа General Содержимое группы приведено на рис. 8.19.
Узел Bounding Box Узел позволяет получить доступ к размерам габаритного контейнера для объекта. Единственный порт ввода соединяется с портом вывода исследуемого объекта (тип данных должен быть Object) (рис. 8.20). Узел имеет следующие порты вывода (для всех тип данных Vector).
Box Point — выводит координаты одной (по порядковому номеру) из восьми вершин прямоугольного габаритного контейнера. Box Size — выводит размеры контейнера. Box Maximum — выводит координаты вершины прямоугольного габаритного контейнера, наиболее
удаленной от начала координат: в области положительных значений координатных осей. Box Minimum — выводит координаты вершины прямоугольного габаритного контейнера, наиболее удаленной от начала координат в области отрицательных значений координатных осей.
Рассмотрим пример. Узнаем характеристики габаритного контейнера для объекта Cube (Куб), размеры которого и расположение в окне проекций такие, какие они были при создании примитива (по умолчанию). Создав примитив Cube, переведите его в режим редактирования, щелкнув, например, на пиктограмме панели инструментов Make Object Editable. Чтобы узнать габариты контейнера, составьте выражение XPresso (рис. 8.21), где узел Result, который будет рассмотрен позже, должен быть настроен на тип данных Vector. Это делается в окне менеджера атрибутов узла Result в поле Data Туре (рис. 8.22).
Самостоятельно определите координаты остальных вершин габаритного контейнера.
В окне менеджера атрибутов флажок Used Deformed Points позволяет учитывать изменения формы объекта в результате применения к нему деформаторов. Список Matrix Mode дает возможность выбрать между локальной и глобальной системами координат (рис. 8.24).
Узел Collision Узел позволяет определять момент соударения двух объектов. Создайте два примитива, например, куб и сферу, переведите их в полигональный вид, откройте окно редактора XPresso и составьте выражение, как показано на рис. 8.25. Пока объекты не контактируют, узел Result показывает 0. Как только объекты войдут в контакт, узел Result покажет 1.
Узел Constant
Как видно из рис. 8.21, по умолчанию контейнер примитива Cube имеет размеры 200x200x200. На рис. 8.23 приведены XPresso-выражения для определения координат вершин контейнера, наиболее удаленных от начала координат.
Узел позволяет формировать на выходе константы различного типа. Значения константы задаются в поле Value (Значение) окна менеджера атрибутов узла (рис. 8.26). Там же из списка Data Туре (Тип данных) можно задать тип данных и значение часто используемых констант из списка Constant (Константа). Рассмотрим пример. Запрограммируем с помощью редактора узлов XPresso перемещение объекта Cube по оси 0Х на 84 м. Подадим на порт ввода Position X узла Cube константу 84 из узла Constant (рис. 8.27). Убедитесь, что Cube переместился по оси 0Х на 84 м.
Значение константы и тип данных задается в окне менеджера атрибутов (рис. 8.28).
в зависимости от того, какой или какие из его портов ввода активны. Имеет три порта ввода (рис. 8.29). On — если активен, то на выходе формируется значение True (1). Switch — если активен, то значение на выходе узла Flip Flop изменяется на противоположенное (инверсия). Off — если активен, то на выходе формируется значение False (0) (даже если одновременно активен вход On). Активизировать порты ввода можно либо в окне менеджера атрибутов узла Flip Flop, устанавливая соответствующие флажки в группе Parameter (рис. 8.29), либо подключая к портам ввода другие узлы, например, узел Constant (константа) (рис. 8.30).
Имейте в виду, что узлы Result и Constant должны быть настроены на обработку логического типа данных. Это делается в окне менеджера атрибутов в списке Data Туре (рис. 8.28).
Узел Freeze
Применение данного узла для других типов данных будет рассмотрено ниже.
Узел Flip Flop Узел работает с данными логического типа (Bool). Узел позволяет формировать на выходе логические константы True (Истина) или False (Ложь)
Узел работает как вентиль и позволяет задерживать прохождение сигнала со своего входа (порт ввода Value) на выход (порт вывода Output) (рис. 8.31). Для управления процессом прохождения сигнала служит порт ввода Switch, которым управляют с помощью флажка Switch в окне менеджера атрибутов (рис. 8.31). Если флажок установлен, то изменения сигнала на входе Value не проходят на порт выхода Output, значение на котором замораживается до тех пор, пока флажок Switch не будет сброшен. Рассмотрим пример. Создайте выражение, как показано на рис. 8.31. Откройте прохождение сигнала, сбросив флажок Switch. Измените значение на выходе из узла Constant — синхронно будет изменяться значение, показываемое в узле Result (рис. 8.31).
Поставьте флажок Switch и продолжайте изменять значение на входе Value с помощью узла Constant. Убедитесь, что значение, отображаемое в узле Result, не изменяется (рис. 8.32). Узел Freeze позволяет работать с большим количеством различных типов данных, собранных в списке Data Туре (рис. 8.33).
Узел Link List Позволяет создавать внутренний список объектов. Для добавления объектов в список перетащите их из окна менеджера объектов в окно менеджера атрибутов в поле списка (рис. 8.34). Теперь в списке 2 объекта. Для проверки количества объектов в списке создадим выражение, на рис. 8.35, соединив порт вывода Count (счет) с портом ввода узла Result.
Узел Memory Узел позволяет выводить на свой порт вывода значения параметров, какими они были в предыдущие моменты. Пример Создайте выражение, приведенное на рис. 8.36. Здесь значение одной из координат узла Cube заводится на вход узла Memory и далее передается для визуализации на узел Result. Если изменять значение координаты по оси 0Х, то узел Memory в зависимости от своих настроек (рис. 8.37) может передавать информацию на узел Result либо синхронно, то есть текущее значение координаты по оси 0Х, либо с задержкой, то есть значения предыдущих изменений (предыдущих шагов). Настройка задержки производится в параметрах History Depth (глубина архива) и History Level (уровень архива) (рис. 8.37).
параметре Duration количество кадров. Пока идет счет, на выходе из узла Out выводится логическая 1 (Истина). Когда счет оканчивается, на выходе логический 0 (Ложь).
Если выставить значения History Depth и History Level, как на рис. 8.37, то при изменении координаты по оси 0Х в узле Result будет выводиться значение, установленное на предыдущем шаге. Изменять координату удобнее с помощью счетчика в окне менеджера атрибутов объекта Cube (рис. 8.38).
Если выставить значения History Depth и History Level, приведенные на рис. 8.39, то задержки прохождения информации через узел Memory не будет. Проверьте это.
Таким образом формируется управляющий сигнал.
Узел Noise На рис. 8.40 приведены варианты работы узла Memory при различных сочетаниях значений History Depth (от 2 до 7) и History Level (от 0 до 6).
Узел MonoFlop Является логическим переключателем со встроенной задержкой по времени. Включение узла происходит после установки флажка Trigger в окне менеджера атрибутов (рис. 8.41). В узле отсчитывается заданное в
Узел позволяет генерировать случайные числа в заданном диапазоне с заданной частотой и амплитудой. Рассмотрим пример. Запрограммировать случайные значения координат объекта Cube по оси 0Х. Создаем объект Cube и открываем окно редактора XPresso. Размещаем в окне узел Noise (перетаскиваем из расположенного слева списка XPool) и узел Cube. В узле Cube создаем порт ввода Position X и соединяем его с портом вывода узла Noise (рис. 8.42).
Таким образом, можно наблюдать, как изменяются числовые значения координаты по оси 0Х. Выберите другой тип шума из выпадающего списка Noise Туре (рис. 8.45), например, Turbulence (Турбулентность) и оцените изменение характера колебаний куба. Отсеките отрицательные значения, выставив флажок Positive Only. Измените значения частоты и амплитуды. Далее настраиваем параметры узла Noise в окне менеджера атрибутов (рис. 8.43). Флажок Positive Only позволяет отсечь отрицательные значения зашумленного параметра. Frequency — среднестатистическое число колебаний в секунду. Amplitude — максимальное значение величины зашумленного параметра. В списке Noise Туре выберем Noise (для этого типа список Octaves (Октавы) недоступен). Настроим эти параметры так, как показано на рис. 8.43.
В контекстном меню наименования параметра (вызывается щелчком правой кнопкой мыши по названию параметра, например, по слову Amplitude) можно по желанию заменить поле на ползунок (рис. 8.46).
Узел Object Index Запустите анимацию и убедитесь, что куб начнет совершать колебательные движения вдоль оси 0Х. Остановите анимацию. Вызовите окно менеджера атрибутов для куба и откройте его на закладке Coord. Перетаскивайте вручную (прижав левой кнопкой) маркер кадров, наблюдая за изменениями значения координаты по оси 0Х в поле счетчика Р.Х (рис. 8.44).
Позволяет определять индекс объекта при работе с массивом объектов.
Узел Object Создавать узлы можно не только перетаскиванием имен объектов из окна менеджера объектов в окно редактора узлов XPresso, но и используя узел Object.
При размещении этого узла в окне редактора XPresso (при перетаскивании его из списка X-Pool) автоматически создается узел того объекта, который имеет тэг XPresso. Созданный таким образом узел можно переназначить перетащив из окна менеджера объектов имя нового объекта в поле Reference окна менеджера атрибутов (рис. 8.47), или перетащить имя непосредственно на узел Object в окне редактора XPresso.
Узел Point Узел позволяет получить доступ к управляющим точкам поверхности объекта. Точки располагаются в вершинах полигонов (рис. 8.48) и с помощью них можно производить, например, деформации объекта. На рис 8.49 приведено выражение XPresso, позволяющее узнать, сколько управляющих точек предусмотрено на левой ноге модели человека Zygote Man. Для этого порт ввода Object узла Point соединен с портом вывода Object узла L_Leg. В качестве порта вывода узла Point выбран порт Point Count. Так как тип данных на этом порту Integer (целочисленный), то для вывода результата можно воспользоваться узлом Result.
Узел Polygon Узел предоставляет доступ к координатам центров полигонов, на которые разбит объект, а также позволяет узнать общее количество полигонов.
Рассмотрим пример. Создадим объект — примитив Cube. Разобьем его на сегменты по 3 на каждую ось (рис. 8.50). Таким образом, поверхность Cube будет разбита на 54 сегмента. Переведем Cube в редактируемое состояние. Вызовем окно редактора XPresso, разместим в нем узлы, создадим соответственные порты ввода/вывода и соединим их друг с другом, как показано на рис. 8.51. В окне менеджера атрибутов узла Constant (активизируется щелчком левой кнопкой мыши по заголовку узла) задается номер полигона, координата центра
которого нас интересует. Зададим полигон номер 8. Значение координаты выводится в узле Result, подученного к порту вывода Polygon Center. Общее количество полигонов выводится на порт вывода Polygon Count.
Узел Random Узел предназначен для генерации псевдослучайных (режим Time) и случайных (режим Free) значений различных типов данных, которые назначаются из контекстного меню для портов вывода (рис. 8.52).
убедитесь, что сгенерированы те же самые значения. Поэтому такой режим называется режимом генерации псевдослучайных чисел. Переключитесь в режим генерации случайных чисел (Free) и проделайте тот же эксперимент. Убедитесь, что в этом случае при возвращении на одни и те же кадры будут генерироваться разные числа. Измените тип данных и повторите действия.
Узел Ray Collision
В любом режиме генерации узел подключается к таймеру анимации, в качестве которого выступает узел Time. В режиме генерации псевдослучайных значений (Time) всякий раз получаются одни и те же последовательности чисел, привязанные к одним и тем же номерам кадров анимации. Рассмотрим пример. Постройте выражение как на рис. 8.53. Настройте узлы Random и Result на тип данных Real (действительный) и в окне менеджера атрибутов выставьте режим генерации Time. Перетаскивайте движок шкалы анимации, прижимая его левой кнопкой мыши, например, на кадры 0, 50 и 90 (переместив движок, отпустите кнопку мыши). Обращайте внимание на значения, выводимые в узле Result, — они будут -0,256, 0,372 и 0,7 соответственно. Снова вернитесь на кадры 0, 50, 90 и
Позволяет определить точку столкновения прямолинейно распространяющегося луча с поверхностью объекта и обозначить эту точку на поверхности. Определим для куба точку на его поверхности, в которую входит луч, и обозначим ее сферой. Создайте примитивы Cube (размеры оставьте по умолчанию 200x200x200 м) и Sphere (уменьшите радиус до 10 м), переведите их в полигональный вид и составьте выражение, как показано на рис. 8.54. Координаты начальной и конечной точек луча подаются на входы Ray Point 1 и Ray Point 2 или задаются в окне менеджера атрибутов объекта Ray Collision (рис. 8.55). Флажок Test Only должен быть сброшен. Измените координаты луча и убедитесь, что сфера переместилась по поверхности.
Узел Reference Позволяет производить поиск по иерархическому дереву в окне менеджера объектов.
страиваются в окне менеджера атрибутов в списке Data Туре (рис. 8.61).
Определим, какой подобъект имеется у объекта Cube (как следует из рис. 8.57, это Sphere). Объект Cube должен быть обязательно переведен в полигональный вид. На вход Instance узла Reference заводится начало поиска, в данном случае это исследуемый объект Cube. На вход Path заводится направление поиска, в данном случае поиск должен иметь направление от объекта Cube вниз по иерархической структуре. Направление задается буквой, D (от слова Down — вниз), U (от слова Up вверх), N (от Next — следующий), Р (от Previously — предыдущий). Направление зададим от узла Constant, задав в менеджере атрибутов Data Type (тип данных), String (строковый) и Value (значение) D (именно прописную D) (рис. 8.58).
Служит для создания комментариев к выражениям. Текст комментария вводится в поле (рис. 8.60).
Рассмотрим пример. Создадим в редакторе XPresso узел для примитива Cube. Создадим в этом узле три порта вывода значений позиции Cube относительно координатных осей Position X, Position Y, Position Z (рис. 8.51). Для этого надо щелкнуть левой кнопкой мыши на красном прямоугольнике узла и выбрать необходимый пункт из каскадного меню (см. предыдущий пример). Перетащим три узла Result на рабочую область окна и соединим порты узлов, как показано на рис. 8.62 Переместите Cube в окне проекций — в узлах Result отразятся текущие значения его координат. Узел Result не имеет портов вывода и, следовательно, не может передавать информацию следующему узлу.
Узел Result
Узел Sound
Узел Результат служит для отображения значения параметра, заводимого на его вход. Значение отображается непосредственно внутри узла. Узел позволяет работать с различными типами данных, которые на-
Позволяет проигрывать музыкальную фразу после какого-либо события, например, после каждого столкновения двух сфер (рис. 8.63).
В узле Result (рис. 8.59) выведен результат — имя подобъекта Sphere.
Узел Remark
Чтобы выбрать мелодию, надо вначале выбрать звуковой файл из окна Open File. Программа поддерживает форматы WAV и AIFF (рис 8.64).
Узел Spline Позволяет определять координаты точек сплайна. Создайте сплайн и составьте XPresso-выражение, как на рис. 8.65. Параметр Offset задает точку, координату которой надо узнать. Значение для Offset можно задать в окне менеджера атрибутов для узла Spline (рис. 8.66). 0% означает начальную точку сплайна, 100% — последнюю точку сплайна. Тип данных в узле Result должен быть Vector рис. 8.67). Чтобы проверить правильность работы узла Spline, поставьте Offset на 0%, перейдите на вид в плоскости XY (клавиша F4) и подвигайте
первую точку сплайна (начало сплайна окрашено в желтый цвет, конец — в красный) (рис. 8.68). Значение координат в узле Result должно измениться в соответствии с перемещением точки.
Узел Spy Назначение узла схоже с узлом Result, только узел Spy позволяет передавать информацию на порты ввода последующих узлов. На рис. 8.69 приведен пример.
Узел Time Узел предназначен для вывода текущих значений параметров анимации. Портов ввода узел не имеет. Перечень портов вывода приведен на рис. 8.70. В этом списке уже активизированный порт указан выбеленным текстом.
Так как XPresso преобразует типы данных автоматически, то рассмотрение узлов данной группы опустим.
8.2.3. Группа Bool Узлы (рис. 8.73) выполняют различные операции из булевой алгебры: логическое И, логическое ИЛИ, логическое НЕ и другие. Входными и выходными значениями являются нули и единицы.
Рассмотрим пример. Создайте анимацию на основе ключевых кадров для перемещения примитива Cube. В окне редактора XPresso составьте выражение для вашей анимации, например, как на рис. 8.71, где выбранные порты означают следующее. Time — выводит продолжительность (в секундах) отсмотренной части анимационного ролика на момент его остановки. Frame — номер кадра на момент остановки просмотра анимации. End — максимальная продолжительность анимационного ролика. Frame per second — количество кадров в секунду.
Узел Bool Узел позволяет выбрать одну из логических операций, приведенных в списке Function (рис 8.74).
AND — логическое И (логическое умножение). На выходе будет 1 (Истина), если на всех входах по 1. Если хотя бы на одном входе будет 0, то на выходе будет 0 (Ложь). Значения на портах ввода задаются положениями флажков в группе Параметры окна менеджера атрибутов: 1 соответствует взведенному флажку, 0 — сброшенному. На рис. 8.75 оба входа имеют по 1, поэтому на выходе также 1. Сбросьте один флажок — не выходе будет 0.
Узел Weightmap Позволяет работать с картами распределения весов точек поверхности объекта. В частности, можно изменять значения весов точек.
8.2.2. Группа Adapter Узлы этой группы служат для преобразования типов данных. Перечень узлов приведен на рис. 8.72.
OR — логическое ИЛИ (логическое сложение). На выходе будет 1, если хотя бы на одном входе есть 1 (рис. 8.76). XOR — исключающее ИЛИ. На выходе будет 1 (True), если на входах нечетное количество единиц. Если количество единиц на входах четно, то на выходе будет 0 (False). На рисунках приведены примеры для 5 портов ввода при четном количестве единиц на них (рис. 8.77) и нечетном (рис. 8.78).
NAND — НЕ И (отрицание И). Если на всех портах ввода 1, то на выходе 0 (рис. 8.79). Если хотя бы на одном порте ввода 0, то на выходе 1 (рис. 8.80).
Узел Not
NOR — HE ИЛИ (отрицание ИЛИ). Если на входе есть хотя бы одна 1, то на выходе будет 0. Если на всех входах 0, то на выходе 1 (рис. 8.81, 8.82). NXOR — не исключающее ИЛИ. Если количество единиц на входах нечетно, то на выходе будет 0. Если количество единиц на входах четно, то на выходе будет 1 (рис. 8.83, 8.84).
Служит для инверсии 1 и 0. Если на входе 1 (устанавливается в окне менеджера атрибутов — флажок Input), то на выходе будет 0 и обратно (рис. 8.85).
Узел Switch Узел формирует на выходе булеву константу (0 1), которая задается с помощью положения флажка Цена группы Параметры узла в окне менеджера атрибутов (рис. 8.86).
Узел C.O.F.F.E.E. Позволяет использовать в редакторе XPresso программу, написанную на языке C.O.F.F.E.E (язык программирования Cinema 4D) (www.plugincafe.com).
Узел Clamp Узел позволяет ограничить значение параметра, подаваемого на порт ввода Value узла Clamp. Порты Min и Мах позволяют задавать в окне менеджера атрибутов соответственно нижнюю и верхнюю границы диапазона изменения параметра, вводимого на вход Value. Если значение Value превышает значение Мах, то на выходе Output будет значение Мах (рис. 8.89). Если значение Value ниже значения Min, то на выходе Output будет значение Min. Не забывайте настраивать соответствие типов данных узлов Clamp и Result.
8.2.4. Группа Calculate Группа содержит узлы для математических вычислений (рис. 8.87). Рассмотрим характеристики некоторых из них.
Создадим анимацию для Cube. С помощью узла Clamp введем ограничения на координату по оси 0Х для Cube (рис. 8.90).
Узел Absolute Узел позволяет вычислять модуль числа. На рис. 8.88 приведен пример для числа -4. Узел может работать с двумя типами данных Real (действительного типа) и Integer (целочисленный). Настройте под соответствующий тип узел Result.
Запустите анимацию и убедитесь, как изменилось перемещение Cube по оси 0Х. Откройте окно менеджера атрибутов для Cube. Начальное значение параметра Р.Х теперь равно значению Min узла Clamp (в данном случае 300), а конечное значение Р.Х равно Мах (в данном случае 800). Таким образом, ограничения узла Clamp работают.
Узел ColorSpace Узел позволяет преобразовывать информацию о цвете из одной системы в другую (рис. 8.91).
На рис. 8.92 приведен пример выражения для преобразования информации о цвете из системы RGB (цвета задаются как доли от 0 до 255 для соответственно красного, зеленого, голубого) в систему HSV (оттенок, насыщенность, значение). Обратите внимание, что узел Result должен иметь тип данных Color. На вход узла Colorspace подаем значение, задаваемое в окне менеджера атрибутов в поле Input.
Узел Cross Product Служит для расчета координат вектора, перпендикулярного плоскости, в которой лежат два исходных вектора. На рис. 8.93 приведен пример для двух исходных векторов с координатами по осям 0X, 0Y, 0Z соответственно (0:0:1) и (0:1:0). Типы данных для узлов Constant и Result должны быть Vector.
Узел FloatFunc Позволяет рассчитывать значения некоторых функций (рис. 8.97).
Узел Degree Служит для перевода градусов в радианы и обратно (выбирается в списке Function) (рис. 8.94).
Узел Distance Узел служит для вычисления расстояния между двумя точками (объектами). Проверим работу узла для двух нуль-объектов, представленных в виде точек. Зададим координаты P.Z для объектов с разницей 165 м. В узле Result будет выдан результат 165 м (рис. 8.95). Для отслеживания изменения расстояния между объектами в режиме реального времени, выберите в меню окна XPresso пункт Calculate -> Live Refresh (рис. 8.96).
Узел Dot Product Определяет проекцию одного вектора на другой и используется для расчета угла между векторами.
Ехр — вычисляет значение экспоненты для вводимого числа. Ln Ln10 — вычисляет соответственно натуральный логарифм и логарифм с основанием 10. Sqrt — вычисляет квадратный корень числа, поданного на вход Value (рис. 8.98).
Float — отбрасывает дробную часть числа (округляет вниз) (рис. 8.99).
Ceil — округляет вверх (рис. 8.100)
Pow — возводит число на входе Value в степень, равную этому числу (рис. 8.101).
Рассмотрим пример. Необходимо 7 возвести в квадрат и прибавить квадратный корень из двух. В окне редактора XPresso располагаем узлы Formula, Result и соединяем их порты (рис. 8.103). Расчетную формулу вводим в поле параметра Formula. Так как имена портов ввода не используем, то флажок Use Portnames должен быть сброшен. Результат виден внутри узла Result. Если бы в формуле были тригонометрические зависимости, то в выпадающем списке Angle Туре надо было бы выбрать единицы измерения для аргумента (радианы или градусы).
Исходные данные для расчета можно задавать также через порты ввода Value 1, Value 2 и т. д. Создадим два порта ввода узла Formula (рис. 8.104). Формула переписана с использованием не констант, а имен портов, которые состоят из префикса в виде знака доллара и порядкового номера порта $1, $2 и т. д.
Pow2 — возводит в квадрат значение на входе Value (рис. 8.102).
Узел Floatmathadd
Исходную информацию можно завести на порты ввода из узлов Constant (рис. 8.105).
Отличается от узла Math тем, что на вход можно задавать данные различного типа.
Узел Formula Узел позволяет создавать и применять различные математические зависимости, использующие в качестве параметров значения на портах ввода узла. Формула записывается в поле Formula окна менеджера атрибутов. Номера портов обозначаются с префиксом знака доллара. Например, $1 означает первый порт. Приняты следующие знаки арифметических действий и тригонометрические функции: + — сложение - — вычитание * — умножение / — деление ^ — возведение в степень ABS — абсолютное значение SIN — синус COS — косинус TAN — тангенс SQRT — квадратный корень SQR — возведение в квадрат I
Рассмотрим пример. Запрограммировать перемещение объекта вдоль оси 0Х. Создадим объект примитив Cube. Разместим узлы, как показано на рис. 8.106. Здесь узел Cube использован дважды. В первом случае он используется для получения текущей информации о координате Cube по оси 0Х и имеет порт вывода Position X. Во втором случае он получает новое значение этой координаты и имеет порт ввода Position X. Создадим два порта ввода на узле Formula. В один порт заведем текущую координату из узла Cube, а во второй запишем величину шага, на который будет увеличиваться значение координаты. В окне менеджера атрибутов в поле Parameter введем числовое
значение этого шага, равное 1 м. В поле Formula запишем формулу в адресах портов узла $1 +$2.
Запустите анимацию. Убедитесь, что Cube непрерывно двигается вдоль оси ОХ. Чтобы ограничить его движение, можно применить узел MathAdd.
При умножении значения, поданные на порты ввода, последовательно перемножаются, при сложении — складываются (рис. 8.110).
Узел Invert Делит единицу на число, поданное на вход узла. На рис. 8.107 исходное число 2, в результате получаем 0,5.
Операция вычитания производится также последовательно по номерам портов ввода. Из первого вычитается второй, далее третий, затем четвертый (рис. 8.111).
Узел MathAdd В окне менеджеров атрибутов с помощью параметра Function можно задавать выполняемую узлом арифметическую операцию. Это могут быть Divide (разделить), Multiply (умножить), Subtract (вычитать), Add (сложить). Название арифметической операции выносится в заголовок узла (рис. 8.108).
Узел Matrix 2НРВ Позволяет преобразовать матрицу в три вектора.
Узел MatrixMulVector Служит для пересчета локальных координат в глобальные.
Узел Mix
Проверим действие узла на выполнение операции деления. Создадим 4 порта ввода (Input (1) и т. д.) и в окне менеджера атрибутов зададим им числовые значения, представленные на рис. 8.109. Величина сигнала на порту выхода есть частное от последовательного деления значений порта ввода 1 на значение порта ввода 2. Результат делится на значение порта ввода 3. Частное от этого деления делится на значение порта ввода 4, в результате должно получиться 0,25 (рис. 8.109).
Суммирует два входных значения в определенной пропорции, задаваемой параметром Mixing Factor. Если задать значения, как на рис. 8.112, то от первого и от второго число будет взято по половине (Mixing Factor = 50%) и суммировано. То сеть 2 + 5 = 7. Узел может смешивать таким образом различные типы данных, от чисел действительного типа до цвета.
Узел Negate Позволяет менять знаки на противоположные как отдельных числовых констант, так и числовых элементов матриц (рис 8.113).
Узел может работать с различными типами данных, например, с логическими, инвертируя True в False.
Узел Range Mapper Узел позволяет переградуировать диапазон изменения параметра. Например, положение ползунка на шкале определяло яркость. Шкала была отградуирована от 0 до 30 см. С помощью узла Range Mapper шкалу можно переградуировать в процентах. В настройках имеется список возможных градуировок диапазонов входных параметров Input Range (рис. 8.114) и список диапазонов Output Range, в которые можно преобразовать Input Range. Это наиболее распространенные диапазоны Degree (градусы) от 0 до 360, Radians (радианы) от 0 до 6,28 и т. д.
На рис. 8.117 приведено выражение для пересчета 90° при прежних прочих условиях задачи.
Узел Trigonometric
Input Lower (нижний предел) и Input Upper (верхний предел) задают исходный диапазон изменения параметра. Output Lower и Output Upper задают диапазон, в котором нужно пересчитать параметр, исходное значение которого задается в поле Input (рис. 8.115). Для проверки работы узла решим очевидную задачу пересчета значения 180° из диапазона 0°—180° в
диапазон от 0 до 3,14 радиан. Соберите выражение и выставьте параметры, как показано на рис. 8.116. Результат получен верный.
Узел позволяет вычислять значения тригонометрических функций, которые задаются в менеджере атрибутов из списка Function (рис. 8.118).
Рассмотрим пример. Анимируем взмах назад и вперед левой ноги (L_Leg) персонажа Zygote Man (рис. 8.119).
Действительно, максимальное значение параметра Time равно 3. В функции Sin это значение будет воспринято как 3 радиана, что меньше 180° (число Пи, равное 3.14, соответствует 180°), а в полупериоде 0 — 180° Sin положительный. Чтобы увеличить значение параметра, подаваемого на вход Value узла Trigonometric, между узлами Time и Trigonometric предусмотрен узел MathMultiply на два входа. Узел MathMultiply создается из узла MathAdd, для которого в списке Function окна менеджера атрибутов выбрана арифметическая операция Multiply (рис. 8.122). На порт Input (1) от узла Time заводится текущее время анимации, а на порт ввода Input (2) задаем значение коэффициента, на который будет умножен сигнал порта Input (1). Если умножить на 2, то есть получить значение аргумента от 0 до 6, то Sin сможет сформировать положительный и отрицательный полупериоды. В поле Input (2) окна менеджера атрибутов вводим 2 (рис. 8.122).
XPresso-выражение приведено на рис. 8.120
Идея заключается в том, что на порт ввода узла L_Leg (левая нога) заводится сигнал длительностью, в данном случае, 3 с (по умолчанию длительность анимации 3 с на 90 кадров). Причем первую половину этого времени сигнал положительный, а вторую — отрицательный. В результате в первую половину времени нога будет двигаться назад, а во вторую — вперед. Чтобы сформировать такой сигнал, используем тригонометрическую функцию Sin(). Для этого на рис. 8.121 предусмотрен узел Trigonometric, в окне менеджера атрибутов которого выбрана функция Sin (рис. 8.121). Если на порт ввода Value узла Trigonometric подать сигнал с порта вывода узла Time, который выдает текущее время анимации,
Запустите анимацию и убедитесь, что левая нога движется, как планировалось. На рис. 8.123 приведены кадры 35 и 70.
Узел VectorToMatrix то это значение будет использовано как аргумент функции Sin. Однако его будет недостаточно, чтобы сформировать отрицательный полупериод для Sin.
Позволяет преобразовывать вектор в матрицу Вектор можно задать в полях параметра Input (рис. 8.124).
Чтобы увидеть результат преобразования этого вектора в матрицу, подключите узел Result, установив его тип данных Vector (рис. 8.125).
8.2.5. Группа Logic Группа содержит узлы, выполняющие логические операции. Перечень узлов приведен на рис. 8.126.
на порт вывода, определяется цифрой, задаваемой в поле параметра Switch окна менеджера атрибутов (рис. 8.130). Счет ведется с 0 последовательно для портов Input. Обратите внимание, что 0 в поле Switch соответствует второму порту ввода Input (2), так как Switch также является портом ввода и имеет номер 1. Порт Input (3) соответствует номеру в поле Switch 2 и так далее. На рис. 8.130 показан узел Condition в положении Switch 1, в котором активным является порт ввода Input (3).
Узел Compare Позволяет сравнивать два параметра между собой. Параметры могут быть цветом, материалом, числами целого и действительного типа, векторами, временем, текстовой строкой. Тип данных окна менеджера атрибутов приведен на рис. 8.127. Значения параметров можно заводить с других узлов или задавать в полях Ввод 1 и Ввод 2 группы Параметр (рис. 8.124). Функция сравнения выбирается из списка Функция, где приведены знаки отношения, смысл которых очевиден, кроме знака != не равно (рис. 8.128). Слева от знака сравнения предполагается информация с порта Ввод 1, справа — информация с порта Ввод 2. Результатом проверки будет информация логического типа: 1, если условие проверки выполняется (Истина,True), и 0, если условие не выполняется (Ложь, False). На рис. 8.129 проверяется условие 2 < 5. Так как это условие истинно, то в результате имеем 1.
Узел Condition Работает как переключатель портов ввода. Количество портов ввода может быть произвольным. Номер порта ввода, с которого информация передается
Узел Equal Производит сравнение двух и более значений, подаваемых на порты ввода. Если значения равны друг другу, на порт вывода выводится 1. Если не равны, выводится 0. Входные значения можно заводить с присоединяемых узлов или задавать в окне менеджера атрибутов в поле Параметр. На рис. 8.131 приведен пример для проверки двух значений, которые не равны. Если установить флажок Not Equal, то принцип работы узла изменится на противоположный: на выходе
будет 1, если числа не равны друг другу, и 0, если равны друг другу.
На рис. 8.134 значение на Input2 больше, чем на Input1.
Узел Is Null Узел позволяет производить проверку на ноль вводимого параметра, тип которого задается с помощью списка Data Туре окна менеджера атрибутов рис. 8.132). Если вводимый параметр равен 0, то на выходе узла будет 1, в противном случае 0. Проверяемый параметр может задаваться в поле Input (1) или передаваться с других узлов.
8.2.6. Группа Iterator Узлы этой группы приведены на рис. 8.135.
Узел Hierarchy Узел позволяет определять количество подобъектов в иерархической структуре. Создадим в окне менеджера объектов иерархическую структуру (рис. 8.136). Составим XPresso-выражение, как на рис. 8.136, и перетащим из окна менеджера объектов в поле Reference имя того объекта, у которого хотим посчитать количество подобъектов. Можно увеличить количество проверяемых параметров, увеличив количество портов ввода. В этом случае узел работает так: если хотя бы на одном входе будет информация, отличная от 0, то на выходе будет 0. Если на всех входах 0, то на выходе 1 (рис. 8.133).
Если хотим посчитать, сколько подобъектов у Cube, то перетащить в поле Reference надо его имя (рис. 8.137).
Узел Order Узел служит для определения большего из двух значений, вводимых через порты Input1 и Input 2. Если значение, поданное на порт Input 1, оказалось больше, чем поданное на порт Input2, то в результате будет 1. В противном случае в результате будет - 1 (знак минус перед единицей).
Узел Iteration Позволяет создавать циклические процессы с изменением параметра цикла от начального значения, задаваемого в поле Iteration Start, до. конечного значения, задаваемого в поле Iteration End (рис. 8.138) с шагом 1. Может применяться для обработки точек на поверхности объекта.
Узел Material Позволяет организовать поиск материалов в менеджере материалов. Тип искомого материала выбирается из списка Material Туре (рис. 8.139).
8.3. Работа с тэгами в редакторе XPresso Движение объекта по траектории Создадим движение объекта по траектории, задаваемой сплайном. В качестве объекта выберем модель человека Zygote Men (главное меню Objects -> Object Library). В качестве траектории — сплайновый примитив Circle (окружность) (главное меню Objects -> Spline Primitive -> Circle) (рис 8.142). В окне менеджера объектов выделите объект Zygote Men и, щелкнув на нем правой кнопкой мыши, выберите команду Align to spline (выровнять по сплайну) (рис. 8.143).
Узел Object List Позволяет запоминать определенное количество объектов. Для этого объекты следует перетащить из окна менеджера объектов в окно атрибутов в поле Iteration List (рис. 8.140). Если проверить (рис. 8.141), то окажется, что в узле действительно хранится 3 объекта.
Узлы Selection и Tag Узлы организуют доступ к тэгам объекта.
Откройте окно редактора XPresso для объекта Zygote Man и перетащите туда тэг Align to spline. Образуется узел Align to spline. Щелкнув левой кнопкой мыши по синему прямоугольнику заголовка узла Align to spline, выберите из меню порт ввода Position (рис. 8.147).
В результате в окне менеджера объектов справа от имени Zygote Men появился тэг Align to spline рис. 8.144).
Так как сплайнов в сцене может быть несколько, то надо указать, к какому именно сплайну привязан объект. Для этого в окне менеджера объектов прижмите левой кнопкой мыши имя сплайна Circle и перетащите его в поле Spline Path окна менеджера атрибутов тэга Align to spline (рис. 8.145).
В результате, как видно из рис. 8.146, модель Zygote Men переместилась непосредственно на сплайн
Circle (произошла привязка объекта Zygote Man к сплайну Circle).
Это тот же параметр Position, который выведен в окне менеджера тэга Align to spline (рис. 8.144). Он управляет положением объекта на сплайн-траектории и имеет размерность в процентах: 0% соответствует положению объекта в начале сплайна, 100% — положению объекта в конце сплайна. Чтобы убедиться в этом, последовательно изменяйте значение счетчика параметра Position от 0% до 40%. Окончательно фигура переместится в положение, указанное на рис. 8.148.
В окне редактора XPresso создадим узел Time, который позволяет получать на одноименном порте вывода Time значение текущего времени анимации. Если подать это значение на порт ввода Position узла Align to spline (рис. 8.149) и запустить просмотр анимации, то фигура Zygote Man опишет полную окружность и вернется в исходную точку за время 1 с. Узел Time запрограммирован так, что 1 с соответствует 100% параметра Position. Для узла Time можно было бы создать порт вывода Real, специально предназначенный для работы с данными вещественного
типа, но порт Time, создаваемый по умолчанию, также работает.
Недостатком такой анимации является то, что фигура, описав окружность за 30 кадров, останавливается и находится в неподвижном состоянии все оставшееся время анимации, на которое по умолчанию отведено 90 кадров. Причина в том, что значение параметра Position не может превышать 100%, которое параметр получает на 30-м кадре. Чтобы проверить длительность полного оборота фигуры, подключите узел Result (результат) к порту Time и остановите анимацию в тот момент, когда фигура вернется в исходное положение. В узле Result будет выведена 1, что соответствует 100% параметра Position (рис. 8.150). Таким образом, фигура проходит путь слишком быстро и надо замедлить ее скорость в 3 раза (или уменьшить в 3 раза общее количество кадров анимации).
Для уменьшения скорости вставим между узлом Time и Align to spline узел MathAdd, изменив тип арифметической операции на Divide (делить). Создадим два порта ввода и на первый порт подадим текущее значение с узла Time. Значение на втором порте ввода, равное 3, введем в поле Input (2) в окне менеджера атрибутов узла Math (рис. 8.151). По правилам работы узла MathDivide значение, поданное на вход Input (1), делится на значение, поданное на вход Input (2). Запустите анимацию и убедитесь, что за 90 кадров фигура совершает один полный оборот.
Подключите узел Result, как показано на рис. 8.152. Остановив анимацию на 90 кадре, вы увидите значение, формируемое узлом MathDivide на выходе Output. Оно равно 1, то есть 100% для параметра Position, что означает прохождение объектом Zygote Man сплайна-пути Circle до конца за 90 кадров.
Анимация цвета в XPresso Создайте объект, например, примитив Sphere. В окне менеджера материалов создайте новый материал (File -> New Material). По умолчанию значок созданного материла будет иметь имя Mat. Переименуйте его на Цвет.
Присвойте этот материал сфере, перетащив его значок левой кнопкой мыши из окна менеджера материалов на сферу в окне проекций. Откройте (для сферы) окно редактора XPresso (в окне менеджера объектов щелкните правой кнопкой мыши на значке сферы и из контекстного меню выберите Cinema 4D Tags -> XPresso). В окне редактора XPresso создайте узел созданного материала Цвет. Для этого левой кнопкой мыши перетащите в окно редактора XPresso из окна менеджера материалов значок нового материла Цвет. В узле Цвет последовательно создайте три порта ввода для каждого из цветов Color R (красный), Color G (зеленый) и Color B (синий), выбрав их из меню (рис. 8.153), которое вызывается щелчком левой кнопки мыши на верхнем левом синем прямоугольнике узла. Следует отметить, что в меню кроме цвета перечислены многие другие характеристики материала, рассмотренные в разделе, посвященном текстурам. Все эти характеристики можно также анимировать.
Значения параметров Color для каждого из цветов могут изменяться в диапазоне от 0 до 1. Таким образом, чтобы покрасить сферу в зеленый цвет, надо на порт ввода Color G подать 1, а на остальные два порта — по 0. Чтобы проверить работу цветовых портов ввода, создайте выражение, показанное на рис. 8.154. Здесь для формирования входных значений использованы узлы Constant (постоянная), числовые значения для которых задаются в поле Value окна менеджера атри-
бутов (рис. 8.154). Изменяя значения Value, раскрасьте сферу последовательно в зеленый, красный и синий цвета.
G обнулен. Аналогично создаются выражения для других пар основных цветов.
Чтобы анимировать процесс окрашивания поверхности сферы в определенный цвет, например, в красный, постройте XPresso-выражение, приведенное на рис. 8.155.
Чтобы изменить соотношение долевого присутствия основным цветов в смеси, можно предусмотреть еще один узел MathDivide для портов ввода одного из цветов. На рис. 8.157 регулировка предусмотрена для порта ввода Color В. Изменяя значение на входе Input (2), можно менять долю этого цвета в смеси.
При скорости 30 кадров/с и общем количестве кадров 90 суммарное время анимации составляет 3 с. Так как изменение цвета происходит до тех пор, пока входное значение на порт Color R меньше 1, то красный цвет будет нарастать в течение 1 с и, достигнув максимума, оставшиеся 2 с изменяться не будет. Чтобы растянуть процесс окрашивания во времени на 3 с, между узлами Time и Цвет предусмотрен узел MathDivide (чтобы быть точным, это узел MathAdd, для которого выбрана операция деления (Divide)). На второй вход этого узла подается значение 3, которое выставляется в поле Input (2) в окне менеджера атрибутов узла MathDivide (рис. 8.155). Запустите анимацию Процесс окрашивания сферы красным цветом будет продолжаться 3 с. Чтобы получить анимацию других чистых (без оттенков) цветов, надо предусмотреть обнуление неиспользуемых цветовых каналов, так как в них могут храниться значения, отличные от 0. На рис. 8.156 приведено выражение для анимации раскрашивания поверхности сферы смесями основных цветов, например, смесью красного и синего, что дает фиолетовый. Обратите внимание, что порт Color
Если смешать все три цвета в равных пропорциях, то получится серый цвет, который поверхность сферы имеет по умолчанию.
8.4. Работа с контроллерами в редакторе XPresso Суть работы с контроллерами в том, что один параметр, называемый контроллером, управляет другим или другими параметрами. Рассмотрим пример. С помощью контроллера сделать так, чтобы высота конуса регулировалась перемещением цилиндра по оси 0Х.
Создадим два примитива Cone и Cylinder. В окне менеджера объектов выделим имя Cylinder. В открывшемся окне менеджера атрибутов войдите на закладку Coord, и щелкните правой кнопкой мыши по символу X в параметре Р.Х (если щелкнуть на символе Р, то выделятся все три координаты). Выберите в контекстном меню Animation -> Set Driver (рис. 8.158).
Теперь координата цилиндра 0X является контроллером и может контролировать другие параметры (управляемые параметры). Чтобы задать в качестве такого управляемого параметра высоту конуса, откроем для объекта Cone окно менеджера атрибутов и войдем на закладку Object. Там выберем управляемый параметр Height (высота), щелкнув по надписи Height правой кнопкой мыши, и в появившемся контекстном меню выберем Animation > Set Driver (Absolute) (рис. 8.159). Теперь параметр Р.Х объекта Cylinder управляет параметром Height объекта Cone. Если установить Р.Х для Cylinder на 50, то значение Height для Cone также станет равным 50. Подвигайте цилиндр по оси 0Х, наблюдая, как синхронно изменяется высота конуса (рис. 8.160, 8.161). Таким образом, контроллер на один управляемый параметр создан.
Рассмотрим более детально понятия Абсолютный и Относительный контроллеры. В рассмотренном примере мы установили Абсолютный контроллер. При этом значение управляемого параметра в самом начале было равно значению управляющего параметра, то есть Р.Х для цилиндра. Дальнейшие значения управляемого параметра будут в точности равны значениям управляющего параметра. Если же выбрать Относительный, то значение управляемого параметра в самом начале не будет равным значению управляющего параметра, а будет таким, каким оно получилось при создании объекта. Дальнейшие изменения будут отсчитываться именно от этого начального значения, то есть будут относительны. Проверьте это, задав Относительный контроллер.
Добавим к контроллеру Р.Х объекта Cylinder еще один управляемый параметр. Для этого создадим, например, примитив Torus. В окне менеджера атрибутов для Torus на вкладке Object выберите для параметра Ring Radius в контекстном меню Animation -> Set Driver (Absolute). Убедитесь, что контроллер Р.Х объекта Cylinder на два управляемых параметра работает (рис. 8.162).
освещения: один источник будет использоваться как основной свет и будет ярче, а второй источник будет использован как подсветка и будет темнее. Создайте контроллер для параметра Р.Х объекта Sphere (рис. 8.165).
Расположение источников показано на рис. 8.166. Источнику освещения Light (он будет основным светом) задайте Animation -> Set Driver, а источнику освещения Light 1 — Animation -> Set Driver (Absolute).
Рассмотрим пример. Создать следующую анимацию. Из цилиндра, как из ствола, вылетает шар. По мере продвижения шара увеличивается освещенность цилиндра снаружи (рис. 8.163).
Создадим два примитива Sphere и Cylinder. Сферу разместим внутри цилиндра посередине его продольной оси так, чтобы сфера была не видна. Расположим источник освещения Light произвольно сбоку снаружи цилиндра (рис. 8.164).
Создайте контроллер для параметра Р.Х объекта Sphere, а параметр Brightness (яркость) источника освещения Light сделайте управляемым. Создайте анимацию выхода шара из цилиндра по трем ключевым кадрам и просмотрите ее, убедившись, что освещенность действительно увеличивается по мере выхода шара из цилиндра. Рассмотрим пример. Требуется создать анимацию из предыдущего примера, используя два источника
Создайте и просмотрите анимацию. Убедитесь, что яркость источников освещения различна и увеличивается по мере выхода сферы из цилиндра. Рассмотрим пример. Создать анимацию рук для фигуры Zygote Man. В окне менеджера объектов приведена иерархическая структура элементов объекта Zygote Man. Пусть ведущей (контроллер) будет левая рука, а ведомой (управляемой) — правая рука. Откроем последовательно папки, чтобы получить вид, как на рис. 8.167. Выделим папку L_Arm (левая рука) и в окне менеджера атрибутов для параметра R.B (вращение в плоскости YX) создадим контроллер. Там же выделим правую руку R_Arm и для параметра R.B назначим Относительный драйвер (рис. 8.168). Создайте анимацию на основе двух-трех ключевых кадров (рис. 8.169) и запустите ее на просмотр. Обратите внимание, что назначение контроллера для одной из рук дает инверсное (не зеркальное) перемещение для второй руки. Так, положительные
значения параметра R.B вызывают перемещения левой (ведущей) руки вниз, в то время как для правой руки положительные значения параметра R.B вызывают ее перемещение вверх и обратно. То есть руки вращаются в одном направлении. Чтобы заставить руки перемещаться зеркально, откроем новую сцену, создадим персонаж Zygote Man,
откроем окно редактора XPresso и составим выражение, приведенное на рис. 8.170. Узел Negate меняет знак параметра Rotation B для левой руки на противоположный. Запишем анимацию на основе, например, следующих кадров (рис. 8.171).
Глава 9 Модули Thinking Particles и PyroCluster 9.1. Работа с модулем Thinking Particles
Emitter (рис. 9.5) увеличим значение параметра Birthrate Editor =10000 (рис. 9.3).
9.1.1. Основные объекты модуля Thinking Particles Модуль Thinking Particles позволяет создавать разного рода системы частиц, моделирующие и анимирующие скопления объектов, например, косяки рыб, стаи птиц, звезды. Основой модуля Thinking Particles является объект Emitter (эмиттер), испускающий потоки частиц.
Объект Emitter Создайте объект Emitter (рис. 9.1).
Запустите просмотр анимации, чтобы убедиться, что эмиттер действительно испускает частицы (рис. 9.2). Как видно из рис. 9.2, количество частиц, генерируемое по умолчанию, настолько мало, что не создается эффекта потока. В окне менеджера атрибутов
В качестве частиц может использоваться любой объект от примитива до источников освещения и объектов с иерархиями (например, модель человека Human Otto). Используемый объект достаточно расположить (в окне менеджера объектов) на дочернем уровне по отношению к эмиттеру, а в окне менеджера атрибутов поставить флажок Show Objects. На рис. 9.4—9.6 приведен пример с примитивом Torus (Тор). Частицы будут двигаться прямолинейно до тех пор, пока к ним не будут применены модификаторы
Rotation — задает угол, на который частицы будут поворачиваться за время своей видимости. End Scale — задает конечный размер частиц по отношению к первоначальному. Tangential — позволяет искривлять траекторию частиц. Show Objects — позволяет показать объекты, назначенные в качестве частиц. Рассмотрим параметры, собранные на закладке Emitter (рис. 9.7).
Emitter Type — задает вид испускаемого потока частиц: Cone (конус) или Pyramid (пирамида). X-Size — позволяет изменять размер испускающей поверхности эмиттера по оси 0Х (по умолчанию 100м). Y-Size — позволяет изменять размер испускающей поверхности эмиттера по оси 0Y (по умолчанию 100м). Angle Horizontal — задает угол вершины конуса (в плоскости XZ) (рис. 9.8).
(ветер, турбулентность, вращение, гравитация), которые заставят частицы замедляться, вращаться, отклоняться от прямолинейного пути. По умолчанию модификаторы работают в направлении координатной оси 0Z. Модификаторы могут группироваться друг с другом, создавая сложные эффекты. Рассмотрим параметры объекта Emitter на вкладке Particles в окне менеджера атрибутов (рис. 9.5). Birthrate Editor — задает количество частиц (для представления в окне проекций), испускаемых случайным образом со всей поверхности эмиттера за секунду. Birthrate Renderer — задает количество частиц (для рендеринга), испускаемых случайным образом со всей поверхности эмиттера за секунду. Visibility — количество видимых частиц. Этот параметр можно анимировать, в отличие от параметра Birthrate. Start Emission, Stop Emission — позволяет задать, на каком кадре начать эмиссию и на каком закончить. Seed — параметр со случайным значением, позволяющий создавать отличающиеся потоки частиц, например, для двух копий одного и того же эмиттера. LifeTime — задает количество кадров, на протяжении которых частицы сохраняют видимость. Speed — задает скорость частиц.
Angle Vertical — (только для Emitter Туре Ругаmid) задает один из углов вершины пирамиды (в плоскости YZ) (рис. 9.9).
Объект Attractor Attractor является гравитационным полем с вектором силы, направленным радиально (рис. 9.10).
Создайте объекты и расположите их имена в окне менеджера объектов, как показано на рис. 9.11. В окне менеджера атрибутов уменьшите диаметр сферы до 5 м.
Центры контейнеров аттрактора и эмиттера должны совпадать, а размеры аттрактора должны превосходить размеры эмиттера, чтобы все появляющиеся частицы оказывались внутри контейнера аттрактора (рис. 9.12). Значения параметров аттрактора приведены на рис. 9.13. Параметр Strength задает напряженность гравитационного поля, Speed Limit накладывает ограничение на скорость частиц, Size задает размеры контейнера. При данных значениях напряженности и скорости (рис. 9.13) частицы после возникновения будут оставаться на поверхности эмиттера. Если для аттрактора увеличить Speed Limit до 2000, а для эмиттера на вкладке Particle задать Speed = 2000, то частицы будут стягиваться к центру эмиттера (рис. 9.14). Подбирая значения параметров, можно организовать вихреобразное движение частиц. Знак параметра Strength задает направление вектора силы. В окне менеджера объектов удалите сферу (рис. 9.15).
Измените параметры эмиттера следующим образом (рис. 9.16). Теперь эмиттер будет испускать большое количество мелких частиц (BirthRate = 10000), а размеры испускающей плоскости будут соответствовать габаритам контейнера аттрактора (X-Size = 200, YSize = 200).
Изменим параметры аттрактора, как показано на рис. 9.17.
Объект Deflector Позволяет отражать от своей плоскости эмитируемые частицы (рис. 9.21).
Включим просмотр анимации. Большое количество мелких частиц будет отображать динамику процесса захвата частиц радиальным силовым полем аттрактора (рис. 9.18). Внутри окружности (окружность образуется потому, что поле радиальное) находятся неподвижные частицы, захваченные силовым полем аттрактора. Снаружи находятся нарождающиеся движущиеся частицы, до которых не достают силовые линии радиального гравитационного поля.
Если увеличить напряженность силового поля (рис. 9.19, параметр Strength = 1500), то количество захваченных полем частиц увеличится и радиус области неподвижных частиц возрастет (рис. 9.20).
Поставьте перед эмиттером дефлектор и настройте его размеры, чтобы ни одна из испускаемых частиц не проскакивала мимо. Частицы будут отскакивать от плоскости дефлектора, как резиновые мячики от стенки (рис. 9.22). Для параметра эмиттера Birthrate = 10000 частиц в сек. будет получена следующая картина (рис. 9.23). Параметр Elasticity (рис. 9.24) задает упругость поверхности дефлектора (чем выше значение Elasticity, тем дальше отлетают после столкновения частицы), а флажок Split Beam (расщепить поток) позволяет часть частиц пропустить сквозь плоскость дефлектора. Можно создать системы дефлекторов, перенаправляющих поток частиц. На рис. 9.25 созданы два дефлектора, причем второй повернут под углом 30° к плоскости первого.
Объект Destructor Служит для удаления частиц из потока. Настройка Randomness (Случайность) задает количество
удаленных частиц. При 0% все частицы уничтожаются. Обратите внимание, что при этом контейнер Destructor, имеющий форму куба, должен охватывать или перекрывать все выходящие из эмиттера частицы, иначе часть будет пролетать мимо и не уничтожаться. Размер контейнера в направлении потока частиц не влияет на степень поглощения частиц.
Объект Friction Позволяет либо снизить скорость частиц до их полной остановки, либо, если поменять знак параметра Strength на отрицательный, придавать частицам ускорение. Контейнер Friction имеет форму куба и воздействует только на те частицы, которые охватывает.
Объект Gravity Действует только в направлении оси 0Y (рис. 9.27). Параметр Acceleration (рис. 9.27) задает скорость и направление движения частиц под воздействием вертикально
направленного силового поля. Отрицательное значение параметра Acceleration направляет поток частиц в положительном направлении оси 0Y (вверх), положительное значение — вниз. Скорость потока частиц (значение параметра Speed для эмиттера) влияет на угол отклонения направления потока от вертикали.
Объект Rotation Позволяет добавлять тангенциальное ускорение к движению частиц. Параметр Angle Speed задает угловую скорость частицам потока. На рис 9.29 значение Angle Speed = 60.
Объект Turbulence Создает эффект кружения частиц. Задайте для эмиттера параметр BirthrateEditor = 10000 (рис. 9.30).
Запустите анимацию. У вас получится поток, как изображено на рис. 9.31.
Применим к этому потоку турбулентность (с вытянутым по ходу потока контейнером) (рис. 9.32). Возможна имитация дыма.
Объект Wind Изображается в виде пропеллера в контейнере. Желтая стрелка указывает направление, в котором дует ветер (рис. 9.33). В этом же направлении будет отклоняться поток частиц. Основных параметров два (рис. 9.34): Wind Speed — задает скорость ветра. Size — размер контейнера. Рассмотрим пример создания изображения искр от костра.
Для моделирования искр используем в качестве частиц источники освещения. Создадим эмиттер и источник освещения. В окне менеджера объектов разместим источник освещения на уровень подобъекта по отношению к эмиттеру (перетащив имя Light на имя Emitter) (рис. 9.36).
На вкладке General для объекта Light выставим следующие настройки (рис. 9.37): цвет, который должен быть огненным, параметр Visible Light и флажок No Light Radiation.
На вкладке Visibility выставите следующие значения (рис. 9.38). Для эмиттера выставите следующие параметры (рис. 9.39). Переместите движок шкалы анимации примерно на 30 кадр и сделайте рендеринг изображения (рис. 9.40). Рассмотрим пример моделирования каплеобразного тела. Используем в качестве частиц метаболы. Создадим три объекта (рис. 9.41, 9.42). — Emitter (эмиттер); — Sphere (сфера); — Metaball (метабол). На рис. 9.43 приведены значения параметров для сферы. На рис. 9.44 приведены значения параметров для эмиттера. На рис. 9.45 приведены значения параметров для метабола. Перетаскивая имена объектов (сферу перетащите на эмиттер, эмиттер — на метабол), разместите их в иерархию, как показано на рис. 9.46. Сделайте рендеринг изображения для выбранных вами кадров анимации (рис. 9.47). Изменим значение параметров метабола, увеличив число разбиений при рендеринге Render Subdivision (рис. 9.48). На рис. 9.49 приведено изображение кадра 54 при новом значении Render Subdivision.
9.1.2. Применение модуля XPresso при работе с Thinking Particles
показано на рис. 9.52. Запустите анимацию и убедитесь, что частицы испускаются до 45 кадра.
Создание визуальных эффектов с потоками частиц в Cinema 4D подразумевает использование возможностей модуля XPresso. Пример Рассмотрим пример создания движения группы частиц, к которым, как только они начинают разлетаться в стороны, применяется силовое поле, которое меняет направление их движения на противоположное, возвращая частицы к эмиттеру. Примем условие, что частицы испускаются эмиттером до 45 кадра анимации. Опишем процесс создания пошагово. Для справок об основных действиях в редакторе XPresso обратитесь к материалу соответствующей главы книги. 1. Открыв новую сцену, создадим Null Object (главное меню Objects -> Null Object) Нулевой объект нужен, чтобы приписать источнику частиц координаты (изначально генератор частиц, например, узел PStorm, не имеет координат). 2. Откроем окно редактора XPresso (например, через меню окна менеджера объектов File -> Cinema 4D Tags -> XPresso), затем откроем закладку X-Pool, затем папки System Operators, XPresso, General. 3. Создадим в окне редактора XPresso узел Time перетащите узел из группы General) с портом выхода Frame, на котором будет формироваться номер текущего кадра анимации. 4. Создайте узел Compare с функцией сравнения <= (выбирается в списке Function в окне менеджера атрибутов) и типом данных Real (рис. 9.50). На порт ввода Input 2 подадим 45 (рис. 9.50). Это число означает номер кадра, после которого (по условию задания) процесс испускания частиц должен прекратиться.
5. Соединим узлы, как показано на рис. 9.50. При таком соединении на вход Input 1 узла Compare подается номер текущего кадра анимации, и этот номер будет сравниваться со значением 45, поданным на вход Input 2. Если номер текущего кадра меньше или равен 45, то на выходе узла Compare будет сформирован сигнал, соответствующий значению True (Истина); если номер текущего кадра превысит 45, то на выходе сформируется False (Ложь). 6. В папке Thinking Particles в группе TPGenerator выберите узел PStorm (рис. 9.51). Узел моделирует эмиттер потока частиц. Перетащите этот узел на рабочее поле XGroup, создайте три следующих порта ввода: Emitter Position (определяет позицию эмиттера), Emitter Alignment (задает направление испускания частиц) и On. Соедините порт On с узлом Compare, как
7. Узел PStorm не имеет собственной системы координат. Чтобы задать значения на входы Emitter Position и Emitter Alignment узла PStorm, создадим узел Null Object (перетащив его значок из окна менеджера объектов) и сформируем у него два порта вывода Global Position (Coordinates -> Global Position -> Global Position) и Global Matrix. Соединим узлы, как показано на рис. 9.53. Таким образом, положение излучателя и направление испускания частиц будут задаваться расположением нуль-объекта. Так, направление испускания частиц будет совпадать с осью 0Z нульобъекта. 8. Выделим узел PStorm и в окне менеджера атрибутов зададим следующие характеристики (рис. 9.54). Здесь параметр Shot задает количество частиц, сгенерированное за один кадр. Запустите анимацию. Измените настройки и снова просмотрите анимацию, чтобы оценить влияние настроек. 9. Для достижения впечатляющих результатов при создании спецэффектов следует работать не с отдельными частицами и не с одной группой частиц, а с несколькими группами. Создание групп происходит с помощью диалогового окна Thinking Particles (разумные
Force this Setting — позволяет заменить глобальные настройки для всех групп частиц настройками для одной группы; Particles Groups — служит для создания, удаления и сортировки групп частиц, а также редактирования их настроек; группа с именем АН создается по умолчанию, и все созданные частицы будут объединены в группе All. Чтобы добавить новую группу, надо щелкнуть правой кнопкой на имени АН и из контекстного меню выбрать пункт Add (Добавить) (рис. 9.56). По умолчанию группе присваивается имя Group 1. Чтобы удалить группу, выберите из контекстного меню пункт Remove. Для изменения настроек группы выберите пункт Settings.
частицы) (рис. 9.55), которое вызывается из главного меню Plugins -> Thinking Particles -> Thinking Particles Settings. Откройте закладку General. Она содержит следующие параметры: Total — общее количество частиц, находящихся в настоящий момент в кадре анимации; Tree — количество частиц, имеющихся на данном уровне иерархической структуры (см. ниже); Group — количество частиц в выделенной группе; Max Particles — задает максимальное количество частиц, которое может быть сгенерировано; View Туре — форма представления частиц в процессе создания сцены (хлопья, точки, капли и т. п.); не влияет на форму частиц в процессе рендеринга; Show Objects — показывает выбранную форму частиц при создании сцены в окне проекций
Окно с настройками открывается щелчком по пункту контекстного меню Settings (рис. 9.56). К настройкам, которые можно отредактировать, относятся Name (Имя), Color (Цвет), View Туре (форма представления частиц в окне проекций: хлопья, точки, капли, кубики и т. д.) и Show Objects (рис. 9.57). Перейдем на закладку Channels (рис. 9.58), с помощью которой можно добавлять дополнительные пользовательские настройки группам частиц. На рис. 9.58 справа перечислены возможные типы данных. Например, необходимо добавить параметр глубина, имеющий действительный тип данных (Real). На рис. 9.59 показано, куда надо вводить информацию. Допускается использовать в качестве частиц объекты, например, примитивы. Для этого надо вначале создать объект Particle Geometry (в главном меню Plugins -> Thinking Particles -> Particle Geometry) (рис. 9.60).
Если щелкнуть по значку Particle Geometry, откроется окно менеджера Particle Geometry, где в поле Particle Group надо ввести имя для создаваемой группы, перетащив его из окна Thinking Particles (рис. 9.62).
Далее надо в окне проекций создать объект, например, примитив Sphere, и расположить его значок в окне менеджера объектов на дочерний уровень по отношению к объекту Particle Geometry (прижмите левой кнопкой мыши значок объекта Sphere и перетащить под значок Particle Geometry) (рис. 9.61).
Для данной задачи ограничимся созданием одной группы Group 1 и оставим диалоговое окно открытым (рис. 9.63). 10. Для узла PStorm создайте порт вывода Particles Birth. 11. Создайте узел PGroup (Thinking Particles -> TPStandart-> PGroup). 12. Узел PGroup позволяет собирать частицы в определенной группе. Нам надо собрать генерируемые частицы в группе Group 1 (по умолчанию все создаваемые частицы присваиваются группе АН). Для этого сделаем активным узел PGroup и перетащим (прижав левой кнопкой мыши) в окно менеджера атрибутов на поле PGroup название группы Group 1 из окна Thinking Particles Settings (рис. 9.64). В результате внутри узла PGroup появится имя Group 1.
менеджера атрибутов для узла PShape (рис. 9.67). Задайте значение параметра Bounding Radius 40. 16. Подсоедините узел PShape, как показано на рис. 9.68.
Если теперь соединить выход Particles Birth узла PStorm с входом Group 1 узла PGroup, то все создаваемые узлом PStorm частицы будут находиться в группе Group 1 (рис. 9.66). 13. Создайте объект — примитив Sphere и задайте радиус сферы 40. 14. Создайте узел PShape (Thinking Particles -> TPStandart -> PShape). Узел позволяет присваивать частицам форму выбранного объекта. Мы присвоим им форму примитива Sphere. 15. При активном узле PShape, перетащите имя Sphere из окна менеджера объектов в поле Object окна
17. Запустите анимацию и убедитесь, что генерируются сферические частицы (рис. 9.69). 18. Если у нас несколько групп частиц и им всем надо присвоить сферическую форму, то создайте объект Particle Geometry (в главном меню Plugins -> Thinking Particles) и перетащите в поле Particle Group имена групп из диалогового окна Thinking Particles Settings (рис. 9.70). Сделайте это и для нашего примера, хотя тут только одна группа. 19. Применим к генерируемым частицам внешнее силовое поле. Для направления всей группы частиц в узел, моделирующий силовое поле, например, PGravity, недостаточно просто соединить его с портом вывода Particles Birth узла PStorm. Дело в том, что порт вывода Particles Birth выдает не всю группу одновременно, а только те частицы, которые генерируются за длительность одного кадра, и силовое поле будет применено к каждой частице в отдельности, а не ко всей группе, как к целому. Чтобы перевести всю
группу в узел PGravity, следует применить конвертирующий узел PPass. Создайте узел PPass (Thinking Particles -> TP Initiator -> PPass) и перетащите в окно менеджера атрибутов имя группы Group 1 из окна Thinking Particles Settings (рис. 9.71). 20. Создайте узел PGravity (Thinking Particles -> TP Dynamic -> PGravity) и перетащите имя Null Object из окна менеджера объектов в поле Object менеджера атрибутов узла PGravity (рис. 9.72). Мы используем тот же самый Null Object, который использовали для эмиттера частиц. Таким образом, соединяем точку расположения эмиттера и силового поля (помещая частицы в силовое поле). Зададим также сферическую форму силового поля (параметру Туре задайте значение Spherical) (рис 9.72). 21. Соедините узлы, как показано на рис. 9.73.
22. Чтобы рассчитать расстояние, на которое частица отлетает от центра эмиттера, надо вычесть из координат отдельной частицы координаты центра эмиттера. Координаты отдельной частицы (в векторном выражении) можно получить с помощью узла PGetData (Thinking Particles -> TP Helper -> PGetData). Создайте этот узел, а также создайте на нем порт вывода Position. Для определения координат эмиттера частиц мы уже назначили объект Null Object. Поэтому просто перетащим его в окно редактора XPresso, создав узел Null Object с портом вывода Global Position (Coordinates -> Global Position -> Global Position). Чтобы произвести операцию вычитания координат, создадим узел MathAdd, настроив его функцию Substract (вычитание). Соедините узлы, как показано на рис. 9.74. (Остальная часть узлов, которые мы создали ранее,
находятся там же в окне редактора XPresso, но на рис. 9.74 не вошли.)
23. Для того чтобы рассчитать непосредственно эффект воздействия силового поля на траектории частиц, вылетающих из эмиттера, создайте узел Range Mapper (Calculate -> Range Mapper) и в окне менеджера атрибутов выберите тип данных Real (действительного типа) и поставьте флажок Use Spline (использовать сплайн) (рис. 9.75). Узел Range Mapper позволяет пересчитывать диапазоны значений. Так, если мы зададим в группе параметров Parameter исходный диапазон Input Lower (значение на входе — нижний предел) и Input Upper (значение на входе — верхний предел), то он будет преобразован в диапазон Output Lower (значение на выходе — нижний предел) и Output Upper (значение на выходе — верхний предел) (рис. 9.75). 24. Зададим значение параметров и форму сплайна, используя 4 точки (рис. 9.76). Сплайн будет задавать характер смены направления движения частицы при смене диапазона, когда параметр Input Upper достигает
своего предельного значения. Частица должна начать движение в обратном направлении при достижении X = 200 единиц. При этом параметр Y меняет знак на противоположный (рис. 9.76).
25. Создайте порт ввода Strength для узла PGravity и соедините узлы, как показано на рис. 9.77. Названия портов ввода для узла PGravity на узле не выведены (порт Strength — нижний). 26. Запустите анимацию и убедитесь, что частицы совершают следующее пульсирующее движение: вылетая из эмиттера на определенное расстояние, они возвращаются обратно, но и достигают эмиттера и движутся снова в направлении от него. Пример Требуется применить к частицам, созданным в предыдущем примере, один из деформаторов. 1. Имея загруженной сцену из предыдущего примера, вызовем деформатор по формуле (в главном меню Object -> Deformation -> Formula). 2. В окне менеджера объектов перетащите имя деформатора Formula на уровень подобъекта по отношению к объекту Particle Geometry (рис. 9.78). 3. Запустите анимацию и убедитесь, что все частицы деформировались (рис. 9.79). Основные группы узлов Thinking Particles, собранных в окне редактора XPresso, приведены на рис. 9.80. Большая часть этих узлов уже была применена в рассмотренных выше примерах. Поэтому дадим им лишь краткую характеристику.
Группа узлов IT Initiator (рис. 9.81) PPass — узел позволяет передавать целиком всю группу частиц на порт ввода другого узла. PPassAB — узел позволяет передавать две группы частиц на порт ввода другого узла.
Группа узлов TP Condition (рис. 9.82) Page — узел позволяет определять возраст частиц, а также какие частицы только что возникли, а какие только что исчезли.
Plight — узел позволяет управлять цветом и интенсивностью источника света.
Группа узлов TP Generator (рис. 9.83)
PBIurp — узел позволяет разбить объект на отдельные фрагменты и затем собрать его, соединив фрагменты по-другому. PBorn — узел служит для создания частиц. PDraw — узел позволяет рисовать частицы. Является для нарисованных частиц контейнером.
Пример С помощью частиц требуется нарисовать в окне проекций линию. 1. В окне редактора XPresso создайте узел PDraw (рис. 9.84).
2. В окне менеджера атрибутов откроется окно узла PDraw с набором параметров (рис. 9.84). Туре — задает местоположение нарисованных частиц относительно курсора. Если выбрать Point, то частицы будут нарисованы в точке, куда указывает курсор. Если выбрать Spherical, то частицы будут нарисованы внутри сферы, радиус которой задается в поле Radius, а в поле Count задается количество частиц, рисуемых за одно движение мыши. Draw Position — задает координаты расположения частиц в трехмерном пространстве. Life Time — задает время жизни частиц (в количестве кадров анимации). Life Variation — задает продолжительность жизни частиц в процентах от Life Time. Random Seed — начальное значение времени жизни в сек. Кнопка Remove — удаляет созданные частицы. Задайте значения этих параметров, как указано на рис. 9.84. 3. Выберите в главном меню Plugins инструмент TP ParticleDraw (рис. 9.85). 4. Удерживая нажатой клавишу Ctrl и левую кнопку мыши, нарисуйте частицы (рис. 9.86). Вернемся к рассмотрению узлов группы TP Generator. PFragment — узел позволяет раздробить частицу на фрагменты другой формы. Например, при фейерверке шарообразная частица преобразуется во множество звездообразных частиц. PmatterWaves — узел позволяет использовать источник света или (и) текстурную карту для управления количеством частиц, испускаемых поверхностью. Pstorm — узел создает эмиттер частиц. Применение узла было рассмотрено выше.
Группа узлов TP Standard (рис. 9.87) PAIignment — узел позволяет развернуть частицы в соответствии с направлением их движения. Например, если моделируется движение стаи птиц, то тела птиц должны быть сориентированы соответствующим образом (головой по направлению движения). Pdie — узел позволяет удалять частицы по прошествии определенного времени.
PGroup — узел служит для оформления созданных эмиттером частиц в виде группы. По умолчанию созданные частицы присваиваются группе АН, которая создается
автоматически. Чтобы присвоить группе с каким-то другим именем, эту группу надо предварительно создать (см выше). PMass — узел позволяет моделировать вес частиц. PRolling — узел моделирует эффект, когда создаваемые частицы катятся по поверхности. PScale — узел позволяет изменять форму частиц, масштабируя их по осям. PSetData — позволяет устанавливать значения параметров для частиц, принадлежащих какой-либо группе. Например, можно задать всем частицам группы направление движения. Выражение XPresso для этой задачи приведено на рис. 9.88.
На рис. 9.89, 9.90 приведены два примера изменения направления движения частиц с помощью задания координат вектора в узле Constant в поле Value не забудьте выбрать тип данных Vector).
PShape — позволяет придать частицам форму одного из примитивов, например, сферы (пример применения рассмотрен выше). PSize — задает размер частицам. PSpin — задает скорость вращения частиц и направление.
Группа узлов TP Dynamic (рис. 9.91) PBubble — узел позволяет задавать движение частиц в направлении, перпендикулярном основному направлению движения их потока (рис. 9.92, 9.93). PDeflector — узел позволяет моделировать столкновение частиц с неким объектом. PFreeze — моделирует торможение частиц. PFriction — моделирует силу трения частиц при их движении в среде. PGravity — моделирует воздействие на частицы силы гравитации. PMotionlnheritance — узел позволяет учесть влияние на характер движения частиц скорости вращения расположенного в окрестности объекта.
PPosition Follow — узел позволяет моделировать движение частиц к определенной точке (словно там помещен магнит) (рис. 9.94—9.96). PRepulse&Bounce — узел позволяет моделировать столкновение частиц друг с другом (рис. 9.97—9.99). Pvelocity — узел задает скорость частиц как длину вектора и направление движения частиц как угол наклона вектора. Данный узел имеет приоритет над остальными узлами, контролирующими скорость движения частиц.
XPresso-выражение приведено на рис. 9.100.
На рис. 9.101 приведены настройки параметров узла Pvelocity.
Change — задает параметр, который будет изменен (рис. 9.102). Это либо скорость и направление (Speed & Direction), либо только скорость (Speed), либо только направление (Direction).
Пример Создать поток частиц, движущихся в вертикальном направлении со скоростью 260 м/с.
Direction — задает координаты вектора скорости (направление движения частиц). В примере на рисунке задано направление по оси 0Y (вверх). На рис. 9.103 приведен результат. Speed — задает величину вектора скорости (значение скорости). Evaluation Туре — задает характер влияния на частицы изменения скорости и направления: частицы Новые значения скорости и направления либо заменяют предыдущие (Replace), либо складываются с предыдущими (Add), либо умножаются на них (Multiply). Флажок Per Second — задает частоту обращения к настройкам узла PVelocity. Если флажок сброшен, то обращение осуществляется в каждом кадре. PWind — узел позволяет создавать турбулентное силовое поле, сообщающее частицам хаотическое движение.
Пример Создать силовое поле, меняющее направление движения частиц. На рис. 9.104 приведено XPresso-выражение.
Для работы узла PWind необходим контейнер, в качестве которого можно выбрать, например, примитив Cube. Перетащите имя Cube из окна менеджера объектов в окно узла PWind в поле Object (рис. 9.105). Остальные параметры оставьте примерно такими же, как показано на рис. 9.105. Здесь: Туре — задает двумерное (Planar) или трехмерное (Spherical) представление потока частиц. Strength — задает напряженность поля, создаваемого узлом Pwind. Decay — величина ослабления силового поля в зависимости от расстояния. Значение 0 задает независимость напряженности силового поля от расстояния. Mass Dependence — задает степень влияния массы частиц на силу воздействия на них поля. Size Dependence — задает степень влияния размера частиц на силу воздействия на них поля. Turbulence — задает турбулентность потоку частиц. Не зависит от значения параметра Strength. Frequency — задает частоту, с которой частицы меняют направление своего движения. Structure Size — задает размер воображаемого пропеллера, вращение которого создает турбулентность.
Используя инструмент Rotate, поверните контейнер Cube, изменив тем самым направление силового поля (рис. 9.107).
Группа узлов TP Helper (рис. 9.108) PChronometer — узел позволяет устанавливать временные параметры для различных узлов.
Например, можно ускорить или замедлить ход времени для одного отдельного узла в цепочке узлов (в выражении XPresso). PGetData — узел позволяет получать (считывать) различные параметры частиц, например, координаты частиц. PGroup — узел обеспечивает дополнительный порт вывода. Полезен при переводе частиц из одной группы в другую. PSpinConvert — на входы узла подаются скорость вращения и ось вращения. На выходе формирует готовое значение спина частицы, которое может быть подано на порт ввода узла PSetData. PSurfacePositlon — узел позволяет создать эмиссию частиц с поверхности объекта. PTimer — узел создает таймер. PvelocltyConvert — служит для задания значения скорости частиц. PvolumePosition — для расчета координат частиц внутри некоторого объема.
9.2. Работа с модулем Pyro Cluster Для работы с модулем PyroCluster должно быть создано два специальных материала: PyroCluster — VolumeTracer и PyroCluster. Настройки PyroCluster VolumeTracer определяют характеристики рендеринга сцены со спецэффектами, а настройки материала PyroCluster ответственны за создание самих эффектов. Следует иметь в виду, что эффекты PyroCluster применяется только к уже созданной системе частиц, которая имеет свои настройки. Поэтому настройки PyroCluster (создание дыма, огня, эффекта облаков) будут неизбежно взаимодействовать с настройками системы частиц. Создайте объект Enviroment (окружение) (рис. 9.109). В окне менеджера материалов из меню File выберите PyroCluster — VolumeTracer, как показано на рис. 9.110.
Перетащите значок PyroCluster — VolumeTracer из окна менеджера материалов на значок Enviroment (рис. 9.111). Создадим материал PyroCluster с помощью меню File окна менеджера материалов (рис. 9.112). Создадим эмиттер частиц (рис. 9.113). Перетащим значок PyroCluster из окна менеджера материалов на значок эмиттера в окне менеджера объектов (рис. 9.114).
Рассмотрим настройки непосредственно самого материала PyroCluster. Начнем с вкладки Shape, с помощью которой можно задавать форму частицам. Щелкните на значке материала PyroCluster в окне менеджеров материалов и перейдите на вкладку Shape (рис. 9.117). В окне менеджера атрибутов материала PyroCluster выберите в списке Туре форму, которую будут иметь эмитируемые частицы, например, Torus (рис. 9.117), у которого можно задавать значения внутреннего и внешнего радиусов (Radius). Ниже приведены настройки вращения и масштабирования.
Доступ к настройкам PyroCluster — VolumeTracer можно получить либо дважды щелкнув на значке в окне менеджера материалов, чтобы появилось отдельное окно, либо после одиночного щелчка настройки появятся в окне менеджера атрибутов (рис. 9.115). Первые два флажка определяют объекты для рендеринга (Render Hidden Objects — рендеринг скрытых объектов). Render Mode — определяет метод рендеринга (рис. 9.116). Три первых метода производятся без вмешательства пользователя, а используя метод User, пользователь может непосредственно влиять на продолжительность рендеринга сцены, изменяя значения настроек. Настройки подразделяются на два типа Step Size и Trans Limit, оптимальные значения которых подбираются экспериментально.
Запустите просмотр анимации (рис. 9.118) Проследите, чтобы был установлен флажок Preview.
При выборе сферы ее можно трансформировать в полусферу при помощи флажка Use Hemisphere (рис. 9.119, 9.120).
Перейдем на закладку Illumination, оставив полусферическую форму частиц. На рис. 9.121—9.126 приведены настройки и результаты для различных значений параметра Mode. Преобразуем частицы в полусферические и перейдем на закладку Globals, которая позволяет задавать метод рендеринга и цвет частиц. Рассмотрим применение градиентов. Начнем с группы Color (рис. 9.127).
Чтобы открыть группу, щелкните на черном треугольнике слева от градиентной полосы (рис. 9.127). Прямоугольные фигурки под градиентной полосой называются градиентными узлами. Чтобы добавить такой узел, надо щелкнуть левой кнопкой мыши на свободном месте под градиентной полосой рядом с уже существующими узлами. Чтобы удалить такой узел, прижмите его левой кнопкой мыши и оттащите вниз или вверх. При перетаскивании узлов вправовлево будет меняться характер градиента. Ромбообразные фигуры на градиентной полосе (имеются только при первых четырех методах интерполяции) при их передвижении вправо-влево задают распределение цвета между узлами. Чтобы вызвать палитру и сменить цвет, дважды щелкните на градиентном узле и выдерите цвет (рис. 9.128). Чтобы сменить закон распределения цвета между узлами, следует выбрать метод интерполяции (рис. 9.129) Так, например, Cubic Knots использует метод интерполяции CatmullRom и оптимален для большого количества узлов, Cubic Bias — использует алгоритм
Безье и приемлем для небольшого количества узлов. Для изменения цветовой интенсивности узла, имеется настройка Intensity. Для изменения позиции узла и ромбообразного указателя, кроме простого их перетаскивания, существует счетчик Pos (рис. 9.128). Перейдем на вкладку Distance, параметры которой позволяют изменять размеры, цвет и яркость частиц
в зависимости от удаленности от источника частиц (эмиттера) (рис. 9.130, 9.131).
Глава 10. Модуль Dynamics 10.1. Классификация силовых полей В модуле Dynamics имеется возможность моделирования трех сил: гравитации (Gravity), трения (Drag) и ветра (Wind). Действие сил может либо распространяться на объекты всей сцены, либо быть ограничено геометрической формой (кубом, тором, конусом), за пределами которой силы не действуют. Действие сил на объект проявляется в ускорении или замедлении движения объекта вплоть до его полной остановки. Поля действует только на объекты, масса которых отлична от нуля. Поэтому, чтобы отключить действие поля на объект, надо задать его массу, равную 0. Выбор поля производится в меню Plugins -> Dynamics (рис. 10.1).
Как видно из меню, кроме значков силовых полей в группе имеется еще значок объекта Solver Object. Это объект, с создания которого надо начинать работу с полями. Именно в нем происходят все необходимые вычисления, связанные с воздействием полей. Значки силовых полей и объектов, к которым применены поля, следует располагать на дочерний уровень по отношению к уровню Solver Object. Например, если к примитиву Sphere требуется приложить силы гравитационного поля, то расположить объекты (в окне менеджера объектов) следует так, как показано на рис. 10.2. Следует отметить, что, кроме правильного расположения объектов, для Sphere (Сфера) следует соз-
дать тэг, например, Rigid Bogy Dynamic Tag, а также сделать объект Sphere редактируемым.
10.2. Объект Solver Object Как было показано выше, объект Solver Object работает в качестве контейнера для других объектов и силовых полей. К объекту, не помещенному на дочерний уровень по отношению к объекту Solver Object, действие силовых полей не применимо. Рассмотрим настройки объекта Solver Object (рис. 10.3). Содержимое закладок Basic и Coord очевидно. Начнем с закладки Main. Start Stop — задают соответственно номера кадров начала и конца анимации. Integration Method — задает численный метод решения дифференциальных уравнений, описывающих движение объектов в анимируемой сцене (рис. 10.4). Eule (метод Эйлера) — эффективен для расчета столкновений упругих тел. Midpoint — дает высокую скорость расчета при низкой точности. Runge—Kutta (метод Рунге—Кутта) — точность примерно в 10 раз превышает точность метода Midpoint, но быстродействие приблизительно в 4 раза ниже. Adaptive — наиболее точный и наименее быстрый метод.
Baking Layer — задает номер слоя. По умолчанию — 8 слоев.
10.3. Динамика упругих тел (Rigid body Dynamic)
Softbody — применяется для расчета кинематики мягких тел. Oversampling — параметр, задающий количество отрезков, на которые разбивается временной интервал (между двумя кадрами) в численных методах решения дифференциальных уравнений. Для методов Midpoint и Runge—Kutta чем больше отрезков, тем выше точность решения. Для метода Adaptive параметр Oversampling задает минимальное количество отрезков (максимальное — задается параметром Subsampling). Subsampling — параметр, значение которого задается только для метода Adaptive. Максимальное количество отрезков вычисляется умножением значения параметра Oversampling на значение параметра Subsampling. Общее количество отрезков будет меняться от кадра к кадру в зависимости от характера движения объекта. Например, в окрестности точки смены объектом направления движения интервал будет дробиться на максимальное количество отрезков, а при прямолинейном равномерном движении отрезков будет минимальное количество. Такой подход делает метод Adaptive наиболее точным. Energy loss — параметр, соответствующий потерям энергии при движении в реальном мире, например, потерям от трения. Перейдем на закладку Details.
Collision Eps — параметр, задающий расстояние от поверхности твердых тел, где находится граница, препятствующая взаимопроникновению тел при их столкновении. Collision Use Red Speed, Collision Red Speed — параметр, задающий глубину взаимопроникновения при перемещении одного предмета по поверхности другого. Baking Frame Step — параметр, задающий количество ключевых кадров для построения одного кадра анимации. Задайте 1, но если планируете в дальнейшем редактировать анимацию, то надо задать число ключевых кадров большее, чем единица.
Упругие тела при соударении не меняют своей формы. Чтобы задать упругое тело, надо щелкнуть правой кнопкой мыши по значку объекта и в появившемся контекстном меню выбрать Dynamics Tag -> Rigid Body Dynamic (рис. 10.6).
Рядом со значком объекта в окне менеджера объектов появится значок тэга Rigid Body Dynamic (рис. 10.7).
На рис. 10.8 приведено окно менеджера атрибутов для тэга Rigid Body Dynamic.
Рассмотрим содержание закладки Mass. Total mass — общая масса объекта, значение которой влияет на эффект от приложения силовых полей. При массе 0 воздействие силовых полей отсутствует. Rotational mass — масса вращения, выражается в процентах от общей массы. Чем выше масса, тем
большую силу надо приложить для изменения направления вращения. Center X, Center Y, Center Z — позволяют перемещать центр масс объекта. Координаты центра масс объекта обозначаются желтым крестом (рис. 10.9) и по умолчанию совпадают с геометрическим центром объекта.
списка, обеспечивающих расчет по моделям, более приближенным к реальным формам соударяющихся тел. Ellipsoid — объект заменяется эллипсоидом вращения и рассчитывается столкновение эллипсоидов. Метод более точен, чем предыдущее приближение. Full — при соударения расчет ведется для каждого полигона с учетом реальной формы тела. Метод наиболее точный, но требует максимального времени на выполнение. Elasticity — задает в процентах количество энергии, сохраненное телом после соударения. При значении меньше 100% тела после соударения остаются неподвижными, при равенстве и превышении 100% — тела отскакивают на тем большее расстояние, чем больше значение параметра превышает 100%. Рассмотрим параметры закладки Start (закладку Aerodynamics рассмотрим позже).
Include Children — флажок, позволяющий переносить параметры родительского объекта на дочерние объекты. Calc Mass Center — кнопка возвращает координаты центра масс в состояние по умолчанию. Рассмотрим содержание закладки Collision (Столкновение) (рис. 10.10).
Collision Detection — позволяет задать характер соударения тел (рис. 10.11).
None — при соударении тела, обладающие для этого достаточной энергией, проникнут (войдут) друг в друга. Если выбрать любой другой пункт из списка, то смоделируется упругий удар (тела отлетят в стороны без деформаций). Box — этот вариант обеспечит наибольшую скорость расчета, но при низкой точности. Объект заменяется параллелепипедом и рассчитывается столкновение параллелепипедов. Расстояние, на которое разлетаются тела, может существенно отличаться от результата, полученного при выборе других пунктов
Параметры этой закладки позволяют задавать начальные скорость объекта (v.X, v.Y, v.Z), силу, приложенную в начальный момент (на первом кадре анимации) (F.X, F.Y, F.Z), угловую скорость вращения объекта (w.H, w.P, w.B) и вращающий момент (I.X, I.Y, I.Z). Задача Создать сцену упругого соударения двух сфер.
Решение 1. Установите расчет анимации для всех кадров (Animation -> Frame Rate -> All Frames). 2. Выберите в главном меню Plugins -> Dynamics -> Solver Object и установите в окне менеджера атрибутов для Solver Object значения параметров, приведенные на рис. 10.13. 3. Создайте два примитива Sphere и разместите их на оси 0Х на некотором расстоянии друг от друга (рис. 10.14).
Пусть, например, для правой сферы координаты будут, как на рис. 10.15). Для левой сферы задайте координаты, как указано на рис. 10.16.
4. В окне менеджера объектов расположим сферы на дочерний уровень по отношению к Solver Object (рис. 10.17). 5. В окне менеджера объектов выделим обе сферы, удерживая клавишу Shift и, нажмем клавишу C (на лат.) (или Functions -> Made Editable), чтобы перевести объекты в режим Редактируемые (рис. 10.17). 6. Выделим обе сферы (удерживая клавишу Shift) и в контекстном меню (щелкнуть правой кнопкой мыши по значку сферы в окне менеджера объектов) выберем Dynamics Tags -> Rigid Body Dynamics. Справа от имен сфер появились соответствующие тэги (рис. 10.17).
7. В окне менеджера объектов щелкните (левой кнопкой мыши) по тэгу Rigid Body Dynamics Tags для правой сферы. В окне менеджера атрибутов войдите на вкладку Start и задайте для правой сферы начальную скорость v.X, равную -250 м/с (рис. 10.18). Обратите внимание, что значение скорости отрицательно, так как сфера должна двигаться вдоль оси 0Х в отрицательном направлении, чтобы встретиться с левой сферой, которая должна двигаться в положительном направлении вдоль оси 0Х. Задайте для левой сферы значение v.X, равное 250 м/с (рис. 10.18).
8. Для каждой из сфер откройте закладку Mass и убедитесь, что значение массы отлично от нуля (рис. 10.19). Задайте 1 в поле Total mass.
9. Перейдите на закладку Collision и задайте в поле Collision Detection значение None. Сделайте это для каждой сферы. Значение остальных параметров выставите, как указано на рис. 10.20.
10. Запустите просмотр анимации. Сферы должны сблизиться, войти друг в друга и остановиться (рис. 10.21). 11. На закладке Collision задайте в поле Collision Detection значение Box. Сделайте это для каждой сферы (рис. 10.22).
12. Запустите просмотр анимации. Сферы после соударения отскакивают в разные стороны на небольшое расстояние. 13. Увеличьте значение параметра Elasticity до 150% для каждой из сфер. Сферы после соударения будут разлетаться на значительно большее расстояние. Задайте другие значения для параметра Collision Detection и проверьте их работу. 14. В окне менеджера атрибутов для объекта Solver Object поменяйте метод расчета (Integration method) с Adaptive на, например, Euler (рис. 10.23).
и обратите внимание, что сферы отскакивают друг от друга, хотя визуально соударения не было. Вернемся к рассмотрению содержания закладки Aerodynamics (рис. 10.25). Эти параметры работают совместно с параметрами силового поля Wind (ветер), увеличивая их значения или уменьшая. Поэтому рассмотрим характеристики поля Wind.
10.4. Характеристики силового поля Wind Проведите подготовительную работу, создав поле Wind (Plugins ->Dynamics -> Wind), Solver Object, Cube и разместив эти объекты, как показано на рис. 10.26, слева.
Обратите внимание, как изменилось расстояние, на которое отскакивают сферы после соударения. Попробуйте применить другие методы расчета. 15. Измените значение параметра Energy Loss (рис. 10.23) с 5% на 3%. Таким образом, мы уменьшим потери энергии для сфер. В результате сферы разлетятся после соударения на значительно большее расстояние. 16. Измените значение параметра Collision Eps с 2-х на 60 (рис. 10.24). Удостоверьтесь, что значение параметра Collision Detection любое, но не None. Поставьте, например, Box. Запустите просмотр анимации
При воздействии на объект силовое поле Wind учитывает форму этого объекта и его расположение по отношению к силовым линиям поля. Для упрощения аэродинамических расчетов, которые при учете всех влияющих сил были бы слишком ресурсоемкими для компьютера, введено следующее упрощение. Все многообразие действующих на объект сил сведено к трем основным: сила лобового удара (Impact), сила трения, действующая вдоль поверхности (Drag), и подъемная сила (Lift). На рис. 10.26 справа приведены настройки параметров поля Wind на закладке Field. Mode — задает направление силовых линий поля. Возможны два варианта: Axial — силовые линии параллельны друг другу, Radial — силовые линии направлены по радиусу к центру силового поля. Strength — задает напряженность силового поля (силу, с какой «дует» ветер). Может быть отрицательной и положительной.
Direction X, Direction Y, Direction Z — задают направление вектора силы поля, то есть куда «дует» ветер. Эти значения связаны с координатами объекта, для которого задается таким образом траектория движения, когда он «сдувается» ветром. Drag Coeff — задает силу трения между поверхностью объекта и воздушными потоками. Impact Coeff—задает силу лобового удара воздушного потока о поверхность объекта: эта сила зависит от площади поверхности объекта и его скорости, относительно скорости набегающего воздушного потока. Lift Coeff — задает значение подъемной силы. Linear Coeff — учитывает влияние собственной линейной скорости объекта (то есть той скорости, с которой объект входит в воздушный поток) на результирующую скорость объекта в воздушном потоке. Angular Coeff — учитывает влияние угловой скорости объекта, с которой он входит в воздушный поток, на результирующую скорость объекта в воздушном потоке. Задача Смоделировать следующую сценку. Одна сфера под действием силы ветра сносится под углом 45° и упруго соударяется с другой сферой. Решение 1. Создайте заготовку сцены, как показано на рис. 10.27.
2. Одной из сфер присвойте нулевую массу и расположите ее со следующими координатами (рис. 10.28). Таким образом, эта сфера не будет подвержена воздействию силового поля ветра и будет расположена под углом 45° в плоскости XZ.
3. Задайте следующие настройки для поля Wind (рис. 10.29). Значения Direction Х=1 и Direction Z =1 создают направление вектора силового поля в плоскости XZ под 45°.
4. Задайте для обеих сфер параметры, приведенные на рис. 10.30.
5. Для объекта Solver Object задайте параметры, указанные на рис. 10.31. 6. Включите просмотр анимации и убедитесь, что одна сфера вылетает под углом 45° и упруго соударяется с другой сферой. Вернемся к закладке Aerodynamics (рис. 10.32). Флажок Double Sided — при сброшенном флажке поле будет воздействовать только на те полигоны поверхности объекта, направление нормалей к которым совпадает с направлением силовых линий поля; при
взведенном флажке воздействие поля распространяйся на все полигоны вне зависимости от ориентации нормалей к их поверхностям. Drag — параметр, определяющий силу трения воздушных масс о поверхность объекта, выражающуюся в торможении объекта. Impact — определяет величину лобового давления воздушных масс на поверхность объекта. Lift — задает величину подъемной силы. Linear — учитывает влияние собственной линейной скорости объекта, при его вхождении в воздушный поток. Angular — учитывает влияние собственной угловой скорости объекта при его попадании в воздушный поток. Меняйте значения параметров и наблюдайте за изменением в поведении объекта. Задача На рис. 10.33 приведены различные фазы сцены, когда одной сферой выстреливают по другой и сбивают ее с подставки в виде куба. Выстреливают сферой помощью силового поля Wind, наведя вектор поля на цель. Требуется создать анимацию, соответствующую приведенным ниже рисункам.
Решение 1. Создайте объекты, как показано на рис. 10.38. 2. Настройки для Solver Object приведены на рис. 10.39. Обратите внимание на значение параметра Collision Eps. 3. Настройки для Wind приведены на рис. 10.40. Обратите внимание, что силовому полю Wind придана
форма куба, чтобы оградить сферу-мишень от влияния ветра. 4. Задайте следующие настройки для обеих сфер (рис. 10.41).
5. Запустите просмотр анимации. Изменяйте пара метры и наблюдайте, как меняется поведение сфер.
10.5. Характеристики гравитационного поля (Gravity) Гравитационное силовое поле Gravity — наиболее часто используемое поле для решения различных задач кинематики. Рассмотрим характеристики поля. Подготовим объекты сцены, как показано на рис. 10.42 слева, и откроем окно менеджера атрибутов для поля Gravity (на рис. 10.42 справа).
Перейдем на закладку Shape, с помощью которой можно задать конфигурацию поля, придав ему вид пространственной геометрической фигуры (аналогичное свойство имеется для поля Wind). Список возможных вариантов приведен на рис. 10.42. При выборе Unlimited геометрическая конфигурация не задается и поле воздействует на все объекты сцены. Воздействие поля распространяется только на объект, находящийся внутри геометрической фигуры (если флажок Exclusion сброшен, рис. 10.42). Таким образом, можно пространственно ограничить область действия поля. Задача Исследовать для подготовленной выше сцены (рис. 10.42) воздействие геометрических форм гравитационного поля. Решение 1. Выберите на закладке Shape пункт Cube (рис. 10.43) и запустите просмотр анимации. Сфера
1. Движение объекта по окружности можно смоделировать, придав гравитационному полю форму тора (Torus) (рис. 10.47).
начнет движение вниз, имитирующее воздействие гравитации. 2. Отключите Solver Object (рис. 10.44).
3. Передвиньте сферу (используя координатный счетчик в окне менеджера атрибутов для объекта Sphere) в положительном направлении по оси 0Х (например, на 245 м), чтобы вывести ее из куба гравитационного поля (рис. 10.45).
4. Сохраните произведенные изменения, задав в главном меню инициализацию объекта (рис. 10.46). 5. Включите Solver Object, щелкнув на красном крестике в окне менеджера объектов (должна появиться зеленая галочка). 6. Запустите просмотр анимации. Убедитесь, что сфера не «падает», так как находится вне области действия гравитационного поля. Задача Смоделировать движение сферы по окружности. Решение
2. Используя приведенную выше заготовку сцены, разместим сферу внутри тора, Подгоночные размеры для тора и сферы приведены на рис. 10.48. Флажок Exclusion должен быть взведен. Это меняет на противоположное направление воздействие поля вне геометрической фигуры, представляющей форму поля. Таким образом, объект будет заперт внутри геометрической фигуры: как только сфера покидает тор, поле меняет направление на противоположное и сфера возвращается обратно вовнутрь. 3. Характеристики поля приведены на рис. 10.49. Направление воздействия поля должно быть радиальным (Radial).
Еще одной возможностью получения новых форм поля является параметр Sweep, задающий степень раскрытия формы, имеющей в своей основе окружность. Так, например, из цилиндра можно получить его половину (рис. 10.52), задав Sweep 180°.
4. Сфере надо придать начальную скорость, направленную по касательной к внутренней (внешней) окружности тора. В данном случае это составляющая скорости по оси 0Z v.Z (рис. 10.50). Значение скорости надо подобрать в зависимости от характеристик поля.
5. Запустите просмотр анимации. 6. При прочих неизменных параметрах (флажок Exclusion должен быть установлен), изменяйте форму поля последовательно на конус, сферу и цилиндр (рис. 10.51). Для каждой формы запустите просмотр анимации. Сбросьте флажок Exclusion и просмотрите анимацию. Отметьте различия.
Настройки Offset X, Offset Y и Offset Z позволяют сдвигать геометрическую фигуру относительно центра поля. Настройки Dimension X, Dimension Y, Dimension Z задают размеры геометрической фигуры. На закладке Falloff (рис. 10.53) собраны настройки, управляющие изменением величины напряженности поля в зависимости от удаленности от центра поля. Закон изменения напряженности выбирается из списка Falloff, а область действия задается значениями Inner Distance (Начальное значение расстояния) и Outer Distance (Конечное значение расстояния) — закон действует внутри этого интервала.
Задача Уменьшить по линейному закону силу воздействия гравитационного поля кубической формы на сферу в интервале от 35 до 85. Решение Выполнив рассмотренные выше подготовительные действия для создания сцены, устанавливаем заданные параметры на вкладке Falloff (рис. 10.54). Границы созданных областей будут обозначены зелеными эллипсами — по три эллипса на одну границу (рис. 10.55).
Запустим просмотр анимации. Сфера вылетает под углом 45° в плоскости XY (рис. 10.58).
Запустите просмотр анимации — сфера будет падать на меньшее расстояние, чем она падала без применения закона ослабления силы гравитации. На вкладке Field (рис. 10.56) задается тип силовых линий поля, напряженность поля и направление вектора поля. Последний параметр подразумевает, что гравитационное поле можно заставить действовать по направлению, отличному от традиционного.
При выборе Axial все силовые линии поля имеют одинаковое направление, задаваемое параметрами Direction X, Direction Y и Direction Z. Объект (или объекты) движутся именно в этом направлении. Задача Используя гравитационное поле кубической формы, заставить сферу вылетать вверх под углом 45° в плоскости XY. Решение Проделав подготовительные шаги по созданию сцены, установим следующие настройки для гравитационного поля (рис. 10.57).
При выборе типа силовых линий Radial, направление силовых линий будет определяться знаком числа, вводимого в поле Strength (Сила). При положительном значении силы линии будут направлены к центру поля и объект будет притягиваться к центру поля. При отрицательном значении — объект будет выталкиваться из поля вдоль оси 0Х. При этом центр объекта и центр координат поля Gravity не должны совпадать. При выборе силового поля Newton гравитационное поле (типа Radial) помещается внутрь каждого объекта, участвующего в сцене (находящегося на дочернем уровне по отношению к Solver Object). В этом случае решающую роль при взаимодействии объектов играет различие в величинах их масс. Тело, имеющее большую массу, притягивает тело с меньшей массой. Задача Смоделировать гравитационное взаимодействие между двумя сферами, отношение масс которых составляет 1:100 (тело с меньшей массой должно притягиваться к телу с большей массой). Решение 1. Создайте сцену с двумя сферами (рис. 10.59).
2. Задайте массы сфер соответственно 1 и 100 (рис. 10.60). 3. Чтобы смоделировать упругий удар, а не взаимопроникновение, задайте для обеих сфер параметр Collision Detection, равный, например, Box (рис. 10.61).
7. Запустите просмотр анимации. Сфера с массой 1 будет притягиваться к сфере с массой 100. 8. Поменяйте значения масс сфер — той, которая имела массу 1, присвойте 100, а той, которая имела массу 100, присвойте 1. Запустите анимацию.
10.6. Характеристики силового поля Drag (сила трения) Для создания реалистического движения следует добавлять силу трения, направление которой противоположно направлению движения объекта. Для учета сил трения предусмотрено поле сил Drag. В окне менеджера атрибутов для поля Drag содержание и назначение настроек аналогично настройкам для полей Gravity и Wind. Отличия имеются на закладке Field (рис. 10.64).
4. Задайте параметры гравитационного поля (рис. 10.62).
5. Задайте для объекта Solver Object параметр Collision Eps, определяющий величину зазора между объектами, при котором соударение считается произошедшим. Этот параметр задается на вкладке Details окна менеджера атрибутов для объекта Solver Object (рис. 10.63).
Параметр Mode задает характер движения объекта, на который влияют силы трения. Linear задает влияние сил трения только на прямолинейное движение объекта, a Angular — на криволинейное. Тип Axial позволяет направить вектор силы трения в одном из трех направлений осей координат, задавая значения (с учетом знака) для параметров Direction X, Direction Y и Direction Z. Если значение параметра Strength (значение силы трения) положительно, то движение объекта будет замедляться, если отрицательно — ускоряться. Задача Исследовать в режиме Axial влияние параметров поля Drag на движение объекта. Решение Подготовим сцену так, как показано на рис. 10.65. придав полю Drag форму куба. Зададим для сферы позицию на оси 0Х Р.Х = 167 м и отрицательное значение начальной скорости v.X = 250 м/с, заставив сферу двигаться к центру координат (рис. 10.66). Для поля Drag зададим следующие параметры (рис. 10.67). Обратите внимание, что параметр Direction X, задающий направление вектора поля по оси 0Х, имеет знак минус. То есть направление вектора поля Drag совпадает с направлением движения сферы (ее начальная скорость тоже отрицательна).
Задача Используя поля Gravity и Drag, создать для сферы замкнутую траекторию движения. Решение Подготовим сцену в соответствии с рис. 10.69 и 10.70, задействовав 4 гравитационных поля Gravity 1 — Gravity 4, одно поле сил трения Drag и одну сферу.
Запустите просмотр анимации. Сфера, войдя в поле сил трения, остановится. Измените знак значения параметра Strength на отрицательное (задайте -2). Сфере будет придано ускорение. Если установить флажок Only Drag, то, несмотря на отрицательное значение параметра Strength, движение объекта будет только замедляться. Задавая различные значения (отрицательные, положительные, отличные от 1) для параметров Direction X, Direction Y, Direction Z (при сброшенном флажке Only Drag и отрицательном значении Strength), исследуйте изменение траектории движения объекта (рис. 10.68). Рассмотренные поля можно объединять друг с другом, моделируя области пространства с различными свойствами и создавая пространство, неоднородное (анизотропное) по свойствам.
Габариты и расположение параллелепипедов полей Gravity произвольны, но зависят от направления вектора начальной скорости сферы (чтобы при своем движении сфера попадала внутрь параллелепипеда поля), от величины начальной скорости сферы и от напряженности полей. Ниже приведены значения параметров для работающего варианта. Дробные значения для удобства можно округлить, что непринципиально.
значение координаты вектора силы Direction Y -0,957 (можно задать -1). Для второго поля Gravity 2 вектор должен быть направлен в положительную сторону оси 0Х, поэтому задано Direction X = 1,055 (можно задать 1). Для третьего поля Gravity 3 направление положительное по оси 0Y и Direction Y = 1,001 (можно 1). Для четвертого поля — отрицательное направление по оси 0Х и Direction X = 1,001 (можно 1). Обратите внимание на значения сил (параметр Strength). От поля к полю, сила нарастает, что нужно для изменения направления траектории движения сферы. На выходе из четвертого поля сфера имеет слишком большую скорость и пролетает сквозь параллелепипед первого поля. Чтобы притормозить движение сферы на этом участке, на выходе из четвертого поля располагается параллелепипед поля сил трения Drag (рис. 10.70). Ниже приведены характеристики поля Drag.
Параметры для сферы приведены ниже (рис. 10.77).
В приведенных выше настройках обратите внимание на направление гравитационных полей, задаваемое группой параметров Direction. Чтобы организовать круговое движение, векторы полей должны быть направлены, как показано на рис. 10.75. Для первого поля сила гравитации направлена перпендикулярно вниз, что совпадает с отрицательным направлением по оси 0Y системы координат, поэтому в настройках (рис. 10.71) указано отрицательное
Запустите просмотр анимации. При количестве кадров 90 и скорости 24 кадра/с сфера успеет сделать два полных оборота против часовой стрелки по заданному контру.
10.7. Соединение упругих тел пружинами (Rigid Body Spring) Речь идет о моделировании поведения пружины, когда к ее концам приложены силы, растягивающие пружину в противоположных направлениях. В зависимости от величины сил и параметров самой пружины возможны три варианта: пружина после снятия сил возвращается в исходное состояние, пружина не возвращается в исходное состояние (произошла пластическая деформация) и пружина разрывается. Создать пружину можно двумя способами: с помощью диало-
гового окна Rigid Springs и с помощью инструмента RBS Draw Tool (сокращение RBS расшифровывается как Rigid Body Spring). Пружина может прикрепляться к любой точке объекта, и к одному объекту может быть прикреплено более одной пружины. Задача Смоделировать следующую сцену: одна сфера неподвижна, к ней на пружине прикреплена вторая сфера, которая падает под действием сил гравитации и попадает в воздушный поток, направленный горизонтально. Этот поток отбрасывает сферу, но пружина возвращает ее, создавая колебательные движения. Решение 1. Подготовим сцену, содержащую две сферы и объект Solver Object (рис. 10.78).
2. Присвоим Solver Object тэг Rigid Body Spring Tag (меню окна менеджера объектов File (рис. 10.79) или контекстное меню объекта Solver Object).
Значение -1 задается по умолчанию и означает центр масс объекта. Задавая положительный номер, вы задаете номер полигона на поверхности объекта, к которому крепится пружина. Задайте 0, 1, 2 и далее, щелкая всякий
3. В результате появится диалоговое окно Rigid Spring (рис. 10.80), используемое для создания пружин. Щелчок по кнопке Add создает одну пружину. Пружины снабжаются порядковыми номерами, начиная с номера 0 (рис. 10.81). Можно задать имя пружине в поле Name. Перетащите левой кнопкой мыши имена сфер из окна менеджера объектов в поля A и B диалогового окна Rigid Spring. Как только вы это сделаете, в окне проекций между сферами появится пружина красного цвета (рис. 10.81). В полях справа от имен сфер указаны цифры, определяющие точку крепления пружины к объекту.
раз на кнопке Refresh, чтобы изменения точки крепления вступили в силу и были видны в окне проекций. На рис. 10.83—10.85 приведены некоторые примеры. Не забывайте, что сферы должны быть переведены в полигональный вид (при выделенных сферах нажать клавишу C или выбрать в главном меню Function -> Make Editable).
Для пружины учитываются два состояния и соответствующие этим состояниям значения параметров. Значение параметров для сжатой пружины указывается словом Below, для растянутой пружины -Above. Меняйте значения below и above для значений жесткости пружины (Stiffness) и для коэффициента демпфирования (коэффициента затухания колебаний пружины) (Damp), наблюдая за изменениями внешнего вида и поведения пружины. Примеры приведены на рис. 10.87—10.89. Если поставить флажок Lock, то останется только верхний предел above. Если надо придать реализм движению затухания колебаний, значение параметра Damp предпочтительнее задавать от 0,1 до 0,5.
На вкладках Elastic, Plastic, Break приведены настройки параметров пружины в случае обычной деформации, когда пружина после снятия нагрузки возвращается в свое первоначальное состояние (вкладка Elastic), остаточной деформации, когда после снятия нагрузки деформация остается (вкладка Plastic) и в случае разрыва пружины (вкладка Break). Оставим пока эти настройки со значениями по умолчанию. Остановимся на соединении пружиной центров масс сфер. 4. Зададим массу левой сферы, равную 0 (чтобы она не была подвержена влиянию полей). 5. Добавим два поля Gravity и Wind. 6. Запустите просмотр анимации. Видно, что длина пружины в состоянии покоя Rest Length 100 м, заданная в диалоговом окне Rigid Springs в параметре Rest Length (рис. 10.86), недостаточна и сферы наплывают одна на другую. Снова вызовем это окно (двойным щелчком на тэге Rigid Body Spring Tag объекта Solver Object) и увеличим длину пружины до 300 м,
указав предел прикладываемой к пружине силы Limit Force 10000 (рис. 10.86).
Оставим следующие настройки (рис. 10.90). 7. Зададим полю Wind форму куба и разместим его, как показано на рис. 10.91, чтобы падающая сфера свободно входила в куб. Зададим направление вектора поля Wind по оси 0Х (навстречу сфере), а также подберем соответствующую силу поля Strength (рис. 10.92).
8. Запустите просмотр анимации и убедитесь, что задача решена. Создать пружину можно также с помощью инструмента RBS Draw Tool. При выделенном объекте Solver Object выберите инструмент RBS Draw Tool, как показано на рис. 10.93, и соедините две сферы (с нажатой левой кнопкой мыши). Пружина будет создана. Вернемся к диалоговому окну Rigid Springs (рис. 10.94) и рассмотрим параметры вкладки Plastic, где задаются условия возникновения остаточной деформации. Below и Above — относятся соответственно к состояниям сжатой и растянутой пружины.
Start At — параметр задает длину пружины, при которой начинаются остаточные деформации; задается в % от длины пружины в отпущенном состоянии (Rest Length). Например, если задано 200% для режима Above при длине пружины в ненагруженном состоянии 300 м, то остаточная деформация начнется при длине пружины в растянутом состоянии в 600 м. Stiffness х — задает жесткость пружины в состоянии остаточной деформации в процентах от жесткости в ненагруженном состоянии. Damping x — задает коэффициент затухания колебаний в процентах от значения коэффициента затухания для ненагруженного состояния. Drag — обеспечивает эффект торможения движения связанных пружиной объектов, в то время как сама пружина подвергается остаточной деформации. Рассмотрим содержимое закладки Break (рис. 10.95).
Флажки Below и Above относятся к состояниям сжатой и растянутой пружины. Start At — задает предельную длину пружины, при которой она необратимо разрушается. Задается в % от длины пружины в ненагруженном состоянии. Например, при длине ненагруженной пружины 30 м при значении Start At 400% разрыв наступит при длине 120 м. Флажок Angular позволяет создать спиральную пружину, для которой предусмотрены свои, во многом схожие с параметрами для обычной пружины параметры на вкладках окна Rigid Springs (рис. 10.96).
На вкладке, например, Elastic добавлены следующие параметры. Axis — задает направление оси закрутки спиралевидной пружины относительно направления движения объекта: Bank — ось совпадает с направлением движения; Heading — ось направлена вертикально вверх; Pitch — направлена вправо, если стоять лицом по направлению движения; Limit Torque — максимальное значение вращающего момента пружины.
10.8. Ограничения (Constraint) для упругого тела Ограничения позволяют задать некоторые дополнительные характеристики для кинематики объекта. Это могут быть, например, начальные координаты движения (не из центра координат, а из некоторой точки), первоначальный поворот объекта, постоянное вращение объекта. Ограничения будут обязательно выполнены в первую очередь, а затем применены воздействия на объект со стороны внешних силовых полей (например, Wind). Для присваивания объекту тэга Constraint, выберите в меню соответствующий пункт, как показано на рис. 10.97.
Содержание окна менеджера атрибутов зависит от того, какой тип выбран в поле Type: Joint (задает величину перемещения за время анимации по осям X, Y, Z и угол поворота объекта), Velocity (задает расстояние, на которое за время анимации переместится объект с постоянной скоростью) или Motor (задает угловую скорость вращения объекта в плоскостях XY, XZ, ZY) (рис. 10.98). Подготавливаем сцену, как показано на рис. 10.99. Запустите анимацию. Сфера будет перемещаться под действием смоделированной силы ветра из точки начала координат вдоль положительного направления оси 0Z. Если сфере добавить тэг Constraint, с настройками, приведенными на рис. 10.100, и запустить анимацию, то сфера вначале (в соответствии с ограничениями)
сдвинется из начала координат по оси 0Х на180 м,
а затем проследует вдоль оси 0Z под действием силы ветра. Если задать ограничение по Velocity (рис. 10.101), то траектория перемещения сферы под воздействием силы ветра отклонится от оси 0Z и переместится в плоскости XZ на некоторый угол (рис. 10.102). Чтобы сфера при движении еще и вращалась, надо выбрать ограничение типа Motor, задать ось вращения (Axis) и угловую скорость (Angle) (рис. 10.103). Для лучшего понимания трех направлений вращения увеличьте наглядность, присвоив сфере материал с понятным рисунком и задав небольшие значения угла Angle и Strength для поля Wind, чтобы сфера вращалась и перемещалась медленно.
10.9. Динамика пластичных объектов (Soft body) Для создания пластичного объекта необходимо: — создать Solver Object; — создать объект, например, примитив Plane, сделать его редактируемым, поместить его на дочерний уровень по отношению к Solver Object; — присвоить объекту Plane тэг Soft Body Spring (рис. 10.104).
от Min до Мах. Если задать соответственно 50 и 100, то для полигональной сетки объекта Plane получим схему соединения узлов пружинами, приведенную с увеличением на рис. 10.107.
Если увеличить диапазон охвата узлов, соединенных между собой, то получаемая сетка из пружин будет плотнее. На рис. 10.108 приведена сетка для Min = 150 и Мах = 200. На рис. 10.105 показано, как должно выглядеть окно менеджера объектов на данном этапе.
Теперь созданному объекту необходимо добавить пружины, которые, соединив узлы полигональной сетки объекта, сделают его пластичным. Добавление пружин производится через меню Plugins -> Dynamics -> Add Soft Springs. Появится диалоговое окно Add Soft Springs, в котором надо выбрать схему (Method) соединения узлов пружинами (рис. 10.106). MinMax — соединяет каждый узел полигональной сетки с окружающими узлами, лежащими в диапазоне
На рис. 10.109 приведена схема соединений для варианта Min = 50 и Мах = 200. АН — соединяет все узлы друг с другом по всей площади объекта. Будьте осторожны, так как при большом размере поверхности может произойти зависание программы.
Structural — соединяет узлы, через которые проходят ребра (рис. 10.110).
Shear — соединяет узлы, которые не соединены ребрами (рис. 10.111).
Flexion — соединяет каждый узел с соседним узлом соседнего узла. Придает определенную жесткость конструкции. Cloth — используется комбинация методов Flexion, Shear и Structural. Применяется для моделирования поведения ткани (одежда, флаг) (рис. 10.112).
Настраиваются с помощью диалогового окна Soft Body (рис. 10.113), в котором собраны параметры, аналогичные параметрам, рассмотренным выше для Rigid Body. Пример Смоделируем воздействие силового поля Wind (ветер) на пластичное тело сферической формы. 1. Создадим примитив Сфера, объект Solver (Plugins -> Dynamics -> Solver Object) и поле Wind (Plugins -> Dynamics -> Wind) (рис. 10.114).
2. В окне менеджера объектов разместим значки объекта Sphere и поля Wind как подобъекты Solver Object (рис. 10.115).
Переведите Sphere в полигональный вид и присвойте тэг Soft Body Dynamic (Dynamic Tags -> Soft Body Dynamic) (рис. 10.116). 4. В окне менеджера атрибутов на закладке Field (рис. 10.117) настроим параметры поля Wind (ветер). При выборе в поле Mode типа Axial вектор силового поля будет направлен по умолчанию вдоль оси 0Z и объект будет двигаться вдоль оси 0Z. Направление движения задается знаком перед числовым значением силы воздействия в поле Strength: при знаке минус — движение в отрицательном направлении вдоль оси 0Z, при знаке плюс — в положительном. С помощью параметров Direction X, Direction Y и Direction Z можно задавать произвольное направление вектора силового поля в пространстве.
Запустите анимацию. Сфера будет деформирована силой ветра (рис. 10.118). Добавим к узлам сферы пружины (рис. 10.119), чтобы сделать сферу пластичной. Выберем схему MinMax (рис. 10.120). Запустим анимацию. Теперь под воздействием ветра сфера пластично деформируется.
На рис. 10.121 в верхнем ряду показаны изображения после рендеринга, в нижнем — в окне проекций.
Глава 11. Модуль Sketch and Toon Модуль Sketch and Toon (Набросок и карикатура) позволяет создавать изображения в характерной технике наподобие мультипликационной. Рассмотрим два способа применения средств этого модуля к примитиву Figure.
4. Произведите рендеринг фигуры (выберите в главном меню Render -> Render View), и вы увидите на поверхности фигуры упрощенную схему светотени с различимыми межтоновыми границами (рис. 11.3).
Первый способ 1. Создайте примитив Figure. 2. В главном меню выберите Render -> Render Settings.
Обратите внимание, что в окне менеджера материалов появился соответствующий материал Sketch and Toon (рис. 11.4).
3. В появившемся диалоговом окне выберите в левом списке Effects и, когда сменится вкладка, откройте список Post Effect, где выберите пункт Sketch and Toon (рис. 11.2).
Второй способ 1. Создав примитив Figure, выберите в меню File окна менеджера материалов пункт Sketch Material (рис. 11.5). В результате будет создан материал Sketch Material (рис. 11.4). 2. В окне менеджера атрибутов представлено 6 закладок для настроек свойств созданного материала. Настройте, например, цвет материала (рис. 11.6). 3. Присвойте созданный материал фигуре (прижмите левой кнопкой мыши значок материала в окне менеджера материалов и перетащите его на фигуру в
окне проекций) (рис. 11.6). В окне менеджера объектов появится тэг Sketch Style Tag (рис. 11.7). 4. Откройте окно свойств тэга Sketch Style Tag (рис. 11.8). Откройте закладку Lines, где задается материал для представления видимых (Default Visible) и невидимых (Default Hidden) (по умолчанию) линий на объекте. В данном случае выбран только материал для видимых линий, поэтому невидимые линии на рисунке отображены не будут. 5. Дважды щелкните по пиктограмме материала в окне менеджера материалов и в появившемся диалоговом окне измените значение параметров Color (Цвет) и Thickness (Толщину) линий (рис. 11.9). После рендеринга получится изображение, приведенное на рис. 11.10. Верните объекту Figure первоначальные цвет и толщину линий. Пример Показать невидимые линии объекта синим цветом. 1. Продолжая сделанное в предыдущем примере, переименуем материал в Видимые линии. Для этого дважды щелкните на значке материала в окне менеджера материалов. В окне менеджера атрибутов в поле Name введите новое имя (рис. 11.11). 2. Создадим второй материал того же типа Sketch Material и в окне менеджера атрибутов на закладке
6. В окне менеджера объектов щелкните по тэгу Sketch Style Tag (рис. 11.16). 7. В открывшемся окне свойств тэга Sketch Style Tag перейдите на закладку Lines (рис. 11.17).
Basic переименуем его в Невидимые линии (рис. 11.12). 3. Дважды щелкните на значке материала для видимых линий в окне менеджера материалов. В открывшемся окне менеджера атрибутов на закладке Color измените цвет материала на красный (рис. 11.13).
5. Задайте синий цвет для невидимых линий (рис. 11.14).
В том же окне на закладке Strokes измените вид линии на пунктирный (выберите в списке Туре тип Dotted) (рис. 11.15).
8. В поле Default Visible уже указан созданный нами материал Видимые линии (так как ранее мы перетащили его значок на фигуру). Чтобы заполнить пустующее поле для невидимых линий (Default Hidden), перетащите туда (прижав левой кнопкой мыши) из окна менеджера материалов значок материала Невидимые линии (рис. 11.18).
9. Произведите рендеринг сцены (Render -> Render view). Результат в увеличенном виде представлен на рис. 11.19.
10. Самостоятельно создайте изображение видимых и невидимых линий разного цвета для 4-х геометрических фигур, изображенных на рис. 11.20.
Материалы для видимых и невидимых линий составьте один раз по аналогии с рассмотренным примером. Раскрывая окна тэгов для каждого объекта, перетаскивайте материал для невидимых линий. Сделайте рендеринг. Возможный результат приведен на рис. 11.22.
Можно сделать более плавную градацию светотени на поверхности объекта. Для этого в окне Render Settings на закладке Shading в поле Quantize введите большее, чем было, значение параметра, например, 25. Этот параметр задает количество светлых и темных полос на поверхности объекта. Вид после рендеринга приведен на рис. 11.24. Подобная возможность мягкой градации тонов распространяется и на работу с цветом при создании цветовых
переходов от более темного к более светлому месту на поверхности. Автоматические настройки модуля Sketch and Toon приведены в диалоговом окне Preferences (рис. 11.25). Правильная их установка позволит значительно повысить эффективность работы с модулем.
Основные настройки модуля Sketch and Toon также собраны в диалоговом окне Render Settings в разделе Post Effect. Создайте объект, например, примитив Pyramid. Войдите в меню File окна менеджера объектов и выберите пункты, как показано на рис. 11.26 (Sketch Tags -> Sketch Style). В результате в окне менеджера материалов будет создан новый материал Sketch and Toon, а в окне менеджера объектов появится тэг Sketch Style Tag. Откройте окно менеджера атрибутов для тэга Sketch Style Tag (рис. 11.27). Есть еще один способ вызова диалогового окна с настройками Post Effect. Создав объект, например, примитив Pyramid, в главном меню выберите Render > Render Settings. В левом списке появившегося диалогового окна Render Settings выберите Effects, а
затем в верхнем правом списке Post Effect выберите Sketch and Toon (рис. 11.28). И еще один способ вызова окна с настройками Post Effects. Щелкните на пиктограмме
Edit Render Settings, расположенной на горизонтальной панели инструментов. Рассмотрим назначение каждой из 6-ти закладок окна свойств Post Effects, а также содержащихся в них пунктов. Пункт Basic содержит название модуля (рис. 11.30).
Пункт Main позволяет загружать (кнопка Load Style) и сохранять (кнопка Save Style) графические материалы (рис. 11.31).
Пункт Lines позволяет выполнять множество важных операций. В группе Types собраны флажки, позволяющие выбирать, какие линии в каких случаях следует показать (рис. 11.32).
2. Создадим обычный материал со значением Transparency (прозрачности) 80% и присвоим этот материал примитиву Tube (перетащив значок материала из окна менеджера материалов на объект Tube). 3. Создадим материал Sketch Material, переименуем его в Линии, убедимся, что он черного цвета (свойство Color), и присвоим его примитиву Tube. В окне менеджера объектов появился тэг Sketch Style Tag (рис. 11.34).
4. Щелкнем на тэге Sketch Style Tag и откроем окно менеджера атрибутов для его свойств (рис. 11.35). В поле Default Visible уже находится значок материала. Перетащим в поле Default Hidden значок материала Линии (из окна менеджера материалов) так, чтобы в полях Default Visible и Default Hidden был одинаковый материал. 5. Поставим флажок в группе Types на Outline — линии контура (рис. 11.35). 6. Отключим режим тонировщика, вызвав окно Render
Пример Исследуем на примере примитива Tube возможности группы Types. 1. Создадим примитив Tube со значениями параметров, приведенными на рис. 11.33.
Settings (рис. 11.36) (щелкните на
пиктограмме ). Перейдем на закладку Shading и в списке Object выберем Off. 7. Сделаем рендеринг. Результат (флажок Outline установлен) приведен на рис. 11.37.
8. На рис. 11.38 приведены результаты для других флажков (при условии, что, когда установлен один флажок, остальные флажки сброшены).
Задача Построить линию сечения тора конусом. Решение 1. Создадим два примитива Torus (Тор) и Cone (Конус). Расположим их друг относительно друга, чтобы образовалось сечение тора конусом (рис. 11.43).
2. В окне менеджера материалов создадим два обычных материала, назначим им различные цвета и присвоим их соответственно тору и конусу (рис. 11.43). 3. Создадим 2 материала Sketch Material для рисования видимых и невидимых линий сечений и фигур. Переименуем эти материалы соответственно как Невидимая линия и Видимая линия. 4. Назначим материалу Видимая линия красную непрерывную линию (чтобы открыть окно редактора материала Material Editor, дважды щелкните по значку в окне менеджера материалов) (рис. 11.44). 5. Назначим материалу Невидимая линия белый пунктир (рис. 1-1.45). 6. Перетащите из окна менеджера материалов значок материала Видимая линия в окно менеджера объектов и бросьте его на значок секущего объекта — в нашем случае это конус (рис. 11.46).
В результате этой операции у значка конуса появится тэг Sketch Style Tag и будет автоматически открыто окно менеджера атрибутов для Sketch Style Tag на вкладке Lines (рис. 11.47). 7. Поле Default Hidden пока пусто, так как мы перетащили только материал для рисования видимых линий. Поэтому перетащим значок Невидимая линия из окна менеджера материалов в поле Default Hidden. 8. В группе флажков Types поставим флажок Intersections (пересечения), а в списке Objects выберем Scene.
9. Произведем рендеринг сцены (главное меню Render -> Render View или две клавиши Ctrl+ R) На рис. 11.48 приведены изображения сечения тора конусом, представленные в увеличенном виде под разными углами зрения. Задача Получить сечение пирамиды плоскостью. Решение Задача отличается от предыдущей тем, что секущий объект (плоскость) должен быть прозрачным. 1. Создадим два примитива Pyramid и Plane и расположим их с помощью инструмента Rotate Tool так, как показано на рис. 11.49. 2. Создадим два обычных материала, переименуем их как Пирамида и Плоскость, назначим им цвета и присвоим соответственно пирамиде и плоскости (перетащив
объектов на имя объекта Plane. В результате рядом с именем Plane появится тэг Sketch Style Tag и откроется одноименное окно менеджера атрибутов (рис. 11.53). левой кнопкой мыши значки материалов из окна менеджера материалов на пирамиду и плоскость). Для материала плоскости зададим свойству Transparency (прозрачность), например, 70%. Произведите рендеринг и убедитесь, что плоскость прозрачна (рис. 11.50). 3. Создадим два материала Sketch Material, переименуем их соответственно как Видимые линии и Невидимые линии. Для материала Видимые линии назначим черную сплошную линию (рис. 11.51). Для материала Невидимые линии назначим красную пунктирную линию (рис. 11.52). 4. Перетащим значок материала Видимые линии из окна менеджера материалов в окно менеджера
5. Как в предыдущем примере, в поле Default Hidden перетащим значок материала Невидимые линии, поставим флажок Intersections и выберем в списке Objects пункт Scene. 6. Сделайте рендеринг сцены (рис. 11.54).
Недостатком изображения является непрозрачность объекта Plane несмотря на то, что свойству материала Transparency (Прозрачность) было присвоено значение 70%. Непрозрачность материала при рендеринге происходит от того, что включен тонировщик. Чтобы его выключить и сделать материал настолько прозрачным, насколько было задано в свойстве Transparency, надо щелкнуть по пиктограмме Edit Render Settings . В результате будет представлено диалоговое окно Render Settings (рис. 11.55), в котором надо войти на закладку Shading и в списке Object выбрать Off (это означает отключить тонировщик). 6. Сделайте повторный рендеринг. На этот раз материал плоскости прозрачен и прорисованы контуры сечения (рис. 11.56).
Глава 12. Модуль МОССА 12.1. Панель инструментов Мосса Для работы с модулем Мосса следует настроить интерфейс, выбрав в главном меню Window -> Layout -> Мосса (рис. 12.1). Можно также воспользоваться пиктограммой (в левом верхнем углу на вертикальной панели инструментов) Revert to Default Layout, выбрав в выпадающем списке Мосса. В результате добавятся специализированная панель инструментов Мосса и панель хронографа рис. 12.2). Чтобы вызвать только панель инструментов Мосса, следует выбрать в главном меню Plugins -> Мосса -> Мосса Palette (рис. 12.3).
Инструменты Мосса позволяют управлять деформатором Bone (кость) максимально эффективно. Для этого надо присвоить деформатору Bone тэг Мосса IK. Создайте деформатор Bone. Щелкните правой кнопкой мыши по имени Bone в окне менеджера объектов
и из контекстного меню выберите Мосса Tags -> Мосса IK. Тэг может выглядеть по-разному в зависимости от настроек параметров, которые приведены на рис. 12.5.
Флажок Use IK — позволяет включать или отключать механизм обратной кинематики (сокращенно IK — Inverse kinematics). Отличие обратной кинематики от естественной (прямой) заключается в направлении, в котором производится анимация. В естественной кинематике движение, например, ноги развивается от бедра, передается через колено в голень, затем в стопу. Используя естественную кинематику, трудно поставить стопу в нужное место. В обратной кинематике порядок развития движения обратный. В примере с ногой мы перемещаем вначале в нужное место именно стопу, а голень и бедро автоматически передвигаются вслед за стопой. Создадим иерархическую цепочку костей (рис. 12.6).
Выделим одну из костей и через меню Tools -> Inverse Kinematics (или щелкнув по пиктограмме на левой панели инструментов ) перейдем в режим обратной кинематики. При этом на выделенной кости появится инструмент Inverse Kinematics в виде разноцветных орбит (рис. 12.7). Если в менеджере объектов выделить другую кость, инструмент переместится на вновь выделенную кость. Разместите инструмент Inverse Kinematics на младшей кости. Удерживая нажатой левую кнопку мыши (курсор при этом может находиться в любой точке
окна проекций, но только не на орбитах инструмента Inverse Kinematics), подвигайте мышью. Вы увидите, что синхронно с мышью перемещается младшая кость, а вслед за ней двигаются и старшие кости, что в режиме прямой кинематики исключено. Обратите также внимание, что самая старшая кость лишь поворачивается вокруг точки своего основания, но не перемещается. Она задает центр (якорь), вокруг которого вращаются и перемещаются кости цепочки. Проиллюстрируем работу Inverse Kinematics на примитиве Figure (манекен). Переведите Figure в полигональное состояние. В окне менеджера объектов выделите Left Hand (левая кисть) (рис. 12.8) и включите (как было показано выше) режим Inverse Kinematics.
На левой кисти Figure появится изображение инструмента Inverse Kinematics (рис. 12.9). Чтобы вращать кисть, следует навести курсор на одну из орбит инструмента Inverse Kinematics — орбита изменит свой цвет на желтый. Прижав левую кнопку мыши на орбите, двигайте курсор в соответствующем направлении — кисть будет следовать движению курсора. Но эффект обратной кинематики от вращения кисти заметен не будет. Чтобы эффект обратной кинематики проявился, надо перемещать кисть, например, передвинуть кисть к какой-либо цели. Для этого следует прижать левую кнопку мыши в любой точке окна про-
екций и двигать курсор в нужном направлении. Рука целиком будет реагировать на перемещение кисти. Выполним задачу точного прикосновения кисти манекена к цилиндру (рис. 12.10). С помощью обратной
Параметр Strength задает силу, с которой кости, составляющие скелет, взаимодействуют друг с другом.
кинематики достаточно подвести кисть к цилиндру, и все кости последуют за кистью, в то время, как используя прямую кинематику при перемещении всей руки от плеча, попасть кистью в цилиндр было бы значительно труднее.
Проделайте тоже самое с любой другой частью тела манекена Figure, например, со стопой, решая задачу постановки ноги на ступеньку. Флажок Anchor — позволяет задать в цепочке костей корневую. Корневая кость должна оставаться неподвижной при перемещении остальных костей. В скелете неподвижные кости — бедра. Рассмотрите, например, структуру Zygote Men (рис. 12.12). Там корневая кость — Hips, она имеет тэг Anchor Tag в виде якоря. То есть при перемещении стопы и голени берцовая кость только вращается, но точка вращения не перемещается. Ниже приведены параметры, доступные при установленном флажке Anchor. При установке этого флажка вид значка тэга Мосса IK изменится на . Флажок Hard IK — в установленном состоянии переключает режим медленной кинематики (Soft IK) на режим быстрой кинематики (Hard IK).
Чем выше значение этого параметра, тем точнее движение. Флажок Dynamics — в установленном состоянии делает доступными для изменений следующие параметры, характеризующие динамику объекта. Speed — скорость просмотра анимации. Персонаж может двигаться быстро или медленно. Drag — задает сопротивление перемещению дочерних костей при перемещении родительской кости. Gravity — задает значение силы, направленной вертикально вниз. Inertia — задает силу инерции, возникающую при вращении цепочки костей. При этом углы, которые составляют
объект. Свойства инструмента собраны в диалоговом окне Bone Mirror (рис. 12.17).
кости по отношению друг к другу, могут изменяться. Если флажок Anchor не установлен, то становятся доступными следующие параметры (рис. 12.14). Шкала с ползунком IK < — > FK позволяет плавно переходить от режима обратной кинематики (IK) к режиму прямой кинематики (FK).
12.2. Инструмент Bone tool На рис 12.15 приведены команды, выполняемые инструментом Bone tool.
Add Tool — добавляет новую кость в начало координат. Add Child Bone — добавляет дочернюю кость для выделенной кости. Split Bone — делит выделенную кость пополам, создавая из одной кости две равновеликих (рис. 12.16).
Add/Update Null Bone — добавляет в цепочку костей нулевую кость, длина которой и сила воздействия на объект равны нулю. Нулевая кость не влияет на геометрию объекта и не разрушает цепочку (нульобъект бы разрушил).
12.3. Инструмент Bone Mirror Инструмент позволяет строить зеркальное отражение цепочки костей. Таким образом создается новый
Plane — задает плоскость (в координатах XY, XZ, ZY), относительно которой строится зеркальное отражение. Представьте зеркало, у поверхности которого располагается предмет. Плоскость поверхности зеркала и будет плоскостью Plane. Origin — позволяет учитывать расположение осей локальной системы координат цепочки костей и глобальной системы координат при расположение плоскости Plane. Если выбран пункт Selected — плоскость Plane ориентирована в соответствии с расположением осей локальной системы координат выделенной кости. На рис. 12.18 локальная система координат исходной цепочки костей повернута и не совпадает с расположением осей глобальной системы координат. Ориентация плоскости Plane определяется расположением осей выделенной кости. При выборе пункта Parent расположение плоскости Plane задается ориентацией локальной системы координат родительской кости (родительская кость находится на уровень выше относительно выделенной кости), а в случае выбора пункта Top Most — ориентацией корневой кости всей цепочки. При выборе пункта World — используется ориентация осей глобальной системы координат.
Флажок Auto Find Center — позволяет с высокой точностью располагать в зеркальной копии установленные для исходных костей области их влияния на объект (области влияния для исходных костей могут быть установлены, например, с помощью инструмента Claude Bonet). Match Search — задает допуски на точность для Auto Find Center. Слишком низкие значения дают неудовлетворительные результаты. Prefix, Suffix — задают префикс и суффикс в имени зеркальной копии (рис. 12.19). В главном меню вызовите Plugins -> МОССА -> Claude Bonet. На рис. 12.21 приведено окно менеджера атрибутов с параметрами Claude Bonet.
Replace ... with — позволяет переименовать зеркальную копию. Флажок Clone Tags — в установленном состоянии позволяет скопировать в зеркальную копию все тэги исходных костей. Флажок Clone Animation — позволяет скопировать в зеркальную копию анимационные треки, которые имеют исходные кости. Флажок Mirror Children — позволяет скопировать в зеркальную копию все кости, находящиеся на нижних уровнях (дочерние кости) по отношению к выделенной кости. Флажок Mirror Constraints (в окне менеджера атрибутов на вкладке Constraints) — ограничения, наложенные на исходную кость (в окне менеджера атрибутов на вкладке Constraints). Флажок Mirror Influences — позволяет скопировать в зеркальную копию все параметры влияния костей на объект. В частности, это области, закрашенные с помощью инструмента Claude Bonet.
12.4. Инструмент Claude Bonet Позволяет задавать размер области влияния кости на объект и силу влияния путем закрашивания объекта определенным цветом. Создайте сцену из объектов, указанных на рис. 12.20. Кости должны быть сцентрированы с осью цилиндра и привязаны к нему (команда Fix Bones из контекстного меню родительской кости). Цилиндр должен быть переведен в полигональное состояние.
Установив диаметр кисти (параметр Radius) и силу ее нажатия (параметр Strength), выделите родительскую кость и закрасьте цилиндр (рис. 12.22), задавая тем самым область влияния выделенной кости. Чтобы убрать закраску, повторно проведите кистью по объекту, удерживая нажатой клавишу Ctrl. Остальные параметры имеют следующий смысл. Only Modify Visible Elements — при установленном флажке можно раскрашивать только видимые элементы; невидимые — недоступны. Display All Bones — показывает другим цветом области влияния остальных (помимо выделенной) костей. Paint Absolute — при сброшенном флажке закраска и стирание закраски производятся послойно (каждый последующий мазок добавляет или уменьшает закраску на величину, установленную в параметре Strength); при установленном флажке послойность отменяется и закраска производится только на величину, заданную в параметре Strength. Force Shading — при установленном флажке ускоряет отображение закрашенных областей поверхности.
Set Reference — позволяет использовать установленные области влияния одной кости для других костей. Remove Paint (This Bone) — уничтожает закрашенные области влияния (карту весов) выделенной кости. Remove Paint (Hierarchy) — уничтожает закрашенные области влияния для всей иерархической цепочки костей (например, для всех костей ноги). Remove Paint (Scene) — уничтожает закрашенные области влияния для всех костей, использованных в данной сцене.
12.5. Инструмент Setup IK Chain Относится к командам обратной кинематики, перечисленным также в меню Plugins -> Мосса (рис. 12.23).
Инструмент позволяет перевести цепочку костей в режим обратной кинематики. Необходимо выделить родительскую кость и вызвать команду Setup IK Chain. На рис. 12.24 приведено окно менеджера объектов после применения команды Setup IK Chain к цепочке из трех костей. Как видно, кроме исходных костей появились два нуль-объекта Bone Tip Goal и Bone Tip Effector. Родительская кость получила якорь (рис. 12.24). Для работы в режиме обратной кинематики выделите в окне менеджера объектов Bone Tip Goal. В окне проекций в синем 6-угольнике появятся оси локальной системы координат (если выделить в окне менеджера
объектов Bone Tip Effector, то в 6-угольнике появятся оси глобальной системы координат, которые могут иметь другую ориентацию) (рис. 12.25). Прижмите левой кнопкой мыши любую точку в окне проекций и перемещайте курсор по окну проекций. Родительская кость будет оставаться неподвижной, а дочерние кости будут следовать за перемещением курсора, что иллюстрирует принцип обратной кинематики (рис. 12.26).
12.6. Инструмент Add Anchor Добавляет якорь выделенной кости. То есть теперь кость будет оставаться неподвижной в течение действий обратной кинематики. У персонажа это берцовые ости.
12.7. Инструменты Add Root Goal и Add Tip Goal Добавляют эффектор (синий 6-тугольникманипулятор) соответственно к основанию кости (Add Root Goal) и к острому концу (Add Tip Goal) любой кости внутри цепочки. Для инструмента Add Tip Goal это позволяет перемещать цепочку костей в режиме обратной кинематики, используя любую кость, находящуюся в цепочке. Для костей из предыдущего примера выделите в окне менеджера объектов кость, указанную на рис. 12.27.
самой младшей кости, другой к концу промежуточной кости. Перемещая вновь образованный эффектор, можно изменять конфигурацию костей цепочки в режиме обратной кинематики, используя не только конечную кость, но и промежуточную (рис. 12.30).
Вызовите инструмент Add Tip Goal.
12.8. Инструмент Add Up Vector Инструмент добавляется в основание выделенной кости и позволяет вращать кость вокруг ее продольной оси (рис. 12.31). По умолчанию значок инструмента имеет вид треугольника, но в окне менеджера атрибутов на закладке Object можно выбрать любое другое начертание значка и его пропорции (рис. 12.32).
В окне менеджера объектов появится имя нульобъекта Bone Tip Goal (рис. 12.28), а в окне проекций появится эффектор на тонком конце выделенной кости (рис. 12.29). Теперь у нас имеется два эффектора для работы в режиме обратной кинематики: один прикреплен к концу
12.9. Инструмент Set Chain Rest Position Позволяет вернуть цепочку костей, связанных инверсной кинематикой, в позицию, в которой она находилась до ее перемещения.
12.13. Инструмент Cappucino Инструмент предназначен для создания анимации объектов посредством записи перемещений курсора мыши. Вызовите диалоговое окно Cappucino (рис. 12.33) (главное меню Plugins -> Мосса -> Cappucino).
12.10. Инструмент Set Chain Rest Rotation Позволяет вернуть цепочку костей, связанных инверсной кинематикой, в позицию, в которой она находилась до ее вращения.
12.11. Инструмент Auto Redraw Гарантирует пересчет кадров с учетом изменений, вносимых обратной кинематикой.
12.12. Инструмент Auto IK-Lock Инструмент позволяет при создании анимации сохранять такие объекты цепочки костей, как Tip Goal Root Goal, Up Vector и другие.
Возможны 3 типа анимируемых действий с помощью курсора: перемещение (задействован инструмент Move), масштабирование (инструмент Scale), вращение (инструмент Rotate). Если эти действия применены к объекту в параметрическом виде, то они действуют на объект в целом. На рис. 12.33 это три флажка из группы What (что): Position, Scale, Rotation. Если объект переведен в полигональное состояние, то эти действия могут быть применимы к граням, ребрам и вершинам объекта (флажок PLA — point level animation, рис. 12.33). Если у объекта есть подобъекты, то установка флажка Hierarchy позволяет распространить действия на все подобъекты. Список Selection (внизу на рис. 12.33) задает выбор объектов либо в окне менеджера объектов, либо в окне хронографа (треков анимации). Группа Action содержит три кнопки. Если щелкнуть по Start Realtime, то запись анимации включится, как только вы начнете двигать мышью. Stop RealTime служит для выключения записи. Single KeyFrame позволяет записать только один кадр. Группа When позволяет при записи использовать различные настройки для моментов начала и окончания записи анимации (номера кадров начала и окончания записи). Если в параметре Range выбрано Document, то используются настройки, установленные в диалоговом окне Edit —> Projects Settings (рис. 12.34). Если выбрано Preview, то используются настройки окна треков анимации.
Если выбрано Render, то используются установки из настроек Render Settings (рис. 12.35). Если выбрано User, то пользователь сам задает номера кадров начала и конца анимации.
2. В окне менеджера объектов выделите R_Leg (рис. 12.39). Группа Where позволяет задавать номера слоев, в которых сгруппированы объекты сцены. Это нужно, чтобы иметь возможность выборочной анимации части объектов сцены. Номера слоев задаются в окне треков анимации (Window -> TimeLine или Shift+ F3) (рис. 12.36).
3. На панели инструментов выберите инструмент
Установка флажка Start at Current Time позволяет интерактивно задавать номер кадра начала анимации. Установка флажка Rewind Time автоматически возвращает ползунок после окончания записи на нулевой кадр (рис. 12.37).
Пример Анимировать у персонажа Zygote Man правую ногу, обе руки, голову и сгиб в поясе. 1. В меню Objects -> Object Library выберите объект Zygote Man. Откройте окно Cappucino и TimeLine (рис. 12.38).
Rotation (рис. 12.40). 4. В окне Cappucino установите следующие настройки (рис. 12.41) и щелкните по кнопке Start Realtime. В данный момент инструмент Cappucino готов к записи каждого вашего движения мышью. Он начнет запись, как только вы нажмете левую кнопку мыши. 5. Прижмите красную орбиту и подвигайте правой ногой персонажа вперед-назад с возвратом в исходное положение к кадру 90 (рис. 12.42). Просмотрите полученную анимацию.
6. Выделите в окне менеджера объектов L_Arm (левую руку) (рис. 12.43) и примените к ней инструмент Rotation (рис. 12.44). 7. Поставьте бегунок на 0 кадр. Щелкните по кнопке Start Realtime в диалоговом окне Cappucino и, прижав зеленую орбиту инструмента Rotation, проанимируйте движение левой руки (рис. 12.45). 8. Проделайте аналогичную операцию для правой руки, головы и торса. Просмотрите анимацию.
Пример Чтобы анимировать, например, перемещение грани куба, переведите примитив Cube в полигональный вид (клавиша С) и выберите инструмент Use Polygon Tool.
В диалоговом окне Cappucino поставьте флажок PLA (рис. 12.46) и произведите анимацию перемещения грани, щелкнув по кнопке Start Realtime как в предыдущем примере.
12.14. Инструмент KeyReducer Вызовите инструмент KeyReducer и в диалоговом окне передвиньте ползунок (рис. 12.48). Количество убираемых ключевых кадров выражается в процентах от общего их числа. На рис. 12.49 приведен результат уменьшения числа ключевых кадров на 80%. Если траектория имеет пики, то в их окрестностях все равно могут оставаться лишние ключевые кадры. Чтобы убрать их и оттуда, следует установить флажок Boost.
12.15. Инструмент TimeWrap Инструмент позволяет производить поиск нужного кадра в анимационном ролике, а также просматривать треки в значительно более быстром темпе, чем с помощью хронографа. Инструмент можно вызвать, прижав клавишу, и перемещать курсор мыши вправо/влево. Анимируемый объект будет следовать по траектории кадр за кадром. Можно вызвать инструмент, щелкнув по пиктограмме. Чтобы перемещать объект более медленно, удерживайте нажатой клавишу Ctrl. Параметр Step задает зависимость перемещения объекта по траектории от перемещения курсора мыши. Чем выше значение Step, тем более чувствительно к перемещению мыши положение объекта на траектории. Посматривая треки готовой анимации, вам может показаться, что ключевых кадров слишком много. Ес-
Создаем две копии примитива Sphere (всего получится три сферы). Переводим их в полигональное состояние (рис. 12.50).
Пусть сфера Sphere будет объектом морфинга, сфера Sphere 1 — будет исходным объектом малого раз-
ли вы использовали инструмент Cappucino, то ключевых кадров будет создано заведомо больше, чем необходимо. Излишнее количество ключевых кадров поглощает ресурсы компьютера в процессе расчета движущегося изображения. Для уменьшения количества ключевых кадров служит инструмент KeyReducer. Следует помнить, что при уменьшении количества ключевых кадров траектория может изменить свою форму, например, стать более прямолинейной. Создайте с помощью инструмента Cappucino анимацию прямолинейного перемещения примитива 0 вдоль оси 0Х. Трек анимации приведен на рис. 12.47. Как видно, он состоит сплошь из ключевых кадров. Уменьшим их количество. Выделите трек, к которому собираетесь применить инструмент KeyReducer.
12.16. Тэг PoseMixer Служит для изменения формы объекта (морфинг). Создаются, например, два состояния объекта — исходное и конечное. Затем программа сама просчитывает промежуточные состояния для объекта морфинга. В окне свойств тэга задаются имена объектов, представляющих собой исходное и конечное состояния, а также указываются параметры, по которым производится морфинг. Рассмотрим пример. Надо произвести морфинг сферы по параметру масштабирование (малый и большой размер).
мера, а сфера Sphere 2 — конечным объектом большого размера (рис. 12.51).
В самое нижнее поле справа от флажка перетащим имя объекта, задающего конечное состояние Sphere 2 (рис. 12.52). Щелкнем по кнопке Record АН. Появится красный кружок (рис. 12.52), указывающий, что расчет и запись состояний морфинга произведены.
Передвигая ползунок справа от красного кружка, можно выбирать любое промежуточное состояние для сферы Sphere между размерами Sphere 1 и Sphere 2. Значения кнопок и флажков следующие. Кнопка Record All — записывает ключевые кадры всех участвующих в сцене объектов с последующим автоматическим расчетом их долей в конечном изображении. Кнопка Add Pose — создает новый трек для добавления еще одного объекта (путем перетаскивая его имени из менеджера объектов), задающего еще одно состояние объекта. После щелчка по кнопке Add Pose появляется дополнительное поле внизу в окне менеджера атрибутов (рис. 12.53).
Кнопка Reset Sliders — для всех объектов возвращает ползунки на анимационной шкале в исходное состояние. Position — позволяет назначить конечному состоянию Destination позиции исходного объекта по осям 0X, 0Y, 0Z. Rotation — установка флажка позволяет назначать конечному состоянию Destination объект, повернутый вокруг одной из своих осей. Exclude Parent — объекты, служащие состояниями, можно сгруппировать на дочернем уровне относительно нуль-объекта. При этом могут быть изменены значения координат объектов. Установка флажка игнорирует нуль-объект. Scale — позволяет применять к Destination масштабированный объект. Points — сравнивает геометрию исходных объектов и на основании ее корректирует геометрию Destination.
12.17. Инструмент Р2Р
Выделим любой объект в окне менеджера объектов, например Sphere, и через меню окна менеджера объектов File -> Мосса Tags -> PoseMixer присвоим тэг PoseMixer (рис. 12.50). В окне свойств тэга поставим флажок Scale (масштаб), задав тем самым параметр морфинга (рис. 12.52). Флажок Points должен быть также в установленном состоянии для осуществления морфинга геометрии объекта в полигональном состоянии. Из окна менеджера объектов перетащим имена соответствующих объектов в поля Default Pose (имя объекта для задания исходного состояния Sphere 1), Destination (имя объекта для морфинга, то есть того объекта, к которому будут применены изменения Sphere).
Сокращение Р2Р расшифровывается как Pose То Pose — от позы к позе. Инструмент позволяет производить изменение формы исходного объекта (морфинг объекта) на основе созданного набора деформированных копий (поз) этого объекта. Инструмент состоит из библиотеки Р2Р Library, где хранятся наборы поз, и менеджера Р2Р Manager, с помощью которого создается набор поз. Создадим исходный объект — примитив Sphere. Вызовем Р2Р Library и Р2Р Manager (Plugins -> Мосса -> Р2Р Library и Plugins -> Мосса -> Р2Р Manager) (рис. 12.54).
Создадим две копии исходного объекта Sphere (меню Edit -> Сору и Edit -> Paste) — Sphere 1 и Sphere 2. Переведем эти объекты в полигональное состояние (рис. 12.55).
Деформируем Sphere 1 и Sphere 2 (с помощью инструмента Scale изменим их масштаб), создав таким образом два состояния (две позы) для исходного объекта Sphere (рис. 12.56).
Перетащим из окна менеджера объектов в окно менеджера Р2Р Manager имена объектов, задающих позы. Начинать следует с имени исходного объекта Sphere (рис. 12.57). Установите флажок Geometry.
Теперь расставим ключевые кадры на треке Р2Р Library в окне хронографа. Для этого установите ползунок шкалы анимации на нужный номер кадра, например, 1 кадр (рис. 12.59).
Затем выделите в окне Р2Р Manager позу, например, Pose 18 Sphere (рис. 12.57) и щелкните по кнопке Record. Ключевой кадр 1 F будет создан (рис. 12.60). Передвиньте ползунок шкалы анимации, например, в кадр 25. В окне Р2Р Manager выделите следующую позу, например, Pose 19 Sphere 1 и щелкните по кнопке Record. Будет записан второй ключевой кадр. Повторите для кадра 75 для Pose 20 Sphere 2. Будет создано три ключевых кадра (рис. 12.61). Запустите просмотр анимации.
На рис. 12.61, 12.62 показаны фазы морфинга исходного объекта Sphere. Чтобы видеть только сам объект, отключите видимость в окне проекций Sphere 1 и Sphere 2 (верхняя точка справа от имени объекта в окне менеджера объектов должна быть красного цвета).
В окне менеджера объектов разместим Р2Р Library на уровень подобъекта по отношению к исходному объекту Sphere (рис. 12.58).
будут учтены при присваивании анимации объекту Figure. Для объекта Cylinder активизируйте точку видимости в окне проекций (щелкните по ней, чтобы она стала красного цвета) — Cylinder не будет виден. Запустите просмотр анимации.
12.19. Функция хронографа 12.18. Тэг Retarget Тэг позволяет присваивать анимацию, созданную для одного объекта, другому объекту. Создадим примитив Cylinder и запишем для него анимацию (например, перемещение с вращением). Создадим второй объект — примитив Figure, которому будет присвоена анимация первого объекта. Выделим первый анимированный объект Cylinder и присвоим ему тэг Retarget (меню Plugins -> Мосса -> Retarget) (рис. 12.63).
Щелкнем по тэгу Retarget, чтобы открыть окно его свойств (рис. 12.64). В поле Source (источник) перетащите из окна менеджера объектов имя объекта Cylinder, чью анимацию хотим использовать. В поле Target (цель) перетащите имя объекта, которому хотите присвоить анимацию, то есть Figure (рис. 12.64). В качестве нейтрального объекта Neutral также можно использовать Figure. Поставьте флажок Use Hierarchy instead of names, что позволяет учитывать идентичность иерархической структуры объектов, указанных в качестве Source, Target и Neutral. Например, если, как в нашем случае, анимация цилиндра присваивается объекту Figure, который обладает значительно более сложной структурой, то эти отличия в структурах автоматически
Motion Blending Данная функция позволяет получать траекторию движения объекта, составленную из траекторий движения двух других объектов. Создадим три объекта Zygote Man, Zygote Man 1 и Zygote Man 2 (рис. 12.65).
Объект Zygote Man 2 повернем в вертикальной плоскости на 180° (перевернем вверх ногами) (рис. 12.66). Анимируем перемещение персонажа Zygote Man 1 по оси 0Z, а персонажа Zygote Man 2 вдоль оси 0Х (рис. 12.66). Для этого создадим 2 ключевых кадра: для кадра 1 и для кадра 90.
Таким образом, имеем две исходные траектории. Создадим из этих траекторий траекторию для объекта Zygote Man. Пусть вначале он перемещается по траектории Zygote Man 1, а затем перевернется вверх ногами и проследует по траектории Zygote Man 2. Выделите имя Zygote Man и выберите в меню Plugins -> Мосса -> Setup Motion Blend Tracks. Обратите внимание, что в окне хронографа для объекта Zygote Man появились имена треков Motion A, Motion В и Transition (рис. 12.67), хотя самих треков еще нет.
В качестве треков Motion A, Motion В задаются треки траекторий, по которым движутся объекты Zygote Man 1 и Zygote Man 2, трек Transition — это результирующий трек объекта Zygote Man. Так как треков еще нет, то вначале надо задать пустые исходные последовательности. Для этого щелкните правой кнопкой мыши по имени трека, например, по Motion A, и выберите из контекстного меню пункт New Sequence... (рис. 12.68).
Появится диалоговое окно (рис. 12.69). Подтвердите предлагаемые по умолчанию установки. В результате будет создан пустой трек Motion А. Проделайте аналогичные действия для треков Motion B и Transition. Теперь надо заполнить пустые треки Motion А и Motion В траекториями объектов Zygote Man 1 и Zygote Man 2. Щелкните левой кнопкой по треку Motion A — в менеджере атрибутов откроется окно свойств трека Motion A (рис. 12.71).
Перетащите из окна менеджера объектов в поле Motion имя объекта, содержащего одну из исходных траекторий. Например, перетащим Zygote Man 1 (рис. 12.72).
Щелкнем по треку Motion B и перетащим имя объекта Zygote Man 2. Для трека автоматически задается линейная траектория. Запустите просмотр анимации (рис. 12.73). Чтобы фигуры Zygote Man 2 и Zygote Man 2 не загораживали перемещение персонажа Zygote Man, отключите их видимость в окне проекций (верхние точки справа от имен в менеджере объектов должны быть красного цвета).
12.20. Инструмент Clothilde Инструмент применяется для создания одежды. Пример Создадим модель жилетки и наденем ее на персонаж Zygote Man. С подгонкой по фигуре. 1. Вызовите персонаж Zygote Man (Objects -> Object Library -> Zygote Man). Этот объект по умолчанию полигональный. 2. Создайте полигональный объект (Objects -> Polygon Object) и выберите инструмент Use Polygon Tool. 3. Щелкните правой кнопкой мыши по свободному месту окна проекций и в появившемся контекстном меню выберите пункт Create Polygon (рис. 12.74). Объект Polygon Object в окне менеджера объектов должен быть выделен (рис. 12.74). Проследите, чтобы в полях Create и N-gon Subdivision было выбрано N-gon (рис. 12.75). 4. Перейдите в окно проекций Front (функциональная клавиша F4).
5. Постройте по точкам полигональную плоскость, которая будет грудной частью жилетки. Для этого щелкайте левой кнопкой мыши, ставя опорные точки желтого цвета. При переходе к следующей точке цвет точки меняется на красный. ДЛЯ завершения построения надо вернуться к исходной точке и еще раз щелкнуть по ней. Полигон, изображающий переднюю часть жилетки, будет построен. Он примет вид красного контура (рис. 12.78). 6. Вернитесь в окно проекций Perspective (функциональная клавиша F1). Используя инструмент Move, отодвиньте созданный полигон от персонажа, чтобы он располагался на некотором расстоянии перед ним (рис. 12.79). 7. Снова перейдите в окно проекций Front (F4). Вызовите контекстное меню окна проекций и выберите инструмент Knife (нож) (рис. 12.80). Выставите инструменту Knife следующие настройки (рис. 12.81).
8. «Разрежьте» полигон так, как показано на рис. 12.82. 9. Вызовите в главном меню Functions -> Clone и настройте параметры диалогового окна, как показано на рис. 12.83.
Щелкните по кнопке ОК и получите копию полигональной поверхности, расположенную позади персонажа (рис. 12.84).
10. Теперь надо сшить переднюю и заднюю поверхности жилетки. Но вначале выделите те ребра, которые будем сшивать. Для этого выберите инструменты Use Edge Tool и Live Selection и, удерживая клавишу Shift, щелкайте на нужных ребрах передней и задней полигональной поверхности. В данном примере можно ограничится 4-мя ребрами для каждой поверхности. Надо оставить несшитыми те ребра, которые образуют отверстия для рук и шеи (рис. 12.85). Если по ошибке выделение прихватило соседнее ребро, то следует переделать и добиться точного выделения. Переделать выделение можно и на следующем шаге, когда вы будете сшивать выделенные ребра.
Как только вы отпустите левую кнопку мыши, между ребрами образуется полигон, представляющий собой шов (рис. 12.88). Сшейте подобным образом остальные три пары ребер (рис. 12.89). Всего должно образоваться 4 новых полигона-шва.
11. Теперь можно приступить к сшиванию выделенных ребер. В контекстном меню окна проекций выберите инструмент для сшивания Stitch and Sew (рис. 12.86).
12. Выберите инструменты Use Polygon Tool и Live Selection, а затем выделите все 12 полигонов на передней и задней поверхности. Созданные полигонышвы не должны быть выделенными. Выделенные полигоны окрасятся в красный цвет. 13. Разобьем 12 выделенных полигонов на большое количество мелких полигонов. Для этого выберем в главном меню команду Functions -> Subdivide и в диалоговом окне зададим третью степень для параметра Subdivision (рис. 12.90).
Удерживая клавишу Shift и прижав левую кнопку мыши, соедините ребра попарно друг с другом. Во время соединения соединяющая линия и соединяемые ребра будут иметь желтый цвет (рис. 12.87).
Результат дополнительного разбиения приведен на рис. 12.91. Такое множественное разбиение на мелкие полигоны нужно для имитации свойств ткани.
14. На этом шаге мы подходим непосредственно к инструменту Clothilde. Произведем инвертирование выделения, выбрав в главном меню команду Selection -> Invert. Теперь выделенными окажутся полигонышвы. Убедимся, что в окне менеджера объектов выделен объект Polygon. В меню окна менеджера объектов выберем File -> Clothilde Tags -> Cloth (рис. 12.92).
В результате у объекта Polygon появился тэг Cloth Tag (рис. 12.93). Этот тэг будет менять свой цвет в зависимости от фазы процесса моделирования. В данный момент он синего цвета.
15. Настройте параметры вкладки Tag тэга Cloth Tag в соответствии с рис. 12.94. Флажок Cloth Engine — включает/выключает программу имитации свойств ткани. Stiftness — задает степень несминаемости ткани. Flexion — задает степень сминаемости ткани. Rubber — задает степень эластичности ткани.
Bounce — задает упругость ткани при ее столкновении с объектом, заданным в качестве Collider. Friction — учитывает трение ткани о поверхность объекта, заданного в качестве Collider. Например,
джинсовая ткань и шелк имеют различные коэффициенты трения о поверхность кожи человека. Self Collision — задает способность ткани отталкиваться от самой себя на складках. Это предотвращает самопроникновение ткани. Auto — при установленном флажке программа Cloth Engine работает в течение всей длительности (количестве кадров) анимации. Длительность устанавливается в Edit -> Project Settings. В противном случае можно задать номера начального и конечного кадров в полях Start и Stop. Cache Mode — позволяет ускорить процесс анимации за счет подключения дополнительной памяти (кэш) для программы Cloth Engine. Calculate Cache — кнопка включения Cloth Engine с подключенной кэш-памятью. Empty Cache — кнопка обнуления кэш. Update Frame — кнопка обновления кадров анимации по результатам пересчета программой Cloth Engine. Настройте параметры вкладки Dresser (рис. 12.95).
Флажок Dress Mode включает режим одежды для созданных полигонов. Обратите внимание, что цвет тэга Cloth Tag в окне менеджера объектов сменился на желтый. Width — задает размер (ширину) полигонов швов. Dress State — сохраняет текущее значение координат точек полигонов, объекта с тэгом Cloth. Seam Polys — задает программе Cloth Engine, какие полигоны рассматривать в качестве шва. Полигоны шва становятся желтого цвета. 16. Теперь надо задать программе Cloth Engine объект, с которым будет происходить столкновение. Очевидно, этим объектом является персонаж Zygote Man. В окне менеджера объектов раскроем папку Zygote Man и выберем Torso (торс), так как этот узел соответствует месторасположению жилетки на теле (рис. 12.96).
Флажок Use Collider — включает программу расчета столкновений объекта Cloth с объектом Collider. Bounce — задает силу отталкивания между сталкивающимися объектами.
Открыв File -> Clothilde Tags -> Collider, присвоим объекту Torso тэг Collider (рис. 12.97, 12.98).
Friction — задает силу трения между объектами. 17. Возвратимся на закладку Dresser окна менеджера атрибутов и щелкнем по кнопке Dress-O-Matic. Результат приведена на рис. 12.100. 18. Изготовьте самостоятельно другие части одежды персонажа, например, брюки. Настройки тэга приведены на рис. 12.99.
Содержание Введение Глава 1. Интерфейс Cinema 4D Глава 2. Объекты и их инструменты 2.1.Параметрические примитивы 2.2. Сплайны 2.3. Создание NURBS-объектов 2.4. Инструменты деформации 2.5. Инструменты моделирования Глава 3. Анимация 3.1. Работа с панелью инструментов Animation 3.2. Работа с OKHOM,Timeline (Хронограф) 3.3. Работа с F-кривыми Глава 4. Текстурные карты 4.1. Основные понятия 4.2. Свойства материалов 4.3. Тонировщики 4.3.1. Тонировщики, не имеющие собственного окна Material Editor 4.3.2. Тонировщики, имеющие собственное окно Material Editor Глава 5. Камеры, освещение и дополнительные объекты сцены 5.1. Типы камер 5.2. Настройки камер 5.3. Создание движущейся камеры 5.4. Освещение 5.5. Дополнительные объекты сцены 5.5.1. Объект Floor 5.5.2. Объект Sky 5.5.3. Объект Environment 5.5.4. Объекты Foreground и Background 5.5.5. Объект Stage Глава 6, Меню Tools и Selection 6.1. Меню Tools 6.1.1. Инструменты Move и Rotate 6.1.2. Инструмент Scale 6.1.3. Инструмент Magnify 6.1.4. Режим Default Mode 6.1.5. Режим Auto Switch Mode 6.1.6. Режим Tweak 6.1.7. Инструмент N-gon Triangulation 6.1.8. Инструмент Use Isoline Editing 6.1.9. Инструмент Show Axis 6.1.10. Инструмент Camera 6.1.11. Инструмент Object (Use Object Tool 6.1.12. Инструмент Points 6.1.13. Инструмент Edges 6.1.14. Инструмент Polygons 6.1.15. Инструмент Object Axes 6.1.17. Инструмент Model (Use Model Tool 6.1.18. Инструмент Texture 6.1.19. Инструмент Inverse Kinematics 6.1.20. Инструмент Animation 6.1.21. Инструменты XAxis/Heading, YAxis/Pitch, ZAxis/Bank 6.1.22. Инструмент Coordinate System 6.1.23. Инструмент Camera Rotation 6.2. Меню Selection 6.2.1. Selection Filter 6.2.2. Инструмент Live Selection 6.2.3. Инструменты Loop Selection и Ring Selection
3 4 15 15 23 37 48 78 90 90 92 112 117 117 127 145 145 166 175 175 179 182 184 201 201 202 204 205 207 209 209 209 212 212 212 212 212 212 212 213 213 213 213 213 214 214 214 215 216 216 217 217 218 218 218 219 220
6.2.4. Инструмент Outline Selection 6.2.5. Инструмент Fill Selection 6.2.6. Инструмент Convert Selection 6.2.7. Инструменты Select All и Deselect All 6.2.8. Инструмент Invert 6.2.9. Инструмент Select Connected 6.2.10. Инструмент Grow Selection 6.2.11. Инструмент Shrink Selection 6.2.12. Инструмент Hide Selected 6.2.13. Инструмент Hide Unselected 6.2.14. Инструмент Unhide All 6.2.15. Инструмент Invert Visibility 6.2.16. Инструмент Set Selection 6.2.17. Инструмент Set Vertex Weight Глава 7. Меню Structure и Functions 7.1. Меню Structure 7.1.1. Edit Spline 7.1.2. Инструмент Add Point 7.1.3. Инструмент Bridge 7.1.4. Инструмент Brush 7.1.5. Инструмент Close Polygon Hole 7.1.6. Инструмент Create Polygon 7.1.7. Инструмент Edge Cut 7.1.8. Инструмент Iron 7.1.9. Инструмент Knife 7.1.10. Инструмент Magnet 7.1.11. Инструмент Mirror 7.1.12. Инструмент Set Point Value 7.1.13. Инструмент Slide 7.1.14. Инструмент Stitch and Sew 7.1.15. Инструмент Weld 7.1.16. Инструмент Bevel 7.1.17. Инструмент Extrude 7.1.18. Инструмент Extrude Inner 7.1.19. Инструмент Matrix Extrude 7.1.20. Инструмент Smooth Shift 7.1.21. Инструмент Normal Move 7.1.22. Инструмент Normal Scale 7.1.23. Инструмент Normal Rotate 7.2. Меню Functions 7.2.1. Инструмент Make Editable 7.2.2. Инструмент Arrange 7.2.3. Инструмент Center 7.2.4. Инструмент Connect 7.2.5. Инструмент Current State to Object 7.2.6. Инструмент Duplicate 7.2.7. Инструмент Measure & Construction 7.2.8. Инструмент Transfer 7.2.9.Инструмент Randomize 7.2.10. Инструмент Reset System 7.2.11. Инструмент Align Normals 7.2.12. Инструменты Reverse Normals 7.2.13. Инструменты Move Down Sequence, Move Up Sequence 7.2.14. Инструмент Collapse 7.2.15. Инструмент Melt 7.2.16. Инструмент Optimize 7.2.17. Инструмент Subdivide 7.2.18. Инструмент Triangulate 7.2.19. Инструмент Untriangulate 7.2.20. Инструмент Retriangulate N-gons
221 221 222 222 222 222 222 222 222 223 223 223 223 224 225 225 225 232 233 233 235 235 237 237 238 241 243 243 245 245 246 246 249 250 250 251 251 251 252 252 252 252 252 253 253 253 256 256 257 258 258 258 258 259 259 260 260 261 261 261
7.2.21. Инструмент Remove N-gons 7.2.22. Инструмент Array 7.2.23. Инструмент Clone 7.2.24.Команда Disconnect 7.2.25.Команда Explode Segments 7.2.26.Команда Split 7.2.27.Команда Break Phong Shading 7.2.28.Команда Unbreak Phong Shading 7.2.29.Команда Select Broken Phong Edges 7.2.30.Команды Increase HN Subdivision, Decrease HN Subdivision Глава 8. Редактор узлов XPresso 8.1. Основные операции в окне редактора XPresso 8.2.Узлы XPresso 8.2.1. Группа General 8.2.2. Группа Adapter 8.2.3. Группа Bool 8.2.4. Группа Calculate 8.2.5. Группа Logic 8.2.6. Группа Iterator 8.3. Работа с тэгами в редакторе XPresso 8.4. Работа с контроллерами в редакторе XPresso Глава 9. Модули Thinking Particles и PyroCluster 9.1. Работа с модулем Thinking Particles 9.1.1. Основные объекты модуля Thinking Particles 9.1.2. Применение модуля XPresso при работе с Thinking Particles 9.2. Работа с модулем Pyro Cluster Глава 10. Модуль Dynamics 10.1.Классификация силовых полей 10.2. Объект Solver Object
261 261 263 264 264 264 264 264 264 264 265 265 268 268 278 278 280 286 287 288 292 295 295 295 303 314 319 319 319