Выбрать главу

Следующие две строки сначала создают объект Text3d и назначают его переменной hello. Объект Text3d будет иметь в Блендере имя HelloWorld, так что пользователи могут ссылаться на этот объект по этому имени. Также это имя, которое будет видно в окне Outliner, и в левом нижнем углу, если выбрать объект. Если там уже существует объект того же самого типа с этим именем, Блендер добавит цифровой суффикс к имени, чтобы сделать его уникальным. Например, HelloWorld мог бы стать HelloWord.001, если мы запустим этот скрипт дважды.

По умолчанию, вновь созданный объект Text3d будет содержать текст Text, так что мы изменяем его на Hello World! с помощью метода setText().

Вновь созданный в Блендере объект не видим по умолчанию, мы должны соединить его со Сценой, так что несколько следующих строк извлекают ссылку на текущую сцену и добавляют объект Text3d в неё. Объект Text3d не добавляется непосредственно к сцене, но метод scene.objects.new() вставляет объект Text3d в общий (generic) объект Блендера и возвращает ссылку на последний. Общий объект Блендера хранит информацию, общую для всех объектов, такую как позиция, в то время как объект Text3d хранит специфическую информацию, как, например, шрифт текста.

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

Внедрение скрипта в меню Блендера

Ваш собственный скрипт не должен быть гражданином второго сорта. Его можно сделать частью Блендера наравне с любым из скриптов, которые поставляются с Блендером. Его можно добавить к меню Add (добавить) в заголовке наверху окна 3D-вида.

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

Он может предоставить информацию системе помощи Блендера также, как любой другой скрипт. Следующие несколько строк кода делают это возможным:

"""

Name: 'HelloWorld'

Blender: 249

Group: 'AddMesh'

Tip: 'Create a Hello World text object'

"""

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

Name (строка) определяет имя скриптов так, как они появятся в меню

Blender (число) определяет минимально необходимую версию Блендера для использования скрипта

Group (строка) - подменю в меню скриптов, под которым этот скрипт должен быть сгруппирован

Если наши скрипты должны появиться в меню Add | Mesh в окне 3D-вида (также доступного по нажатию Пробела), этот параметр должен быть AddMesh. Если было бы нужно другое подменю в меню скриптов, то тут могло бы быть, например, Wizards или Object. Кроме необходимых меток, могут быть добавлены следующие дополнительные метки:

Version (строка) - версия скрипта в любом предпочитаемом вами формате.

Tip (строка) — информация, показываемая в подсказке, появляющейся над пунктом меню в меню Скриптов. Если скрипт принадлежит группе AddMesh, никаких подсказок показываться не будет, даже если мы определим её здесь.

 Внедрение скрипта в систему помощи Блендера

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

Если мы хотим ввести наш скрипт во встроенную систему помощи, нам нужно определить несколько дополнительных глобальных переменных:

__author__    = "Michel Anders (varkenvarken)"

__version__   = "1.00 2009/08/01"

__copyright__ = "(c) 2009"