Post

UE5 ColorTransfer plugin document

UE5 ColorTransfer plugin document

1. Introduction

ColorTransfer is an Unreal Engine plugin that performs real-time color transfer between images. Given a reference image, it transfers the color style to the scene viewport in real time.

It has the following features:

  1. Real-time color transfer applied as a post-process pass
  2. Reference image hot-swap at runtime via Blueprint
  3. EMA smoothing to suppress flicker
  4. Works in editor viewport, PIE, and packaged builds
  5. Support Android / iOS / Win64 / Linux / LinuxArm64 / Mac

1.1 Quick Start

1.1.1 Direct way

  1. Install the plugin and enable it in Plugins window
  2. Place a ColorTransferActor in the level (found in the Place Actors panel under VFX category)
  3. Assign a ReferenceImage texture to the actor
  4. Check Enable to activate the effect

Settings

1.1.2 New BP inherent from ColorTransferActor

NewBP

ColorTransferBP


2. AColorTransferActor

Place a ColorTransferActor in your level. It drives the color transfer effect for the entire scene.

2.1 Properties

PropertyTypeDefaultDescription
EnableboolfalseToggles the effect on/off. Can be changed at runtime via SetEnable()
Cal Each FrameboolfalseWhen true, reference stats are re-computed every frame (useful for animated reference textures). When false, stats are cached after first computation
Smoothing Alphafloat (0.0–1.0)0.1Smoothing factor for scene statistics. 0.0 = frozen, 1.0 = instant (may flicker). Recommended: 0.05 ~ 0.2
Reference ImageUTexture2D*nullptrThe reference image whose color style will be transferred to the scene

2.2 Blueprint Functions

NodeSignatureTypeDescription
Set Enablevoid SetEnable(bool bEnable)BlueprintCallableEnables or disables the effect at runtime
Set Reference Imagevoid SetReferenceImage(UTexture2D* NewImage)BlueprintCallableSwaps the reference image at runtime

2.3 Typical Blueprint Usage

1
SetReferenceImage(NewStyleTexture) → SetEnable(true)

3. Reference Image Requirements

The reference image texture must meet these requirements:

RequirementValue
FormatRGBA8
CompressionUncompressed(RGBA8)

TextureRequirement

If the format is incorrect, the plugin will log a warning:

1
reference texture 'MyTexture' is not PF_B8G8R8A8 — import with no compression and no alpha override.

4. Logging

The plugin logs to the LogColorTransfer category. Verbose logs are disabled by default.

Enable verbose logging via console command:

1
Log LogColorTransfer Verbose

Or in DefaultEngine.ini:

1
2
[Core.Log]
LogColorTransfer=Verbose

5. Platform Notes

On mobile (Android / iOS), the transfer pass is applied after Tonemap instead of MotionBlur.


6. Troubleshooting

  • Effect doesn’t appear: Ensure Enable is checked and a valid Reference Image (BGRA8, uncompressed) is assigned. Wait one frame after enabling.
  • Flickering: Lower Smoothing Alpha (e.g. 0.05).

Plugin Version: 1.0Engine Version: 5.7/5.6/5.5Platforms: Win64 / Linux / LinuxArm64 / Mac / iOS / Android
This post is licensed under CC BY 4.0 by the author.

Trending Tags