Написание скриптов для Blender 2.49
Шрифт:
Другая возможность, которую очень удобно включить, особенно при отладке скриптов - нумерация строк. (Возможно, Вы способны написать безупречный код с первого раза, но, к несчастью, ваш покорный слуга не настолько гениален.) Каждое сообщение Питона об ошибке, которое будет показано, будет иметь имя файла и номер строки, и ошибочная строка будет выделена. Но строки вызывающих функций, если такие имеются, не будут выделены, хотя номера их строк будут показаны в сообщении об ошибке, так что наличие номеров строк включенными позволит вам быстро найти вызывающий контекст проблемного места. Нумерация строк включается щелчком по кнопке с линиями.
Запускается скрипт посредством нажатия Alt + P. Ничто не отобразится в редакторе, если программа не столкнётся с ошибкой, но результат будет показан на консоли (то есть, в DOSBox'е или X-терминале, с которым стартует Блендер, не в интерактивной консоли Питона, с которой мы столкнулись ранее).
Первые шаги: Hello world
Традиция требует, чтобы все книги о программировании имели пример "hello world", и почему мы станем обижать людей? Мы осуществим и запустим скрипт, создающий, как иллюстрирующий пример, простой объект, и покажем как интегрировать этот скрипт в меню Блендера. Мы также покажем как, документировать его и сделать запись в справочной системе. Наконец, мы потратим несколько слов на аргументы за и против распространения скриптов в виде .blend– файлов, или в виде скриптов, которые пользователь сам должен устанавливать в каталог со скриптами.
Давайте напишем немного кода! Вы можете набрать следующие строки непосредственно в интерактивную консоль Питона, или Вы можете набрать новый текст в текстовом редакторе Блендера, и затем нажать Alt + P, чтобы запустить скрипт. Это - короткий скрипт, но мы пройдем через него довольно подробно, так как он отобразит множество ключевых аспектов API Питона в Блендере.
Первая строка идентифицирует этот скрипт как скрипт Блендера. Она необязательна для запуска скрипта, но если мы хотим быть способными сделать этот скрипт частью структуры меню Блендера, нам она нужна, так что лучше мы будем привыкать к этому сразу.
Вы найдете вторую строку (которая выделена) фактически в любом скрипте Блендера, поскольку она дает нам доступ к классам и функциям API Питона в Блендере. Подобно ей, третья строка дает нам доступ к специфическим подмодулям модуля Blender, которые нам нужны в этом скрипте. Конечно, мы могли бы иметь доступ к ним как к членам модуля Blender (например, Blender.Scene), но явный импорт немного уменьшит количество программного текста и повысит удобочитаемость.
Следующие две строки сначала создают объект Text3d и назначают его переменной
По умолчанию, вновь созданный объект Text3d будет содержать текст Text, так что мы изменяем его на Hello World! с помощью метода setText.
Вновь созданный в Блендере объект не видим по умолчанию, мы должны соединить его со Сценой, так что несколько следующих строк извлекают ссылку на текущую сцену и добавляют объект Text3d в неё. Объект Text3d не добавляется непосредственно к сцене, но метод scene.objects.new вставляет объект Text3d в общий (generic) объект Блендера и возвращает ссылку на последний. Общий объект Блендера хранит информацию, общую для всех объектов, такую как позиция, в то время как объект Text3d хранит специфическую информацию, как, например, шрифт текста.
Наконец, мы сообщаем оконному менеджеру обновить все окна, это обновление нужно из-за добавления нового объекта.
Ваш собственный скрипт не должен быть гражданином второго сорта. Его можно сделать частью Блендера наравне с любым из скриптов, которые поставляются с Блендером. Его можно добавить к меню Add (добавить) в заголовке наверху окна 3D-вида.
Он может предоставить информацию системе помощи Блендера также, как любой другой скрипт. Следующие несколько строк кода делают это возможным:
• Name (строка) определяет имя скриптов так, как они появятся в меню
• Blender (число) определяет минимально необходимую версию Блендера для использования скрипта
• Group (строка) - подменю в меню скриптов, под которым этот скрипт должен быть сгруппирован
Если наши скрипты должны появиться в меню Add | Mesh в окне 3D-вида (также доступного по нажатию Пробела), этот параметр должен быть AddMesh. Если было бы нужно другое подменю в меню скриптов, то тут могло бы быть, например, Wizards или Object. Кроме необходимых меток, могут быть добавлены следующие дополнительные метки:
• Version (строка) - версия скрипта в любом предпочитаемом вами формате.
• Tip (строка) — информация, показываемая в подсказке, появляющейся над пунктом меню в меню Скриптов. Если скрипт принадлежит группе AddMesh, никаких подсказок показываться не будет, даже если мы определим её здесь.
Блендер имеет встроенную систему подсказки, которая доступна в меню Help наверху экрана. Оно дает доступ к онлайн-ресурсам и к информации о зарегистрированных скриптах через пункт Scripts Help Browser (браузер помощи по скриптам). Если его выбрать, появятся выпадающие меню для каждой группы, где Вы можете выбрать скрипт и посмотреть его информацию помощи.
Если мы хотим ввести наш скрипт во встроенную систему помощи, нам нужно определить несколько дополнительных глобальных переменных: