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


Авторские права

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

Здесь можно скачать бесплатно "Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Thomas Larsson - Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Рейтинг:
Название:
Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Автор:
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

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

Описание и краткое содержание "Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода" читать бесплатно онлайн.



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






    drv.show_debug_info = True


    var1 = drv.variables.new()

    var1.name = 'y'

    var1.type = 'TRANSFORMS'


    targ1 = var1.targets[0]

    targ1.id = rig

    targ1.transform_type = 'LOC_Y'

    targ1.bone_target = 'Driver'

    targ1.use_local_space_transform = True


    var2 = drv.variables.new()

    var2.name = 'z'

    var2.type = 'TRANSFORMS'


    targ2 = var2.targets[0]

    targ2.id = rig

    targ2.transform_type = 'ROT_Z'

    targ2.bone_target = 'Driver'

    targ2.use_local_space_transform = True


    return 


if __name__ == "__main__":

    run((0,0,0))




Другие типы данных

Текст

Эта программа добавляет текстовый объект в 3D-пространство и устанавливает некоторые атрибуты. Заметьте, что тип данных здесь используется TextCurve; тип Text применяется для текста в текстовом редакторе.



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

# File text.py

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

import bpy

import math from math

import pi  


def run(origin):

    # Создание и именование объекта TextCurve

    bpy.ops.object.text_add(

        location=origin,

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

    ob = bpy.context.object

    ob.name = 'HelloWorldText'

    tcu = ob.data

    tcu.name = 'HelloWorldData'


    # Атрибуты TextCurve

    tcu.body = "Hello, world"

    tcu.font = bpy.data.fonts[0]

    tcu.offset_x = -9

    tcu.offset_y = -0.25

    tcu.shear = 0.5

    tcu.size = 3

    tcu.space_character = 2

    tcu.space_word = 4


    # Унаследованные атрибуты Curve (Кривая)

    tcu.extrude = 0.2

    tcu.use_fill_back = True

    tcu.use_fill_deform = True

    tcu.use_fill_front = True  


if __name__ == "__main__":

    run((0,0,0))


Слои

Эта программа иллюстрирует три метода установки объекта на новом слое:

1. Создать его на правильном слое.

2. Создать его в слое 1, и изменить Object.layer.

3. Создать его в слое 1, и использовать оператор для его перемещения.

Также показано, как изменять видимость слоёв.



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

# File layers.py

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

import bpy 


def createOnLayer(mat):

    for n in range(3, 8):

    # Создание n-угольника в слое n+11

        layers = 20*[False]

        layers[n+11] = True


        bpy.ops.mesh.primitive_circle_add(

            vertices=n,

            radius=0.5,

            fill=True,

            view_align=True,

            layers=layers,

            location=(n-3,0,0)

        )

        bpy.context.object.data.materials.append(mat)

    return 


def changeLayerData(mat):

    for n in range(3, 8):

        # Создание n-угольника в слое 1

        bpy.ops.mesh.primitive_circle_add(

            vertices=n,

            radius=0.5,

            fill=True,

            view_align=True,

            location=(n-3,1,0)

        )

        bpy.context.object.data.materials.append(mat)


        # Затем перемещение его на новый слой

        ob = bpy.context.object

        ob.layers[n+11] = True


        # Удаление его из других слоев.

        layers = 20*[False]

        layers[n+11] = True

        for m in range(20):

            ob.layers[m] = layers[m]

    return 


def moveLayerOperator(mat):

    for n in range(3, 8):

        # Создание n-угольника в слое 1

        bpy.ops.mesh.primitive_circle_add(

            vertices=n,

            radius=0.5,

            fill=True,

            view_align=True,

            location=(n-3,2,0)

        )

        bpy.context.object.data.materials.append(mat)


        # Затем перемещение его на новый слой

        layers = 20*[False]

        layers[n+11] = True

        bpy.ops.object.move_to_layer(layers=layers)

    return  


def run():

    # Создание нескольких материалов

    red = bpy.data.materials.new('Red')

    red.diffuse_color = (1,0,0)

    green = bpy.data.materials.new('Green')

    green.diffuse_color = (0,1,0)

    blue = bpy.data.materials.new('Blue')

    blue.diffuse_color = (0,0,1)


    # Три метода перемещения объектов в новый слой

    createOnLayer(red)

    changeLayerData(green)

    moveLayerOperator(blue)


    # Выбор слоёв 14 - 20

    scn = bpy.context.scene

    bpy.ops.object.select_all(action='SELECT')

    for n in range(13,19):

        scn.layers[n] = True


    # Отмена выбора слоёв 1 - 13, но только впоследствии.

    # Похоже, по крайней мере один слой должен быть выбран всегда.

    for n in range(0,13):

        scn.layers[n] = False


    # Отмена выбора слоя 16

    scn.layers[15] = False

    return


if __name__ == "__main__":

    run()


Группы

Эта программа показывает, как создавать группы, добавлять объекты в группы, и пустышки, которые дублируют группы. Мы добавляем четыре группы, четыре меш-объекта назначаются каждый в две группы, и четыре текстовых объекта назначаются каждый в единственную группу. Затем мы добавляем четыре пустышки, которые будут дубликатами (dupli-group) четырёх групп. Наконец пустышки перемещаются, так что каждая колонка содержит элементы в этой группе.



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

# File groups.py

# Create groups

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

import bpyimport mathutils

from mathutils

import Vector


# Слои

Display = 5

Build = 6 


def setObject(name, mat):

    ob = bpy.context.object

    ob.name = name

    ob.data.materials.append(mat)

    return ob


# Перемещение объекта в данный слой.

def moveToLayer(ob, layer):

    ob.layers[layer] = True

    for n in range(20):

        if n != layer:

            ob.layers[n] = False

    return


  # Добавление объекта TextCurve в слое 13

def addText(string, loc):

    tcu = bpy.data.curves.new(string+'Data', 'FONT')

    text = bpy.data.objects.new(string+'Text', tcu)

    tcu.body = string

    tcu.align = 'RIGHT'

    text.location = loc

    bpy.context.scene.objects.link(text)

    # Нужно изменить text.layers после того, как текст будет привязан к сцене,

   # в противном случае изменение не сможет сработать. moveToLayer(text, Build)

    return text 


def run():

    # Создание двух материалов

    red = bpy.data.materials.new('RedMat')

    red.diffuse_color = (1,0,0)

    green = bpy.data.materials.new('GreenMat')

    green.diffuse_color = (0,1,0)


    # Позиции

    origin = Vector((0,0,0))

    dx = Vector((2,0,0))

    dy = Vector((0,2,0))

    dz = Vector((0,0,2))


    # Размещение объектов на слой построения (Build)

    layers = 20*[False]

    layers[Build] = True


    # Создание объектов

    bpy.ops.mesh.primitive_cube_add(location=dz, layers=layers)

    redCube = setObject('RedCube', red)

    bpy.ops.mesh.primitive_cube_add(location=dx+dz, layers=layers)

    greenCube = setObject('GreenCube', green)

    bpy.ops.mesh.primitive_uv_sphere_add(location=2*dx+dz, layers=layers)

    redSphere = setObject('RedSphere', red)

    bpy.ops.mesh.primitive_uv_sphere_add(location=3*dx+dz, layers=layers)

    greenSphere = setObject('GreenSphere', green)


    # Создание текстов

    redText = addText('Red', -dx)

    greenText = addText('Green', -dx)

    cubeText = addText('Cube', -dx)

    sphereText = addText('Sphere', -dx)


    # Создание групп

    redGrp = bpy.data.groups.new('RedGroup')

    greenGrp = bpy.data.groups.new('GreenGroup')

    cubeGrp = bpy.data.groups.new('CubeGroup')

    sphereGrp = bpy.data.groups.new('SphereGroup')


   # Таблица членов групп

 members = {

 redGrp : [redCube, redSphere, redText],

 greenGrp : [greenCube, greenSphere, greenText],

 cubeGrp : [redCube, greenCube, cubeText],

 sphereGrp : [redSphere, greenSphere, sphereText] }


    # Привязка объектов к группам

    for group in members.keys():

        for ob in members[group]:

            group.objects.link(ob)


    # Список пустышек


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

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

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


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Thomas Larsson

Thomas Larsson - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

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

Отзывы читателей о книге "Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.