BlenderУкраина
Главная
Новости
Статьи
Уроки
Файлы
Ссылки
Форум
Галерея
Конкурсы

• Поиск по сайту

Логин:

Пароль:

 Запомнить
Восстановление пароля

Зарегистрироваться

Наше сообщество:

 Форум

 Галерея
       Все работы по рейтингу
       Все новые работы
       Последние комментарии

 Конкурсы
       Ежедневный
       На баннер
       Повтори
       Художественный

 Гостевая

 Радио

RSSНовости Blender
Последние сообщения форума

 Добавить новость
парфюмерияпарфюмерия : Днепропетровск : модели радиомоделирадиомодели модели на радиоуправлении
Сейчас на сайте 59 посетителей:
Indigo, ExeQt0r, Juliya, Logan, dfm, Dead, denis8424, Foma_Kinyaev, olkeyn, Ruslo, Олег, gibson1980, lezer, neXus, ZZZubec, Маг, CWLROS, Indigo и 41 гостей

Обсуждаемые темы:

Вопрос(ы) по созданию игр (denis8424)
Анекдоты (gibson1980)
WIP от MageasteR (olkeyn)
W.I.P. Uriy (Uriy)
Вопросы новичков и ответы (newman)
Может коллективно, на конкурсной, основе создадим игру? (O.din13)
Другие 3D редакторы (Иван П.)
Linux (Ruslo)
W.I.P. от Indigo (Indigo)
W.I.P ЖенькиАзарова (ЖенькаАзаров)
WIP suomi (Kausica)
Lux Render (SATtva)
Мультфильм "Ничего страшного!" (ExeQt0r)
Ежедневный Конкурс моделирования в Blender (Juliya)
WIP_Alexandr15 (Alexandr15)
Игра "Дом на скале" (Lunorcist)

Работа дня:

Кузнец
Ежедневный конкурс моделирования

Новые работы в галерее:


Автор: ~Rikkudo~

Автор: toSter

Автор: dopeless


Автоматический полив


Лекарственные травы


Прически и стрижки  

Уроки по созданию Python скриптов для Blender



Главная » Форум » Python и плагины » Уроки по созданию Python скриптов для Blender

Сообщений 29, на страницах: 1 2
добавить сообщение
Alehandro
специалист
Alehandro
Сообщений: 1143
Рейтинг: +112



4


04 декабря 2009 в 10:22Рейтинг: 0    0    0
#0


Люди подскажите пожалуйста какие нибудь уроки по созданию скриптов для Blender.


Alehandro
специалист
Alehandro
Сообщений: 1143
Рейтинг: +112



4


04 декабря 2009 в 10:40Рейтинг: 0    0    0
#1


Смотрел урок по питону на сайтк. Но есть ли какие нибудь новые уроки на русском языке?

3dmax
игродел
3dmax
Сообщений: 3652
Рейтинг: +166



04 декабря 2009 в 10:40Рейтинг: 0    0    0
#2


==[ туторы смотри, плюс есть уже такая тема,
http://blender3d.org.ua/forum/python/25.html

Alehandro
специалист
Alehandro
Сообщений: 1143
Рейтинг: +112



4


04 декабря 2009 в 10:56Рейтинг: 0    0    0
#3


Ссылка на документацию там есть, но я надеялся что есть учебник на русском языке вроде того что есть на сайте

3dmax
игродел
3dmax
Сообщений: 3652
Рейтинг: +166



04 декабря 2009 в 11:22Рейтинг: 0    0    0
#4


ну так там бы и спросил нефиг новые темы создавать.

Lanuhum
отшельник
Lanuhum
Сообщений: 5471
Рейтинг: +275



31 января 2010 в 12:55Рейтинг: 0    0    0
#5


Где прочитать, с чем связана ошибка:
File "/home/leonid/.blender/scripts/op/add_mesh_star.py", line 77, in AddStar
points = IntProperty(name="Points",
NameError: name 'IntProperty' is not defined

Строчку я вот так записал:

77 points = IntProperty(name="Points",
78 description="Number of points of the star",
79 default=1.0, min=2, max=256)

Lanuhum
отшельник
Lanuhum
Сообщений: 5471
Рейтинг: +275



31 января 2010 в 13:30Рейтинг: 0    0    0
#6


Попробуйте не ответьте! Я вам наподсказываю тогда тоже...

Morthan
переводчик
Morthan
Сообщений: 365
Рейтинг: +122



31 января 2010 в 15:32Рейтинг: 0    0    0
#7


> Попробуйте не ответьте! Я вам наподсказываю тогда тоже...

К.О. в моём лице отвечает: не определено имя IntProperty. :)
То есть, скорей всего, не импортирован тот модуль, где этот класс определяется.


Letun
игромастер
Letun
Сообщений: 1740
Рейтинг: +59



31 января 2010 в 16:05Рейтинг: 0    0    0
#8


Lanuhum, а чего тебе не понятно? переменная IntProperty не определена. Смотри где она у тебя там определяется

Morthan
переводчик
Morthan
Сообщений: 365
Рейтинг: +122



31 января 2010 в 16:12Рейтинг: 0    0    0
#9


Letun, исходя из контекста, IntProperty не переменная. А тип, скорее всего, класс. Определяться он должен в каком-то из Blender-овских скриптов. Я бы, наверное, нашёл папку с этими скриптами и grep-нул там IntProperty. Или даже class IntProperty.

Lanuhum
отшельник
Lanuhum
Сообщений: 5471
Рейтинг: +275



31 января 2010 в 16:54Рейтинг: 0    0    0
#10


Morthan, ну, ключей от квартиры, где деньги лежат у меня нету, но я расскажу, как я забрался в такие дебри. Я не знаю Питона. Отправной точкой послужили два скрипта про одно и то же. Это скрипт add_mesh_torus для 2.49 и для 2.50. Я открыл их и попробовал сравнить, а дальше, я взял скрипт add_mesh_star, написанный для 2.49:
http://wiki.blender.org/index.php/Extensions:Py/Scripts/2.4x
и попытался воссоздать из него для 2.50. У меня получилось вот что:

# -*- coding: utf-8 -*-
# ##### BEGIN GPL LICENSE BLOCK #####
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# ##### END GPL LICENSE BLOCK #####

# <pep8-80 compliant>
import bpy
import Mathutils

def add_star(points, outr_rad, innr_rad, depth):
Vector = Mathutils.Vector
RotationMatrix = Mathutils.RotationMatrix
verts = []
faces = []

segments = points * 2
tot_verts = segments * 2 + 2

half_height = depth * .5

verts.append( Vector(0, 0, half_height) )
verts.append( Vector(0, 0, -half_height) )

i = 2
alt_idx = 0
for index in xrange(segments):
mtx = RotationMatrix( (360 * float(index)/segments)+90, 3, 'z' )

radius = alt_idx and PREF_INNR_RAD or PREF_OUTR_RAD

verts.append( Vector(radius, 0, half_height) * mtx )
it1 = i
i+=1

verts.append( Vector(radius, 0, -half_height) * mtx )
ib1 = i
i+=1

if i>4:
faces.append( (it2, it1, 0) )
faces.append( (it1, it2, ib2, ib1) )
faces.append( (ib1, ib2, 1) )

it2 = it1
ib2 = ib1

alt_idx = 1 - alt_idx

faces.append( (tot_verts-2, 2, 0) )
faces.append( (3, 2, tot_verts-2, tot_verts-1) )
faces.append( (3, tot_verts-1, 1) )

return verts, faces


class AddStar(bpy.types.Operator):
'''Add a star mesh.'''
bl_idname = "mesh.primitive_star_add"
bl_label = "Add Star"
bl_register = True
bl_undo = True

points = IntProperty(name="Points",
description="Number of points of the star",
default=1.0, min=2, max=256)
outer_radius = FloatProperty(name="Outer Radius",
description="Outer Radius of the star",
default=1, min=0.01, max=100.0)
inner_radius = IntProperty(name="Inner Radius",
description="Inner Radius of the star",
default=0.25, min=0.01, max=100.0)
depth = IntProperty(name="Depth",
description="Depth of the star",
default=1, min=0.01, max=100)


def execute(self, context):

if self.properties.use_abso == True:
extra_helper = (self.properties.abso_outer_rad - self.properties.abso_inner_rad) * 0.5
self.properties.outer_radius = self.properties.abso_inner_rad + extra_helper
self.properties.inner_radius = extra_helper

verts_loc, faces = add_torus(self.properties.points,
self.properties.outer_radius,
self.properties.inner_radius,
self.properties.depth)

mesh = bpy.data.meshes.new("Star";)

mesh.add_geometry(int(len(verts_loc) / 3), 0, int(len(faces) / 4))
mesh.verts.foreach_set("co", verts_loc)
mesh.faces.foreach_set("verts_raw", faces)

scene = context.scene

# ugh
for ob in scene.objects:
ob.selected = False

mesh.update()
ob_new = bpy.data.objects.new("Star", 'MESH';)
ob_new.data = mesh
scene.objects.link(ob_new)
ob_new.selected = True

ob_new.location = scene.cursor_location

obj_act = scene.objects.active

if obj_act and obj_act.mode == 'EDIT':
bpy.ops.object.mode_set(mode='OBJECT';)

obj_act.selected = True
scene.update() # apply location
#scene.objects.active = ob_new

bpy.ops.object.join() # join into the active.

bpy.ops.object.mode_set(mode='EDIT';)
else:
scene.objects.active = ob_new
if context.user_preferences.edit.enter_edit_mode:
bpy.ops.object.mode_set(mode='EDIT';)

return {'FINISHED'}


# Register the operator
bpy.types.register(AddTorus)

# Add to the menu
menu_func = (lambda self, context: self.layout.operator(AddTorus.bl_idname,
text="Star", icon='MESH_DONUT';))

bpy.types.INFO_MT_mesh_add.append(menu_func)

if __name__ == "__main__":
bpy.ops.mesh.primitive_star_add()

Lanuhum
отшельник
Lanuhum
Сообщений: 5471
Рейтинг: +275



31 января 2010 в 17:02Рейтинг: 0    0    0
#11


Получается, что строчки
class AddStar(bpy.types.Operator):
'''Add a star mesh.'''
bl_idname = "mesh.primitive_star_add"
bl_label = "Add Star"
bl_register = True
bl_undo = True

points = IntProperty(name="Points",

чем-то оказываются дефективными, а аналогичные из скрипта про тор:
class AddTorus(bpy.types.Operator):
'''Add a torus mesh.'''
bl_idname = "mesh.primitive_torus_add"
bl_label = "Add Torus"
bl_register = True
bl_undo = True

major_radius = FloatProperty(name="Major Radius"

проходят нормально. Вот, и возник у меня вопрос в связи с этим. Быки-то одинаковые, а продаются по-разному...


Morthan
переводчик
Morthan
Сообщений: 365
Рейтинг: +122



31 января 2010 в 17:30Рейтинг: 0    0    0
#12


Ну, в скрипте про тор я увидел FloatProperty(), а IntProperty() там есть?

odimmo
Советник
odimmo
Сообщений: 5405
Рейтинг: +339



3


31 января 2010 в 17:37Рейтинг: 0    0    0
#13


Может вы всё-таки коды будете в .txt выкладывать?

Lanuhum
отшельник
Lanuhum
Сообщений: 5471
Рейтинг: +275



31 января 2010 в 17:41Рейтинг: 0    0    0
#14


> Ну, в скрипте про тор я увидел FloatProperty(), а IntProperty() там есть?
Я менял и так писал и так: ни то, ни то не подходит.
NameError: name 'IntProperty' is not defined
или
NameError: name 'FloatProperty' is not defined

Lanuhum
отшельник
Lanuhum
Сообщений: 5471
Рейтинг: +275



31 января 2010 в 17:44Рейтинг: 0    0    0
#15


> Может вы всё-таки коды будете в .txt выкладывать?
odimmo, я не знал, что в этом есть необходимость. Разве количество загруженных на сервер байтов разное получается от текста в топике и от текста в файле. Я понимаю, когда картинка tiff, а текст :-@



Сообщений 29, на страницах: 1 2
добавить сообщение
© 2007-2012 Юлия Корбут, некоторые права соблюдены.
© 2007-2012 Julia Korbut, some rights reserved.