Иллюзия
АрхивВозможности компьютеров нередко превышают потребности людей, которые ими пользуются. Не важно, знает человек об этих возможностях или нет, реализованы ли они в конкретных программах, есть ли у него доступ к этим реализациям. Все эти вопросы мгновенно теряют смысл при отсутствии самой потребности. К счастью, множество рынков все еще обладает завидным набором неудовлетворенных потребностей. Недремлющий нюх топ-менеджера улавливает неуловимый запах денег - спустя некоторое время появляется новый программный пакет, и усталый дизайнер требует от своего шефа несколько тысяч портретов американских президентов на покупку очередного монстра...
Maya
Часто нет времени переделать программу, зато есть время написать ее заново. Эта проверенная истина пригодилась трем известным в мире компьютерной графики фирмам - Alias, Wavefront и TDI. Создатели популярных пакетов (Alias Power Animator, TDI Explore, Wavefront Advanced Visualizer, Dynamation и Kinemation) собрались под крылом Silicon Graphics, сложили в одну большую коробку наработанные ими за десять лет идеи и создали виртуальную студию Maya. Не известно, кто выступил инициатором проекта, но финансирование разработки определенно проводила SGI.
Пакет был реализован на языке C++ с использованием технологий OOD и OOP (объектно-ориентированное проектирование и программирование), причем фактически с нуля. Как следствие, результат быстр, стабилен и концептуально выдержан. Все это имеет прямое отношение как к индейцам, так и к балету, но название пакета взято совсем из другой области. В одном из индийских языков "Maya" означает "иллюзия".
Следует отметить, что судьба этой иллюзии пока довольно противоречива. Пакет содержит множество удобных и нигде более не реализованных возможностей, очень гибкий интерфейс и набор прекрасных эффектов, причем все это при полном отсутствии свойственных "дурной наследственности" ограничений его более пожилых конкурентов. Но - молодо-зелено, и положительная наследственность также не велика. По числу дополнений и эффектов от третьих фирм Maya не способен пока тягаться с "отцами" рынка реалистического 3D - пакетами SoftImage|3D (купленным некоторое время назад корпорацией Microsoft) и 3D Studio MAX от известного дитя Autodesk фирмы Kinetix. Профессиональные студии начинают использовать Maya, однако о вытеснении других пакетов речь пока не идет, и это вполне естественно: рынок профессионального и индустриального программного обеспечения гораздо консервативнее, нежели рынок "железа" или офисных программ. В той или иной мере пакет применялся при создании фильмов "Armageddon", "A Bug's Life", "Contact", "Men in Black", "The Truman Show" и, разумеется, "Titanic".
Концепции, положенные в основу ядра Maya, аналогичны применяемым в Softimage|3D: каждый объект имеет гибкий набор атрибутов, которые могут не только принадлежать ему, но и совместно использоваться целой группой объектов. Например, атрибут "позиция" может принадлежать как геометрическому телу, так и объекту "силовое поле", реализующему физический закон притяжения. Тело будет двигаться, остальные тела будут корректно к нему притягиваться. Подобное совместное использование атрибутов позволяет с легкостью реализовывать на одних и тех же структурах данных сложные конструкции объектов и методы анимации, действующие по определенным правилам, например уже упомянутую в предыдущей статье инверсную кинематику.
Ядро пакета содержит интерпретатор языка MEL (Maya Embedded Language), широко используемого и для реализации самой Maya. На нем могут быть легко написаны различные инструменты, эффекты, настройки среды, пользовательского интерфейса и прочие дополнения. Даже файлы сцен сохраняются как программы на этом языке. Этот достаточно распространенный и грамотный подход позволяет быстро развивать пакет, причем как самим создателям, так и авторам различных дополнений.
Существует два порта [1] Maya - под Windows NT и под Irix (клон Unix для рабочих станций Silicon Graphics). В апреле появилась вторая версия Maya. Пакет продается в нескольких вариантах, оставляя тем самым простор для выбора и свободное место в кошельках своих покупателей [2].
Рассмотрим основные модули Maya:
Пусть же наши возможности...
Хватит радоваться, пора грустить. Неприятность номер один - Windows NT. Да, как вы уже догадались, я о системных требованиях. Если формулировать в двух словах, спецификацию на конфигурацию можно получить у глубоко мною уважаемого заготовителя компьютерного железа г-на Козловского. И добавить к этому списку хороший OpenGL-ускоритель с поддержкой 32-битного цвета и буфера шаблонов. Впрочем, шутки в сторону: нормальная работа со сценами в Maya требует чуть больше памяти, нежели в 3D Studio MAX. Впрочем, это лишь расплата за новые возможности, обилие которых не позволяет называть это громким словом "недостаток". Ниже привожу необходимые ресурсы.
Неприятность номер два - цена лицензионной копии пакета. Впрочем, как говорят в Одессе, что таки вы еще хотели за такие возможности? Эта четырех- или, в зависимости от конкретного набора модулей и платформы, пятизначная долларовая цифра, как показывает практика, вполне по плечу многим серьезным студиям.
Встречают по одежке...
Очень привлекателен пользовательский интерфейс Maya. Самое главное - возможность настраивать произвольно глубину отката своих действий вплоть до бесконечности (в течение текущего сеанса, а не до начала нашей эры, разумеется). Четкое логическое деление инструментов на четыре набора: Animation, Modeling, Dynamics, Rendering. Переключение между ними производится клавишами F2-F5 (соответственно). Это деление преследует простую цель: не завешивать экран большим количеством ненужного на данном этапе инструментария и не вносит никаких физических ограничений на совместное использование возможностей студии. Более того, интерфейс может быть произвольно настроен для каждого режима.
Очень понравилась возможность вырезать любое подменю, превращая его в постоянно плавающее окошко. Многие пункты меню имеют квадратик напротив текста, означающий наличие дополнительных параметров у команды, которые можно немедленно отредактировать, ткнувшись в этот самый квадратик. Удобный и настраиваемый интерфейс является жизненно необходимым элементом подобных программных монстров: иногда половина рабочего времени дизайнера тратится на выбор команд, инструментов и многократное изменение их параметров [3]. Прекрасная находка создателей этого пакета - Hot box, всплывающее при нажатии и удерживании пробела полупрозрачное меню. Любая команда или настройка среды может быть вызвана с его помощью практически мгновенно.
При стандартной раскладке экрана довольно много места уходит на панели инструментов, но эта проблема легко лечится установкой разрешения 1280х1024 (или более). Хочется отметить наличие полноэкранного режима, призванного, вероятно, довершить картину продуманного и эргономичного интерфейса.
Рис. 1.
Wireframe and shaded display - каркасное и сплошное отображение; Selection handles - контрольные точки выделения; Transform manipulators - манипуляторы трансформирования; Flextors - сетки трансформации; Kinematics - поддержка инверсной кинематики в моделях.
Возможности настройки отображения моделей (во время редактирования) соответствуют самым современным требованиям. Все доступные режимы используют для отображения аппаратный ускоритель OpenGL (если таковой имеется). А если нет, примите мои соболезнования: порою все происходит не так быстро, как хотелось бы. Различные объекты могут отображаться в виде каркаса, сплошных, текстурированных с различной степенью детализации и даже затененных источниками света поверхностей. Сквозь тела проглядывают контрольные точки и скелеты, видны сетки деформаций и другие вспомогательные манипуляторы (рис. 1). Отображение объектов может быть раздельно настроено в соответствии с предпочтениями пользователя.
...а провожают по уму
Теперь о насущном. Возможности моделирования - просто фантастические. Разумеется, предпочтение отдается NURBS-поверхностям, причем, в отличие от 3D Studio MAX, не создается впечатления "обособленности" этих объектов. С ними работают все инструменты, нет никаких неприятных ограничений ни в моделировании, ни в анимации различных параметров. Не забыто и старое доброе полигональное моделирование. Недаром многие модели из известных библиотек хранятся в полигональном виде, да и с трехмерного сканера NURBS-поверхности вводить пока невозможно - механика тут, конечно, ни при чем, просто программное обеспечение хромает. Но все это - стандартные инструменты: повороты, деформации, контрольные точки. А как же революционно новые возможности? Нет проблем, в ответе за всю эту революцию модуль Maya Artisan. Благодаря этому модулю NURBS-поверхности можно редактировать, просто прикасаясь к ним, оттягивая на себя или вдавливая вовнутрь с различной степенью нажатия. Можно провести кистью по поверхности, отметив контрольную зону (фактически набор контрольных точек), а затем деформировать объект, воздействуя на всю зону сразу. Можно указать ось симметрии, одним движением деформируя, например, сразу две стороны объекта. Можно просто раскрашивать поверхность различными кистями как душе угодно, не мучаясь с геометрическим наложением текстур. Можно настраивать веса опорных точек, наблюдая, как отображается поверхность, окрашенная в зависимости от значения этих весов. Можно...
Одним словом - будто в руках пластилин, а вовсе не мышка или перо планшета. Что еще надо настоящему художнику для полного счастья? Потрясающих аватаров, созданных подобным образом, очень трудно отличить от живых актеров.
Рис. 3a.
Рис. 3б.
Теперь о систематизации, жизненно необходимой для любой мало-мальски сложной сцены, не говоря уже о какой-либо анимации. Иерархические структуры объектов и скелетные модели (рис. 3а и 3б), обтягиваемые соединенными NURBS-поверхностями (есть даже такой термин - кожа), являют собою два ключевых средства в нелегком деле оживления моделей. Поверхности могут быть слиты в единое целое (сшиты по шву), после чего их границы будут деформироваться совместно. Допустима любая топология скелетов - в отличие от Character Studio из 3D Studio MAX, где фантазия художника ограничена одноголовым, четвероконечностным, однохвостым аватаром.
Управление моделями осуществляется с помощью различных контрольных инструментов (рис. 1). В их число входят Selection handler (контрольная точка выделения), которая используется для активизации заранее выбранного набора объектов; Transform manipulator (манипулятор трансформирования), позволяющий поворачивать и деформировать части модели в соответствии с заданными степенями свободы; а также Flextor - разновидность деформационной решетки, применяемая для управления одеждой и мышцами виртуальных героев. Разумеется, вычисляется инверсная кинематика скелетов и иерархий, причем можно настроить большое количество физических параметров объектов. В базовом модуле реализована так называемая динамика твердых тел, в рамках которой моделируются действующие на объекты силы и моменты без учета упругости и способности объектов к деформации. Можно подвергать объекты действию различных силовых полей, таких как ветер, сила тяжести, вихрь и т. д. Благодаря твердотельной динамике легко анимируются сцены из разряда разлетающихся по бильярдному столу шаров, людей, играющих в различные виды спорта, или действующих механизмов.
Жизненно необходимые прибамбасы
Но и это еще не всі. Модуль Maya F/X включает в себя динамику мягких тел. Это уже совсем иной уровень реализма. Итак, берем NURBS-поверхность, объявляем ее мягким телом с определенными параметрами и помещаем в поле тяжести или поле легкого ветра. Затем, разместив под ней твердый шар, мы сможем любоваться весьма реалистичным платком, падающим на шар и принимающим под воздействием собственного веса его форму, как это обычно бывает в реальной жизни (рис. 2).
Рис. 2.
В этот же модуль включено множество систем частиц, позволяющих создавать реалистичные взрывы, огонь, потоки осколков, облака и прочее. Регулируется поведение частиц, их плотность, размер, множество других параметров. Разумеется, на частицы действуют различные виды полей, кроме того, для потока частиц может быть просто указан объект назначения (рис. 4). И даже более того, частицы могут взаимодействовать друг с другом и вызывать определенные события при столкновении с другими предметами.
Рис. 4.
Хорошо развиты столь необходимые ныне для быстрого создания реалистичной анимации возможности motion capture (захвата движений). Любые контрольные точки могут управляться данными с каких-либо датчиков, например, просто движениями мыши. Можно создавать движки, управляющие целой системой контрольных точек, и даже синхронизировать их движения с внешними данными, например, движения губ аватара с саундтреком. В Maya анимируется, честно говоря, практически всЈ.
И напоследок о качестве рендеринга. Качество на уровне, если не сказать больше. В отличие от аппаратных ускорителей программные рендеры ведущих пакетов используют сходные модели освещения, благодаря чему их гораздо сложнее отличить друг от друга, имея на руках лишь несколько результирующих изображений. Зато эффекты, особенности моделей и динамика позволяют, что называется, почувствовать разницу. Maya выделяется необыкновенно живыми аватарами, они похожи на кукол, пластилиновую анимацию или живых людей, но ни в коем случае не на виртуальных болванчиков. Персонажи - конек Maya, в этом главное преимущество пакета перед 3D Studio MAX и несколько менее известным LightWave. Скорость рендеринга несколько проигрывает старичку Softimage|3D - это вполне ожидаемая расплата за язык MEL и многочисленные эффекты, зато по возможностям моделирования и анимации Maya превосходит практически все распространенные сейчас пакеты. Неплох и использующий OpenGL "полуаппаратный" рендер, который, впрочем, ни одна из профессиональных студий не станет широко использовать ни для чего иного, кроме как для быстрого просмотра. Как ни крути, реализм - это все.
Ссылки
1 (обратно к тексту) - Версии для конкретной платформы.
2 (обратно к тексту) - Разумеется, никогда не покупающих зараженные вирусами и некорректно работающие пиратские программы.
3 (обратно к тексту) - Чаще на подобные действия уходит две трети или более времени.