Чтение онлайн

на главную

Жанры

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

Larsson Thomas

Шрифт:

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:

Поделиться:
Популярные книги

Мимик нового Мира 15

Северный Лис
14. Мимик!
Фантастика:
боевая фантастика
юмористическая фантастика
постапокалипсис
рпг
фэнтези
5.00
рейтинг книги
Мимик нового Мира 15

Офицер-разведки

Поселягин Владимир Геннадьевич
2. Красноармеец
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Офицер-разведки

Релокант 6. Я - Аид

Flow Ascold
6. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Релокант 6. Я - Аид

Золушка по имени Грейс

Ром Полина
Фантастика:
фэнтези
8.63
рейтинг книги
Золушка по имени Грейс

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

Войны Наследников

Тарс Элиан
9. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Войны Наследников

Внешняя Зона

Жгулёв Пётр Николаевич
8. Real-Rpg
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Внешняя Зона

Последний Паладин

Саваровский Роман
1. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин

Провинциал. Книга 2

Лопарев Игорь Викторович
2. Провинциал
Фантастика:
космическая фантастика
рпг
аниме
5.00
рейтинг книги
Провинциал. Книга 2

Помещица Бедная Лиза

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Помещица Бедная Лиза

Вечный. Книга V

Рокотов Алексей
5. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга V

Стрелок

Астахов Евгений Евгеньевич
5. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Стрелок

Личник

Валериев Игорь
3. Ермак
Фантастика:
альтернативная история
6.33
рейтинг книги
Личник

(Противо)показаны друг другу

Юнина Наталья
Любовные романы:
современные любовные романы
эро литература
5.25
рейтинг книги
(Противо)показаны друг другу