mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +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