요약
이 문서에서는 활성 Nuke Studio / Hiero 세션 내에서 작업 사전 설정을 새로 고치는 방법을 설명합니다.
더 많은 정보
기본적으로 Nuke Studio 와 Hiero 애플리케이션을 재시작한 후에만 작업 프리셋을 새로 고칩니다. 하지만 Python을 사용하면 공유 위치에 저장된 기존 작업 프리셋을 다시 로드하거나 작업 프리셋 디렉터리에 새 작업 프리셋을 바로 추가할 수 있습니다. 다음은 이를 구현하는 간단한 예입니다.
#remove all presets that are currently loaded as this prevents them being duplicated
R = hiero .exporters.registry
presetNamesToRemove = hiero .exporters.registry.processorPresetNames()
for presetName in presetNamesToRemove:
R.removeProcessorPreset(presetName)
#reload the presets in again
#where ~/.nuke/TaskPresets/16.0/ is the path to your Export Presets
R.loadPresets("~/.nuke/TaskPresets/16.0") #change this path to your Export Presets directory
위의 코드는 현재 로드된 작업 사전 설정 목록을 찾아 제거하는 방식 으로 작동합니다. 이렇게 하면 hiero .exporters.registry.loadPresets() 로 다시 로드할 때 중복이 방지됩니다 .
위 코드가 제대로 작동하려면 작업 사전 설정을 새로 고칠 때마다 스크립트 편집기에서 실행해야 합니다. 하지만 코드를 버튼이나 위젯으로 감싸서 이를 확장할 수도 있습니다. 예를 들어, 다음 코드는 마우스 오른쪽 버튼 메뉴에 이 기능을 추가합니다.
import hiero .core, hiero .ui, nuke , glob, os
from hiero .core import events
try:
from PySide2 import QtWidgets
from PySide2.QtWidgets import QMessageBox
except:
from PySide6 import QtWidgets
from PySide6.QtWidgets import QMessageBox
from PySide6 import QtGui as QtWidgets
class refreshTaskPresets(QtWidgets.QAction):
def __init__(self, event):
QtWidgets.QAction.__init__(self, "", None)
self.event = event
self.triggered.connect(self.doit)
def doit(self):
presetPath = os.path.expanduser("~")+"/.nuke/TaskPresets/16.0" #change this path to your Export Presets directory
#checking if the path given path contains xml files
if len(glob.glob(presetPath+"/*/*/*.xml")) > 1:
#remove all presets that are currently loaded as this prevents them being duplicated
R = hiero .exporters.registry
presetNamesToRemove = hiero .exporters.registry.processorPresetNames()
for presetName in presetNamesToRemove:
R.removeProcessorPreset(presetName)
#reload the presets in again
R.loadPresets(presetPath)
#if the path is invalid, a warning error will appear
else:
msgBox = QMessageBox()
msgBox.setText("Task Presets could not be refreshed. Please check if the path set in refreshTaskPresets.py is valid: "+presetPath)
msgBox.exec()
def AddActionToMenu(event):
menu = event.menu
menu.addAction("Refresh Task Presets", lambda: refreshTaskPresets(event).trigger())
events.registerInterest((events.EventType.kShowContextMenu), AddActionToMenu)
이 스크립트는 첫 번째 예제 코드를 QWidget에 QAction으로 추가하는 방식으로 작동합니다. 그런 다음 사용자가 스크립트에 설정한 경로( presetPath )에 xml 파일이 포함되어 있는지 확인하고, 포함되어 있으면 작업 프리셋을 새로 고칩니다. 그렇지 않으면 사용자에게 오류 메시지가 표시됩니다.
이 스크립트를 ~/.nuke/Python/Startup 디렉터리에 추가하면 마우스 오른쪽 버튼 메뉴에서 ' 작업 사전 설정 새로 고침 ' 옵션을 볼 수 있습니다. 예를 들어, 타임라인을 마우스 오른쪽 버튼으로 클릭하면 다음과 같습니다.
추가 읽기
다음 문서에서는 작업 사전 설정 XML 파일을 찾을 수 있는 위치에 대한 자세한 정보를 제공합니다.
Q100294: Nuke Studio 및 Hiero 내보내기 사전 설정의 디렉토리 위치
Nuke Studio 및 Hiero 에서 Python 시작 스크립트를 사용하는 방법에 대한 자세한 내용은 다음 문서에서 확인할 수 있습니다. Q100142: NukeStudio 에서 시작 시 Hiero Python 코드를 실행하는 방법
glob 모듈에 대한 자세한 내용은 Python 문서에서 확인할 수 있습니다.
Nuke 에서 PySide6를 사용하는 방법에 대한 정보는 여기에서 찾을 수 있지만, 자세한 내용은 Qt for Python 문서를 참조해야 합니다.
우리는 문제로 불편을 끼쳐 드려 죄송합니다
이유를 알려주세요