Skip to content

NiloToon Motion Blur Tools

Motion blur is usually needed at low fps (e.g., 24/30 or 60) to produce a sense of smooth motion. NiloToon provides two types of motion blur tools for real-time applications and offline video production.

Real-time Use

NiloToonMotionBlurVolume Settings

Add NiloToonMotionBlurVolume to a Volume Profile, override Intensity = 1, and adjust the intensity as needed (common range = 0.5~1). When Intensity is 1, the shutter angle is 180 degrees at 24fps (shutter speed = 1/48s), so Intensity = 1 is generally a good default for cinematic motion blur.

NiloToonMotionBlurVolume Notes

  • Common Intensity range is 0.5~1
  • Blur result is fps independent. At any fps, it produces the same amount of blur per frame
  • Only supported on Unity2022.3 or later; works best on Unity6 or later
  • Using it alone can produce good real-time motion blur that looks good enough in motion if you have generated a correct motion vector texture. However, if you pause a frame, the blur quality will not match offline render quality
  • You can ignore Window > NiloToonURP > MotionBlurVideoBaker -- it is not for real-time use

Offline Use

TL;DR

Here is a summary of the standard steps for producing a 4K MV with offline baked motion blur:

  1. Volume: NiloToonMotionBlurVolume > intensity = 0.5
  2. ProjectSettings > VFX: Fixed TimeStep = 1/960
  3. Recorder: 960fps, 4K, ProRes422LT (not ProRes422 or ProRes422HQ) (Select ProRes422Proxy if rendering above 4K (3840x2160))
  4. Ensure 80GB per minute of free SSD disk space (e.g., 80x5=400GB for a 5-minute recording)
  5. Start recording using Recorder (hide Scene Window to speed up)
  6. After recording completes, a very large mov file is produced
  7. Window > NiloToonURP > NiloToonMotionBlurVideoBaker: select the ffmpeg.exe path, use the large mov file as input video, and bake to 60/30/25/24fps. Motion blur amount = default(1)
  8. (Optional) Post-production: e.g., edit in Premiere Pro / DaVinci Resolve
  9. (Optional) Upload

Goal

Use this tool to produce a short video with ground truth, perfect offline render quality cinematic motion blur and temporal anti-aliasing, similar to Unreal Engine's Movie Render Queue (Temporal sub-sample accumulation motion blur).

NiloToonMotionBlurVolume + MotionBlurBaker Result

Image above = result of NiloToonMotionBlurVolume + MotionBlurBaker**

How to Use

NiloToon provides:

  • MotionBlurVideoBaker: Window > NiloToonURP > MotionBlurVideoBaker
  • NiloToonMotionBlurVolume: Used in Volume

Using both together produces offline rendering quality motion blur as shown in the image above.

Disadvantages

  • MotionBlurVideoBaker produces perfect results since it uses the ground truth method, but rendering takes a very long time! Even with a high-end PC (2024), producing a 5-minute 4K MV takes several hours, and approximately 500GB of temporary ProRes 422 LT video data is generated on your SSD!
  • Adding motion blur may make it difficult for viewers to take sharp screenshots/photos

Typical Use Cases

Primarily used for producing videos up to 4K and up to 10 minutes:

  • MV (music video) production
  • Concert/3D Live dance video production (per song)
  • Dance short-form video production
  • Trailer video production
  • Short videos with lots of character/camera/particle movement

1. Settings

Below are the recommended settings for producing the best motion blur:

For 1440p

Item Setting
NiloToonMotionBlurVolume > intensity 0.5 (for 960fps)
Recorder 960 fps (ProRes 422 HQ)

For 2160p (4K), max 3840x2160

Item Setting
NiloToonMotionBlurVolume > intensity 0.5 (for 960fps)
Recorder 960 fps (ProRes 422 LT)

For Above 4K

Item Setting
NiloToonMotionBlurVolume > intensity 0.5 (for 960fps)
Recorder 960 fps (ProRes 422 Proxy)

For Above 4K (Fallback if Above Settings Fail)

Item Setting
NiloToonMotionBlurVolume > intensity 1 (for 480fps)
Recorder 480 fps (ProRes 422 Proxy)

2. Unity Recorder Steps

Using a 2160p (4K, 3840x2160) video production as an example:

  1. Enable NiloToonMotionBlurVolume in Volume and set Intensity to 0.5
  2. If using VFX Graph, set Project Settings > VFX > Fixed Time Step to 1/960
  3. Open Window > General > Recorder > Recorder Window
  4. Record a 960 fps video using Recorder (ProRes 422 LT, not HQ)

Ensure SSD Space

Make sure the fastest SSD has enough space. Generally, 300-400GB of SSD space is sufficient for:

  • 1440p 960fps 5-minute ProRes422HQ Recorder recording
  • 2160p 960fps 5-minute ProRes422LT Recorder recording

3. Nilo Baker Steps

  1. Open Window > NiloToonURP > MotionBlurVideoBaker
  2. Locate ffmpeg.exe (download the latest from ffmpeg.org if you don't have it). NiloToon .unitypackage does not include ffmpeg.exe
  3. Import the large ProRes .mov video from the Recorder step as input video
  4. Select the final output fps (usually 24/30/60; default is 60)
  5. Adjust the motion blur amount if needed (in most cases, 1 is optimal)
  6. Click 'Bake Now!' and wait (duration depends on CPU performance)

You should now have a final video with perfect motion blur and anti-aliasing, similar to the results listed above.

Blur Quality Examples

To produce good motion blur results, NiloToonMotionBlurVolume is essential. It is important for blurring the gaps between subframes.

Using Window > NiloToonURP > MotionBlurVideoBaker alone without NiloToonMotionBlurVolume will produce subframe gaps, resulting in poor quality.

Case 1 (Incorrect Setup)

Case 1 - Without NiloToonMotionBlurVolume

Recorder 480 fps recorded without NiloToonMotionBlurVolume, then MotionBlurVideoBaker (Motion Blur = 1) applied. Because NiloToonMotionBlurVolume was not used, subframe gaps are easily visible even without zooming in. Very poor result -- do not do this!

Case 2 (Insufficient Setup)

Case 2 - Low Intensity

Recorder 480 fps + NiloToonMotionBlurVolume (intensity = 0.5) recorded, then MotionBlurVideoBaker (Motion Blur = 1) applied. Subframe gaps are reduced due to enabling NiloToonMotionBlurVolume, but still not acceptable for high-quality results.

Case 3 (Acceptable Setup)

Case 3 - Higher Intensity

480 fps + NiloToonMotionBlurVolume (intensity = 1) recorded, then MotionBlurVideoBaker (Motion Blur = 1) applied. Gaps are greatly reduced due to increased NiloToonMotionBlurVolume intensity. Acceptable quality, but results may be overly blurred.

Case 4 - 960fps Optimal Settings

960 fps + NiloToonMotionBlurVolume (intensity = 0.5) recorded, then MotionBlurVideoBaker (Motion Blur = 1) applied. The high temporal sample count from 960fps recording makes gaps almost invisible, producing the best quality result.

Recommended Settings

We recommend always using Case 4 settings for production MVs. We never use settings from Cases 1-3 for production since we need to ensure sufficient quality.