mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
feat(nuke): loader plugin for alembic camera
This commit is contained in:
parent
d740c17b91
commit
0ac12df93d
1 changed files with 64 additions and 0 deletions
64
pype/plugins/nuke/load/load_camera_abc.py
Normal file
64
pype/plugins/nuke/load/load_camera_abc.py
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
from avalon import api
|
||||
import nuke
|
||||
from pprint import pformat
|
||||
|
||||
class AlembicCameraLoader(api.Loader):
|
||||
"""
|
||||
This will load alembic camera into script.
|
||||
"""
|
||||
|
||||
families = ["camera"]
|
||||
representations = ["abc"]
|
||||
|
||||
label = "Load Alembic Camera"
|
||||
icon = "camera"
|
||||
color = "orange"
|
||||
|
||||
def load(self, context, name, namespace, data):
|
||||
|
||||
# import dependencies
|
||||
from avalon.nuke import containerise
|
||||
|
||||
# get main variables
|
||||
version = context['version']
|
||||
version_data = version.get("data", {})
|
||||
vname = version.get("name", None)
|
||||
first = version_data.get("frameStart", None)
|
||||
last = version_data.get("frameEnd", None)
|
||||
fps = version_data.get("fps") or nuke.root()["fps"].getValue()
|
||||
namespace = namespace or context['asset']['name']
|
||||
object_name = "{}_{}".format(name, namespace)
|
||||
|
||||
# prepare data for imprinting
|
||||
# add additional metadata from the version to imprint to Avalon knob
|
||||
add_keys = ["frameStart", "frameEnd", "source", "author", "fps"]
|
||||
|
||||
data_imprint = {"frameStart": first,
|
||||
"frameEnd": last,
|
||||
"version": vname,
|
||||
"objectName": object_name}
|
||||
|
||||
for k in add_keys:
|
||||
data_imprint.update({k: version_data[k]})
|
||||
|
||||
# getting file path
|
||||
file = self.fname.replace("\\", "/")
|
||||
|
||||
camera_node = nuke.createNode(
|
||||
"Camera2",
|
||||
"file {} read_from_file True".format(file),
|
||||
inpanel=False
|
||||
)
|
||||
camera_node.forceValidate()
|
||||
# camera_node["read_from_file"].setValue(True)
|
||||
# camera_node["file"].setValue(file)
|
||||
camera_node["frame_rate"].setValue(float(fps))
|
||||
camera_node["tile_color"].setValue(int("0x3469ffff", 16))
|
||||
|
||||
return containerise(
|
||||
node=camera_node,
|
||||
name=name,
|
||||
namespace=namespace,
|
||||
context=context,
|
||||
loader=self.__class__.__name__,
|
||||
data=data_imprint)
|
||||
Loading…
Add table
Add a link
Reference in a new issue