Читаем Написание скриптов для Blender 2.49 онлайн бесплатно
Написание скриптов для Blender 2.49
Расширьте мощность и гибкость Блендера с помощью Питона: высокоуровневого, легкого для изучения скриптового языка
Компьютеры и Интернет / Программирование, программы, базы данныхРасширьте мощность и гибкость Блендера с помощью Питона: высокоуровневого, легкого для изучения скриптового языка
Credits
• Author Michel Anders
• Reviewer Pang Lih-Hern
• Acquisition Editor Sarah Cullington
• Development Editor Mehul Shetty
• Technical Editor Namita Sahni
• Indexers Hemangini Bari, Rekha Nair
• Editorial Team Leader Akshara Aware
• Project Team Leader Lata Basantani
• Project Coordinator Shubhanjan Chatterjee
• Proofreader Jeff Orloff
• Graphics Geetanjali Sawant
• Production Coordinator Melwyn D'sa
• Cover Work Melwyn D'sa
Michel Anders, После завершения его исследований химии и физики, где он тратил больше времени на компьютерное моделирование, чем на реальные эксперименты, он понял что его реальные интересы лежат в области IT и технологий Internet. Он работал как IT менеджер для нескольких различных компаний, включая провайдера Internet и больницу.
К настоящему времени он управляет R&D отделом в Aia Software, ведущим разработчиком программного обеспечения композиции документа (?? document composition software). Он счастливо живет на небольшой, преобразованной ферме со своим партнером, 3 кошками, и 12 козлами.
Он использует Блендер с версии 2.32, хотя он первым признаёт, что его искусство в лучшем случае наивно. Он любит помогать людям с Блендером и вопросам, связанным с Питоном и к нему можно обращаться, на blenderartists.org он известен как "varkenvarken".
Сначала, я хотел бы благодарить всех замечательных людей в Packt Publishing. Без их помощи эта книга не была бы написана. Также, я хотел бы поблагодарить своего партнера и моих коллег по работе, мирящихся с моими бесконечными переговорами о Блендере. Наконец, я хотел бы поблагодарить всех тех людей в сообществе Блендера, которые вместе сделали Блендер таким замечательным приложением.
Блендер несомненно является наиболее мощным и разносторонним 3D-пакетом, доступным с открытыми исходными текстами. Его функциональность близка к профессиональным пакетам, или даже превосходит многие из них. Встроенный в Блендер интерпретатор языка Питон играет важную роль в наращивании этой мощности и позволяет расширять функциональность ешё дальше. Тем не менее, освоение написания скриптов языка и знакомство со многими возможностями, которые предлагает Блендер через свой Питон-API может быть непростым предприятием.
Эта книга покажет, как получить максимум от Блендера, показывая практические решения многих реальных проблем. Каждый пример является полностью рабочим скриптом, который объясняется шаг за шагом самым подробным образом.
Все примеры в книге используют Блендер 2.49 (доступный на сайте www.blender.org) и встроенный язык Питон 2.6.x. Многие примеры допускают, что у вас есть полный дистрибутив Питона (www.python.org). В Главе 1, Расширение Блендера с помощью Питона, Вам рассказывается как установить полный дистрибутив, если Вы его ещё не имеете. Блендер и Питон - платформонезависимые, и все примеры должны работать одинаково хорошо в Windows, Linux, и Mac. Несколько дополнительных модулей могут также использоваться, и инструкции по их загрузке предусмотрены, где это необходимо. Все примеры могут быть загружены с веб-сайта издателя (http://www.packtpub.com).
Эта книга предназначена для пользователей, довольных Блендером, как инструментом моделирования и рендеринга, и которые хотят расширить свои навыки использованием скриптов Блендера для автоматизации трудоемких задач и достижения результатов, в противном случае невозможных. Опыт в Блендере имеет важное значение, а также небольшой опыт в программировании на Питоне.
В этой книге Вы найдете множество стилей текста, которые определяют различные типы информации. Вот некоторые примеры этих стилей, и объяснения их значений.
Кодовые слова в тексте показаны следующим образом: "файл на Питоне с мешевыми строительными блоками называется mymesh.py, так что первая часть нашего кода содержит следующий оператор import."
Блок кода вставляется следующим образом:
def event(evt, val):
if evt == Draw.ESCKEY:
Draw.Exit() # exit when user presses ESC
return
Когда мы хотим привлечь ваше внимание к конкретной части блока кода, важные строки или пункты показываются жирным шрифтом:
def error(text):
Draw.Register(lambda:msg(text), event, button_event)
Любая командная строка ввода или вывода пишется следующим образом:
Новые условия и важные слова показываются жирным шрифтом. Слова, которые Вы видите на экране в меню или в диалогах, например, появляются в тексте подобно этому: "Затем мы можем применить эту группу вершин к параметру плотности на дополнительной панели контекста частиц, чтобы управлять эмиссией."
Предупреждения или важные примечания появляются в блоке, подобном этому.
Подсказки и хитрости появляются вот так.
Обратная связь с нашими читателеми всегда приветствуется. Сообщите то, что Вы думаете об этой книге - что Вам понравилось или может быть не понравилось. Обратная связь с Читателем важна для нас, чтобы разрабатывать издания, от которых Вы действительно получите максимальную отдачу.
Для общей обратной связи, просто пошлите эл.почту на feedback@packtpub.com, и упомяните название книги в теме вашего сообщения.
Если есть книга, которая Вам нужна, и Вы хотели бы увидеть, как мы её опубликовали, пожалуйста пошлите нам заметку в SUGGEST A TITLE (Предлагаем издание) в www.packtpub.com или эл.почте suggest@packtpub.com.
Если существует тема, в которой вы являетесь экспертом и Вы заинтересованы в написании или содействии написанию книги об этом, смотрите наше руководство автора по адресу www.packtpub.com/authors.
Теперь, когда Вы - гордый владелец книги Packt, у нас есть множество вещей Вам в помощь, чтобы Вы могли получить максимум от вашего приобретения.
Загрузка примеров кода для книги
Посетите https://www.packtpub.com//sites/default/files/downloads/0400_Code.zip, чтобы непосредственно загрузить код примера. Загружаемые файлы содержат инструкции о том, как их использовать.
Хотя мы заботились о гарантировании точности нашего содержимого, ошибки случаются. Если Вы найдёте ошибку в одной из наших книг - может быть ошибку в тексте или в коде, мы будем благодарны, если Вы сообщите нам об этом. Сделав так, Вы можете оградить других читателей от расстройства и поможете нам улучшить последующие версии этой книги. Если Вы найдёте любые опечатки, пожалуйста сообщите о них, посетив http://www.packtpub.com/support, выбрав вашу книгу, нажмите на ссылку let us know, и введите детали ваших опечаток. Как только ваши опечатки будут проверены, ваше сообщение будет принято и опечатки будут загружены на наш веб-сайт или добавлены к любому списку существующих опечаток, в секции Errata этого издания. Любые существующие опечатки можно увидеть, выбрав ваше издание в http://www.packtpub.com/support.
Прежде, чем мы начнём разработку скриптов в Блендере, мы во всяком случае, должны удостовериться, что у нас есть все необходимые инструменты. После этого мы должны познакомиться этими инструментами, чтобы мы могли с уверенностью использовать их. В этой главе, мы посмотрим на:
• Что можно и чего нельзя выполнить с помощью Питона в Блендере
• Как установить полный дистрибутив Питона
• Как использовать встроенный редактор
• Как запускать скрипты на Питоне
• Как изучать встроенные модули
• Как писать простой скрипт, который добавляет объект в сцену Блендера
• Как регистрировать скрипт в меню скриптов Блендера
• Как документировать ваш скрипт в дружественном к пользователю виде
• Как распространять скрипт
С таким количеством пунктов кажется нужно очень много изучить, но к счастью, кривая обучения не такая уж крутая, как она могла бы показаться. Давайте просто по-быстрому наберём несколько строк на Питоне, чтобы разместить простой объект в нашей сцене Блендера, просто, чтобы показать что мы можем, перед тем, как мы уйдём с головой в более глубокие воды.
1. Запустите Блендер с пустой сценой
2. Откройте интерактивную консоль Питона (посмотрите на скриншот вверху, чтобы увидеть, где её найти).
3. Наберите следующие строки (заканчивайте каждую с помощью Enter/Return).
mesh = Mesh.Primitives.Monkey()
Scene.GetCurrent().objects.new(mesh,'Suzanne')
Window.RedrawAll()
Вуаля! Это - все, что нужно для добавления в сцену Сюзанны, знаменитого талисмана Блендера.





