Написание скриптов для Blender 2.49 - [8]

Шрифт
Интервал

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

>"""

>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"

>__url__       = ["author's site,

>http://www.swineworld.org"]

>__doc__       = """

>A simple script to add a Blender Text object to a scene.

>It takes no parameters and initializes the object to

>contain the text 'Hello World'

>"""

Перевод строки __doc__: Простой скрипт для добавления текстового объекта Блендера в сцену. Он не принимает никаких параметров и инициализирует объект, содержащий текст 'Hello World'

Эти переменные не требуют разъяснений, за исключением переменной >__url__, - она  принимает список строк, где каждая строка состоит из короткого описания, запятой, и ссылки. В результате экран помощи будет выглядеть похожим на это:




Теперь все, что нам осталось сделать, это проверить его и поместить этот скрипт в нужном месте. Мы можем протестировать скрипт, нажав Alt + P. Если не столкнулись ни с какими ошибками, результатом будет наш объект Hello World Text3d, добавленный к сцене, но скрипт не будет пока добавлен в меню Add.

Если скрипт должен быть добавлен к меню Add, он должен находиться в каталоге скриптов Блендера. Для того, чтобы сделать это, сначала сохраните скрипт, находящийся в текстовом буфере, в файл со значимым именем. Затем, убедитесь, что этот файл расположен в каталоге скриптов Блендера. Этот каталог называется scripts и является подкаталогом в .blender, каталоге конфигурации Блендера. Он расположен в каталоге установки Блендера или (на Windows) в каталоге Application Data. Простейший способ найти свой - просто посмотреть снова на переменную sys.path, чтобы увидеть, куда указывает каталог, заканчивающийся на .blender\scripts.

Скрипты, расположенные в каталоге скриптов Блендера, автоматически будут выполнены при запуске, так что наш скрипт hello world будет доступен в любое время, когда мы запустим Блендер. Если мы хотим, чтобы Блендер пересмотрел каталог скриптов (чтобы нам не пришлось перезапускать Блендер для появления нашего нового дополнения), мы можем выбрать Scripts | Update Menus в интерактивной консоли.


Не запутайтесь, оставайтесь объективным

Как Вы могли обратить внимание, слово объект используется в двух различных (возможно, запутанно) случаях. В Блендере почти все называется Object. Лампа (Lamp), например - Object, но точно так же им являются Куб (Cube) или Камера (Camera). Объекты - вещи, которыми может манипулировать пользователь, и они имеют, например, позицию и вращение.

Фактически, всё несколько более структурировано (или усложнено, как говорят некоторые): любой объект Блендера содержит ссылку на более специфический объект, называемый блок данных (data block). Когда Вы добавляете объект Куб в пустую сцену, у вас будет общий (generic) объект в некоторой позиции. Этот объект будет назван Cube и будет содержать ссылку на другой объект, Меш (Mesh). Это Меш-объект также будет назван по умолчанию Cube, но это - нормально, так как пространства имён объектов различного типа раздельны.

Это разделение свойств на общие для всех объектов (как например, позиция) и специфические свойства в единственном типе объекта (например, энергия