Дальнейшее развитие этой темы выходит за рамки книги, однако пользователи, основательно знакомые с веб-дизайном, быстро оценят возможности встроенного браузера для создания собственных интерфейсов.
Все, что вы хотели узнать про MEL
О MEL можно и нужно написать отдельный труд. Однако эта глава не резиновая, и пугать дальше пользователей программистами шутками просто нет возможности, да и места на страницах. Я постарался изложить логику применения языка MEL и приемы для его освоения.
Прежде, чем писать скрипт, вы должны хорошо себе представлять, что конкретно он должен делать. Затем нужно найти в документации (или методом опроса знакомых) нужные команды и организовать их в нужном порядке. Для этого вам могут понадобиться четыре вещи.
Во-первых, переменные для хранения промежуточных данных.
Во-вторых, условные переходы типа if() {} elsef}, для сравнения данных и выполнения наборов команд при выполнении определенных условий.
В-третьих, циклы для повторения набора команд нужное количество раз и для перебора объектов в списке.
В-четвертых, процедуры, позволяющие объявить целый набор команд в виде одной MEL-команды.
Освоив эти приемы, вы можете писать довольно непростые скрипты, постоянно расширяя свои возможности с помощью чтения документации и чужих программ.
Некоторые практические советы
Для тех, кто уже начал осваиваться в MEL и даже получать удовольствие от этого, приведу некоторое количество полезных советов.
1. Используйте MEL Studio Pro. Пожалейте свои глаза и нервы.
2. Не жалейте времени на комментарии. Особенно в начале файла. Вам самим, а также другим читателям и писателям будет легче разобраться в том, что делает ваш загадочный скрипт.
3. Если вы используете циклы, перед запуском скрипта сохраните где-нибудь его текст. Никакой защиты от бесконечного выполнения циклов не предусмотрено. Поэтому если условие выхода из цикла по каким-то причинам не будет достигнуто, MAYA просто «уйдет в кому», из которой вам ее не удастся вернуть.
4. Для хоть какой-то защиты от бесконечных циклов есть несколько вариантов. Первый
- официальный: использовать команду progressBar с флагом -islnterruptable для работы с main progress bar (см. описание команды progressBar). Второй - неофициальный: нужно скачать плагин keylnterrupt с сайта www.highend3d.com и использовать в цикле функцию опроса нажатых клавищ.
5. Если вы собираетесь запустить приложение с помощью команды system, но хотите, чтобы MAYA не зависала, ожидая окончания работы этого приложения, используйте команду start для операционной системы Windows. Например: system( “start notepad” ); Альтернативный способ, не зависящий от операционной системы, состоит в использовании команды ехес.
6. Если вы пишете скрипт, производящий манипуляции над объектами, старайтесь работать с выделенными объектами. Помните про шаблон
string $list[] = 'Is -si'; string $item; for($item in $list) t }
7. Если вы обращаетесь к конкретному объекту по имени, проверяйте наличие этого объекта в сцене. Если этого объекта не существует, ваш скрипт даст ошибку.