Implemented Blender Scene file type

This commit is contained in:
Simone Barbieri 2023-01-16 13:14:41 +00:00
parent 23b8edd1e7
commit 1e386c7ce4

View file

@ -0,0 +1,37 @@
import bpy
from openpype.pipeline import legacy_io
from openpype.hosts.blender.api import plugin, lib, ops
from openpype.hosts.blender.api.pipeline import AVALON_INSTANCES
class CreateBlenderScene(plugin.Creator):
"""Raw Blender Scene file export"""
name = "blenderScene"
label = "Blender Scene"
family = "blenderScene"
icon = "file-archive-o"
def process(self):
""" Run the creator on Blender main thread"""
mti = ops.MainThreadItem(self._process)
ops.execute_in_main_thread(mti)
def _process(self):
# Get Instance Container or create it if it does not exist
instances = bpy.data.collections.get(AVALON_INSTANCES)
if not instances:
instances = bpy.data.collections.new(name=AVALON_INSTANCES)
bpy.context.scene.collection.children.link(instances)
asset = self.data["asset"]
subset = self.data["subset"]
name = plugin.asset_name(asset, subset)
asset_group = bpy.data.collections.new(name=name)
instances.children.link(asset_group)
self.data['task'] = legacy_io.Session.get('AVALON_TASK')
lib.imprint(asset_group, self.data)
return asset_group