Объектные методы в Blender3D? - PullRequest
       45

Объектные методы в Blender3D?

0 голосов
/ 04 октября 2019

У меня около 30 минут в Python API Blender'а, и я читаю документацию. Может быть, я не выглядел достаточно усердно, но из того, что я вижу, я не могу просто присвоить объект (например, ico_sphere) переменной с именем Sphere, а затем просто изменить ее свойства с помощью методов?

import bpy

bpy.ops.object.select_all(action="SELECT")
bpy.ops.object.delete()

Sphere = bpy.ops.mesh.primitive_ico_sphere_add(location=[0,0,0])

# Does something like this work?
Sphere.set_color('red')

Я много делаю matplotlib, и мне было интересно, если bpy имеет подобный интерфейс, который объектно-ориентированный, как это?

1 Ответ

0 голосов
/ 06 октября 2019

В blender оператор возвращает состояние, которое обычно будет {'FINISHED'}.

После запуска оператора добавления объекта новый объект можно найти в bpy.context.object.

bpy.ops.mesh.primitive_ico_sphere_add(location=[0,0,0])
Sphere = bpy.context.object
Sphere.location = (1,2,3)
Sphere.active_material = bpy.data.materials.new('mymat')
Sphere.active_material.diffuse_color = (1,0,0,1)

Обратите внимание, что материалы на основе узлов требуют дополнительной работы. Существует специальный сайт SE для блендера, где вы найдете несколько примеров скриптов, таких как this .

...