skills/dynamic-dresser/SKILL.md
Open Dynamic Dresser tool for VFX/Blueprint asset collection, tagging, preview, and level placement
npx skillsauth add sipherxyz/universal-ue-skills dynamic-dresserInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Category: Level & World (Green accent)
Plugin: Plugins/EditorTools/SipherDynamicDresser/
Engine: Unreal Engine 5.7.1
Platform: Editor-only (Win64)
Dynamic Dresser is a set dressing tool for VFX artists and level designers. It streamlines the workflow of:
Open the tool:
SipherDynamicDresser.OpenAdd assets via:
Supported asset types:
NiagaraSystem - VFX effectsBlueprint - Actor-based blueprints onlyTags are defined in Config/Tags.md (markdown format):
# Dynamic Dresser Tags
| ID | Display | Color |
|----|---------|-------|
| ene | Enemy | #E74C3C |
| boss | Boss | #9B59B6 |
| env_bg | Env Background | #27AE60 |
| env_event | Env Event | #3498DB |
Features:
Tags.md and UI updates automaticallyPreview types:
UNiagaraComponent in preview sceneIDetailsView for the preview objectSave presets:
Saved/DynamicDresser/Presets/{AssetName}_{PresetName}.jsonLoad presets:
Reset:
Drag decorator shows:
+-------------------------+-----------------------------------+
| FILTERS | |
| [All][ene][boss]... | 3D PREVIEW VIEWPORT |
+-------------------------+ |
| ASSETS | |
| +---------------------+ +-----------------------------------+
| | NS_Fire [ene] | | PARAMETERS |
| | BP_Torch [env_bg] | | +- Property1: [value] |
| | NS_Smoke [boss] | | +- Property2: [value] |
| +---------------------+ | |
| | PRESETS |
| [+ Add] [+ Folder] | [Save] [Load] [Reset] |
| -- Drop zone -- | |
+-------------------------+-----------------------------------+
Plugins/EditorTools/SipherDynamicDresser/
+-- SipherDynamicDresser.uplugin
+-- Config/
| +-- Tags.md # Tag definitions
+-- Source/SipherDynamicDresser/
+-- Public/
| +-- SipherDynamicDresserModule.h
| +-- DynamicDresserTypes.h
| +-- DynamicDresserTagManager.h
| +-- DynamicDresserPresetManager.h
| +-- UI/
| | +-- SDynamicDresserWindow.h
| | +-- SDynamicDresserAssetList.h
| | +-- SDynamicDresserPreview.h
| | +-- SDynamicDresserParams.h
| | +-- SDynamicDresserFolderPicker.h
| | +-- FDynamicDresserPreviewClient.h
| +-- Drag/
| +-- FDynamicDresserDragDropOp.h
+-- Private/
+-- [Implementation files]
| Class | Purpose |
|-------|---------|
| FSipherDynamicDresserModule | Module + ISipherToolProvider registration |
| FDynamicDresserTagManager | Parses Tags.md, watches for changes |
| FDynamicDresserPresetManager | Save/load JSON presets |
| SDynamicDresserWindow | Main split-panel UI |
| SDynamicDresserAssetList | Left panel asset list with drag-drop |
| SDynamicDresserPreview | 3D viewport (SEditorViewport + FGCObject) |
| SDynamicDresserParams | Parameter panel (IDetailsView) |
| FDynamicDresserDragDropOp | Custom drag operation with modified properties |
// Tag definition (from Tags.md)
struct FDynamicDresserTagDef
{
FString TagId; // "ene", "boss"
FString DisplayName; // "Enemy", "Boss"
FLinearColor Color; // Chip color
uint32 BitValue; // 1, 2, 4, 8...
};
// Asset entry in the list
struct FDynamicDresserAssetEntry
{
FSoftObjectPath AssetPath;
FString DisplayName;
FTopLevelAssetPath AssetClass;
uint32 TagMask; // Bitmask of applied tags
TSharedPtr<FAssetThumbnail> Thumbnail;
};
// Saved preset
struct FDynamicDresserPreset
{
FString PresetName;
FSoftObjectPath AssetPath;
TMap<FName, FString> PropertyValues; // Serialized via FProperty
};
SipherDynamicDresser.Open # Open the tool window
// SipherDynamicDresser.Build.cs
PublicDependencyModuleNames.AddRange({
"Core", "CoreUObject", "Engine",
"Slate", "SlateCore", "InputCore",
"UnrealEd", "AssetRegistry", "ContentBrowser",
"PropertyEditor", "AdvancedPreviewScene",
"Niagara", "NiagaraEditor",
"SipherToolHub", // ISipherToolProvider
"DirectoryWatcher", // Tag file watching
"Json", "JsonUtilities"
});
Config/Tags.md syntax (markdown table format)skill: dynamic-dresser
invoke: /editor-tools:dynamic-dresser
type: utility
category: level-world
scope: Plugins/EditorTools/SipherDynamicDresser
development
This skill should be used when implementing features in isolation using git worktrees. Triggers on "create worktree", "isolated workspace", "parallel development", or when starting implementation that should not affect main workspace.
testing
Manage VFX team issues on GitHub Projects - timeline scheduling, status updates, member commit checks, bulk assign. Use when managing VFX team project board, adding issues to timeline, checking member progress, or bulk-updating issue fields.
tools
Generate C++ validation rules from JSON definitions. Use when team updates ValidationRules.json or asks to add/modify validation rules.
development
Check codebase for Microsoft Xbox XR (Xbox Requirements) compliance issues. Scans for account picker, cloud saves, achievements, Quick Resume, and Xbox certification requirements. Use before console submission or when preparing for Microsoft certification. Triggers on "XR", "Xbox certification", "Microsoft compliance", "Xbox cert", "Xbox requirements", "GDK compliance".