Skip to main content
Viggle Splat Engine is a Unity runtime plugin for loading and rendering VFCHARB1 .bin Gaussian Splat characters in real time. It drives characters with Humanoid or Generic animations. Characters and animations are generated by Viggle services; the plugin does not generate characters itself.
ZIP package · 11 MB
Unity 6.5 is not recommended. Older plugin versions may produce CS0619 or Failed to resolve assembly: GaussianSplattingEditor. If you encounter these compilation errors, create a new project with Unity 6.3 LTS.

1. Create a Unity project

  1. In Unity Hub, install Unity 6.3 LTS 6000.3.20f1.
  2. Create a project with the Universal 3D or URP template.
  3. Wait for the initial Shader, Burst, and asset imports to finish.
No additional platform modules are required to run the sample. Install a platform build module only when you are ready to create a standalone application for that platform.

2. Install the plugin

  1. Download and extract the ZIP package above.
  2. In Unity, open Window → Package Management → Package Manager.
  3. Click + in the upper-left corner and select Add package from disk….
  4. Open the extracted com.viggle.splat-engine folder and select package.json.
  5. Wait for Unity to import and compile the package.
After installation, Package Manager displays Viggle Splat Engine with the Technical Name com.viggle.splat-engine.
Viggle Splat Engine version and imported Examples in Unity Package Manager, highlighted with red boxes and an arrow

3. Import and run the sample

  1. Select Viggle Splat Engine in Package Manager.
  2. Open Samples, locate Examples, and click Import.
  3. Open Assets/Samples/Viggle Splat Engine/0.1.10/Examples/CharacterRender/SplatCharacterExample.unity.
Before entering Play mode, add the rendering feature to the active URP Renderer Data:
  1. Stop Play mode and locate the active Renderer Data in the Project panel, such as Assets/Settings/PC/PC_High_Renderer.
  2. In the Inspector, find Renderer Features and click Add Renderer Feature.
  3. Select Gaussian Splat URP Feature.
  4. Keep Render Graph enabled. Do not add URP_COMPATIBILITY_MODE.
  5. Enter Play mode. You can continue if the Console contains no red errors.
Gaussian Splat URP Feature enabled on PC High Renderer, highlighted with red boxes and an arrow
If the .bin file is parsed and a Gaussian Splat Renderer is created but the Game view remains empty, the active Renderer Data is usually missing Gaussian Splat URP Feature.
When the configuration is correct, the loaded character appears in the Game view:
Gaussian Splat character displayed successfully in the Unity Game view, highlighted with a red box and arrow

4. Load your own character

  1. Stop Play mode and import a VFCHARB1 .bin file into Assets/MyCharacters. Its asset type should appear as Splat Bin Asset.
  2. Create an empty GameObject named MyCharacter. Set Position to 0, 0, 0, Rotation to 0, 90, 0, and Scale to 1, 1, 1.
  3. Add Splat Character Viewer and drag the .bin asset into Bin File.
  4. Enter Play mode. The Viewer automatically adds Gaussian Splat Renderer.
Select MyCharacter in the Hierarchy and confirm that the .bin assets are visible in the Project panel:
MyCharacter in the Unity Hierarchy and character bin assets in the Project panel, highlighted with red boxes and arrows
The Inspector should contain Splat Character Viewer, an assigned Bin File, and the generated Gaussian Splat Renderer:
Splat Character Viewer, assigned Bin File, and Gaussian Splat Renderer on MyCharacter, highlighted with red boxes and arrows
During testing, disable the sample characters and FBX preview objects so that only the Camera, Light, and MyCharacter remain active. This prevents a sample character from being mistaken for your imported character. If changing the .bin file does not update the character, stop Play mode, disable the Skinner, disable and re-enable the Viewer, re-enable the Skinner, and enter Play mode again.

5. Understand the animation assets

An animation FBX can contain a model root, an Armature, preview meshes, and one or more Animation Clips. Expand the FBX in the Project panel to see its sub-assets. The Animation Clip has a triangular animation icon. Drag this clip into the Animator window. Do not drag the complete FBX, Armature, Proxy, or SkeletonMesh into the Animator Controller, and do not add the preview FBX to the scene unless you need it for comparison.
Expanded slap FBX with the slap Animation Clip highlighted by a red box and arrow

6. Import and configure an animation FBX

  1. Create a folder such as Assets/MyCharacters/Animations and copy the animation FBX into it.
  2. Select the FBX in the Project panel and open the Rig tab in the Inspector.
  3. Choose the animation type:
For Humanoid animations, set Avatar Definition to Create From This Model, click Apply, and use Configure if Unity reports an invalid bone mapping.
The source FBX type and the Skinner Rig Mode must match. A Mixamo animation uses paths such as mixamorig:Hips, while the Viggle Generic skeleton uses paths such as Armature/root/pelvis. Playing the former as Generic can make the Splat character shake, twist, or move its joints incorrectly even when the FBX preview looks normal.

7. Create an Animator Controller

  1. Stop Play mode.
  2. In Assets/MyCharacters/Animations, right-click and select Create → Animator Controller.
  3. Give the controller a descriptive name, such as Chatting_AC.
  4. Double-click the controller to open the Animator window. A new controller initially contains only Any State and Entry.
A new Animator Controller selected in the Project panel with its empty Animator window highlighted
Store custom controllers outside Assets/Samples. Reimporting or deleting the package samples can replace files inside the Samples folder.

8. Add an Animation Clip to the controller

  1. Expand the animation FBX using the arrow beside its name.
  2. Drag the Animation Clip—not the complete FBX—onto the Animator grid.
  3. Select the new state and confirm that its Motion field references the correct clip.
  4. The default state is orange and receives the arrow from Entry. If the state is gray, right-click it and select Set as Layer Default State.
Animation Clip added as the orange default state in an Animator Controller, highlighted with a red box and arrow
The included samples use these pairings:

9. Assign the controller to a Splat character

  1. Select MyCharacter or SuomiCharacter in the Hierarchy. Do not select the source FBX.
  2. Add Splat Character Skinner if the character does not already have it.
  3. Assign your controller to Animator Controller.
  4. Set Rig Mode to the same type used by the animation FBX.
  5. For initial testing, set Pose Every N Frames and Sort Every N Frames to 1.
  6. Enter Play mode and test in the Game view.
Animator Controller, Rig Mode, and frame settings on Splat Character Skinner, highlighted with red boxes and an arrow

10. Loop an animation

  1. Select the animation FBX in the Project panel.
  2. Open the Animation tab in the Inspector.
  3. Select the clip in the Clips list.
  4. Enable Loop Time and, for a smooth pose transition, Loop Pose.
  5. Click Apply.
  6. Keep this clip’s state as the orange default state and do not create a transition from it to Exit.
If the character jumps when the loop restarts, enable Bake Into Pose for Root Transform Rotation, Root Transform Position (Y), and Root Transform Position (XZ). Adjust Cycle Offset only if the first and last poses still do not align.

11. Add multiple controllable actions

Drag additional clips into the same Animator Controller and create parameters such as: Create transitions with conditions, for example Idle → Walk when Speed > 0.1, Walk → Idle when Speed < 0.1, and Any State → Slap when the Slap trigger is set. Enable Has Exit Time on Slap → Idle so the one-shot action can finish. The plugin creates the Animator on its runtime rig. After the character has initialized, gameplay code can access it and set parameters:

Troubleshooting

The icons in the upper-right corner of the Console show Log, Warning, and Error counts. The example below is a valid test state with 0 Error; the Metal diagnostic warning does not block playback.
Unity Console Metal diagnostic warning and error counters, highlighted with red boxes and an arrow

Performance and limitations

  • In scenes with multiple characters, set the Pose and Sort intervals of background characters to 2–4 and use Splat Character Lod.
  • If performance is limited, begin testing with Splat Fraction 0.25–0.5 and Render Scale 0.5–0.75.
  • Splats are not affected by Unity lights, shadows, reflection probes, or lightmaps, and they do not write to the Z Buffer.
  • The plugin does not support MSAA. Use Metal, DirectX 12, or Vulkan.
Before finishing, confirm that the Console has no red errors, your character is visible, the animation uses the correct Rig Mode, and the scene is saved outside Play mode.