Sunday, September 5, 2010

начало

итак, задача номер один. менять какие то атрибуты целой куче объектов за раз.

пока поковыряемся в основах...

в консоли (которая внутри блендера) можно смотреть весь блендеровский апиай выведенный в питон (автокомплишн по ctrl+space). также можно посмотреть аутлайнер в режиме датаблоков - помогает понять что откуда растёт. плюс есть кое-какая информация в подсказке которая всплывает при наведении на какой нибудь элемент.

полезные переменные:
bpy.context.mode - текущий режим блендера (Object, Edit, Sculpt etc.,)
bpy.context.object = bpy.context.active_object - активный объект
bpy.context.selected_objects - выбранные объекты, включая активный
bpy.data.materials, bpy.data.objects и т.д. - доступ к данным в файле.
bpy.context.scene.objects.active = obj - назначить новый активный объект

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

вот  скрипт который меняет всем выделенным объектам меш на какой нужно. (впрочем это же можно сделать и штатными средствами блендера через ctrl+L, но нам интересен принцип)

import bpy
for o in bpy.context.selected_objects:
   o.data = bpy.data.meshes["y"]

for ... in ... : - цикл
o.data - меш у объекта
bpy.data.meshes["y"] - присваиваем новый меш объекту из сборища мешей в файле.

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

полезные ссылки:
вводная статья на инглише
примеры скриптов
список операторов
на оффсайте инфа
книжка по питону

No comments:

Post a Comment