Hue
Your particle effect is good — except the colour palette doesn’t quite match the level it’s now being used in. The fire effect that was warm orange needs to be cool blue. The neutral white spark needs to be gold. The sunset hues should drift toward dawn.
You could open every Color graph, pick each keypoint’s new colour by eye, and try to keep the relationships between keypoints intact. That’s painful. The Hue tool is faster and more precise: shift the whole palette through HSV space with three sliders. Hue rotates the colour wheel; Saturation and Value adjust the depth and brightness uniformly.
The three sliders
Section titled “The three sliders”The Hue panel shows three vertical sliders, each with a gradient strip behind it for visual reference:
- Hue — rainbow gradient. The slider runs from
-0.5to+0.5(representing -180° to +180° rotation around the colour wheel). Wraps at the edges. - Saturation — white-to-fully-saturated gradient (defaulting to red). Slider runs from
-1to+1. Negative drains saturation toward grayscale; positive intensifies. - Value — black-to-white gradient. Slider runs from
-1to+1. Negative darkens; positive brightens.
All three default to 0 (no change). Apply commits the shifted colours; Reset restores the snapshot.
What gets shifted
Section titled “What gets shifted”Every ColorSequence property in the selection. Specifically:
Colorgraph onPart,Trail,PointLight.Colorgraph onBeam— across every GraphBlender state, not just one.Colorgraph onAtmosphere, plus the secondDecaygraph the same chapter has.ImageColor3andBackgroundColor3graphs onImageLabel(both are fullColorSequences, both shifted).TintColoronColorCorrection.Color3on nativeParticleEmitter(when set as a single colour, treated as a one-keypoint sequence for shifting purposes).
Each ColorSequenceKeypoint is shifted independently. If the original graph has three keypoints — white at age 0, orange at age 0.5, deep red at age 1 — the shift converts each to HSV, applies the three offsets, and converts back to RGB. The graph’s keypoint times stay the same; only the colour values change.
How the shift maths works
Section titled “How the shift maths works”Per keypoint:
H, S, V = originalColor:ToHSV() -- decomposeH = (H + hueShift) % 1.0 -- wrap around colour wheelS = clamp(S + satShift, 0, 1) -- bound to valid rangeV = clamp(V + valShift, 0, 1) -- bound to valid rangenewColor = Color3.fromHSV(H, S, V) -- recomposeHue uses modular arithmetic — a shift of +0.5 rotates halfway around the wheel (red becomes cyan, green becomes magenta). A shift of +0.25 rotates a quarter (red becomes yellow, blue becomes green). The wrap means there’s no “out of range” — every shift produces a valid colour.
Saturation and Value use additive arithmetic with clamping. A grayscale-shift (Saturation = -1) drives every keypoint to fully grayscale. A bright-shift (Value = +1) maxes out the brightness of every keypoint. Mid-range values blend.
The snapshot pattern
Section titled “The snapshot pattern”Same as Resize and Retime. When you open the Hue panel on a selection, the plugin captures the original ColorSequence for every applicable property. Slider movements compute new colours from the snapshot, not from the currently-displayed values. This means:
- Moving sliders back to centre always returns to the original.
- You can preview wild shifts without committing.
- Only Apply persists the change. Reset restores.
- After Apply, a fresh snapshot is taken — the next slider movement is relative to the post-apply state.
Beam GraphBlender support
Section titled “Beam GraphBlender support”Beam emitters use GraphBlender for multi-state Color animation (covered in the Beam chapter and GraphBlender Math). Each state’s Color is its own ColorSequence.
The Hue tool walks the GraphBlender folder, captures every state’s Color in the snapshot, and applies the shift to all states uniformly. So a 3-state Beam with white→cyan→red color progression gets every state shifted together.
Native PE and Trail support
Section titled “Native PE and Trail support”Native (untransformed) ParticleEmitter and Trail instances are supported. The tool reads their Color property as a ColorSequence, shifts it, and writes it back. No special handling needed for natives.
When to reach for Hue
Section titled “When to reach for Hue”Hue is right when:
- The colour relationships within an effect are correct, and only the palette needs to shift.
- You want to recolour a whole VFX library to match a new theme.
- You want to preview before committing.
Manual editing is right when:
- Different keypoints in the graph need different shifts (an orange-to-red sequence becoming an orange-to-blue sequence — that’s not a uniform shift).
- The colour change is qualitative — replacing one specific colour with a specific other colour, not shifting the palette.
For complex re-colouring jobs, a common pattern is: use Hue for an approximate global shift, then edit specific keypoints in the panel to fine-tune the result.
What’s next
Section titled “What’s next”Clipboard is the next bulk-edit tool. Different model from Resize/Retime/Hue — instead of a slider that transforms values, it copies values from one emitter and pastes them across many.