From c0281159d84461abfb4ecd586517039a8ed4f7d2 Mon Sep 17 00:00:00 2001 From: NateScarlet Date: Thu, 13 Jul 2023 12:08:36 +0800 Subject: [PATCH] feat(nuke): add node suggestion --- wulifang/nuke/_init_gui.py | 2 ++ wulifang/nuke/_node_suggestion.py | 53 +++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 wulifang/nuke/_node_suggestion.py diff --git a/wulifang/nuke/_init_gui.py b/wulifang/nuke/_init_gui.py index 6b0a1ea8..8cdfa519 100644 --- a/wulifang/nuke/_init_gui.py +++ b/wulifang/nuke/_init_gui.py @@ -50,6 +50,7 @@ _missing_frame_check, _multi_node_edit, _node_menu, + _node_suggestion, _preference, _project_settings, _prune_node, @@ -568,5 +569,6 @@ def init_gui(): _file_mtime_check.init_gui() _random_gl_color.init_gui() _jump_to_wlf_write_frame.init_gui() + _node_suggestion.init_gui() _init_cgtw() _g.init_once = True diff --git a/wulifang/nuke/_node_suggestion.py b/wulifang/nuke/_node_suggestion.py new file mode 100644 index 00000000..5a8acfcd --- /dev/null +++ b/wulifang/nuke/_node_suggestion.py @@ -0,0 +1,53 @@ +# -*- coding=UTF-8 -*- +# pyright: strict, reportTypeCommentUsage=none + +from __future__ import absolute_import, division, print_function, unicode_literals + +import nuke + +import wulifang +import wulifang.nuke +from wulifang._util import ( + cast_text, +) + + +def _on_user_create(): + n = nuke.thisNode() + class_ = cast_text(n.Class()) + if class_ in ("OFXcom.genarts.sapphire.stylize.s_halftone_v1",): + wulifang.message.info("S_Halftone 节点性能不佳,建议用 Hatch 节点代替") + return + if class_ in ("OFXcom.genarts.sapphire.stylize.s_halftonecolor_v1",): + wulifang.message.info("S_HalftoneColor 节点性能不佳,建议用 Hatch 节点代替") + return + if class_ in ("OFXcom.genarts.sapphire.stylize.s_vignette_v1",): + wulifang.message.info("S_Vignette 节点会导致渲染卡顿,建议用 Vignette 节点代替") + return + if class_ in ("thersher"): + wulifang.message.info("%s 节点来自第三方且效果不佳,建议用 Hatch 节点代替" % (class_,)) + return + if class_ in ("RealHeatDist",): + wulifang.message.info("%s 节点来自第三方,建议用 HeatDistort 节点代替" % (class_,)) + return + if class_ in ("P_Matte", "P_Ramp"): + wulifang.message.info("%s 节点来自第三方,建议用 PositionKeyer 节点代替" % (class_,)) + return + if class_ in ("AutocomperArnold",): + wulifang.message.info("%s 节点来自第三方,建议用 AOV 自动组装 (F1) 功能代替" % (class_,)) + return + if class_ in ("Chromatic_Aberration",): + wulifang.message.info("%s 节点来自第三方,建议用 Aberration 节点代替" % (class_,)) + return + + if class_ in ("Group",): + name = cast_text(n.name()) + if name.startswith( + "RealGlow", + ): + wulifang.message.info("RealGlow 节点来自第三方,建议用 SoftGlow 节点代替") + return + + +def init_gui(): + wulifang.nuke.callback.on_user_create(_on_user_create)