ShapeSync

Chapter 1: Installing and Configuring ShapeSync

← Back to Tutorial Index

This chapter explains the installation steps and initial project configuration required to start using ShapeSync in Unity.


1. Introduction (Glossary for Beginners)

Before proceeding with the installation steps, here is a simple explanation of commonly used technical terms.


2. System Requirements

Ensure the following environment is prepared to run ShapeSync:

Item Requirement Notes / Recommended Value
Unity Version Unity 6.0 LTS or higher Verification standard: Unity 6000.3.18f1
Render Pipeline Universal Render Pipeline (URP) 17.0.0 or higher Verification standard: URP 17.3.0 (Built-in RP / HDRP / Custom SRP are not supported)
Graphics API DirectX 12 or Vulkan Async Compute Queue support is required (*D3D11 is not supported)
Git Git 2.14 or higher Required to fetch packages from GitHub via HTTPS
NuGetForUnity 4.5.0 Used to install .NET core dependencies for R3
UniVRM 0.131.1 Required only when using VRM integration features

When creating a new project in Unity Hub, it is strongly recommended to select the “Universal 3D” template.

[!TIP] Why the Universal 3D Template is Recommended In Unity 6 (6000.3.18f1), the Universal 3D template comes with URP and Color Space set to Linear as initial settings. However, the placement and assignment of the URP Asset vary by Unity version and template, so do not assume a particular serialized assignment. Confirm the actual Graphics / Quality settings in Step 4.

If you create a project from another template such as Built-in RP, follow the steps below to manually install and configure URP.


4. Step-by-Step Installation

The order of resolving dependencies is crucial when installing ShapeSync. Please follow Step 1 through Step 6 strictly in order (up to Step 8 if using VRM).

Step 1: Adding the OpenUPM Scoped Registry

Configure Unity to obtain related packages from OpenUPM.

  1. In the Unity Editor menu, open Edit > Project Settings.
  2. Select Package Manager from the left-side menu, enter the following information in the Scoped Registries list, and click Save.
Name: OpenUPM
URL: https://package.openupm.com
Scopes: com.cysharp, com.vrmc, com.github-glitchenzo

Scoped Registries settings screen ▲Figure 1-1: Scoped Registries settings in Project Settings > Package Manager


Step 2: Installing NuGetForUnity and NuGet Version of R3

Install the core R3 library required by ShapeSync via NuGet.

  1. In the Unity menu, open Window > Package Manager.
  2. Click the “+” button in the upper left corner and select Add package by name….
  3. Enter the following in the Name field and click Add:
    com.github-glitchenzo.nugetforunity
    

    If a version specification is needed, enter 4.5.0.

  4. Once installation is complete, a NuGet menu will be added to the top menu of Unity. Open NuGet > Manage NuGet Packages.
  5. Type R3 in the search box, locate R3 (version 1.3.1) from the list, and click Install.

R3 installation in NuGet Package Manager screen ▲Figure 1-2: Installing R3 (1.3.1) in NuGet > Manage NuGet Packages

[!IMPORTANT] Important Checkpoints

[!WARNING] Keep the Step 2-to-Step 3 order. If you proceed to Step 3 before confirming that the NuGet version of R3 has been restored, compiler errors may stop Unity’s domain reload. While domain reload is stopped, the [InitializeOnLoad] recovery hook does not run, so automatic recovery cannot be expected. Complete the Step 2 checks before moving to Step 3; if a problem occurs, see Q1.


Step 3: Installing the R3 Unity Adapter

Install the Unity adapter package to ensure seamless integration of R3 within Unity.

  1. Open Window > Package Manager.
  2. Click the “+” button in the upper left corner and select Add package by name….
  3. Enter the following and click Add:
    com.cysharp.r3
    

    Specify version 1.3.1.

Adding R3 Unity Adapter in Package Manager ▲Figure 1-3: Confirming and adding the com.cysharp.r3 package in Package Manager


Step 4: Confirming/Installing URP and Configuring the Graphics API

  1. Confirming URP:
    • If you used the Universal 3D template, URP 17.x is automatically installed. Check both Project Settings > Graphics and Project Settings > Quality to confirm that the URP Asset / Renderer referenced by the active quality settings is valid. The placement and assignment vary by Unity version and template, so do not assume a particular serialized assignment.
    • If you used a different template, install com.unity.render-pipelines.universal (17.0.0 or higher, 24.3 verification standard 17.3.0) from the Package Manager, and assign the URP Asset in the applicable Graphics / Quality setting used by the project.
  2. Graphics API Configuration on Windows:
    • Open Edit > Project Settings > Player.
    • Under the Other Settings > Rendering section, uncheck Auto Graphics API for Windows.
    • Place Direct3D12 at the top of the list (or select Vulkan).
    • After changing this setting, make sure to restart the Unity Editor.

Windows Graphics API settings screen ▲Figure 1-4: Graphics APIs settings in Project Settings > Player (Direct3D12 set to the top)


Step 5: Installing the ShapeSync Core Package

Install the main ShapeSync package by specifying the Git URL.

  1. Open Window > Package Manager.
  2. Click the “+” button in the upper left corner and select Add package from git URL….
  3. Copy and paste the following URL exactly as it is and click Add:
    https://github.com/zgock999/ShapeSync.git?path=Packages/net.zgock-lab.shapesync#0.2.0
    

[!WARNING] In the URL, ?path=Packages/net.zgock-lab.shapesync must be placed before #0.2.0. If the order is different, a Git fetch error (pathspec error) will occur.

Adding ShapeSync Core package from Git URL ▲Figure 1-5: Adding ShapeSync Core from Git URL in Package Manager


Step 6: Checking and Modifying Project Settings

Adjust project settings to properly handle ShapeSync’s large-capacity data and materials.

  1. Changing Asset Serialization Mode:
    • Open Edit > Project Settings > Editor.
    • Change Mode under Asset Serialization to Mixed (*make sure to change it from the default “Force Text” in a new project).
  2. Checking Color Space:
    • Open Edit > Project Settings > Player > Other Settings > Rendering.
    • Verify that Color Space is set to Linear (if it is set to Gamma, change it to Linear).

Asset Serialization Mode settings screen ▲Figure 1-6: Asset Serialization Mode settings in Project Settings > Editor (Selecting Mixed)


Step 7: [Optional] Installing UniVRM (Only When Using VRM Integration)

If you use ShapeSync with VRM 1.0 format avatar models, add the following packages (*skip this step if using ShapeSync Core alone):

  1. From Add package by name… in Window > Package Manager, add the following two packages in order:
    • com.vrmc.gltf (Version: 0.131.1)
    • com.vrmc.vrm (Version: 0.131.1)

Step 8: [Optional] Installing ShapeSync VRM Integration Companion

Add the extension package for VRM integration and enable the integration flag.

  1. From Add package from git URL… in Window > Package Manager, add the following:
    https://github.com/zgock999/ShapeSync.git?path=Packages/net.zgock-lab.shapesync.vrm#0.2.0
    
  2. Open Edit > Project Settings > Player > Other Settings.
  3. Add SHAPESYNC_USE_UNIVRM to Scripting Define Symbols and click Apply.

Adding symbol to Scripting Define Symbols screen ▲Figure 1-7: Scripting Define Symbols settings in Project Settings > Player (Adding SHAPESYNC_USE_UNIVRM)


5. [Important Note] DirectX 12 Configuration When Using Unity 6000.0 (Unity 6.0 LTS)

There are important notes regarding Graphics API configuration when using Unity 6.0 LTS (6000.0.x) on Windows.

1. Why is DirectX 12 (or Vulkan) Required?

ShapeSync’s texture transformation engine (Texture StackMachine) generates and composites textures in real time using the GPU’s high-speed Async Compute Queue and GraphicsFence. Because legacy DirectX 11 (D3D11) does not support these features, running texture processing under D3D11 causes a runtime error (NotSupportedException). D3D11 is unsupported.

2. Conditions and Version Differences

3. Configuration Steps

  1. Open Edit > Project Settings > Player > Other Settings > Rendering.
  2. Uncheck Auto Graphics API for Windows.
  3. Place Direct3D12 at the top of the list (or select Vulkan).
  4. Restart the Unity Editor (*The new Graphics API will not take effect until restarted).

4. Reference and Rationale

This note is based on the following descriptions in the public documentation README.md:


6. Common Issues and Solutions (Troubleshooting)

Q2. Error occurs during texture processing

Q3. Error indicating Core cannot be found occurs in VRM Companion

Q4. Error occurs with Git URL specification


7. Verifying Installation (Running Package Tests)

After completing the installation, you can verify that it was installed correctly by running tests.

  1. Open Packages/manifest.json of your project in a text editor and add "net.zgock-lab.shapesync" to the "testables" field.
    "testables": [
      "net.zgock-lab.shapesync"
    ]
    
  2. Return to the Unity Editor and open Window > General > Test Runner from the menu.
  3. Run EditMode and PlayMode tests and confirm that all tests pass successfully (approx. 1,175 EditMode tests and 136 PlayMode tests in a Core-only configuration).

← Back to Tutorial Index