Q100487: 활성 Nuke Studio / Hiero 세션 내에서 작업 사전 설정을 새로 고치는 방법

팔로우

요약

이 문서에서는 활성 Nuke Studio / Hiero 세션 내에서 작업 사전 설정을 새로 고치는 방법을 간략하게 설명합니다.

추가 정보

기본적으로 Nuke StudioHiero 애플리케이션이 다시 시작된 후에만 작업 사전 설정을 새로 고칩니다. 그러나 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/14.0/ is the path to your Export Presets
R.loadPresets("~/.nuke/TaskPresets/14.0")

 위 코드는 현재 로드된 작업 사전 설정 목록을 찾아서 제거하는 방식으로 작동합니다. 이렇게 하면 hiero .exporters.registry.loadPresets()를 사용하여 다시 로드할 때 중복이 중지됩니다.

위 코드가 그대로 작동하려면 작업 사전 설정을 새로 고칠 때마다 스크립트 편집기에서 실행해야 합니다. 그러나 코드를 버튼이나 위젯으로 래핑하여 이를 기반으로 구축할 수 있습니다. 예를 들어 다음 코드는 이를 마우스 오른쪽 버튼 클릭 메뉴에 추가합니다.

 import hiero .core, hiero .ui, nuke 
from PySide2 import QtWidgets
from PySide2.QtWidgets import QMessageBox
from hiero .core import events
import glob

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 = "~/.nuke/TaskPresets/14.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 StudioHiero 내보내기 사전 설정의 디렉터리 위치

다음 기사에서 Nuke StudioHiero 에서 Python 시작 스크립트를 사용하는 방법에 대한 자세한 정보를 찾을 수 있습니다. Q100142: 시작 시 NukeStudio 에서 Hiero Python 코드를 실행하는 방법

glob 모듈 에 대한 자세한 내용은 Python 문서 에서 찾을 수 있습니다 .

여기 에서 Nuke 의 PySide2 작업에 대한 일부 정보를 찾을 수 있습니다 . 그러나 자세한 내용은 Python용 Qt 문서를 참조해야 합니다 .

    우리는 문제로 불편을 끼쳐 드려 죄송합니다

    이유를 알려주세요