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

Здесь есть возможность читать онлайн «Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Третье издание, расширенное и обновлённое для Blender 2.57

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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 - фото 7

#----------------------------------------------------------

# 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

for v in [19, 20, 23, 24]:

pt = frontFwd.data[v].co

pt[1] = pt[1] - 1

# Добавление ключей TopUp: верхние вершины перемещаются на единицу вверх.

# TopUp_L и TopUp_R влияют только на левые и правые половины, соответственно

keylist = [(None, ''), ('Left', '_L'), ('Right', '_R')]

for (vgrp, suffix) in keylist:

bpy.ops.object.shape_key_add(None)

topUp = ob.active_shape_key

topUp.name = 'TopUp' + suffix

if vgrp:

topUp.vertex_group = vgrp

for v in [0, 1, 9, 10, 17, 18, 25]:

pt = topUp.data[v].co

pt[2] = pt[2] + 1

# Установка позы ключам формы

for shape in ob.data.shape_keys.key_blocks:

shape.value = random.random()

return

if __name__ == "__main__":

# Создание пяти объектов с произвольными ключами формы

for j in range(5):

run((3*j,0,0))

Применение модификатора массива (array)

Эта программа создает цепь из десяти звеньев. Звено является простым тором, масштабированным вдоль оси x. Мы добавляем звену модификатор массива, где смещение управляется пустышкой (empty). Наконец, модификатор массива применяется (apply), создавая из цепи единственный меш.

File chainpy - фото 8

#----------------------------------------------------------

# File chain.py

# Creates an array modifier and applies it# Update to API rev. 36523

#----------------------------------------------------------

import bpy

import math

from math import pi

def run(origin):

# Добавление единственного звена цепи к сцене

bpy.ops.mesh.primitive_torus_add(

#major_radius=1,

#minor_radius=0.25,

major_segments=12,

minor_segments=8,

use_abso=True,

abso_major_rad=1,

abso_minor_rad=0.6,

location=(0,0,0),

rotation=(0,0,0))

# Масштабирование тора вдоль оси x

ob = bpy.context.object

ob.scale = (0.7, 1, 1)

bpy.ops.object.transform_apply(scale=True)

# Создание пустышки

bpy.ops.object.add(

type='EMPTY',

location=(0,1.2,0.2),

rotation=(pi/2, pi/4, pi/2))

empty = bpy.context.object

# Звено цепи снова делается активным

scn = bpy.context.scene

scn.objects.active = ob

# Добавление модификатора

mod = ob.modifiers.new('Chain', 'ARRAY')

mod.fit_type = 'FIXED_COUNT'

mod.count = 10

mod.use_relative_offset = 0

mod.use_object_offset = True

mod.offset_object = empty

# Применение модификатора

bpy.ops.object.visual_transform_apply()

bpy.ops.object.modifier_apply(apply_as='DATA', modifier='Chain')

# Перемещение цепи на место

bpy.ops.transform.translate(value=origin)

# Пустышка больше не нужна

scn.objects.unlink(empty)

del(empty)

return

if __name__ == "__main__":

run((0,3,0))

Арматуры

Арматура

Эта программа создаёт арматуру.

#---------------------------------------------------

# File armature.py

#---------------------------------------------------

import bpy, math

from mathutils import Vector, Matrix

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x