Built-in (BRP) URP HDRP

Overview

Add one component. Assign a profile. The object has an outline. That is the whole setup, and everything below is what happens once you want more than the default.

Your material is never touched. Keyline does not swap the shader on your renderer, does not require a particular one, and does not add a pass to it. The outline is drawn from a separate hull with its own material, so your objects keep whatever they had — Lit, Shader Graph, a third-party toon shader, a character carrying a stack of custom passes. Nothing has to be re-authored to become outlinable, and removing the component leaves the object exactly as it was.

It is a per-object effect, not a fullscreen one. You can outline a single enemy through a wall in orange while a pickup two metres away pulses green, and everything without the component stays untouched. That is the trade against a post-process edge detector, which sees the whole frame at once and gives every edge in it the same weight.

The part that is genuinely hard to write yourself is the hull. Flat leaves, single-sided cards and thin prongs turn into blades under a naive normal-based extrusion. Mixed mode decides per face whether to follow the surface normal or stay in the plane; Sheet Solidify gives a flat island enough thickness to hold a rim. The same component covers a static prop, a skinned character, a foliage card and a texture-cut decal — it picks the hull it can build from the mesh in front of it.

URP and HDRP live in the same package and are selected automatically by the pipeline tag. There is no renderer feature to add, no prepass to enable and no project setting the package insists on.

Key features

  • Four independent passes per object — outer rim, X-Ray rim for when the object is hidden, interior fill, and X-Ray interior fill. Each carries its own complete profile.
  • Ten outline styles, every one of them tunable: Solid, Neon, Halo, Sketch, Pattern, Double, Electric, Rainbow, Gradient, Frost.
  • Hard-mesh handling — Mixed expand decides per face which rule applies, Sheet Solidify thickens flat islands enough to hold a rim.
  • Cutout from material alpha: the outline follows the shape the texture defines, not the one the mesh has. Foliage cards, decals, sprites on quads.
  • Merge groups draw several objects as one silhouette, explicitly or automatically, with no internal edges between them.
  • Skinned meshes follow the animation without re-baking per frame — all four passes, on a rigged character.
  • Width in world units or in constant screen pixels, whichever the shot needs.
  • Thirteen drop-in components for hover, selection, damage, gauges, waves and reveal — plus an arbiter that stops them fighting over the same object.
  • Instance override: profiles are shared by default, and an object forks its own private copy the moment it needs to differ.
  • Full scripting API, documented section by section in the manual.

Outline styles

Solid outline style
Solida clean, quiet rim. The one that fits realistic scenes without asking for attention.
Neon outline style
Neonan additive glow with its own shell, for sci-fi and night scenes.
Halo outline style
Haloa soft layered bloom around the silhouette, tunable down to a whisper.
Sketch outline style
Sketcha restless, sketchy line that keeps moving, for stylised and toon looks.
Pattern outline style
Pattern84 tileable textures projected onto the rim, with scale, contrast and scroll.
Double outline style
Doubletwo concentric rings with a real gap between them, held open by a mask.
Electric outline style
Electrica flickering bolt that reads as energy rather than as a line.
Rainbow outline style
Rainbowa hue sweep travelling vertically or around a centre, with its own saturation control.
Gradient outline style
Gradienttwo colours with independent alphas; the style everything else is built on — the waves, the gauges and the reveal all drive a Gradient underneath.
Frost outline style
Frosta sparkling shell with soft falloff, for ice, shields and status effects.

What's included

  • Two custom shaders: Keyline/Outline (Full) and Keyline/Outline Light, each carrying a SubShader per render pipeline. No Shader Graph dependency.
  • Fifteen entries under Add Component ▸ Keyline: the outline component, Merge Group, and thirteen in Runtime/Recipes/.
  • Ten ready-made profile assets, one per style.
  • 84 pattern textures (PNG, 256 × 256) for the Pattern style.
  • A ten-chapter demo scene, built entirely from script and safe to delete.
  • 31 demo models and 12 demo textures (Kenney, CC0).
  • A 16-section HTML manual with 26 illustrations, plus a quick start — both offline, inside the package.
  • README, License.txt and Third-Party Notices.txt at the package root.

Technical details

Outline styles10
Passes per object4 (rim, X-Ray rim, fill, X-Ray fill)
Profile parameters68
Components15 (13 recipes + outline + merge group)
Shaders2 (Full + Light) + 1 shared .hlsl
Pattern textures84 · PNG · 256 × 256
Demo1 scene, 10 chapters
Batching400 outlined objects → 7 SRP batches
Allocation0 bytes per frame from the outline runtime
Render pipelinesURP 17.x and HDRP 17.x — one package

Requirements

  • Unity 6000.3 or newer.
  • Universal Render Pipeline 17.x or High Definition Render Pipeline 17.x — both ship in the same package and are selected automatically.
  • The Built-in Render Pipeline is NOT supported.
  • Tested on Windows (URP and HDRP), Android (Vulkan and OpenGLES3) and WebGL.

Tags

Shaders VFX Outline Highlight X-Ray URP HDRP

Version history

v1.0.02026-08-02
  • Initial release.
  • Per-object outlines, highlights and X-Ray for URP and HDRP in a single package.
  • Four passes per object, ten styles, hard-mesh handling, cutout from material alpha, merge groups, skinned mesh support.
  • Thirteen drop-in components and a ten-chapter demo scene.

FAQ

Do I have to change my materials or shaders?
No. The outline is a separate hull with its own material. Your renderer keeps the shader it already has — Lit, Shader Graph, a third-party toon shader, anything. Remove the component and the object is byte-for-byte what it was.
Does it work on flat meshes, foliage cards and thin geometry?
That is the case it was built for. A naive normal-based hull turns flat leaves and single-sided cards into blades. Mixed mode decides per face whether to follow the normal or stay in plane, and Sheet Solidify gives a flat island enough thickness to hold a rim. One model can mix solid volumes and flat sheets — you do not split it into parts.
Does it support skinned and animated characters?
Yes, with all four passes. The hull follows the animation and is not re-baked per frame.
How expensive is it?
Measured in the demo's own Performance chapter: 400 outlined objects in URP draw in 7 SRP batches, the two largest holding 166 and 167 draw calls each. The outline runtime allocates nothing per frame. A Light shader profile is included alongside the Full one; both run on Android, and Light is faster the more outlined objects you have.
URP and HDRP — is that two packages?
One. The shader carries a SubShader per pipeline and Unity selects by the RenderPipeline tag. Nothing to configure, no renderer feature to add. The Built-in Render Pipeline is not supported.
Can I try it before buying?
Yes — the live WebGL demo is the full package running in your browser, ten chapters, every style, every recipe. The manual and quick start are readable online too.
Can I outline a group of objects as one shape?
Yes. Merge groups draw several objects as a single silhouette with no internal edges, either by adding a Merge Group component or automatically by proximity.
What is the licence on the demo art?
The example models, character, pattern and splat textures are by Kenney (kenney.nl) under CC0 1.0 Universal — public domain. Keep them, change them or delete them, with no obligation to anyone. The full text ships as Third-Party Notices.txt.
Support

Question about "Keyline"?

I'll help with setup and integration. Updates are free for buyers.

Contact support