Skip to content

Commit

Permalink
Fix: Image and audio datablocks tagged for container auto creation
Browse files Browse the repository at this point in the history
  • Loading branch information
Tilix4 committed Jun 9, 2023
1 parent 1644c37 commit 6571972
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 6 deletions.
19 changes: 19 additions & 0 deletions openpype/hosts/blender/plugins/load/load_audio.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

from openpype.hosts.blender.api import plugin
from openpype.hosts.blender.api.properties import OpenpypeContainer
from openpype.hosts.blender.api.utils import AVALON_PROPERTY


class AudioLoader(plugin.AssetLoader):
Expand Down Expand Up @@ -60,6 +61,20 @@ def _load_library_datablocks(

return container, datablocks

def load(self, *args, **kwargs):
"""OVERRIDE.
Keep container metadata in sound datablock to allow container
auto creation of theses datablocks.
"""
container, datablocks = super().load(*args, **kwargs)
sound = datablocks[0]

# Set container metadata to sound datablock
sound[AVALON_PROPERTY] = container.get(AVALON_PROPERTY)

return container, datablocks

def update(
self, *args, **kwargs
) -> Tuple[OpenpypeContainer, List[bpy.types.ID]]:
Expand All @@ -77,6 +92,10 @@ def switch(
container_metadata, representation
)

# Set container metadata to sound datablock
sound = datablocks[0]
sound[AVALON_PROPERTY] = container.get(AVALON_PROPERTY)

return container, datablocks

def remove(self, container: Dict) -> bool:
Expand Down
27 changes: 21 additions & 6 deletions openpype/hosts/blender/plugins/load/load_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from openpype.hosts.blender.api import plugin
from openpype.hosts.blender.api.lib import get_selection
from openpype.hosts.blender.api.properties import OpenpypeContainer
from openpype.hosts.blender.api.utils import AVALON_PROPERTY


class ImageLoader(plugin.AssetLoader):
Expand All @@ -25,7 +26,7 @@ class ImageLoader(plugin.AssetLoader):
order = 0
color = "orange"

load_type = "LINK" # TODO meaningless here, must be refactored
load_type = "LINK" # TODO meaningless here, must be refactored

def _load_library_datablocks(
self,
Expand Down Expand Up @@ -59,6 +60,20 @@ def _load_library_datablocks(
)
return container, datablocks

def load(self, *args, **kwargs):
"""OVERRIDE.
Keep container metadata in image datablock to allow container
auto creation of theses datablocks.
"""
container, datablocks = super().load(*args, **kwargs)
img = datablocks[0]

# Set container metadata to image datablock
img[AVALON_PROPERTY] = container.get(AVALON_PROPERTY)

return container, datablocks


class ReferenceLoader(ImageLoader):
"""Load image as Reference.
Expand Down Expand Up @@ -156,11 +171,11 @@ def load(self, *args, **kwargs):
bpy.context.scene.frame_end - bpy.context.scene.frame_start
)
# Append audio in the sequencer
bpy.context.scene.sequence_editor.sequences.new_sound(
img.name,
img.filepath,
1,
bpy.context.scene.frame_start
sound_seq = bpy.context.scene.sequence_editor.sequences.new_sound(
img.name, img.filepath, 1, bpy.context.scene.frame_start
)

# Add container metadata to sound
sound_seq.sound[AVALON_PROPERTY] = container.get(AVALON_PROPERTY)

return container, datablocks

0 comments on commit 6571972

Please sign in to comment.