local pAlembicToOctaneCamScript = {} local mInput local mOutputF local mOutputD local mOutputP local mOutputT local mOutputU function pAlembicToOctaneCamScript.onInit(self, graph) -- create input linkers local inputs = graph:setInputLinkers { { type = octane.PT_CAMERA, label = "ABCcam", fromNodeType = octane.NT_OUT_CAMERA, fromPinId = octane.P_INPUT } } mInput = inputs[1] -- create output linkers local outputs = graph:setOutputLinkers { { type = octane.PT_FLOAT, label = "ABCfocal_length" }, { type = octane.PT_FLOAT, label = "ABCfocal_depth" }, { type = octane.PT_FLOAT, label = "ABCposition" }, { type = octane.PT_FLOAT, label = "ABCtarget" }, { type = octane.PT_FLOAT, label = "ABCup" }, } -- create float value node that will provide the ABC Camera value mOutputF = octane.node.create { type = octane.NT_FLOAT, name = outputs[1].name, pinOwnerNode = outputs[1], pinOwnerIx = 1 } mOutputD = octane.node.create { type = octane.NT_FLOAT, name = outputs[2].name, pinOwnerNode = outputs[2], pinOwnerIx = 1 } mOutputP = octane.node.create { type = octane.NT_FLOAT, name = outputs[3].name, pinOwnerNode = outputs[3], pinOwnerIx = 1 } mOutputT = octane.node.create { type = octane.NT_FLOAT, name = outputs[4].name, pinOwnerNode = outputs[4], pinOwnerIx = 1 } mOutputU = octane.node.create { type = octane.NT_FLOAT, name = outputs[5].name, pinOwnerNode = outputs[5], pinOwnerIx = 1 } end function pAlembicToOctaneCamScript.onEvaluate(self, graph) local inCam = mInput:getConnectedNode(octane.P_INPUT) if inCam == nil then local inABC = nil local inFov = nil local inDpt = nil local inPos = nil local inTarg = nil local inUp = nil elseif inCam ~= nil then local inABC = inCam:getConnectedNode(octane.P_INPUT) local inFov = inABC:getPinValue(octane.P_FOCAL_LENGTH) local inDpt = inABC:getPinValue(octane.P_FOCAL_DEPTH) local inPos = inABC:getPinValue(octane.P_POSITION) local inTarg = inABC:getPinValue(octane.P_TARGET) local inUp = inABC:getPinValue(octane.P_UP) mOutputF:setAttribute(octane.A_VALUE, inFov) mOutputD:setAttribute(octane.A_VALUE, inDpt) mOutputP:setAttribute(octane.A_VALUE, inPos) mOutputT:setAttribute(octane.A_VALUE, inTarg) mOutputU:setAttribute(octane.A_VALUE, inUp) pAlembicToOctaneCamScript:setEvaluateTimeChanges(true) end end return pAlembicToOctaneCamScript