【小知识】自动化roto形状的生命周期?咋整的?
heronuke吧
全部回复
仅看楼主
level 3
nanguo813 楼主
今天我们来聊一聊——roto形状的生命周期
根据关键帧自动化roto形状的生命周期。我们使用多种方式来设置roto形状的生命周期:有些艺术家在roto节点中使用了生命周期选项卡,有些只是简单地将roto形状移出工作区域,有些人正在使用“multiply”节点来实现这一目标。
一些艺术家在roto节点中制作“可见”旋钮,这样做的方式因艺术家而异。如何组织这个?以下是这个想法:lifetime Roto.py
我们大多数人使用nuke-roto-node-lifetime选项卡根据帧范围设置生命周期。
一些艺术家在roto节点的曲线窗口中使用鼠标点击选项。
这两种方式中,我们需要选择结束或开始的帧范围。对于编译器而言,这样做并不是一项耗时的任务。但对于roto艺术家而言呢?
lifetimeRoto.py可以根据形状关键帧自动设置选定的roto shapes生命周期。此代码获取所选形状的关键帧值(例如:10,20,30),并将min和max分别应用于生命周期的开始和结束。运行此代码后,roto形状生命周期通过单击自动设置为10 - 30。将“shift + L”指定为快捷方式。选择roto形状并确保已选择roto节点。运行此快捷方式。roto形状生命周期基于关键帧设置。
menu.py行:
import lifetimeRoto
menuBar = nuke.menu(“Nuke”)
menuBar.addCommand('Edit/Node/lifetimeRoto','lifetimeRoto.setRotoLifeTime()','shift+l')
###来设置选择的滚塑形状基于所述最小值最大值关键帧值的寿命。
import nuke
def setRotoLifeTime():
### get selected node
selNode = None
try:
selNode = nuke.selectedNode()
除了ValueError: #no node selected
pass
if selNode == None:
nuke.message('确保你的roto节点被选中')
返回
###
如果selNode.Class()=='Roto':
找到selNode ['curves']中的selShape,找到选定的roto形状关键帧.getSelected ():
keyFrame = selShape [0] .center.getControlPointKeyTimes()
keyFrames = [int(i)for i in keyFrame]
low =(min(keyFrames))
high =(max(keyFrames))
###将min max keyframe应用于每个形状的生命周期
selNode ['lifetime_type']。setValue(4)
selNode ['lifetime_start']。setValue(low)
selNode ['lifetime_end']。setValue(high)
2018年07月19日 02点07分 1
1