Macromedia Director MX - практическое применение

         

Трехмерная исполняющая среда Director'a: возможности и ограничения



С одной стороны, 3D-«движок» Director'a надежен и гибок. Но, с другой стороны, у него, как и у любой программы, имеются ограничения. Некоторые из этих ограничений присущи всем исполняющим трехмерным средам реального времени, в то время как другие ограничения относятся к самому Director'y. Например, в Director'e нет простых встроенных решений для теней, «бликов линзы» или реальных отражений. Однако в Director'e имеется возможность создания иллюзии отражений. Кроме того, с помощью простых готовых реакций на события вы можете предоставить пользователю полный контроль над камерой и «отзывчивостью» объектов.

Важно отметить правильность названия Director'а, так как его главной функцией является «руководство» элементами мультимедиа, которые более чем вероятно будут получены из других программных пакетов. Director не планировался специально как первичный инструмент для создания изобразительных оригиналов. Если вам нужно создать изображение с высоким качеством, то вы получите лучшие результаты при использовании другой программы, специально предназначенной для создания изобразительных оригиналов, такой как Fireworks или Photoshop. После того как изобразительный оригинал будет создан и импортирован, Director сможет затем управлять и манипулировать этим изображением. Таким же образом вы обнаружите, что лучше создавать 3D-графику с использованием независимых SD-программ (таких как Shapeshifter 3D, Plasma или Maya)50 и затем импортировать результаты в Director в формате W3D.

Подсказка

W3D является форматом импортирования в Director; DCR является конечным, демонстрационным файлом Shockwave, используемым в документе HTML.

Идеи, реализованные в трехмерной исполняющей среде Director'a



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

Модели



Модели - это объекты, которые вы видите в трехмерной среде. В Director MX есть возможность создавать простые модели, такие как сферы, кубы, плоскости и цилиндры. Эти простые формы называются примитивами. Они являются основными формами, из которых можно строить более сложные модели. На рис. 19.1 показано, как можно сформировать из простой плоскости модель поверхности океана.



Рис. 19.1. Использование простых 3D-форм для создания поверхности


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

Камеры



Каждый трехмерный элемент труппы Director'а может считаться окруженным своим пространством. Спрайт трехмерного элемента труппы является окном в это пространство, и «камера» определяется как «точка обзора» спрайта. Камера действует как окно в трехмерный мир. Каждая камера, существующая в трехмерном элементе труппы, предлагает свой взгляд на этот мир. «Точка обзора» камеры может меняться с помощью Property Inspector или с помощью трехмерных реакций на события Director'a и Lingo. Например, на рис. 19.2 показан вид трехмерного спрайта из одной камеры, а на рис. 19.3 показан вид того же спрайта, но из другой камеры. Как вы видите, «точки обзора» камер различаются.



Рис. 19.2. Вид трехмерного спрайта из камеры 1



Рис. 19.3. Вид трехмерного спрайта из камеры 2


Как и для всех элементов труппы, Director позволяет вам создавать сколько угодно ссылок из 3D-спрайтов. Каждый спрайт может быть настроен на использование любой камеры трехмерного элемента труппы и даже на использование нескольких камер. В случае с трехмерным текстовым элементом труппы камера даже встраивается в сам текстовый элемент, когда вы включаете трехмерный режим для текстового элемента труппы.

Световые эффекты



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

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


Эти свойства являются общими для трехмерных тел, помещенных в одинаковые условия освещения. Такое соотношение реальных объектов и света является частью художественного отображения реального мира во всех жанрах изобразительного искусства.

Световые эффекты в Directore'e освещают трехмерное пространство и все, что в нем имеется. Без света в трехмерной среде продолжалась бы своя жизнь и происходили бы действия, но пользователь ничего бы не увидел. В Director'e вы можете управлять источником света, добавляя или убирая световые эффекты и изменяя их позицию, цвет и яркость. Вы можете использовать для манипуляции этими качествами Property Inspector и команды Lingo. На рис. 19.4 показан ЗВ-спрайт, отображаемый в сильном, резком свете, в то время как на рис. 19.5 показан тот же ЗВ-спрайт, но в мягком, неярком свете. Как вы видите, эффект от каждого из источников света совершенно разный.



Рис. 19.4. 3D-спрайт, видимый в сильном, резком свете



Рис. 19.5. 3D-спрайт, видимый в мягком, рассеянном свете


Группы



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

Другие элементы трехмерных элементов труппы



Есть другие трехмерные элементы, со свойствами, отличающимися от свойств узлов. В них входят ресурсы моделей, системы частиц, модули построения теней, текстуры, модификаторы и анимации. Узлы используют эти трехмерные элементы для создания явления (scene). Давайте рассмотрим некоторые из них.

Ресурсы моделей



Модели - это узлы, связанные с ресурсом модели. Ресурсы моделей являются базовыми элементами, определяющими поверхность. Ресурсы моделей являются трехмерными геометрическими формами, определяемыми программами трехмерного моделирования или создаваемыми в Director'e с помощью Lingo. Модель использует геометрические формы ресурса модели и занимает определенную позицию и ориентацию в трехмерном пространстве. Ресурсы моделей отображаются только при использовании в модели. Из одного ресурса модели можно сгенерировать любое число моделей. Более сложные ресурсы моделей и модели, использующие эти ресурсы, могут импортироваться или генерироваться скриптами Lingo. Пример таких моделей показан на рис. 19.6. Кроме того, текстовые элементы труппы могут быть легко превращены в ресурсы трехмерных моделей.

Системы частиц



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



Рис. 19.6. Более сложные импортированные ресурсы моделей, определяющие корабль


Модули построения теней



Модули построения теней управляют информацией о поверхности объекта и об ее отображении. Модули построения теней приказывают 3D-«движку» Director'а отрисовать объекты с различными значениями бликов и теней. Модуль построения теней Standard отрисовывает фотореалистическое отображение. Примеры типов модулей построения теней показаны на рисунках с 19.7 по 19.10.



Рис. 19.7. Модуль построения теней типа Standard



Рис. 19.8. Модуль построения теней типа Engraver



Рис. 19.9. Модуль построения теней типа Painter



Рис. 19.10. Модуль построения теней типа Newsprint


Так как модули построения теней являются программами управления внешним видом поверхности, то они могут накладывать более одной текстуры и даже их наслаивать. В качестве примера рассмотрим банку пива. Ее формой является простой цилиндр, и, следовательно, модуль построения теней настраивается на использование текстуры изображения логотипа торговой марки и на отрисовку текстуры в цилиндрическом виде. Текстуры управляют свойствами, определяющими способ отрисовки изображения и способ получения двумерного изображения. Текстуры могут импортироваться с моделью или использоваться с изображениями, извлеченными из трупп Director'a, включая текстовые, растровые элементы труппы или даже фильмы RealPlayer.


Экскурсия 19А: Знакомство с использованием Lingo в трехмерной среде



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

1. Создайте новый фильм и выберите Modify | Movie | Properties, чтобы установить размеры сцены 320x240.

2. Добавьте 3D-элемент труппы, выбрав Insert Media Element | Shockwave 3D. Теперь откроется окно Shockwave 3D, отображающее черное пространство.

3. В поле Cast Member Name вверху окна Shockwave назовите элемент труппы SdWorld, а затем закройте окно.

4. Перетащите элемент труппы 3dWorld в кадр 1 канала 1 партитуры. По умолчанию 3D-спрайты устанавливаются в 320x240, что как раз подходит к размерам нашей сцены.

5. Откройте окно Message, выбрав Window | Message.

6. Откройте Object Inspector, выбрав Window Object Inspector.

7. Расположите различные окна так, чтобы лучше видеть ваше окно Message, Object Inspector и сцену, как показано на рис. 19.11.



Рис. 19.11. Расположение окна Message, Object Inspector и сцены


Без использования 3DPI Xtra (который вы будете использовать в последующем материале) мы будем ограничены в выборе средств. Director MX выпускается с набором реакций на события, которые полезны для начального периода работы, но если вам нужно будет приспособить 3D-проект для определенной цели, то вы будете иметь в распоряжении только трехмерные текстовые элементы труппы, Object Inspector и ваши творческие способности работы с Lingo.

Одним из наилучших встроенных инструментов для понимания содержания трехмерного элемента труппы и манипулирования им является Object Inspector. Помещая в Object Inspector ссылку на трехмерный элемент труппы или спрайт трехмерного элемента труппы [например, member(«my3dworld») или sprite(l)}, вы получаете доступ ко всей информации, касающейся событий, происходящих в этом трехмерном мире. С помощью расширения имен вы можете находить и даже изменять некоторые свойства. Используя окно Message, вы можете создавать скрипты, изменяющие свойства и объекты, и просматривать результаты. Продолжим выполнять шаги экскурсии.

8. Изучите панель Object Inspector. Дважды щелкните в пустом пространстве ниже поля Name, а затем напечатайте Member(«3dWorld»). (Это имя не чувствительно к регистру, и заглавные буквы в каждом слове нужны для облегчения чтения имен.) Нажмите клавишу Enter. Это имя теперь стало ссылкой к нашему элементу труппы (обратите внимание на появившийся символ «плюс» (+) слева от имени).

9. В Object Inspector щелкните по символу «плюс» (+) слева от нового имени. Теперь откроется всплывающее меню со списком информации, относящейся к трехмерному элементу труппы, как показано на рис. 19.12.



Рис. 19.12. Всплывающее меню символа «плюс» слева от имени объекта


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

Единственным способом добавления новых объектов без применения 3DPI Xtra является использование Lingo. Продолжим выполнять шаги.

11. В окне Message щелкните по кнопке Alphabetic 3D Lingo, показанной на рис. 19.13. Выберите newModelResource.



Рис. 19.13. Кнопка Alphabetic 3D LJngo в окне Message

Подсказка

Быстрым способом открыть определение любого слова Lingo является щелчок правой кнопкой по этому слову в окне Script и последующий выбор Lingo Help.


12. Director сейчас сгенерировал корректный синтаксис для создания ресурса сферической модели. Так как для вас уже выделено whichMember, то напечатайте3dWorld вместо этой фразы. Замените другие «подмены» так, чтобы теперь строка читалась следующим образом:

R = member(«3dWorld»).ne-wModelResource(«ballResource», #sphere)

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

13. Поместите курсор в конец строки и нажмите клавишу Enter.

R является произвольной переменной, которая в данный момент содержит ссылку к только что созданному вами ресурсу. Устанавливая переменную R таким способом, вы облегчаете дальнейшую работу и поддерживаете операторы Lingo в кратком и управляемом виде. Отметьте для себя, что R означает Resource.

14. Вы создали ресурс сферы, но не сферическую модель, и поэтому все еще ничего не видите на сцене. Давайте создадим модель из ресурса сферы.

15. Окно Message должно быть открыто. Если нет, то откройте его. В новой строке, ниже вашего предыдущего сообщения, напечатайте следующее.

Meraber(«3dWorld»).Newmodel(«ball», R)

Обратите внимание на использование R в этой строке. Вы только что приказали Director'y создать новую модель с именем ball, используя R как ее ресурс.

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

16. В окне Message в новой строке, ниже последней напечатанной вами строки, напечатайте updateStage, а затем нажмите клавишу Enter.

17. В Object Inspector щелкните по символу «плюс» (+) слева от заголовка modelResource. Внутри вы найдете два ресурса модели: plane(«defaultModel»), который вы создали при добавлении элемента труппы, и ваш новый ресурс сферы, обозначенный в списке как sphere(«battResource»). (Вам, может быть, придется немного расширить Object Inspector, чтобы прочитать правый столбец.) Обратите внимание, что каждый из этих ресурсов также имеет слева символ «плюс» (+), указывающий на то, что внутри имеются дополнительные свойства.

18. Щелкните по символу «плюс» (+) слева от plane(«defaultModel»). Изучите перечисленные свойства, как показано на рис. 19.14.



Рис. 19.14. Свойства внутри plane(«DefaultModel»)


Некоторые перечисленные свойства (такие как Name и Туре) не могут быть изменены, но другие можно изменять. Для создания сферы достаточно было двух простых строк. Хотя это было не так трудно, но все же хорошо было бы обойтись без всего этого печатания. Теперь настало время установить 3DPI Xtra и действительно пойти вперед. Этот файл сохранять не нужно.