Вы находитесь на странице: 1из 823

М. Адаме, Э. Миллер, М.

Симе

Maya 5

Москва - Санкт-Петербург - Нижний Новгород • Воронеж


Новосибирск • Ростов-на-Дону • Екатеринбург - Самара
Киев • Харьков • Минск
2004
Краткое содержание
Об авторах 15
Посвящения 18
Благодарности 19
Введение 22

ЧАСТЬ I. Maya и производственный конвейер 27


Глава 1. Использование Maya 28
Глава 2. Знакомство с проектами 40
Глава 3. Конвейер цифровой студии 54
Глава 4. Приемы работы в Maya 70
Глава 5. Язык MEL 94

ЧАСТЬ II. Моделирование 115


Глава 6. Форматы 116
Глава 7. Методы 144
Глава 8. Наборы объектов 1.78
Глава 9. Реквизит 218
Глава 10. Персонажи 286

ЧАСТЬ III. Технические аспекты 325


Глава 11. Компоновка 326
Глава 12. Узловая архитектура , 342
Глава 13. Создание усовершенствованных связей 360
Глава 14. Частицы и динамика 404

ЧАСТЬ IV. Анимация 455


Глава 15. Общие аспекты анимации персонажей 456
Глава 16. Подготовка персонажей к анимации 542
Глава 17. Сборка персонажей 570
Глава 18. Использование материалов 652
Глава 19. Освещение 680
Глава 20. Визуализация 720

ЧАСТЬ V. Приложения 775


Приложение А. Обычные и дополнительные возможности языка MEL 776
Приложение Б. Список терминов 814
Алфавитный указатель 819
Содержание

Об авторах 15
О помощниках авторов 16
О научном редакторе 17
Посвящения 18
Благодарности 19
Введение 22
Для кого предназначена эта книга 22
Для кого не предназначена эта книга 22
Содержание книги 23
От издателя перевода 26

ЧАСТЬ I. Maya и производственный конвейер 27


ГЛАВА 1. Использование Maya 28
Возможности Maya 29
Области применения 29
Инструменты 30
Характеристики 31
Эволюция Maya 32
Работа с Maya 33
Обучающие ресурсы 34
Собственный подход 37
Заключение 38

ГЛАВА 2. Знакомство с проектами 40


Начало работы 40
План А 41
Изменение первоначального плана 42
Марк предлагает план В 45
Окончательный вариант 45
Содержание

Проработка деталей 46
Убийца плана В 50
Заключение 53

ГЛАВА 3. Конвейер цифровой студии !>4


Подготовка к производству 54
Сценарий 54
Внешние проявления 56
Технические аспекты 57
Настройка рабочей среды 59
Моделирование 59
Артикуляция 60
Материалы 62
Компоновка 63
Оформление сцены .' 64
Производство 65
Анимация 65
Освещение 66
Эффекты 67
Визуализация 68
Заключение 69

ГЛАВА 4. Приемы работы в Maya 70


Организация рабочего пространства 70
Команды 71
Параметры команд по умолчанию 71
Клавиатурные комбинации , 75
Полки , 81
Контекстные меню 85
Пользовательский интерфейс 86
Элементы пользовательского интерфейса 86
Меню 89
Окна проекции 89
Увеличение 90
Установка границ 90
Центрирование камеры 91
Управление файлами , 91
Проекты , 92
Именование файлов „92
Заключение .93

ГЛАВА 5. Язык MEL 94


Назначение и порядок использования языка MEL 94
Основные сведения оязыке MEL 96
8 Содержание

Командная строка и редактор сценариев 96


Использование редактора сценариев 99
Основы программирования на языке MEL 101
Присваивание переменным возвращаемых значений 102
Аргументы, массивы и управляющие структуры 103
Пример управления интерфейсом Maya 108
Добавление нового пункта вменю ПО
Добавление нового меню в интерфейс Maya 112
Заключение 113

ЧАСТЬ П. Моделирование us
ГЛАВА 6. Форматы Ш
Неподдерживаемые форматы 116
Неявные поверхности 117
Октадеревья 117
Облака точек 117
Выбор формата 117
Точность воспроизведения 118
Эффективность 118
Точность вычислений 118
Непрерывность 119
Гибкость 119
Назначение материала 119
Полигоны 120
Гибкость топологии 120
Позиционная непрерывность 122
Назначение материалов 123
NURBS-поверхности 124
Параметризация 124
Прямолинейная топология 128
Обрезка 129
Гладкие поверхности 129
Деформируемость 130
Иерархические поверхности 132
Гибкая топология плюс иерархия 132
Тангенциальная непрерывность 136
Назначение материалов 138
Выбор метода моделирования поверхности 138
Персонажи 139
Автомобили 139
Пожарный гидрант 140
Витрины магазинов 141
Другие возможности моделирования 141
Эффекты рисования 141
Содержание 9

Капли воды 142


Волосы и мех 142
Заключение 142
ГЛАВА 7. Методы 144
Вспомогательные образы , 145
Получение опорных материалов 145
Подготовка иллюстраций 147
Планирование работы , 152
Основные этапы 1S2
Вспомогательные элементы 153
Советы 154
Проработка деталей 155
Получение плавных границ , 155
Создание кромки 163
Формирование скоса 166
Создание впадин и выступов 168
Туннелирование 168
Ухабы и колдобины 174
Заключение 176

ГЛАВА 8. Наборы объектов 178


Подготовительные операции , 178
Планирование 178
Стандартизация 179
Обмер 381
Макетирование 182
Обустройство территории 185
Бордюры 1.85
Тротуары 193
Улицы 199
Пляж 200
Строительство 203
Планирование квартала 203
Неподвижные части зданий 205
Детали 208
Двигаемся дальше 214
Заключение 216

ГЛАВА 9. Реквизит 218


Общее руководство по моделированию реквизита 218
Пространство 218
Простота 221
Структура 222
10 Содержание

Простые модели реквизита 224


Большая кость 224
Пожарный гидрант 237
Автомобиль — сложный элемент реквизита 258
Панели кузова 260
Заключение 285

ГЛАВА 10. Персонажи 286


Функциональные и эстетические критерии 286
Достоинства иерархических поверхностей 287
Дополнительные критерии 288
Уровень детализации 288
Избыточные точки 289
Текстуры 290
Создание Кляксы и Крутана 291
Подготовительные операции 291
Моделирование Кляксы 294
Моделирование Крутана 308
Заключение 324

ЧАСТЬ III. Технические аспекты 325


ГЛАВА 11. Компоновка 326
Понятие компоновки 326
Интервью с сотрудником отдела компоновки 327
Четкость изображения 329
От раскадровки к первичной анимации 331
Заключение 341

ГЛАВА 12. Узловая архитектура 342


Преобразования в отношениях предок—потомок 342
Объекты, формы и подобъекты 345
Основы узловой архитектуры Maya 347
DAG-узлы 347
DG-узлы 347
Типы узлов 352
Узлы, не являющиеся DAG-узлами 352
Просмотр графа истории иузлов сцены 353
Связывание атрибутов различных узлов 355
Заключение ,. 358
Содержание И

ГЛАВА 13. Создание усовершенствованных связей 360


Связывание узлов 360
Практическое применение ограничений 376
Вторичные движения 377
Изменение геометрии после соединения сочленений
с телесной оболочкой 399
Заключение 403

ГЛАВА 14. Частицы и динамика 404


Распространение частиц 404
Столкновения 407
Сила тяжести 411
Управляющие узлы 411
Визуализация частиц 416
Аппаратная визуализация 416
Программная визуализация 425
Создание хвостов у капель воды 435
Заключение 454

ЧАСТЬ IV. Анимация 455


ГЛАВА 15. Общие аспекты анимации персонажей 456
Анимация в Maya , 457
Интервью со Скотом Кларком 459
Планирование анимации 463
Первый шаг —свое видение 463
Второй шаг — исследование движения 471
Психология — теория мини-сценария , 473
Исследование сюжета 475
Исследование движения •. 475
Готовые видеоматериалы 476
Захват движения 477
Исследование видеоисточников , 478
Принципы анимации и программа CAPS 479
CAPS, С — это Character 480
CAPS, A-3TOA.S.A.F.E 481
CAPS, P — это Physicssss 483
CAPS, S - это STS 484
Поза персонажа 488
Окончательный план 491
Процесс производства 492
Деформация модели ,. 492
Элементы управления 494
Деформация конечностей 506
12 Содержание

Задание поз 514


Создание ключей 519
Временные интервалы 534
Диалоговое окно Graph Editor 537
Да пребудет с вами сила 538
Последние советы 340
Заключение , 540

ГЛАВА 16. Подготовка персонажей к анимации 542


Пять золотых правил подготовки персонажа 542
Знание анатомии персонажа 543
Требования к движению персонажа 543
Простое и интуитивно понятное управление персонажем 544
Приведение впорядок файлов 545
Активное тестирование системы 548
Конвейер подготовки персонажа 548
Одиннадцать распространенных ошибок
при подготовке персонажа 550
Интервью с Полом Туристом 565
Заключение 569

ГЛАВА 17. Сборка персонажей 570


Подготовка персонажа канимации 570
Создание иерархий сочленений для анимации 571
Сборка собаки 575
Позвоночник и бедра собаки 575
Анимация лап персонажа по методу обратной кинематики 576
Сборка хвоста и ушей 581
Заместители с низким разрешением 582
Подсоединение к сборке персонажа управляющих
параллелепипедов 584
Усовершенствованные элементы управления
двуногим персонажем , 589
Усовершенствованные растягивающиеся
1К-ноги и классическая обратная нога 608
Усовершенствованные IK-руки и ключичный треугольник 616
Подключение скелетной иерархии головы 637
Элементы управления чертами лица и деформатор
Blend Shape 639
Создание элементов управления глазами 640
Волосы Крутана , 642
Гладкое связывание аппроксимирующей геометрии 642
Весовая раскраска гладкой оболочки 645
Содержание 13

Весовая раскраска отдельных вершин 649


Дополнительные объекты влияния 650
Заключение 650

ГЛАВА 18. Использование материалов 652


Мир материалов 652
Достижение сходства , 653
Качество поверхности 664
Создание материалов 665
Диалоговые окна Multilister, Hypershade и Visor 666
Эффективная настройка материалов 667
Создание библиотек 668
Назначение материалов 670
Оценка вида материалов 670
Создание карт текстур !э71
Нарисованные карты текстуры 671
Отсканированные текстуры 672
Текстуры, созданные с помощью эффектов рисования 672
Процедурные карты текстур 673
Пример материала 673
Проецирование материала на поверхность 674
Заключение 679

ГЛАВА 19. Освещение 680


Мир в свете 680
Управление тенями 681
Методология освещения в Maya 689
Глобальная освещенность и методы ее имитации 691
Имитация глобальной освещенности с помощью
стандартного визуализатора 692
Имитация глобальной освещенности с помощью купола 692
Создание и подготовка HDR-изображений 705
Цветовые сценарии , 711
Заключение 718

ГЛАВА 20. Визуализация 720


Визуализация при помощи стандартного визуализатора 720
Недостатки стандартного визуализатора , 721
Сглаживание 723
Трассировка лучей 725
Размывание вдвижении 727
Глубина резкости 728
Заполнение .. 730
14 Содержание

Память 732
Эффективность анимации 733
Материалы и карты текстур 733
ВОТ-файлы 734
Тени 735
Диагностика визуализации 737
Визуализация из командной строки 738
Предварительный просмотр результатов визуализации 739
Контрольная проверка 741
Предварительные тесты 742
Визуализатор Mental Ray 742
Известные недостатки 743
Общие параметры 745
Многопроходная визуализация 757
Послойная визуализация 757
Глобальные проходы 758
Слои освещенности 759
Выбор метода 759
Фабрики визуализации 767
Программное обеспечение 767
Выбор платформы 768
Аппаратное обеспечение 768
Компоновка фабрик 771
Окончательный вывод 772
Видео 772
Видео высокой четкости и цифровое видео 773
Пленка 773
Заключение 773

ЧАСТЬ V. Приложения 775


Приложение А. Обычные и дополнительные
возможности языка MEL 776
Понятие узла сценария 776
Создание и использование узла сценария 777
Комбинация команды scriptJob с узлами сценариев. 783
Загрузка исполняемого файла и получение результатов 786
Обработка ошибок 787
Написание сценариев и ведение журнала ошибок 792
Дополнительные возможности языка MEL 795
Написание деформатора 799
Заключение 813

Приложение Б. Список терминов 814


Алфавитный указатель .. 819
Об авторах

Марк Адаме (Mark Adams) занимается компьютерным моделированием уже более


20 лет. Он начинал чертежником в Дейтройте, оставив сумасшедшую идею выу-
читься на адвоката. Однажды он увидел работы Роберта Абеля (Robert Abel) и ре-
шил, что должен заниматься тем же. Четыре года из следующего десятилетия Марк
проработал в компании Intergraph, затем перешел в фирму Alias, где в его обязан-
ности входило изучение, демонстрация и поддержка различных инженерных при-
ложений и решение возникающих при работе с клиентами проблем. Б 1994 году
он получил приглашение от фирмы Pixar и в результате оказался в Калифорнии,
где работал над мультфильмом Toy Story (История игрушек). С тех пор он являет-
ся техническим директором художественных фильмов этой фирмы, выпуская кроме
этого компакт-диски и рекламные ролики и специализируясь в основном на мо-
делировании объектов. В настоящее время Марк ежедневно работает с Maya. Он
участвовал в пятом фильме этой студии Finding Nemo (В поисках Немо). Марк
проживает на северном побережье с женой, двумя сыновьями, двумя кошками
и многочисленными компьютерами. По знаку зодиака он Лев, и считая астроло-
гию ерундой, он тем не менее с интересом читает все, что относится ко Львам.
Эрик Миллер (Eric Miller) в настоящее время является техническим директо-
ром компании Digital Domain, получившей Оскар за визуальные эффекты в таких
фильмах, как The Time Machine (Машина времени), Lord of the Rings (Властелин
колец), Х-Меп (Люди X) и Armageddon (Армагеддон). Эрик работает с Maya каж-
дый день, создавая с помощью этого приложения многочисленные подключаемые
модули и сценарии, занимаясь сборкой персонажей и их деформацией, организуя
производственный конвейер для высокобюджетных художественных фильмов
и коммерческих проектов, для реализации которых Maya используется вкупе < дру-
гими приложениями. За время работы в Digital Domain Эрик успел внести свой
вклад в ряд важных проектов. Системы деформации поз и мускулов/кожи для Maya
составляют только небольшую часть результатов его труда. Он принимал участие
в работе над высокобюджетным фильмом-катастрофой After Tomorrow (Когда на-
супит завтра) и выполнял обязанности руководителя группы в проекте /, Robot
(Я, робот) по новеллам Айзека Азимова (Isaac Azimov). В числе его многочислен-
ных заслуг можно упомянуть усовершенствованный метод сборки персонажей,
сложные деформации оболочек, интеграция в Maya визуализатора RenderMan
и реалистичную имитацию динамики и тканей. Эрик имеет степень бакалавра изоб-
разительных искусств в области компьютерной графики, полученную в колледже
Академии искусств, и сертификат специалиста по сборке персонажей от фирмы
AUas|Wavefront. Он работает с Maya с момента появления версии 1.0.
16 Об авторах

Макс Симе (Max Sims) начал свою карьеру в Европе в качестве дизайнера ав-
томобилей фирмы «Опель», а впоследствии и «Рено». Он стал сотрудником ком-
пании Alias в 1989 году, выполняя заказы по промышленному дизайну и анима-
ции. Затем он основал собственную фирму развлекательного и промышленного
дизайна Technolution, которая может похвастаться такими клиентами, как ком-
пании PDI, ILM, Pixar, Frogdesign и Apple Design. Он пошел дальше, став руко-
водителем, ответственным за разработку новой продукции в фирме Thinkreal,
которая является филиалом итальянской компании think3. В 2000 году он при-
соединился к проекту LuuLuu.com, создав инструменты для цифровой моды. Как
руководитель производства трехмерной графики он ежедневно работает с Maya,
моделируя тела персонажей и одежду для них. С 1994 года Макс преподает ви-
зуализацию и моделирование, а также Maya в Академии искусств Сан-Францис-
ко. Кроме того, он является профессором политехнического института в Когс-
велле, где преподает дизайн и Maya. Он также дает уроки в студии Painter and
Advanced Alias в отделе индустриального дизайна Академии искусств. Макс до
сих пор практикует как дизайнер. Его адрес max@technolution.com

О помощниках авторов
Адриан Даймонд (Adrian Dimond) является директором отдела анимации и руко-
водителем отдела визуальных эффектов. В настоящее время проживает в Лос-Ан-
джелесе. Работал над телевизионными шоу, принимал участие в производстве
фильмов Cherish (Чериш) и Max Steel (Макс Стил), а также в создании компью-
терной игрушки Mad Trix.
Адриан начал изучать компьютеры в школе при институте искусств в Чикаго,
где он также осваивал живопись, скульптуру, актерское мастерство, цифровое аудио
и видео. Он говорит: «Когда я открыл для себя мир трехмерной графики, я понял,
что смогу объединить все аспекты традиционных и современных искусств».
В свободное время Адриан пишет сценарии на языке Perl и перестраивает интер-
фейс своего компьютера. Он является активным членом сообщества highend3d.com,
где с удовольствием делится своими взглядами, приобретенными за более чем 10 лет
работы в области компьютерной графики.
Вилл Пэйсиус (Will Paicius) считает себя гуру в анимации персонажей, тем не менее
надеясь, что его лучшая работа в этой области еще впереди. Он постоянно совер-
шенствует свои навыки, двигаясь к намеченной цели. Его основным занятием явля-
ется преподавательская деятельность в политехническом колледже в Силиконовой
долине, где он дает уроки по анимации персонажей и дизайну компьютерных игр.
Много времени он посвящает и игровому клубу Когсвелла (fuzzywoto.com). Кроме
того, он преподает в колледже Деанза и других учебных заведениях на побережье.
Билл основал некоммерческую компанию NeoCreations, обеспечивающую студен-
тов работой по контракту. Именно эти студенты моделировали игру HydroThunder.
Даниэль Наранжо (Daniel Naranjo) является ведущим создателем персонажей
и трехмерных объектов в фирме AJvanon Inc., которая осуществляет визуализацию,
управление данными и быстрое создание прототипов для швейной промышлен-
ности. Кроме того, Дэн посещает школу искусств и занимается традиционной
скульптурой. Он накапливает бесценный опыт в области баланса, веса и пропор-
О научном редакторе 17

ций органических и неорганических форм традиционной скульптуры. Эти знания


он применяет в ежедневной работе по моделированию трехмерных объектов, ко-
торые, в конечном счете, служат основой для создания реальных скульптур. Со-
здаваемые им прототипы используются для визуализации и производства различ-
ной продукции.
Даниэль Ройзман (Daniel Roizman) работает в индустрии визуальных эффектов
уже более восьми лет. Он начал свою карьеру в фирме AUasjWavefront в качестве
члена команды, занимавшейся разработкой Maya. Даниэль выполнял обязанности
руководителя отдела визуальных эффектов для различных проектов, в том числе
для фильмов Х-Меп (Люди X) и Spider-Men (Человек-паук). В начале 2000 года он
основал фирму kolektiv (www.kolektiv.com), которая предоставляет услуги компани-
ям, специализировавшимся на создании различных эффектов. Именно эта фирма
поставила DVD с учебными фильмами для компании AliasjWavefront, сотруднича-
ла с такими экспертами в данной области, как Habib Zargarpour, разработала под-
ключаемые модули для Maya, которые в настоящее время применяются по всему
миру.

О научном редакторе
Весомый вклад в создание книги внес научный редактор. По мере написания глав
он просматривал все материалы, оценивая их на техническое соответствие.
Линда Роуз (Linda Rose) в течение 12 лет являлась ведущим техническим писа-
телем фирмы AliasjWavefront. Она начала работать с Maya с момента появления
на свет версии 1, специализируясь на имитации динамики и тканей, а также зани-
маясь подготовкой справочной документации по этому приложению. На данный
момент она полностью переключилась на разработку справочных систем, являясь
внештатным сотрудником фирмы AliasjWavefront. Линда проживает во всемирно
известном городе Сайта- Барбара с мужем и дочерью.
Посвящения

Я посвящаю эту книгу моей любимой жене Стефани, чья любовь и поддержка дали
мне возможность осуществить этот проект, а также своим сыновьям Петеру и Ке-
вину, которые мирились с отцом, в течение многих месяцев: скрывающимся в сво-
ем офисе, вместо того чтобы играть с ними.
Я также благодарен моей матери, которая всегда предъявляла ко мне высокие
требования и смогла понять, что карьера в области компьютерной графики станет
для меня лучшим выбором, чем юридическая практика.
Марк Адаме
Я бы хотел посвятить свою часть книги моей бабушке Иде Димео, которая растила
меня с раннего детства, Она умерла, когда я работал над этой книгой. Боже, упо-
кой ее душу...
Я также благодарю Монику, мою красивую и умную жену и настоящую подру-
гу жизни, за ее любовь, эмоциональную поддержку и твердость.
Эрик Миллер
Я посвящаю эту книгу поддерживавшей меня жене Крис Салите и моей любимой
дочери Зелии Катарине Симе. Я написал первые слова этой книги в очень стран-
ный день. 11 сентября моей дочери исполнился год. Но перед тем как она просну-
лась, я услышал в новостях о страшной трагедии. Что бы мы знали о счастье, если
бы не было боли?
Я также хочу поблагодарить своих родителей Джозефа и Динею Симе за то, что
они сделали меня тем, кто я есть, и никогда не пытались вмешиваться в мою карьеру.
Я хочу сказать спасибо Эдварду и Марии Сапита за их чудесную дочь, которая
стала моей женой.
Я обязан поблагодарить супруг моих коллег и соавторов Эрика и Марка, кото-
рые поддерживали их и позволили им внести значительный вклад в наш проект.
Спасибо вам, Стефани и Моника!
Я не могу не упомянуть своих братьев Чино, Марко и Джулио. Я искренне со-
жалею, что на конце моего имени нет буквы «о».
Не стоит забывать и о моих свояченицах Диане, Кэрол, Карен, Джиме, Поле
и Кэти. И, конечно же, о моих племяннике и племяннице Лнаме и Мойре.
Благодарю также моих друзей, которым я не мог уделять много времени из-за
работы над этой книгой: Джима Лефтвича, Дебби Янга, Джефа и Лорел Стван, Пола
и Робин Мерфи.
Я хочу искренне поблагодарить Марка Адамса, Эрика Миллера, Даниэля Ройз-
мана и Скота Кларка за их вклад в такой крупный проект. Книга определенно вы-
играла от их участия.
Макс Симе
Благодарности

Сердечно благодарю основателей фирмы Alias Research, которые дали мне возмож-
ность отойти от инженерной работы с CAD и заняться более творческим делом.
Спасибо также сотрудникам бывшей компании Wavefront, подстегивавшим won
соревновательный дух, что привело к созданию многофункциональных продук-
тов. И теперь, когда недавние соперники объединились в одну компанию, такие
пользователи, как я, могут наслаждаться потрясающим инструментарием и твор-
ческими возможностями Maya.
Годы, проведенные мной в компании Alias, были наполнены встречами с людь-
ми, которые заслуживают публичного признания за их совершенно безвозмезд-
ную помощь. В частности, я хотел бы упомянуть Кевина Турецкого (Kevin Tureski),
Джона Гибсона (John Gibson) и Милана Новачека (Milan Novacek). Своими сек-
ретами со мной делились и талантливые инженеры. Особую благодарность я хо-
тел бы выразить Стэнли Лью (Stanley Liu), Филу Мою (Phil Moy), Дамиру Фрко-
вицу (Damir Frkovic) и Брэду Редмонду (Brad Redmond),
Я не могу даже вообразить, чем бы я сейчас занимался, если бы не Дамир
Фрковиц, который в далеком 1994 году поинтересовался, нет ли у меня жела-
ния поработать в фирме Pixar. Детройт, конечно, замечательное место, где на-
всегда останутся мои спортивные пристрастия, но когда я смотрю в окно на
небеса над Сан-Франциско и вижу всех этих талантливых людей, заходящих
в мой офис, я вспоминаю, что с этого телефонного звонка началась новая поло-
са в моей жизни.
Разумеется, я в громадном долгу у многих сотрудников фирмы Pixar, в частно-
сти у Эбена Остбай (Eben Ostby) и Элиота Смирла (Eliot Srairl), за их непрекра-
щающуюся помощь на протяжении нескольких фильмов и нескольких лет. Я бы
также хотел поблагодарить Дейдра Барина (Deidre Warm), Келли Петере (Kelly
Peters) и Синди Косенцо (Cindy Kosenzo) за их умение управлять производством,
которое помогло мне сохранить рассудок в моменты напряженной работы.
Наверное, я бы так до сих пор и работал только с приложением AutoStudio от
Alias, если бы не поддержка и обширные познания в Maya других сотрудников
фирмы Pixar. Лидерами тут были Брайан Бойд (Bryan Boyd), Брюс Бакли (Bruce
Buckly) и Мартин Костелло (Martin Costello). Дополнительное спасибо Джошу
Рейсу (J°sh Reiss) за его терпение, с которым он выслушивал жалобы на пробле-
мы, возникающие при работе с Maya, и за знания, которые позволили ему пока-
зать мне пути решения всех этих проблем.
Особая благодарность Джону Ласситеру (John Lassister), показавшему нам, ка-
кие волшебные вещи можно делать с помощью компьютерной графики, Эдду Кат-
мулу (Ed Catmull) за его вклад в создание этой замечательной фирмы и Стиву
20 Благодарности

Джобсу (Steve Jobs), который верил в чудеса и в нашу счастливую звезду еще в те
времена, когда название фирмы Pixar еще не было известно широкой публике.
Я также хотел бы вспомнить былое и поблагодарить Кетлин Ханна (Kathleen
Hanna), Патрисию Феррик (Patricia Ferrick), Джина Йоргенсона (Jean Jorgenson)
и Алена Гилберта (Allen Gilbert) за шутки и энтузиазм, которые сделали мои пер-
вые годы работы в компании Intergraph столь приятными. Такие люди, как они,
показали мне, что даже требующая колоссального напряжения карьера в области
трехмерной графики может доставлять удовольствие.
Огромное спасибо Линде Бапм (Linda Bump), Виктории Элзи (Victoria Elzey)
и Одри Доил (Audrey Doyle) за их непрекращающуюся поддержку и терпение,
когда мы трудились над этой книгой. Начинающие авторы являются поистине не-
сносными созданиями, но вы не жаловались, а двигали проект вперед.
Ну и, наконец, я хотел бы сказать спасибо Максу Симсу, который привлек меня
к этому проекту и снисходительно относился ко всем проблемам, возникавшим из-
за моего участия. Огромное спасибо также Эрику Миллеру, Даниэлю Ройзману
и Скоту Кларку за их вклад и усердную работу.
Марк Адаме
Я благодарю мою мать Анну и Джима за все ценные советы, мудрость, поддержку
и уроки, которые я получал в этой жизни. Благодарю моего отца Стива, а также
Кэрол, Грэмму, Грэмпу и всю мою семью, любовь и поддержку которой я ощущал
все эти годы. Благодарю Макса Симса, Крис и Зейлу Симмс, Линду Бамп, Одри
Доил и других замечательных редакторов и авторов, которые внесли свой вклад
в создание этой книги: Даниэля Наранжо (Daniel Naranjo), Пола Туриста (Paul
Thuriot), Менфред Рейф (Manfred Reif) и команду фирмы LuuLuu/Alvanon, Да-
рина Гранта (Darin Grant) и всех потрясающе талантливых сотрудников фирмы
Digital Domain, Стива Моцери (Steve Mauceri), Тима Колемана (Tim Coleman),
Натана Вогеля (Nathan Vogel), а также фирмы ААС и Mesmer. Наконец, я благо-
дарю всех, кто когда-либо помогал мне в личном или профессиональном плане,
а также всех читателей данной книги. Именно вам адресуются мои наилучшие по-
желания.
Эрик Миллер
Я хочу поблагодарить всех нынешних и предыдущих сотрудников фирм Alias
Research и Wavefront Technologies за создание такого непостижимого приложе-
ния, как Maya. Сотрудничество с вами, как и возможность пользоваться плодами
вашего труда, большая честь и удовольствие для меня.
Особую благодарность я хотел бы высказать сотрудникам компании Alias|Wa-
vefront, работающим в Сан-Франциско. В их число входит Джим Лоренц (Jim
Lorenz), много лет назад продавший мне мою верную старушку Indigo 2, Хезер
Хаджес (Heather Hughes), которая обслуживает пользователей в прибрежном рай-
оне Сан-Франциско, и Пит Биллингтон (Pete Billington), осуществлявший техни-
ческую поддержку и глубоко понимавший суть происходящего.
Я хотел бы также поблагодарить сотрудников фирмы Alias)Wavefront: Донну
Теггарт (Donna Teggart), Хезер Кернахан (Heather Kernahan), Дэрлин Димаюга
(Darlyn Dimayuga), Дэвида Ло (David Lau), Шелли Модерн (Shelly Morden), Ла-
рису Страк (Laryssa Struk), Двейна Пута (Dwayne Foot) и Ренука Махарадж (Re-
nukah Maharaj). Благодарю Стива Спенсли (Steve Spencely) за разработку лучше-
Благодарности 21

го пользовательского интерфейса на этой планете, Кевина Турецкого (Kevin Tu-


reski) за его доверие, Дэйва Верри (Dave Wharry) за своевременную доставку про-
дукции пользователям, Питера Местоблера (Peter Mehstaeubler) за ту самую встре-
чу в Санта-Клара, Билла Бакстона (Bill Buxton) за ту прогулку в Сиэтле
и всех президентов компании AUas|Wavefront — в частности Пенни Уилсона(Penny
Wilson), Благодарю Дуга Уолкера (Doug Walker) за взлелеянную им веру в буду-
щее Alias|Wavei'ront. Огромное спасибо Дэнису Пэйну (Dennis Payne), Брайану
МакЛюру (Brian McLure) и Кристен Пирс (Kristen Реагсе) из фирмы Snader and
Associates за их великодушную поддержку.
Я также хотел бы поблагодарить Линду Бамп (Linda Bump) из издательства
New Riders, которая нашла меня и убедила написать ату книгу. Спасибо за мой
лихорадочный график работы и неистовую любовь. Благодарю Стефани Уолл
(Stephanie Wall), которая не побоялась поставить на трех беспокойных авторов,
Я также хотел бы поблагодарить Одри Доил (Audrey Doyle) за ее замечатель-
ную редактуру и потрясающее знание грамматики. Благодарю Викторию Элзи
(Victoria Elzey), которая провела через все это таких неофитов, как мы, Марию
Рапозо (Maria Raposo) из ATI, Крис Зейтц (Chris Seitz) из Nvidia, Кони Сью (Connie
Siu) из AMD, Адама Шнитцера (Adam Schnitzer) из Lucas Arts и Пола Туриста
(Paul Thuriot) из Tippet.
Благодарю всех моих студентов и коллег, с которыми мне довелось поработать
за прошедшие годы, за полученный с их помощью опыт.
Благодарю моих прежних сотрудников, в частности Брюса, Эрика, Дебби и Мэт-
та С., Мэтта Дж., Майка К., Алекса С., Пола Т. и Свена Дж.
Спасибо вам, Дэйв Коул (Dave Cole), Дэн Брик (Dan Brick), Хидеки Масуда
(Hideki Masuda), Кевин Кэйн (Kevin Cain), Ронн Браун (Ronn Brown), Уильям
Рентерья (William Renteria), Джош Хартл (Josh Hartl) и Билл Барранко (Bill
Barranco).
Я признателен всем библиотекарям и любителям книг, которые встречались на
моем пути. Особо хотелось бы выделить Брюса Г. Даме (Bruce G. Dahms) из биб-
лиотеки Когсвелла. Без вас у меня не было таких обширных познаний и такого
шикарного дома с этими треклятыми книгами. Оказывается, это такое удоволь-
ствие — отбросить книгу подальше.
За всем этим я забыл двух других потрясающих библиотекарей — Гретхен Гуди
(Gretchen Goode) и Лилиан Хезертон (Lillian Heatherton) из Академии искусств.
Макс Симе
Введение

Книга «Maya 5 для профессионалов» призвана научить вас разрабатывать проек-


ты с помощью приложения Maya от фирмы Alias) Wavefront, предназначенного для
моделирования, анимации и визуализации сцен. Мы написали книгу так, чтобы
показать все этапы работы над коротким фильмом. Книга предназначена для тех
пользователей, которые уже имеют опыт работы с Maya, но хотят больше знать
о производстве анимации и деталях этого процесса. Основное внимание уделяет-
ся способам создания фильма и применению основных инструментов. Все авторы
являются профессионалами в области компьютерной графики и работают с Maya
практически ежедневно. Каждый из них рассказал о той части процесса, специа-
листом в которой он является. В итоге получилась книга, которая описывает весь
«производственный конвейер» цифровой студии.

Для кого предназначена эта книга


Эта книга предназначена для пользователей, уже имеющих базовые навыки ра-
боты с Maya. Тем, кто хотел бы больше знать о Maya и о методах работы с этим
приложением, книга должна понравиться. Квалифицированные пользователи об-
наружат тут описания альтернативных подходов к решению многих проблем
и смогут детально познакомиться с неизвестными им ранее аспектами примене-
ния Maya. Так как специалистов сразу во всех областях, связанных с производ-
ством фильмов, по определению существовать не может, книга написана разны-
ми авторами, каждый из которых поделился своими знаниями. Их описания
рабочего процесса без сомнения будут интересны квалифицированным пользо-
вателям и тем, кто хочет таковым стать. Все авторы имеют большой опыт работы
с данным приложением и с удовольствием открывают вам свои секреты, В этой
книге вы не найдете инструкций вида «нажмите эту кнопку» — вместо этого опи-
саны основные этапы производства анимации с точки зрения профессионалов
и опытных пользователей.

Для кого не предназначена эта книга


Пользователи, только что начавшие знакомство с компьютерной графикой вооб-
ще и с приложением Maya в частности, вряд ли смогут усвоить материал книги,
Содержание книги 23

Не подойдет она и тем, кто ищет пошаговых инструкций с дотошным перечисле-


нием команд меню. Некоторые аспекты работы, такие как моделирование из фраг-
ментов, вообще остались «за кадром». Мы надеемся, что интерес наших читателей
к компьютерной графике не является праздным. Хотя, разумеется, мы осознаем,
что само по себе прочтение данной книги не сделает из вас профессионала, дост< >й-
ного работы в крупной цифровой студии. Не существует вещей, способных заме-
нить личный опыт, и эта книга не является исключением. Описать все приемы ра-
боты с Maya просто невозможно. Если вы хотите знать, как функционирует Maya
и познакомиться с этим приложением с самого начала, мы рекомендуем обратить-
ся к другим источникам.

Содержаниекниги
В этой книге делается попытка показать работу над проектом в Maya от момента
зарождения идеи проекта до его завершения. Книга разделена на несколько мас-
тей. В первой части описываются интерфейс последней версии приложения
и способы его настройки. Кроме того, дается визуальный и технический обзор г:ро-
екта «Место для парковки». В следующих частях детально изучается внутренняя
структура Maya. Последовательно рассматриваются этапы производства анимании,
в том числе процесс создания моделей с пояснениями технических моментов, про-
цесс компоновки сцен, художественные детали. Последняя часть относится к воп-
росам назначения материалов, освещения и визуализации. Ниже дан подробный
обзор каждой из глав.
О Глава 1 ^Использование Maya». Описываются некоторые из бесчисленных об-
ластей применения данного приложения вкупе с его характеристиками и об-
ширным инструментарием. Здесь же вы найдете краткую историю создания
Maya и появления на свет фирмы-производителя этого приложения. Напосле-
док перечисляются навыки, необходимые для того, чтобы превратиться в ква-
лифицированного пользователя Maya.
О Глава 2 «Знакомство с проектами». Проект, на примере которого описывается
работа с Maya в данном издании, называется «Место для парковки». Кратко
его содержание можно выразить в нескольких словах: греющаяся на солны шке
собака потревожена нетерпеливым человеком, пытающимся оплатить парков-
ку свой машины. Представлены цели данного проекта и наш план их достиже-
ния.
О Глава 3 «Конвейер цифровой студии». Студии, производящие цифровую ани-
мацию, совсем недавно стали реалиями нашей жизни. Мы рассказываем о про-
цессе создания анимации в такой студии, делая особый акцент на деталях обра-
ботки данных на каждом из этапов. Структура нашей книги и инструменты Maya
описываются в контексте работы в цифровой студии.
О Глава 4 «Приемы работы в Maya». Среда, в которой разрабатывается проект,
в значительной степени влияет на его успех. Именно с этих позиций показаны
способы адаптации интерфейса Maya к нуждам конкретного пользователя.
Материал данной главы касается настройки меню, определения новых кл;звиа-
24 Введение

турных комбинаций, создания полок с кнопками и даже изменения интерфей-


са программы. Имеется также несколько советов по систематизации файлов
и проектов.
о Глава 5 «Язык MEL». Встроенный язык Maya (MEL) является «сердцем» этого
приложения. Он позволяет писать интерпретируемые сценарии и представля-
ет собой простой, но мощный инструмент автоматизации многих операций.
В этой главе вы познакомитесь с основами языка MELn найдете примеры кода,
Мы продемонстрируем в простой и занятной форме смысл таких понятий, как
процедуры, переменные, управляющие структуры, циклы. Все исходные тек-
сты протестированы. Их можно найти на прилагаемом к книге компакт-диске.
о Глава 6 «Форматы», Моделирование в Maya осуществляется на основе сеток
полигонов, NURBS-поверхностей и иерархических поверхностей. В этой главе
рассматриваются функциональность, достоинства и недостатки каждого из фор-
матов, объясняется механизм выбора того или иного формата или их сочетания
для решения конкретных задач. Сравниваются такие характеристики форматов,
как непрерывность, пригодность для использования в качестве поверхности ма-
териала, деформируемость, топологическая гибкость. Также рассматриваются
форматы, подходящие для моделирования объектов нашего проекта.
О Глава 7 -«Методы». В этой главе рассматриваются различные приемы модели-
рования, не относящиеся непосредственно к проекту «Место для парковки».
С одной стороны, это позволяет получить информацию об общих целях моде-
лирования, а с другой — сэкономить время при описании моделей нашего проек-
та. В число рассматриваемых приемов включены приемы получения плавных
границ, обработки опорных изображений, формирования отверстий, создания
скосов.
О Глава 8 «Наборы объектов». В этой главе сначала описывается процесс модели-
рования набора объектов в общем виде, а затем — на примере нашего проекта.
Улицы и здания, необходимые для проекта «Место для парковки», иллюстри-
руют типичные проблемы моделирования и способы их решения с точки зре-
ния эффективности и соответствия дизайну.
О Глава 9 «Реквизит». Требования к реквизиту отличаются от требований к на-
борам объектов, поэтому мы посвятили им отдельную главу. Начав с простого
объекта, мы постепенно переходим к моделированию такого сложного объекта,
как автомобиль главного героя. При этом демонстрируются различные приемы
моделирования с обоснованием их выбора.
О Глава 10 «Персонажи». Симпатичная Клякса и противный Крутан моделиру-
ются на основе иерархических поверхностей. В этой главе вы найдете также
обсуждение вопросов эффективности рабочего процесса, Вы узнаете и о том,
как важно придать персонажу максимальную привлекательность и равномер-
но распределить управляющие точки его оболочки.
о Глава 11 «Компоновка». Бэтой главе обсуждается цифровая кинематография
с применением камер. Свой взгляд на данный вид искусства представляет Адам
Шнитцер (Adam Schnitzer), глава отдела компоновки фирмы Lucas Art.
Содержание книги 25

О Глава 12 «Узловая архитектура». Принцип узловой архитектуры Maya на пер-


вый взгляд может показаться сложным, но разобраться в нем достаточно легко.
В этой главе объясняются различные аспекты функционирования направлен-
ных ациклических графов и графов зависимости, формирующих объединение
узлов, форм и вычислений, которое, собственно, и представляет собой сш-ну
в Maya. Четко объясняется суть атрибутов и связей, что позволяет понять прин-
цип работы приложения и улучшить навыки работы с ним.
О Глава 13 «Создание усовершенствованных связей». Следующим шагом в изуче-
нии Maya является создание усовершенствованных связей между узлами.
В этой главе на несложных примерах демонстрируется этот процесс. Начиная
с коротких упражнений и постепенно двигаясь вглубь, вы поймете, как органи-
зуются связи между узлами.
О Глава 14 « Частицы и динамика». Модуль имитации динамики в Maya является
одним из самых мощных, но при этом он чрезвычайно сложен, В этой главе опи-
сываются все детали имитации водной струи. Особое внимание уделяется
созданию высокоуровневых элементов управления, настройке параметров ви-
зуализации, позволяющей менять вид частиц, корректной интеграции готоных
элементов в остальную сцену.
О Глава 15 «Общие аспекты анимации персонажей», В этой главе вы не только най-
дете описание разнообразных инструментов, предназначенных для создания ани-
мации, но и познакомитесь с общими принципами этого процесса, характерны-
ми не только для компьютерной графики, но и для более традиционных видов
искусства. Интервью со Скотом Кларком (Scott Clark), аниматором из студии
Pixar, проливает свет на эту не всегда верно интерпретируемую область челове-
ческой деятельности. Вы также познакомитесь с инструментами, предназначен-
ными для создания иллюзии жизни на экране вашего компьютера.
О Глава 16 ^Подготовка персонажей к анимации». Процесс сборки персонажа пред-
полагает знание ряда ключевых понятий и идей, без которых организовать i ipa-
вильно этот процесс практически невозможно. Здесь раскрываются концепции
сборки персонажей и методы внедрения этих концепций в производственный
конвейер Maya. Вы узнаете пять золотых правил подготовки персонажа к ани-
мации. Не обойдены вниманием и потенциальные сложности и опасности это-
го процесса. Завершает главу интервью с Полом Туристом (Paul Thuriot), со-
трудником студии Tippett — одной из самых уважаемых и знаменитых студий
по созданию компьютерной графики, специализирующейся на анимации пер-
сонажей и прочих созданий.
О Глава 17 «Сборка персонажей». Эта глава посвящена сборке как двуногого,, так
и четвероногого персонажей нашего фильма. Рассказ о создании пользователь-
ских элементов управления и соединении их с персонажем даст вам представ-
ление о том, как это происходит в настоящих цифровых студиях. Здесь вы най-
дете подробные упражнения по данной теме, причем как простые, так и более
сложные, в которых весьма подробно объясняется ход сборки собаки и челове-
ка. Ключичная область, сгибающиеся и растягивающиеся руки и ноги, позво-
ночник двуногого существа, хвост и уши четвероногого — способы настройки
всех этих элементов описываются в соответствующих упражнениях. Не забы-
26 Введение

ты также черты лица, челюсть и глаза человека. Показаны процессы гладкого


связывания скелета с оболочкой и раскраски весов, гарантирующие плавные
деформации персонажа. Если вы заинтересованы в изучении новых сложных
приемов сборки персонажей, эта глава определенно для вас.
О Глава 18 «Назначение материалов». В этой главе показано, как работать с рас-
тровыми изображениями текстур и процедурными картами текстур. Также де-
монстрируется техника работы с проекционными координатами при назначе-
нии материала поверхности объекта. Чтение этой главы может значительно
улучшить как вашу наблюдательность, так и навыки использования инструмен-
тария Maya.
О Глава 19 «Освещением. После завершения работы над сценой остается только ее
раскрасить с помощью многочисленных инструментов освещения Maya. Этот
процесс может значительно ускорить эффективная предварительная подготов-
ка. Б этой главе вы узнаете, как воссоздать теплый солнечный день и как сде-
лать вид сцены более реальным с помощью шести направленных источников
света.
о Глава 20 «Визуализация». Для ускорения процесса получения окончательного
изображения сцены используются различные методики, с которыми вы и по-
знакомитесь в данной главе. Все, что вы делали до этого, — только замешива-
ние теста, а теперь пришло время выпечь торт, то есть получить готовый фильм.
О Приложение А «Обычные и дополнительные возможности языка MEL». В этом
приложении вы найдете более подробные сведения о языке MEL и его приме-
нении в анимации. Вы получите много дополнительной информации, в том чис-
ле ряд полезных сценариев. Приложение завершается кратким знакомством
с языком C++ и исчерпывающим примером создания подключаемого пользо-
вательского деформатора. Все представленные исходные тексты были тщатель-
но протестированы. Они находятся на прилагаемом к книге компакт-диске,
О Приложение Б «Список терминов». Здесь перечислены основные термины, ис-
пользуемые в книге.

От издателя перевода
Ваши замечания, предложения, вопросы отправляйте по адресу электронной по-
чты comp@piter.com (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
Все исходные тексты, приведенные в книге, находятся по адресу http://www.piter.
com/download.
Подробную информацию о наших книгах вы найдете на веб-сайте издательства
http://www.piter.com.
ЧАСТЬ I

Maya
и производственный
конвейер

Глава 1. Использование Maya


Глава 2. Знакомство с проектами
Глава 3. Конвейер цифровой студии
Глава 4. Приемы работы в Maya
Глава 5. Язык MEL
1 Использование Maya

Многие пользователи Maya уже знают, что в названии этого приложения отраже-
на концепция индуизма и буддизма, которая иногда рассматривается как «Мать
всего сущего», иногда считается материальной вселенной как таковой, а в некото-
рых случаях понимается как иллюзия, маскирующаяся под реальность. Она ухо-
дит своими корнями в природу окружающей нас действительности. В упомяну-
тых восточных философских школах считается, что реальность отличается от того,
что видят люди. Сам по себе материальный мир является иллюзией, скрывающей
фундаментальное единство всех вещей. Слово «maya» одновременно означает и сам
мир, и иллюзию его реальности.
Такое название прекрасно соответствует приложению, работе с которым посвя-
щена эта книга. Программа Maya, созданная фирмой Alias]Wavefront, является
чрезвычайно мощным инструментом, позволяющим создавать целые миры, не от-
крывая зрителю реальности, таящейся за иллюзорным покровом. Фантастические
создания будут резвиться в лесу из загадочных растений. Громадные космические
корабли примут участие в эффектных межгалактических битвах. Целые цивили-
зации продолжат свою жизнь на экране вашего компьютера. Иллюзия, создавае-
мая Maya, ограничена только вашим воображением и ресурсами вашей системы.
Впрочем, это достаточно серьезные ограничения. Наше воображение базирует-
ся в основном на предшествующем опыте. Maya не в состоянии восполнить его
недостаток, хотя и позволяет скрыть пробелы в наших знаниях. Сложное, как и ок-
ружающий нас мир, приложение Maya содержит инструменты, которые позволя-
ют упростить объекты, сделав их управляемыми.
Хотя для работы с Maya требуется довольно много знаний и навыков, те, кто
внимательно изучает это приложение, рано или поздно вознаграждается за свои
усилия. Новичку же с Maya сложно, особенно сразу после первого запуска. Но все
нужные знания постепенно можно получить. Инструменты, с одной стороны, яв-
ляют собой квинтэссенцию знаний и навыков их разработчиков, с другой — до-
пускают настройку под нужды конкретного пользователя. С их помощью можно
создавать захватывающие сцены, достойные картинной галереи или фильма.
Начав работать с Maya, большинство людей ставит перед собой цель превра-
титься из новичка в мастера. Эта книга призвана помочь более-менее опытным
пользователям Maya получить дополнительные знания. Для этого действие раз-
личных функций будет продемонстрировано в ходе создания реального анимаци-
онного ролика. Также в книге вы найдете подробное описание инструменгов, ба-
Возможности Maya 29

зовую теорию, стратегию создания анимированных сцен и практические советы.


В этой главе мы поговорим на следующие темы:
О возможности Maya;
О история развития Maya;
О приобретение навыков работы с Maya;
О подходы к созданию проектов в Maya.

Возможности Maya
Учитывая колоссальные возможности Maya, проще перечислить, что это прило-
жение делать не умеет. Оно не может подать вам утренний кофе, выгулять вашу
собаку и т. п. Однако список недостатков Maya в качестве приложения для работы
с компьютерной графикой окажется очень коротким. Многообразие функций Maya
является наследием предыдущих версий программы (о них мы поговорим чуть
позже) и результатом кропотливой работы сотрудников фирмы AliaslWavefront.

Области применения
Maya позволяет делать множество потрясающих вещей. Большинство поклон-
ников компьютерной графики хорошо осведомлены о фильмах, в которых исполь-
зовались созданные с помощью этой программы специальные эффекты и анима-
ция. «Властелин колец» и «Шрек», «Титаник» и «Перл Харбор», «Звёздные вой-
ны: эпизод I» и «Последняя фантазия», «Мумия» и «Матрица*- — при создании
всех этих фильмов фигурировало приложение Maya, вдыхая жизнь в персона-
жей и развертывая перед нашими глазами захватывающие сцены. Всего за не-
сколько лет эта программа стала просто незаменимой при производстве художе-
ственных фильмов.
Также она активно используется в телевизионных шоу и рекламе. Среднеста-
тистический телезритель вряд ли особо задумывается при виде гвинейской сви-
ньи или кролика, рассказывающих о новинках видео, но пользователи Maya зна-
ют, сколько труда вложено в этих персонажей, какие мощные инструменты потре-
бовались для их создания. Даже когда дети смотрят свои любимые мультфильмы
или музыкальные клипы, шанс обнаружить там «следы» Maya очень велик.
Многие компьютерные игры также создавались с помощью Maya. Именно это
приложение помогло продукции компаний Nintendo's GameCube, Sony's Playstation
и Microsoft's Xbox превратиться из интересных концепций в реально существую-
щие игры. Такие разработчики игр, как Electronic Arts, Square, Acclaim, Lucas Arts,
Sega и Sony, используют Maya, чтобы сделать свою продукцию максимально при-
влекательной как для детей, так и для взрослых.
В то время как дизайнеры изделий создают все, от электронных устройств (таких
как устройства ввода для видеоигр) до ювелирных изделий, игрушек и разнообраз-
ной бытовой продукции с помощью приложения Studio Tool от фирмы Alia-;|Wa-
vefront, многие лидирующие компании, такие как BMW Designworks, для переноса
новых идей с листа бумаги в повседневную жизнь применяют Maya.
Даже ученые и инженеры часто прибегают к Maya для наглядного представле-
ния сложных данных. Конечно, это приложение не в состоянии помочь в деталях
30 Глава 1 * Использование Maya

рассчитать столкновения галактик, но ученые из студии компьютерного модели-


рования NASA используют его для воспроизведения результатов эмуляции. На
суде при разборе дорожно-транспортных происшествий тоже можно видеть смо-
делированные с помощью Maya аварийные ситуации.

Инструменты
Всего за несколько лет приложение Maya прошло путь от новинки до популярной
программы создания компьютерной графики и анимации. Его популярность на-
прямую связана с обширным инструментарием. Применяя даже часть инструмен-
тов Maya, вы не сможете не почувствовать их мощь и точность. Не обязательно
пользоваться всеми возможностями Maya, однако, по крайней мере, знать о них
нужно.
Существует множество способов конструирования моделей. Разработчикам
компьютерных игр пригодится полный набор инструментов для моделирования
полигонов. Промышленные дизайнеры найдут замысловатые инструменты для
построения NURBS-поверхностей1, позволяющие создавать сложные и точные
модели. Аниматорам наверняка понравятся гладкость и гибкость иерархических
поверхностей. В каждом из вышеупомянутых случаев можно выбирать различные
подходы к моделированию и методы обработки объектов, в том числе и с помо-
щью встраиваемых инструментов Artisan (Виртуальные кисти).
Геометрические примитивы можно легко импортировать и экспортировать,
используя различные форматы, в том числе и IGES, DXF, OBJ, RIB и Alias Wire.
Анимация, в том числе данные, получаемые с помощью подключаемого модуля
Maya Live, также допускает импорт и экспорт.
Оживление персонажей осуществляется различными способами. Для этого ис-
пользуются деформаторы, скелеты, телесные оболочки и ограничения. Множество
деформаторов в Maya позволяют работать с пространственными решетками, кла-
стерами и объектами влияния, а также выполнять плавное сопряжение форм. Что-
бы заставить двигаться скелет персонажа, можно использовать обратную кинема-
тику, а затем объединить этот скелет с телесной оболочкой и проконтролировать
вид поверхности на сгибах суставов. Достичь естественных и осмысленных дви-
жений персонажа позволяют многочисленные ограничения. Ну и, наконец, суще-
ствует возможность взаимодействия со сложными элементами управления персо-
нажем без вторжения в иерархическую цепочку.
В Maya существует множество способов анимации готового персонажа. Кроме
традиционного метода, который состоит в задании ключевых кадров, можно вос-
пользоваться инструментом Set Driven Key (Создать управляемый ключ), принцип
работы которого связан с архитектурой Maya, позволяющей связывать друг с дру-
гом практически любые объекты. Можно также воспользоваться анимацией вдоль
пути, захватом движения или даже нелинейной анимацией. Повысить производи-
тельность работы позволят такие инструменты, как Graph Editor (Редактор анимаци-
онных кривых) и Trax Editor (Редактор слоев анимации).
Для создания сложных материалов предназначены инструменты Hypershade
(Редактор узлов) и Hypergraph (Просмотр структуры). С помощью графического ин-
1
Аббревиатура NURBS расшифровывается как Nonuniform rational B-splines, то есть неоднородные
рациональные В-шлайны. — Примеч. ред.
Возможности Maya 31

терфейса они связывают воедино отдельные узлы, что значительно ускоряет про-
цесс работы над материалом.
Количество эффектов, которые можно получить с помощью Maya, поистине
огромно. Вы можете создавать как невероятные эффекты течения с помощью мо-
дуля Fluid Effects, так и удивительные эффекты рисования путем применения мо-
дуля Paint Effects. Системы частиц, решатели динамики, имитаторы меха и тканей -
вот далеко не полный перечень инструментов, каждый из которых вносит свой
вклад в индустрию развлечений.
Дополняют функции Maya инструменты освещения и визуализации. Можно
выбирать как осветители различного типа, так и разные визуализаторы (в том числе
от сторонних производителей). В наше время для создания анимации использу-
ются инструменты, которые невозможно было даже вообразить десять лет назад!
Разумеется, помимо инструментов в Maya поддерживаются также прикладной
программный интерфейс (Application Programming Interface, API) и встроенный
язык Maya (Maya Embedded Language, MEL), предназначенный для создания сце-
нариев. Если в купленной вами версии приложения отсутствуют нужные, по ва-
шему мнению, функции, их можно создать самостоятельно (и продать другим
пользователям). Образно выражаясь, Maya предоставляет не только полный на-
бор готовых ключей, но и ящик с инструментами для изготовления новых ключей.

Характеристики
Несмотря на множество мощных инструментов, успешная работа с Maya вовсе не
гарантирована. При создании Maya большое внимание было уделено дополнитель-
ным возможностям, доступ к которым нельзя получить с помощью списка команд
и которые выделяют Maya среди конкурентов.
Одной из главных особенностей Maya является приспособляемость. Существует
множество методов взаимодействия с этим приложением. Некоторым пользова-
телям, к числу которых относятся и авторы, нравятся контекстные меню и полки1,
другие предпочитают традиционные средства оперативного доступа к командам
(обычные меню и панели инструментов).
Нельзя не упомянуть и способность к изменению конфигурации. Пользовате-
ли могут вносить изменения в меню, добавлять новые варианты компоновки и да-
же перестраивать интерфейс. Maya предоставляет привередливым пользователям
возможность выбора наиболее удобного порядка работы путем регистрации соб-
ственных клавиатурных комбинаций и моделирования собственного варианта
интерфейса.
Функции Maya допускают расширение. Художникам и аниматорам пригодит-
ся язык MEL, в числе прочего лежащий в основе пользовательского интерфей-
са Maya. Разработчикам программного обеспечения будет полезен интерфейс при-
кладного программирования, позволяющий создавать новые функции, как встраи-
ваемые в Maya, так и используемые в качестве отдельных приложений.
Исходные данные в Maya также доступны. Хотя пользователи иногда предпо-
читают хранить их в двоичном формате, Maya предоставляет также формат ASCII,
благодаря чему появляется возможность их просмотра и редактирования. Пред-
1
Полками (shelves) в интерфейсе Maya называют панели инструментов, которые пользоиатель мо-
жет самостоятельно настраивать, добавляя на них необходимые инструменты. — Примеч. реВ.
32 Глава 1 • Использование Maya

положим, у вас есть геометрический объект сложной структуры. Что с ним можно
сделать? Достаточно открыть файл в вашем любимом текстовом редакторе и при-
бегнуть к небольшому «хирургическому вмешательству». Это может оказаться
удобней, так как файл уже состоит из команд языка MEL. Имея под рукой спра-
вочник MEL-команд, можно легко «препарировать» самые сложные сцены, разби-
раясь, как они устроены.
Наконец, нельзя не упомянуть о возможности легко перемещать данные из од-
ной системы в другую. Например, можно без проблем импортировать ESP-файлы
или экспортировать IGES-файлы. Хотите воспользоваться визуализатором Ren-
derMan от фирмы Pixar? Экспортируйте RIB-файл. Хотите опубликовать сцену
в Интернете? В Maya имеется поддержка Shockwave 3D. Можно даже разрабаты-
вать собственные интерфейсы данных, начиная от элементарных вещей, таких как
добавление пользовательских атрибутов к прикладному про:граммному интерфей-
су, и заканчивая написанием собственных структур данных.

Эволюция Maya
В отличие от иллюзорной вселенной, приложение Maya не могло появиться из
ничего. Оно тщательно разрабатывалось специалистами в области программного
обеспечения, объединив в себе лучшие черты из SD-программ прошлых лет. В ре-
зультате появился продукт, соответствующий требованиям нового тысячелетия.
Формально появившаяся в 1995 году, фирма Alias)Wavefront реально начала
свое существование в середине 80-х годов в момент формирования компаний Alias
и Wavefront. Датой создания фирмы Alias считается 1983 год, в то время как фир-
ма Wavefront появилась годом позже. Обе компании были основаны небольшими
группами людей, имеющих массу идей в области компьютерной графики. В про-
цессе конкуренции каждая из них заняла на рынке свою нишу. Хотя обе компании
занимались анимацией для кино и видео, по мере их развития различия между
ними становились все более существенными.
Выдвижение компании Alias произошло в 1985 году, когда фирма General Motors
соблазнилась потенциалом программного обеспечения Alias/1. Ранее ориентиро-
ванные на инженерное программное обеспечение фирмы, занимающиеся промыш-
ленным дизайном, быстро восприняли идею приложений, предназначенных для
моделирования поверхностей и их визуализации. Изначально моделирование осу-
ществлялось на основе фундаментальных сплайнов, но затем быстро произошел
переход к однородным рациональным В-сплайнам, а потом и к неоднородным ра-
циональным В-сплайнам. Это улучшило внешний вид моделей и повысило их при-
влекательность в глазах проектировщиков. Дизайнеры обнаружили, что программ-
ное обеспечение от фирмы Alias позволяет лучше контролировать вид моделей.
В это время компания WaveFront превратилась в признанного лидера в произ-
водстве анимации. Программное обеспечение от этой фирмы, в основном предна-
значенное для моделирования на основе полигонов, стало практически незамени-
мым при создании спецэффектов. Благодаря возможности программирования эти
приложения также стали активно применяться для научных визуализаций, напри-
мер изображений турбулентного течения, взаимодействия галактик и вихревых
Работа с Maya 33

штормов. К 1998 году программное обеспечение от фирмы WaveFront (Personal


Visualizer) повсеместно распространилось на компьютерах Silicon Graphics.
По мере эволюции рынка и выпускаемой продукции компании Wavefront и Alias
занимали новые ниши, но этот процесс продолжался недолго. Движимые желани-
ем соответствовать вызовам конкурентов, эти фирмы продолжали поставлять
новинки и копировать продукцию друг друга( пытаясь захватить как можно бол ь-
ший сегмент рынка. Иногда они просто покупали конкурирующие фирмы, на-
пример, компания Wavefront приобрела в 1988 году фирму Abel Image Research,
а в 1993 году — фирму Thompson Digital Images. В других случаях начиналась че-
харда с различными функциями, например системами частиц и модулями дина-
мики. Соревновательный дух благотворно сказывался на деятельности обеих ком-
паний.
В феврале 1995 года произошло их слияние с целью разработки новой про-
дукции. Фирма Alias начала работу над новым проектом, и было достаточно ло-
гично привлечь к ней фирму Wavefront. В 1998 году этот совместный проект был
впервые представлен широкой публике под именем Maya и имел оглушитель-
ный успех.
Приложение Maya облегчило жизнь множеству аниматоров. Хотя промышлен-
ные дизайнеры в некоторых случаях до сих пор применяют для моделирования
сложных поверхностей такие программы, как Studio и AutoStudio, аниматоры од-
нозначно предпочли Maya. Многие вещи, ранее требовавшие написания сложного
кода, в Maya можно реализовать через графический интерфейс. Язык MEL позво-
ляет просматривать и редактировать внутреннюю структуру программы. В Maya
соединились инструменты и опыт предшествующих приложений для работы с ком-
пьютерной графикой. Появление Maya упростило решение многих задач, а также
дало возможность решения задач совершенно нового уровня.
Приложение Maya изменило сферу распространения компьютерной графики.
Теперь этот род деятельности не является прерогативой крупных компаний, так
как приобрести Maya могут самые обычные пользователи. Кроме того, само при-
ложение продолжает развиваться быстрыми темпами.

Работа с Maya
Хотя история Maya и индустрии компьютерной графики весьма интересна, напря-
мую она вас не касается. Каждый пользователь этого приложения уникален, как
и каждая студия, применяющая эту программу. О своих читателях мы можем с у-
веренностью сказать только одно. Они хотят изучать Maya, иначе они не приобре-
ли бы эту книгу.
Maya привлекает самых разных пользователей. В их число входят настоящие
художники, глаз которых натренирован на восприятие формы, цвета и компози-
ции. С Maya работают и специалисты в области вычислительной техники, привык-
шие формировать иллюзорный мир с помощью кода. Не стоит забывать и о фана-
тах компьютерных игр, которым любопытен инструмент, воплотивший в реаль-
ность их представление об идеальном отдыхе. Некоторые пронесли свою любовь
к анимации с самого детства, в то время как другим всего лишь требуется визуа-
34 Главе! 1 • Использование Maya

лизировать ошеломляюще сложные научные данные. Люди начинают свое зна-


комство с Maya по разным причинам. Они пытаются воплотить свое видение мира,
которое могут понять и оценить другие.
Но будем честны. Приложение Maya не предназначено для глупых людей.
Мощная система требует соответствующих элементов интерфейса, а также не-
обходимых для их использования навыков. Для управления космическим кораб-
лем недостаточно освоить джойстик и пусковую кнопку, в конце концов, предна-
значение корабля многофункционально и для управления им нужны соответству-
ющие знания и навыки, а некомпетентный человек, скорее всего, лишь разобьет
корабль о землю.
Хотя разбиение сложной программы на управляемые фрагменты достойно по-
хвалы, для работы с Maya по-прежнему требуется квалифицированный пользова-
тель. То есть для создания с помощью Maya очередной иллюзии нужно в полной
мере задействовать ваш талант, ваше видение мира, ваш опыт.

Обучающие ресурсы
Итак, каким же способом можно получить необходимые для работы с Maya навы-
ки? Даже специальные обучающие программы дают лишь поверхностные сведе-
ния. К счастью, существуют многочисленные дополнительные ресурсы, которыми
может воспользоваться человек, имеющий базовые навыки работы с Maya.
Разумеется, самым главным в этом деле является ваш собственный опыт. С ним
не сравнится ничто. Даже самые талантливые пользователи Maya предпочтут взять
уже имеющуюся работу и внести в нее необходимые изменения, а не начинать про-
ект с «чистого листа». К сожалению, опыт не накапливается сам по себе. Для его
получения необходимо приложить определенные усилия и быть крайне вниматель-
ным к деталям.

Предшествующий опыт
Строго говоря, не существует деятельности, наличие опыта в которой однознач-
но помогло бы научиться работать с Maya. Искусные пользователи получаются
из художников, аниматоров, инженеров, программистов, фанатов компьютерных
игр, промышленных дизайнеров и т. п. Ведь Maya применяется в самых разных
областях.
При этом от пользователя требуются многочисленные полезные навыки. На
первом месте стоит способность мысленно вообразить модель или сцену. Хотя для
решения этой проблемы может оказаться достаточно обычной настойчивости. Глав-
ное — уметь представлять пространственные соотношения между объектами. Это
можно делать как мысленно, так и на бумаге. Другими словами, для успешного
освоения Maya желательно уметь рисовать. Ведь вам потребуется конструировать
модели, планировать расположение объектов в сцене, продумывать позы персона-
жей, выполнять раскадровку анимации и даже раскрашивать объекты. Впрочем,
вопреки распространенному мнению, для создания сцен в Maya вам вовсе не ну-
жен особый талант художника.
СОВЕТ-
Желательно все время держать рядом с компьютером блокнот или пачку бумаги, чтобы иметь воз-
можность сразу же зафиксировать пришедшие в голову идеи.
Работа с Maya 35

Также важно, чтобы вам доставлял удовольствие процесс решения проблем.


Имейте в виду, что проблемы появятся вне зависимости от природы задачи,
которую вы ставите перед Maya. Мы говорим не о проблемах с программным
обеспечением, в случае возникновения которых остается только написать раз-
работчику сообщение об обнаруженном дефекте. Нет, мы подразумеваем всего
лишь детали планирования и разработки сцены, необходимые для получения
окончательного результата. В одном случае требуется понять способ управле-
ния артикуляцией персонажа, в другом — решить, как правильно расположить
источники света, а иногда достаточно написать сценарий на языке MEL, чтобы
избежать выполнения нудных, повторяющихся действий. Если поиск решения
в подобных ситуациях доставляет вам удовольствие, значит, работать с Maya
вам понравится.
Также будут крайне полезными навыки программирования. Но даже если вы
никогда не писали программ, поводов для беспокойства нет. Большинство сцена-
риев языка MEL состоят всего из нескольких строк, а его синтаксис можно осво-
ить по мере изучения структуры Maya.
Более важным является знакомство с платформой, на которой вам предстоит
работать. Нужно уметь хотя бы на уровне пользователя ориентироваться в уста-
новленной на вашем компьютере операционной системе. Умения загрузить при-
ложение Maya и выйти из него в данном случае явно недостаточно. Старайтесь по
мере сил изучать свою операционную систему, ведь впоследствии это позволит
сэкономить время и даст дополнительные возможности. К счастью, большинство
пользователей Maya не нуждается в подобных напоминаниях.

Эксперименты
Основным источником информации является само приложение Maya. Провести
эксперимент можно в любой момент. Помните, что перед тем как приступить к вы-
полнению новых технических действий, желательно сохранить сцену.
Удивительно, но часто пользователи об этом забывают. Возможно, процесс ра-
боты над крупным проектом настолько поглощает, что у человека даже не возни-
кает мысли сохранить сцену и попробовать альтернативные варианты действий.
В наше время можно недорого приобрести жесткий диск большого объема, поэто-
му имеет смысл выработать полезную привычку сохранять свою работу как мож-
но чаще и рассматривать сохраненные варианты перед принятием решения о даль-
нейшем моделировании.
СОВЕТ
Разработайте понятную систему именования файлов и проектов с отдельным вариантом именова-
ния тестовых сцен. 8 этом случае вам не придется думать, где хранить результаты экспериментов
и где их потом искать.

Иногда эксперимент состоит в подборе различных параметров для незнакомой


команды. В других ситуациях может потребоваться построение упрощенной гео-
метрической модели и выполнение с ней различных операций.
Для решения большинства проблем достаточно тестирования разных вариан-
тов действий на упрощенных моделях. Но даже если единственным выходом яв-
ляется работа над всей сценой, помните, что вы вовсе не обязаны проходить этот
путь до конца. Попробуйте реализовать идею, верните сцену в исходное состоя-
36 Глава 1 • Использование Maya

ние, испытайте другой вариант. Если полученный результат понравится, сохрани-


те сцену.
В Maya можно экспериментировать бесконечно. Команду отмены допустимо
вызывать сколько угодно, что позволяет отменять целые последовательности опе-
раций. Однако имейте в виду, что подобное возможно только в пределах одного
сеанса. Когда окно программы закроется, произойдет автоматическая очистка бу-
фера, и данные обо всех выполненных ранее операциях будут потеряны.
СОВЕТ
Установить разумное количество отменяемых операций можно в диалоговом окне Preferences (Па-
раметры). По умолчанию использовать команду Undo (Отмена) можно десять раз. Установка пере-
ключателя Infinite (Бесконечность) в группе Queue (Стек) дает возможность применять эту команду
бесконечно. Однако для большинства сцен достаточно ввести в поле Queue Size (Размер стека)
значение от 100 до 200.

Богатое поле для экспериментов дает история преобразования объектов. Хотя


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

Образование
Хотя лучшим учителем является опыт, пренебрегать образовательными ресурса-
ми не стоит. Существует множество подходов к изучению компьютерной графи-
ки, в том числе и с использованием книг (в частности той, которую вы держите
в руках).
В настоящее время компьютерная графика настолько распространена, а при-
ложение Maya настолько популярно, что по этой теме написано множество книг.
Одни предназначены для новичков, другие — для опытных пользователей. Мно-
гие содержат развернутые упражнения, тщательно протестированные, чтобы га-
рантировать отсутствие проблем при их выполнении и предсказуемый результат,
Заголовки книг различных издательств часто похожи друг на друга. Поэтому не-
которые пользователи покупают все подряд, чтобы потом иметь возможность срав-
нивать информацию, предлагаемую разными авторами.
Даже самые сложные программы имеют справочную документацию, которую
можно, например, загрузить из Интернета. Однако желательно иметь дополнитель-
ные источники информации, ведь в документации можно найти только сухие фак-
ты и описания инструментов и элементов интерфейса. Кроме того, в примерах,
которыми производитель снабжает документацию, обычно не рассматриваются
проблемные ситуации, в то время как независимые издания (например, данная
книга) часто содержат описание различных обходных путей, применяемых в не-
стандартных случаях.
Работа с Maya 37

Разумеется, больше всего информации предоставлено фирмой Alias|Wavefront.


Стоит запустить программу Maya и нажать клавишу F1, чтобы запустилась спра-
вочная система как по работе с собственно программой, так и по командам язы-
ка MEL. Там можно найти объяснение различных понятий или узнать, как работа-
ет та или иная команда.
Некоторые сайты сторонних производителей, посвященные компьютерной гра-
фике, также содержат информацию по Maya. Особенно популярными являются
пособия, написанные пользователями, так как в них обычно предоставляются по-
шаговые инструкции. Постарайтесь найти и систематизировать такие ресурсы, тик
как впоследствии они могут пригодиться.
Часто на сайтах сторонних производителей можно найти форумы для обмена
мнениями и информацией о Maya. Можем порекомендовать вам сайты www.SDArc.
com, www.cgchannel.com, www.cgtalk.com и www.highend3d.com. Здесь можно задать
вопрос и получить ответ от других пользователей,
Особенно популярным ресурсом является список рассылки на сайте www.highend3d.
com, который посещается тысячами пользователей Maya. Подписка на рассылку
осуществляется непосредственно на сайте, и лучше сразу завести для нее отдель-
ный ящик, так как сообщений будет очень много.
Другой возможностью получения информации является присоединение к rpyi i-
пе пользователей. Избавляя от необходимости встречаться «вживую», Интернет
в то же время увеличивает возможности эффективного обмена информацией и ме-
тодиками внутри групп. Возникновение личных отношений может помочь, напри-
мер, в поиске работы. Ну и, конечно, не стоит забывать тот факт, что всегда прият-
но поговорить с человеком, который понимает ваши проблемы. Узнать, существу-
ют ли группы пользователей в вашем городе, можно на сайте компании Alias|Wa-
vefront.
Также во многих городах существуют курсы по Maya. Теперь пользователям
не приходится полагаться на правильный выбор работы или коллегу со связями,
чтобы получить навыки применения этого приложения на профессиональном
уровне.
Ну и, наконец, благодаря приложению Maya Personal Learning Edition появи-
лась возможность осваивать Maya, сидя за собственным компьютером. Хотя оно
доступно только для версии Maya Complete, новички вполне могут с его помощью
получить большинство сведений о программе. Нужна определенная решительное! ь,
чтобы заставить себя разобраться в многочисленных функциях, но с помощью до-
полнительных пособий вполне возможно пройти путь от новичка до опытною
пользователя.

Собственный подход
Не менее важным, чем различные образовательные ресурсы по Maya, является ваш
подход к делу. Это сложное приложение, и количество функций при первом зна-
комстве с ним может испугать, но если изучать его терпеливо и с любопытством,
оно станет вашим лучшим помощником. Конечно, вам захочется разобраться во
всем как можно быстрее, и на первых порах вы, скорее всего, будете обескуражены
количеством информации, которую нужно усвоить. Это совершенно нормально.
Научиться работать с Maya не легко, но вполне реально.
38 Глава 1 • Использование Maya

Такие приложения, как Maya, появляются далеко не каждый день. Его мощь
и точность поистине поразительны, и работа с ним требует большого опыта. По
сложности Maya превосходит, к примеру, Mac OS X. Масса времени и труда была
потрачена на создание и улучшение функций, благодаря которым приложение
Maya стало доступным для новичков, в то же время оставив опытным пользовате-
лям возможность задействовать всю его мощь,
Приложение Maya является столь сложным, что нужно честно признать — пол-
ностью освоить его невозможно. Неважно, сколько времени вы проработали с этим
приложением и сколько проектов создали с его помощью. Все равно каждый день
вы будете открывать для себя что-то новое. И это хорошо, хотя несколько огорчи-
тельно для самолюбия. В конце концов, не нужно знать приложение досконально,
достаточно сведений, которые требуются для выполнения стоящих перед вами за-
дач.

Заключение
Приложение Maya не предназначено для глупых людей. Это продукт мирового
класса, требующий затрат сил и энергии, и в умелых руках он может творить чуде-
са. Мы видим результаты его применения на телевидении,, в кино, в парке аттрак-
ционов, в компьютерных играх. Опытный пользователь Maya может заставить вос-
хищенных зрителей по всему миру замереть перед своими работами.
Для приложения Maya, появившегося в результате слияния ряда ведущих про-
изводителей программного обеспечения, характерны мощь, размах, приспособля-
емость. Интеграция и расширение функций, ранее разработанных для различных
программных продуктов, дали в результате программу с потрясающим потенциа-
лом.
Разнообразные технологии моделирования, от полигонов до NURBS-поверх-
ностей и иерархических поверхностей, позволяют легко начать любой проект.
Мощные и конфигурируемые сети материалов придают моделям требуемый вид.
Настройка персонажей и инструменты для работы с анимацией продолжают тра-
диции компаний Alias и Wavefront, признанных лидеров в производстве анима-
ции. Что бы вам не потребовалось — прямая или обратная кинематика, системы
частиц, деформаторы, ограничения, кластеры, захват движения — все можно най-
ти в Maya.
Элементы пользовательского интерфейса можно скрыть для получения допол-
нительного рабочего пространства. Интерфейс API позволяет создавать новые
инструменты и функции. Дополнительные модули позволяют снизить объем ра-
бот до вполне приемлемого уровня, что дает возможность сфокусировать внима-
ние на результате, а не вкладывать все силы в процесс. После завершения модели-
рования сцены можно задействовать инструменты освещения и визуализации, что-
бы придать сцене требуемый вид.
Новичкам достаточно просто научиться работать с Maya, но стать опытным
пользователем можно только путем наработки навыков. Чтение книг при всей его
полезности способно всего лишь познакомить вас с чужим и идеями. Для выработ-
Заключение 39

ки своего стиля нужно «сойти с чужого следа» и начать поиск новых решений. Как
только инструменты Maya, применяемые методики и сам рабочий процесс станут
вашим «вторым я», можно будет сказать, что вы не просто используете Maya, вы
делаете это хорошо!
В следующих главах мы попробуем «открыть вам глаза» не только на различ-
ные функции Maya, но и на особенности их применения. В процессе работы над
реальным проектом мы попытаемся «отделить зерна от плевел». Вы сделали пер-
вый шаг в джунглях Maya, и эта книга призвана показать вам правильный путь,
чтобы он не сопровождался отчаянными попытками выжить, а превратился в ув-
лекательное путешествие.
Знакомство
2 с проектами

Каким бы невероятным это ни казалось, проект «Место для парковки* не отно-


сится к произведениям, которые пылятся на дальней полке, ожидая, пока их воп-
лотит в жизнь группа фанатов. Впрочем, было бы несправедливо также утверж-
дать, что это известный фильм, который просмотрели миллионы зрителей. Нет,
проект «Место для парковки» был создан специально для вас, читателей этой
книги.
В этой главе описывается только сам проект, а не пошаговый процесс претво-
рения его в жизнь средствами Maya. Детальное рассмотрение процесса вы найдете
в следующей главе, а затем мы приступим к подробному обсуждению каждого шага.
Но для начала давайте познакомимся со стоящими перед нами задачами и ко-
нечной целью наших действий. В этой главе мы обсудим следующие темы:
О история возникновения проекта «Место для парковки»;
О цель создания проекта;
О последовательность событий;
о план создания проекта;
О окончательный результат.

Начало работы
Как во многих других случаях, проект «Место для парковки» родился в результа-
те объективной необходимости, нашей настойчивости и определенного стечения
обстоятельств.
Необходимость возникла после подписания договора с издательством New
Riders. Мы должны были создать книгу о Maya, в которой бы детально описывал-
ся процесс работы над проектом от начала и до конца. Требовалось пособие для
людей, имеющих опыт работы с Maya и хотевших знать, как именно возникшая
в голове концепция претворяется в жизнь. Настойчивость и определенное стече-
ние обстоятельств понадобились для преодоления сложностей, особенно на на-
чальном этапе проекта.
Итак, как же выглядит наш проект?
Начало работы 41

План А
Если быть точным, в момент подписания договора на подготовку книги мы уже
имели в голове некий план проекта. Макс предложил, чтобы проект рекламировал
автомобиль, и сначала показалось, что это хорошая идея. Автомобили представля-
ют собой предмет всем знакомый, достаточно сложный и даже до некоторой степе-
ни эротичный, а реклама автомобилей распространена по всему миру. Соответ-
ственно, рекламный ролик на эту тему будет типичным примером применения
компьютерной графики. Он даже может получиться забавным.
После того как в команду пришли Эрик и Марк, началось обсуждение плана
действий. Требовалось проработать детали и распределить задачи, чтобы превра-
тить наши задумки в реальную книгу. Такую книгу, которую нам самим хотелось
бы купить.
Имея опыт моделирования как автомобилей, так и их отдельных частей, Марк
был весьма обеспокоен масштабами предстоящей нам работы. Автомобиль явля-
ется предметом, прекрасно знакомым всем и каждому, поэтому его модель должна
быть выполнена чрезвычайно тщательно, чтобы можно было дурачить не только
случайных зрителей, но и опытных и критично настроенных читателей, на кото-
рых, собственно, и рассчитана данная книга. Ведь даже приближенная к реальнос-
ти компьютерная модель автомобиля, показанная на рис. 2.1, не выдерживает ни-
какой критики.

Рис. 2.1. Реалистичная модель автомобиля

Для модели нового автомобиля потребуется отражающая краска, стекло и хром.


Создание соответствующих поверхностей требует большого искусства и внима-
ния к мелким деталям. Мы интуитивно угадываем форму автомобиля, глядя на
блики, отражающиеся от его поверхности. И именно блики немедленно подчерки-
вают изъяны, в частности царапины.
42 Глава 2 • Знакомство с проектами

Если автомобильные дизайнеры начнут пользоваться Maya (они обычно пользу-


ются программой AutoStudio от Alias]Wavefront), им потребуется довольно боль-
шая команда и значительный бюджет. А уж нашей маленькой группе такой проект
просто не по силам. Поверхности требуется сгладить с помощью специальной про-
граммы, тщательно изучить полноразмерную модель из папье-маше и отдать ее на
оценку тестовой группе. Дизайн перерабатывается раз за разом, пока на это не бу-
дут потрачены в буквальном смысле миллионы долларов.
Создание автомобильной рекламы включает и сопутствующую деятельность.
Фокусирование внимания исключительно на автомобиле ставит под угрозу весь
проект, так как по мере работы происходит расширение его границ во многих на-
правлениях, а для этого требуются колоссальные ресурсы.,
Еще хуже было предложение о «снятии точного слепка» реального автомоби-
ля, так как в этом случае книга лишалась бы раздела, посвященного моделирова-
нию. Кроме того, мы не знали, как получить разрешение на подобную работу.
Было ясно, что требуется новый план.

Изменение первоначального плана


Мы любим автомобили. Нет, мы на самом деле любим автомобили. Макс прошел
обучение по программе дизайна транспортных средств в художественном центре
дизайна. Марк родом из Детройта, поэтому любовь к автомобилям у него в крови.
Эрик... хм... Эрик просмотрел множество рекламных роликов на эту тему. Можно
сказать, что автомобили — это наша страсть.
Мы хотели включить автомобиль в проект, но понимали, что настоящий рек-
ламный ролик нам не по силам. Собравшись вместе, мы поняли, что нужно четко
сформировать цели нашего проекта и действовать в соответствии с ними.
Определение целей
Прежде всего требовалось точно очертить границы проекта. Малочисленность груп-
пы и тесные временные рамки заставили искать компромисс между рутиной и тре-
бованиями издательства New Riders. Мы решили, что большой, но незаконченный
проект лучше его полного отсутствия.
Не менее важным было осветить как можно больше тем. Пользователи прихо-
дят в книжный магазин с различными намерениями, и уровень у них тоже разный.
Мы могли наверняка утверждать только одно: нашими читателями преимуществен-
но будут люди с опытом работы с Maya. Другое дело, что границы этого опыта в каж-
дом конкретном случае угадать невозможно. Но нужно постараться, чтобы, вы-
полняя наш проект, каждый из них нашел новую для себя информацию.
Дело усложнялось тем, что не имело смысла составлять список возможностей
Maya и создавать простые примеры для их иллюстрации. При покупке любого
приложения пользователь получает справочную документацию, кроме того, уже
существует множество книг, систематически описывающих возможности и сопро-
вождающих их несложными примерами. А мы хотели показать способы создания
настоящего проекта, поиск решений в процессе работы над ним и методы дости-
жения нужных результатов.
Чтобы не отстать от современных веяний, в книгу обязательно требовалось
включить описание новейших и наиболее мощных функций. В нашем случае про-
Начало работы 43

ект зависел от неизвестной даты выпуска следующей версии Maya и входящего


в приложение набора инструментов.
Кроме того, проект требовалось разделить на несколько частей. Хотя вся наша
группа живет в Сан-Франциско, соседями мы не являемся. И собираться каждый
день для совместной работы крайне затруднительно. Разделение проекта на части
не только облегчило бы нам жизнь, но и имитировало реальные условия работы,
когда над заданием трудится целая команда.
Распределенный объем работы кроме всего прочего гарантировал минималь-
ное количество помех процессу публикации. Нам оставалось только отправлять
в издательство результаты своего труда, главу за главой, уравновешивая необхо-
димость работы над проектом необходимостью ее документировать.
Также разделение проекта на части требовалось, чтобы в идеале каждую главу
можно было читать независимо. Разумеется, и в проекте, и в книге есть ссылки на
другие главы, что, впрочем, не мешает решению основных задач.
Мы хотели, чтобы выполнение проекта могло не только доставлять удоволь-
ствие, но и позволяло проявиться художественным талантам. Как и большинство
людей, мы подсознательно лелеяли надежду создать книгу, благодаря которой наши
имена запечатлеются в памяти современников. Пусть даже наше творение не ста-
нет шедевром, но, по крайней мере, оно должно представлять законный повод для
гордости и выдерживать критический взгляд профессионалов, в то же самое вре-
мя заставляя их улыбаться.
Так как нам хотелось продемонстрировать не только свои технические способ-
ности, но и художественные навыки, работа над проектом должна была осуществ-
ляться в достаточно свободной форме. Фотографическая точность не требовалась,
потому что она не позволяла проявить собственный стиль.
Ну и, наконец, проект должен был соответствовать реальному ходу событий.
Хотя продолжительность анимации но первоначальным прикидкам составляла
всего 30 секунд, мы хотели сделать свой рассказ достаточно интересным. Несмот-
ря на желание включить в книгу примеры различных процедур Maya, сценарий
фильма должен был иметь некий достаточно строгий контекст.
ПРИМЕЧАНИЕ
История, рассказанная Марком. Перед сном я часто играю со своим старшим сыном (на момент
выхода книги ему будет шесть лет) в такую игру: он выбирает несколько не связанных друг с другом
предметов, а я сочиняю про них историю. В большинстве случаев у меня получаются вполне прием-
лемые рассказы, хотя на первых порах сын ставил меня в тупик, когда в качестве действующих лиц
предлагал, например, гиппопотама, пчелу, трактор, капусту и гору. Когда мы посмотрели на список
целей, возникло ощущение, что мне снова предстоит играть в эту игру...

Неопределенность
Обсудив возражения против прежней версии проекта и технические требования
к новой версии, мы попытались понять, как же можно удовлетворить всем требо-
ваниям. Мозговой штурм может показаться забавным до того, как вы к нему при-
ступите, или после того, как все уже позади, а нам предстояло проявить всю свою
настойчивость.
Глядя на список технических требований, мы продумывали объекты и опера-
ции, которые могли бы проиллюстрировать все актуальные темы. Нужно было не
44 Глава 2 • Знакомство с проектами

только создать модели автомобилей, людей и прочий реквизит, анимировать их,


осветить и визуализировать полученный результат, но и придумать сценарий, свя-
зывающий все воедино.
Идея включить в повествование автомобиль была просто замечательной, но при
этом мы прекрасно понимали, что его изображение не должно быть фотореалис-
тичным. Это не меняло порядка действий при моделировании объекта, зато дава-
ло дополнительную свободу творчества.
После того как было решено не сковывать себя чрезмерной реалистичностью
изображения, мы договорились, что все входящие в проект объекты будут выпол-
нены в одном стиле. В конечном счете, требовалось получить декоративную кар-
тинку.
Также мы пришли к соглашению, что количество объектов в сцене должно быть
разумным. Скажем, сцена путешествия по сельской местности требует намного
больше элементов, чем сцена в гараже,
Наверное, из-за нашего желания непременно включить в сценарий автомобиль,
возникла идея уличной сценки. На улице автомобиль будет смотреться вполне
естественно, а персонажи можно расположить на тротуаре или в других автомоби-
лях. У этой идеи был хороший потенциал, поэтому мы решили составить список
задач, которые будут выполнены в процессе работы над подобным проектом.
При создании строений и улиц можно рассмотреть моделирование наборов
объектов. Проблем с поиском реквизита для моделирования также не возникнет.
Это почтовые ящики, дорожные знаки, светофоры, счетчики оплачиваемого вре-
мени на стоянке и многое другое. Кроме того, не стоит забывать и о предстоящем
моделировании автомобиля.
Так как в больших городах вдоль тротуаров часто растут деревья, появляется
шанс воспользоваться модулем Paint Effects (Эффекты рисования). Конечно, деревья
можно получить и с помощью иерархических поверхностей, но зачем усложнять
себе жизнь без необходимости? Эффекты рисования позволяют даже «вырастить»
сорняки вокруг деревьев, сделан пейзаж более естественным.
Создание персонажей представляет собой целое таинство, впрочем, наша зада-
ча упрощается тем, что в данном случае предстоит моделировать в основном лю-
дей. Однако это не дает возможности показать работу модуля Maya Fur (Имитация
меха), поэтому в сцену было решено ввести животное. Собаку, кошку, мышь, кого
угодно. Любое четвероногое создание значительно расширяло фронт работ по со-
зданию персонажей.
Итак, было решено, что в сцене должен фигурировать, по меньшей мере, один
двуногий и один четвероногий персонаж. Их предстояло смоделировать, аними-
ровать, одеть, раскрасить, покрыть шерстью и волосами.
Один за другим мы обсуждали различные инструменты и методы работы, ду-
мая над тем, как проиллюстрировать их в рамках проекта. Например, использова-
ние NURBS-поверхностей и иерархических поверхностей будет объясняться при
моделировании различных объектов. Моделирование полигонов было решено ос-
тавить за кадром, тем более что в иерархических поверхностях задействуются раз-
личные инструменты для работы с полигонами. Для создания объектов подобных
поверхностей не потребуется, но в процессе моделирования персонажей вам так
или иначе придется с ними столкнуться.
Марк предлагает план В 45

Хотим познакомить читателей с модулем имитации динамики? Значит, сцена


будет происходить в ветреный день. Требуется объяснить, что такое системы час-
тиц? Пусть из пожарного гидранта льется вода. Будем мы пытаться автоматизиро-
вать процесс совмещения движения объектов, снятых реальной камерой, и объек-
тов сцены с помощью модуля Maya Live (Живая камера)? Нет... вот этого мы делать
не будем. Невозможно объять необъятное. Главное — найти момент, когда следует
поставить точку.
Словом, после нашего обсуждения от первоначальной идеи Макса остался толь-
ко центральный фрагмент, то есть автомобиль. Зато возникло множество новых
идей о том, как сделать нашу историю более жизненной.

Марк предлагает план В


Примерно через неделю после нашего обсуждения я пришел домой усталый и ре-
шил немного вздремнуть. Подобное для меня не характерно, но я был уверен, что
жена вскоре меня разбудит и не позволит пропустить свое любимое вечернее шоу.
До этого момента оставался почти час, дети уже спали, поэтому я принял ориги-
нальное решение. Я задремал... и проснулся с совершенно новой идеей.
Дело было в том, что я думал о проекте практически непрерывно. А засыпать
с желанием обдумать проблему после пробуждения — все равно, что заставлять
себя думать о деле сразу, а не откладывать его в долгий ящик.
Во время группового обсуждения Макс предложил шутки ради смоделировать
пожарный гидрант, из которого течет вода. Именно это мне пришло в голову, ког-
да я ложился в постель. Автомобиль, пожарный гидрант, человек, зверь — эти эле-
менты крутились у меня перед глазами, а потом внезапно сложились в одно целое,
За пять минут я мысленно прошел путь от идеи до законченного проекта.
Какой зверь должен быть в сцене? Собака и только собака! Зачем нужен по-
жарный гидрант? Собаки их просто обожают!
Возникшее у меня в голове изображение собаки, привязанной на тротуаре
к пожарному гидранту, совершенно прогнало сон. Я встал и позвонил Максу,
чтобы познакомить его с идеей. Мы решили рассказать о новой версии проекта
остальным членам команды. После долгого и бурного обсуждения было решено
принять ее.
Таким образом, своим рождением история по большому счету обязана стече-
нию обстоятельств. Если бы я не пришел домой рано, если бы Макс не упомянул
про пожарный гидрант, если бы по телевизору не показывали мое любимое шоу,
проект, скорее всего, выглядел бы совсем иначе.

Окончательный вариант
Итак, вот как мы представляли себе проект «Место для парковки*.
На переполненной улице освобождается небольшой пятачок, пригодный для
парковки. Рядом греется на солнце собака (ее зовут Клякса). За Кляксой распола-
гается магазин игрушек с надписью на витрине «Внимание! Только сегодня!» Тут
же мы видим пожарный гидрант. Рядом останавливается автомобиль, бросая тень
на Кляксу и изрыгая выхлопные газы прямо ей в морду.
46 Глава 2 • Знакомство с проектами

Вышедший из машины человек смотрит на часы, собираясь зайти в магазин за


подарком, затем, заметив, что к нему идет контролер, направляется к счетчику,
чтобы оплатить стоянку, но не может добраться до счетчика, поскольку Клякса
рычит, делая вид, что собирается его укусить.
Человек пытается отвлечь Кляксу, кидая ей палку, но собака не уходит, к тому
же ей мешает поводок. Попытка подойти с другой стороны от автомобиля тоже не
приносит результата. Контролер тем временем приближается.
Наконец, человек подходит к витрине зоомагазина, расположенного рядом с ма-
газином игрушек, и указывает на кость в витрине. Клякса трясет головой.
В конце Клякса, сидя рядом с гидрантом, вонзает зубы в большую кость. Тем
временем главный герой добирается наконец до счетчика и пытается опустить
туда монетку, но его уносит из кадра струя воды, которая начинает бить из гид-
ранта. Клякса закрепляет кран концом кости, имеющим форму гаечного ключа.
При этом надпись «Открыто» на двери магазина игрушек сменяется надписью
«Закрыто».
Завершает ролик большое изображение штрафной квитанции, приколотой на
мокром переднем стекле машины главного героя.

Проработка деталей
Договоренность о фабуле всей истории стала большим шагом вперед, поскольку
позволила перейти к обсуждению элементов и вспомогательных объектов, необ-
ходимых не только в качестве завершающих штрихов нашего проекта, но и в каче-
стве источника материала для книги.
Хотя сценарий показывает, что с Кляксой лучше не шутить, мы хотели сделать
ее симпатичной. Человек в автомобиле создает проблемную ситуацию и платит за
это в полной мере. Контролер заставляет героя торопливо делать выбор между
природной жадностью и предписанным порядком.
Итак, характеры персонажей обрисованы, пришла пора воплотить их в образы,
Детали персонажей
Человек в автомобиле должен быть «крутым парнем» (назовем его Крутан). Мо-
жет быть, это коммивояжер, а может быть, испорченный сынок богатых родите-
лей. Разумеется, он без умолку болтает по сотовому телефону и считает, что мир
вращается исключительно вокруг него. Он любит свой автомобиль, который счи-
тает продолжением самого себя.
Характерные черты персонажа были придуманы довольно быстро, но на прора-
ботку деталей ушла уйма времени, потому что нам не хотелось делать его слишком
плохим или слишком хорошим. Проще всего было бы сделать из него полного бол-
вана, раздражающего всех, с кем он оказывается рядом, но мы хотели показать зри-
телям, что персонаж, по крайней мере, иногда пытается совершать правильные
поступки. Точно так же Кляксу желательно было сделать хотя и пугливой, но и до-
вольно задиристой.
Клякса всего лишь занималась своими делами, когда появился Крутан и поме-
шал ей греться на солнышке. Раздраженная Клякса не просто отомстила, а заста-
вила Крутана сделать пару приятных для себя вещей.
Марк предлагает план В

Получив описание характеров персонажей, Скот Кларк (Scott Clark), ведущий


аниматор фирмы Pixar, нарисовал, как они могут выглядеть. Результаты его тру-
дов показаны на рис. 2.2 и 2.3.

Рис. 2.2. Наброски Крутана

Рис. 2.3. Наброски Кляксы


Глава 2 • Знакомство с проектами

После обсуждения всех набросков была выбрана пара вариантов. После этого
Скотт уединился и создал окончательные версии персонажей. Они представлены
на рис. 2.4 и 2.5.

х»—«акт**
feSP

Рис. 2.4. Окончательный вид Крутана

Рис. 2.5. Окончательный вид Кляксы


Марк предлагает план В

Контролер не требует такой детальной прорисовки характера, поэтому его вид


может быть вполне стандартным.
Детали сцены
Мы отдельно занялись дизайном второстепенных объектов потому, что понимали
их важность. В число этих объектов входят автомобиль, два магазина, тротуар, ули-
ца, пожарный гидрант, кость, счетчик оплачиваемого времени. В качестве статич-
ных деталей сцены будут фигурировать другие автомобили, машина контролера
и штрафная квитанция. В зависимости от выбранного угла камеры и дополните^ ь-
ных элементов, которые нам, возможно, захочется включить в сцену, может воз-
никнуть необходимость в других объектах. Впрочем, мы постараемся этим не зло-
употреблять.
После короткого обсуждения было решено, что не стоит слишком растягивать
временные рамки сцены. В действительности, несмотря на наш план вставить в сю-
жет некоторые забавные трюки, основным смысловым моментом являются неук-
люжие попытки Крутана избежать штрафа.
Расположение объектов в первой сцене показано на рис. 2.6. Этот не очень ка-
чественный набросок передает идею проекта. На рисунке видны существенные
элементы сцены и их расположение друг относительно друга.

Рис. 2.6. Первоначальный набросок сцены

Затем один за другим ключевые элементы сцены были аккуратно прорисока-


ны, и эти рисунки послужили отправной точкой для создания моделей. Что каса-
ется многочисленных второстепенных объектов, было решено не тратить время на
их рисование. Имея опыт моделирования, мы не сомневались в своей способности
создать эти объекты, что называется, «на лету».
50 Глава 2 • Знакомство с проектами

Впрочем, в сцене присутствует еще один элемент, требующий детальной про-


работки. Это автомобиль Крутана. Макс принес ряд замечательных эскизов, из
которых был выбран вариант, показанный на рис. 2.7,

Рис. 2.7. Окончательный вид автомобиля Крутана

Разумеется, как уже упоминалось, моделирование автомобиля представляет


собой весьма трудоемкую задачу, отнимающую много времени и сил. Именно по-
этому мы решили создать вместо рекламного ролика сценку парковки. Но тем не
менее нам требовался план моделирования транспортного средства.
Было решено создать на основе автомобиля главного героя множество разно-
образных машин. Урезая отдельные элементы и меняя цвета, мы надеялись сде-
лать другие автомобили достаточно разными. Тем более что процесс создания
объекта путем преобразования уже существующего элемента сцены сам по себе
поучителен. Впрочем, можно было импортировать модель, предложенную Мак-
сом, и преобразовывать уже ее.
Также требовались объекты, предназначенные для показа в витринах и укра-
шения зданий, но их мы собирались моделировать по ходу дела. Нам кажется, что
предварительное планирование подобных вещей не имеет особого смысла и луч-
ше положиться на вдохновение.

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

Раскадровка
При переходе от концепции к законченному проекту сложно переоценить значе-
ние раскадровки. Вы продумываете основные моменты анимации, а затем пытае-
тесь воспроизвести их на рисунках.
Первая попытка раскадровки была весьма грубой, но вскоре нам удалось не-
много улучшить иллюстрации. Результат показан на рис. 2.8.

Рис. 2.8. Первые раскадровки

Затем наброски требовалось отсканировать и с помощью программы QuickTime


создать из них небольшой фильм. С этого момента мы получили возможность уви-
деть, как отдельные части замысла выглядят вместе, сколько времени продолжа-
ются различные фрагменты сцены, какие детали имеют смысл, а что лучше выки-
нуть. Кроме того, у нас в руках оказался исторический документ, показывающий
эволюцию как проекта в целом, так и его отдельных моментов.
Разумеется, сценарий меняется. Полученная анимация будет отличаться от того,
что нам виделось в момент первоначального обсуждения сценария. Некоторые
многообещающие идеи отбрасываются, потому что выясняется, что они затяги ка-
ют сцену или вместо них рождаются более свежие решения. Как только наш сце-
нарий был перенесен на бумагу, возникло множество вопросов по поводу деталей.
Впрочем, бесчисленные мелкие изменения никак не затронули центральную идгю.
По большому счету раскадровка является вехой, позволяющей понять, будет
ли анимация иметь успех. Бесчисленные технические детали также имеют отно-
52 Глава 2 * Знакомство с проектами

шеиие к проекту и должны прорисовываться при создании раскадровки. Какие бы


сложные действия ни приходилось выполнять в Maya, основой для них все равно
остается история, нарисованная на бумаге.
Книга
Наш проект существует в рамках данной книги. Желание создать художественно
целостную историю, точно воспроизводящую замысел, достойно похвалы, но не
следует забывать, что основной целью проекта является объяснение различных
методик и приемов работы с Maya.
Впрочем, мы решили, что не будем искусственно провоцировать потребность
в том или ином инструменте. Если какой-либо инструмент не требуется для на-
ших целей, значит, в книге он упомянут не будет. Например, вы не увидите персо-
нажей, смоделированных на основе NURBS-поверхностей. Для персонажей пре-
восходно подходят иерархические поверхности, поэтому нет никакого смысла ис-
кусственно бороться с топологическими ограничениями NURBS-поверхностей. Ра-
зумеется, так тоже можно создать персонаж, но это не поможет читателям полу-
чить представление о наиболее удобных способах моделирования тех или иных
объектов.
Поэтому основным движущим принципом нашей работы стала демонстрация
наиболее подходящих для выполнения поставленных задач инструментов и объяс-
нения сделанного выбора.
Ресурсы
Как уже упоминалось, проект «Место для парковки» требовалось разбить на от-
дельные части, работу над которыми можно было вести независимо. Это был всего
лишь первый из вопросов координации ресурсов, с которым нам пришлось столк-
нуться.
Временные рамки проекта ограничивались тремя факторами: сроком сдачи кни-
ги в издательство, временем демонстрации анимации и временем ее создания.
Ко времени выпуска книги в издательство требовалось поставить отредакти-
рованные и проверенные материалы в книжном формате. Чтобы гарантировать по-
добные вещи, требовалось планировать наши индивидуальные действия и учиты-
вать замечания редактора. Для такой группы начинающих авторов, как наша, это
стало самой тяжелой частью проекта.
Хотя мы не ставили задачу вместить нашу анимацию в четкие временные рам-
ки, по практическим соображениям не стоило создавать слишком длинный клип.
Увеличение продолжительности анимации означает дополнительную работу и до-
полнительное время визуализации. Поэтому временной аспект следовало ограни-
чить заранее, чтобы не получить в результате монстра. По первоначальным при-
кидкам история должна была занимать от 30 секунд до минуты. В идеале, конеч-
но, хотелось, чтобы продолжительность анимации в минутах выражалась круглым
числом, но мы решили не быть столь педантичными.
Серьезным ограничивающим фактором было наше собственное время. Никого
не волновало наличие у нас другой работы. Проект нужно было закончить в срок,
и никуда от этого не деться. Это тоже повлияло на принятие решения о продолжи-
';;.".<'м аннмпции.
Заключение 53

Ну и, наконец, существовали и денежные тра'гы. Для подобных проектов тре-


буется соответствующее аппаратное и программное обеспечение. Положим, бета-
версию приложения Maya мы получили от фирмы Alias] Wave front. Дома у меня
стоит Macintosh, а вот портативный компьютер с операционной системой Windows
пришлось покупать самостоятельно. Впрочем, после завершения работы над про-
ектом я планировал продать его.

Заключение
Проект «Место для парковки» представляет собой короткую анимацию, призван-
ную проиллюстрировать приемы работы с Maya. Его содержание отражает попыт-
ки объединить требования читателей, авторов и издателей. Однако сама история
родилась благодаря необходимости, настойчивости и везению.
Как и большинство частей целого, даже название наводит на мысли о двояком
1 1
значении и скрытом смысле . Возможно, в этом отношении наш проект не отли ia-
ется от множества других, но мы хотели дать понять, как много вещей стоит за
каждой деталью истории.
Мы надеемся, что объяснением происхождения и целей проекта «Место для
парковки» были проведены полезные параллели с вашей работой в Maya. По мере
движения вперед, нам придется погрузиться в технические детали, но мы (а те-
перь и вы) все равно будем помнить о требованиях проекта.

1
Игра слов. В оригинале название проекта шглядит как «Parking spot*, а имя собаки — как «Spot*.
Таким образом, простым изменением регистра буквы «s» в названии проекта можно место для : юр-
ковки (parking spot) превратить в парковочную собаку Кляксу (parking Spot). — Примеч. ред.
Конвейер цифровой
3 студии

Всего несколько лет назад компьютерная графика была целиком прерогативой


больших студий, но теперь даже маленькие рабочие группы и отдельные пользо-
ватели могут создавать настоящие шедевры в этой области. Благодаря многочис-
ленным функциям Maya даже один пользователь может довести до конца практи-
чески любой проект, не делая ничего экстраординарного,
Цифровая студия — это не столько место, сколько процесс. Так как большин-
ство этапов этого процесса зависят от того, что требуется получить в результате,
его можно сравнить с конвейером. Разумеется, при внимательном рассмотрении
выясняется, что эта аналогия далеко не совершенна, потому что при работе над
сценой многое можно делать одновременно. Но тем не менее весь процесс имеет
ясные зависимости и четко определенную последовательность.
В этой главе мы поговорим на следующие темы:
О этапы выполнения проекта;
О связи между этапами;
О факторы, повлиявшие на структуру данной книги;
О роль, которую играют в конвейере различные средства Maya.

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

Сценарий
Все начинается с написания сценария. Нет сценария — не будет и проекта. От его
качества напрямую зависит потенциальный успех результатов вашего труда. Имен-
Подготовка к производству 55

но поэтому важно, чтобы на ранних стадиях все было выполнено как можно луч-
ше. Кроме того, изменения в сценарии могут оказать очень большое влияние на
все остальные этапы процесса,
Любой проект обязательно сопровождается набором требований, в число кото-
рых иногда входит требование к основной сюжетной линии. Впрочем, даже скру-
пулезно написанный сценарий дает определенную свободу творческих и техни-
ческих действий. Обычно представления клиента настолько грандиозны и неопре-
деленны, что их точное воплощение в жизнь представляет определенные трудно-
сти. И хотя в процессе работы часто возникают приятные сюрпризы, из-за ограни-
ченности ресурсов на первое место выходит необходимость четкого определения
основной идеи проекта.
Сценарий невозможно с самого начала проработать до мельчайших деталей.
Обычно все начинается с вдохновляющей идеи, рационального рассмотрения це-
лей проекта, пристального взгляда на возможности рабочей группы и учета мно-
гочисленных «А что если...», которые могут возникнуть в процессе разработки. Рано
или поздно наступает момент перехода к воплощению проекта в жизнь, тут-то и на-
чинается самое сложное. Изменения в сценарий можно вносить и на этой стадии,
если, конечно, их эффект не оказывается деструктивным, однако за них приходит-
ся платить. В какой-то момент цена любых изменений становится непомерно вы-
сокой, и это значит, что работу над сценарием пора завершать.
Для определения всех деталей сценария требуется перенести исходную идею
на бумагу, то есть создать раскадровки. Они выполняют несколько функций. Во-
первых, таким способом удается получить информацию о расположении объектов
в сцене. Во-вторых, просмотр сценария по фрагментам позволяет учесть все его
детали. Наброски обеспечивают простоту внесения изменений в сюжет и компо-
зицию. Ну и, наконец, рисунки можно отсканировать и использовать в качестве
начальных образцов, постепенно заменяя их элементами компьютерной графики.
Раскадровки дают эффективный способ детализированного описания анимации,
которое можно представить как клиентам, так и рабочей группе.
Описанный выше подход был применен и к нашему проекту «Место для пар-
ковки» (с его содержанием можно познакомиться в главе 2). После тщательного
рассмотрения необходимых условий родилась основная концепция, которая бы ла
представлена на одобрение клиентам (в их роли выступали как мы сами, так и из-
датели нашей будущей книги). Также мы обсудили детали ее воплощения в жизнь.
Были созданы раскадровки, затем мы их отсканировали, оценили и внесли необ-
ходимые изменения (рис. 3.1). После начала работы над проектом из-за ограни-
ченности ресурсов пришлось отказаться от некоторых деталей, в то же самое вре-
мя появились новые идеи, позволяющие сделать конечный результат более ин-
тересным.
Захватывающие картинки вряд ли сделают историю более интересной. Даже
небольшие комичные сюжеты, призванные оживить повествование, не спасут по-
ложение, если сценарий недостаточно проработан. Плохо продуманный сценарий
вряд ли сможет реализовать свой визуальный и сюжетный потенциал.
Другими словами, к сценарию нужно относиться как к фактору, от которого
зависит весь будущий проект.
56 Глава 3 • Конвейер цифровой студии

Рис. 3.1. Раскадровки для проекта «Место для парковки»

Внешние проявления
Внешний вид проекта должен быть не побочным продуктом процесса его созда-
ния, а результатом сознательного выбора. Перед началом моделирования потрать-
те время на определение визуального характера готовой работы.
Иногда впечатление об общем стиле проекта можно получить из раскадровки,
но обычно наброски делаются крайне небрежно и дают представление в основном
о расположении объектов в сцене и течении сюжета. Например, версия персонажа
в раскадровке и его окончательный вид могут значительно различаться. Особенно
. это характерно для второстепенных объектов, тщательным описанием которых при
составлении раскадровки часто пренебрегают. Все вышесказанное ни в коем слу-
чае не означает критику раскадровок. От вас не требуется тратить время на созда-
ние красивых рисунков. Мы всего лишь обращаем ваше внимание на то, что внеш-
ний вид объектов требует дополнительной проработки.
Визуальное конструирование объектов подразумевает решение достаточно
широкого спектра задач. Нужно принять решение о характерном стиле персона-
жей (рис. 3.2), продумать освещение, вид после анимации, сложность и уровень
реализма. Причем нужно учитывать, что выбор стиля влияет на подбор инстру-
ментов, которыми вы будете пользоваться при моделировании, а также определит
технические требования.
Подготовка к производству 5?

Рис. 3.2. Первые варианты персонажей

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

Технические аспекты
Несмотря на творческий подход к созданию сцен в Maya, работа с этим приложе-
нием представляет собой больше техническую задачу. К счастью, пользователи
Maya являются умными и преданными своему делу людьми, для которых это, ско-
рее, вызов, чем помеха. Кроме того, по мере эволюции компьютеров и программ-
ного обеспечения все больше наших знаний можно применять на практике.
Вне зависимости от сложности проекта требуется затратить определенные ус и-
лия на выявление стоящих перед вами технических задач. Некоторые из них бу-
дут стандартными, другие возникнут только в рамках одного проекта. Однако все
Глава 3 • Конвейер цифровой студии

они заслуживают самого пристального рассмотрения. Нужно убедиться, что все


задачи решаемы с помощью обычных операций.
Подобные операции в Maya легко планировать, но в то же самое время их про-
ще всего проглядеть. Существует множество способов настройки Maya для вы-
полнения обычных задач и работы в определенном стиле. Интерфейс этого при-
ложения крайне гибок, и его можно расширять путем написания сценариев и про-
граммирования. Более того, вы можете непосредственно изучить исходный код
программы, так как она целиком написана на языке MEL.
При желании количество элементов интерфейса можно сократить, например,
как показано на рис. 3.3.

Рис. 3.3. Вариант интерфейса Maya

Если вам надоело работать с контекстными меню, можно настроить клавиатур-


ные комбинации или полки. Для повторяющихся операций пишутся сценарии на
языке MEL. Если вам не нравится место расположения некоторых команд, можно
взять сценарий меню, отредактировать его и сохранить копию в специальной пап-
ке. Другими словами, то, насколько удобно вам будет работать с Maya, зависит толь-
ко вот вас.
Дополнительные возможности конфигурирования Maya предоставляет при-
кладной программный интерфейс. Впрочем, вопросы разработки приложений с по-
мощью API выходят за рамки темы данной книги.
Настройка рабочей среды 59

Другие технические вопросы могут быть совсем несложными, например вы-


работка стандартов сохранения файлов. Чтобы получить логичную форму хра-
нения данных, настройте интерфейс программы, напишите новые MEL-сцена-
рии для управления пользовательскими атрибутами или разработайте собствен-
ную систему.
Различные варианты настройки интерфейса Maya рассматриваются в главе 4.

Настройка рабочей среды


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

Моделирование
Первым шагом в работе над анимацией является моделирование. Ну, сами по-
думайте, какую историю можно рассказать с нулевым количеством объектов
на сцене?
С точки зрения управления процессом производства сначала имеет смысл со-
ставить список необходимых объектов. Информация о приоритете моделей позво-
ляет более разумно распределять ресурсы. Тем более что обычно все операции тре-
буют больше времени, чем предполагалось сначала, особенно при отсутствии пред-
варительного плана действий.
Второстепенные объекты не обязательно превращать в произведения искусст-
ва, но для основных моделей требуется хороший опорный материал. То есть нуж-
но создать изображения модели в ключевые моменты, например, в виде серии ор-
тографических проекций. Этого вполне достаточно для одиночных объектов и их
совокупностей, а вот для персонажей потребуется дополнительный набор рисун-
ков, характеризующий диапазон движений и выражений лица модели.
Для начала следует выбрать метод создания объекта. Часто выбор определяет-
ся дальнейшими технологическими операциями нашего конвейера, например не-
обходимостью назначения определенного материала или работы над артикуляци-
ей. Для примера на рис. 3.4 показан объект, который вам совсем скоро предстоит
создать своими руками. Все доступные форматы Maya (полигоны, NURBS-повер-
хности, иерархические поверхности) имеют собственные характеристики и мето-
ды конструирования.
Персонажи обычно создаются как иерархические поверхности, в то время как
большинство объектов моделируется на основе NURBS-поверхностей. Некоторые
элементы добавляются, чтобы оттенить особенности назначаемого впоследствии
материала, хотя материал в свою очередь помогает создавать такие элементы, ко-
торые трудно получить другим путем.
Так как моделирование оказывает влияние на остальные этапы процесса, важ-
но выработать к нему вдумчивый подход. Также желательно ясно понимать, каких
затрат требует создание каждой модели.
60 Глава 3 • Конвейер цифровой студии

Крышками являются NURBS-поверхшсти,


так как для каждой крышки требуется
простая шадкая поверхность ;< ; ? :;=

Основанием гидранта является


иерархическая шверхностъ,
позволившая получить йЛввное-
сопряжение в области вентилей "!
Пятиугольные .болты являются - ;
NURBS-поиерхнрстями с числом
интервалов! п 5 (в данном
случае—15}: :

Рис. 3.4. Выбор методов моделирования объекта

С основами моделирования вы познакомитесь в главах 6 и 7. В главах 8 и 9 этот


процесс будет описан более детально, а глава 10 посвящена особой области моде-
лирования — созданию персонажей.
Опыт и понимание сущности всех методов поможет найти наиболее продук-
тивное решение в каждом конкретном случае.

Артикуляция
Понятие артикуляции применимо не только к персонажам, но и к обычным объек-
там. Этот процесс обеспечивает необходимые элементы управления анимацией для
каждого компонента модели в случаях, когда движения не удается добиться на-
значением материала или имитацией. Думаем, вы понимаете, что этому процессу
должно предшествовать конструирование модели.
Объекты, к которым применимы обычные преобразования (перемещение, по-
ворот, масштабирование), легко анимировать по методу ключевых кадров. В этом
случае иерархическим связям и положению опорных точек можно не уделять осо-
бого внимания. Более сложные связи влекут за собой написание специальных вы-
ражений, позволяющих устанавливать зависимость между компонентами модели,
или требуют указания степеней свободы с ограничениями в костях скелета для
Настройка рабочей среды (1

обратной кинематики. Обычно все эти параметры можно определить только после
построения модели. Поэтому работа над артикуляцией начинается после заверше-
ния моделирования.
Основной объем работ по артикуляции связан с персонажами, впрочем, это от-
носится и в целом к движению в анимации. Для деформирования моделей (а имен-
но к таковым относятся персонажи) в Maya существует множество различных и н-
струментов. В распоряжении технического директора имеются скелеты, методы
прямой и обратной кинематики, методы связывания, кластеры, сопряжения, мно-
гочисленные деформаторы и многое другое.
Сборка персонажа представляет собой сложный процесс, требующий готовой
модели, как показано на рис. 3.5. Впрочем, частично его можно выполнить при на-
личии модели-заместителя.

Рис. 3.5. Сборка персонажа

Обычно сборка персонажа сопровождается топологическим изменением моде-


ли, поэтому модель приходится редактировать несколько раз. Впрочем, об этом
мы поговорим в главе 16.
62 Глава 3 * Конвейер цифровой студии

Материалы
Следующей важной операцией на конвейере является назначение материалов. В за-
висимости от пристрастий сотрудников вашей студии и особенностей модели этот
этап может как следовать за анимацией, так и выполняться параллельно.
Назначение материала придает поверхности сходство с поверхностью реаль-
ного объекта. Это может быть как выбор цвета в одной из стандартных моделей
материалов Maya и назначение его нужным поверхностям, так и создание слож-
ных сетей материалов, определяющих наложение друг на друга различных харак-
теристик поверхности. Некоторые студии пользуются материалами от сторонних
производителей, экономя таким способом время.
Структура простых материалов достаточно очевидна, но, к сожалению, к боль-
шинству материалов слово «простой» неприменимо, как показано на рис. 3.6.

. ., ,.,.-„• нет
( t,i ¥ •>. <Ъ *
г .,,;,.! ШЙ «n.^rt/s K-t

Рис. 3.6. Назначение материала

Если основной целью проекта является создание фотореалистичной сцены,


материалы непременно будут очень сложными. Работу над материалом требуется
тщательно планировать. Нужный результат обычно достигается последователь-
ными приближениями.
Убедительность созданного материала зависит от художественных способнос-
тей аниматора. Поверхности реальных объектов далеко не идеальны, на них име-
Настройка рабочей среды

ются грязь, царапины, неровности, имитация которых с помощью стандартных


материалов невозможна. Их нужно создавать отдельно.
Впрочем, даже если фотореалистичное воспроизведение не требуется, работа
над материалами невозможна без артистического видения. Кроме того, существу-
ет возможность раскрасить объект. Для этого в Maya применяется инструмент
3D Paint (Рисовать по поверхности). Можно также воспользоваться приложениями
Photoshop, Amazon 3D Paint или Deep Paint 3D.
Процесс работы над материалом можно ускорить с помощью процедурных тек-
стур и встроенных библиотек материалов. Кроме того, множество материалов
можно обнаружить в Интернете. Более подробно на эту тему мы поговорим в гла-
ве 18.
Точно так же как хорошие колонки влияют па звучание вашей стереосистемы,
от хороших материалов зависит окончательный вид анимации.

Компоновка
После моделирования основных объектов возникает вопрос об их расположении
в сцене. Именно в этот момент раскадровка преобразуется в сцену, персонажи
расставляются по местам, а камеры определяют композицию, как показано на
рис. 3.7.

!ЕСИЭЕЖЖЕрШ5"ВЗЩЩ"вйЩ^жш51Ё U--L, is!

l*nmato."iy В * M U Si %. « > i : + [4 e * к ' «Э1£

f.'>'. 4.
:
...,_&!£. , I '.*!&: .2\
>«":'
. 1 , 1
}№"""fa"':"ш"'"""'Ш
I l !
'"ia
I
W
i
"~W™"I'rlnr^T.^и"и
l i l
W> Hi»:" ""
т .... '.. .. • < ...; =
i ло |ieo ;r ::>"-:S^T^^.'-Y?- 7--"--"^.?; '^З
P •i-:. xmeK'Jwv^Mt'Wrf^'l" -->• ' **b^;j -135ооГ7»ОС11 Tf;-^,&'&>m.
««((омада ut

Рис. 3.7. Компоновка сцены


Глава 3 • Конвейер цифровой студии

В зависимости от сложности проекта процесс компоновки может начинаться


до, после или вместе с назначением материалов. Последнее никоим образом не за-
висит от расположения объектов в сцене (и наоборот). Но очень желательно, что-
бы компоновка предшествовала оформлению сцены. И только после этого допус-
тимо переходить к анимации, освещению и визуализации.
Сущность компоновки состоит в создании фрагментов, содержащих основные
элементы сцены. Для облегчения этой задачи все фрагменты должны явно просле-
живаться, а основные элементы сцены должны быть определены и доступны. Для
многих проектов это также означает наличие у сложных объектов заместителей.
В действительности наличие качественных заместителей часто позволяет ском-
поновать сцену уже на ранних стадиях. Более подробную информацию по этому
поводу вы получите в главе 11.
После того как все элементы сцены окажутся на своих местах, наступает время
для установки камеры в соответствии с раскадровками. Иногда при этом прихо-
дится вносить изменения в исходную модель. Например, может потребоваться рас-
ширить границы комнаты, чтобы увеличить размер сцены.

Оформление сцены
После установки камер становится ясно, чего в сцене не хватает. Обычно не хвата-
ет многого. Заполнение сцены недостающими объектами называется ее оформле-
нием.

Рис. 3.8. Оформление сцены


Производство 65

Процесс оформления сцены должен предшествовать анимации, чтобы не полу-


чилось так, что персонаж проходит через подставку для зонтика или протягивает
руку сквозь стоящую на столе лампу. Впрочем, задача оформления сцены являет-
ся второстепенной по отношению к основным задачам, поскольку обычно доста-
точно просто передвинуть подставку для зонтика или убрать лампу,
Модели, используемые для оформления сцены, мало просто «раскидать» где
попало, заполнив пустое пространство (рис. 3.8). С их помощью можно скрыть
неудачные части моделей, сбалансировать композицию, сделать изображение бо-
лее объемным или добавить забавные элементы для наблюдательного зрителя. Хотя
в данном случае также желательно иметь план работы, часто придумывание моде-
лей для оформления сцены происходит спонтанно в процессе решения возникаю-
щих проблем.
В основном работы по оформлению сцены выполняются сразу, но иногда от-
дельные этапы могут продолжаться по мере создания анимации. При производ-
стве фильмов практикуется самое вольное обращение с предметами. Например,
если лампа отчасти загораживает лицо персонажа, значит, лампу просто отодвига-
ют. Эта практика принята и в компьютерной графике.

Производство
Итак, все приготовления сделаны, и пришло время сконцентрироваться на самой
тонкой части работы. Нужно добиться от виртуальных персонажей точного вы-
полнения действий и создать впечатляющую сцену. Мы поговорим об участках
нашего виртуального конвейера, предназначенных для реального производства,
результатами которого вы сможете гордиться.

Анимация
Анимацию принято считать одной из самых важных операцией на конвейере. Кор-
ректное выполнение всех предварительных этапов позволяет полностью сконцен-
трироваться на «оживлении» персонажей. Перейдя же к этой стадии слишком рано,
вы потеряете время на поиск отсутствующих моделей, нацеливание камер и на
исправление последствий неверного монтажа персонажей. Именно поэтому на-
столько важна предварительная подготовка.
В отличие от реальных фильмов анимация создается постепенно. Действие каж-
дого персонажа проходит свои собственные этапы, начиная от формирования позы
до мелких жестов и выражения эмоций. Структурирование анимации в соответ-
ствии с этими этапами позволяет избежать излишней работы.
Сначала персонаж нужно разбить на блоки, как показано на рис. 3.9. В ключе-
вые моменты эти блоки просто устанавливаются в нужное положение. Это позво-
ляет создать простейшую анимацию, чрезвычайно полезную при оценке компози-
ции сцены.
Затем начинается развертывание анимации во времени и настройка сложных
движений. На этом этапе обычно начинает проявляться характер персонажа. Пос-
ле отладки мельчайших движений происходит бесконечная серия редактирований,
конечным результатом которых является иллюзия движения живого существа.
66 Глава 3 • Конвейер цифровой студии

Рис. 3.9. Разбиение персонажа на блоки и установка их в нужные положения

Этот этап не должен продолжаться слишком долго, если вы хотите завершить


проект к назначенному сроку. Никто не спорит, что нет предела совершенству, но
нужно почувствовать момент, когда следует остановиться.

Освещение
После заполнения сцены объектами и движущимися персонажами приходит вре-
мя проявить ваши художественные наклонности. Освещение представляет собой
нечто большее, нежели просто установку источников света и наблюдение за полу-
ченным результатом. Ведь таким образом можно создать определенное настрое-
ние, выделить определенные действия и подчеркнуть красоту и богатство сцены.
Работу над освещением сцены принято начинать после завершения анимации
объектов, так как обычно каждый персонаж освещается отдельно, как показано на
рис. 3.10. Такой подход позволяет выделить его на общем фоне. Эффект можно до-
полнить такими элегантными деталями, как ореол. Для освещения персонажей обыч-
но используются ключевой, заполняющий, кольцевой и отраженный свет. Много
времени занимает настройка теней, особенно если объект находится в движении.
Освещение сцены требует тщательного внимания к деталям, и не забывайте,
что свет отрицательно сказывается на времени визуализации. Какими бы симпа-
тичными ни казались мириады фотонов, за них придется заплатить при выводе
информации. Ведь если анимацию невозможно визуализировать, насмарку идет
вся работа.
Производство

Рис. 3.10. Освещение персонажа

Чтобы ускорить процесс освещения сцены, можно связать источники света с ос-
вещаемыми ими поверхностями. Тогда визуализация ограничится расчетом лу-
чей, необходимых для освещения указанной вами поверхности, и теней, отбрасы-
ваемых соответствующим объектом. Более подробную информацию по этому по-
воду вы найдете в главе 19.
Операция освещения навевает приятные мысли, ведь следующей на конвейере
идет операция визуализации, после которой результаты своих трудов можно б> -
дет представить зрителям.

Эффекты
Однако не следует торопиться. А как же фейерверк? А туман? А дождь?
Впрочем, справедливости ради следует заметить, что сформирование различных
эффектов может выполняться параллельно с работой над освещением сцены. Даже
если эффект, например брызги воды (источником которых будет пожарный гид-
рант), может быть создан изолированно, брызги вес равно требуется осветить, как
и остальную часть сцены. Эффекты часто фактически зависят от всей сцены, в том
числе и от ее освещенности.
Очередность создания эффектов зависит от ашшируемых объектов, а также от
того, в какой точке нашего конвейера начинается их формирование. Приступать
68 Глава 3 • Конвейер цифровой студии

к созданию флага, развевающегося на ветру, лучше перед началом освещения сце-


ны, в то время как имитация течения жидкости должна быть готова уже на стадии
анимации. Меховые поверхности формируются при назначении материалов
и в ходе анимации объектов. А такие уникальные инструменты, как модуль Paint
Effects (Эффекты рисования), могут применяться уже на стадии моделирования.
Словом, перед переходом к финальной операции на нашем конвейере — визуа-
лизации — необходимо создать все необходимые эффекты. У вас будет шанс по-
практиковаться в этой области при чтении главы 14.

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

Рис. 3.11. Артефакты, проявившиеся при визуализации

В первую очередь нужно убедиться, что процесс визуализации занимает при-


емлемое время. Для этого требуется визуализировать тестовые кадры и экстрапо-
Заключение 69

лировать результат на всю анимацию. Если выяснится, что вам придется ждать
слишком долго, отредактируйте сцену (например, пересмотрев концепцию осве-
щения) и проведите тест еще раз. Другим вариантом решения проблемы является
проведение визуализации на более мощном компьютере.
Тестовые кадры надлежит исследовать на наличие различных артефактов
(рис. 3.11). Впрочем, даже если отдельные кадры пройдут тест, помехи могут про-
явиться на всей анимации. Из-за возможности их появления недопустимо от-
кладывать визуализацию проекта на последний день перед сдачей заказа.
Эффективным является метод послойной визуализации с последующим мон-
тажом полученных в результате изображений. Обычно внесение изменений сопро-
вождается необходимостью заново визуализировать всю анимацию, в то время как
в данном случае повторная обработка требуется только для измененных элемен-
тов. Подробную информацию по этому поводу вы получите в главе 20.

Заключение
Раньше возможность создания цифровой анимации была только мечтой, но те-
перь она воплотилась в реальность. Для успешного выполнения сложных проек-
тов нужно понимать природу рабочего процесса. Вам не обойтись без планирова-
ния, впрочем, сэкономленное в результате время и ошибки, которых удастся избе-
жать, стоят потраченных усилий. Воплощение придуманной истории в реальную
анимацию является большой ответственностью, что, впрочем, не смущает много-
численных пользователей Maya по всему миру.
Остальные главы книги, посвященные различным этапам подготовки проекта,
следуют практически в том же порядке, который был описан в этой главе. Мы уве-
рены, что эта информация поможет вам работать над своими проектами более це-
ленаправленно.
Приемы работы
4 в Maya

Одним из основных достоинств Maya является приспособляемость. Это означает,


что многочисленные инструменты этого приложения могут настраиваться под кон-
кретного пользователя. Более того, в основе всего пользовательского интерфейса
лежат MEL-файлы, которые можно не только посмотреть, но и отредактировать
в соответствии со своими нуждами. Поэтому перед тем как приступить к работе
над проектом «Место для парковки*, поговорим о выгодах, которые дает приспо-
собляемость Maya.
Вы, скорее всего, уже знакомы со средствами адаптации Maya к потребностям
пользователей — контекстными меню, полками, клавиатурными комбинациями,
MEL-сценариями. И не сомневаемся, что вам хотелось бы побольше узнать о до-
полнительных приемах работы с программой, повышающих эффективность моде-
лирования, его безопасность и удобство. Все это позволяет сэкономить максимум
самого ценного, что у вас есть — времени.
Мы обсудим понятия, касающиеся различных аспектов работы в Maya. Чтобы
при описании этапов выполнения проекта не касаться множества мелких (но важ-
ных) деталей, мы предпочли свести информацию о них в одну главу.
Здесь вы узнаете о способах настройки интерфейса Maya в соответствии с ва-
шими нуждами, то есть о том как:
О менять заданные по умолчанию параметры команд;
О создавать собственные клавиатурные комбинации;
о создавать полки, используя текстовый режим полок;
О настраивать интерфейсные MEL-сценарии;
О редактировать существующие меню и создать новые;
О эффективно управлять окнами проекций;
О управлять проектами и файлами.

Организация рабочего пространства


Иногда сложнее всего начать проект. Точнее говоря, понять, с чего начинать. В та-
ких случаях очень важно иметь на руках надежную методологию перехода от кон-
Команды 71

цепции к реальному проекту. Поэтому перед тем как приступить к созданию мо-
делей и их дальнейшей обработке, поговорим об интерфейсе программы,
Для начала мы расскажем вам о том, как наиболее удобным образом организо-
вать свое рабочее пространство. Так как количество элементов интерфейса Maya
крайне велико, а команд еще больше, процесс их настройки чрезвычайно трудо-
емок. По крайней мере, это не та работа, которую можно выполнить быстро. По
мере освоения Maya вы обнаружите, что темпы вашей работы растут, впрочем, рано
или поздно будет достигнут определенный предел. Когда число и сложность ша-
гов, необходимых для решения той или иной задачи, снизить уже невозможно, ваша
производительность будет зависеть только от того, насколько хорошо вы знакомы
с используемым инструментарием.
Прежде всего нужно разобраться, что мешает вам повысить производительность.
Иногда требуется облегчить доступ к определенным инструментам, иногда доста-
точно снизить количество шагов, отданных под некий процесс, а иногда приходит-
ся «наступить на горло» своим личным пристрастиям.
Цель проста: по возможности создать уют в своем рабочем пространстве, то есть
настроить под свои нужды интерфейс и инструменты Maya. Разумеется, процесс
настройки требует времени, которое, впрочем, быстро компенсируется последую-
щим ростом производительности.
Постепенно вы обнаружите, что ваша работа с Maya перестает быть мучитель-
ным упражнением по поиску нужных элементов интерфейса, а естественно пере-
ходит в продолжение мыслительного процесса. Больше времени удастся уделять
собственно редактированию моделей, а не возиться с меню, менять параметры ко-
манд, настраивать маски выделения и отменять свои действия.
Достаточно долго проработав с Maya и запомнив различные варианты взаимо-
действия и параметры команд, нужно уделить внимание более сложным или пло-
хо запоминающимся аспектам работы. Именно их наиболее выгодно оптимизиро-
вать под себя.
В этой главе мы опишем основные приемы повышения производительности,

Команды
Доступ к командам в Maya осуществляется различными способами: через основ-
ные и контекстные меню, через полки, через клавиатурные комбинации. То есть
может быть несколько вариантов доступа к одной и той же команде. И для каждой
задачи можно выбрать наиболее подходящий вариант.
В этом разделе мы рассмотрим некоторые из этих вариантов и поговорим о том,
как они влияют на эффективность работы.

Параметры команд по умолчанию


Справа от названий некоторых команд находится квадратик, при щелчке на ко-
тором предоставляется доступ к параметрам команды. При этом Maya запоми-
нает последние значения этих параметров и сохраняет их в файле userPrefs.mel,
чтобы использовать при следующем вызове команды. Это просто замечательно,
если вы работаете с командами, параметры которых меняются очень редко или
наоборот, меняются при каждом следующем вызове. Но существует множество
72 Глава 4 • Приемы работы в Maya

команд, параметры которых изначально имеют не те значения, которые вам тре-


буются. В этом случае имеет смысл отредактировать параметры, установленные
по умолчанию.
Папка $MAYA_LOCACTION/scripts содержит две вложенные папки со сценариями
команд на языке MEL. Эти папки называются startup и others. В общем случае сце-
нарии, формирующие пользовательский интерфейс, находятся в папке startup, в то
время как специальные команды и их параметры занимают папку others.
Чтобы изменить действие любого сценария, его нужно сначала скопировать из
исходной папки в вашу собственную папку, предназначенную для сценариев. Если
файл является общим для всех версий Maya, его можно поместить в папку «maya/
scripts. В противном случае маршрут доступа к папке должен содержать номер вер-
сии Maya, например ~maya/5.Q/scripts.
ПРИМЕЧАНИЕ -
Знак тильды («) является стандартной для UNIX аббревиатурой, обозначающей домашний каталог.
Поэтому маршрут ~/тауа обозначает каталог, в котором обычно хранятся файлы этого приложе-
ния, в то время как маршрут ~гпауа соответствует домашнему каталогу пользователя с регистраци-
онным именем тауа,,

Итак, что же можно поменять, отредактировав сценарий? Как мы уже упоми-


нали, заданные по умолчанию параметры команд могут не соответствовать вашим
предпочтениям. Кроме того, можно поменять стандартный размер объектов-при-
митивов или выбрать другой метод присоединения. Но для начала мы поговорим
о том, где в различных операционных системах хранятся файлы Maya.
Где искать папку $MAYA_LOCATION?
Думаем, вы уже знаете, что Maya может работать в различных операционных сис-
темах. В каждой из них эта программа устанавливается по-разному, в зависимос-
ти от окружения. Вот в какие папки в различных операционных системах файлы
Maya устанавливаются по умолчанию:
О Irix — /user/aw/maya5.0;
О Linux — /user/aw/maya5.0;
о Windows — Drive:\Program Files\AliasWavefront\Maya5.0;
О Mac OS X - Applications\Maya5.0.
Дополнительную информацию по этому поводу можно найти в разделе
Essentials руководства пользователя Maya.
ПРИМЕЧАНИЕ -
Хотя в операционных системах семейства Windows принято использовать при написании маршру-
тов доступа обратную косую черту (\), в остальных операционных системах, допускающих работу
с Maya, применяется обычная косая черта (/). В данной книге мы приняли второй вариант обозначе-
ния. А пользователи Windows при написании маршрутов доступа должны просто поменять прямую
черту на обратную.

Изменение параметров команд, заданных по умолчанию


Предположим, что требуется изменить заданное по умолчанию поведение коман-
ды Attach Curves (Присоединить кривые) таким образом, чтобы отключить параметр
Команды 73

Keep Originals (Сохранять исходную поверхность). Для этого нужно скопировать файл
performAttachCrv.mel из папки scripts/others в вашу локальную папку для сценариев.
Затем следует найти нужный параметр, открыв файл в текстовом редакторе. Сце-
нарий выглядит следующим образом:
// keep original (for in place operations is on-1 or off-0),
//
if (SforceFactorySettings | ГoptionVar -exists attachCrvKeepOhginaT)
t
optionVar -intValue attachCrvKeepGriginal 1;
}
Осталось внести несложные изменения, присвоив нужному параметру значе-
ние 0:
optionVar -intValue attachCrvKeepQriginal 0:
После сохранения файла и перезагрузки Maya выбор команды Reset Settings
(Сбросить настройки) будет вести к сбрасыванию флажка Keep Originals (Сохранять
исходную поверхность), что избавит вас от необходимости делать это вручную.
Итак, вы убедились, что параметры команд доступны в MEL-файлах, а не скры-
ты в бинарных файлах с непредсказуемыми названиями. Поэтому вы можете ме-
нять их в соответствии со своими нуждами.
Выяснение названий команд
Описанный выше случай является очень простым, так как название команды было
очевидным. Впрочем, большинство инструментов моделирования имеют названия
вида реггогтНазвание.те!. Хотя сложные команды могут состоять из нескольких
сценариев, найти нужный параметр обычно не трудно.
Кроме того, достаточно установить флажок у команды Echo A l l Commands (Ото-
бражать все команды) в меню Script (Сценарий) диалогового окна Script Editor (Редак-
тор сценариев), как показано на рис. 4.1, и вы увидите, как выглядят на языке MEL
выполняемые вами команды. Также можно воспользоваться командой whatls.
Иногда появившиеся в редакторе сценариев строки довольно сложно понять.
В этом случае для поиска нужного варианта придется воспользоваться руковод-
ством по MEL-командам (MEL Command Reference). Впрочем, при наличии опре-
деленной смелости (а также понимания, что для возвращения заданных по умол-
чанию параметров достаточно удалить отредактированный файл) можно спокой-
но менять параметры практически любой команды.
СОВЕТ
Чтобы вернуться к заданным по умолчанию меню и элементам интерфейса, достаточно удалить
отредактированные файлы из локальной папки со сценариями и перезагрузить Maya.

Если в результате применения команды whatls выясняется, что вы сделали за-


прос только об одной команде, существует два способа получить дополнительную
информацию. Во-первых, можно запустить в браузере руководство по MEL-коман-
дам, содержащее описание всех команд с примерами их применения. Во-вторых,
в нижней части страницы обычно указываются родственные команды.
74 Глава 4 • Приемы работы в Maya

в - fc v",-, »•£{«!«#'•>»•

..г.». ^t-.г-..Ч

. , :.„

_ь t
-.(.11..^ " ' k» ••.

T. -1C.. 1,1». ... •.„

Лил, Щ
.
, «...«..-.-.„ «,

l,J4,,«4!
• ;IKS^
,V H,»Uf :». i-i." ">- !
-ч Вт- ,-гч -,- Т.-.-' •* -

Рис. 4.1. Результат установки флажка Echo All Commands

По правде говоря, существуют команды, не упомянутые в руководстве. В этом


случае можно воспользоваться справочной системой. Для этого в диалоговом окне
Script Editor (Редактор сценариев) достаточно ввести команду help, а вслед за ней —
название команды, которая вас интересует, например help getAttr. Это приводит к мо-
ментальному появлению списка флагов команды.
Существует и другой вариант использования команды помощи. Можно искать
команды по определенному образцу, например help -list "*ebuild*". В результате
появится список команд, имеющих отношение к перестройке поверхностей. Для
появления комментария в строке подсказки нужно ввести параметр -rm. Если же
комментарий должен появиться на полке, в строке состояния или на панели инст-
рументов, используются параметры -рт и-ptd.
Контроль за сделанными изменениями
При желании можно изменить параметры любой команды. Кроме значений по
умолчанию можно вносить изменения в диапазоны значений ползунков (см. ко-
манду floatSliderGrp), в метки, в приглашения командной строки и даже в сообще-
ния об ошибках.
Через некоторое время внесение изменений в сценарии команд входит в при-
вычку. Чем чаще вы это делаете, тем проще это делать в следующий раз. Но слиш-
Команды 75

ком усердствовать не стоит. Вы только представьте, что после установки следую-


щей версии Maya снова потребуется вносить изменения во все файлы и снова ре-
дактировать все сценарии, поменявшиеся при переходе к новой версии.
Например, у меня процесс систематического сравнения, редактирования и те-
стирования всех сценариев после перехода к новой версии занимает несколько
часов.
В нашей папке со сценариями имеется около 30 сценариев, отредактированны х
тем или иным образом. Оглядываясь назад, можно пожалеть, что эти изменения
появились слишком поздно. Ведь каждое из них сделало работу с Maya более удоб-
ной. Мы уверены, что по мере накопления опыта у вас появится желание модифи-
цировать дополнительные сценарии.
СОВЕТ -
Помещайте в модифицированные вами сценарии команд четкие комментарии, позволяющие по-
нять, какие параметры были изменены. Это поможет внести необходимые изменения в сценарии
при переходе к следующей версии Maya. Кроме того, если вы решите предоставить свои сценарии
другому пользователю, комментарии помогут ему понять, какие именно изменения вы внесли.

Так как редактирование сценариев представляет собой несложную операцию,


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

Клавиатурные комбинации
Другим исключительно эффективным способом повышения скорости работы яв-
ляется создание собственных клавиатурных комбинаций. Хотя, начав работать
с Maya, вы обнаружите множество уже существующих комбинаций, они не всегда
будут соответствовать возникающим перед вами задачам.
Заданный по умолчанию набор клавиатурных комбинаций достаточно поле-
зен, но не слишком специализирован. Поэтому, оценив, например, действия, кото-
рые чаще всего приходится выполнять при моделировании объектов, можно со-
здать собственные клавиатурные комбинации, увеличив, тем самым, эффектив-
ность процесса работы над сценой.
Иногда требуются клавиатурные комбинации, соответствующие командам с oi i-
ределенными параметрами, командам с последними использовавшимися парамет-
рами или командам вообще без параметров. Таким образом, можно создавать со-
вершенно новые команды.
Например, если вам надоело каждый раз, когда требуется сделать обычную ко-
пию объекта, щелкать на квадратике, расположенном справа от команды Duplicate
(Дублировать), дабы убедиться, что параметры этой команды имеют заданные по
умолчанию значения, создайте клавиатурную комбинацию для унифицированной
команды дублирования. Это должна быть особая команда, потому что при исполь-
зовании существующих клавиатурных комбинаций выполнение команд осуществ-
ляется с параметрами, заданными при их предыдущем выполнении. Вряд ли кому-
то захочется получать разные результаты при применении одной и той же команд];.!.
76 Глава 4 • Приемы работы в Maya

Дублирование может закончиться как появлением пары дюжин экземпляров, ори-


ентированных различным образом, так и созданием одной точной копии. Все за-
висит от параметров команды во время ее последнего применения.
В этом случае есть простое решение. Команда Duplicate (Дублировать), имеюща-
яся в меню, вызывает команду duplicate языка MEL с параметрами, определенны-
ми во время предыдущего использования команды Duplicate (Дублировать). В то же
самое время операция обычного копирования должна осуществляться путем вы-
зова команды duplicate без параметров.
Назначение клавиатурных комбинаций
Для создания клавиатурных комбинаций, которые вам предстоит запомнить, ис-
пользуется диалоговое окно Hotkey Editor (Редактор клавиатурных комбинаций). Кла-
виатурные комбинации, которые вы не в состоянии запомнить, вряд ли имеет смысл
создавать.
Для начала следует ознакомиться с уже имеющимися вариантами. Они пере-
числены в файле hotkeySetup.mel, расположенном в папке scripts/startup. Впрочем,
существует и более удобный способ. Выберите команду Window > Settings/Prefe-
rences > Hotkeys (Окно > Настройки/параметры > Клавиатурные комбинации) и в появив-
шемся диалоговом окне щелкните на кнопке List All (Показать все).
ВНИМАНИЕ
Никогда не редактируйте файл hotkeySetup.mel! Любые изменения допустимы только в диалоговом
окне Hotkey Editor (Редактор клавиатурных комбинаций). В этом случае значения, заданные в фай-
ле hotkeySetup.mel, заменяются новыми, не всегда остается возможность вернуться в исходное со-
стояние.

Иногда предположения и ассоциации для новых клавиатурных комбинаций


можно получить при работе с другими приложениями. Тем, кто в течение многих
лет работал с программой AutoStudio от Alias]Wavefront, можно сделать свой пе-
реход к Maya как можно более безболезненным, перенеся туда все ранее использу-
емые клавиатурные комбинации. В AutoStudio не практикуется применение оди-
ночных клавиш, в то время как именно из них состоят заданные по умолчанию
клавиатурные комбинации Maya. Поэтому переход может произойти достаточно
легко. Нужно просто использовать дополнительные клавиши Alt, Ctrl и Shift в каче-
стве основы для создания категорий и применять одни и те же модификаторы для
сходных команд, чтобы найти ассоциации, которые несложно запомнить.
Соответственно, как по историческим, так и по мнемоническим причинам можно
связать комбинацию Alt+D с командой Duplicate (Дублировать), а комбинацию Alt+S —
с командой Save File As (Сохранить файл как).
Можно привести еще один пример. Для команд, связанных с управлением ка-
мерами, имеет смысл задействовать легко нажимаемую комбинацию клавиш
Ctrl+Shlft, что позволяет сделать эти комбинации удобными для нажатия, напри-
мер, комбинация Ctrl+Shift+Z соответствует команде Zoom (Масштабирование). Это
сочетание относится к наиболее используемым. Чтобы выполнить наезд каме-
рой, достаточно нажать клавиши Ctrl+Shift+D. Панорамирование осуществляется
с помощью комбинации Ctrl+Shift+X, а для автоматического задания плоскостей
отсечки незаменима комбинация Ctrl+Shift+C, которая вызывает команду viewClip-
Plane -acp.
Команды 77

Для обычной команды дублирования была создана клавиатурная комбинация


Alt+Shift+D. Здесь клавиша Shift является дополнением к комбинации Alt+D, при-
вычной для пользователей программы AutoStudio. Сходным образом эта клавиша
была использована для остальных комбинаций, предназначенных, например, для
открытия диалоговых окон с параметрами команд.
ПРИМЕЧАНИЕ
Открытие диалогового окна с параметрами команды — это совсем не то же самое, что ее выполне-
ние. Сопоставить клавиатурную комбинацию можно как этим операциям по отдельности, так и им
вместе. Если вам часто приходится менять параметры какой-либо команды, подумайте о клавиатур-
ной комбинации, которая будет открывать нужное диалоговое окно.

Клавиатурные комбинации борются не только за место на клавиатуре, но и за


место в вашей голове. Запоминать лучше не отдельные комбинации, а их наборы,
Например, нам было достаточно легко запомнить, как осуществляется переход к ок-
ну проекции Camera (Камера), так как все комбинации, необходимые для работы
с камерами, обычно начинаются с сочетания Ctrl+Shift, а слово «camera» начинает-
ся с буквы «с».
Словом, различные ассоциации облегчают запоминание клавиатурных комби-
наций. Какими бы полезными вы ни считали обычные или контекстные меню, кла-
виатурные комбинации по быстродействию подобны регистрам процессора. Со-
поставляйте их операциям, которые вы выполняете чаще всего, и производитель-
ность вашего труда возрастет.
ВНИМАНИЕ -
Не вздумайте сопоставлять деструктивным операциям легко нажимаемую клавиатурную комбина-
цию. Особенно это относится к сохранению файлов. Ведь эту операцию невозможно отменить! Именно
поэтому не должно быть клавиатурной комбинации для команды Save (Сохранить). А для команды
Delete All Geometry (Удалить все объекты) используется комбинация Alt+Shift+Ctrt, случайно нажать
которую практически невозможно.

Также полезно напечатать для себя справочное пособие, которое можно про-
сматривать время от времени, чтобы освежить свою память. Для этого желательно
объединить свои клавиатурные комбинации (они находятся в файле userHotkeys.mel,
расположенном в папке prefs) с заданными по умолчанию (как уже упоминалось
ранее, они хранятся в файле hotkeySetup.mel, расположенном в папке $MAYA_ LOQ^-
TTON/scripts/startup), а затем отсортировать этот список. При этом важно выделить
те стандартные комбинации, которые вы заменили собственными. Можно также
сгруппировать их по выполняемым функциям.
СОВЕТ-
Знаете ли вы о «священных» клавишах Q, W, E, R, Т и Y? При желании их тоже можно поменять. Мы
это сделали, потому что клавиша R просто обязана соответствовать операции поворота (Rotate),
а буква «W» вызывает ассоциации с коэффициентом масштабирования.

ПРИМЕЧАНИЕ
Нельзя не отметить, что управляющие клавиши Alt, Ctrl и Shift можно использовать только в комби-
нации с другими клавишами. В остальном все зависит только от евс.
78 Глава 4 • Приемы работы в Maya

Клавиатурные комбинации от Марка


Несмотря на призывы к вам искать свои пути, наши варианты нравятся нам гораз-
до больше. Итак, позвольте представить вам любимые клавиатурные комбинации
одного из авторов (табл. 4.1).

Таблица 4.1. Клавиатурные комбинации от Марка


Инструмент Клавиши Ассоциации
Merge Vertices (Слить вершины) Alt ч-' Знак ' выглядит, как две точки,
слившиеся в одну
Split Polygon (Разбить полигон) Alt+/ Знак / обозначает операцию деления
Delete Edge (Удалить ребро) Alt+- Знак - ассоциируется с удалением
Append to Polygon Alt+= На клавише выше знака =
(Присоединить к полигону) находится знак +
Detach Curve (Разъединить кривые) Alt+5 Знак % (клавиша 5 в верхнем регистре)
напоминает операцию деления
Collapse Edge (Свернуть ребро) Alt+Y Буква Y напоминает операцию свертки
(два переходят в одно)
Insert Knot (Вставить узловую точку) Alt+б Знак Л (клавиша 6 в верхнем регистре)
напоминает корректорский символ вставки
Delete History (Удалить историю) Alt+H Разумеется, буква Н напоминает слово
«history»
Revolve (Вращать) Ctrl+0 Цифра 0 похожа на результат вращения
Extrude (Выдавить) Ctrl+б Цифра б выглядит как результат
выдавливания

Как легко заметить, большинство ассоциаций являются визуальными, то есть


в их основе лежит графическое обозначение клавиш. О графических операциях
принято думать образно, и именно образы являются естественным продолжением
мыслительного процесса.
Большинство других клавиатурных комбинаций определяются с помощью ос-
новных букв сопоставляемой команды. Например, буква «F» в комбинациях Alt+F
(преобразование выделенного в грани) и Ctrl+F (выделение граней полигона) со-
ответствует первой букве слова «Face» (грань). Последовательность в выборе ком-
бинаций помогает при их запоминании.
Планы на будущее
Назначать клавиатурные комбинации можно как уже существующим, так и созда-
ваемым вами командам. Если вас волнует, в какой степени результаты вашего тру-
да будут применяться другими пользователями, на других компьютерах или в дру-
гой версии Maya, нужно понимать, чем отличаются эти ситуации.
Назначение клавиатурных комбинаций существующим командам происходит
достаточно просто. При щелчке на кнопке Save (Сохранить) в диалоговом окне
Hotkey Editor (Редактор клавиатурных комбинаций) происходит запись новой ком-
бинации в файл userHotkeys.mel, расположенный в папке maya/prefs. Затем оста-
ется только перенести этот файл на другой компьютер или дать его другому
пользователю.
Команды

СОВЕТ
Если вам требуются клавиатурные комбинации на один сеанс работы с Maya, укажите их в диалого-
вом окне Hotkey Editor (Редактор клавиатурных комбинаций) и щелкните на кнопке Close (Закрыть),
не трогая кнопку Save (Сохранить). В этом случае все нововведения исчезнут после перезагрузки
Maya. Это бывает полезно, если приходится неоднократно выполнять одну или несколько MEL-
команд.

С другой стороны, при сопоставлении клавиатурной комбинации недавно со-


зданной вами команде нужно сделать ее как можно более мобильной. Для начала
требуется щелкнуть на кнопке New (Создать), расположенной в правой нижней
части диалогового окна Hotkey Editor (Редактор клавиатурных комбинаций), как пока-
зано на рис. 4.2. В результате появится возможность ввода информации в поля, на-
ходящиеся в нижней части этого окна.

5
Conttran
Chwaoei CreateLine
Pettictei PolyBacklaceCuIngOn
FfuidElfects
Fnkft HideNUflBS
Soft end Rigid 8 ode) SetCSppingPleresKej<ablB
Effect* SefeGtCunerCarmfa

Light* and Shading


Torturing

PartEKec»
ModeSftB Panel
SMuiUr»
Toofi PickNurbsCV
Duple atePlaJn
EdgePelhSded
Picks ubdiv
FecnPaihSetecl.
MwVpulBtot FacePathSpil
HDQDDM pickTerrelele
Atbnn SlimRende
BruihTooti
DitkCac ToflgleSeomatrji
foggtoCurve»
U»r Marking Menw VisAIGeomel
FLI

Рис. 4.2. Создание новой клавиатурной комбинации в диалоговом окне Hotkey Editor
ВО Глава 4 • Приемы работы в Maya

Клавиатурная комбинация сопоставляется не с введенной вами строкой назва-


ния команды, а скорее с «именованной командой». Эти именованные команды со-
здаются автоматически при назначении новой клавиатурной комбинации, со-
храняются в файле userNamedCommands.mel, расположенном в папке maya/prefs, и от-
носятся к категории User (Пользователь).
Если ввести исходную MEL-команду , именованная команда будет иметь на нее
ссылку (через файл userRunTimeCommands.mel). К сожалению, если вы захотите
передать эту команду другому пользователю, нужно будет либо передать ему все
необходимые файлы, либо непосредственно вводить MEL-код в окне редактора
клавиатурных комбинаций. Так как пользователи обычно создают клавиатурные
комбинации для своих собственных нужд, то для заимствования новых полезных
вариантов требуется ручное редактирование нужных записей в файлах userNamed-
Commands.mel и userRunTimeCommands.mel, а это утомительная и чреватая ошибка-
ми работа.
Намного проще при назначении клавиатурных комбинаций новым командам
использовать соответствующий команде MEL-сценарий. В этом случае новая ком-
бинация сопоставляется процедуре, описанной в сценарии.
Например, с помощью следующего простого кода можно скрыть или, наоборот,
сделать видимыми все источники света в окне проекции:
Global proc toggleLightsO
(
string StliisPanel - 'getPanel -wf";
model Editor -e -lights (! 'model Editor -q -lights SthisPaneD SthisPanel;

Этот сценарий сначала распознает окно проекции и затем меняет видимость


источников света. Кстати, подобный сценарий годится для всех объектов, пере-
численных в меню Show (Показать) окна проекций.
Другой пользователь может применить эту команду, просто поместив файл со
сценарием в папку совместного доступа и определив клавиатурную комбинацию,
вызывающую процедуру toggleLights, как показано на рис. 4.3. Так как процедура
имеет дело с источниками света (Lights), для комбинации Ctrl+L была использова-
на буква «L».
В этом случае другие пользователи смогут назначить созданной вами команде
свои клавиатурные комбинации, и для этого им не надо будет редактировать ваш
файл userNamedCommands.mel. Кроме того, вы сможете ссылаться на процедуру дру-
гими способами (например, через контекстные меню) опять же без поиска нужно-
го кода в файле userNamedCommands.mel.
ПРИМЕЧАНИЕ
Обычно любая процедура запоминается только в той области видимости, в которой она была опре-
делена. Затем память освобождается. Однако повторяющиеся процедуры необходимо сохранять.
Для этого их нужно определять как глобальные. Другими словами, если код, сопоставленный некой
клавиатурной комбинации, может быть полезен другим или может использоваться в другом контек-
сте, его нужно поместить в отдельный MEL-файл как глобальную процедуру.

Разумеется, в процессе работы над данной книгой мы пользовались разными


компьютерами и решали разные задачи, поэтому необходимости в общих клавиа-
Команды

турных комбинациях не возникало. Но наша профессиональная деятельность вне


данного проекта подтвердила ценность подобного подхода.

// togglH an/off thi display of Hunts curvti 1n ihe icilva pinal

glcbil proe TDMl*i.1ahc»p f


nrlng ItMiStneT . g«»j/i«1 -*fi
m»«TEiinor -* -UghH (l >od«ledHor -q -lights tthtiMiwV]

Рис. 4.З. Назначение процедуре клавиатурной комбинации

Аккуратно назначайте новые клавиатурные комбинации и обязательно приме-


няйте их в работе (помните, что если их нельзя использовать многократно, они
бесполезны). Зачем тратить время на поиск команд в многочисленных меню, если
можно вызвать их нажатием нескольких клавиш?

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

менение полок вместе с клавиатурными комбинациями избавляет от необходимо-


сти обращаться к многочисленным меню. Если же вам понадобится инструмент,
не имеющий отношения к обработке полигонов, например Create Lattice (Создать
решетку), его можно найти на другой полке.
Разумеется, стратегия выбора команд для полок является вашей прерогативой,
но полки удобны еще и тем, что нужные наборы инструментов располагаются пря-
мо над окнами проекций,
Параметры команд и полки
Обычно для размещения команды на полке необходимо перетащить ее из меню,
нажав при этом определенную комбинацию клавиш. В операционной системе IRIX
это клавиши Ctrl+Alt+Shift, в Linux — клавиши Alt+Shift, в Windows — клавиши
Ctrl+Shift В Мае для этой цели требуется одновременное нажатие клавиши Option
и правой кнопки мыши. В результате нужный пункт меню оказывается на полке.
Если это инструмент, кнопка полки становится указателем на соответствующий
пункт меню.
ПРИМЕЧАНИЕ
В Maya существует разделение на «инструменты» и «действия». Инструментами называются коман-
ды, требующие от пользователя ввода дальнейшей информации (например, выделения геометрии),
в то время как для действий это не нужно. Впрочем, в этой книге в основном будет употребляться
термин «команда» и только в особых случаях, когда указать на отличие действительно необходимо,
будут фигурировать термины «инструмент» и «действие».

Однако если вы хотите, чтобы параметры элементов на полке и соответствую-


щих пунктов в меню не зависели друг от друга, нужно воспользоваться другим
методом, а именно перетащить значок с панели инструментов, нажав среднюю
кнопку мыши. Обычно при этом происходит копирование текущих параметров,
но впоследствии их можно изменить в диалоговом окне Tool Settings (Параметры
инструмента). Это дает возможность, например, поместить рядом два инструмента
CV Curve (Управляющие точки кривой), один из которых будет создавать линейные
кривые, второй — трехмерные.
А как же быть с командами, для которых не существует :шачка на панели инст-
рументов? Открыв диалоговое окно Tool Settings (Параметры инструмента), напри-
мер, для команды Duplicate (Дублировать), вы обнаружите, что у нее отсутствуют
параметры.
Предположим, что вам требуются уникальные экземпляры какого-либо дей-
ствия, например, пусть на основе команды Duplicate (Дублировать) выполняются
специальные действия MlrrorX (Отражение по оси X), MirrorY (Отражение по оси Y)
и MirrorZ (Отражение по оси Z). Откройте диалоговое окно Shelves (Полки), щелкнув
на кнопке с указывающей вниз стрелкой, расположенной слева от полок, и выбрав
в появившемся меню команду Shelf Editor (Редактор полок), и вы увидите, что «по-
ложенная на полку» команда Duplicate (Дублировать) в точности выполняет проце-
дуру duplicatePreset, обладающую множеством непонятных аргументов. Однако так
как эти аргументы зависят от указанных вами параметров команды, нужно всего
лишь настроить параметры требуемым образом и по очереди перетащить каждую
из версий команды на полку.
Команды 83

СОВЕТ
Чтобы определить источник команды или процедуры языка MEL, достаточно ввести в командной
строке или в диалоговое окно Script Editor (Редактор сценариев) команду whatls. Часто это — самый
быстрый способ найти MEL-процедуры, которые вам хотелось бы перекроить под свои нужды. Разу-
меется, не все ваши запросы будут относиться к MEL-процедурам. Если результатом выполнения
команды whatls явилась команда, значит, она относится к основным MEL-командам.

Не забудьте предоставить сопроводительный текст для каждого варианта ко-


манды на полке. Для большинства элементов полки достаточно открыть диалого-
вое окно Shelves (Полки) и ввести нужный текст в поле Label & Tooltips (Название
и всплывающая подсказка), а в некоторых случаях — и в поле Icon Name (Название
значка). Однако некоторые элементы (обычно созданные с помощью MEL-коман-
ды superCtx) упрямо сопротивляются всем попыткам присвоить им название.

snelfButton
-enablecommandRepeat l
-enable I
-width 3!
-height M
-manage 1
-visible 1
-label "Duplicate"
-Image-overt ayi-a,bel "lil"
-•-Imagel "menuicDnCdlt.xem"
-style "IcoiWiorextVertlcal"
-command "duplicate"
shelfButton
-enablecommandRepeat 1
-enable 1
-width 82
-height 54
-manage 1
-visible 1
-annotation "MlrrorX; Mirror copy the selected object CO In x"
-label "MlrrcrX"
-1mageCverlayL4bel "-X"
-Imagel "menuiconEdlt.xprn"
-style "1conAntfr*xtvert1cal"
-command "dupllcataPresettXl.l,0,0,0,0,0,0,0,0,0,0,-1,1,1)"
shelfBurton
-enablecommindRepeat 1
-enable 1
-width 82
-height 54
-manage 1
-visible 1
-annotation "MlrrorY: Mirror copy the selected ohjactCs? 1n V"
-label "Mlrrory"
-1m»geover1ayLibil "-v"
-Imagel "menuIcDnEdlt.xpm"
-style "IconAndrextvertlcal"
-command "dupl1c«epr*serCl, 1,1,0,0,0,0,0,0,0,0,0,0,1,-1,1)"
shelfButton
-enableCommandRepeat 1
-enable 1
-width 82
-height 54
-manage l
-visible 1
-annotation "Mlrrorz: Mirror copy the selected obJectCs} In z'
-label "Mlrrorz"
-Imageover1ayLabel "-2"
-Imagel "mentaconEdlt.xpm"
-style "Icorwidrextvertleal"
-command "dupHcatepresetCL,1,1,0,0,0,0,0.0,0,0,0,0,1,1,-ID"

Рис. 4.4. Настройка элементов полки


84 Глава 4 • Приемы работы в Maya

Если элемент описывается в файле полки как shelfButton (это относится к боль-
шинству элементов), его всплывающую подсказку можно поменять с помощью
аргумента-annotation. Интерактивного способа изменения подсказок не существу-
ет, но можно легко отредактировать строку примечания в файле полки, как пока-
зано на рис. 4.4. Естественно, текст всплывающей подсказки команды MirrorX (От-
ражение по оси X) должен отличаться от текста команды Duplicate (Дублировать).
У прямого редактирования файла полки есть еще одно преимущество. Вы по-
лучаете возможность включать в названия специальные символы, которые нельзя
ввести в интерактивном режиме. То есть вам не удастся обычным способом при-
своить кнопке на полке название -X или 1:1, но это легко можно сделать в тексто-
вом редакторе.
ПРИМЕЧАНИЕ -
Файлы полок хранятся в папке maya/5.Q/prefs/shelves и имеют имена вида зЬе!Г_Название.те1.

Текстовый режим полок


Итак, какой бы сценарий вы ни перетащили на полку, впоследствии можно отре-
дактировать связанные с ним текстовые поля и даже значок. Но существуют и до-
полнительные возможности.
В первых версиях Maya поддерживался текстовый режим полок, то есть на пол-
ках можно было размещать не только значки, но и слова. И хотя соответствующей
команды меню, подобной показанной на рис. 4.5, в текущей версии Maya нет, су-
ществует возможность перейти в этот режим, отредактировав пару файлов. Для
вашего удобства мы поместили эти файлы (ShelfEditorDialog.rnel и ShelfStyle.mel) в пап-
ку Chapters/Chapter04 прилагаемого к книге компакт-диска. Скопируйте их в папку
5.0/scripts/startup и перезапустите Maya.

Рис. 4.5. Перевод полок в текстовый режим

Таким образом, если вы, как и авторы, считаете, что количество команд намно-
го превышает количество вразумительных значков, используйте возможности ан-
Команды 85

глийского (или русского) языка, чтобы различать, например, операции вращения


на 180° вокруг оси Z и вращения на 360° вокруг оси X.
Впрочем, если вы предпочитаете самостоятельно рисовать значки для новых
команд, нет никакой причины переходить в текстовый режим. Хотя авторы пред-
почитают текстовый режим, иллюстрации в этой книге были сделаны в режиме
показа значков.

Контекстные меню
Несмотря на то что авторы не жалуют средства оперативного доступа к командам,
возможности контекстных меню впечатляют. В Maya существует ряд способов
доступа к контекстным меню, в число которых относится нажатие и удержание
клавиши пробела.
ПРИМЕЧАНИЕ -
Авторы считают контекстные меню излишними, так как при раскрытии они занимают много места,
а все содержащиеся в них команды можно найти в других меню (например, в главном). Часто при-
меняемые команды удобней размещать на полках или связывать с клавиатурными комбинациями.

При работе с контекстными меню полезно использовать режим Center Zone Only
(Только центральная зона), позволяющий настроить меню для всех кнопок мыши,
как это сделано в привычной авторам программе AutoStudio. Хотя потенциально
можно создать 15 контекстных меню (3 кнопки мыши плюс 5 зон на экране), дос-
туп к которым осуществляется через клавишу пробела, обычно вполне достаточно
кнопок мыши.
Чем плохи зоны? Авторы обнаружили, что слишком часто ошибаются, выби-
рая команду, например, в северной зоне, в то время как нужно было делать выбор
в контекстном меню верхней части центральной зоны. Сокращение числа подоб-
ных меню позволило избавиться от частых ошибок. Тем более что никакой нужды
в дюжине дополнительных меню обычно нет.
Возложив основную нагрузку на полки и клавиатурные комбинации, авторы,
тем не менее, зарезервировали контекстные меню за часто выполняемыми опера-
циями. В этом случае набор манипуляций по выбору нужной команды через ко-
роткое время становится автоматическим.
Чтобы удовлетворить рациональные натуры, можно создать контекстные меню
различного назначения. В левой зоне — для выделения объектов, в центральной —
для преобразований, в правой — для управления камерой.
Чтобы порадовать взор и укрепить двигательную память (ключевой ингреди-
ент манипуляций с контекстными меню), команды отмены можно разместить
в северной зоне, а общие команды — в центральной.
Марк, например, переделал контекстные меню в соответствии со своим стилем
работы, но подобные действия потребовали определения MEL-команд, вызываю-
щих выбор маски и режима выделения, а также активизацию выбранной коман-
ды. Благодаря хорошо спланированным командам выделения в контекстном мен ю
и кнопкам на полке Pick (Выделение), применяемым для менее общих случаев,
у Марка практически не возникает необходимости пользоваться маской выделе-
ния в строке состояния.
86 Глава 4 • Приемы работы в Maya

ПРИМЕЧАНИЕ
В Maya существуют не только режимы выделения иерархий, компонентов и объектов, но и смешан-
ный режим, в котором допустимо одновременно выделять элементы разного типа. Вот как могут
выглядеть MEL-аналоги команд контекстного меню для выделения поверхностей в этом режиме:
selectMode -p; selectType -ns 1; setToolTo $gSelect.

Конечным результатом редактирования методов выделения был выбор наибо-


лее удобного способа работы. Вряд ли вы выберете тот же самый способ, что и Марк,
но приспособляемость Maya позволяет любому пользователю настроить интер-
фейс под себя.

Пользовательский интерфейс
Мы решили не только создать проект «Место для парковки», но и позволить тыся-
чам других пользователей Maya, образно выражаясь, посмотреть нам через плечо.
Чтобы не слишком сильно их дезориентировать, было решено по ходу проекта со-
хранить число очевидных вмешательств в интерфейс программы на минимальном
уровне. Однако чтобы дополнительно проинформировать пользователей о неве-
роятной гибкости Maya, в этом разделе мы поговорим о тех изменениях в интер-
фейсе, которые могут оказаться полезными.

Элементы пользовательского интерфейса


Окно программы Maya делится на ряд основных секций (строка подсказки, полки,
строка состояния и т. п.), которые можно скрывать и показывать, менять местами
и даже полностью переопределять.
Видимость элементов интерфейса
Для изменения видимости элементов интерфейса достаточно установить или снять
флажок рядом с соответствующим элементом среди перечисленных в подменю
UI Elements (Элементы интерфейса) меню Display (Отображение). В этом же подменю
находятся команды Hide UI Elements (Скрыть элементы интерфейса) и Restore UI Elements
(Восстановить элементы интерфейса), позволяющие соответственно скрыть или вос-
становить на прежних местах все элементы интерфейса (рис. 4.6). Впрочем, ис-
пользовать эти команды нужно крайне аккуратно.
Когда вы убираете элементы интерфейса с помощью команды Hide UI Elements
(Скрыть элементы интерфейса), Maya запоминает, какие именно элементы были на
экране, чтобы показать их в случае выбора команды Restore UI Elements (Восстано-
вить элементы интерфейса). Если вы скрыли элементы интерфейса только один раз,
их восстановление произойдет без проблем, однако если выбрать команду Hide UI
Elements (Скрыть элементы интерфейса) два раза подряд, показать скрытые элемен-
ты можно будет, только устанавливая соответствующие флажки в подменю UI Ele-
ments (Элементы интерфейса).
Разумеется, при наличии сценария, делающего видимыми нужные вам элемен-
ты интерфейса, беспокоиться не о чем. Команды, перечисленные в показанной ниже
MEL-процедуре, можно комбинировать по вашему вкусу, делая видимыми и скры-
вая различные элементы:
Пользовательский интерфейс 117

Рис. 4.6. Подменю UI Elements меню Display

global proc UI_Off()

setStatusLineVislble 0;
setShelfVisible 0;
setPlaybackRangeVislble 0:
setCorrmandLlneVisible 0;
setHelpLlneVlsible 0;
setToolboxVislble 0;
setAttributeEditorVisible 0;
setToolSettingsVisible 0;
setChannelsLayersVislble 0;

Поместив такой сценарий на полку или в контекстное меню, вы сможете одни м


щелчком мыши получить доступ ко всем сочетаниям элементов интерфейса, кото-
рые вам обычно требуются, — от минимального набора, достаточного для модели-
рования, до полного комплекта, предназначенного для работы над анимацией. При
создании моделей рекомендуем использовать несколько подобных этому сцена-
риев, располагая их на полке вместе с остальными сценариями, связанными с эле-
ментами интерфейса.
Расположение элементов интерфейса
Существует возможность не только показывать или скрывать элементы интерфей-
са, но и менять их местами. Осталось понять, зачем это нужно?
Ну, во-первых, иногда это требуется для удобства. Если вы часто работаете с пол-
ками, может оказаться, что раз за разом глядеть вверх, чтобы увидеть нужный ЗБ а-
чок, довольно утомительно. Поэтому можно опустить полки пониже.
Кроме того, иногда имеет смысл разместить элементы со сходной информаци-
ей ближе друг к другу. При наведении указателя мыши на кнопку полки в строке
подсказки появляется информация об этой кнопке. К сожалению, по умолчанию
полки расположены в верхней части экрана, а строка подсказки — в нижней. Пе-
реместив полки вниз, вы расположите эти элементы друг рядом с другом. Обрати-
те внимание, что само по себе изменение положения элементов на экране не ска-
зывается на порядке следования их названий в подменю UI Elements (Элементы ин-
88 Глава 4 • Приемы работы в Maya

терфейса) меню Display (Отображение). Чтобы изменить порядок следования назва-


ний в меню, нужно отредактировать файл buildPreferenceMenu.mel.
Также имеет смысл размещать элементы в соответствии с частотой их исполь-
зования. Например, так как Марк практически никогда не задает маски или режи-
мы выделения стандартным образом, а для привязок применяет клавиатурные ком-
бинации, строка состояния требуется ему только для проверки режима привязки.
Соответственно, ее можно поместить куда-нибудь, где на нее удобно смотреть.
Для изменения порядка следования элементов нужно отредактировать сцена-
рий initMainWindow.mel. В нижней части этого файла перечислены связанные эле-
менты. Благодаря блокам кода для каждого элемента, описывающим их связь друг
с другом, разобраться в MEL-коде достаточно легко. Например, чтобы поменять
местами ползунок таймера анимации и шкалу диапазонов, нужно отредактировать
следующий код:
-attachNone SmayaLi ve "top"
-attachForm SmayaLi ve "1 eft" 0
-attachForm SmayaLi ve "right" 0
-attachControl JmayciLive "bottom" 0 StlmeSlider

-attachNone StimeSlider "top"


-attachForm StimeSlider "left" 0
-attachForm StimeSlider "right" 0
-attachControl StimeSlider "bottom" 0 $playbackRange

-attachNone $playbackRange "top"


-attachForm $p1aybackRange "left" D
-attachForm $playbackRange "right" 0
-attachControl $playbackRange "bottom" 0 ScommandLine

Достаточно поменять блоки друг с другом местами, повторно создан ассоциа-


ции. В итоге должны получиться следующие строки:
-attachNone SmayaLive "top"
-attachForm SmayaLive "1 eft" С
-attachForm $mayaLive "right" 0
-attachControl SmayaLive "bottom" 0 $playbackRange

-attachNone $playbackRange "top"


-attachForm tplaybackRange "left" 0
-attachForm $playbackRange "right" 0
-attachControl SplaybackRange "bottom" 0 StimeSlider

-attachNone StimeSlider "top"


-attachForm $timeS1ider "left" 0
-attachForm $timeSlider "right" 0
-attachControl StimeSlider "bottom" 0 ScommandLine
Сохраните файл и перезагрузите Maya. Теперь ползунок таймера анимации бу-
дет располагаться над шкалой диапазонов. Так как положение элементов интерфей-
са определяется в момент загрузки программы, ее повторный запуск обязателен.
Разумеется, если вам недостаточно этих простых изменений, можно полнос-
тью перестроить интерфейс путем задания переменной окружения MAYA_OVER-
Окна проекции 89

RIDEJJI. Впрочем, инструкция по созданию пользовательского интерфейса «с нуля»


выходит за рамки темы данной книги.
Еще раз напоминаем, что хотя поменять положение элементов интерфейса Maya
не сложно, а иногда и полезно, но по причинам, описанным ранее, при выполнении
проекта «Место для парковки» будет использован стандартный интерфейс Maya.

Меню
Работа опытного пользователя в Maya обычно заключается в нажатии клавиш,
выборе команд в контекстных меню, щелчках на кнопках полок и перемещениях
указателя мыши. Основными меню приходится пользоваться только в нестандарт-
ных ситуациях. Но даже Б этом случае доступ к нужным командам не должен быть
сложным.
Как и остальные элементы интерфейса, меню можно редактировать, потому что
они тоже написаны на языке MEL, Код каждого меню содержится в отдельном
файле. Любой файл может быть скопирован в вашу папку со сценариями и изме-
нен в соответствии с вашими желаниями. Хотя каждое такое изменение затруд-
нит переход к новой версии Maya, время от времени имеет смысл это делать, что-
бы убрать ненужные вам команды.
Для начала можно изменить порядок следования команд, переместив чаще всг-
го используемые команды в верхнюю часть меню. Также можно выделить их в от-
дельное подменю, расположив его на верхнем уровне иерархии меню. Существует
даже возможность переносить пункты из одного меню в другое. Например, можно
перенести команду Deform (Деформация) из меню Animation (Анимация) в меню
Modeling (Моделирование), в котором эта команда может быть очень полезна.
Даже панель инструментов существует в виде отдельного файла toolbox.mel и мо-
жет быть изменена. Однако это делается в исключительных случаях, например
после переназначения команд, соответствующих клавишам Q, W, E, R, Т и Y.
Меню не являются неприкосновенными, поэтому не стоит бояться маленького
«хирургического вмешательства», позволяющего поместить ваши любимые инст-
рументы в наиболее удобное положение. Лежащий в их основе MEL-сценарий до-
статочно прост и обычно одному меню соответствует один файл, расположенный
в папке scripts/startup или scripts/other. Еще раз напоминаем, что для редактирова-
ния его нужно скопировать в вашу локальную папку со сценариями. И как обычно
для устранения этих модификаций достаточно удалить отредактированный файл
и перезагрузить Maya.
По мере работы вы самостоятельно придете к необходимости тех или иных изме -
нений. Если доступ к большинству команд вы получаете с помощью меню, описан-
ные в этом разделе приемы, вероятно, будут вам более интересны, чем пользовате-
лям, предпочитающими клавиатурные комбинации, полки и контекстные меню.
Экономьте ваше время, организуя рабочее пространства удобным вам образом.

Окна проекции
Вместе с Maya вам предстоит провести бесчисленные часы в попытках настроит!,
камеры таким образом, чтобы они показывали нужную вам сцену. Так как визу
альные представления являются важной частью работы с Maya, повышение про
изводительности в этой области окажет выгодное влияние на весь процесс моде
лирования. Рассмотрим несколько способов управления окнами проекции.
90 Глава 4 • Приемы работы в Maya

Увеличение
Любой пользователь, глядя на сцену, хочет видеть ее как можно лучше, а не тра-
тить время, пытаясь разглядеть нужные объекты.
Для начала нужно развернуть окно проекции во весь экран. Авторы делают это
практически всегда, предпочитая работу в единственном окне проекции стандарт-
ному четырехоконному представлению. Для облегчения перехода от одного окна
к другому можно настроить клавиши от F5 до F8 таким образом, чтобы при нажа-
тии одной из них разворачивалось нужное окно: Тор (Вид сверху), Front (Вид спере-
ди), Side (Вид сбоку), Perspective (Перспектива). После этого для перехода от одной
проекции к другой теперь достаточно будет нажатия всего одной клавиши,
Следует также помнить о положении камеры в окнах ортографических и цент-
ральных проекций. От этого зависит, например, настройка плоскостей отсечки.

Установка границ
Для задания плоскостей отсечки нужно знать положение камеры. Для этого тре-
буется выбрать команду Select Camera (Выделить камеру) в меню View (Вид) окна
проекции (разумеется, у авторов для этой цели существует клавиатурная комби-
нация). В окне ортографическои проекции нужно узнать смещение камеры отно-
сительно начала координат вдоль оси, перпендикулярной наблюдению. Например,
для окна проекции Side (Вид сбоку) это будет ось X. Не имеет смысла усложнять
процесс расчета плоскостей отсечки, поэтому в качестве значения по умолчанию
берется 100 или любое другое круглое число.

S, ,', .".'
IV (чигш Ъ*.*- "•" '-"- >"-.' '>"- Г*™-

Рис. 4.7. Задание плоскостей отсечки в форме атрибутов, допускающие создание ключей
Управление файлами 91

Задание плоскостей отсечки обычно требует открытия диалогового окна Attribute


Editor (Редактор атрибутов). Однако после добавления нужных значений в список
атрибутов, допускающих создание ключей, это может быть легко проделано в ок-
не каналов. Подобное добавление можно вручную осуществить в диалоговом окне
Channel Control (Управление каналами), а можно воспользоваться небольшим MEL-
сценарием:
setAttr -k on "topShape.nearClipPlane":
setAttr -k on "topShape.farClipPlane";
После этого для задания плоскостей отсечки достаточно просто выделить ка-
меру и ввести значения в поля Near Clip Plane (Ближняя плоскость отсечки) и Far Clip
Plane (Дальняя плоскость отсечки) окна каналов, как показано на рис. 4.7.
Задание плоскостей отсечки особенно важно при работе с неверно сделанными мо-
делями, которым нужно придать правильную форму. Так как камера смещена на рлс-
стояние, выраженное круглым числом, легко вычислить величину ближней и дальней
плоскостей отсечки, необходимых для получения среза нужного фрагмента модели.

Центрирование камеры
Ориентируя камеру нужным образом, важно сохранять ее направление на опреде-
ленную точку. В процессе моделирования можно использовать следующий спо-
соб просмотра объекта в окне проекции Perspective (Перспектива).
1. Устанавливается примерно такое же, как у обычного объектива, поле зрения
камеры (то есть примерно 45°).
2. Регулируется расстояние от камеры до модели таким образом, чтобы модель
имела максимально возможные размеры в границах окна проекции.
3. Выделяется нужный объект.
4. Применяется операция Look at Selection (Фокусировка на выделенном).
После этого происходит настройка поля зрения с помощью команд Tumble (Пе-
реворот), Track (Сопровождение), Zoom (Масштабирование) и Look at (Фокусировка).
Например, можно увеличить масштаб, выполнить нужные действия и затем на-
жать клавишу, которая возвращает проекцию в первоначальное состояние. В этом
случае операция Dolly (Наезд) требуется очень редко, что очень хорошо, так как
остается незатронутым соотношение между плоскостями отсечки. Кроме того,
с точки наблюдения не теряется представление о масштабе и пропорциях.
Если же постепенные изменения состояния камеры приводят к дезориентации
наблюдателя, можно возвратиться к предыдущей процедуре и снова произвести
настройку. Работа в ортографических проекциях происходит таким же способом,
просто при этом вам не приходится иметь дело с переворотами и полем зрения.
Особо амбициозные пользователи могут применить команду camera для опре-
деления заданного по умолчанию положения камеры. Наконец, можно просто вы-
брать команду Default Home (Вернуть на исходную точку) в меню View (Вид) окна про-
екции, чтобы камера вернулась на место.

Управление файлами
При выполнении проектов крайне важно систематизировать порядок сохранения
информации. В противном случае вы рискуете потерять время на поиск различ-
92 Глава 4 • Приемы работы в Maya

ных фрагментов проекта, ставя под угрозу само его выполнение. Хорошо устроен-
ная система хранения информации гарантирует спокойную работу и минимум не-
приятных сюрпризов.
Для проекта «Место для парковки» нам приходилось объединять результаты
труда трех пользователей и превращать их в последовательности фрагментов. Пе-
реход данных из одних рук в другие должен быть надежным и последовательным.

Проекты
Сначала необходимо принять решение о структуре проекта. Так как анимация
включает несколько крайне сложных моделей, построение каждой из них было
вынесено в отдельный проект. Названия для файлов проектов были выбраны в со-
ответствии с названиями моделей — ParkingMeter, FireHydrant, Spot и т. п. В рамках
каждого из этих проектов осуществлялась работа над деталями моделей, материа-
лов и анимации определенного объекта.
Затем была произведена компоновка, анимация, освещение и, наконец, визуа-
лизация главного проекта, хранящегося в файле ParkingSpot

Именование файлов
Для работы мы выработали свою систему именования файлов. Чтобы избавиться
от необходимости сортировать файлы со случайными именами, пытаясь отличить
промежуточные варианты от окончательных версий, было решено пользоваться
предсказуемыми именами. Для минимизации усилий общий стандарт именова-
ния файлов в Maya был приспособлен для нужд нашего проекта.
Сложно переоценить важность последовательного сохранения результатов сво-
его труда. Приложение Maya достаточно сложное, а все мы знаем, что такие про-
граммы могут зависнуть в процессе работы. Кроме того, вы можете обнаружить,
что зашли в тупик. В этом случае нужно вернуться на один из предыдущих этапов.
Наша система именования файлов замечательно упрощает эти действия.
О Каждая модель создается в рамках своего проекта, например, в проекте Fire-
• Hydrant.
О Промежуточным файлам внутри проектов присваивается сокращенное имя
проекта и порядковый номер, например, FH3.
о Временным файлам, сохраняемым с возрастающими числовыми расширения-
ми, присваиваются имена от tmpl до tmp9. Затем эти имена используются по-
вторно.
О Важным файлам присваиваются «говорящие» имена, например, BeforeDeforming
(перед деформацией).
О Окончательная версия называется в соответствии с целью проекта, например,
FireHydrant (пожарный гидрант).
О Если окончательная версия файла была подвергнута редактированию, к имени
файла присоединяется номер версии, например, FireHydrant.l. Отредактирован-
ному файлу присваивается название окончательной версии — в нашем случае
FireHydrant.
Заключение 93

Именно таким способом именовались все модели проекта «Место для парков-
ки» и все фрагменты. После завершения работы над одной моделью (с ее полной
анимацией) мы знали, что можно удалить все файлы с названием tmp. Ведь ключе-
вые файлы и окончательные результаты были ясно идентифицированы.
В случае с фрагментами (или с любыми моделями, части которых создавались
по отдельности) им присваивались имена вида sltmpl, sltmp2 и т. п. (чтобы не пу-
тать их с временными файлами). Файлы, содержащие ключевые моменты моде-
лирования, назывались sl.l, si.2 и т. п. Окончательные варианты фрагментов име-
ли имена shotl, shot2 и т. п.
Кроме того, мы сохраняли свою работу в формате ASCII, а не в виде двоичных
файлов. Последние, конечно, помогают экономить место на диске, но они недо-
ступны для редактирования. Очевидным преимуществом ASCII-файлов являете я
возможность вносить в них исправления в текстовом редакторе.
ВНИМАНИЕ-
Сохраняйте ваши файлы в формате ACSII (с расширением .та), а не в двоичном формате (с расши-
рением .mb). Ведь первые могут быть восстановлены в случае порчи, а вторые — нет. Не стоит
рисковать результатами своего труда, сохраняя их в двоичном формате!

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

Заключение
Интерфейс Maya допускает настройку, поэтому тщательно продумайте свою ра-
боту и определите способы повышения ее эффективности. Это может быть как
полная перестройка пользовательского интерфейса, так и обычное создание кла
виатурных комбинаций для чаще всего применяемых команд.
Разумеется, нам было бы приятно, если бы вы предпочли работать гак, как ра
ботаем мы, но вы должны определить собственные предпочтения и ведущий к ним
путь. Небольшое неудобство добавляет всего пару секунд лишней работы на каж-
дом шаге, но если вам приходится сталкиваться с этим изо дня в день, потери вре-
мени оказываются вполне ощутимыми, не говоря уж об испорченных нервах.
Потратьте время на изучение своих привычек и вычленение повторяющихся
задач. Лучше потратить день или два на освоение новой версии Maya, чем терять
недели на отшлифовку рутинных операций.
Созданный вами набор клавиатурных комбинаций может быть далеко не пол-
ным, а пользовательский интерфейс никогда не будет полностью оптимальным.
Но, обращая внимание на эти моменты, вы повысите продуктивность своей рабо-
ты и сделаете ее комфортной.
5 Язык MEL

Язык MEL (Maya Embedded Language - встроенный язык Maya) дает возможность
непосредственного выполнения любой команды Maya. В действительности все
меню и окна в Maya, как и остальные элементы пользовательского интерфейса,
написаны именно на этом языке. Соответственно, введя нужную MEL-команду,
можно выполнить любую команду меню. Все сценарии, запускаемые через меню,
можно ввести непосредственно в диалоговом окне Script Editor (Редактор сценари-
ев). Короче говоря, язык MEL позволяет напрямую послать сообщение с инструк-
цией для выполнения. В этом языке могут использоваться циклы и условия, а также
функции. Последние в рамках принятой в MEL терминологии обычно называют
процедурами.
В этой главе мы поговорим на следующие темы:
О назначение и порядок использования языка MEL;
О основные сведения о языке MEL;
О диалоговое окно Script Editor (Редактор сценариев) и внешние редакторы;
О написание первого сценария;
О аргументы, массивы, циклы, управляющие структуры и типы данных;
О ссылки на дополнительные ресурсы,

Назначение и порядок
использования языка MEL
Язык MEL позволяет выполнить в Maya практически любую операцию. Он при-
меняется для автоматизации рутинных и повторяющихся задач. Нужно отметить
также тот факт, что хорошо написанный сценарий никогда не совершит ошибки,
которую может сделать человек, например, в процессе сотого по счету выделения
и удаления пяти вершин одного и того же полигона. На языке MEL можно напи-
сать все, от простейшего графического интерфейса для создания персонажей до
сложного алгоритма, применимого в любой «производственной» области Maya, от
моделирования и анимации до динамики частиц, эффектов и визуализации. С его
Назначение и порядок использования языка MEL 95

помощью можно даже осуществлять ввод-вывод файлов, то есть записывать фай-


лы на жесткий диск или передавать их в сеть и читать их. Отсюда следует возмож-
ность создавать и читать системный журнал, а также заниматься пакетной визуа-
лизацией в сети. Язык MEL позволяет импортировать и экспортировать файлы,
сохранять их, выполнять и даже передавать аргументы командной строки во вне-
шние программы.
Все эти функции легко доступны, поэтому язык MEL можно использовать для
любых действий, требующих передачи данных между Maya и остальными частя-
ми вашего производственного конвейера, а также для автоматизации промежуточ-
ных этапов работы. Обычно MEL используется техническим директором проекта
для автоматизации повторяющихся или чересчур сложных операций, а также за-
дач, выполнение которых требует точного алгоритма. Результат воплощается в не-
больших сценариях, которые легко могут быть запущены любым пользователем
сети.
Если возможностей языка MEL недостаточно (например, MEL не позволяет
написать собственный деформатор), в Maya существует прикладной программный
интерфейс, позволяющий создавать подключаемые модули. После создания и ком-
пиляции они размещаются в сети и динамически загружаются в Maya с помо-
щью MEL. Именно таким способом реализованы модули Cloth (Работа с тканями)
и Live (Живая камера).
По мере чтения этой главы и освоения языка MEL помните следующее:
О язык MEL достаточно прост и забавен;
О чем лучше вы разбираетесь в Maya, тем полнее вы знаете MEL (обратное также
верно).
Язык MEL не является языком программирования в полном смысле этого сло-
ва. Он не предназначался для замены уже существующих языков, которые пре-
красно работают на своем месте, имеют развитый код и в них вложены знания мно-
гих поколений пользователей. Язык MEL изначально разрабатывался для Maya.
Он не зависит от платформы, на которой вы работаете. Хотя в нем существуют
команды, присущие только UNIX или только Windows, по большей части, если
Maya работает на какой-либо платформе, значит, там будут работать и MEL-сце-
нарии.
ПРИМЕЧАНИЕ -
Любому человеку с опытом программирования на С или C++, а также с опытом написания сценари-
ев для UNIX, Csh или Perl без сомнения будет проще разобраться в языке MEL Если у вас нет подоб-
ного опыта, но есть знакомые специалисты, они, скорее всего, смогут ответить на основные вопро-
сы. Кроме того, язык MEL намного проще любого из вышеупомянутых языков. Он был разработан,
чтобы им могли пользоваться и программисты, и художники, причем так, чтобы тем и другим не
приходилось осваивать много дополнительной информации. Первым вряд ли будут интересны под-
робности устройства Maya и способы доступа к командам через пользовательский интерфейс, затс
они с удовольствием начнут писать понятные и эффективные сценарии. Художники же лучше осве-
домлены о том, с помощью каких команд выполняются определенные действия, но плохо представ-
ляют программную сторону вопроса. То есть уровень базовых знаний у них примерно одинаков.
К сожалению, язык MEL не является объектно-ориентированным и не поддерживает пользователь-
ские типы данных. С другой стороны, именно благодаря этому его достаточно легко освоить, полу-
чив в свои руки мощный инструмент для работы в Maya.
96 Глава 5 - Язык MEL

СОВЕТ
Если вы раньше никогда не занимались программированием, первое знакомство с языком MEL может
оказаться слегка обескураживающим. Не стоит отчаиваться! Для понимания основ этого языка вовсе
не нужен опыт в программировании, хотя наличие знаний в этой области не повредит. Если вы не-
сколько растерялись, наверное, имеет смысл приобрести книгу по языку С, в которой описываются
принципы разработки и написания программ. Это будет полезно для понимания методов программи-
рования и специальных терминов, а также поможет в будущем при написании сценариев.

Основные сведения о языке MEL


MEL представляет собой построчно интерпретируемый язык сценариев. Его син-
таксис сравним с синтаксисом таких языков, как С и Perl. Этот несложный для
изучения язык дает полный контроль над интерфейсом Maya, включая диалого-
вые окна и элементы управления. Кроме того, вы можете создавать и выполнять
ваши собственные сценарии и процедуры.
Язык MEL представляет собой нисходящий, функционально-ориентированный,
процедурный, интерпретируемый язык. Каждая MEL-процедура должна решать
одну задачу и возвращать полученный результат в следующую функцию, или про-
цедуру, и так до завершения сценария. В этом языке существует единая система
понятий. В нем не поддерживаются пользовательские типы данных, объекты, клас-
сы, методы и шаблоны. Не поддерживаются даже ссылки и невозможна передача
параметров по ссылке. Управление памятью целиком берет на себя Maya. Все мас-
сивы переменных создаются автоматически и удаляются из памяти после того, как
функция покидает область видимости.
Все понятия MEL взяты из других языков программирования, включая 2-раз-
мерные, 3-размерные и строковые типы данных, глобальные и локальные перемен-
ные, управляющие структуры, выражения, условия, ветвления, циклы, области
видимости переменных, рекурсию и, конечно, необходимость указания типа воз-
вращаемого функцией значения. Существуют сотни встроенных MEL-команд для
таких операций, как обработка строк, математические расчеты, ввод и вывод фай-
лов, поиск ошибок, а также множество процедур, присущих исключительно Maya.
Некоторые понятия, такие как триггеры и события, использующие команды scriptJob
и scriptNode, описаны в приложении А.

Командная строка и редактор сценариев


В Maya существует внутренний редактор для написания и отладки MEL-сценари-
ев, который называется Script Editor (Редактор сценариев). Его вызов осуществляет-
ся командой Window > General Editors > Script Editor (Окно i> Редакторы общего назна-
чения > Редактор сценариев), как показано на рис. 5.1.
Перед тем как приступить к написанию сценариев, убедитесь в наличии флаж-
ка рядом с командой Command Line (Командная строка) в подменю UI Elements (Эле-
менты интерфейса) меню Display (Отображение), как показано, на рис. 5.2.
Командная строка и редактор сценариев

Рис 5.1. Вызов редактора сценариев

Рис. 5.2. Для доступа к командной строке установите флажок рядом


с командой Command Line

Командная строка, показанная на рис. 5.3, полезна при написании сценариев,


так как позволяет непосредственно вводить MEL-команды (в левом поле) и сразу
видеть результаты их выполнения (в правом поле).
98 Глава 5 • Язык MEL

Рис. 5.3. Доступ к редактору сценариев можно получить, щелкнув на кнопке Script Editor,
расположенной справа от командной строки

При выведенной на экран командной строке вызов диалогового окна Script Editor
(Редактор сценариев) многократно упрощается — для этого достаточно щелкнуть
на находящейся справа от нее кнопке Script Editor (Редактор сценариев).
Существует еще один способ открытия диалогового окна Script Editor (Редактор
сценариев), который мы рассмотрим в следующем упражнении.
Упражнение 5.1. Ввод MEL-конанд и запуск редактора сценариев
1. Убедитесь, что командная строка выведена на экран, как было описано выше.
2. Если у вас уже открыто диалоговое окно Script Editor (Редактор сценариев), за-
кройте его,
3. Введите в левое поле командной строки команду ScriptEditor. Помните, что MEL,
как и любой язык сценариев, чувствителен к регистру букв.
Что же происходит с Maya, когда вы вводите команду вызова диалогового окна
Script Editor (Редактор сценариев)?
После первой загрузки Maya в память в результате запуска файла maya.exe на-
чинает работать сценарий, который интерпретирует команду ScriptEditor как задан-
ную по умолчанию команду runTimeCommand. Эта команда служит всего лишь для
вызова процедуры showWindow и передачи ей в качестве аргумента глобальной пе-
ременной $gCom ma ndWindow, которая содержит указание на место хранения в па-
мяти диалогового окна Script Editor (Редактор сценариев). Значение этой перемен-
ной присваивается во время создания указанного элемента интерфейса, когда при-
ложение Maya инициализируется и загружается в память компьютера. Имя диа-
логового окна хранится в глобальной переменной, которая является полностью
доступной для других сценариев. Такой подход позволяет избежать конфликта
имен. Если другому элементу интерфейса будет назначено имя, которое уже при-
своено диалоговому окну Script Editor (Редактор сценариев), в Maya все равно будет
использоваться корректное имя, так как оно при загрузке возвращается в исход-
ную глобальную переменную. А если бы для задания имени в сценарии использо-
валась фиксированная строка, диалоговое окно Script Editor (Редактор сценариев),
а вероятно и все приложение перестали бы работать. Это хороший пример, иллю-
стрирующий концепцию глобальных и локальных переменных (а также понятие
области видимости переменных, о котором мы поговорим немного позже). Для
начала давайте зададим значение глобальной переменной $gCommandWindow, вве-
дя в командную строку следующую команду:
print SgCommandWindow;

Вы увидите, как в правой части командной строки и в верхней части диалого-


вого окна Script Editor (Редактор сценариев) появится такая строка:
CommandWi ndow
Командная строка и редактор сценариев 99

Именно на эту строку ссылается переменная $gComm and Window, поскольку


в файле initial Layout, mel, который одним из первых загружается при старте Maya,
имеется описание переменной и следующее присваивание:
global string SgComiandWindow - "ComnandWIndow";
Имейте в виду, что глобальные переменные допускают редактирование в про-
цессе работы. Но если назначить рассматриваемой переменной новое значение,
например, выполнив показанную ниже команду, вы прервете текущий сеанс Maya,
в результате у вас возникнут проблемы с открытием диалогового окна Script Editor
(Редактор сценариев);
JgCommandWindow - "foobar";
Это наиболее важная причина, по которой не стоит использовать глобальные
переменные. Исключением являются случаи, подобные упомянутому выше.
ПРИМЕЧАНИЕ
Часто для написания MEL-сценариев применяется внешний редактор. Многие пользователи приме-
няют такие редакторы, как Emacs, VIM или Nedit. Вы тоже можете выбрать редактор по своему
вкусу. Довольно часто можно встретить программистов, пишущих MEL-сценарии в приложении Visual
Studio, или художников, творящих в программе Notepad. Авторы предпочитают редактор UltraEdit
благодаря наличию в нем удобных функций автоэавершения (для этого достаточно нажать комби-
нацию клавиш Ctrl-f Пробел), выделения элементов синтаксиса, замечательных макросов, возмож-
ности поиска и замены и многого другого. Если вы пока еще не определились с выбором текстового
редактора, рекомендуем попробовать именно UltraEdit. На прилагаемом к книге компакт-диске име-
ется файл Wordfile.txt, используемый для синтаксического выделения в этом редакторе.

СОВЕТ
Использование внешнего редактора обычно приводит к созданию более понятного кода с меньшим
количеством ошибок, кроме того, этот процесс занимает меньше времени. Почему? Дело в том, что
при написании кода в редакторе сценариев элементы синтаксиса не выделяются, к тому же возмож-
на отмена только одной (последней) операции. Впрочем, этот редактор замечательно подходит дли
тестирования и отладки уже готового сценария. То есть наиболее рационально — написать сцена-
рий в вашем любимом редакторе, а затем для тестирования и отладки перенести его в диалоговое
окно Script Editor (Редактор сценариев) с помощью команды Source Script (Источник сценария).

Использование редактора сценариев


После написания MEL-сценария и сохранения его на диске нужно указать про
грамме, где он находится. Это делается по двум причинам:
О при этом происходит проверка кода на наличие синтаксических и логических
ошибок;
О процедуру с вашим сценарием нужно загрузить в память, только после этого
сценарий можно будет вызвать из Maya по его имени.
Указывая на источник сценария в диалоговом окне Script Editor (Редактор сцена-
риев), вы на самом деле выполняете содержащийся в нем код. Открыв же сцена-
рий в этом диалоговом окне, вы просто увидите текстовый файл. Но имейте в ви-
ду, что если за описанием переменных в файле сценария, адрес которого вы указа-
ли, содержится некий код, он тут же будет выполнен. Поэтому желательно точнс
100 Глава 5 - Язык MEL

знать, какие действия осуществляет сценарий (особенно это касается сценариев,


загруженных из Интернета), Стоит приобрести привычку открывать эти файлы
в текстовом редакторе и смотреть комментарии в заголовке. Только так можно га-
рантировать, что это именно тот код, который вы хотели бы выполнить на своем
компьютере.
Как указать источник сценария? Для этого существует несколько способов.
Первый путь является самым очевидным. В меню File (Файл) диалогового окна
Script Editor (Редактор сценариев) нужно выбрать команду Source Script (Источник сце-
нария), как показано на рис. 5.4, и указать маршрут доступа к файлу со сценарием,
В нижней части диалогового окна Script Editor (Редактор сценариев) появится опи-
сание сценария.

Рис. 5.4. Команда Source Script позволяет указать источник сценария

Имейте в виду, что при указании источника сценария оптимальным является


отсутствие реакции со стороны приложения. Это означает, что программа отладки
не обнаружила ни синтаксических, ни логических ошибок.
Вторым способом указания источника сценария является ввод функции source
с полным маршрутом доступа к файлу с нужным сценарием.
Например» для указания на источник сценария copyArray.mel (в данном случае
используется маршрут доступа в операционной системе Windows) нужно ввести:
source "С:/Program F11es/AliasWavefront/Maya4.5/scnpts/unsupported
/copyArray.mel":

ПРИМЕЧАНИЕ
MEL-комамды для Maya в операционных системах Mac, Windows, Linux и IRIX практически идентич-
ны. Слегка могут отличаться маршруты доступа к файлам и системные команды. Большинство при-
меров из этой книги, как и используемые в них MEL-команды, не зависят от платформы.

В процессе тестирования и отладки очень удобно превратить команду, указы-


вающую на источник сценария, в кнопку на одной из полок. В результате после
сохранения файла со сценарием можно перейти в Maya и, щелкнув на кнопке, не-
медленно увидеть сообщение об ошибках, которые Maya обнаружит в коде сцена-
рия. Такой способ позволяет интерактивно отлаживать сценарий во внешнем ре-
дакторе.
Третий способ быстро указать на источник сценария во время работы програм-
мы является самым простым и быстрым. Он позволяет тестировать и отлаживать
небольшие процедуры по мере их написания. Просто скопируйте строки кода из
текстового редактора и вставьте их в нижнюю часть диалогового окна Script Editor
(Редактор сценариев); для этого можно также использовать команду Open Script (От-
Командная строка и редактор сценариев 101

крыть сценарий). Затем нужно выделить текст и нажать клавишу Enter на цифро-
вой клавиатуре. Убедитесь, что вы нажимаете именно клавишу на цифровой кла-
виатуре, потому что в противном случае текст будет просто стерт. Если вы работа-
ете на портативном компьютере, у которого отсутствует цифровая клавиатура, ис-
пользуйте комбинацию клавиш Ctrl+Enter. После нажатия клавиши Enter вы уви-
дите, что выделенный код появится в верхней части диалогового окна Script Editor
(Редактор сценариев). Именно там вы увидите названия всех процедур и команд
после их выполнения. Помимо всего прочего — это замечательный способ опреде-
лить, что происходит при выполнении конкретных команд.
Последним способом указать на источник сценария является установка гло-
бального маршрута доступа на жестком диске в момент запуска Maya. Глобаль-
ный маршрут доступа ведет в папку со сценариями ../currentUser/maya/scripts/, а так-
же в любую папку в цапке ../AliasWavefront/MayaS.O/scripts/. Поместив MEL-сцена-
рий по любому из этих маршрутов, вы гарантируете указание на него при любом
запуске Maya. Маршрут доступа к Maya хранится в глобальной переменной окру-
жения, которая может быть запрошена или изменена с помощью команд geterw
и setenv. Вот пример запроса значения глобальной переменной окружения:
getenv MAYA_SCRIPT_PATH;

Очень полезные команды находятся в меню Script (Сценарий) диалогового


окна Script Editor (Редактор сценариев), а именно — команды Echo All Commands
(Отображать все команды), Show Line Numbers (Показать номера строк) и Show Stack
Trace (Показать стек вызова). Все эти команды поистине бесценны при отладке
сценариев.

Основы программирования на языке MEL


Надеемся, вы уже понимаете, что представляет собой язык MEL, и прекрасно ос-
воились со средой для написания сценариев, встроенной в Maya. Пришло время
приступить к активным действиям. Мы начнем с определения процедур, с инст-
рукций возврата значений, с типов данных, с определения и присваивания пере-
менных, с управляющих структур и прочих несложных вещей!
Для начала объявим глобальную процедуру, которая выводит слова Hello World
и возвращает строку goodbye. Введите следующий код в нижнюю часть диалогово-
го окна Script Editor (Редактор сценариев), выделите текст и нажмите клавишу Enter
на цифровой клавиатуре:
global proc string helloWorld ()
(
print "Hello World!!!\n";
string $bye - "Goodbye";
return $bye:
I
Поздравляем, вы только что написали свою первую процедуру на языке MEL,
которая называется helloWorldQ.
Теперь пришло время выполнить ее. В командную строку или в нижнюю часть
редактора сценариев введите строку hello World{), выделите ее и нажмите клавл-
102 Глава 5 - Язык MEL

шу Enter на цифровой клавиатуре. В верхней части диалогового окна Script Editor


(Редактор сценариев) должны появиться строчки:
helloWorldO:
Hello torld!!!
// Result: Goodbye //
Посмотрим более подробно, что произошло. Функция helloWorld была описана,
как глобальная процедура. Это значит, что для ее выполнения достаточно ввести
ее название в командной строке. Ключевое слово string в первой строке задает тип
возвращаемого значения. Скобки после названия процедуры helloWorld пусты. Это
значит, что процедура не имеет аргументов. Фигурные скобки, в которые заклю-
чена остальная часть процедуры, определяют область видимости единственной ло-
кальной переменной этой процедуры. Команда print выполняет стандартный вы-
вод, то есть выводит текст на экран.
Символы \п представляют собой управляющую последовательность и воспри-
нимаются командой print как возврат каретки или переход на новую строку. Пере-
менная $Ьуе согласно описанию принадлежит к типу string и имеет значение goodbye.
В конце функция возвращает значение переменной $Ьуе, то есть слово Goodbye.
Возвращение значения в конце процедуры можно интерпретировать как полу-
чение от нее ответа. Если ответ имеется, его требуется зафиксировать или он будет
потерян навсегда.

Присваивание переменным
возвращаемых значений
После написания процедуры helloWorld, указания ее источника и ее выполнения
попытаемся присвоить возвращаемое ею значение какой-нибудь переменной. За-
тем это значение нужно вывести, чтобы удостовериться, что это действительно
результат выполнения процедуры:
string Scatchlt - 'helloWorld':
print ("\n The result Is: " + Scatchlt + "Лп");
В результате выполнения этого кода должно получиться следующее:
Hello World!!!
The result Is: Goodbye.
После вызова функции helloWorld строка goodbye была присвоена переменной
$catchlt В большинстве языков программирования, в том числе и в MEL, сначала
вызывается функция, а потом выполняются все остальные операции (в нашем слу-
чае — это операция присваивания). В противном случае просто не будет данных
для дальнейшей обработки. Функция helloWorld находится! внутри апострофов, что
является короткой формой записи команды eval:
eval С "nelloWorld" };
Эта команда позволяет вычислить и зафиксировать результат, возвращаемый
любой командой или процедурой языка MEL.
Командная строка и редактор сценариев 103

Затем следует вызов команды print, но на этот раз используется оператор объ-
единения строк (+), чтобы выполнить объединение значения переменной $catchlt
и строки \n The result is. Это выражение находится в скобках, поэтому оно сначала
вычисляется, потом объединяется в одну строку, а только после этого вызывается
команда print, в качестве аргумента которой фигурирует полученная строка.
В процессе написания сценариев особое внимание нужно обращать на синтак-
сис, регистр букв и опечатки. Пожалуй, это самая сложная часть работы над сцена-
риями. (Достаточно непросто привыкнуть к разборчивости компилятора и к тому,
как легко он пропускает глупейшие опечатки, немедленно предполагая наличие
логической ошибки, вместо того чтобы искать ошибку синтаксическую.) Одной
из самых распространенных ошибок у начинающих является использование оди-
нарной кавычки (') вместо апострофа ('), клавиша для ввода которого находится
в верхнем левом углу клавиатуры. Эта же клавиша печатает знак тильды (~). В ка-
честве другой распространенной ошибки можно упомянуть использование опера-
тора присваивания (=) для сравнения выражений, когда на самом деле нужен опе-
ратор проверки на равенство (==). Этот случай упоминается в документации, но
тем не менее пользователи все равно часто допускают эту логическую ошибку, ко-
торую достаточно сложно обнаружить. Поэтому всегда внимательно следите за тем,
что вы вводите!
СОВЕТ
Имейте е виду, что процесс отладки сценариев сопровождается сообщениями об ошибках. Устано-
вите флажки рядом с командами Echo All Commands (Отображать все команды), Show Line Numbers
(Показать номера строк) и Show Stack Trace (Показать стек вызова) в меню Script (Сценарий) диало-
гового окна Script Editor (Редактор сценариев). Тогда приложение всегда даст вам исчерпывающую
информацию об ошибках, которые оно сможет обнаружить в процессе интерпретации вашего кода,
втом числе и о том, в каких строках они находятся. Это позволит быстро перейти к нужному месту
кода в текстовом редакторе и внести необходимые изменения. Впрочем, иногда приходится поло-
мать голову над тем, что же написано неправильно, но это не повод отчаиваться и прекращать
работу! Ошибки являются неотъемлемой частью процесса написания и отладки сценария. И всегда
есть вероятность, что вы всего лишь сделали опечатку, а с логической структурой все в порядке.

Аргументы, массивы и управляющие структуры


Теперь, когда вы в состоянии объявить функцию и сохранить возвращаемое ею
значение, пришло время познакомиться с логическими конструкциями. Вам пред-
стоит написать функцию, напоминающую функцию helloWorldQ, но на этот раз но-
вая функция будет использовать в качестве аргумента массив строк. Что такое
массив? Это все равно, что список строк, причем каждый пункт этого списка со-
храняется в виде отдельного элемента заранее указанного типа. Новая функция
включает в себя условную инструкцию if/else, которая вычисляет выражение, при-
сваивая ему значение true (истина) или false (ложь), и предпринимает действия
в зависимости от полученного результата. Наконец, вы познакомитесь с циклом,
то есть возможностью многократного выполнения набора команд. Циклы часто
используются, например, при сортировке списков.
Также вы познакомитесь с типом данных Integer (целые). С помощью цикла вам
предстоит просмотреть, отформатировать и вывести на экран элементы массива
104 Глава 5 • Язык MEL

после применения к ним функции helloWorld. Затем отформатированные строки


будут переданы в исходную процедуру, которая выведет на экран полученный ре-
зультат. Этот пример во многом аналогичен предыдущему, но при этом он знако-
мит вас с дополнительными управляющими структурами языка MEL.
Вы, вероятно, уже поняли, что любые строки, слева от которых находятся две
косых черты (//), являются комментариями и полностью игнорируются при ин-
терпретации сценария. Комментарии позволяют объяснить смысл вашего кода
другим пользователям. Сразу заметим, что количество комментариев в примерах
кода, которые вы найдете в данной книге, откровенно чрезмерно, так как мы пыта-
лись подробно объяснить вам суть происходящего, Ваш собственный код не обя-
зательно комментировать настолько детально. В общем случае человек, знакомый
с языком программирования, сможет понять смысл кода по его содержанию. Ком-
ментарии внутри рабочего кода не предназначены для обучения других пользова-
телей основам программирования. Обычно лучше всего помещать их вне гела функ-
ции и делать как можно более обобщенными. В этом случае при изменении или
обновлении кода комментарии не устареют.
Представленный ниже сценарий предназначен для пояснения основных кон-
цепций языка MEL, о которых мы говорили выше. В нем использованы фундамен-
тальные методы обработки данных, которые часто встречаются в реальных MEL-
сценариях. Его текст находится на прилагаемом к книге компакт-диске в файле
firstFullExampleScriptmel, расположенном в папке ChapterQS, Рекомендуем вам вос-
пользоваться этой версией, а не перепечатывать текст из книги.
Сценарий перебирает массив заранее объявленных имен, пока не натыкается
на имя Stinky Pete (Вонючий Пит). Никто не хочет находиться рядом с вонючим
Питом, поэтому после обнаружения этого имени процесс поиска завершается. Хотя
поиск происходит в списке имен, результат объединяется со строкой goodbye, ко-
торая выводится на экран первой функцией.
Внутри сценария вы найдете комментарии к каждому шагу и к каждой проце-
дуре. Чтобы запустить его, достаточно ввести в командную строку команду firstFull-
ExampleScriptQ и нажать клавишу Enter.
//f i rstFul 1 Exarnpl eScri pt .mel
// автор: Эрик Миллер
// Объявление глобапьной процедуры firstFullExampleScript "главной",
// го есть процедурой, вызов которой необходим для выполнения
// остальной части сценария. В данном случае необходимости присваивать ей
// название malnO нет. В языке MEL (в отличие от С) первой функции можно
// присваивать любое иия, потому что для запуска все
// равно потребуется вызов процедуры по имени.
// 6 объявлении этой функции неуказан тип возвращаемого значения;
// следовательно, инструкция возврата значения в конце не требуется
//
// Главная процедура:
//
// flrstFullExampleScriptO;
Командная строка и редактор сценариев 105

global proc flrstFullExampleScriptO

•'.'
// Объявление строкового массива из восьми элементов и присваивание
// им значений. Доступ к этим элементам может быть осуществлен
// индивидуально по их индексу. Индексация всегда начинается с О .
// Например, значение "МоШса" присвоено переменной $myArrayQfName$[3]
// массива, состоящего из восьми элементов. Хотя этот элемент является
// четвертым по счету, он имеет индекс 3

string $myArrayQfNames[8] - {
"emptyEletnent" . // элемент массива 5myArrayOfNames[0]
"Max". // элемент массива $myArrayGfNames[l]
"Mark". // элемент массива $myArrayOfNames[2]
"Monica". // элемент массива 3myArrayQfNames[3]
"Matt", // элемент массива $myArrayQfNames[4]
"Stinky Pete". // элемент массива $myArrayOfNames[5]
"Bill". // элемент массива $myArrayOfNames[6]
"Bob" // элемент массива SmyArrayOfNames[7]

I,
/l Объявление строки $getlt и передача управления глобальной процедуре
// flrstFullExampleProcedure. Вкачестве ее аргумента испоольэуется
// только что объявленный массив. Любые данные, возвращенные процедурой
// flrstFullExampleProcedure. будут присваиваться строке Sgetlt

string Sgetlt = firstFullExampleProcedureC SmyArrayQfNames );

// Управление передано обратно процедуре firstFullExampleScriptO:


// Выведем на экран значения, возвращенные процедурой
// firstFullExampleProcedure

print Sgetlt;

// Знакомство с массивами, аргументами, циклами, условиями.


// комментариями и многим другим!!!
//
II Объявление глобальной процедуры, в качестве аргумента которой
// используется строковой массив. Возвращаемое значение представляет собой
// одну строку
106 Глава 5 • Язык MEL

global ргос string firstFullExampleProceduret string $arrayArg[]


I

// Присваивание строке SgoodbyeString


// возвращаемого значения функции helloWorldC)

String SgoodbyeString = 'helloWorld' ;

// Возвращаемая строка объявляется таким образом,


// чтобы ее областью видимости стала вся функция

string SlongReturnString;

II
!/ Объявление целого числа для цикла,-.

int $i ;

// Инструкцию объявления цикла можно понять следующим образом:


// Изначально переменная $i равна нулю. После каждой итерации
// выполняется операция $i++. то есть величина переменной $i увеличивается
// на единицу. Пока значение этой переменной меньше общего числа элементов
// массива, цикл продолжает выполняться.
II Этот цикл называется циклом 'for':

fort $1=0; Ji < size($arrayArg); $1++ }

II
II Проверка условия, что переменная Si имеет значение 1 и (&&) текущий
// элемент массива не равен значению "Stinky Pete" (этот особый
П случай будет рассматриваться позже, пока же поверьте на слово,
// что отсутствие сравнения со значением "Stinky Pete" в данном
// месте привело бы к логической ошибке),
// Если оба утверждения истинны, произойдет выполнение
// команд, заключенных в фигурные скобки- В противном случае эти команды
// будут просто пропущены и произойдет переход к следующему блоку кода.
// расположенному после инструкции else:

if С ($1 — 0) && ($arrayArg[$i] !- "Stinky Pete") )

// Инструкция 'continue' приводит к прерыванию цикла. В нашей случае


// если первый элемент имеет значение, отличное от "Stinky Pete",
// этот элемент пропускается.
Командная строка и редактор сценариев 107

continue;
I
else

// Вывод на экран слова hello для каждого элемента пассива

print С "Hello, array element #" + $1 + " . " + $arrayArg[$i]


+ "..An' ):

// Сравним все элементы массива со значением "Stinky Pete". Если


// результат сравнения истинный, будет
// выполнен набор команд, расположенный в фигурных скобках.
// Если we результат сравнения ложный,
// выполнение передается блоку команд, расположенному после
// инструкции else.

if ( $arrayArg[$i] = "Stinky Pete" )


{
print ("\n...OH NO!. ITS STINKY PETE! FOUND AT ARRAY ELEMENT #"
+ $1 + ". RUN AWAY!!!\n"};
SlongReturnString - IlongReturnString + SgoodbyeString
+ "Stinky Pete!!!\n";

// Инструкция break используется для немедленного выхода из цикла.

break ;
)
else
I

// Возвращаемая строка является объединением полученного значения.


// слова goodbye (которое возвращает исходная процедура hello
// world), пробела, номера текущего элемента массива $i и
// символов перехода на новую строку. (Все это нужно для
// форматирования заключительного сообщения процедуры.)

SlongReturnString - SlongReturnString + $goodbyeString + " "


+ $аггауАгд[$1] +" An";
!
108 Глава 5 * Язык MEL

// Это сообщение информирует вас о времени выхода из цикла


// и передаче управления исходной функции firstFullExampleScriptO;
It

print "\nTime to exit example procedure.\n\n";

/ / Возвращение отформатированного сообщения

return ( SlongReturnString );

// Наша самая первая процедура Hello World

global proc string helloWorld О


I
print "\nHello W o r l d ! ! ! \ n " :
string $bye - "Goodbye";
return Sdye;
}
Теперь вы убедились, что язык MEL прост и занятен? Подождите, скоро вы с его
помощью начнете создавать значки и кнопки для полок!
Приготовьтесь, сейчас мы перейдем к примерам управления интерфейсом Maya.

Пример управления интерфейсом Maya


Сценарий для этого раздела был написан, чтобы продемонстрировать, как с помо-
щью MEL-команд можно управлять интерфейсом Maya и даже выполнять дей-
ствия, которые вряд ли имеют смысл, например, делать невидимым главное окно
программы. В этом случае окно Maya просто исчезнет, оставив после себя несо-
храненную сцену. Сообщения об ошибке не поступит, хотя вы гарантированно по-
теряете результаты своего труда. В этом отношении язык MEL представляет со-
бой потенциально опасный инструмент. Приведенный ниже сценарий был напи-
сан специально для этой книги. Смысл отдельных операций объясняется в ком-
ментариях. Файл closeAIIOfMayaExceptMaya.mel находится в папке ChapterOS прила-
гаемого к книге компакт-диска.
II CloseAIIOfMayaExceptMaya.mel
// автор: Эрик Миллер
// Этот небольшой сценарий закрывает асе открытые диалоговые онна. оставляя
// только основное окно Maya.
//
// главная процедура: closeAllOfMayaExceptMayaO:
Командная строка и редактор сценариев 109

п
global proc closeAllQfMayaExceptMayaO
{

// Глобальная переменная, значением которой является основное окно Maya:

global string SgMainWindow;

// Массив всех открытых окон: string $a!10penWindows[] =-'lsUI -Mid';


// просмотр этого массиза осуществляется с помощью цикла for:
//

for С $eachVJindow in SallOpenWIndows )


{
if($eachWindow ™ SgMainWindow)
{

// Если рассматриваемое окно является основным окном Maya,


// оно становится невидимым

window -e -vis 0 JeachWindow;

// Основное окно программы снова становится видимым

window -e -vis I $eachWindow;


!
else

/ / Рассматриваемое окно не является основным окном программы


// Оно становится невидимым

window -e -vis 0 SeachWindow;

// Если вы избавились от окна каналов или редактора атрибутов,


// которые также относятся к основному интерфейсу Maya,
// восстановите их и убедитесь, что они видимы:

ToggleChannelBox;
if crisChannelBoxVisible')
(
setChannel Boxtfi s i bl e ( ! ' i sChannel BoxVi si bl e " ) ;
110 Глава 5 * Язык MEL

Добавление нового пункта в меню


Случалось ли вам задавать себе вопрос вида: «А почему в меню Create (Создать)
отсутствует команда Create Render Node (Создать узел визуализации)?* Авторы не-
однократно спрашивали себя об этом, запуская каждую из трех предыдущих вер-
сий Maya. Что ж, интерфейс Maya открыт для редактирования. Если вам не нра-
вятся заданные по умолчанию меню, вы считаете, что в них должны присутство-
вать дополнительные пункты или нужно поменять порядок их следования, это все-
гда можно сделать с помощью MEL-сценария.
Следующий сценарий иллюстрирует процесс создания команды Create Render
Node (Создать узел визуализации), которая затем добавляется в меню Create (Создать).
Файл addCreateRenderNodeToMenu.mel находится в папке ClnapterOS прилагаемого
к книге компакт-диска:
// addCreateRenderNodeToMenu.mel :
п
- // Этот сценарий показывает, как можно добавить новый пункт
// в существующее меню,
//
// Главная процедура;
//
// addCreateRenderNodeToMenuO;
//
/*
Следующие переменные можно найти е файле 'initMainMenuBar.mel ':
Они являются глобальными и используются для именования главных кеню.
Благодаря их наличию пользователь может добавить новый пункт в конец
любого меню, не прибегая к написанию сложного кода
global string SgMainFileMenu:
global string $gMainEditMenu:
global string $gMainModifyMenu;
global string SgMainDisplayMenu;
global string SgMainWindowMenu:
global string SgMainOptlonsMenu:
global string SgMainOeateMenu:
*/
//
// Это объявление процедуры, которая используется для активизации
// окна Create Render Node с заданными по умолчанию аргументами
// Эта процедура используется как команда для дополнительного
// пункта меню "Create Render Node", находящегося в следующей
// процедуре addCreateRenderNodeToMenu{ ) :

global proc InsideMaya CreateRenderNodeWinO


Командная строка и редактор сценариев 111

// Активизация диалогового окна Create Render Node

createRenderNodeC'-alT. "". "");


)

//
// Эта функция добавит новую команду вконец меню Create:
//

global proc addCreateRenderNodeToMenuO


{

// Глобальная переменная, содержащая меня Create

global string SgMainCreateMenu;

// Эта команда создаст меню, если на данный момент оно отсутствует:

evalC'ModCreateMenu " •*• JgMainCreateMenu):

// Эта команда сделает меню "Create" родительским


// по отношению к новому пункту

setParent -menu SgMainCreateMenu;

// Эта команда добавит разделитель для новой секции

irenultetn -divider true;

//
// Добавление нового пункта меню с помощью ранее объявленной процедуры
//

menultem -label "Create Render Node"


-command "InsideMaya_CreateRenderNodeWin"
-annotation "Create Render Node: Opens the Create New Render Node window.
Easy, huh?";

// Сделаем меню родителем по отношению к созданному пункту

setParent -menu ..:

// Эту коианду можно вызвать из любого сценария, расположенного


// в папке Startup, кроме того, она всегда будет в главном меню,

I
112 Глава 5 • Язык MEL

Добавление нового меню в интерфейс Maya


Вы хотите иметь дополнительное меню, содержащее команды запуска созданных
вами сценариев и инструментов? Нет проблем! Сейчас вы: увидите, как получить
меню, дочернее по отношению к основному окну программы. Файл createCustom-
MenuItemlnMaya.mel находится в папке ChapterOS прилагаемого к книге компакт-
диска;
// createCustomMenuItemlnMaya.mel
//
// Этот сценарий покажет вам. как просто добавить новое меню к основному
// интерфейсу Maya. Мы создадим меню с названием "Custom Menu", дочернее
// по отношению к окну программы. Первый пункт этого меню содержит команду
II 'sphere', в процессе создания которой будет продемонстрировано действие
// флага -с. Остальные пункты меню пустые, для них флаг -с пустой,
// Помните: ео флаг -с может быть помещена любая команда: созданная
// пользователем процедура или встроенная команда MEL.
//
// Главная процедура:
//
// createCustomMenuItemlnMayaO;

global proc createCustomHenuItemlnMayaO


(

// Глобальная переменная, содержащая основной интерфейс Maya.

global string SgMainWindow;

// Глобальное объявление пользовательского меню

global string SgMyCustomMenu - "myCustomMenuItem";

// Эта команда сделает основной интерфейс Maya родительским элементом

setParent $gMainWindow:
if ("isTrue "BaseMayaExists"')
{

// Создание нового меню и присваивание ему имени:

menu -I "Custom Menu" -aob


true -to true // Делаем это меню отсоединяемым
-postMenuCommandOnce true SgMyCiastomMenu:

// Делаем его родительским по отношению к окну программы Мауа.


Заключение 113

setParent -m ..:

It Делаем пользовательское пеню текущий родителем

setParent -m SgMyCustomMenu;
menultem -divider true;

// Создание пунктов пользовательского иеню и присваивание ии названий:


//
// Первый пункт меню создает сферу
//

menultem -label "Super Custom Sphere Command!" -c "sphere"


-annotation "Proprietary Workflow Interface module containing a
top secret Sphere command!":

II Эта команда добавит разделитель для новой секции,

menultem -divider true:

' Остальные пункты меню оставляем пустыми, отделив их друг от друга


//

menultem -label "Custom Command 1 Goes Here!" -c "'


menultem -label "Custom Command 2 Goes Here!" -c ""
menultem -label "Custom Command 3 Goes Here!" -c ""
menultem -label "Custom Command 4 Goes Here!" -c ""
menultem -label "Custom Command 5 Goes Here!" -c ""
menultem -divider true;
menultem -label "Custom Command 5 Goes Here!" -c ""
menultem -label "Custom Command 7 Goes Here!" -c ""

// Делаем меню родителей по отношению к его пунктам,

setParent -rn . . ;
;
1

Заключение
Завершая эту главу, хотелось бы заметить, что вы увидели только верхушку айс-
берга. Существует множество других вариантов применения языка MEL. Рассмот-
ренные темы должны были дать общее представление об основах синтаксиса MEL.
Дополнительные сведения можно найти в справочной документации по Maya.
114 Глава 5 • Язык MEL

Хорошим примером является сценарий, добавляющий в меню новый пункт. Цик-


лы применяются для решения многих проблем, поэтому мы постарались создать
пример, который был бы легок для понимания и в то же время достаточно интере-
сен. Впрочем, все приведенные в данной главе примеры жизненно важны для по-
нимания основ языка MEL. Обязательно прочитайте приложение А, содержащее
дополнительные советы и описания приемов программирования.
Напоследок хотелось бы дать несколько советов, а также представить ссылки
на дополнительные ресурсы. Используйте команды help и showHelp. Для этого дос-
таточно ввести следом за каждой из них имя команды, по которой требуется полу-
чить справку. Кроме того, если вы не уверены, является ли тот или иной иденти-
фикатор командой или процедурой языка MEL, либо хотите узнать, где находится
тот или иной сценарий, используйте команду whatls, чтобы определить полный
маршрут доступа к файлу или получить сообщение, что указанный вами иденти-
фикатор является именем команды.
В качестве источника дополнительных сведений по языку MEL можем пореко-
мендовать вам документацию, вызываемую командой Help > Contents and Search
(Помощь > Содержание и поиск). Воспользуйтесь разделами MEL Command Reference,
MEL, Instant Maya справочной системы, а также сайтом www.highend3d.com/maya/mel.
Ч А С Т Ь II

Моделирование

Глава 6. Форматы
Глава 7. Методы
Глава 8. Наборы объектов
Глава 9. Реквизит
Глава 10. Персонажи
6 Форматы

В окружающем нас мире существует великое множество объектов, от неправдопо-


добно мелких частиц тумана до безбрежных галактик в межзвездном простран-
стве. Некоторые из этих объектов бесформенны, другие симметричны, третьи чрез-
вычайно сложны, четвертые предельно просты. Творения рук человеческих отли-
чаются от природных объектов. Однако все это многообразие может быть воспро-
изведено на экране компьютера при помощи всего нескольких математических
форматов.
В Maya в основном используются три формата моделирования: сетки полиго-
нов, NURBS-поверхности и иерархические поверхности. Старейшим является
формат сеток полигонов. NURBS-поверхности стали применяться для моделиро-
вания в 80-х годах прошлого века, а иерархические поверхности — только в 90-х.
Необходимость в эффективных, точных и в то же время гибких подходах к моде-
лированию привела к появлению инструментов и приемов, позволяющих создать
практически любой объект.
В этой главе мы сравним особенности каждого из форматов и рассмотрим при-
меры их применения. В частности, будут подняты следующие темы:
О поддерживаемые (и неподдерживаемые) в Maya форматы моделирования;
О особенности форматов моделирования, применяемых в Maya;
О достижение поверхностной непрерывности средствами Maya;
о неоднородные рациональные В-сплайны;
О моделирование объектов для проекта «Место для парковки».

Неподдерживаемые форматы
Несмотря на многочисленность доступных в Maya форматов моделирования,
нельзя сказать, что это приложение поддерживает все существующие форматы.
Для полноты картины в этом разделе мы опишем некоторые форматы моделиро-
рапия, которые в Maya недоступны. Каждый из них имеет свои достоинства и об-
гш применения, но к Maya они отношения не имеют,
Выбор формата 117

Неявные поверхности
Неявные поверхности, или блобы, хорошо подходят для моделирования органи-
ческих форм, так как специально разрабатывались для плавного сопряжения од-
них фигур с другими. Основные правила работы с ними подразумевают размеще-
ние сглаженных примитивов (обычно в их роли выступают сферы) на близком
расстоянии друг от друга и выбор параметров сопряжения. Частицы в Maya до-
пускают визуализацию в виде блобов, но средства моделирования объектов на их
основе не поддерживаются.
Для работы с блобами в Maya применяются специальные подключаемые мо-
дули (такие как MetaShapes и Flow Tracer), предоставляющие нужные инструмен-
ты. Однако из-за отсутствия в Maya встроенной поддержки блобов лучше исполь-
зовать другие форматы моделирования.

Октадеревья
Вообразите процесс аккуратного заполнения пустого сосуда кирпичами (они в дан-
ном случае называются векселями), и вы получите приближенное представление
об октадеревьях. Если вы к тому же представите, что воксели могут быть разного
размера, тогда вы точно поймете, что именно представляет собой этот формат мо-
делирования. Название свое октадеревья получили благодаря восьми областям,
на которые делят пространство три оси координат. Октадеревья требуют интен-
сивных вычислений и не позволяют получать гладкие поверхности. Областью при-
менения этого формата обычно является моделирование топографических особен-
ностей местности, поэтому вряд ли вы пострадаете от того, что в Maya он не под-
держивается.

Облака точек
Облака точек являют собой еще один подход к моделированию, требующий обра-
ботки больших объемов данных, обычно получаемых трехмерным сканированием.
Трудности возникают при преобразовании облака точек в более удобный для ра-
боты объект, например в NURBS-поверхность. Облака точек чаще всего применя-
ются в таких областях, как инженерный анализ. Хотя некоторые системы на осно-
ве облаков точек (обычно треугольных) позволяют создавать сетки полигонов,
сокращение объемов данных и алгоритм подгонки требуют специальных инстру-
ментов.
Для пользователей, вынужденных работать с облаками точек, фирма Alias Wa-
vefront (наряду с другими производителями) создала линейку продуктов Studio
Tools. Разумеется, они не решают проблему полного соответствия поверхностей
и данных, зато получаемые в результате объекты можно легко импортиронать
в Maya.

Выбор формата
Бывают случаи, когда выбор оптимального формата моделирования объекта со-
вершенно очевиден, но обычно рассматриваются разные возможности. Иногда
118 Глава 6 * Форматы

в итоге приходится комбинировать форматы или использовать один из них, как


основу для применения другого.
Решая, какой формат выбрать для моделирования объекта, примите во внима-
ние перечисленные ниже факторы. Более подробно мы поговорим о них при об-
суждении каждого из форматов.

Точность воспроизведения
Одним из самых важных факторов при выборе формата моделирования является
точность воспроизведения желаемой формы. Хотя иногда бывает интересно изме-
нить пропорции объекта или убрать лишние детали, инструменты должны обеспе-
чивать принципиальную возможность точного воспроизведения формы объекта
вне зависимости от ее сложности. Впрочем, так как некоторые детали можно ими-
тировать путем назначения материала, нет необходимости воспроизводить абсо-
лютно все тонкости геометрии объекта. Кроме того, вряд ли имеет смысл прора-
ботка деталей, которые не являются важными или «не бросаются в глаза». Однако
если решение об уровне детализации принято, формат моделирования должен до-
пускать точное воспроизведение любой намеченной формы.
Все три основных формата моделирования Maya предоставляют такую возмож-
ность. Различия между ними проявляются в другом.

Эффективность
Формат моделирования должен быть компактным и умеренно сложным. В наши
дни возможности компьютеров возросли до фантастических высот, но пропорцио-
нально возросли и требования. Разработчик должен эффективно взаимодейство-
вать с моделью в процессе ее создания и редактирования. Важным фактором яв-
ляется и скорость моделирования. Иногда благодаря небольшим размерам моде-
ли и ее простоте скорость моделирования можно не принимать во внимание, но
эффективность важна всегда.
В нашем случае, учитывая малочисленность рабочей группы и короткие сроки
исполнения проекта, во главу угла была поставлена именно эффективность. Исхо-
дя из этого фактора и осуществлялся выбор формата моделирования большинства
объектов.

Точность вычислений
Конечным результатом работы большей части приложений компьютерной гра-
фики является физический объект. Модели, производимые автомобильными
и аэрокосмическими дизайнерами, должны иметь точно подогнанные части. Дру-
гими словами, разница между круглым и почти круглым в этом случае равно-
сильна разнице между успехом и провалом. В свою очередь аниматоры должны
гарантировать, что при увеличении геометрических размеров фрагмента конеч-
ности персонажей не начнут непроизвольно дергаться из-за ошибок округления.
Словом, точность вычислений как у ученых, так и у художников должна быть
адекватной.
Выбор формата 119

Так как в проект для данной книги входил набор объектов ограниченного раз-
мера и обычного масштаба, вопрос точности вычислений был для нас не очень ва-
жен. Большинство узких мест можно было обойти за счет ограниченного разреше-
ния изображения. В то же время некоторые объекты и области сцены требовалось
смоделировать поточнее. К таким объектам относился, в частности, пожарный гид-
рант, демонстрируемый крупным планом, поэтому крайне желательно было избе-
жать смещения его частей друг относительно друга. Здесь мы подходим к следую-
щему важному фактору — непрерывности.

Непрерывность
Очевидно, что в моделируемых объектах не должно быть лишних провалов и рез-
ких границ, но иногда требования к точности моделирования могут быть еще бо-
лее строгими. Например, может потребоваться придать закругленному краю г:о-
верхности определенный радиус или же явно показать неодинаковую гладкость
поверхности. Некоторым форматам моделирования свойство непрерывности при-
суще «по определению», в других его надо имитировать искусственно. Иногда оп-
ределенного соотношения между деталями объекта можно добиться только с по-
мощью какого-то конкретного формата.
Многие объекты для проекта «Место для парковки?» требуют непрерывности
форм. И именно этот факт во многом оказал влияние на выбор форматов модели-
рования.

Гибкость
В анимации многие объекты в буквальном смысле слова должны быть гибкими, то
есть деформироваться нужным вам образом. Само по себе моделирование стати-
ческого объекта, даже полностью воспроизводящее задуманный образ, не являет-
ся гарантией корректности деформации. Поэтому выбор формата моделирования
часто определяется требованиями гибкости.
Очевидно, что этот фактор выходит на первый план при моделировании персо-
нажей. Это касается и проекта «Место для парковки». Впрочем, там присутствуют
и другие объекты, которым предстоит подвергнуться деформации.

Назначение материала
При выборе формата моделирования нужно учитывать последующее назначен] te
материала. Например, NURBS-поверхности являются параметризованными, а вся
поверхности на основе сеток полигонов и иерархические поверхности — нет (об
этих поверхностях мы поговорим чуть позже). Кроме того, существуют методы
назначения материалов, не зависящие от формата моделирования. Впрочем, каж-
дый подход имеет свои преимущества, и частенько модели создаются в том или
ином формате именно с учетом последующего назначения материала.
Для некоторых моделей из проекта «Место для парковки» учитывалась воз-
можность параметризации поверхностей. Впрочем, процесс назначения материа-
лов моделям, полученным на основе сеток полигонов, облегчает тот факт, что по-
добным поверхностям можно сопоставлять проекционные координаты.
120 Глава 6• Форматы

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

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

цщ
-т,:£. ж |'"»—'^-—-• | а
" ** ' >

Рис. 6.1. Грубая модель с низкой плотностью сетки


Полигоны 121

-
£k- - '^

Рис. 6.2. Модель со слишком высокой плотностью сетки

Следствием этой свободы является ответственность пользователя за уровень


детализации модели. Иногда это выливается в необходимость создания несколь-
ких версий одной и той же модели с низкой и высокой плотностями сетки. Подоб-
ные компромиссы хорошо знакомы разработчикам игр, которым приходится ба-
лансировать между скоростью и степенью реализма моделей.
Слишком низкая плотность сетки приводит к искажению изображения и ис-
чезновению необходимых деталей, как показано на рис. 6.1. Но, сделав сетку слиш-
ком плотной, как показано на рис. 6.2, вы увеличиваете время, которое потребует-
ся на редактирование модели и визуализацию сцены.
Сетки полигонов состоят из связанных друг с другом многоугольных граней,
которые, в свою очередь, состоят из ребер и вершин. Благодаря подобному пост-
роению одна вершина может принадлежать нескольким ребрам, а одно ребро —
нескольким граням. Это позволяет сохранять минимальное количество данных
и эффективно отслеживать структуру сетки.
Для сеток полигонов характерна недостаточная точность воспроизведения ис-
кривленных поверхностей. В промышленных приложениях моделирование на ос-
нове сеток полигонов считается слишком непрактичным, так как для достижения
определенного уровня детализации требуется обработать слишком большие объе-
мы данных. Впрочем, при создании анимации сетку можно доработать, сгладив
острые углы.
122 Глава 6 • Форматы

Несмотря на гибкость топологии сеток полигонов, разработчики все равно долж-


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

Позиционная непрерывность
Сетки полигонов обеспечивают только позиционную непрерывность, которая пред-
ставляет собой просто связность отдельных частей модели. Однако при визуали-
зации создается впечатление непрерывности более высокого порядка. Ребра мо-
гут быть видны даже при условии интерполяции нормалей к вершинам, приводя-
щей к сглаживанию внутренней области, как показано на рис. 6.3.

Рис. 6.3. Артефакты 8 местах соединения граней

Однако в действительности ключевым достоинством моделирования на осно-


ве сеток полигонов является связность отдельных частей модели. При деформа-
ции поверхностей с высокой степенью параметризации (выше первой степени)
перемещение управляющих вершин обеспечивает более высокий по сравнению
с реальным порядок непрерывности. Но пространственные деформации не приво-
дят к появлению разрывов, так как для непрерывности сетки полигонов требуется
лишь, чтобы совпадающие вершины находились в одной точке пространства. Не-
Полигоны 123

смотря на свою простоту, сетки полигонов легко деформируются даже в случаях,


когда их более сложные собратья (например, NURBS-поверхности) рвутся.
При логических операциях крайне полезна интерполяция нормалей визунли-
затором, приводящая к появлению гладкой поверхности. При отключенном сгла-
живании результат такой операции, скорее всего, будет выглядеть крайне неприв-
лекательно. Впрочем, обычно сглаживание включено по умолчанию, поэтому i ipo-
блемные области визуализируются вполне корректно, как показано на рис. 6.4.

Рис. 6.4. Результаты логической операции при включенном и отключенном сглаживании

Разумеется, сглаживание влияет на визуализацию только в пределах одной сет-


ки. Между разными сетками отсутствует интерполяция нормалей к вершинам,
поэтому стык двух граней незаметен только тогда, когда эти грани лежат в о,гной
плоскости.

Назначение материалов
Сетки полигонов не являются параметрическими, поэтому для назначения мате-
риалов нужно сопоставить их вершинам проекционные координаты. Это можно
сделать как в процессе создания сетки или полигона (что, собственно, и происхо-
дит по умолчанию), так и при дальнейшем редактировании.
124 Глава 6 • Форматы

В общем случае если объекту невозможно без проблем назначить материал на


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

NURBS-поверхности
Разработка формата моделирования на основе неоднородных рациональных
В-сплайнов (Nommiform rational B-splines, NURBS) стала важным этапом разви-
тия компьютерной графики. Наконец-то появился формат для точного и эффек-
тивного воспроизведения широкого спектра объектов. Кроме того, извлечение из
этих объектов фрагментов произвольной формы не влияет на вид остальной по-
верхности. После долгих исследований неоднородные рациональные В-сплайны
стали основой стандарта создания поверхностей в компьютерной графике.
NURBS-поверхности состоят из отдельных параметрических фрагментов и яв-
ляют собой подход к представлению геометрии, альтернативный сеткам полиго-
нов. Однако в ходе визуализации в большинстве случаев (в том числе и в Maya)
для удобства вычислений происходит преобразование NURBS-поверхности в на-
бор полигонов. Чтобы понять основные отличия между этими форматами модели-
рования, рассмотрим неоднородные рациональные В-сплайны более подробно.

Параметризация
Параметрические кривые и поверхности описывают геометрию посредством ба-
зисной функции и управляющих точек. Базисные функции создаются как функ-
ции одного параметра (U), использующего одно значение для каждой коорди-
наты:
P(u)-(X(u),Y(u),Z(u)).
Любая координатная функция использует один и тот ж:е базис, который оп-
ределяет соответствующее значение координаты для каждой управляющей точ-
ки и выдает взвешенную сумму. Для кривой Безье в каждом вычислении прини-
мают участие все точки, в то время как для В-сплайна берется определенное чис-
ло точек.
В этом последнем случае принято говорить, что кривая или поверхность состо-
ит из отдельных фрагментов, так как выбранное подмножество управляющих вер-
шин формирует отдельные участки элемента (интервалы). Значения параметра,
при которых заканчивается один интервал и начинается следующий, называются
узловыми точками. Геометрическое местоположение узловых точек является ре-
зультатом вычисления соответствующих управляющих точек с использованием
базисных функций при определенном значении параметра.
NURBS-поверхности 125

Значения параметра описывают пространство, которое может быть пройдено


от начала до конца. Некоторые базисы определены от 0 до 1, но на базис В-сплайна
наложено единственное ограничение: диапазон значений узловых точек должен
быть неубывающим. При этом точные величины параметров не имеют значения.
Их легко можно изменить путем прибавления ко всем константы или же умноже-
ния их на константу. В то же время крайне важным является соотношение между
узловыми точками.
Если все узловые точки отстоят друг от друга на постоянную величину, гово-
рят, что элемент однородно параметризован. Если же хоть один интервал между
узловыми точками выделяется из общего ряда, параметризация элементов назы-
вается неоднородной.
То есть однородные В-сплайны описывают элементы посредством распреде-
ленных на равные расстояния узловых точек с неубывающими значениями, кото-
рые определяют взвешенную сумму управляющих точек через базисную функцию
В-сплайна. Честно признаемся, что сущность этого элемента намного проще, чем
его определение.
Базис В-сплайна в действительности представляет собой не одну функцию, а их
семейство, в зависимости от нужной математической степени.
Структура базиса гарантирует, что сумма весов всех значимых управляющих
точек всегда будет равна единице. Это означает, что ни одна точка не должна имет ь
чрезмерного влияния на элемент, что приводит к появлению нужного нам свой-
ства выпуклой оболочки. Данное свойство гласит, что элемент всегда находится
внутри области, ограниченной линиями, соединяющими соответствующие управ-
ляющие вершины.
При рассмотрении базисных функций в виде весовой суммы точек в простран -
стве становятся весьма наглядными степенные эффекты.
Для двух точек может быть получена только линейная интерполяция. Другими
словами, их можно соединить исключительно прямой линией. Ведь дополнитель-
ных точек, которые могли бы повлиять на положение кривой, просто нет. Матема-
тически такая кривая описывается уравнением первой степени.
Три точки гарантированно образуют треугольник. Различные базисные функ-
ции в этом случае могут привести к появлению различных кривых, но благодаря
наличию условия, что сумма этих функций равна единице, кривая будет лежать
в плоскости треугольника. Такие кривые имеют дополнительную степень свобо-
ды и описываются уравнением второй степени.
Чтобы получить кривую, не лежащую в одной плоскости, необходимы четыре
точки. Пользователи Maya сразу поймут, что для построения кривой третьей сте-
пени требуются четыре точки. Это минимальное количество точек для параметри-
ческой кривой, не лежащей в одной плоскости. Такая кривая должна иметь как
минимум третью степень.
То есть базисные функции, оперирующие двумя, тремя или четырьмя точками,
соответствуют линейному, плоскому и неплоскому вариантам. В действительнос-
ти, описанные случаи относились к кривым, состоящим из одного интервала. Ддл
кривых, составленных из нескольких интервалов, базис В-сплайна, показанный
на рис. 6.5, определяет способ итераций вдоль этих интервалов с использованием
для каждого из них соответствующих управляющих вершин.
126 Глава 6• Форматы

С = Р0Вэ + PiB2 +• •+• P3Bo

Рис. 6.5. Базисная функция однородного В-сплайна

Так как вычисление параметра происходит от одного интервала к другому, эф-


фект воздействия одной управляющей точки стремится к нулю по мере возраста-
ния эффекта воздействия управляющей точки, расположенной рядом. Продолже-
ние кривой первой степени начинается на конце интервала, кривая второй степе-
ни продолжается в том же самом направлении, то же можно сказать и о кривой
третьей степени с той же самой степенью кривизны. Именно в этом состоит усло-
вие непрерывности В-сплайна, и именно для обеспечения этого условия были раз-
работаны базисные функции.
Можно создать NURBS-кривые более высоких степеней и обеспечить более
высокий порядок непрерывности, но редактирование положения управляющих
точек в этом случае лучше поручить компьютеру.
Мы почти закончили. Осталось только рассмотреть неоднородную и рациональ-
ную части NURBS-кривых.
Как уже было упомянуто ранее, интервал между узлами вовсе не обязан быть
одинаковым. Пока значения в узловых точках не убывают, они могут быть любы-
ми. Изменение значения параметра меняет форму кривой, так как меняется диа-
пазон действия различных управляющих точек. Чаще всего параметризация про-
изводится назначением параметра на основе прямого расстояния между соседни-
ми узловыми точками. Хотя это всего лишь приближение (так как фактическое
расстояние вдоль кривой зависит от параметров), метод достаточно действенный
и известен под названием параметризации по длине хорды.
Также неоднородная параметризация полезна на концах интервалов. Прямое
применение базисной функции предыдущего В-сплайна к строго однородному
узловому вектору приводит к появлению висящих концов, как показано на рис. 6.6.
NURBS-поверхности 127

Но путем повторения значений параметра в узловом векторе можно подогнать


концы кривой к конечным управляющим точкам.

Рис. 6.6. Сравнение однородного В-сплайна и В-сплайна


с множественными конечными узлами

В Maya часто приходится сталкиваться с ситуацией, когда однородные кривые


и поверхности оказываются неоднородными на конце. Впрочем, положение этого
конца и направление тангенса угла наклона может контролировать непосредствен-
но пользователь.
Напоследок следует отметить, что обсчет управляющих точек производится
различными способами. Можно указать дополнительный масштабирующий коэф-
фициент, показывающий соотношение между выбранной и обычной управляющи-
ми точками. Зачем это нужно? Дело в том, что коническое сечение, например пра-
вильный круг, может быть корректно определено с помощью В-сплайна только
в том случае, если этот сплайн является рациональным.
В Maya круги и поверхности вращения не являются строго круглыми. Чем боль-
шее количество интервалов использовалось для их получения, тем лучше прибли-
жение. Но точный круг может быть получен только с помощью рациональных
В-сплайнов.
Круглый участок, созданный с помощью небольшого числа интервалов, имеет
не идеальный вид, в то время как рациональный элемент всегда точно повторяет
128 Глава 6 • Форматы

форму круга и состоит строго из нужного количества интервалов. Пример показан


на рис, 6.7. Рациональная геометрия в Maya или импортируется из другой про-
граммы или создается с помощью языка MEL и интерфейса API. Встроенные же
средства этого приложения не позволяют создавать ничего подобного.

Рис. 6.7. Сравнение нерациональных и рациональных В-сплэЙное

На этом закончим обсуждение сущности неоднородных рациональных В-сплай-


нов и перейдем к разговору о моделировании на их основе.

Прямолинейная топология
Предшествующее обсуждение в основном относилось к кривым, но изложенные
принципы применимы и к поверхностям. Впрочем, основным отличием кривой от
поверхности является наличие еще одного измерения — V-координаты. Благода-
ря двум параметрическим U- и V-координатам, топология NURBS-поверхностей
всегда прямолинейна вне зависимости от их фактической формы.
Такая топология означает, что сложные объекты обычно моделируются в ви-
де сети прямоугольных поверхностей. Некоторые из них могут иметь стороны
нулевой длины (так называемые вырожденные ребра), но топология все равно
остается прямоугольной. Планирование эффективного расположения этих по-
NURBS-поверхности 129

верхностей может быть весьма нетривиальным, зато в итоге получается очень


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

Обрезка
Удобным в подобной топологии является то, что NURBS-поверхности легко под-
даются обрезке. Для обрезки параметрической поверхности требуется определить
границу в пространстве U- и V-координат. Такая граница обычно создается про-
ецированием кривой на поверхность или вычислением места пересечения двух
поверхностей, но существуют и другие методы. Эта граница должна делить поверх-
ность на отдельные области. При этом форма поверхности остается неизменной.
Операцию обрезки очень легко отменить, так как граница среза может быть
просто удалена.
Обрезка особенно ценна при разработке точных скругленных форм. Фаски
и скругления создаются с учетом свойства непрерывности, не оказывая влияния
на форму соседних поверхностей. Разумеется, приходится идти на компромиссы
при выборе минимально возможной точности, позволяющей избежать видимых
зазоров между поверхностями.
Обрезка поверхностей потребуется вам при подготовке ниш для колес у авто-
мобилей в проекте «Место для парковки», так как изменением формы крыла в этом
случае не обойтись.
Разумеется, существуют студии, не практикующие обрезку поверхностей. По
большей части это связано с тем, что в отличие от самой NURBS-поверхности па-
раметрические границы невозможно контролировать с помощью управляющих
вершин. Управляющие вершины кривой обрезки фактически существуют в пара-
метрическом пространстве поверхности, соответственно, деформации поверхнос-
ти перемещают управляющие вершины линии обрезки в другое пространство, что
практически неизбежно приводит к нарушению целостности вдоль ребер обрезан-
ной поверхности,

Гладкие поверхности
Другой важной характеристикой NURBS-поверхностей, без сомнения, является
их гладкость. Эти поверхности являются математически определенными сущнос-
тями, которые потенциально могут обрабатываться и визуализироваться с любой
точностью. Любая пара U- и V-координат из диапазона, покрывающего рассмат-
риваемую поверхность, связана с определенной точкой этой поверхности.
К любой точке поверхности, исключая точки тангенциального разрыва, мож-
но провести нормаль. Для объяснения этого факта сначала поговорим о непре-
рывности.
130 Глава 6 • Форматы

Заданный по умолчанию порядок непрерывности между интервалами NURBS-


кривой или NURBS-поверхности на единицу меньше порядка уравнения, задаю-
щего эту кривую или поверхность. Это значение представляет собой число суще-
ствующих непрерывных производных. Оно записывается ь виде СО, Cl, C2 и т. д.,
впрочем, вам эти обозначения вряд ли о чем-нибудь скажут.
Проще думать о непрерывности как о поочередно совпадающих коэффициен-
тах изменения кривизны. NURBS-поверхность, описываемая уравнением любой
степени, в узловых точках является позиционно непрерывной (СО). Уровень из-
менения положения определяется углом наклона. Соответственно, линейная по-
верхность (описываемая уравнением первой степени) в отличие от поверхностей
более высокого порядка не гарантирует непрерывности производной (С1) в узло-
вых точках.
В свою очередь, производной от наклона является кривизна, или курватура, по-
верхности. Поэтому, хотя поверхности второго порядка имеют непрерывность пер-
вого порядка (С 1) в узловых точках, непрерывность второго порядка (С2) у них уже
отсутствует. Для ее получения требуются уже поверхности третьего порядка и т. д.
Кстати, порядок непрерывности уменьшается на единицу для каждого повто-
ряющегося значения узловой точки. Поэтому точка тангенциального разрыва воз-
никает на кубической NURBS-поверхности, если в узловом векторе три раза под-
ряд появляется один и тот же узел. Первое повторение уменьшает непрерывность
с С2 до С1, а после второго повторения остается только непрерывность нулевого
порядка (СО). Так как непрерывностей меньшего порядка не существует, следую-
щее повторение приводит к разрыву поверхности.

Д еформ и руемость
Порядок непрерывности NURBS-поверхности может не только существовать вдоль
внутренних узловых точек, но и устанавливаться по отдельным поверхностям.
Значения параметров на поверхности, по существу, являются частью последова-
тельного диапазона, но в случае с отдельными поверхностями такой гарантии нет.
Для подобной ситуации терминология должна быть несколько иной. Непрерыв-
ность будет выражаться в геометрических соотношениях GO, Gl, G2 и т. п., как
показано на рис. 6.8.
Задача поиска такого расположения точек, при котором выполняются условия
непрерывности, усложняется по мере увеличения порядка поверхности. К счас-
тью, в Maya для этой работы существуют специальные инструменты. Говоря в об-
щих чертах, для достижения геометрической непрерывности требуется последо-
вательное выравнивание управляющих точек и получение определенного соотно-
шения на общей границе.
Практически во всех случаях это — тривиальная операция по изменению пара-
метров соседних поверхностей, в процессе которой устанавливается параметри-
ческая непрерывность (Сп), в то время как геометрическая непрерывность (Gn)
уже существует. Для моделирования обычно хватает геометрической непрерыв-
ности, но при назначении материалов возникает необходимость и в параметричес-
кой непрерывности.
Однако, добившись желаемой непрерывности вдоль границ поверхности, вы
вовсе не гарантируете, что NURBS-поверхность можно будет деформировать нуж-
ным образом.
NURBS-поверхности 131

Рис. 6.8. Условия геометрической непрерывности

В действительности, если узловые векторы для рассматриваемых поверхнос-


тей имеют описанную ранее форму множественных узловых точек, при деформа-
ции, скорее всего, появится сморщивание или разрыв, как показано на рис. 6.9. Это
связано с тем, что соотношение между соседними управляющими точками только
геометрическое, и деформация его меняет.
С другой стороны, если на границах поверхностей отсутствуют множественные
узловые точки, необходимое соотношение непрерывности включает наложение со-
седних управляющих точек друг на друга. Деформация в равной мере воздействует на
эти наложенные друг на друга точки, поэтому соотношение непрерывности сохраня-
ется, как показано на рис. 6.10. Впрочем, имейте в виду, что обычно Maya не создаст
подобных поверхностей (хотя потенциальная возможность для этого имеется).
Не все соотношения непрерывности являются точными. Например, соотноше-
ния вдоль границ фаски приблизительны. В общем случае, при деформации обре-
занных поверхностей практически гарантирован разрыв, поэтому не стоит исполь-
зовать этот метод для моделирования гибких объектов. Исключение можно сделать
для случая, когда условие непрерывности вычисляется отдельно для каждого кадра.
Иногда моделирование на основе NURBS-поверхностей выглядит полной про-
тивоположностью моделированию на основе полигонов. Однако имеется и проме-
жуточный вариант...
132 Глава 6• Форматы

Рис. 6.9. Вид поверхности с множественными узловыми точками


в районе шва после деформации

Иерархические поверхности
Гладкие NURBS-поверхности крайне привлекательны, но то же самое можно ска-
зать о гибкой топологии сеток полигонов. Формат иерархических поверхностей
является, по своей сути, новаторским смешением обеих технологий.

Гибкая топология плюс иерархия


Основное правило топологии сеток полигонов применимо и к топологии сеток
иерархических поверхностей. Вершины и ребра таких сеток должны располагать-
ся с учетом положения соседних элементов, ребро не должно быть общим для трех
граней и более, векторы нормалей двух смежных граней не должны быть направ-
лены в противоположные стороны и т. п. Существенно, чтобы сетка была ориен-
тирована единообразно и не требовала лишних данных. В некотором смысле это
большее ограничение, чем в случае с полигонами, но это единственный способ со-
здать сетку более высокой целостности,
Иерархические поверхности
133

Рис 6.10. Вид поверхности сеянными узловыми точками


в районе шва после деформации

Однако в случае иерархических поверхностей к сетке полигонов добавляются


две важные характеристики: предельная поверхность и иерархический уровень
детализации.
Предельная поверхность является основным источником широких возможно-
стей формата. Грани сетки делятся определенное количество раз, пока не будет
получен нужный уровень детализации. Впрочем, у этой процедуры существуют
ограничения. Она осуществляется до момента достижения некоторого заранее ука-
занного предела, например величины новых граней. В Maya для четырехугольных
полигонов используется схема разбиения, известная под названием схемы Кат-
мул—Кларка (Catmull—Clark). Несмотря на сложность ее описания, разобраться
в некоторых получаемых с ее помощью результатах не составит труда.
Во-первых, исходная сетка разбивается на четырехугольные грани. Фактичес-
ки после первого уровня разбиения сетка оказывается составленной исключительно
из четырехугольников. К тому же количество вершин, в которых сходятся больше
или меньше четырех граней, ограничено числом вершин, присутствовавших в ис-
ходной сетке. Другими словами, структуру новой сетки можно предсказать прак-
тически немедленно, как показано на рис. 6.11.
134 Глава 6 • Форматы

>

Рис. 6.11. Результат разбиения сетки

Во-вторых, предельная поверхность, полученная из прямоугольного массива


четырехугольных граней, идентична поверхности, созданной на основе однород-
ных В-сплайнов с такой же исходной сеткой (рис. 6.12).
Эти сведения будут крайне полезны при разработке эффективной сетки. Имейте
в виду, что в области внутри прямоугольного массива управляющих точек визу-
альные артефакты обычно не появляются (разумеется, при условии разумного рас-
положения этих точек). Знание того, что такие области будут вести себя как не-
однородные рациональные В-сплайны, облегчает опытным разработчикам NURBS-
поверхностей операции объединения нескольких сеток.
Однако Maya углубляет эту схему, добавляя к иерархическим сеткам еще один
иерархический уровень детализации. Так как такие поверхности по своей природе
являются продуктом последовательного уточнения, каждый следующий уровень
детализации можно сделать редактируемым. Другими словами, вы можете рабо-
тать не со всей сеткой целиком, а выбрать тот уровень данных, который требуется
изменить.
В результате появляется мощный механизм добавления деталей к иерархичес-
кой сетке и манипуляции ими, наследующий информацию с предыдущих уров-
ней. При этом образуется компактная структура данных, позволяющая вносить
Иерархические поверхности 135

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


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

mm '••"'•- •'•'• :•<"•**> шщ


^'з н-i * «; -1 - И *$ы>$*$
•*.- MS* -••>• mm
* ^

Рис. 6.12. Эквивалентность NURBS-поверхности и предельной иерархической поверхности


в прямоугольной области

Если требуется вся сетка базового уровня, нужно решить, как осуществить пе-
реход от ее грубых областей к более детальным. Преимуществом подобного под-
хода может стать лучшая оптимизация размера сетки и возможность работать со
всеми данными одновременно. Кроме того, существуют созданные сторонними про-
изводителями инструменты, позволяющие соединять выходные данные узла сет-
ки полигонов с входными данными иерархической поверхности, что дает в резуль-
тате потенциально более совершенный рабочий процесс. Недостатком этого мето-
да является сложность получения сетки без артефактов.
Выбор варианта представления деталей объекта может быть основан на лич-
ных предпочтениях, требованиях взаимодействия и особенностях модели. Более
подробно мы познакомимся с различными вариантами иерархических поверхнос-
тей чуть позже.
136 Глава 6• Форматы

Тангенциальная непрерывность
Типологическая гибкость иерархических сеток является столь действенной бла-
годаря тангенциальной непрерывности. Тангенциальная непрерывность позволя-
ет работать с картами смещений благодаря гарантии, что нормали к поверхности
также являются непрерывными. Это очень важно, поскольку дискретные нормали
приводят к разрыву поверхностей в процессе смещения.
В случае NURBS-по верхи остей легко понять, что представляет собой нормаль,
потому что это всего лишь векторное произведение тангенциальных векторов U и V,
Однако так как для сеток полигонов не существует встроенного параметрического
пространства, процесс вычисления нормали к иерархической сетке неочевиден (для
этого можно использовать векторы ребер). Впрочем, в данном случае по-настоящему
важен лишь тот факт, что благодаря тангенциальной непрерывности нормали к по-
верхности не только существуют, но и, в свою очередь, являются непрерывными.
Это предположение не выполняется только на полюсах поверхностей, полу-
ченных путем вращения. В Maya такие модели не одобряются как раз из-за «исче-
зающих нормалей» (рис. 6.13), причиной появления которых является обращение
в ноль продольного вектора (несмотря на то, что поперечный вектор при этом от-
личен от нуля). Это может создать трудности при визуализации, но на полюсах
тем не менее существует предельная поверхность, да и значение нормалей там мож-
но получить, например, как предельное значение соседних нормалей.

Рис. 6.13. Артефакты на полюсах, связанные с исчезновением нормалей


Иерархические поверхности 137

Существует обходной прием по борьбе с артефактами на полюсах, а также но


их перестройке, но следует помнить, что при этом происходит изменение формы
поверхности. Для некоторых пользователей такое ограничение вполне допустима,
другие же не желают с ним мириться.
Еще одним следствием тангенциальной непрерывности является возможность
легко создавать плавные границы. Обычно построение таких границ даже проще
создания фасок для NURBS-поверхностей. Этим методом вполне можно восполь-
зоваться, когда требуются границы, которые могут быть легко описаны с помощью
однородного В-сплайна третьей степени. Если границу можно сконструировать
в области, без проблем покрываемой прямолинейной сеткой, вы сможете сделать
ее гладкой. Разумеется, для создания идеально круглой границы или для ее обрез-
ки по диагонали относительно остальных ячеек сетки все равно потребуется при-
бегнуть к NURBS-поверхностям.
Желаемая тангенциальная непрерывность может быть «сведена на нет» появ-
лением складок. Ребра и вершины иногда образуют складки, как показано на
рис. 6.14, что приводит к тангенциальному разрыву. Если наличие резких граней
или пиков нежелательно, можно частично смять их (это делается пропуском на
определенных итерациях операций разбиения поверхности),

Рис. 6.14. Не складчатые, частично складчатые и полностью складчатые ребра


138 Глава 6 • Форматы

Не забыли, что прямоугольные области сетки ведут себя точно так же, как од-
нородные NURBS-поверхности? И что NURBS-поверхность третьего порядка
имеет непрерывность второго порядка (курватурную непрерывность)? Так вот,
иерархические поверхности в подобных ситуациях также обладают непрерывнос-
тью второго порядка. Многие модели, созданные таким методом, обладают курва-
турной непрерывностью. Но так как основной причиной применения иерархичес-
ких поверхностей обычно является их топологическая гибкость, вполне можно
считать, что эти непрямоугольные области обладают только тангенциальной не-
прерывностью.

Назначение материалов
Иерархические поверхности в плане назначения проекционных координат анало-
гичны сеткам полигонов. Впрочем, существует множество возможностей сопо-
ставить такой поверхности проекционные координаты непосредственно в момент
ее создания. К тому же большинство этих поверхностей создаются из сеток поли-
гонов или из NURBS-поверхностей, координаты которых они наследуют.
Процессы сопоставления проекционных координат иерархической сетке
и сетке полигонов аналогичны за одним исключением. При увеличении дета-
лизации для иерархической сетки применяются более сложные правила преоб-
разования координат. Впрочем, с точки зрения процесса моделирования они
эквивалентны.
Кроме того, нормаль к вершинам иерархических сеток не определена, так как
они функционируют скорее как управляющие точки NURBS-поверхЕтости, чем как
вершины сетки полигонов. Нормали предельной иерархической поверхности не
направлены вверх и не интерполируются как грани полигона. В действительности
они являются геометрическим свойством предельной поверхности. Поэтому, хотя
вершины иерархической сетки могут иметь проекционные координаты, у таких
сеток нет нормалей к вершинам, как у обычных сеток полигонов.

Выбор метода моделирования


поверхности
Итак, после сравнения различных форматов моделирования пришло время при-
нять решение по поводу моделей в проекте «Место для парковки».
Сразу можно сказать, что некоторые объекты имеет смысл моделировать на
основе сеток полигонов. Нам требуется короткий фильм с как можно меньшим
количеством искажений, самым очевидным из которых является визуальное про-
явление граней. Неровностей NURBS-поверхностей избежать также не удастся,
но модель можно отредактировать во время визуализации, в то время как сгладить
сетку полигонов будет намного сложнее. То есть моделирование на основе сеток
полигонов замечательно подходит для начальных стадий, но существует не так уж
много объектов, для которых этот формат будет фигурировать в качестве основы
окончательной формы.
Выбор метода моделирования поверхности 139

Персонажи
Для моделирования персонажей без сомнения нужно использовать иерархичес-
кие поверхности, так как модели на основе сетки полигонов будут либо слишком
грубы, либо слишком сложны для обработки из-за избытка данных. В то же время
в NURBS-моделях очень непросто избавиться от разрывов. Детали моделирова-
ния каждого персонажа могут различаться, но конечным результатом будет иерар-
хическая поверхность.
Основную часть работы по созданию одежды персонажей также, скорее всего,
имеет смысл выполнить с помощью иерархических поверхностей, хотя для имита-
ции тканей может потребоваться сетка полигонов. Для моделирования ботинок
и пояса главного героя вполне можно было бы использовать NURBS-поверХнос-
ти, но мы обойдемся иерархическими поверхностями.

Автомобили
Автомобили в проекте «Место для парковки» в соответствии с разработанным
планом имеют длинные плавные линии. Как и в случае с любой машиной, важ-
ным критерием качества поверхности являются блики и отражения. Так как на
автомобиль главного героя зрители будут обращать особое внимание, модель, по-
казанная на рис. 6.15, должна быть по возможности идеальной.

Рис. 6.15. Дизайн автомобиля

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


его требуется смоделировать полностью. Однако дизайн выполнен несколько ка-
рикатурно, что позволяет при необходимости вносить в модель мелкие измене-
ния. Нам не требуется создавать рекламный ролик настоящего автомобиля, поэто-
му реалистичностью можно пожертвовать в угоду производительности.
Кроме того, для проекта требуется несколько автомобилей, вид которых можно
оперативно подправлять, как показано на рис. 6.16. Для этого достаточно поме-
нять вид бампера, решеток, ручек и т. п. Впрочем, могут потребоваться и измене-
ния кузова.
В соответствии с этими требованиями кузов автомобиля имеет смысл модел и-
ровать на основе NURBS-поверхностей. Однако большинство декоративных дега-
лей лучше всего создавать с помощью иерархических поверхностей, тем более что
140 Глава 6 • Форматы

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

Рис 6.16. Альтернативный вид автомобиля

В большинстве своем машины будут окрашены однородно, поэтому парамет-


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

Пожарный гидрант
На первый взгляд пожарный гидрант выглядит классической NURBS-моделью.
Так как гидранты должны быть сверхпрочными, они обычно состоят из крупных
деталей со значительными радиусами граней. В зависимости от окончательного
дизайна, гидрант может быть смоделирован как путем комбинирования NURBS-
поверхиостей и иерархических поверхностей, так и исключительно с применени-
ем последних.
Желобки на поверхности можно смоделировать, но можно и создать их имита-
цию назначением соответствующего материала. При этом, очевидно, что корпус
гидранта представляет собой NURBS-поверхность. Затем ее можно преобразовать
Другие возможности моделирования 141

в сетку полигонов, то же самое сделать для патрубков, соединить патрубки с кор-


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

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

Другие возможности моделирования


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

Эффекты рисования
Деревья, растущие вдоль тротуара, можно смоделировать на основе иерархичес-
ких поверхностей, NURBS-поверхностей или сеток полигонов, но в Maya суще-
ствует привлекательная альтернатива всем этим форматам — модуль Paint Effects
(Эффекты рисования). В данном разделе мы не будем обсуждать детали его исполь-
зования. Имеет значение только тот факт, что скорость создания разнообразной
растительности с помощью этого модуля намного превосходит скорость создания
142 Глава 6 • Форматы

соответствующих моделей обычным образом. От вас практически не потребуется


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

Капли воды
К концу ролика пожарный гидрант будет открыт. Не нужно говорить, что при
этом из него начнет бить мощный поток воды. Сразу понятно, что традицион-
ным моделированием здесь не обойтись, в сцене должны появиться частицы,
Большинство этих частиц будут двигаться совершенно свободно, но некоторым
из них предстоит столкнуться с поверхностью и стечь по ней вниз. Детали созда-
ния подобной модели будут обсуждаться в соответствующей главе, а пока имеет
смысл упомянуть лишь о том, что для этой задачи лучше всего подходят сфери-
ческие частицы.
Сферические частицы — это вовсе не то же самое, что неявные поверхности,
или блобы1, упоминавшиеся в начале главы. В Maya не поддерживаются блобы,
которые можно было бы использовать для моделирования непосредственно в сце-
не, а вот возможность визуализировать частицы в виде сф>ер имеется. Хотя таким
способом тоже получаются неявные поверхности, диапазон их применения край-
не ограничен. К счастью, такие частицы замечательно подходят для моделирова-
ния капель воды,

Волосы и мех
Собака в сцене будет покрыта шерстью, человек — волосами, и хотелось бы,
чтобы то и другое выглядело натурально. С этой задачей превосходно справится
модуль Maya Fur (Имитация меха). Хотя, наверное, можно было бы оставить главно-
го героя сцены лысым или создать для него пластиковый каркас, имитирующий
волосы, но это была бы низкопробная подделка, не говоря: уже о рисовании мехо-
вой шубы для Кляксы. Именно поэтому персонажи будут моделироваться без во-
лос, а затем их вид довершит модуль Maya Fur (Имитация меха).

Заключение
В Maya существуют три основных формата моделирования: сетки полигонов,
NURBS-поверхности и иерархические поверхности. Каждый из них имеет свои
сильные и слабые стороны и предназначен для решения определенных задач. Все
вместе они предоставляют разработчику возможность выбора, хотя для этого тре-
буется понимать природу каждого из форматов.
Для некоторых моделей во главу угла ставится возможность деформации. Для
других важен точный контроль над формой. Третьи требуют максимальной про-
изводительности при минимуме возможных изменений в геометрии. На выбор

1
В оригинале соответственно «blobby particles* и «blobby surfaces». — Примеч.ред.
Заключение 143

влияют и такие факторы, как время моделирования и потраченные на него уси-


лия, легкость последующего назначения материала и существующий набор инст-
рументов.
Разумеется, благодаря возможности преобразования моделей из одного фор-
мата в другой можно не ограничивать себя одним форматом. И вне зависимости
от того, будет ли для создания модели использован один формат, комбинация раз-
ных форматов или преобразование из одного формата в другой, в Maya существу-
ет возможность выбора среди хорошо разработанных и стандартизированных ва-
риантов.
Теперь, когда вы познакомились с различными форматами моделирования,
поговорим о методах моделирования.
7 Методы

Процесс моделирования в Maya представляет собой, как правило, многократное


выполнение одних и тех же стандартных приемов. В следующих главах мы зай-
мемся моделированием различных объектов и персонажей для проекта « Место для
парковки», а пока поговорим об этих приемах, а также о стратегиях решения про-
блем, возникающих при выполнении практически любого проекта.
Как говорил один опытный автомобильный дизайнер из Дейтройта, при созда-
нии законченной модели основное время тратится вовсе не на формирование боль-
ших поверхностей, даже если те полностью определяют внешний вид автомобиля,
а на создание плавных переходов между ними, и это действительно так.
С того момента прошло уже более 20 лет, и приложения для компьютерной гра-
фики усовершенствовались во всех отношениях. Визуальное богатство создавае-
мых сцен достигло уровня, который невозможно было представить раньше. Те-
перь люди не удивляются изображениям и эффектам, еще недавно казавшимся
необычными и впечатляющими произведениями немногочисленных и до ужаса
дорогих дизайнерских студий того времени. Возможности компьютерной графи-
ки в наши дни неоспоримы, но одно было и остается неизменным — это проблема
проработки деталей.
Каким бы мощным ни было программное обеспечение, внимание к деталям оп-
ределяет разницу между приемлемым и превосходным. Создание превосходных
моделей требует учета бесчисленных мелких деталей и топологии. Для получения
удовлетворительного результата при построении сложной модели, которая долж-
на выглядеть точно так же, как на рисунке, потребуется строить, перестраивать,
соединять, плавно сопрягать, сглаживать, скруглять и, что самое важное, внима-
тельно рассматривать.
Как скульптор изучает инструменты, приемы и стратегии, позволяющие при-
дать камню желаемую форму, так и вы будете знакомиться с методами работы
в Maya. Техника работы скульптора быстро становится его второй природой, то
же самое произойдет с вашей техникой моделирования в Maya.
В этой главе вы изучите методы, которые авторы обычно используют для со-
здания моделей. В том числе будут рассмотрены следующие темы:
О выбор опорных материалов;
о настройка опорных изображений;
О работа с сетками и слоями;
Вспомогательные образы 145

О получение плавных границ;


О устранение открытых концов;
О создание и заполнение отверстий,
Мы не ставим своей целью описать все существующие приемы работы в Maya
(такое описание способно само по себе занять целую книгу), а всего лишь хотим
указать на различные подходы к решению проблем, возникающих в ходе выпол-
нения проектов.
Но, пожалуй, наилучшим уроком стало бы осознание того факта, что для реше-
ния любой проблемы моделирования в Maya имеется множество альтернативных
путей.

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

Получение опорных материалов


Пришло время решительно приступить к делу. Вы вооружены необходимыми ин-
струментами и имеете исходную идею или небольшой набросок будущей сцены.
Слова художника-постановщика: «В сцене требуется пожарный гидрант» — вовсе
не означают, что вы знаете, как именно должен выглядеть этот самый гидрант. Здесь
не обойтись без опорных материалов,
Нужно четко представлять себе объекты, которые вы пытаетесь смоделировать,
поэтому старайтесь в свободное время собирать о них сведения.
Реальные объекты
Самым лучшим источником информации являются окружающие нас объекты,
Большинство вопросов, возникающих в процессе моделирования, исчезают маги
ческим образом, стоит всесторонне исследовать воспроизводимый объект.
Если вам предстоит смоделировать автомобиль, попытайтесь заставить худож -
ника-постановщика приобрести его для вас (только представьте, как вам повез-
ло!). Если предстоит работа над пожарным гидрантом, также не помешает иметь
его под рукой (разумеется, при условии, что вам не придется таскать его на своем
146 Глава 7 • Методы

горбу). Если не удается найти реальный объект, можно приобрести его модель (это
намного проще в случае автомобиля, чем в случае пожарного гидранта). Ну и, на-
конец, когда подобную модель невозможно купить или точно воспроизвести на
бумаге, может быть, кто-то сможет сделать ее для вас.
Наличие в качестве опорного материала объекта или хотя бы близкой к нему
копии значительно облегчает процесс моделирования.
К сожалению, мы не нашли автомобилей и пожарных гидрантов, конструкция
которых соответствовала бы замыслу нашего проекта. В подготовленном нами спис-
ке объектов нам реально было доступно ничтожно малое их количество. Впрочем,
у одного из наших друзей была собака (далматинец), так что мы могли получить
представление хотя бы о том, как двигаются собаки.
Фотографии
Неплохо также иметь фотографии объектов, которые вы собираетесь моделиро-
вать. Ни у кого из наших знакомых не было автомобиля модели Delahaye 135 М
1937 года выпуска, который послужил прототипом конструкции автомобиля глав-
ного героя нашей анимации, соответственно, у нас отсутствовала возможность не-
посредственно увидеть этот объект. Поэтому было решено ограничиться фотогра-
фиями. Благодаря навыкам поиска в Интернете мы быстро получили множество
фотографий этой машины.
В случаях когда пожарный гидрант требуется лишь в качестве фона, изобра-
зить его очень легко. Но в нашей анимации это — один из центральных объектов.
Поэтому пришлось снова прибегнуть к поиску в Интернете, приведшему нас на
сайт firehydrant.org, «спрятанный!- в дебрях Всемирной паутины. Именно там мы
обнаружили более тысячи фотографий разнообразных пожарных гидрантов. Не-
сколько образцов удалось также найти на соседней улице — оставалось их только
сфотографировать. Такого количества информации было вполне достаточно, что-
бы составить представление об объекте (рис, 7.1).

Рис. 7.1. Варианты конструкции пожарного гидранта

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

стей пожарного гидранта, чтобы иметь представление о пропорциях и деталях этого


объекта.
Дальнейшие размышления о проекте подвигли нас на поиск изображений де й-
ствующего гидранта. В реальной жизни это — достаточно редкое зрелище, поэто-
му мы старательно искали нужные снимки на сайте firehydrant.org, но поиск оказал-
ся безуспешным. В конце концов, один из нас решился написать по электронной
почте веб-мастеру этого ресурса.
На следующий день мы получили вежливый ответ о том, что приведение в дей-
ствие пожарного гидранта — дело далеко не безопасное. В следующем письме мы
объяснили проблему, сопроводив объяснения убедительной просьбой. К нашему
изумлению парой дней позже мы получили набор снимков, которые были сделаны
специально для нас и демонстрировали пожарный гидрант в действии (рис. 7.2).

Рис. 7.2. Струя воды из открытого пожарного гидранта

Пример с пожарным гидрантом иллюстрирует не столько наше обаяние, сколь -


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

Подготовка иллюстраций
Иногда лучшие опорные материалы — это качественные рисунки. Хорошо, если
вы относитесь к счастливчикам, которые могут заказывать иллюстрации у талант-
148 Глава 7 • Методы

ливого художника. Такой художник в состоянии подчеркнуть важные детали, со-


проводить рисунок необходимыми примечаниями и тем самым помочь воплоще-
нию ваших идей.
Тот, кто сам является не только модельером, но и дизайнером, уже на старте
имеет значительное преимущество. Впрочем, в любом случае вы скоро убедитесь,
насколько полезными являются качественные иллюстрации.
Обычно требуются ортографические проекции объекта. Так как окна проекций
в Maya по умолчанию показывают вид сверху, вид спереди и вид сбоку (справа),
именно эти варианты вида моделей нужно нарисовать на бумаге. Раскраска при
этом не нужна, потому что она мешает составить правильное представлен ие о форме
объекта и его границах.
При моделировании объектов, созданных руками человека, имеет смысл поис-
кать в Интернете сайты их производителей. В особенности это касается тех объек-
тов, для которых можно найти чертежи (как тот же пожарный гидрант).
У нас были рисунки некоторых объектов будущей уличной сценки, например
изображение автомобиля (рис. 7.3). Хотя большинство объектов моделируется в до-
статочно свободной манере, мы хотели максимально корректно воспроизвести ос-
новные элементы конструкции.

Рис. 7.3. Типичная иллюстрация

Наброски главного персонажа показаны на рис. 7.4. Разумеется, оправдать не-


добросовестную проработку деталей можно ограниченным бюджетом, однако же-
лательно с самого i тчала иметь ясное представление о том, как должен выглядеть
нужный объгк]
Вспомогательные образы 149

Рис. 7.4. Варианты персонажа

В процессе выполнения проекта нам предстоит узнать еще немало интересно-


го, а эти наброски будут напоминать нам о наших первых творческих порывах.
Сейчас еще непонятно, насколько тщательно должны моделироваться одежда, чер-
ты лица, руки и волосы, но общее направление работы уже определено.
Сканирование изображений
Основным доводом в пользу ортографических проекций является возможность их
использования в качестве опорных изображений. Эти изображения лучше всего
рисовать черными линиями на белом фоне. Соответственно, нет особого смысла
задействовать фотографии, так как они обычно имеют невысокую контрастность
и не самые удачные ракурсы (хотя часто это лучше, чем ничего).
При подготовке опорных изображений исключительно для моделирования ска-
нирование должно выполняться в оттенках серого. По мнению авторов, приемле-
мый баланс между детализацией снимка и размером файла может быть получен
при разрешении 100 dpi. Помимо всего прочего, это еще и облегчает вычисления,
Чтобы полученное после сканирования изображение было лучше видно в ок-
нах проекций, его нужно «подчистить». Для этой цели обычно используют прило-
жение Adobe Photoshop.
1. Для начала изображение нужно преобразовать в 8-разрядную шкалу оттенком
серого, если оно находится в другом формате.
2. Если снимок был отсканирован с большим разрешением, воспользуйтесь ко-
мандой Image t Image Size (Изображение * Размер изображения), чтобы уменьшить
размер фотографии и задать удобное разрешение в 100 dpi.
150 Глава 7 • Методы

3. Выберите команду Image > Adjustment > Levels (Изображение > Коррекция > Уровни)
для установки черной и белой точек, как показано на рис. 7.5. Это расширяет
средний диапазон цветов таким образом, что все пикселы, находящиеся ниже
уровня черного, становятся черными, а все пикселы, располагающиеся выше
уровня белого, становятся белыми. Таким способом обеспечиваются высокий
уровень контрастности и подчистка (в некоторой степени) стертых мест и пя-
тен. Если тона среднего диапазона слишком тусклые или размытые, исполь-
зуйте средний ползунок для гамма-коррекции,

Рис. 7.5. Коррекция уровней в Adobe Photoshop

4. Сохраните файл под новым именем (на всякий случай). Исходный результат
сканирования стирается только после завершения работы над опорными изоб-
ражениями.
5. Если исходное отсканированное изображение назвать widgetScanRaw.tif (raw —
сырой, необработанный), то единственное подправленное изображение логич-
но именовать widgetScan.tif. А если существует несколько проекций, к названию
присоединяется соответствующая буква, например^ widgetScanF.tif — для фрон-
тальной проекции. Если различные проекции подготовлены на одном листе,
выполните в Photoshop их обрезку и сохраните в виде отдельных изображений,
6. Далее нужно слегка подправить изображения, удалив все, что может затруд-
нить распознавание рисунка через сетку.
7. Отредактированный, высококонтрастный, компактный рисунок в оттенках се-
рого сохраните под именем widgetF.tif. Разумеется, вы можете выбрать другой
формат, но TIF-файлы при достаточно компактных размерах обеспечивают
сжатие без потерь.
Вспомогательные образы 151

Настройка опорных изображений


Процесс настройки опорных изображений в Maya очевиден.
1. Чтобы использовать отсканированный рисунок в качестве опорного изображе-
ния, выделите камеру, через которую он будет наблюдаться, и откройте диало-
говое окно Attribute Editor (Редактор атрибутов) на вкладке узла формы камеры,
выбрав в меню окна проекции команду View > Camera Attribute Editor (Вид > Ре-
дактор атрибутов для камеры). Щелкните на кнопке Create (Создать) в разделе
Environment (Окружение) — откроется доступ к элементам управления, необхо-
димым для настройки атрибутов опорного изображения. В поле Image Name (Имя
изображения) укажите маршрут доступа к нужному графическому файлу. Мож'-ю
также воспользоваться командой View > Image Plane > Import Image (Вид > Опор-
ное изображение > Импорт изображения) меню окна проекции, но авторы реко-
мендуют первый способ.
2. Чтобы опорное изображение не выделялось на общем фоне, нужно настроить
фон рисунка в соответствии с фоном окна проекции, в нашем случае — со свет-
ло-серым фоном (R = G = В = 0,75). Для этого щелкните на цветовом образце
Color Gain (Масштабный коэффициент цвета), чтобы открыть диалоговое окно
Color Chooser (Выбор цвета), перейдите к цветовой схеме HSV и введите в поле
Value (Интенсивность) значение 0,5. Повторите ту же операцию для цветового
образца Color Offset (Смещение цвета), только на этот раз значение параметра
Value (Интенсивность) должно равняться 0,25. В результате изображение по-
тускнеет, а белый фон станет серым, что замечательно подходит для измене-
ния геометрии.
3. Теперь перейдите в диалоговое окно Channel Box (Окно каналов). Именно с его
помощью можно узнать, где именно в пространстве сцены находится плоскость
изображения. Обычно требуется, чтобы она располагалась на противополож-
ной от камеры стороне координатной сетки, так как в противном случае ора
скроет сетку. При необходимости введите нужное значение в поле Center (Цен-
трировать), соответствующее оси наблюдения выделенной камеры, чтобы смес-
тить опорное изображение за нужную плоскость сетки.

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

4. Придайте изображению нужный размер путем равномерного масштабирования,


то есть, поменяв ширину и высоту на одну и ту же величину. При этом оказы-
вается очень полезной координатная разметка исходного рисунка, особенно n:j
его длине. Обычно имеет смысл делать видимой сетку, за которой располагает-
ся опорное изображение, чтобы придать последнему корректные размеры.
СОВЕТ-
Если выделить в диалоговом окне Channel Box (Окно каналов) несколько имен каналов и перетаск^ •
вать указатель мыши в окне проекции при нажатой средней кнопке, значения выделенных каналов
будут меняться одновременно. Выбрав в меню окна каналов команду Channels > Settings > Invisible
Manips (Каналы > Настройки * Скрыть манипуляторы), вы легко выполните равномерное масштаби-
рование, которое может потребоваться при изменении размеров опорного изображения.
152 Глава 7- Методы

5. Теперь, когда опорное изображение имеет корректный размер, остается только


настроить значения двух оставшихся полей Center (Центрировать), чтобы поме-
стить рисунок точно на нужное место.
6. После этого можно сохранить сцену с расширением 0, указывая тем самым, что
это файл начальной настройки.
Если в сцене присутствует несколько опорных изображений, они легко пере-
крываются. Поместите их друг за другом, используя значение в поле Center (Цент-
рировать), соответствующее оси, направленной в окне проекции на наблюдателя,
Существует возможность легко настроить видимость опорных изображений.
Для этого производится поиск по ключевому слову imagePlane*., а затем по очере-
ди меняется значение атрибута displayMode для каждого из найденных элементов:
global proc tgllPO {
string $allPlanes[] = 'Is 'ImagePlane*'':
for (tthisPlane In Sailplanes) {
SdMode = Clnt) 'getAttr (thisPlane+ p .displayMode')';
int SnewMode = (int) ($dMode<l) * 3:
setAttr (SthlsPlane + '.displayMode') SnewMode:
}

Осталось только сопоставить этому сценарию клавиатурную комбинацию.

Планирование работы
Итак, в чем же состоит планирование?
Может показаться, что эту стадию допустимо пропустить, перейдя сразу к мо-
делированию. Однако опыт показывает, что несколько минут, потраченных на
выработку стратегии, могут стоить вам нескольких часов, потраченных впустую.

Основные этапы
Для начала требуется решить, каким способом будет создан объект — на основе
сеток полигонов, NURBS-поверхностей, иерархических поверхностей или же ком-
бинации перечисленных подходов. Для моделирования персонажей обычно луч-
ше подходят иерархические поверхности, так как персонажи имеют нерегулярную
структуру и подвергаются многочисленным деформациям. Здания проще всего
строить на основе NURBS-поверхностей, однако иерархические поверхности тоже
будут кстати. Впрочем, как мы уже выяснили в предыдущей главе, выбирать ме-
тод моделирования можно бесконечно.
Представив окончательный вид объекта, пару раз мысленно проведите моде-
лирование. Иногда для этого достаточно одного метода, а иногда результат проще
всего получить преобразованием одного типа поверхности в другой.
В качестве примера непосредственно получаемых моделей можно привести две-
ри магазинов; в то время как верхняя часть счетчика оплачиваемого времени пре-
вращается в иерархическую поверхность, только пройдя стадии NU RBS-поверхности
Планирование работы 153

и сетки полигонов. Кроме того, можно запланировать изменение формы изначально


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

Вспомогательные элементы
Лучше всего сканировать трехмерные объекты, так как в этом случае вы сразу по-
лучаете правильные пропорции модели, но, к сожалению, не у всех есть доступ
к сканеру. Тем, кто не в состоянии получить изображение модели в цифровом виде,
остается прибегнуть к грубой аппроксимации готового объекта. В любом из этих
случаев имеет смысл использовать опорные изображения, создавая полезные шаб-
лоны, на основе которых можно сконструировать модель.
Как правило, после получения трехмерного опорного изображения или моде-
ли-заместителя можно немедленно создать слой предварительной визуализации,
а также особый конструкционный слой, предназначенный для хранения полезных
элементов конструкции моделей после их использования. Так как именование слоев
ничем не отличается от именования объектов, необходимо как-то выделить их
в особую группу, например, с помощью определенного суффикса или префикса.
В большинстве случаев объекты, расположенные в этих слоях, находятся в режи-
ме Template (Шаблон), как показано на рис. 7.6. Исключением являются случаи, когда
их нужно использовать повторно.
Часто для создания трехмерной опорной геометрии прибегают к пересечению
поверхностей или к проецированию кривых на поверхность. Полученные таким
способом кривые используются в качестве шаблонов. Также они хорошо подходят
в качестве мишеней привязки при построении параметризованных трехмерных
кривых, хотя в этом случае сначала требуется выйти из режима Template (Шаблон),
Компоненты, которые можно объединить в одну группу по какому-либо при-
знаку (например, внутренний интерьер автомобиля), также имеет смысл разме-
щать в отдельных слоях. Поскольку каждый слой выделяется своим цветом, это
создает проблемы при использовании цветов для других целей, например для раз-
биения сетки или разделения поверхностей. По этой причине имеет смысл созда-
вать слои, только полностью разобравшись в структуре модели. Те же, кто не со-
бирается раскрашивать вспомогательные объекты, могут смело создавать слои на
любой стадии.
При моделировании промышленных объектов применяйте сетки. Привязка
к сетке управляющих точек делает процесс выравнивания кривых и поверхностей
делом достаточно тривиальным и в значительной степени решает проблему непре-
рывности. Если вам часто приходится работать с сетками, имеет смысл создать
отдельную полку для вызова сеток с различными параметрами (например, как пс -
казанонарис. 7.7),
154 Глава 7 • Методы

SEW IB'-: 5*.;Ы BrUtll -. йй 1« GiUI/IE trie 1 Л . ЙЛЛ-Ч' LltflnD

Рис. 7.6. Объект в режиме Template

Значки и текст:

Только текст:
кмгпг . • . Ui«4
ч*»- l;:ri@ti#|

Рис. 7.7. Два варианта полки для вызова сеток различного размера

По умолчанию Maya сохраняет положения и размеры в сантиметрах, но пользо-


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

Советы
Начинайте моделирование с тех объектов, процесс построения которых вы пред-
ставляете наиболее четко. Верхняя часть счетчика оплачиваемого времени явля-
ется крайне сложным объектом, зато его нижняя часть достаточно проста, поэтому
Проработка деталей 155

именно с нее можно начать. Моделировать автомобиль еще сложнее, но, начав с ко-
лес, можно вдохновить себя на дальнейшие подвиги.
Чтобы облегчить процесс создания крыла автомобиля, постройте нужные кри-
вые поверх опорного изображения в окне проекции Side (Вид сбоку), а затем отре-
дактируйте их таким образом, чтобы они соответствовали опорному изображению
в окне проекции Front (Вид спереди). Даже если вы не уверены в точной форме ка-
пота, наверняка известно, что он располагается по центру. Вы как будто склады-
ваете головоломку, и уже известная вам информация помогает заполнять пустую-
щие области.
Создание кривых с совместимой параметризацией облегчает дальнейшие опе-
рации с иерархическими поверхностями. Если вы собираетесь выполнить выдав-
ливание отдельного участка сферы, сначала смоделируйте сферу, состоящую из
нужного числа сегментов. Помните, что поверхности необычной формы обычно
требуют особой обработки, поэтому сначала приведите в порядок базовую топо-
логию, а затем уже приступайте к окончательной отделке,

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

Получение плавных границ


Большинство объектов имеет плавные границы. Практически не существует объек-
тов, края которых выглядят резкими, а число объектов, края которых являются
резкими, и того меньше. Проще говоря, мы привыкли видеть свет, отражающийся
от плавных границ, и именно такие блики требуется воспроизводить в ходе моде-
лирования.
Чтобы понять, как выглядят плавные границы, достаточно поработать с NURBS-
кривыми. Перемещением управляющих точек можно точно воспроизвести нуж-
ную форму NURBS-поверхности или иерархической поверхности.
Как вы знаете, близко расположив несколько точек, вы уплотните проведен-
ную через них кривую. При построении модели важно правильно выбрать количе-
ство управляющих точек и правильно их расположить. Чрезмерное количество
точек не только утяжеляет модель, но и затрудняет формирование гладких фраг-
ментов объекта.
Мы начнем с рассмотрения NURBS-поверхностей и различных способов рабо-
ты с ними, а затем перейдем к сеткам полигонов и иерархическим поверхностям,
Распределение управляющих точек
Две управляющие точки, даже расположенные непосредственно одна над другой,
не помогут создать острый пик из кривой второго порядка. В то же время три TOV-
156 Глава 7 • Методы

ки, расположенные подобным образом, сформируют отчетливый угол. Хотя ка-


жется, что эти два случая охватывают все возможные варианты кривизны, на са-
мом деле, это не так.
Проблема в том, что важен не только радиус кривизны, но и форма кривой.
Нужно учитывать положение кривой, ее направление, кривизну, а возможно и ско-
рость изменения кривизны. Уравнения кривых не имеют особого значения, глав-
ное — получить в результате требуемую форму.
СОВЕТ
Под термином «сопряжение» (fillet) подразумевается внутренний скругленный угол, в то время как
термин «скругление» (round) обозначает внешний скругленный угол. Операция скоса (bevel) позво-
ляет создать фаску вдоль кривой, полученной в результате пересечения поверхностей. Некоторые
используют эти термины взаимозаменяемо. Результаты сопряжения и скругления геометрически
идентичны, вто время как фаски явно отличаются от них. В то же время результат скоса сетки
полигонов идентичен результату сопряжения и скругления иерархической поверхности.

Для придания корректной формы большинству скругленных углов требуется


от двух до пяти точек. Решающими факторами являются форма соседних участ-
ков и плавность кривой.
Формирование угла с помощью пяти точек позволяет сохранить плоскую форму
соседних участков, локально связывает узловые точки угла и придает его внутрен-
ней части круглую форму. При этом вы можете легко поменять радиус угла путем
изменения положения управляющих точек относительно центральной точки.
Если объект имеет небольшие скругленные углы при протяженной поверхнос-
ти, для формирования этих углов можно использовать пять точек. А если стороны
объекта являются достаточно длинными, промежуточные управляющие точки
можно просто удалить, это никак не повлияет на вид модели. Используйте при-
вязку к сетке, чтобы обеспечить равномерное распределение трех управляющих
точек на каждом конце и выравнивание плоских сторон, как показано на рис. 7.8.
С углами на трех точках приходится работать чаще, особенно если в скругле-
ние вовлекаются протяженные участки. Это хорошо работает и в случаях, когда
угол нужно скруглить, не заботясь о точном радиусе кривизны. Смежные углы на
трех точках соединяются плоскостью (особенно если между ними были добавле-
ны промежуточные точки) с сохранением нужной кривизны углов. Радиус кри-
визны постепенно растет, и скругленная поверхность становится плоской. Впро-
чем, подобной формы можно достичь и при построении угла из пяти точек, но гра-
ница с прямым участком будет контролироваться немного хуже.
Большинство скругленных углов в рамках нашего проекта строится по трем
точкам. Особенно это касается архитектурных деталей.
Угол из двух точек может иметь плоские стороны только после создания до-
полнительных коллинеарных управляющих точек. Возможности регулировки ра-
диуса кривизны такого угла ограничены, а его масштабирование (в этом случае он
является скорее гиперболой) представляет собой достаточно сложную задачу,
Углы на четырех точках отличаются от двухточечных углов возможностью ре-
гулировки радиуса кривизны. Подбором интервалов между дополнительными
управляющими точками можно создать скругленный угол с постоянным радиу-
сом кривизны. Кроме того, пара смежных углов на четырех точках может быть со-
единена плоскостью.
Проработка деталей 157

«•; <;!«:«• -:, 6-M-uJ . ц*мч »У=тп|; ШИШ &""* ;("»i/W

Рис. 7.8. Варианты топологии сгругленных углов

Знание основных вариантов расположения точек поможет вам получить пра-


вильную топологию с первого раза.
Операция присоединения
При моделировании на основе NURBS-поверхностей создание гладких, скруглен-
ных границ между поверхностями может быть выполнено с помощью операции
присоединения. Поскольку при этом происходит слияние двух поверхностей в од-
ну, прибегать к данной операции можно только при гарантированном отсутствии
дальнейших проблем (например, связанных с зависимостью процедуры назначе-
ния материала от существующих параметров).
В большинстве случаев при соединении поверхностей с помощью команды Attach
Surfaces (Присоединить поверхности) выполняется сопряжение, при котором проис
ходит усреднение границ двух управляющих сеток, так как в группе Attach Method
(Метод присоединения) установлен переключатель Blend (Сопряжение). Для лучше-
го соединения краев поверхностей можно указать значение параметра Blend Bia;s
(Смещение сопряжения). Отличные от нуля значения используются, когда две по-
верхности имеют значительно различающуюся кривизну. Впрочем, в большинстве
случаев происходит равномерное сопряжение одной поверхности с другой, при это\:
удаляются управляющие вершины ребер и усредняются управляющие точки ка-
сательных.
158 Глава 7 • Методы

Эта операция не только устраняет любые разрывы (узловые точки поверхнос-


тей превращаются в одну внутреннюю узловую точку), но и выравнивает область
соединения. Соответственно, как показано на рис. 7.9, операция разъединения по-
верхности на две с последующим их соединением не приводит к воссозданию ис-
ходной поверхности.

« I i fc! ti <•• % &

ШЖ ""«•<•• ' мШШ "*»•"'

Две исходные кривые Место \


разрыва '\

Удаленные
управляющие точки
После разрыва /'Место \
f
(три кривые) повторного^ ^ Усредненные; ^
. соединения' управляющие, точки
Место
соединения

Посла соединения
(одна кривая)
''В этом месте';
кривая стала
более плоской Разрыв был закрыт
путем соединения

Рис. 7.9. Поведение кривых в процессе соединения

При использовании команды Attach Surfaces (Присоединить поверхности) обычно


не обойтись без вставки дополнительных узловых точек, чтобы ограничить эф-
фект изменения формы. В поле Insert Parameter (Параметр вставки) можно указать
долю первого интервала каждой поверхности, на которой создается узловая точка.
Если присвоить параметру вставки значение 0,1, новая узловая точка на длинном
интервале будет вставлена дальше, чем на коротком. Чтобы добиться равномерно-
го распределения управляющих точек на обеих соединяемых поверхностях, нуж-
но либо начать с приблизительно одинаковых по размеру интервалов, либо ком-
пенсировать разницу масштабов с помощью поля Blend Bias (Смещение сопряжения).
Команда Attach Surfaces (Присоединить поверхности) с неизбежностью объединя-
ет в новой поверхности все соотношения, существующие между узловыми точка-
ми обеих поверхностей. Чтобы избежать избыточной плотности результирующей
сетки, необходимо контролировать эквивалентность параметризации обеих поверх-
ностей.
Проработка деталей 159

Это проще всего сделать путем моделирования поверхностей набором одина-


ковых U- или V-кривых. Копирование исходных кривых с последующим измене-
нием их формы исключительно путем манипуляции управляющими точками по-
зволяет сохранять одинаковые интервалы между узловыми точками.
Существует еще один несложный способ сохранения однородности поверх-
ности вдоль соединяемых границ — применение команды Rebuild Surfaces (Пере-
строить поверхности). При этом нужно убедиться, что соединяемые поверхности
имеют одно ито же количество управляющих точек. Лучше сначала добиться
выполнения этого условия (путем удаления или вставки управляющих точек),
а затем осуществить равномерную перестройку, установив флажок Keep CVs (Со-
хранять управляющие точки).
В простом примере со счетчиком оплачиваемого времени (рис. 7.10) плавного
сопряжения удалось добиться настройкой смещения сопряжения, что позволило
скомпенсировать различную длину касательных.

< . .йТФ1 ?• •?•»*-

1. Соединение '.
. . симметричных;
- •ПОЛОВИНОК.

'., Соединение двух полос

Сглаженная граница соединения


(потребовалась вставка
дополнительных узловых точек).

Рис. 7.10. Пример соединения поверхностей при моделировании


счетчика оплачиваемого времени

Приблизительная оценка значения, вводимого в поле Blend Bias (Смещение со-


пряжения), осуществлялась с помощью соотношения В - (А + В) для интервалов
длины А и В соответственно. Затем происходило соединение поверхностей при
установленном флажке Insert Knot (Вставить узловую точку). Вы должны уметь пред-
160 Глава 7 * Методы

видеть результат, получаемый при различных значениях параметров Blend Bias (Сме-
щение сопряжения) и Insert Parameter (Параметр вставки).
Благодаря команде Attach Surfaces (Присоединить поверхности) удается добиться
непрерывности второго порядка у итоговой поверхности и устойчивости этой по-
верхности к деформациям, Если вам потребуются отдельные поверхности, доста-
точно выделить изопараметрическую кривую вдоль нужного шва и выполнить
разъединение.
Использование грубой силы
Группу команд сопряжения поверхностей лучше оставить для ситуаций, когда до-
биться совместимости границ NURBS-поверхностей достаточно сложно. Сопря-
жение обычно применяется для «тяжелой» геометрии, так как создание касатель-
ных этим методом сродни использованию грубой силы — смещение поверхностей,
создание кривых в каждой узловой точке, расположенной на их пересечении, лоф-
тинг и детализация с помощью промежуточных кривых, вплоть до достижения
нужного результата. Бот так выглядит основная идея метода.
Этот способ создания плавных границ избавляет вас от необходимости контро-
лировать параметризацию поверхностей. Для команд Freeform Fillet (Произвольное
сопряжение) и Fillet Blend (Смешанное сопряжение) совпадающие значения парамет-
ров могут дать хорошие результаты, но лучше всего использовать эти команды для
сглаживания нерегулярных пересечений между поверхностями. Иногда это един-
ственный способ получить плавную границу, не меняя форму соединяемых фраг-
ментов.
Недостатком операций сопряжения является зависимость от обрезки поверх-
ностей. Если история конструирования сохранена, можно будет анимировать и де-
формировать сопряженные компоненты, хотя сложности с изменением проекци-
онных координат на стыке могут оказаться непреодолимыми. Если история отсут-
ствует, имейте в виду, что на стыке поверхностей при деформации непременно
образуется разлом.
Другим недостатком этих команд является появление избыточных данных.
Сопряженные поверхности сами по себе быстро становятся достаточно «тяжелы-
ми», а кривые на месте стыка только добавляют данные.
Операции сопряжения подходят для статических объектов, для которых край-
не важна форма поверхности. Главное — не ждать от этих команд больше, чем они
могут дать.
Создание плавных границ вручную
Если требуется смоделировать объект с плоскими поверхностями, разделенными
одинаковыми скругленными краями (примером такого объекта может быть играль-
ная кость или дверь), в большинстве случаев проще всего выполнить сопряжение
этих поверхностей вручную. Лучше всего, когда плоские поверхности параллель-
ны координатным плоскостям.
Сопряжение требует тангенциальной непрерывности, поэтому один интервал
поверхности третьего порядка имеет все необходимые управляющие точки (мы
предполагаем, что параметризация поверхностей является совместимой). Соответ-
Проработка деталей 161

ственно, если поверхность позволяет создавать плавные границы вручную, этим


желательно воспользоваться.
Конструирование скругленных объектов не стоит начинать с куба, лучше брать
в качестве основы сферы, цилиндры или при необходимости окружности. Если
для вас округлость важнее простоты касательных, используйте примитивы, со-
стоящие из восьми интервалов, располагая их по окружности (то есть один ин-
тервал на 45°). Эти примитивы имеют достаточную округлость и обеспечивают
места отрыва в основных направлениях. Смысл подхода состоит в разделении
примитивов на части, а затем состыковки ребер путем лофтинга, как показано нл
рис. 7.И.

1. Разбиение сферы на часта


и размещение этих частей
в нужных местах.

Рис. 7.11. Создание объекта со скругленными участками вручную

Простой скругленный куб имеет 8 углов, 12 ребер и 6 граней. Его можно легко
создать из сферы.
1. Разделите сферу на восемь частей и поместите эти части в нужные места,
2. Выделите изопараметрические кривые? соответствующих ребер и методом лоф-
тинга создайте между ними еще 12 ребер.
3. Наконец, создайте шесть поверхностей между ребрами, чтобы завершить пост-
роение объекта.
162 Глава 7 * Методы

Усилия по созданию симметричных объектов можно минимизировать путем


зеркального отражения и копирования.
Подобную конфигурацию имеют многие модели. Иногда более сложные объек-
ты с плоскими концами (например, бордюр или части пожарного гидранта) мож-
но легко получить путем выдавливания вокруг каждого конца четырехугольного
скругленного профиля с последующим закрытием образовавшихся отверстий.
Разделяй и властвуй
Команда Attach Surfaces (Присоединить поверхности) для полигональных и иерархи-
ческих поверхностей, по сути, выполняет операцию объединения, после которой
следует привязка к точкам и слияние вершин. Если объект, который требуется де-
формировать, нельзя смоделировать па основе одной поверхности, лучше всего
воспользоваться командой Attach Surfaces (Присоединить поверхности).
Существует множество способов конструирования плавных границ у иерархи-
ческих поверхностей, но все опять-таки упирается в совпадение числа управляю-
щих точек у NURBS-кривой, В конце концов, за управление персонажем на гра-
ницах отвечают именно расположенные вдоль этих границ управляющие точки,
В вашем репертуаре должно быть несколько методов, позволяющих правильно их
разместить.
Вспомните, что в случае сеток четырехугольников иерархические поверхности
эквивалентны поверхностям, построенным на основе однородных В-сплайнов,
Благодаря этому можно создавать иерархические поверхности из полигональных
сеток, в свою очередь полученных преобразованием из NURBS-поверхностей. В ре-
зультате можно видеть, какой фрагмент поверхности подходит больше всего, а так-
же получать соприкасающиеся ряды точек, возникающие за счет выполнения опе-
раций третьего порядка над NURBS-поверхностью. Если эти ряды точек не нуж-
ны, их можно легко удалить, однако для создания гладких границ при сопряжении
двух полигональных сеток они просто бесценны.
Несмотря на наличие инструмента Split Polygon (Разбиение полигонов), позволя-
ющего поместить один или два ряда управляющих точек вдоль границы, авторы
предпочитают использовать сценарии facePathSplit Он проходит по рядам граней,
разделяя их пополам, пока не доходит до развилки. Иногда он допускает ошибки,
но их можно исправить вручную. А польза от данного сценария перевешивает воз-
никающие из-за него проблемы.
Так как сценарий facePathSplit делит грани только пополам — сходный инстру-
мент multiLoopSplit от Микеля Джанса (Mikkei Jans) имеет ползунок, — иногда для
получения нужного размера граней этот сценарий приходится запускать несколь-
ко раз, как показано на рис. 7.12.
Сопутствующие сценарии facePath и edgePath замечательно подходят для выде-
ления лишних граней с последующим их удалением. Они также полезны при вы-
полнении операции Extrude (Выдавливание).
Начиная с версии Maya 4.5, в меню Edit Polygons (Правка полигонов) появилась
команда Cut Faces Tool (Разрезать грани), которая позволяет упростить создание ря-
дов ребер, если эти ряды адекватно описываются планарным разрезом вдоль сетки
полигонов. Данная команда также дает возможность делить случайные участки
сетки.
Проработка деталей 163

,...,.
, - • т*. mm
I.'.., '., ., ... .,...,. ШШ
Ки..-^!/ j'-.-Jr > , . . ,J . . •..,-=.,. .,;.. , -,-,. .'. Г.Л.Ц1

Повторное

Рис. 7.12. Результат работы сценария facePathSplit

Создание кромки
На ранней стадии обсуждения сценария проекта мы упоминали о том, что герой
пытался отвлечь собаку с помощью палки. Идея не получила развития, тем не ме-
нее нельзя не отметить, что палка является замечательным объектом для испыта-
ния сценария edgePath. Ведь сценарий, как показано на рис. 7.13, позволяет легко
создать гладкие границы на сетке полигонов, имеющей форму трубки, и аккурат-
но закрыть отверстия на концах.
Чтобы закрыть конец трубки, состоящей из сетки полигонов, выполните следу-
ющие действия.
1. Для начала выделите ряд управляющих точек с помощью сценария edgePath,
щелкнув на одном из ребер. Затем выберите в меню Edit Polygons (Правка полиго-
нов) команду Extrude Edge (Выдавливание ребра), чтобы выдвинуть ряд управля-
ющих точек вперед. Рекомендуем использовать для этой цели стан дартные пре-
образования Maya. Ведь нам всего лишь требуется немного выдвинуть ребро.
2. Снова используйте команду Extrude Edge (Выдавливание ребра), но вместо пере-
мещения уменьшите масштаб ряда. Повторите эту операцию еще один или два
раза, доведя масштаб центрального ряда управляющих точек до 0 (или выпол-
нив их привязку к одной точке).
164 Глава 7 « Методы

•, - . . . • - - . ,
• . -..: • •
• . • •. , i >.. . . . .

Выделяются
и мпампби-
рунлен гори-
зонтальные
ребра

Выделяются и масштабируются
вертикальные

Рис. 7.13. Результат применения сценария edgePath

СОВЕТ
Чтобы уменьшить масштаб нескольких управляющих точек до 0, во-первых, выполните интерактив-
ное масштабирование, отмените его, а затем вставьте обратно отмененную строку с добавленными
вручную нулями; во-вторых, сгруппируйте управляющие точки в кластер, введите в поле Scale (Масш-
табировать) диалогового окна Channel Box (Окно каналов) значение 0, а затем удалите историю
редактирования, чтобы уничтожить кластер. Чтобы вам было проще, мы включили в компакт-диск
сценарий zeroScaleCVs, который решает указанную задачу.

Выполните слияние друг с другом всех вершин, оказавшихся в одной точке.


Если управляющих точек слишком много, имеет смысл уменьшить плотность
сетки, чтобы избежать сморщивания. После этого участок поверхности, при-
званный закрыть отверстие, будет готов.
То же самое можно сделать с NURBS-поверхностью, создав гладкую поверх-
ность на месте открытого конца, как показано на рис. 7.14.
1. Для начала нужно решить, сколько дополнительных рядов управляющих то-
чек вам требуется (обычно три или четыре). Для их создания воспользуйтесь
инструментом Insert Isoparams (Вставить изопараметрическую кривую).
2. Измените масштаб центрального ряда до 0. Это вовсе не означает закрытия от-
верстия или слияния управляющих точек в одну; вы просто пытаетесь объеди-
нить их в нужном месте.
Проработка деталей 165

!
- . •/:'•!••--••••..".'•.• - •••-,: -..' • • • • '• .

1. Начните q открытого конца цилиндра.

2. Вставьте узловые точки.

--г-- , ^ 3. Уменьшите масштаб верхнего ряда.>


4, Переместите
следующий ряд
до высоты полюса
^*"щл и Ломеняцте.
Яш егам^оитаб."

Рис. 7,14. Закрытие открытой трубки из NURBS-поверхностей

3. Измените масштаб следующего ряда таким образом, чтобы получить приемле-


мый наклон поверхности. В данном случае ряд точек должен лежать в одном
плоскости с полюсом и быть симметричным относительно него. Этого проще
всего добиться, поместив окружность подходящего размера и с нужным чис-
лом управляющих точек в область полюса и воспользовавшись привязкой уп-
равляющих точек поверхности к точкам этой окружности.
4. Выполните масштабирование остальных управляющих точек и переместите их
таким образом, чтобы получить нужную форму поверхности, закрывающей от-
верстие. Обычно используют три управляющих точки для формирования угл i
между трубкой и крышкой, но если требуется плавный переход между поверх-
ностями, можно обойтись двумя или далее одной точкой.
5. Можно поменять параметризацию поверхности на однородную в том направ'
лении, в котором происходило добавление интервалов, так как исходные зна-
чения параметров после операции вставки уже неприменимы. Не забудьте при!
этом установить флажок Keep CVs (Сохранять управляющие точки).
NURBS-поверхЕюсть, закрывающая отверстие, готова. Разумеется, тот же ре-
зультат легко можно получить с помощью второй поверхности и команды Attach
Surface (Присоединить поверхности). Для этого, как уже было описано ранее, нужно
166 Глава 7- Методы

продублировать границу поверхности, выделить ее управляющие точки, умень-


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

Формирование скоса
Итак, вы уже поняли, что существует множество способов добавить объектам скруг-
ленные ребра, но иногда при формировании ребер требуется не округлая граница,
а скос под углом 45°. Обычно подобная операция осуществляется плотниками,
когда необходимо совместить два куска дерева под прямым углом, Скосы присут-
ствуют в оконных рамах, краях стола и т. п. В любом случае вам пригодится ин-
формация о том, как сформировать скос.
Вот как можно создать оконную раму в виде единой поверхности.
1. Начните с создания кривой-профиля для вашей рамы. Профиль должен состав-
лять половину от ширины окна.
2. Методом вращения создайте NURBS-поверхность, состоящую из 16 интерва-
лов. Интервалов должно быть именно 16, так как вам нужно поместить по три
управляющих точки в каждый угол, плюс еще по одной в середине каждой сто-
роны. Позже эта поверхность превратится в раму.
3. Выделите области, выходящие под углом 45°. Обратите внимание, что если
смотреть перпендикулярно оси вращения, они выглядят укороченными. Что-
бы исправить ситуацию, воспользуйтесь операцией масштабирования.
4. Поменяйте масштаб выделенных управляющих точек, введя 1,0 для направле-
ния оси вращения и 1,4142 для остальных направлений, как показано на
рис. 7.15. Последнее значение призвано компенсировать укорачивание, кото-
рое точно описывается косинусом угла поворота. То есть для компенсации по-
ворота на 45° используйте величину I/cos 45° = 1/0,7071 = 1,4142.
5. Используйте клавиши со стрелками, чтобы выделить все четыре промежуточ-
ных каркаса (выделение каждого из них прибавляет 22,5°) на одной или на дру-
гой стороне. Выделив управляющие точки и зная угол их поворота, для ком-
пенсации дальнейших поворотов можно задействовать простое соотношение —
единица, деленная на КОСИНУС угла.
СОВЕТ
Клавиши со стрелками позволяют выполнять навигацию по сцене, объектам и иерархии сеток.

6. Выделенные каркасы должны быть ориентированы так же, как и углы, поэтому
измените их масштаб, как раньше, а затем поверните каждый из них на 22,5°.
Проработка деталей 167

Таким способом будет перекрыт первый набор каркасов, который вы помести-


ли в углы,

Щ - ' ^- •• я

-^ И й,-.« tea <:я:л г ,.* ...... . • .„vi (ЩИ • , - . : ! . L J -..

Измените масштаб
управляющих точек
угла, используя ••••
коэффициент
1/cos45° = 1,4142

Рис. 7.15. Промежуточные углы оконной рамы

7. Выделите четыре противоположных каркаса, сделав два шага в любом направ-


лении, затем измените их масштаб на ту же величину, что и на предыдущем
этапе. Однако повернуть их нужно в противоположную сторону (они дополнят
прежние каркасы, что приведет к появлению острых углов),
8. Напоследок отделите перекрывающиеся между собой каркасы в углах на вел] [-
чину некоторого «радиуса». Можно легко по очереди выделять перекрываю-
щиеся ряды, перемещаясь по периметру сетки, и смещая их. Окончательный
вид оконной рамы показан на рис. 7.16.
Для регулировки размера рамы достаточно выделить управляющие точки на
каждой стороне и переместить их. Рама очень проста, имеет гладкие границы и точ-
ную форму.
Существуют другие подходы к моделированию рамы, например обрезка углов
или создание 16-ти кривых и лофтинг замкнутой поверхности, но знание описан-
ного подхода, основанного на прикладной тригонометрии, может оказаться весь-
ма полезным при моделировании.
168 Глава 7 • Методы

- 1
"-. I ,a * | ;r> $ *. <*, & H
...
" ' '
- j

Рис. 7.16. Оконная рама, состоящая из одной поверхности

Создание впадин и выступов


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

Туннелирование
Сквозное отверстие в объекте можно получить различными способами, в зависи-
мости от формата модели, ее назначения и требуемой точности формы. Рассмот-
рим недостатки и достоинства различных подходов.
Создание впадин и выступов 169

Отверстия в NURBS-поверхностях
Обычно при создании отверстия в NURBS-поверхности нужно, чтобы оно есте-
ственно интегрировалось в поверхность. То есть конструировать объект нужно
таким образом, чтобы элементы одной стороны отверстия соответствовали эле-
ментам другой стороны. Как правило, это означает, что эти конструкционные эле-
менты параметрически одинаковы с обеих сторон (вопросы параметризации рас-
сматриваются в разделе «NURBS-поверхности» главы 6).
В качестве простейшего примера в данном случае можно взять тор. Разуме-
ется, модель тороидальной формы вовсе не обязана выглядеть, как баранка. В ча-
стности, подобную топологию имеет оконная рама, рассмотренная в предыду-
щем разделе. Если модель имеет только одно отверстие без дополнительных
деталей, которые нужно внедрять в поверхность по периметру этого отверстия,
ее можно создать методом вращения поверхности нужной формы, как показа-
но на рис. 7.17.

т -,.;-..

т ••"'••
-. ..г^^

и,.. • • ':•

' У!ГТ:ГЗ;. Е •
. ,
".
..

5CZL
Ь*Й»м*"*й

Рис. 7.17. Модель, имеющая тороидальную топологию

Недостатком моделей, состоящих из единой NURBS-поверхности, является


прямоугольная природа управляющих точек. Это означает, что каждое парамет-
рическое направление будет содержать максимальное количество деталей сетки,
170 Глава 7 • Методы

необходимое для построения наиболее сложных участков. Крайние проявления


данного эффекта можно видеть в модели головы человека, созданной из единой
поверхности, которая начинается со рта, охватывает голову и в конце спускается
на шею (рис. 7.18). Единая поверхность гарантирует непрерывность модели при
деформациях, но работа с ней может стать настоящим кошмаром из-за большого
«веса» сетки.

,
.

Рис. 7.18. Модель человеческой головы, полученная


из единой NURBS-поверхносги

Обратите внимание, что подобные модели могут очень напоминать тор, хотя
закрыты только с одной стороны. Форма внутреннего отверстия (проходящая че-
рез горло) тесно связана с формой внешнего отверстия (внешняя сторона шеи).
Если есть возможность управлять подобной связью, модель с отверстием, создан-
ная из единой поверхности, является весьма привлекательной.
Отверстия в сетках полигонов
Тороидальную топологию достаточно легко конструировать в случае полигональ-
ных и иерархических поверхностей. 11ужно только убедиться в том, что форма раз-
ных концов тоннеля более-менее одинакова и что форма границ может настраи-
ваться для придания тоннелю желаемой формы.
Создание впадин и выступов 171

ПРИМЕЧАНИЕ
Инструмент Make Hole (Сделать отверстие) не обеспечивает визуальной связности отверстия и ок-
ружающих его полигонов, но может лишить вас доступа кряду важных управляющих функций,
особенно если сетки полигонов используются для конструирования иерархических поверхностей.
Именно по этой причине авторы не рекомендуют применять этот инструмент,

Например, при моделировании традиционной палитры художника, как пока-


зано на рис. 7.19, в полигональной модели можно легко создать отверстие для бол i>-
шого пальца.

<**•• ='?<*'"«- ^ I V& 'Ы*&



^^
. . .

- • • .

Рис. 7.19. Создание отверстия в сетке полигонов

1. Убедитесь, что одна или несколько граней верхней полигональной сетки соот-
ветствует одной или нескольким граням нижней сетки.
2. Выделите и удалите эти грани,
3. Используйте инструмент Append to Polygon tool (Присоединение к полигону), что-
бы создать грани на боковых сторонах отверстия,
4. Используйте инструмент Split Polygon (Разбиение полигонов), чтобы создать вок-
руг отверстия все необходимые детали,
Число отверстий, которые вы можете получить, определяется плотностью по-
лигональной сеткн, поэтому у вас нет нужды ограничиваться тороидальной тслю-
172 Глава 7* Методы

логией. Чтобы сформировать стенки тоннеля, нужна одинаковая форма границ


отверстия на обоих концах.
Иерархические поверхности во многом ведут себя как NURBS-поверхнос-
ти, поэтому полигональные сетки, определяющие их форму, будут выглядеть
подобно соответствующим NURBS-сеткам. При создании круглого отверстия
используйте то же самое количество и местоположение вершин полигона, что
и в случае круглого отверстия в NURBS-поверхности. То есть отверстие в по-
лигональной сетке из грани с четырьмя вершинами не будет круглым, в то вре-
мя как отверстие из грани с восемью вершинами уже предоставляет шанс вос-
создать нужную форму.
Пленарные отверстия
NURBS-модели с большим количеством отверстий необходимо конструировать
из нескольких поверхностей. Это наиболее частый случай для подобных моде-
лей, и он полностью соответствует описанной выше технике для полигональных
сеток.
В рассмотренном случае с традиционной палитрой художника объект легко
воссоздается в виде NURBS-модели вне зависимости от требуемого количества
отверстий. Это связано с тем, что верхняя и нижняя части палитры являются пла-
нарными (плоскими).
При создании тоннелей между планарными NURBS-поверхностями эти поверх-
ности могут быть воссозданы после завершения работы над отверстием, как пока-
зано на рис. 7.20.
1. Создайте внешнюю границу палитры, например, тиснением профиля вокруг
выбранного пути.
2. Тем же способом постройте внутреннюю границу, убедившись, что и верхняя
и нижняя плоскости отверстия лежат в одной плоскости с внешней границей
поверхности,
3. При наличии четкой линии между границей отверстия и границей палитры
можно создать верхнюю и нижнюю поверхности с помощью инструмента Loft
(Лофтинг).
СОВЕТ
Если в результате лофтинга имеет место скручивание, нужно либо изменить направление одной из
кривых, либо воспользоваться инструментом Move Seam (Переместить стык) и ориентировать кри-
вые таким образом, чтобы совпали эквивалентные узловые точки. Совпадение узловых точек кри-
вых происходит в определенной пропорции, поэтому поверхность всшсе не обязана формироваться
по кратчайшему расстоянию между ними.

4. При отсутствии четкой границы (или же в случае нескольких отверстий) нуж-


но поделить конструкционные кривые для верхней и нижней поверхностей на
сегменты с четкими линиями, которые могут быть соединены между собой ме-
тодом лофтинга. В противном случае ваша поверхность будет пересекаться или
перекрываться с другими поверхностями или сама с собой. Используйте инст-
румент Loft (Лофтинг) для формирования поверхностей, закрывающих все пус-
тые области.
Создание впадин и выступов 173

-':•-' ff'lil I "


- . . . • ; ; j • . 1, | -. .,-] s ! :

Поверхности/кривые
ра;з6иты так, чтобы было
удобно управлять
соответствием деталей

,,.,.,, ..„.:..

Рис. 7.20. Создание планарного NURBS-OTsepcnifl

СОВЕТ
Для заполнения отверстий в недеформируемых плоских поверхностях применяются поверхно:ти
первой степени. Их плотность в два раза меньше плотности кубических поверхностей, что в даль-
нейшем облегчает процесс редактирования.

Пленарные NURBS-отверстия всегда можно закрыть поверхностью с сеткой


подходящей сложности, полученной методом лофтинга. Так как все поверхности
параллельны друг другу, после визуализации не будет видно никаких швов в мес-
тах стыка. Впрочем, этот подход имеет свои недостатки. Во-первых, деформация
полученных данным способом поверхностен обязательно приведет к появлению
разлома. Во-вторых, усложняется назначение материалов, так как поверхность не
имеет единого параметрического пространства,
Непланарные отверстия
Для непараллельных NURBS-поверхностей иногда (но не всегда) также можно
создать отверстие из поверхностей, плавно соединяющих обе стороны отверстия,
В этом случае используется тот же подход, что и ранее. При этом дополнителы ое
внимание уделяется контролю за непрерывностью поверхности.
Многое зависит от ориентации противоположных поверхностей. В некоторых
случаях сначала требуется создать границы поверхностей и соединить их ме:'о-
174 Глава 7 • Методы

дом лофтинга, как и в предыдущем случае, но установив в группе Surface Degree


(Кривизна поверхности) переключатель Cubic (Третей степени). В других случаях
можно начать с противоположных поверхностей, затем создать отверстие (по
частям или сразу), а потом обеспечить непрерывность с помощью специальных
команд.
СОВЕТ
Во всех случаях достичь оптимального результата можно путем совмещения парных узловых точек
таким образом, чтобы при создании намеченных деталей сохранить плавность линий. По возможно-
сти используйте однородную параметризацию, при которой соответствие узловых точек полностью
предсказуемо. Вы можете исследовать значения в узловых точках путем выделения точек редакти-
рования и просмотра полученного результата в диалоговом окне Script Editor (Редактор сценариев)
или сделать параметризацию однородной с помощью инструмента Rebuild Surfaces (Перестроить
поверхности).

Ухабы и колдобины
Не все отверстия должны быть сквозными. Многие из них представляют собой
впадины, произвольно расположенные внутри других поверхностей и имеющие
отчетливое дно. Может быть и наоборот, то есть могут существовать возвышения,
которые с точки зрения топологии аналогичны впадинам.
Для моделирования ухабов и колдобин подходят многие описанные выше при-
емы. Здесь же мы детально поговорим о двух наиболее распространенных из них:
NURBS-сопряжении и логических операциях с полигонами.
Сопряженные отверстия
Основным достоинством сопряженных отверстий является их независимость от ог-
раничений, налагаемых формой обрезаемых поверхностей. До тех пор пока локаль-
ный радиус сопрягаемой поверхности меньше радиуса сопряжения, вы можете создать
хорошее углубление. Подробную информацию по этому поводу можно найти в разде-
ле «Использование грубой силы» в середине этой главы.
ПРИМЕЧАНИЕ -
Радиус кривизны является мерой локальной кривизны кривой или поверхности. Правильная окруж-
ность или сфера имеет постоянную кривизну в любой точке, в то время как кривизна спирали сни-
жается по мере удаления от ее центра. Радиус кривизны соответствует радиусу окружности, кото-
рая точно совпадает с кривой в выбранной точке,

Для получения поверхности с постоянным радиусом кривизны используйте


круговое сопряжение. Если же требуется указать сопрягаемые границы, больше
подойдет свободное сопряжение. В последнем случае иногда можно найти способ
непосредственно задействовать границы поверхностей и вручную сконструировать
поверхность, способную выдержать деформацию.
Хотя обрезанные поверхности требуют особого внимания при визуализации
(из-за возможных разломов вдоль границ), они хорошо подходят для создания та-
ких деталей, как ухабы и колдобины.
Создание впадин и выступов 175

ЗНИМАНИЕ
Избегайте построения поверхностей непосредственно между обрезанными границами, полученны-
ми в результате сопряжения, потому что они будут иметь слишком большую плотность точек (э~о
связано с тем, что границы обрезанных поверхностей параметрически не связаны друг с другом),
а стык между прилегающими поверхностями будет столь же плотным, что и в случае стандартных
обрезанных поверхностей.

Моделирование отпечатка ноги к грязи или на снегу, щели для монеты, рель-
ефного узора протектора или пряжки туфель выполняется методом сопряжение,
которое прекрасно подходит для создания впадин и выступов.
Формирование отверстий с помощью
логических операций
Для сеток полигонов аналогами операций сопряжения NURBS-поверхностей яв-
ляются логические операции. Они позволяют легко добавлять или удалять фраг-
менты полигональных поверхностей.
ПРИМЕЧАНИЕ -
Для NURBS-поверхностей также существуют логические операции, но использовать их не рекомен-
дуется, так как они приводят к появлению не округлых, а резких границ на стыках поверхностей.
Они могут оказаться полезными для быстрой сборки опорного объекта при проектных расчетах, но
их вряд ли стоит применять для получения окончательной геометрии.

Для извлечения из поверхности фрагментов и образования отверстий замеча-


тельно подходит команда Difference (Вычитание), а для получения рельефа— ко-
манда Union (Объединение).
Логические операции определяют, какую поверхность сохранить, а какую уда-
лить, руководствуясь направлением нормалей, поэтому очень важно правильное
расположение сетки. Для начала нужно обеспечить одинаковое направление всех
нормалей. Это можно сделать с помощью команды Edit Polygons > Normals > Conform
(Правка полигонов > Нормали > Согласовать). Затем, если вас не устроил результат
логической операции (например, как показано на рис. 7.21), можно попытаться
изменить направление нормалей с помощью команды Edit Polygons > Normals > Reverse
(Правка полигонов > Нормали » Перевернуть).
Нужно помнить, что результат операции Difference (Вычитание) зависит от оче
редкости выделения поверхностей. Объект, выделенный вторым, вычитается иа
объекта, выделенного первым. Поэтому при получении неожиданного результата
можно попытаться изменить очередность выделения.
СОВЕТ
Можно легко переместить любой выделенный объект в конец списка выделенных объектов, выбрав
его в меню Object (Объект) диалогового окна Channel Box (Окно каналов).

Логические операции с сетками полигонов приводят к простому пересечению


их граней, а затем полученный результат сохраняется в виде одной сетки. Если вы
собираетесь использовать сетку для получения иерархической поверхности, нуж-
но убрать лишнее, так как грани вдоль границы пересечения оказываются связан-
ными произвольным образом.
176 Глава 7 • Методы

Рис. 7.21. Неудачный результат вычитания

Для начала требуется изменить ребра каждой из сеток так, чтобы они распола-
гались по возможности напротив ребер противоположной сетки. Это гарантирует,
что непарные короткие сегменты будут находиться достаточно близко друг к дру-
гу. Затем внешние ребра удаляются с помощью команды Collapse (Свернуть) меню
Edit Polygons (Правка полигонов) путем небольшого перемещения вершин, При этом
надо пытаться сделать так, чтобы вершины с одной стороны от границы пересече-
ния совпадали с вершинами с другой стороны. В результате получается чистая
и привлекательная граница вокруг отверстия или проекции.
При моделировании объектов для нашего проекта несколько раз потребуется
применение логических операций к сеткам полигонов, так что вам предстоит по-
знакомиться с ними более детально.

Заключение
Успех моделирования во многом определяется вашим опытом в решении тополо-
гических проблем и в повышении эффективности. Чем дольше вы работаете с Maya,
тем чаще будете обнаруживать, что выполняете моделирование знакомыми вам
методами. Это приведет к ускорению процесса создания эффектных моделей. Вам
Заключение 177

придется сталкиваться как с проблемами общего плана, так и с достаточно нетри-


виальными задачами, но четкое осознание возможностей Maya позволит вам ре-
шить даже самые сложные из возникающих проблем,
Выявление характерных ситуаций и выработка стандартных подходов к их ре-
шению даст вам возможность уделять больше внимания деталям и творческим ас-
пектам проекта.
8 Наборы объектов

Для начала в любом проекте требуется определить местоположение объектов и пер-


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

Подготовительные операции
Создание сложного набора объектов может показаться чрезвычайно трудной зада-
чей. Требуется сконструировать дюжины (а то и сотни или даже тысячи) моделей,
каждую из которых нужно установить на свое место и притгть ей определенный
вид, Обычно любая модель должна в чем-то незначительно, а в чем-то очень силь-
но отличаться от своих соседей. Страшно даже подумать о подобной задаче.
К счастью, люди обладают логическим мышлением. Любую проблему можно
рассмотреть с различных сторон, найти полезные шаблоны и спланировать реше-
ние, постепенно двигаясь от простого к сложному. Разработка набора объектов вне
зависимости от его назначения (это может быть как одна комната, так и целый
город) обычно осуществляется «сверху вниз», Именно таким способом будет со-
здан набор объектов для проекта «Место для парковки».

Планирование
Набор объектов, который нам требовалось получить, определялся раскадровками,
нуждами книги и нашими возможностями. Из-за ограниченности ресурсов мы
Подготовительные операции 179

решили остановиться на минимальном количестве объектов, которого было бы


достаточно для воплощения сценария в жизнь и иллюстрации технических мо-
ментов.
Все началось с изучения раскадровок для поиска необходимых элементов. Вы-
яснилось, что нужно смоделировать улицу, тротуар и магазины. Так как контро-
лер приближается издалека, улица должна быть достаточно длинной, чтобы Кру-
тан успел вдоволь намучиться с собакой. Пытаясь выжать максимум из минималь-
ного набора объектов, мы решили, что двух кварталов должно хватить.
Некоторое время поразмышляв над проектом, мы сделали в Photoshop черне-
ной набросок, демонстрирующий расположение основных элементов (рис. 8-1).

Центральная улиц
Главные
здания

Магазин Зоомагазин
игрушек

н Н т
Вода
Главная улица

Рис. 8.1. План расположения объектов в проекте «Место для парковки»

Подобное расположение объектов позволяет нацелить источник света в нуж-


ном направлении, обойтись небольшим числом зданий и прочих деталей город-
ского пейзажа, а также освободить место для демонстрации неба и водяной струи,
которая будет смоделирована с помощью модуля Fluid Effects (Эффекты течения)
Пожалуй, важнее всего контролировать горизонт, так как набор объектов будет
располагаться на улице. Итак, для нашего проекта был принят именно этот план.

Стандартизация
Для успешной совместной работы требовалось прийти к соглашению и по повод\
ряда других деталей.
Для начала было решено, что ось Z будет направлена вверх. Для проектов, вы-
полняемых исключительно с помощью Maya, совершенно не важно, какая именно
ось выступит в этой роли. Нужно всего лишь, чтобы члены группы заранее при-
шли к соглашению по этому поводу. Тогда в дальнейшем не потребуется приво-
дить персонажей, отдельные объекты и их наборы в соответствие друг с другом.
Выбор вертикальной оси имеет большое значение при обмене данными с дру-
гими приложениями. Разумеется, если вы уже вложили время и силы в построе-
180 Глава 8 • Наборы объектов

ние моделей с неверно выбранной осью, для успешной передачи данных достаточ-
но просто сгруппировать их и повернуть группу на 90° вокруг оси X.
Затем было решено, что все модели будут создаваться в соотношении один к од-
ному, то есть в натуральную величину. В Maya можно легко перейти от одних еди-
ниц измерения к другим (например, от дюймов к сантиметрам), поэтому подобное
решение не накладывает никаких ограничений. Вы можете использовать футы при
построении зданий и дюймы при проработке архитектурных деталей, меняя ли-
нии сетки в соответствии со своими нуждами.
СОВЕТ
При разработке моделей (таких как наборы объектов) с очевидными размерами имеет смысл со-
здать полку с кнопками для выбора различных вариантов сетки и различных единиц измерения
(см., например, рис. 7.7 в главе 7). Это облегчит и ускорит смену единиц измерения и координатной
сетки.

Безоговорочно было принято решение об ориентации объектов относительно


сторон света, Если глядеть сверху, то север находится наверху, а запад— слева,
Соответственно, глядя на сцену спереди, мы смотрим на север.
Подобный выбор легко сделать, если над элементами сцены работает один че-
ловек (а именно так было в нашем случае). Однако если наборы объектов создает
целая команда, а другие конструкторы добавляют отдельные объекты и персона-
жей, вряд ли стоит удорожать проект, ориентируя модели перед их применением.
Напоследок требовалось определить начало координат и расположение объек-
тов в нашем наборе. Хотя каждая модель создается в своем собственном простран-
стве, для набора было заранее зарезервировано место. Нам оставалось только прий-
ти к соглашению по поводу ракурсов съемки.
Так как все действия производились в относительно небольшой области, рас-
положить оси X и Y было достаточно легко. Мы центрировали плоскость XY от-
носительно места действия. Так как ребро тротуара в передней части стоянки удоб-
но делит сцену вдоль оси Y, именно вдоль него мы расположили точки с коорди-
натой Y = 0, то есть плоскость XZ. Место для плоскости YZ было выбрано в цент-
ре стоянки. Положение нулевой координаты вертикальной оси Z было менее оче-
видным.
Для начала было решено не связываться с наклонными улицами и тротуарами
(реальные улицы и тротуары имеют небольшой наклон для стока воды), и мы сде-
лали их совершенно плоскими. В конце концов, в наши цели не входило создание
полностью реалистичной сцены. Наклонная улица затруднит анимацию автомо-
биля, причем эти дополнительные усилия никак не повлияют на общий замысел.
Затем мы обнаружили, что для нулевого значения координаты Z есть несколь-
ко возможных мест. С одной стороны, персонажи большую часть времени прово-
дят на тротуаре, поэтому достаточно разумно поместить плоскость XY на этом уров-
не. Благодаря вертикальному положению большинства персонажей их анимация
не составит проблемы, однако все объекты, находящиеся на улице, будут иметь
отрицательное значение координаты Z.
С другой стороны, если опираться на положение автомобилей, можно было бы
поместить плоскость XY на уровне улицы. В результате и улицы, и здания будут
иметь положительное или нулевое значение координаты Z.
Подготовительные операции 181

Наконец, можно поместить плоскость XY на уровне «моря», расположенного


к западу от места действия. В этом случае значения координаты Z всех остальны х
объектов будут положительными.
Так как действие происходит вдалеке от воды (впоследствии нам придется ре-
шать вопрос об изменении наклона пляжа), мы отказались от последнего вариан-
та. Для простоты был выбран второй вариант с добавлением необходимого смеще-
ния при переносе действия на тротуар.
Выбор ориентации объектов для данного проекта был достаточно простым, но
в других проектах над этим, возможно, пришлось бы поломать голову.
ПРИМЕЧАНИЕ
Термины «набор», «фрагмент» и «сцена» очень часто применяются не по назначению, поэтому
в большинстве случаев можно только надеяться, что их смысл понятен пользователю. Обычно под
набором объектов понимается некое их местоположение, фрагмент означает одно непрерывное
событие, заснятое на камеру (то есть последовательность нескольких кадров), а сцена — группу
фрагментов, объединяющую различимые события, из которых складывается вся история. Разумеет-
ся, в Maya разница между этими терминами слегка размыта. Например, файлы называют сценами
[что может быть как корректно, так и не очень, в зависимости от того, содержит файл один или
несколько фрагментов). Так как наша история состоит только из одной сцены, мы будем использо-
вать термин «сцена», поясняя, если он будет применяться в другом значении.

С полностью изолированными друг от друга наборами объектов можно рабо-


тать по отдельности. Однако в случае больших и взаимозависимых наборов край-
не важно определить абсолютную точку отсчета (и проверить, что отдельные фраг-
менты совмещаются нужным образом). Недостаток внимательности в этом случае
приводит к дополнительным усилиям на состыковку несовпадающих элементов
и изменение положения персонажей и второстепенных объектов.
Для гарантированного совпадения элементов важно правильно выбрать еди-
ницы измерения. Смена единиц измерения вполне допустима при редактировг-
нии отдельных элементов, но при соединении объектов набора Друг с другом же-
лательно использовать заранее выбранные единицы измерения и привязки к сет-
ке. Хотя существуют и другие способы точного размещения соседних объектов,
намного проще следовать стандартам,
В нашем случае при моделировании набора объектов в качестве единиц изме -
рения будут использоваться дюймы в соответствии со стандартами, принятыми
в США. В основном это повлияет на высоту тротуаров (и, соответственно, на зна-
чение координаты Z персонажей), впрочем, об этом нужно будет помнить при
создании элементов набора, их копировании и размещении относительно друг
друга.

Обмер
Мы настолько привыкли к улицам, тротуарам и зданиям, что создается впечатле-
ние, будто их можно смоделировать без лишних хлопот. Однако вскоре обнаружи-
вается, что простота этих объектов кажущаяся и, в частности, связана с их окру-
жением. Точно так же, как полная луна или заходящее солнце выглядит больше..
чем обычно, масштабы улиц, тротуаров и зданий могут быть обманчивыми. Кроме
182 Глава 8 • Наборы объектов

того, при восстановлении конструкции по памяти можно упустить множество мел-


ких деталей.
Авторы моделировали подобные объекты множество раз, но обычно делали это
по чужим инструкциям, которые забывались сразу же после завершения проекта.
Поэтому для получения реальных данных мы посетили центральные районы го-
рода Петалума в штате Калифорния, предварительно вооружившись рулеткой
и блокнотом.
Вопреки всему нашему опыту некоторые предположения оказались совершен-
но неверными. Например, выяснилось, что высота тротуаров составляет не 8, как
мы думали, а 6 дюймов, а ширина — не 3, а 4 фута. Аналогично водосток на краю
бордюра имеет ширину не 1, а 2 или даже 4 фута. Таких примеров можно привес-
ти множество,
Не ленитесь обмерять реальные объекты, даже если результаты замеров будут
сведены «на нет* стилистическим эффектом. Иногда наши усилия приносят пло-
ды, а иногда они оказываются напрасными. Какова высота двери? Насколько вы-
соко расположена дверная ручка? Каков ее размер? Что находится у основания
стены? А сверху? Насколько глубоко в стенном проеме располагаются окна и две-
ри? Для ответа на эти вопросы достаточно произвести необходимые измерения.
Разумеется, для многочисленных мелких элементов современного мира суще-
ствуют стандарты. Некоторые из них можно найти в Интернете, другие в книгах,
посвященных архитектуре. Источниками информации могут служить также ката-
логи соответствующей продукции. Используйте их, если вам лень обмерять объекты
самостоятельно.
Небольшая ошибка в измерениях не вызовет фатальных последствий, а вот
многочисленные неточности дадут в результате совершенно неверную конструк-
цию, даже если зритель и не сможет сразу сказать, что в ней не так. Мы ничего не
имеем против карикатур, но они должны отталкиваться от реальности. Если пер-
сонаж берется за дверную ручку, которая располагается на 6 футов выше, чем нуж-
но, страдает вся анимация. Берите пример с Пикассо, который достиг мастерства
в классическом изображении объектов, а только потом нашел собственный стиль,

Макетирование
Для начала имеет смысл создать простой макет сцены. Постройте его для нагляд-
ности, не перегружая излишним количеством деталей. Ваша задача — сориентиро-
ваться и определить соотношения между отдельными объектами.
Средний городской квартал имеет протяженность около 300 футов (на одну
милю приходится примерно 18 кварталов), хотя возможны варианты (протяжен-
ность кварталов в центре Чикаго составляет от 330 до 660 футов). Ширина улицы
колеблется от 10 до 12 футов. Так как моделировать дополнительные здания нам
не нужно, предположим, что наши кварталы имеют протяженность 300 футов и раз-
делены улицами, ширина которых составляется 50 футов. Для укладки тротуара
мы использовали квадратные блоки со стороной 4 фута, поэтому, чтобы облегчить
задачу, предположим, что радиус кривизны бордюра на углах улиц равен ширине
тротуара, который в этом месте состоит из трех квадратов, то есть имеет ширину
12 футов.
Подготовительные операции 183

При необходимости эти размеры можно поменять. Но на данный момент нам


нужно получить простой шаблон, который впоследствии будет использоваться в ка-
честве опорного слоя.
СОВЕТ
Размещение опорной или конструкционной геометрии в отдельном слое помогает избежать пере-
полнения сцены объектами. В то же время это позволяет сохранить простоту доступа к необходи-
мым элементам.

Сначала собранная информация о городских улицах была сведена до необхо-


димого минимума. Начав с плоскости земли, мы, как показано на рис. 8.2, помес-
тили параллелепипеды на места будущих тротуаров и зданий, затем добавили па-
раллелепипеды меньшего размера, соответствующие дверям и окнам. Для получе-
ния красивых плавных углов использовались четвертинки цилиндра с радиусом
12 футов и поверхностью сверху.

Рис. 8.2. Исходный макет для проекта «Место для парковки»

Подобные примитивные элементы позволяют быстро оценить масштабные со-


отношения в сцене и служат шаблонами для окончательных моделей. Чтобы дол-
го не возиться, вы можете загрузить файл InitialMockup.ma, расположенный в папке
ChapterOS прилагаемого к книге компакт-диска,
184 Глава 8 • Наборы объектов

Чтобы получить хороший обзор сцены, мы для начала установили камеры в по-
гшцни, приблизительно соответствующие указанным в раскадровках, и посмотре-
ли на полученный результат. Для фиксации этих позиций была использована ко-
манда New Bookmark (Создать закладку). После завершения компоновки сцены за-
фиксированные проекции, показанные на рис. 8.3, послужили отправными точка-
ми для каждого фрагмента.
Для таких объектов, как пожарный гидрант, счетчик оплачиваемого времени,
уличные фонари, деревья и автомобили, использовались простые заместители
в форме параллелепипедов, что позволило приблизить сцену к реальности и по-
лучить представление о масштабе объектов.

Рис. 8.3. Предварительное расположение камер

СОВЕТ
Располагайте заместители там же, где будут находиться готовые модели, заменяя их по мере созда-
ния последних. Например, если счетчик оплачиваемого времени должен находиться в начале коор-
динат, там же следует поместить его заместитель. Это позволит в дальнейшем осуществить непос-
редственную замену объекта и избавит вас от необходимости компенсировать разницу в простран-
стве для моделирования.
Обустройство территории 185

Для оценки общего стиля сцепы были смоделированы дополнительные архи-


тектурные детали. Отсутствие упоминаний о них в раскадровках дало возможность
на ранних стадиях обойтись достаточно примитивным дизайном.
Начальные результаты были достаточно обнадеживающими. Мы создали ра-
бочий и визуально интересный прототип, призванный стать шаблоном для буду-
щих моделей. Некоторые заместители мы планировали использовать и в дальней -
шем, если окончательные модели окажутся слишком «тяжелыми» и будут тормо-
зить работу в интерактивном режиме.

Обустройство территории
Постройка двух городских кварталов начинается с прокладки тротуаров. С ними
будут связаны остальные объекты (мы уже знаем все существенные элементы бор
дюров и водостоков), поэтому приступим к работе примерно так же, как при рисо-
вании картины (там обычно сначала рисуют контуры, а потом их раскрашивают)

Бордюры
Как следует из наших измерений, бордюр имеет шесть дюймов в высоту и шс-сп.
дюймов в ширину с двухфутовыми водостоками. Возле швов имеется закругле-
ние радиусом в четверть дюйма и закругление радиусом в один дюйм на передней
грани. Швы имеют ширину три четверти дюйма и глубину в полтора дюйма (хотя
частенько они бывают заполнены затвердевшим раствором). Так как бордюры в на-
шем проекте будут располагаться близко к камере, без моделирования швов ш>
обойтись.
Упражнение 8.1. Создание бордюров и водостоков
Перед тем как приступить к конструированию, убедимся, что макет находится в от-
дельном слое. Слои обычно применяются для сортировки геометрии по типам
поэтому был создан и активизирован слой Curbs (curb — бордюр).
Для получения кривой сечения для бордюров желательно использовать че-
тырехдюймовую сетку (убедитесь в наличии привязок управляющих точек к сет-
ке). В данном случае нет необходимости точно указывать радиус кривизны или
рисовать идеальную окружность, поэтому воспользуйтесь для конструирования
NURBS-кривой третьего порядка, как показано на рис. 8.4.
Проще всего получить эту кривую, сразу задав правильную высоту и сечение
для водостока при Z = 0. Так как бордюры находятся повсюду, не имеет значе-
ния, на какой плоскости их конструировать, на YZ или XZ, однако они должны
непременно присутствовать вокруг участка, на котором развлекается Клякса.
Поэтому логично начать создание кривых в окне проекции Side (Вид сбоку), то
есть на плоскости YZ.
Бордюры разделены на меньшее количество сегментов, чем тротуары, поэто-
му ширину одного сегмента можно сделать равной 16, а не 4 футам. Затем кри-
вая профиля копируется и перемещается на некоторое расстояние в сторону. При
этом нужно помнить о местах соединения тротуаров и решить, стоит ли их еде-
186 Глава 8 • Наборы объектов

лать в виде отдельного фрагмента или же они будут интегрированы в поверх-


ность бордюра.
Место соединения можно сконструировать в виде отдельного желобка (при этом
между каждой парой желобков будет располагаться основная поверхность бордю-
ра) или в качестве части основной поверхности бордюра. Несмотря на привлека-
тельную возможность уменьшить количество сегментов поверхности, в нашем слу-
чае размер водостока очень мал по сравнению с общей длиной каждого сегмента
бордюра. А размещение небольшого элемента на широкой поверхности усложня-
ет ее параметризацию и затрудняет назначение материалов. Поэтому для сохране-
ния простоты модели и возможности редактировать материалы бордюр и водосток
нужно смоделировать в виде отдельных объектов.

___~. Промежугочные^управляюш,иеточ№1
между углами предохраняют углы от искажений

JuflX

'
IS. j

Рис. 8.4. Кривая профиля бордюра

Для начала нам потребуется поместить кривую профиля в нужное место. За-
грузите файл CurbProfile.ma с прилагаемого к книге компакт-диска,
1. Продублируйте кривую профиля бордюра.
Вместо того чтобы просто переместить кривую на 16 футов, требуется оставить
место по ширине для водостока. Водосток имеет ширину 3/4 дюйма и радиус
1/4 дюйма с обоих сторон. В сумме это составляет дюйм с четвертью. Полови-
на этого составляет 5/8 дюйма. То есть такое изменение положения, применен-
ное к каждому концу профиля бордюра, позволит сохранить водостоки цент-
рированными по отношению к замечательно ровной сетке каждые 16 футов.
Обустройство территории 187

2. Переместите копию на дюйм с четвертью. В итоге две кривые профиля будут


разделены на ширину водостока,
3. Теперь переместите оба профиля назад на 5/8 дюйма. Это центрирует их отно-
сительно координатной плоскости YZ. Теперь можно создать кривую профиля
водостока.
В этот момент имеет смысл заняться профилем водостока. Сначала можно уб-
рать участок кривой в нужном месте, а затем соединить концы кривых спрана
и слева с помощью дуги радиусом в четверть дюйма. Однако это может привес-
ти к появлению зазора, кроме того, вместо одной поверхности для каждого в< >-
достока появляется две.
4. Снова используя привязку к сетке (чтобы гарантировать, что новый профиль
водостока точно совпадет с профилем бордюра), придайте кривой форму nepi ;-
вернутой шляпы, как показано на рис, 8.5. Поместите ее туда, где она точно со-
единится с узловой точкой кривой профиля бордюра (в идеале это должна быть
точка на плоском участке кривой, желательно на одном из ее концов). Вовсе не
нужно делать такие же глубокие водостоки, как в реальности, поэтому огра-
ничьте глубину менее чем одним дюймом, чтобы избежать самопересечения в в<' -
дущей грани профиля,

Рис. 8.5. Кривые профилей водостока и бордюра


188 Глава 8 • Наборы объектов

5. Создайте поверхность водостока путем выдавливания профиля водостока вдоль


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

ш щш -.**-.

Рис. 8.6. Самопересечения поверхности водостока

Перед тем как приступить к созданию остальной геометрии на основе новой


поверхности водостока, нужно удостовериться в верности расчетов. Вам тре-
Обустройство территории 189

буются бордюр и тротуар, длина которых достаточна, чтобы покрыть участки


прямой дороги и области поворотов. Это означает, что у нас 276 (300 - 24) ф\ -
тов прямой дороги, что составляет по длине 69 квадратов тротуара. Так как это
не совпадает с 16-футовыми сечениями бордюра, продолжим длину блока до
312 футов, что приведет к появлению 72 квадратных участков тротуара и 18 се-
чений бордюра вдоль каждого 288-футового прямого участка.

СОВЕТ
Чтобы сделать видимым только каркас NURBS-поверхности, отключите показ геометрии, выбра;.,
в меню команду Display > Object Display > No Geometry (Отображение > Отображение объектов > От
сутствие геометрии) или воспользуйтесь MEL-командой: togglestate off-geometry. После этого вы
берите в меню команду Display > NURBS Smoothness > Hull {Отображение > Гладкость NURBS * Каркас),

Чтобы сохранить целостность для таких больших размеров, нужно поменять


шаблон, используемый для построения улицы.
7. В качестве рабочих единиц выберите футы и используйте 4-футовую сетку
(в основном для визуального подтверждения правильности моделирования)
8. Выделите полигональные сетки, формирующие тротуар и цилиндры, форми-
рующие перекрестки на восточном конце каждого блока и переместите их нд
12 футов на восток.
9. Выделите вершины сетки на восточных концах тротуаров главной улицы и пе-
реместите их на 12 футов на восток. Это легко сделать с помощью ноля для
ввода данных преобразования в строке состояния. Для этого нужно перейти
в режим Relative Entry (Ввод относительных значений преобразования). Чтобы по-
местить курсор в это ноле, нажмите комбинацию клавиш Atl+' (апостроф),
10. Выделите оба восточных блока и переместите их еще на 12 еру то в на восток.
11. Переместите сетку тротуара на восточной стороне развилки на 24 фута на
восток.
Теперь лежащий в основе сцены шаблон имеет нужный размер, а у нас на ру-
ках есть хорошая поверхность водостока. Эта поверхность может послужить
основой для остальных водостоков и прямых участков, позволяя быстро по-
лучить все необходимые бордюры.
12. Операции с кривыми лучше производить в отдельном слое, поэтому создайте
слой Curbs и поместите в него первый водосток. Убедитесь в наличии флажка
рядом с командой Use Current Layer (Использовать текущий слой) в меню Options
(Параметры) окна Layer Editor (Редактор слоев). В этом случае все новые участ-
ки бордюра будут автоматически помешаться в выбранный слой.
13. Выделите поверхность водостока и присвойте ей имя Groovel (groove — водо-
сток). Продублируйте ее и поместите копию на 16 футов восточнее оригинала.

СОВЕТ
Перед дублированием присваивайте имена важным объектам. В этом случае вам не потребуется
тратить дополнительное время на переименование их копий.

14. Между границами двух поверхностей водостока создайте методом лофтинга


линейную поверхность. Если вы предпочитаете пользоваться командой Loft
190 Глава 8 • Наборы объектов

(Лофтинг), а не одноименным инструментом, нужно выделить изопараметри-


ческие кривые. Это можно легко сделать с помощью меню, вызываемого щелч-
ком правой кнопки мыши. Однако намного проще воспользоваться инстру-
ментом Loft (Лофтинг).
В данном случае история конструирования вам не требуется, поэтому отклю-
чите ее перед формированием поверхности методом лофтинга. Если же вы уже
создали поверхность, удалите историю, выбрав в меню команду Edit > Delete by
Type > History (Правка > Удалить все объекты типа > История). Присвойте поверх-
ности имя curbSpanl.
Так как вам потребуется множество таких поверхностей, все общие характе-
ристики следует задать до операции дублирования.
15. В „нашем случае поверхность нужно сделать односторонней. Выделите водо-
сток и новую поверхность тротуара и откройте диалоговое окно Attribute Spread
Sheet (Список атрибутов). Перейдите на вкладку Render (Визуализация) и введи-
те в выделенные поля столбца Double Sided (Двухсторонний) значение 0 или клю-
чевое слово off.
16. Включите режим показа тонированных оболочек объектов и проверьте пра-
вильность направления поверхностей. В случае неверно ориентированной по-
верхности воспользуйтесь командой Reverse Surface Direction (Изменить направ-
ление поверхности) меню Edit NURBS (Правка NURBS), чтобы поменять направ-
ление нормали.
17. Выделите поверхность бордюра и создайте еще одну ее копию, расположив ее
на 16 футов восточнее (в положительном направлении оси X). Затем выдели-
те обе скопированные поверхности (один водосток и один участок бордюра)
и создайте остальные копии, необходимые, чтобы закрыть улицу до конца. В ка-
честве ориентира можно использовать геометрию из слоя reference, в против-
ном случае вам потребуется точное число копий (13 к востоку и 3 к западу),
если вы делаете все точно так же, как авторы. Убедитесь в наличии поверхно-
сти водостока на каждом конце длинного прямого участка.
Теперь длинные участки бордюра на месте, как показано на рис. 8.7.
Теперь пришло время сконструировать поверхность бордюра на углах улиц,
18. Выделите изопараметрическую кривую на дальней стороне самой удаленной
поверхности водостока. Продублируйте ее с помощью команды Duplicate Surface
Curves (Дублировать кривые поверхности), расположенной в меню Edit Curves
(Правка кривых).
19. Не снимая выделения с кривой, щелкните на квадратике, расположенном спра-
ва от команды Revolve (Вращение) в меню Surfaces (Поверхности). Задайте пово-
е
рот на 90 относительно оси Z, состоящий из четырех сегментов.
Положение опорной точки можно потом задать отдельно, а можно воспользо-
ваться группой переключателей Pivot (Опорная точка) в диалоговом окне Revolve
Options (Параметры вращения), установив переключатель Preset (Предустановлен-
ное значение). Опорная точка должна находиться на конце кривой, выровнен-
ная с ребром поверхности водостока, несмотря на то что это заставляет нас ис-
пользовать вместо номинальной 4-футовой сетки сетку 5/8 дюйма. При желании
Обустройство территории 191

вы можете вернуть сетку назад, но на данный момент важно добиться коррект-


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

• ( . :

ШИШ т I
IJ> !'«, "...1 SV-, ....,-ч I.»».*

Присвоение узлам имен перед


копированием позволяет сэкономить
время в дальнейшем .

Поверхности первой степени,


расположенные линейно, имеют
более простую форму
и проще редактируются

Рис. 8.7. Один блок готового прямого бордюра

СОВЕТ
Для изменения положения опорной точки объекта при выделенном объекте активизируйте любое;
преобразование, например Move (Переместить), Rotate (Повернуть) или Scale (Масштабировать),
и нажмите клавишу Ins. В результате появится возможность менять положение опорной точки, НЕ;
затрагивая сам объект. После завершения операции снова нажмите клавишу Ins, чтобы выйти из
режима преобразования опорной точки. Эта методика не сработает, если вы находитесь в режиме
выделения подобъектов, так как временное положение опорной точки подобъекта забывается, как
только с него снимается выделение.

20. Выделите последнюю поверхность curbGroove, скопируйте ее и поверните вок-


руг угла таким образом, чтобы она примыкала к поверхности, полученной ме-
тодом вращения. В результате получится водосток для бордюра, идущего с се-
вера на юг,
21. Скопируйте и поверните одну поверхность curbSpan, затем поместите ее ря-
дом с водостоком, полученным на предыдущем шаге. Это будет началом бор-
дюра, проходящего с севера на юг.
192 Глава 8 • Наборы объектов

22. Выделите одновременно поверхности curbGroove и curbSpan, создайте нужное


число их копий и с помощью преобразования перемещения создайте бордюр
до перекрестка.
23. Продублируйте и преобразуйте поверхности бордюра, расположенные на пе-
ресечении улиц, чтобы закрыть угол на другой стороне главной улицы. В ре-
зультате будет готов бордюр для одного квартала.
24. Сгруппируйте все поверхности бордюра в этом квартале и присвойте группе
имя curbsNW. Создайте зеркальные копии на южной стороне улицы и для двух
кварталов на востоке. Назовите их сходными именами, ориентировав в нуж-
ном направлении. Напоследок создайте дальневосточный и западный бордю-
ры (вниз по главной улице).
25. Выделите поверхность curbGroove, идущую с севера на юг, и соседнюю с ней
поверхность curbSpan. Продублируйте их, а затем выделите из группы с помо-
щью команды Unparent (Разорвать связь) меню Edit (Правка). При этом в группе
Unparent Method (Метод разрыва связи) диалогового окна Unparent Options (Пара-
метры разрыва связи) должен быть установлен переключатель Parent to World
(Поместить в глобальную систему координат). Не забудьте также установить фла-
жок Preserve Position (Сохранять положение).

:"•-- -lri««j2F^
1
Щ Г..' j'-.tcii.»,^» '"!'

ШИШ ife. :••-:•/-«

Щ !l;4.,.

Ь'«й», -j..'-^ ' "o;Q:

'..1 .«„.,- P
,.->-.-,

Рис. 8.8. Готовые бордюры и водостоки


Обустройство территории 193

26, Заново сгруппируйте эти поверхности и в соответствии с окончательным рас-


положением группы присвойте ей имя curbsE или curbsW. Поместите эту но-
вую группу на нужное место, выделите входящие в нее поверхности и создай-
те столько копии, сколько требуется для завершения бордюра на развилке.
Каждая копия имеет длину 16 футов.
27. Создайте зеркальную копию этой группы и поместите ее на другую сторону
улицы, идущей с севера на юг,
Все готово! Полный набор бордюров и водостоков помещен в нужное положе-
ние, как показано на рис. 8.8. Наш вариант сцены находится в файле CurbsAndGut-
ters.ma. Все эти объекты впоследствии будут сгруппированы с остальными необ-
ходимыми элементами.

Тротуары
Теперь пришло время создать второй по важности элемент сцены — тротуары.
Именно этим мы займемся в упражнении 8.2.
Упражнение 8.2. Создание тротуаров
В этом упражнении будет использован тот же подход, что и в предыдущем. Плос-
кие и криволинейные участки будут создаваться по отдельности. Кроме того, вам
предстоит сформировать тротуар на углах улиц.
1. Создайте слой Sidewalks (sidewalk — тротуар) для новой геометрии и сделайте
его активным. Само по себе помещение геометрии в определенный слой пред-
ставляет собой крайне простую процедуру, но желательно выработать привы ч-
ку делать это автоматически, чтобы в дальнейшем экономить время и усилия.
2. Смоделируйте водостоки тротуара с помощью кривой профиля, которую вы
ранее использовали для водостоков бордюра. Дело в том, что эти водостоки
должны иметь одинаковый профиль, чтобы совпасть на стыке тротуара и бор-
дюра. Однако этот профиль применим только к прямолинейным участкам тро-
туара. Несмотря на наличие других способов создания квадратных блоков, мы
выбрали этот подход, так как он облегчает работу с углами.
3. Воскресите профиль водостока бордюра шириной в три четверти и радиусом в чет-
верть дюйма. Предположим, что подобный радиус характерен для нашего тротуа-
ра (в том числе и для вертикальных границ на углах блоков). Поместите пару та-
ких кривых профилей вдоль границ блока, как показано на рис. 8.9. Это даст вам
возможность получить прямую поверхность водостока методом лофтинга.
4. Копируйте и поворачивайте профили до тех пор, пока все прямые участки во-
достока не окажутся на своем месте. Все границы водостоков должны соприка-
саться со своими соседями на углах квартала и полностью ограничивать боль-
шой плоский участок в центре. Этот плоский участок создается методом лоф-
тинга на основе пары расположенных друг напротив друга границ водостока.
5. Формирование углов происходит путем вращения профиля водостока. Вам тре-
буется получить поверхность с радиусом в четверть дюйма.
Выделите имеющуюся кривую профиля водостока и поместите ее опорную точ-
ку на внешнюю границу (конец, соприкасающийся с блоком).
194 Глава 8 • Наборы объектов

Рис. 8.9. Конструкция водостока для тротуара

6. Решите, что вы предпочитаете: удалить половину кривой до применения опе-


рации Revolve (Вращение) или же потом удалить половину полученной поверх-
ности. Авторы обычно выбирают первый вариант.
7. Поверните кривую профиля на 90° вокруг соответствующего угла. Поверхность,
состоящая из двух интервалов, является оптимальной в данном случае, так как
при своей простоте она достаточно округлая.
Плавные границы в нижней части поверхности каждого угла водостока остав-
ляют дыру ромбовидной формы, которую может потребоваться заполнить. При
необходимости (вспомните, что водостоки часто забиваются грязью) это мож-
но сделать несколькими способами.
Вы можете закрыть отверстие с помощью кусков ромбовидной формы, но углы
этих кусков будут вырожденными, потому что при коллинеарных направлени-
ях U- и V-координат определить нормаль невозможно. Это приводит к пробле-
мам с назначением материалов и визуализацией, поэтому лучше использовать
другой метод.
ВНИМАНИЕ
По возможности избегайте создания вырожденных поверхностей. Как только угол между U- и V-
направлеииями становится неопределенным (например, в случае их коллинеарности), пропадает
возможность определить нормаль к поверхности и возникают проблемы с назначением материалов
и визуализацией.
Обустройство территории 195

8. Вместо этого мы разобьем углы, состоящие из двух интервалов, на две поверх-


ности из одного интервала и перетащим управляющие точки из центра скруг-
ления так, чтобы они образовали угол, как показано на рис. 8.10. Присвойте им
имена вдоль линий grooveCornerl, чтобы облегчить в дальнейшем процесс их
выделения.
Отверстия также можно закрыть, поместив на дно водостока плоскость. Это
самый простой метод. Хотя теоретически эта плоскость не должна пересекать
углы радиальных поверхностей (которые немедленно начинают выступать сни-
зу), желательно путем тестовой визуализации убедиться, что это действитель-
но так. Если вы не можете использовать плоскость, лучше всего применить ме-
тод разбиения углов.
9. Создайте параллелепипед подходящего размера (с размерами 48 дюймоы,
3/4 дюйма и 1 дюйм), который помещался бы в водостоке. Удалите его ниж-
нюю грань. Поместите его в водосток таким образом, чтобы его верхняя часть
находилась на четверть дюйма ниже поверхности тротуара.

'Разбиение поверхности
происходит по этой линии.

и приводит к появлению в этом


месте новых управляющих точек
Освободите управляющие точки,
чтобы выпрямить границу

Рис. 8.10. Закрытие отверстий в углу путем разбиения поверхности


и переноса управляющих точек

10. С помощью сценария facePathSplit добавьте дополнительные ряды ребер на сторо-


ны параллелепипеда. Снова примените этот сценарий» чтобы добавить три новых
ряда на самую длинную грань параллелепипеда. Выделите два ноьых виешн] гх
ряда полигональных вершин и переместите их на четверть дюйма от границ.
196 Глава 8 • Наборы объектов

11. Теперь параллелепипед нужно преобразовать в иерархическую поверхность.


В этом случае он будет иметь плавные границы по краям и на конце. Это быс-
трый и простой способ получить объект прямоугольной формы с плавными
границами.
Поместив несколько заполняющих полос в водосток, вы обнаружите, что уг-
лубление перестало быть видимым, так что метод заполнения является спор-
ным. Впрочем, применение заполняющих полос имеет и свои преимущества.
Например, в итоге получается менее сложная геометрия, чем ожидалось изна-
чально.
Расположенную сверху плоскую поверхность, границы водостока и угловые
поверхности затем можно продублировать и переместить на 48 дюймов вдоль
оси Y. Потом проделать эту операцию еще раз. Затем эта 12-футовая последо-
вательность (именно столько составляет ширина тротуара) может, в свою оче-
редь быть, скопирована и перемещена и т. д. Однако все это приводит к появ-
лению огромного количества поверхностей, так как в составе каждого блока
их девять.
В подобных случаях лучше всего использовать одну иерархическую поверх-
ность, потому что она может включать в себя целый набор блоков тротуара.
12. Выделите все девять поверхностей блоков (верхнюю часть, четыре стороны
и четыре угла) и выберите в меню команду Modify > Convert > NURBS to Polygons
(Изменить > Преобразовать > NURBS в полигоны) для получения сетки полигонов,
Убедитесь, что в группе Tessellation Method (Метод заполнения) диалогового окна
Convert NURBS to Polygons Options (Параметры преобразования NURBS в сетку поли-
гонов) установлен переключатель Control Points (Управляющие точки).
13. Скройте исходную поверхность, чтобы она не мешала последующим действиям,
14. С помощью команды Combine (Объединить) меню Polygons (Полигоны) соедини-
те все сетки в одну. Эта операция позволяет объединять множество поверхно-
стей одновременно.
15. Выделите управляющие точки полученной сетки. Это можно сделать, к при-
меру, с помощью команды Edit Polygons > Selection > Convert Selection to Vertices
(Правка полигонов > Выделенное > Преобразовать выделенное в вершины). Затем
воспользуйтесь командой Merge Vertices (Слить вершины) этого же меню, чтобы
соединить друг с другом вершины вдоль ребер исходных сеток полигонов.
Если окажется, что вершины не сливаются, причиной этого практически гаран-
тированно является противоположная направленность граней соседних сеток.
Воспользуйтесь командой Edit Polygons > Normals > Conform (Правка полигонов i*
Нормали > Согласовать), чтобы упорядочить направления нормалей граней но-
вой сетки. После этого попытайтесь снова осуществить слияние вершин.
16. На данный момент практически все, что вам осталось, — это выполнить до-
полнительное копирование, объединение и слияние вершин. Однако сначала
нужно урегулировать ситуацию с углами водостока. Просто перетащите их
в направлении осей X и Y, чтобы выровнять с управляющими точками на пря-
мых сторонах. В результате при взгляде сверху сетка будет выглядеть как
прямоугольник.
Обустройство территории 197

17. Продублируйте сетку два раза, каждый раз перемещая копии на 48 дюймов
параллельно оси Y таким образом, чтобы все сетки примыкали друг к другу.
Выделите все три сетки, соедините их в одну и слейте их вершины. Теперь
у вас есть единая полоса, лежащая поперек тротуара.
18. Проделайте то же самое параллельно оси X, создав копии, требуемые, чтобы
покрыть тротуар от одного угла улицы до другого. После их соединения в од-
ну поверхность и слияния вершин останется всего один шаг.
19. Выберите в меню команду Modify > Convert > Polygons to Subdiv (Изменить > Пре-
образовать > Полигоны в иерархические поверхности). Тротуар готов. Наш вари-
ант сцены находится в файле SubdivSidewalk.ma.
Теперь прямая часть тротуара существует в виде единого фрагмента. Как вы
увидите в дальнейшем, такой способ предоставления информации не только бо-
лее эффективен и понятен, но и более гибок.
Перед созданием дополнительных участков присвойте прямой части тротуара
имя sidewalkStraightl. Получение более коротких тротуаров для улиц, идущих с се-
вера на юг, представляет собой всего лишь удаление ненужных полигональных
граней.
Немного сложнее моделировать углы. Так как в данном случае это наша соб-
ственная конструкция, вы можете как повернуть профиль тротуара вокруг угла
(создав концентрическое кольцо), так и продолжить квадратные блоки, а затем
отрезать перекрывающиеся части. Решающими в данном случае могут стать эсте-
тический фактор и простота исполнения.
Скорее всего, вы никогда не обращали особого внимания на углы тротуаров,
поэтому внимательно посмотрим на перекрывающийся участок, показанный на
рис. 8.11.
От одного из девяти блоков, попавших внутрь круглой границы, образуемой
бордюром, отрезается маленький треугольник. Сконструировать его несложно, но
это выглядит несколько карикатурно. В принципе его можно присоединить к од-
ному из больших блоков.
С другой стороны, если вы используете концентрические круги, внешняя гран и-
ца внешнего кольца будет иметь длину около 18 футов, что значительно превосхо-
дит стандартную длину блока, равную 4 футам. Можно поделить внутреннюю часть
колец на участки. Результат выглядит замечательно, но сохранить водостоки пря-
мыми и добиться совпадения кривизны бордюра может быть крайне сложно.
Подход с прямыми сетками требует укладки девяти блоков с последующей об-
резкой лишних кусков. Линия обрезки определяется проецированием на блоки
внутренней границы бордюра. Кроме того, в этих местах нужно создать закругле н-
ный водосток путем вращения его профиля на нужную величину.
Подход с использованием концентрических кругов достаточно прост, если вы
не собираетесь разбивать плоские участки. Нужная геометрия получается с помо-
щью инструмента Revolve (Вращение). Но для разбиения плоских участков потре-
буется сконструировать разделяющие водостоки, поместить их под нужными уг-
лами в нужных местах, обрезать заднюю часть и плоские участки и смоделировать
углы.
198 Глава 8 • Наборы объектов

Треугольная рбласть слишком мала


по сравнению с бордюром, чтобы
перекрыть тротуар

Рис, 8.11. Сетка тротуара, полученная перекрыванием, со оругленным бордюром

Так как оба подхода подразумевают проецирование кривой, по которой будет


производиться обрезка, и создание маленьких уголков, мы выберем более простой
из них. Смоделируем концентрические поверхности путем вращения, как показа-
но на рис. 8.12. При наличии времени в дальнейшем можно придать им красивую
форму.
Осталось добавить, то есть, наоборот, удалить одну вещь. А именно несколько
блоков с тротуаров в тех местах, где предполагается наличие деревьев. Эти блоки
должны располагаться недалеко от бордюра, но точное положение можно выбрать
и позже.
Процесс удаления граней из иерархической поверхности совсем несложен. Вы-
делите большую грань в центре, увеличьте ее в три раза и удалите. Если бы вам
пришлось работать с единой NURBS-поверхностью, вы бы так легко не отдела-
лись.
Благодаря аккуратной конструкции сетки стороны соседних блоков выглядят
вполне приемлемо. Мы, скорее всего, закроем отверстия сеткой, так что проблем
не будет. Но даже если вы решите заполнить открытые участки землей, вам потре-
буется всего лишь сохранять уровень земли выше дна водостока, и все будет вы-
глядеть замечательно.
Техника выделения граней предоставляет еще один полезный метод обработки
иерархических поверхностей. Любой блок может быть выделен нелегка накло-
Обустройство территории 199

нен. Это устраняет полную линейность и придает тротуару более достоверный вид.
При этом водостоки тротуаров остаются в целости.

Рис. 8.12. Простейший способ моделирования углов тротуара

Улицы
Ну и, наконец, по-настоящему простой элемент!
Так как уже решено, какой ширины мы будем делать улицы (около 50 футов)
и на каком уровне они будут располагаться (на 6 дюймов ниже тротуара), оста-
лось просто уложить между бордюрами плоскую поверхность.
Внешняя граница водостока намеренно расположена ниже улиц, поэтому плос-
кость проезжей части должна ее пересечь. Требуется убедиться, что взаимопро-
никновение двух поверхностей действительно происходит, так как в этом случае
смещение бордюра не приведет к появлению отверстий.
Мы создадим линейную NURBS-плоскость и придадим ей размер в соответ-
ствии с параметрами улицы. Ширина 50 футов плюс еще немного, а длина — точ-
но 276 футов. При этом появляется возможность непосредственного создания тек-
стуры для дороги, хотя мы еще и не решили, какой материал ей будет назначен.
Чтобы облегчить идентификацию каждого участка, присвоим дорогам имена в со-
ответствии с первоначальным планом города, например MainStreetW.
200 Глава 8 • Наборы объектов

Пересечения тоже создаются в виде плоскостей, но нужно помнить, что они


должны быть немного шире, чтобы учесть дополнительную ширину двух тротуа-
ров. То есть плоскость шириной ровно 74 фута (50 футов улица плюс два тротуара
по 12 футов) помещается на каждом из трех перекрестков. Им присваиваются имена
в соответствии с расположением, например MainAndOcean.
Нужно заметить, что, несмотря на полную неосведомленность о материалах,
которые будут назначены создаваемой геометрии, имеет смысл присваивать каж-
дому из объектов сцены собственный стандартный материал. Это придает объек-
там более приятный вид, чем при заданных по умолчанию оттенках серого. Авто-
ры создали для сцены материалы Concrete и Street (рис. 8.13). Эту сцену можно найти
в файле StreetsAndWalks.ma.
Теперь вся базовая инфраструктура на месте, и пришло время заняться осталь-
ными объектами. Имеет смысл воссоздать такие детали, как дренажная система,
крышки люков, решетки на участках земли, предназначенных для деревьев. Но
сначала мы позаботимся о более фундаментальных вещах.

Рис. 8.13. Сцена с готовыми тротуарами, улицами и бордюрами

Пляж
Потратим немного времени на моделирование пляжа. Нам потребуется сформи-
ровать несложную поверхность,
Обустройство территории 201

Хотя натуральный ландшафт может быть весьма затейливым (часто для его
воспроизведения применяются специальные инструменты), наш пляж представ-
ляет собой не более чем наклонную поверхность, идущую от дальней стороны за-
падного тротуара на дороге вдоль океана к кромке воды,
Поверхность пляжа сначала можно создать в виде плоскости шириной 50 фу-
тов, расположенной рядом с тротуаром, но форма будет более достоверной, если
применить метод лофтинга между парой кривых. По длине будет достаточно 20 ин-
тервалов. Поверхность должна иметь достаточное количество управляющих то-
чек, чтобы придать ей волнообразный вид. Для этого потребуются еще 10 интерва-
лов. Так как это спокойный песчаный пляж, подобного уровня контроля будет впол-
не достаточно,
Получить лежащие в основе кривые можно легко и быстро. В окне проекции
Тор (Вид сверху) используйте 20 интервалов, чтобы создать профиль кромки воды,
Если вам не хочется считать интервалы, можно построить единую кривую, раз-
бить ее на 20 интервалов и путем перемещения управляющих точек придать ей
желаемую форму. Затем переместите кривую на 2 фута ^ отрицательном направ-
лении оси Z, чтобы установить ее в нужное положение.
После этого скопируйте ее и привяжите все управляющие точки этой кривой
к ближайшей к пляжу границе тротуара. Так как эта кривая совершенно плоская,
ей требуется придать некую форму. Из-за большой длины могут возникнуть слож-
ности с визуализацией всех добавленных неровностей поверхности. Для облегче-
ния процесса слегка поворачивайте кривую и смотрите на ее вид в окне ортогра-
фической проекции, как показано на рис. 8.14. Здесь же можно поменять положе-
ние управляющих точек относительно оси Z. Не стоит проделывать эту операцию
в окне центральной проекции, так как при увеличении расстояния до камеры сни-
жается точность. Также помните, что после завершения работы кривую нужно по-
вернуть в исходное положение.
Альтернативным способом решения этой задачи является поворот камеры
окна ортографической проекции. Для камеры центральной проекции данная опе-
рация выполняется с помощью инструмента Tumble (Переворот), в то время как
для ортографических проекций эта возможность по умолчанию заблокирована.
Раскройте в окне проекции подменю Camera Tools (Инструменты для работы с каме-
рой) меню View (Вид) и щелкните на квадратике, расположенном справа от ко-
манды Tumble Tool (Переворот). Если в разделе Orthographic Views (Ортографичес-
кие проекции) появившегося диалогового окна снять флажок Locked (Заблокиро-
вано), вы сможете поворачивать вид в окнах ортографических проекций. Если
вы решите воспользоваться этим способом, после завершения редактирования
кривой обязательно верните вид в первоначальное состояние и снова установи-
те данный флажок.
Любой из описанных приемов укорачивания может применяться для оценки
формы кривой или поверхности, особенно при проверке небольших изгибов.
С помощью инструмента Loft (Лофтинг) создайте между этими двумя кривыми
поверхность, состоящую из 10 интервалов. Чтобы придать ей более натуральный
вид, подвиньте управляющие точки ближе друг к другу для получения небольших
202 Глава 8 • Наборы объектов

холмиков, а другие управляющие точки переместите вниз для получения углубле-


ний в песке. Последняя операция осуществляется, например, с помощью инстру-
мента Move Normal (Переместить нормаль). Придать поверхности приемлемую фор-
му, как показано на рис. 8.15, можно довольно быстро. Наш вариант поверхности
находится в файле SculptedBeach.ma.

Небольшой поворот в окне


ортографической проекции
оказывает укорачивающий
эффект, позволяющий
оценить форму кривой •,

Рис. 8.14. Укороченная кривая поверхности пляжа

Небольшой наклон на пару футов вниз к границе пляжа должен быть достаточ-
но длинным, чтобы гарантировать, что нерегулярная поверхность воды, которую
мы получим позже с помощью модуля Fluid Effects (Эффекты течения), не будет от-
крывать границу песка. Вблизи воды поверхность пляжа должна быть гладкой,
поскольку именно так она выглядит в реальности. Этого просто добиться с помо-
щью инструмента Extend Surfaces (Продолжение поверхностей), вызываемого через
меню Edit NURBS (Правка NURBS).
В принципе мы можем воспользоваться инструментами Artisan (Виртуальные
кисти), чтобы нарисовать поверхность нужной формы, но в данном случае это вы-
глядит излишним. Всего за несколько минут нужный результат можно без усилий
получить с помощью обычных инструментов.
Итак, пришла пора заняться застройкой города,
Строительство 203

Рис. 8.15. Сформированная поверхность пляжа

Строительство
Интересно, почему конечный продукт строительства называется зданием? Не луч-
ше ли называть его постройкой? Ведь результат рисования мы зовем рисунком,
результат резьбы по дереву — резьбой, а результат записи — записью... Нам оста-
ется только примириться с таким лингвистическим казусом.
К счастью, процесс строительства происходит в Maya намного проще, чем в ре-
альности.

Планирование квартала
Пока что вместо зданий используются модели-заместители, имеющие форму па-
раллелепипедов. Это коммерческая зона района в стиле «Арт Деко», для которой
по большому счету тщательное планирование не требуется. С помощью простых
рисунков и опорных материалов этого стиля, взятых из Интернета, эта область
должна быть смоделирована достаточно быстро, но со вкусом.
Здания на главной улице имеют по два или три этажа, В центре нашего проекта
магазин подарков и зоомагазин, которые будут ясно видны с фасада. Все осталь-
204 Глава 8 • Наборы объектов

ные здания послужат фоном, на котором разворачивается наша история. Опреде-


ленные детали их конструкции дадут понять, что это за магазины, но они не долж-
ны выбиваться из общего стиля.
На западе зданий нет, там находится пляж. На востоке в основном видна раз-
вилка, хотя по некоторым деталям можно составить представление о том, что дей-
ствие происходит в большом городе. Мы не будем строить целый город, вместо
этого используем плоский рисунок с видом крыш и высотных зданий.
Чтобы при построении зданий в двух кварталах добиться одинакового стиля,
важно использовать один и тот же набор архитектурных элементов. Кроме того,
при этом возрастает эффективность процесса моделирования. Намного быстрее
поменять размер и форму таких элементов, как двери, окна и карнизы, чем созда-
вать их каждый раз заново. Да и сам по себе выбор стиля «Арт Деко» является
весьма практичным поступком, так как данный стиль основан на простых формах
с минимальным набором дополнительных украшений.

Рис. 8.16. Элементы дизайна, присущие стилю «Арт Деко»

Общие элементы дизайна в этом стиле, как показано на рис. 8.16, включают
плавные углы, длинные вертикальные и горизонтальные линии (возникшие бла-
годаря «обтекаемым» формам), плоские тенты, простые карнизы, окна с уголками
и набор повторяющихся декоративных мотивов. Не все эти детали будут исполь-
зованы при моделировании зданий, перед которыми происходит основное действие;
многие из них украсят фоновые строения.
Строительство 205

Используя по большей части NURBS-поверхности, мы получим основные фор-


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

Неподвижные части зданий


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

УглйьПопученные разбиением Острые углы позволяют плоскостям


сферы-цз четвертинки, как ~^;^, закрывать область потолка
описано в главе 7 >^(илипола)

Та же самая, техника разбиения


поверхности, чтр и при создании
водостоков на.-тротуарах : Основания стен
:
обычно спрятаны
за лепными
украшениями

$> качестве пола можно


'использовать -обычную
ПЛОСКОСТЬ

Рис. 8.17. Базовая гладкая стена и ее границы


Сначала создаются стены со скругленными (там где нужно) углами. Вам потре-
буется всего лишь четвертинка цилиндра, состоящая из двух интервалов, но, к сожа-
лению, в Maya невозможно создать такой объект непосредственно, так как мини-
мальное количество интервалов в этом случае равно четырем. Словом, круг или ци-
206 Глава 8 • Наборы объектов

линдр потребуется обрезать. Для этой цели обычно создают круг, так как объект-
примитив Cylinder (Цилиндр) в Maya не имеет различных степеней по U- и V-коорди-
натам, выделяют точки редактирования, ограничивающие нужную область, и приме-
няют инструмент Detach Curves (Разъединить кривые).
Созданный в окне проекции Тор (Вид сверху) круг лежит в плоскости XY. Од-
нако обычно требуется опустить его чуть ниже, так как это позволяет устранить
зазор между зданием и опорной плоскостью. Поэтому мы опускаем его на пару
дюймов относительно границы тротуара.
Четверть круга дублируется, и копия перемещается на расстояние, соответству-
ющее длине фасада здания. Высота здания в данный момент не играет особой роли,
так как при необходимости ее можно отредактировать позже. Остается создать
методом лофтинга линейную поверхность между двумя кривыми. Иногда бывает
полезно слегка увеличить радиус, чтобы граница не выглядела слишком резкой.
Граница стены дублируется и перемещается на противоположный конец зда-
ния. Затем опять же методом лофтинга между этими границами создается линей-
ная поверхность. Простейшая гладкая стена и ее границы, показанные на рис. 8.17,
служат фасадом, на котором можно выполнять отделочные работы. Эти поверхно-
сти можно копировать, а затем менять их масштаб, а также двигать границы бес-
численных сегментов,

:*. a,;, i^m,-^ .еде Щ ': 1


• • •<:

1~1
'•
^~~~^i
Область окон может быть закрыта как ;

•ж
горизонтальными, так и вертикальными -
полосами '-——•"
;-
-i \ _-.-"-
t-*?-

•^"

^^.^^
~^~~"~^< -
\ \ \
\ \ '

~> ^-^
'

. '<
? >:
.-. '• • > -' • '. ,X ;
1 ' -••
'^^
" Использование геометрии первой
— "~~~~~ — —1— степени и дисфетных ребер
^' " ".. .JL '.Jj 1 — ^- — =; — : г поверхностей позволяет легко ^
осуществлять с»едактиоованиёг ?,1~^>
^•--~"~"~^ ~;
Разбиение поверхности углов • *---~~"^'
- позволяет простым _^— ••"
плоскостям закрывать стену -"-^~ ^,ч"'""' . - ... '%,4

i ' • . -- .-
*' 3 „«., •