본문 바로가기
Nuke/python

Knob Flags, Ranges & Tooltips

by 르면가게 2024. 12. 7.

https://learn.foundry.com/nuke/developers/63/ndkdevguide/knobs-and-handles/knobflags.html#knob-ranges

 

Knob Flags, Ranges & Tooltips — NDK Developers Guide

Knob Flags Knob flags provide a means for customising a number of aspects of the previously created knob. Flags can be added or removed from a knob using the SetFlags(callback, flags) and ClearFlags(callback, flags) calls, so singly or in combination using

learn.foundry.com

 

Knob Flags, Ranges, and Tooltips in NUKE

NUKE의 Knob Flags, Ranges, 및 Tooltips는 노드의 UI와 동작을 제어하는 데 사용됩니다. 다음은 이를 구성하는 주요 요소를 정리한 내용입니다.


Knob Flags

Knob Flags는 UI의 동작, 상태, 인터페이스 표시 여부 등을 제어합니다.
Flags는 SetFlags(callback, flags) 또는 ClearFlags(callback, flags)를 사용하여 설정/해제할 수 있으며, 비트마스크(bitmask)를 통해 결합 가능합니다.

사용 방법

  • Knobs() 호출 시 사용
    • 대부분 Knob 생성 시 설정합니다.
  • 동적 업데이트
    • 일부는 set_flag()를 통해 Knobs() 호출 이후에도 동적으로 업데이트 가능합니다.
    • 업데이트 후 UI 리프레시가 필요할 경우, updateWidgets(), redraw(), changed()를 호출합니다.

공통적으로 사용되는 Flags

Flag관련 Knob 메서드설명

DISABLED enable(), disable(), isEnabled() Knob을 비활성화(회색 표시)하여 값을 변경할 수 없도록 합니다.
NO_ANIMATION - 애니메이션과 표현식 옵션을 비활성화합니다.
DO_NOT_WRITE - 스크립트에 데이터를 저장하지 않으며 복사/붙여넣기를 비활성화합니다.
INVISIBLE - Knob의 UI를 숨깁니다. HIDDEN과 달리 show()/hide()로 제어되지 않습니다.
RESIZABLE - Knob이 UI 공간에 맞춰 확장되도록 설정합니다. 복잡한 UI에서 기본적으로 활성화되어 있습니다.
STARTLINE - Knob을 새 줄에 배치합니다.
ENDLINE - Knob 이후에 줄바꿈을 추가합니다.
NO_RERENDER - Viewer에서 Knob 값 변경 시 리렌더링을 방지합니다.
HIDDEN show(), hide(), isVisible() Knob의 UI를 동적으로 숨기거나 표시합니다.
READ_ONLY setReadOnly(), isReadOnly() UI에서 값 변경은 불가능하지만 복사/붙여넣기는 가능합니다.

 

Numeric Knob 관련 Flags

MAGNITUDE 숫자 배열에서 슬라이더로 단일 값만 표시하도록 설정합니다.
SLIDER 슬라이더를 활성화합니다.
LOG_SLIDER 슬라이더를 로그 스케일로 표시합니다.
STORE_INTEGER 정수값을 저장하고 표시합니다.
FORCE_RANGE 값이 설정된 범위를 벗어나지 못하도록 강제합니다.

 

String Knob 관련 Flags

GRANULAR_UNDO 문자열 Knob의 Undo 작업을 세분화합니다.

Knob Ranges

  • 기본적으로 Knob은 값의 범위를 0 ~ 1로 설정합니다.
  • SetRange(min, max)를 사용하여 사용자 지정 범위를 설정할 수 있습니다.

Knob Tooltips

  • Tooltips는 사용자에게 Knob 사용 방법을 설명하는 유용한 정보를 제공합니다.
  • Tooltips는 코드에 쉽게 추가할 수 있으며, 다른 사용자나 팀원을 위해 권장되는 설정입니다.
Tooltip(<knob_callback>, <"Tooltip text">);

Tooltip 사용 예

Float_knob(f, &_floatKnobData, "My Float Knob");
SetFlags(Knob::LOG_SLIDER | Knob::READ_ONLY);
Tooltip(f, "This is a read-only logarithmic slider.");

Best Practices

  1. Tooltips 활용
    • 사용자 친화적인 인터페이스를 위해 가능한 모든 Knob에 Tooltips를 추가하세요.
  2. 불필요한 데이터 저장 방지
    • DO_NOT_WRITE나 ALWAYS_SAVE를 적절히 설정하여 스크립트 크기를 관리하세요.
  3. UI 최적화
    • 적절한 Flags를 사용하여 인터페이스를 단순화하고 사용자 경험을 향상시키세요.