Update
This commit is contained in:
86
2023/scripts/rigging_tools/ngskintools2/ui/hotkeys.py
Normal file
86
2023/scripts/rigging_tools/ngskintools2/ui/hotkeys.py
Normal file
@@ -0,0 +1,86 @@
|
||||
"""
|
||||
Global list of hotkey-able functions within the plugin.
|
||||
|
||||
|
||||
These functions will be embedded in end-user's hotkey setup by absolute path (package.function_name)
|
||||
so the names should not fluctuate.
|
||||
"""
|
||||
|
||||
from ngSkinTools2.api import NamedPaintTarget, PaintTool, WeightsDisplayMode, plugin
|
||||
from ngSkinTools2.api.paint import MaskDisplayMode
|
||||
from ngSkinTools2.api.session import session, withSession
|
||||
from ngSkinTools2.operations.paint import FloodAction, PaintAction
|
||||
from ngSkinTools2.ui.action import do_action_hotkey
|
||||
|
||||
|
||||
def paint_tool_start():
|
||||
do_action_hotkey(PaintAction)
|
||||
|
||||
|
||||
def paint_tool_toggle_help():
|
||||
plugin.ngst2_hotkey(paintContextToggleHelp=True)
|
||||
|
||||
|
||||
def paint_tool_flood():
|
||||
do_action_hotkey(FloodAction)
|
||||
|
||||
|
||||
def paint_tool_focus_current_influence():
|
||||
plugin.ngst2_hotkey(paintContextViewFit=True)
|
||||
|
||||
|
||||
def paint_tool_brush_size():
|
||||
plugin.ngst2_hotkey(paintContextBrushSize=True)
|
||||
|
||||
|
||||
def paint_tool_brush_size_release():
|
||||
plugin.ngst2_hotkey(paintContextBrushSize=False)
|
||||
|
||||
|
||||
def paint_tool_sample_influence():
|
||||
plugin.ngst2_hotkey(paintContextSampleInfluence=True)
|
||||
|
||||
|
||||
def paint_tool_sample_influence_release():
|
||||
plugin.ngst2_hotkey(paintContextSampleInfluence=False)
|
||||
|
||||
|
||||
@withSession
|
||||
def select_paint_brush_intensity():
|
||||
from ngSkinTools2.ui.brush_settings_popup import brush_settings_popup
|
||||
|
||||
brush_settings_popup(session.paint_tool)
|
||||
|
||||
|
||||
@withSession
|
||||
def paint_tool_toggle_original_mesh():
|
||||
paint = session.paint_tool
|
||||
paint.display_settings.display_node_visible = not paint.display_settings.display_node_visible
|
||||
session.events.toolChanged.emit()
|
||||
|
||||
|
||||
@withSession
|
||||
def paint_tool_cycle_weights_display_mode():
|
||||
"""
|
||||
cycle current display mode "all influences" -> "current influence" -> "current influence colored"
|
||||
:return:
|
||||
"""
|
||||
paint = session.paint_tool
|
||||
|
||||
targets = session.state.currentInfluence.targets
|
||||
is_mask_mode = targets is not None and len(targets) == 1 and targets[0] == NamedPaintTarget.MASK
|
||||
|
||||
settings = paint.display_settings
|
||||
if is_mask_mode:
|
||||
settings.mask_display_mode = {
|
||||
MaskDisplayMode.default_: MaskDisplayMode.color_ramp,
|
||||
MaskDisplayMode.color_ramp: MaskDisplayMode.default_,
|
||||
}.get(settings.mask_display_mode, MaskDisplayMode.default_)
|
||||
else:
|
||||
settings.weights_display_mode = {
|
||||
WeightsDisplayMode.allInfluences: WeightsDisplayMode.currentInfluence,
|
||||
WeightsDisplayMode.currentInfluence: WeightsDisplayMode.currentInfluenceColored,
|
||||
WeightsDisplayMode.currentInfluenceColored: WeightsDisplayMode.allInfluences,
|
||||
}.get(settings.weights_display_mode, WeightsDisplayMode.allInfluences)
|
||||
|
||||
session.events.toolChanged.emit()
|
||||
Reference in New Issue
Block a user