Библиотека knigago >> Компьютеры: Языки и системы программирования >> Python >> Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 2207, книга: Свидание с Нефертити
автор: Владимир Федорович Тендряков

"Свидание с Нефертити" Владимира Тендрякова - это смелая и провокационная советская повесть, которая исследует темы искусства, истории и морали в период оттепели. Сюжет вращается вокруг Александра Владыкина, молодого историка, которого отправляют в Египет для изучения древнеегипетских храмов. Погружаясь в историю фараонов и королев, Александр сталкивается с Нефертити, прекрасной царицей, известной своей знаменитой скульптурой. Через диалоги и размышления Тендряков мастерски...

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

Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Книга - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода.  Thomas Larsson  - прочитать полностью в библиотеке КнигаГо
Название:
Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Thomas Larsson

Жанр:

Самиздат, сетевая литература, Учебники и самоучители по компьютеру, Литература ХXI века (эпоха Глобализации экономики), Python

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

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

Третье издание, расширенное и обновлённое для Blender 2.57
К этой книге применимы такие ключевые слова (теги) как: Blender, Pyton

Читаем онлайн "Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода". [Страница - 3]

было увидеть рядом с пирамидой. Для этого требуется его выбрать.


Книгаго: Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода. Иллюстрация № 6
#----------------------------------------------------------

# 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) и четырьмя ключами формы.


Книгаго: Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода. Иллюстрация № 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), создавая из цепи единственный меш.


Книгаго: Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода. Иллюстрация № 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,

--">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.