Michel Anders - Написание скриптов для Blender 2.49

Тут можно читать онлайн Michel Anders - Написание скриптов для Blender 2.49 - бесплатно полную версию книги (целиком) без сокращений. Жанр: Программы. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
Michel Anders - Написание скриптов для Blender 2.49
  • Название:
    Написание скриптов для Blender 2.49
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.38/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Michel Anders - Написание скриптов для Blender 2.49 краткое содержание

Написание скриптов для Blender 2.49 - описание и краткое содержание, автор Michel Anders, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Расширьте мощность и гибкость Блендера с помощью Питона: высокоуровневого, легкого для изучения скриптового языка

Написание скриптов для Blender 2.49 - читать онлайн бесплатно полную версию (весь текст целиком)

Написание скриптов для Blender 2.49 - читать книгу онлайн бесплатно, автор Michel Anders
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Создание жуков — требует некоторой сборки

Наша миссия в том, чтобы строить простые существа из небольших образцов строительных блоков, которые могут сцепляться вместе. Схема нашего скрипта такая:

1. Импортировать строительные блоки для наших существ.

2. Отобразить пользовательский интерфейс

3. Собрать меш существа из строительных блоков так, как определил пользователь.

4. Вставить меш как объект в сцену.

Мы пройдём через скрипт постепенно, показывая важные части в подробностях. (Полный скрипт доступен как creepycrawlies.py.) Первый шаг включает создание частей тела, которые пригодны для сборки вместе. Это означает, что мы должны смоделировать эти части в Блендере, определяя подходящее соединение и отмечая это соединение как группу вершин. Затем мы экспортируем эти меши в виде кода на Питоне, используя скрипт, с которым мы столкнёмся снова в следующей главе, поскольку она имеет дело с группами вершин.

Сейчас мы используем этот сгенерированный код на Питоне просто как модуль, содержащий несколько списков вершин, определяющих каждую часть тела. Мы должны убедиться, что этот модуль находится где-нибудь в пути поиска Питона, например, .blender\scripts\bpymodules будет логичным выбором, или это может быть альтернативный пользовательский каталог скриптов. Файл на Питоне с мешевыми строительными блоками называется mymesh.py, так что первая часть нашего кода содержит следующий оператор import :

import mymesh

Создание пользовательского интерфейса

При рисовании простого интерфейса пользователя материалом будет использование Draw.Create () для создания необходимых кнопок, и сборка и инициализация этих кнопок с Draw.PupBlock()

Это несколько ограниченно по сравнению со вполне оперившимися библиотеками, доступными для некоторых языков программирования, но очень легко для использования. Основная идея в том, чтобы создать интерактивные объекты, такие, как например, кнопки, затем собрать их в окне диалога, чтобы показать пользователю. В то же самое время, окно диалога задаёт некоторые ограничения на величины, которые кнопка может порождать. Диалог или выпадающее меню будет показываться в позиции курсора. Блендер способен воспроизводить более сложный интерфейс пользователя, но пока мы придерживаемся основ.

Хотя Draw.Create() может воспроизвести кнопки-переключатели, а также кнопки ввода строк, для нашего приложения нам нужны только кнопки ввода для целых величин и величин с плавающей точкой. Тип переменной (например величина с плавающей точкой или целое), определяется типом значения по умолчанию, передаваемого в Draw.Create() . Кнопка OKбудет автоматически отображена функцией Draw.PupBlock() . Эта функция берет список кортежей как аргумент, где каждый кортеж определяет кнопку для отображения. Каждый кортеж состоит из текста, отображаемого на кнопке, объекта кнопки, созданного функцией Draw.Create() , допустимых минимума и максимума величины, и текста подсказки (tooltip), появляющегося при наведении курсора на кнопку.

Draw = Blender.Draw

THORAXSEGMENTS = Draw.Create(3) # Сегментов в торсе

TAILSEGMENTS = Draw.Create(5) # Сегментов в хвосте

LEGSEGMENTS = Draw.Create(2) # Сегментов торса с

# ногами

WINGSEGMENTS = Draw.Create(2) # Сегментов торса с

# крыльями

EYESIZE = Draw.Create(1.0) # Размер глаз

TAILTAPER = Draw.Create(0.9) # Конусность каждого

сегмента хвоста

if not Draw.PupBlock('Add CreepyCrawly', [

('Thorax segments:' , THORAXSEGMENTS, 2, 50,

'Number of thorax segments'),

('Tail segments:' , TAILSEGMENTS, 0, 50, 'Number of tail

segments'),

('Leg segments:' , LEGSEGMENTS, 2, 10,

'Number of thorax segments with legs'),

('Wing segments:' , WINGSEGMENTS, 0, 10,

'Number of thorax segments with wings'),

('Eye size:' , EYESIZE, 0.1,10, 'Size of the eyes'),

('Tail taper:' , TAILTAPER, 0.1,10,

'Taper fraction of each tail segment'),]):

return

Как Вы можете видеть, мы ограничиваем возможные величины наших кнопок ввода в разумном диапазоне (вплоть до 50 для сегментов торса и хвоста), чтобы исключить нежелательные результаты (огромные величины могут обрушить вашу систему, если память или процессорная мощность скудны).

Запоминание выбора

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

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

reg = Blender.Registry.GetKey('CreepyCrawlies',True)

try:

nthorax=reg['ThoraxSegments']

except:

nthorax=3

try:

ntail=reg['TailSegments']

except:

ntail=5

... <���подобный код для остальных параметров> …

Draw = Blender.Draw

THORAXSEGMENTS = Draw.Create(nthorax)

TAILSEGMENTS = Draw.Create(ntail)

LEGSEGMENTS = Draw.Create(nleg)

WINGSEGMENTS = Draw.Create(nwing)

EYESIZE = Draw.Create(eye)

TAILTAPER = Draw.Create(taper)

if not Draw.PupBlock('Add CreepyCrawly', [\

... <���идентичный код, как в предыдущем примере> …

return

reg={'ThoraxSegments':THORAXSEGMENTS.val,

'TailSegments' :TAILSEGMENTS.val,

'LegSegments' :LEGSEGMENTS.val,

'WingSegments' :WINGSEGMENTS.val,

'EyeSize' :EYESIZE.val,

'TailTaper':TAILTAPER.val}

Blender.Registry.SetKey('CreepyCrawlies',reg,True)

Фактические чтение и запись нашего ключа в реестре выделены. Аргумент True (Истина) указывает, что мы хотим извлечь наши данные с диска, если они не доступны в памяти, или записать их на диск также при сохранении, чтобы наш скрипт мог иметь доступ к этой сохраненной информации, даже если мы останавливали Блендер и перезапустили его позже. Фактически получаемый или записываемый ключ реестра - это словарь, который может содержать любые данные, которые нам нужны. Конечно, к настоящему времени ключа реестра может еще не существовать, в этом случае мы получим значение None (Ничто) - об этой ситуации заботится оператор try … except … .

Вся мощь графики Блендера

Всплывающий диалог достаточен для многих применений, но если он не соответствует вашим требованиям, модуль Блендера Draw имеет множество строительных блоков для создания интерфейса пользователя, но эти строительные блоки требуют больше усилий, чтобы склеить их вместе в рабочем приложении.

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

Интервал:

Закладка:

Сделать


Michel Anders читать все книги автора по порядку

Michel Anders - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Написание скриптов для Blender 2.49 отзывы


Отзывы читателей о книге Написание скриптов для Blender 2.49, автор: Michel Anders. Читайте комментарии и мнения людей о произведении.


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

Напишите свой комментарий
x