This chapter explains the installation steps and initial project configuration required to start using ShapeSync in Unity.
Before proceeding with the installation steps, here is a simple explanation of commonly used technical terms.
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 toLinearas 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.
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).
Configure Unity to obtain related packages from OpenUPM.
Name: OpenUPM
URL: https://package.openupm.com
Scopes: com.cysharp, com.vrmc, com.github-glitchenzo
▲Figure 1-1: Scoped Registries settings in Project Settings > Package Manager
Install the core R3 library required by ShapeSync via NuGet.
com.github-glitchenzo.nugetforunity
If a version specification is needed, enter 4.5.0.
R3 in the search box, locate R3 (version 1.3.1) from the list, and click Install.
▲Figure 1-2: Installing R3 (1.3.1) in NuGet > Manage NuGet Packages
[!IMPORTANT] Important Checkpoints
- The
R3 1.3.1displayed in Unity Package Manager (described in Step 3 below) and the NuGet version ofR3are different packages. Make sure to install from the NuGet window.- After installation, verify that
<package id="R3" version="1.3.1" manuallyInstalled="true" />is written inAssets/packages.configof your project, and thatAssets/Packages/R3.1.3.1/lib/.../R3.dllhas been generated.
[!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.
Install the Unity adapter package to ensure seamless integration of R3 within Unity.
com.cysharp.r3
Specify version 1.3.1.
▲Figure 1-3: Confirming and adding the com.cysharp.r3 package in Package Manager
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.
▲Figure 1-4: Graphics APIs settings in Project Settings > Player (Direct3D12 set to the top)
Install the main ShapeSync package by specifying the Git URL.
https://github.com/zgock999/ShapeSync.git?path=Packages/net.zgock-lab.shapesync#0.2.0
[!WARNING] In the URL,
?path=Packages/net.zgock-lab.shapesyncmust be placed before#0.2.0. If the order is different, a Git fetch error (pathspec error) will occur.
▲Figure 1-5: Adding ShapeSync Core from Git URL in Package Manager
Adjust project settings to properly handle ShapeSync’s large-capacity data and materials.
▲Figure 1-6: Asset Serialization Mode settings in Project Settings > Editor (Selecting Mixed)
If you use ShapeSync with VRM 1.0 format avatar models, add the following packages (*skip this step if using ShapeSync Core alone):
com.vrmc.gltf (Version: 0.131.1)com.vrmc.vrm (Version: 0.131.1)Add the extension package for VRM integration and enable the integration flag.
https://github.com/zgock999/ShapeSync.git?path=Packages/net.zgock-lab.shapesync.vrm#0.2.0
SHAPESYNC_USE_UNIVRM to Scripting Define Symbols and click Apply.
▲Figure 1-7: Scripting Define Symbols settings in Project Settings > Player (Adding SHAPESYNC_USE_UNIVRM)
There are important notes regarding Graphics API configuration when using Unity 6.0 LTS (6000.0.x) on Windows.
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.
6000.0.x) [Manual change required]:
6000.3.x) [Verification only]:
This note is based on the following descriptions in the public documentation README.md:
## Requirements: Async compute requirements for D3D12 / Vulkan, behavior differences between Unity 6.0 (D3D11 default) and Unity 6.3 (D3D12 default), and explicit note on D3D11 non-support.### Choose the project template: Note requiring manual change from D3D11 to D3D12 in Unity 6.0.### 4. Confirm or install URP: Graphics APIs configuration steps on Windows and the necessity of restarting the Editor.### Troubleshooting > Texture processing fails on Windows: NotSupportedException occurrence in D3D11 and steps to change to D3D12.The type or namespace name 'Collections' does not exist in the namespace 'R3', or missing FrameProvider, Observable<>, etc.[InitializeOnLoad] recovery hook from running and automatic recovery from occurring.R3 (1.3.1). Verify that R3 is listed in Assets/packages.config, resolve the compiler errors, and restart Unity if needed.NotSupportedException: Cannot determine if this AsyncQueueSynchronisation Graphics... occurs.Cannot checkout repository ... pathspec ... did not match any file(s) known to git occurs.?path=Packages/net.zgock-lab.shapesync is placed before #0.2.0.After completing the installation, you can verify that it was installed correctly by running tests.
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"
]