Handling instance noce

This commit is contained in:
Sharkitty 2023-08-09 11:45:58 +02:00
parent e9d022bab3
commit 656a42dd52
9 changed files with 60 additions and 3 deletions

View file

@ -234,13 +234,20 @@ class BlenderCreator(Creator):
pre_create_data(dict): Data based on pre creation attributes.
Those may affect how creator works.
"""
collection = bpy.data.collections.new(name=subset_name)
bpy.context.scene.collection.children.link(collection)
instance_node = {}
for key, value in collection.items():
instance_node[key] = value
instance_data["instance_node"] = instance_node
instance = CreatedInstance(
self.family, subset_name, instance_data, self
)
self._add_instance_to_context(instance)
collection = bpy.data.collections.new(name=subset_name)
bpy.context.scene.collection.children.link(collection)
imprint(collection, instance_data)
if pre_create_data.get("useSelection"):
@ -287,7 +294,7 @@ class BlenderCreator(Creator):
for created_instance, _changes in update_list:
data = created_instance.data_to_store()
# TODO
imprint(data.get("instance_node", {}), data)
def remove_instances(self, instances: List[CreatedInstance]):

View file

@ -28,6 +28,11 @@ class CreateAction(openpype.hosts.blender.api.plugin.BlenderCreator):
)
collection = bpy.data.collections.new(name=name)
bpy.context.scene.collection.children.link(collection)
instance_node = {}
for key, value in collection.items():
instance_node[key] = value
instance_data.update(
{
"id": "pyblish.avalon.instance",
@ -35,8 +40,11 @@ class CreateAction(openpype.hosts.blender.api.plugin.BlenderCreator):
"label": self.label,
"task": get_current_task_name(),
"subset": subset_name,
"instance_node": instance_node,
}
)
from pprint import pprint
pprint(instance_data)
lib.imprint(collection, instance_data)
if pre_create_data.get("useSelection"):

View file

@ -46,6 +46,11 @@ class CreateAnimation(plugin.BlenderCreator):
# asset_group.empty_display_type = 'SINGLE_ARROW'
asset_group = bpy.data.collections.new(name=name)
instances.children.link(asset_group)
instance_node = {}
for key, value in asset_group.items():
instance_node[key] = value
instance_data.update(
{
"id": "pyblish.avalon.instance",
@ -53,6 +58,7 @@ class CreateAnimation(plugin.BlenderCreator):
"label": self.label,
"task": get_current_task_name(),
"subset": subset_name,
"instance_node": instance_node,
}
)
lib.imprint(asset_group, instance_data)

View file

@ -44,6 +44,11 @@ class CreateCamera(plugin.BlenderCreator):
asset_group = bpy.data.objects.new(name=name, object_data=None)
asset_group.empty_display_type = 'SINGLE_ARROW'
instances.objects.link(asset_group)
instance_node = {}
for key, value in asset_group.items():
instance_node[key] = value
instance_data.update(
{
"id": "pyblish.avalon.instance",
@ -51,6 +56,7 @@ class CreateCamera(plugin.BlenderCreator):
"label": self.label,
"task": get_current_task_name(),
"subset": subset_name,
"instance_node": instance_node,
}
)
lib.imprint(asset_group, instance_data)

View file

@ -43,6 +43,11 @@ class CreateLayout(plugin.BlenderCreator):
asset_group = bpy.data.objects.new(name=name, object_data=None)
asset_group.empty_display_type = 'SINGLE_ARROW'
instances.objects.link(asset_group)
instance_node = {}
for key, value in asset_group.items():
instance_node[key] = value
instance_data.update(
{
"id": "pyblish.avalon.instance",
@ -50,6 +55,7 @@ class CreateLayout(plugin.BlenderCreator):
"label": self.label,
"task": get_current_task_name(),
"subset": subset_name,
"instance_node": instance_node,
}
)
lib.imprint(asset_group, instance_data)

View file

@ -43,6 +43,11 @@ class CreateModel(plugin.BlenderCreator):
asset_group = bpy.data.objects.new(name=name, object_data=None)
asset_group.empty_display_type = 'SINGLE_ARROW'
instances.objects.link(asset_group)
instance_node = {}
for key, value in asset_group.items():
instance_node[key] = value
instance_data.update(
{
"id": "pyblish.avalon.instance",
@ -50,6 +55,7 @@ class CreateModel(plugin.BlenderCreator):
"label": self.label,
"task": get_current_task_name(),
"subset": subset_name,
"instance_node": instance_node,
}
)
lib.imprint(asset_group, instance_data)

View file

@ -28,6 +28,11 @@ class CreatePointcache(plugin.BlenderCreator):
)
collection = bpy.data.collections.new(name=name)
bpy.context.scene.collection.children.link(collection)
instance_node = {}
for key, value in collection.items():
instance_node[key] = value
instance_data.update(
{
"id": "pyblish.avalon.instance",
@ -35,6 +40,7 @@ class CreatePointcache(plugin.BlenderCreator):
"label": self.label,
"task": get_current_task_name(),
"subset": subset_name,
"instance_node": instance_node,
}
)
lib.imprint(collection, instance_data)

View file

@ -42,6 +42,11 @@ class CreateReview(plugin.BlenderCreator):
name = plugin.asset_name(instance_data["asset"], subset_name)
asset_group = bpy.data.collections.new(name=name)
instances.children.link(asset_group)
instance_node = {}
for key, value in asset_group.items():
instance_node[key] = value
instance_data.update(
{
"id": "pyblish.avalon.instance",
@ -49,6 +54,7 @@ class CreateReview(plugin.BlenderCreator):
"label": self.label,
"task": get_current_task_name(),
"subset": subset_name,
"instance_node": instance_node,
}
)
lib.imprint(asset_group, instance_data)

View file

@ -43,6 +43,11 @@ class CreateRig(plugin.BlenderCreator):
asset_group = bpy.data.objects.new(name=name, object_data=None)
asset_group.empty_display_type = 'SINGLE_ARROW'
instances.objects.link(asset_group)
instance_node = {}
for key, value in asset_group.items():
instance_node[key] = value
instance_data.update(
{
"id": "pyblish.avalon.instance",
@ -50,6 +55,7 @@ class CreateRig(plugin.BlenderCreator):
"label": self.label,
"task": get_current_task_name(),
"subset": subset_name,
"instance_node": instance_node,
}
)
lib.imprint(asset_group, instance_data)