Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода - [2]

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

>False, False, False, False, False, False, False))


Когда мы добавляем UV-сферу из меню, у неё всегда есть 32 сегмента, 16 колец, и т.п.. Но несложно выяснить, как мы должны вызывать функцию, чтобы получить сферу с другими данными, например, 12 сегментов (segments), 6 колец (rings), радиус 3 (radius), и отцентрированную в (1, 1, 1):


>bpy.ops.mesh.primitive_uv_sphere_add(

>segments=12,

>rings=6,

>size=3,enter_editmode=True,

>location=(1, 1, 1))


В окно сообщений записывается только выполненный оператор, а не, например, установленная величина.



В последних версиях Блендера, скриптовый след печатается в окне Инфо, которое можно найти, опуская верхнюю строку меню.



• Учиться на программах других людей. Скрипты, которые поставляются встроенными с Блендером — большой источник вдохновения.


• Также процветает он-лайн сообщество людей, пишущих скрипты на Питоне в BlenderArtist


От переводчика:

На мой взгляд, читатель этих заметок должен уже иметь некоторый опыт программирования на Питоне для Блендера. Эти заметки отлично подходят на случай, если, например, вам нужно быстро подглядеть, какой конкретно метод отвечает за добавление кости в арматуру и какой у него синтаксис, но при этом вы уже имеете общее представление об этом или уже писали такую программу для Блендера 2.4.


Для новичков же моя рекомендация такова:

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

Когда у вас уже появится представление о программировании на Питоне, рекомендую прочитать книгу Написание скриптов для Blender 2.49 (в оригинале Blender 2.49 Scripting), автор Michel Anders, которую я недавно перевёл. В ней, в отличие от этих заметок, подробно рассказывается о почти каждом аспекте программирования для Блендера, тщательно объясняется назначение большинства строк во всех многочисленных программах-примерах.


Когда вы почувствуете, что ваш уровень в программировании для Блендера приподнялся над отметкой "новичок", тогда эти заметки смогут оказать вам реальную помощь при переходе к использованию API Блендера 2.5.


Меши

Меш

Эта программа создает два меша. Первый — закрытая пирамида, как с треугольными, так и с четырёхугольными гранями. Второй — проволочный треугольник. Имена обоих мешей отображаются. Треугольник сдвигается вбок, так чтобы его можно было увидеть рядом с пирамидой. Для этого требуется его выбрать.



>#----------------------------------------------------------

># File meshes.py

>#----------------------------------------------------------

>import bpy


>def createMesh(name, origin, verts, edges, faces):

>    # Создание меша и объекта

>    me = bpy.data.meshes.new(name+'Mesh')

>    ob = bpy.data.objects.new(name, me)

>    ob.location = origin

>    ob.show_name = True

>    # Привязка объекта к сцене

>    bpy.context.scene.objects.link(ob)


>    # Создание меша из передаваемых списков вершин, рёбер, граней.

># Или рёбра или грани должны быть [], иначе Вам нужны проблемы

>    me.from_pydata(verts, edges, faces)


>    # Обновляет меш с новыми данными

>    me.update(calc_edges=True)

>    return ob


>def run(origin):

>    (x,y,z) = (0.707107, 0.258819, 0.965926)

>    verts1 = ((x,x,-1), (x,-x,-1), (-x,-x,-1), (-x,x,-1), (0,0,1))

>    faces1 = ((1,0,4), (4,2,1), (4,3,2), (4,0,3), (0,1,2,3))

>    ob1 = createMesh('Solid', origin, verts1, [], faces1)

>    verts2 = ((x,x,0), (y,-z,0), (-z,y,0))

>    edges2 = ((1,0), (1,2), (2,0))

>    ob2 = createMesh('Edgy', origin, verts2, edges2, [])


>    # Сдвигает второй объект с дороги

>    ob1.select = False

>    ob2.select = True

>    bpy.ops.transform.translate(value=(0,2,0))


>return if __name__ == "__main__":

>    run((0,0,0))


Группы вершин и ключи формы

Эта программа добавляет UV-сферу с двумя группами вершин (Left И Right) и четырьмя ключами формы.



>#----------------------------------------------------------

># File shapekey.py

>#----------------------------------------------------------

>import bpy, random


>def run(origin):

>    # Добавление UV-сферы

>    bpy.ops.mesh.primitive_uv_sphere_add(

>        segments=6, ring_count=5, size=1, location=origin)

>    ob = bpy.context.object

>    ob.name = 'ShapeKeyObject'

>    ob.show_name = True


>    # Создаёт левую (Left) и правую (Right) группы вершин

>    left = ob.vertex_groups.new('Left')

>    right = ob.vertex_groups.new('Right')

>    for v in ob.data.vertices:

>        if v.co[0] > 0.001:

>            left.add([v.index], 1.0, 'REPLACE')

>        elif v.co[0] < -0.001:

>            right.add([v.index], 1.0, 'REPLACE')

>        else:

>            left.add([v.index], 0.5, 'REPLACE')

>            right.add([v.index], 0.5, 'REPLACE')


>    # Добавление ключа Basis (базовый)

>    bpy.ops.object.shape_key_add(None)

>    basis = ob.active_shape_key


>    # Добавление ключа FrontForward:

>    # передние вершины сдвигаются на единицу вперёд

>    # Пределы изменения (Slider) от -1.0 до +2.0

>    bpy.ops.object.shape_key_add(None)

>    frontFwd = ob.active_shape_key

>    frontFwd.name = 'FrontForward'

>    frontFwd.slider_min = -1.0 frontFwd.slider_max = 2.0


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Язык PL/SQL

В учебно-методическом пособии рассматриваются основы языка программирования PL/SQL, реализованного в системе управления базами данных Oracle Database Server. Приводятся сведения о поддерживаемых типах данных, структуре программ PL/SQL и выполнении SQL-предложений в них. Отдельно рассмотрено создание хранимых в базах данных Oracle программ PL/SQL – процедур, функций, пакетов и триггеров.


Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Параллельное программирование на С++ в действии. Практика разработки многопоточных программ

В наши дни компьютеры с несколькими многоядерными процессорами стали нормой. Стандарт С++11 языка С++ предоставляет развитую поддержку многопоточности в приложениях. Поэтому, чтобы сохранять конкурентоспособность, вы должны овладеть принципами и приемами их разработки, а также новыми средствами языка, относящимися к параллелизму.Книга «Параллельное программирование на С++ в действии» не предполагает предварительных знаний в этой области. Вдумчиво читая ее, вы научитесь писать надежные и элегантные многопоточные программы на С++11.


Справочник по JavaScript

Вниманию читателей предлагается справочник по JavaScript.Справочник предназначается для людей, уже освоивших азы программирования в JavaScript.Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.Дата выхода данной версии справочника: 12:33, 21 марта 2007.


Справочник по PHP

Вниманию читателей предлагается справочник по PHP.Справочник предназначается для людей, уже освоивших азы программирования на языке PHP.Справочник создан на основе информации, предоставленной на сайте «Справочник Web-языков» www.spravkaweb.ru.