mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-26 05:42:15 +01:00
Handling instance noce
This commit is contained in:
parent
e9d022bab3
commit
656a42dd52
9 changed files with 60 additions and 3 deletions
|
|
@ -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]):
|
||||
|
|
|
|||
|
|
@ -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"):
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue