Skip to content

3D Live/MV Production Tools

A list of tools that can be used in 3D Live/Concert MV projects.

DLSS4.5 - AA / 4K Upscale

If you are GPU bound, DLSS4.5 is highly recommended for NVIDIA RTX GPUs. It provides the best upscale + anti-aliasing in the RenderScale 0.333 ~ 1 range and replaces URP's Camera AA (FXAA/SMAA/TAA):

  • Without upscaling (RenderScale = 1): Use DLSS.NativeAA as a 'much better TAA'
  • With upscaling (RenderScale = 0.333 ~ 0.833): Primarily for upscaling to 4K/8K Game Window; lower RenderScale to improve GPU performance
  • MSAA can be used together with DLSS4.5 to make the character's Classic Outline more stable, but generally MSAA is unnecessary with DLSS4.5 (heavy VRAM cost with minimal quality improvement)
Asset Description
DLSS4.5 Best graphics result, best AA at RenderScale=1. NVIDIA RTX GPU only
XeSS2 Better visual quality than FSR3, all GPUs (Windows x64, DX12 required)
FSR 3 Decent quality, all GPUs and platforms (except VR & WebGL)
SGSR2 Mobile Mobile upscaling tool

Planar Reflection

Primarily used for rendering sharp, mirror-like reflections on 3D Live concert stage floors.

Pros:

  • Can produce perfectly sharp reflections
  • No screen space reflection artifacts

Cons:

  • Requires an additional camera per planar surface, resulting in high CPU and GPU performance cost
  • Blurring reflections incurs additional GPU performance cost

Recommended Assets:

Screen Space Reflection

Used for rendering rough or blurred reflections on 3D Live stage floors. Not limited to a single planar surface; works on any object shape.

Pros:

  • Low CPU performance cost
  • Scalable GPU performance cost
  • Can produce blurry floor reflections

Cons:

  • Reflection artifacts when screen information is missing/occluded (inherent screen space limitation)
  • Results can be quite noisy
  • Higher rendering cost in Forward/Forward+ than Deferred

Recommended Asset:

Volumetric Light & Fog

Solutions for volumetric fog/light effects for 3DLive spotlights:

Asset Description
Volumetric Light Beam Adds a simple cone effect mesh to spotlights. Easy to control and fast to render. Recommended
Volumetric Fog & Mist 2 Automatically adds volumetric fog to all spotlights. Produces shadow effects when characters block spotlights
Volumetric Lights 2 Similar to Volumetric Light Beam but with more complex options
Buto Volumetric Fog and Volumetric Lighting for URP
Lux URP Essentials Fastest fog shape shader (box/sphere). Used for background gradient fog/light

Controlling Additive Effects on Character Pixels

To reduce additive effects only on NiloToon character pixels, see the Character Mask section.

VFX Graph - 6-way Lighting

A very powerful tool for creating smoke VFX that responds to lighting in concerts.

Light Beam / Laser Performance System

Systems for controlling spotlight rotation and light color animation in Timeline.

Light Timeline Track

For simple light color Timeline tracks:

Material Timeline Track

For Timeline tracks controlling material properties (e.g., emission):

LaserLightShader

Useful for 3DLive stage lighting:

Skylight Window LightShaft Shader

Useful for 3DLive stage lighting:

Motion Blur

NiloToonMotionBlur Volume is a higher quality alternative to Unity6's URP motion blur.

  • For real-time use, NiloToonMotionBlur Volume produces better results but at much higher GPU cost
  • For offline video rendering, using Windows/NiloToon/MotionBlurBaker together produces perfect quality motion blur

For details, see NiloToon Motion Blur Tools.

Utility PostProcess

Asset Description
Beautify 3 Horizontal flare bloom, etc.
SC postprocess Various post-process effects

Beautify 3 Effects

Beautify Setup Notes

  • Beautify must be placed below NiloToon's renderer feature. Otherwise, NiloToon features like extra thick outline will not work (Beautify may clear stencil buffer values)
  • Beautify slightly increases saturation by default just by adding its renderer feature

Bloom with Shape

Bloom with glare (e.g., X shape / * sharp / star shape). Suitable for stylized light source bloom and specular reflection bloom:

World Space GI

HTrace WSGI is the most stable real-time GI solution in URP. Free from screen space GI limitations, it accurately captures even small or off-screen emissive objects as light sources without noise/ghosting.

Faster alternatives:

  • LUMINA GI (faster. Non-realistic style GI, initial setup can be difficult)
  • AdaptiveGI (fastest. Use for mobile targets. Performance-focused but lower GI quality)

Screen Space GI

Primarily used for real-time GI in scenes with emissive materials, directional lights, and skyboxes.

Radiant GI Setup

When using Radiant Global Illumination, place the Radiant Renderer Feature above NiloToon All In One Renderer Feature to maintain correct NiloToonTonemap ordering.

Ambient Occlusion

A slower but much better alternative to URP SSAO. Suitable for character indirect shadows.

  • HTrace: Ambient Occlusion URP (recommended. High quality real-time AO at reasonable GPU cost)
  • NiloToon character pixels do not receive/display AO, but they do cast AO
  • For artifact-free AO, use the RTAO option (requires an RTX card)

Cloth, Hair, Breast Physics

Mouth AIUEO Animation

Generates AIUEO mouth shape animation from song audio (baked) or microphone (real-time):

Performant Video Player

A video player that works with Timeline preview + Recorder. Primarily used for playing video on large screens behind 3D Live stages.

  • KlakHap (free. Supports HAP .mov videos only)

For details, see VideoPlayer & Recorder Sync Problem.

UniVRM

A tool for importing .vrm as character prefabs. Includes VRM/MToon shader and VRM BlendShapeProxy script.

  • UniVRM (free, supports both vrm 0.x and vrm 1.0)

Other Useful Tools

Category Asset Description
Test Animation Anime Girl Idle Animations Free Free character idle animations
Lightmap Baking Bakery GPU Lightmapper
IK Animation Final IK Runtime IK animation
Stage Prefab Stage Constructor Concert stage construction
Skybox Fantasy Skybox FREE Free Skybox
Dynamic Skybox Enviro 3 Runtime dynamic Skybox
FPS Counter Advanced FPS Counter FPS overlay
Shader Graph Alt. Amplify Shader Editor Supplements features missing from Shader Graph
Glass Refraction Reflect It! URP Glass & Refraction Shader
Hierarchy UI vHierarchy 2 For organizing complex scenes
PMX Conversion MMD4Mecanim Converts .pmx to .fbx prefab
Volume Animation AnimatableVolumeComponent Control Volume profiles via Animation clips
Outline Alternative Pencil+ for Unity More 2D/anime-style outlines (CPU solution, not suitable for real-time)

Character Mask Shader Application

This section requires basic knowledge of HLSL / CG shader programming.

Prerequisites

NiloToonBloom or NiloToonTonemapping must be enabled, or Force Prepass must be enabled in NiloToonRendererFeature.

Force Prepass Setting

Otherwise, NiloToon will not render the global RenderTexture _NiloToonPrepassBufferTex needed for the shader you want to edit.

There are situations where specific additive effects from other assets should not apply to NiloToon character pixels. Such effects can make characters excessively bright, producing poor results.

For example:

  • Preventing Volumetric Light Beam / Volumetric Light additive lighting from applying to character pixels
  • Preventing Screen Space / World Space GI additive lighting from applying to character pixels
  • Preventing AmbientOcclusion color changes from applying to character pixels
  • Controlling effect application intensity on character pixels (0%~100%)

You need to modify the shader source code of the target asset (not NiloToon). Add the following HLSL code to the target asset's shader:

// Add above the target shader's fragment shader
TEXTURE2D_X(_NiloToonPrepassBufferTex);

// Add inside the target shader's fragment shader
// Sample NiloToon character mask RenderTexture
half characterArea = SAMPLE_TEXTURE2D_X(_NiloToonPrepassBufferTex, sampler_LinearClamp, uv).g;

// Use character mask to remove/reduce unwanted effects on character pixels
half NiloToonCharacterAreaReceiveEffectStrength = 0; // 0~1 (0% ~ 100%)
anyAdditiveEffect.rgb *= lerp(1, NiloToonCharacterAreaReceiveEffectStrength, characterArea);

VolumetricLightBeam Modification Example

For Volumetric Light Beam:

In VolumetricLightBeam\Shaders\VolumetricLightBeamSharedHD.cginc > fragShared function:

// Add above the fragment shader
TEXTURE2D_X(_NiloToonPrepassBufferTex);

// Add just before "return color;"
float2 uv = i.projPos.xy / i.projPos.w;
half characterArea = SAMPLE_TEXTURE2D_X(_NiloToonPrepassBufferTex, sampler_LinearClamp, uv).g;
half NiloToonCharacterAreaReceiveEffectStrength = 0; // 0~1 (0% ~ 100%)
color *= lerp(1, NiloToonCharacterAreaReceiveEffectStrength, characterArea);

HTrace SSGI/WSGI Modification Example

In ColorComposeURP.hlsl > "Final Output" pass > FragmentStage function:

// Add above the fragment shader
TEXTURE2D_X(_NiloToonPrepassBufferTex);

// Add just before "float3 FinalIndirectLighting = ..."
half characterArea = SAMPLE_TEXTURE2D_X(_NiloToonPrepassBufferTex, sampler_LinearClamp, input.TexCoord).g;
half characterAreaReceiveGIStrength = 0; // 0~1 (0% ~ 100%)
IndirectLighting.rgb *= lerp(1, characterAreaReceiveGIStrength, characterArea);

Separating Character/Environment Lighting

Due to URP's Main Light design, you must use a single Main Light (Directional Light) for both characters and the environment (do not use 2 directional lights on separate layers). This ensures correct character shadows are cast on environment objects (e.g., floors).

Sun Setting

In URP:

  1. If a SunLight (RenderSettings.sun) exists, it is used as URP's Main Light
  2. If no SunLight exists, the brightest directional light is treated as URP's Main Light

Sun Light Setting

NiloToon requires URP's Main Light information to light characters correctly.

Override via NiloVolume

If you need a character-specific lighting direction override, in NiloToonCharRenderingControlVolume's OverrideMain Light Direction section:

  • Set Strength to 1
  • Set UpDownAngle to a different value (optional)

Override Setting Override Result

This overrides the lighting direction for characters only, and the lighting direction is relative to the camera. Think of it as a directional light that is a child of the camera transform.

This is useful when you don't want a fixed world space lighting direction. For example, in game interiors, VTuber 3D Live, and MVs, it keeps character lighting stable and attractive from all camera angles, preventing face shadows.

MainLightOverrider

The NiloToonCharacterMainLightOverrider script allows overriding the character's main light color and direction via a game object, without editing URP's directional light.

MainLightOverrider Setting MainLightOverrider Result

Treat this NiloToonCharacterMainLightOverrider game object as a Directional Light that only affects NiloToon characters.

If the script doesn't work, try a different Override Timing.

Override Timing Setting

Lighting Override Before/After 1 Lighting Override Before/After 2

The images above show that NiloToonCharacterMainLightOverrider overrides only the character's lighting color and lighting direction, without affecting the environment or other non-NiloToon shaders.