Создание меша через Python API
Для того, чтобы создать объект в сцене Blender средствами Python API нужно выполнить следующие действия:
Откройте окно текстового редактора “Text Editor”.
Для обращения к основной структуре данных API Blender импортируем главный модуль bpy.
Любой меш состоит из вертексов, ребер и граней. Выделим под них блоки данных.
Наш простейший меш будет состоять всего из одного вертекса. Поэтому мы заполняем только блок vertices, указывая в нем координаты единственной точки.
Создадим структуру меша с именем “new_mesh”,
и заполним ее данными из созданных блоков.
Мы создали меш, но его нельзя добавить в сцену в “сыром” виде. В сцену добавляются объекты. Создадим объект с именем “new_object”, поместив в него данные созданного ранее меша.
Мы создали объект, но это еще не все. Нужно указать коллекцию, в которую будет добавлен объект. Создадим новую коллекцию с именем “new_collection” и поместим ее в главную коллекцию сцены.
Теперь мы можем добавить объект в сцену, поместив его в созданную коллекцию.
Весь код выглядит следующим образом:
Выполнив этот код, нажатием на кнопку “Run Script”, мы добавим в сцену меш, состоящий из одного вертекса.
Когда вы первый раз заходите с помощью соцсетей, мы получаем публичную информацию из вашей учетной записи, предоставляемой провайдером услуги соцсети в рамках ваших настроек конфиденциальности. Мы также автоматически получаем ваш e-mail адрес для создания вашей учетной записи на нашем веб сайте. Когда она будет создана, вы будете авторизованы под этой учетной записью.
Когда вы первый раз заходите с помощью соцсетей, мы получаем публичную информацию из вашей учетной записи, предоставляемой провайдером услуги соцсети в рамках ваших настроек конфиденциальности. Мы также автоматически получаем ваш e-mail адрес для создания вашей учетной записи на нашем веб сайте. Когда она будет создана, вы будете авторизованы под этой учетной записью.
CGArtPython / linking_objects_materials_scens_between_blend_files.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
# extend Python’s functionality to work with file paths |
import pathlib |
# give Python access to Blender’s functionality |
import bpy |
def remove_libraries (): |
«»»remove the linked blend files»»» |
bpy . data . batch_remove ( bpy . data . libraries ) |
def link_blend_file_objects ( blend_file_path , link = False ): |
«»»link the blender file objects into the current blender file»»» |
with bpy . data . libraries . load ( blend_file_path , link = link ) as ( data_from , data_to ): |
data_to . objects = data_from . objects |
scene = bpy . context . scene |
# link the objects into the scene collection |
for obj in data_to . objects : |
if obj is None : |
continue |
scene . collection . objects . link ( obj ) |
def link_blend_file_scenes ( blend_file_path , link = False ): |
«»»link the blender file scenes into the current blender file»»» |
with bpy . data . libraries . load ( blend_file_path , link = link ) as ( data_from , data_to ): |
data_to . scenes = data_from . scenes |
def link_blend_file_materials ( blend_file_path , link = False ): |
«»»link the blender file materials into the current blender file»»» |
with bpy . data . libraries . load ( blend_file_path , link = link ) as ( data_from , data_to ): |
for material_name in data_from . materials : |
if «blue» in material_name : |
data_to . materials . append ( material_name ) |
def main (): |
remove_libraries () |
# define the path to the blend file |
blend_file_path = str ( pathlib . Path (). home () / «tmp» / «objects.blend» ) |
link_blend_file_objects ( blend_file_path , link = True ) |
main () |