本章では、Unity で ShapeSync(シェイプシンク) を使い始めるためのインストール手順とプロジェクトの初期設定について解説します。
インストール手順を進める前に、よく登場する専門用語を分かりやすく説明します。
ShapeSync を動作させるために、以下の環境を用意してください。
| 項目 | 必要条件 | 補足・推奨値 |
|---|---|---|
| Unity バージョン | Unity 6.0 LTS 以上 | 動作検証基準: Unity 6000.3.18f1 |
| レンダーパイプライン | Universal Render Pipeline (URP) 17.0.0 以上 | 検証基準: URP 17.3.0(Built-in RP / HDRP / カスタム SRP は非対応) |
| Graphics API | DirectX 12 または Vulkan | 非同期コンピュートキュー対応が必須(※D3D11 は非サポート) |
| Git | Git 2.14 以上 | HTTPS 経由で GitHub からパッケージを取得するために必要 |
| NuGetForUnity | 4.5.0 | R3 の .NET コア依存関係を導入するために使用 |
| UniVRM | 0.131.1 | ※VRM 連携機能を使用する場合のみ必要 |
Unity Hub で新規プロジェクトを作成する際は、「Universal 3D」 テンプレートを選択することを強く推奨します。
[!TIP] Universal 3D テンプレートを推奨する理由 Unity 6 (
6000.3.18f1) の Universal 3D テンプレートでは、URP と Color Space のLinear設定が初期設定されます。ただし、URP Asset の配置・割当先は Unity のバージョンやテンプレートによって異なるため、特定の serialized assignment を前提にしないでください。Step 4 で実際の Graphics / Quality 設定を確認してください。※Built-in RP などの別テンプレートから作成した場合は、後述のステップに従って手動で URP の導入と設定を行ってください。
ShapeSync のインストールは、依存関係の解決順序が重要です。必ず以下の Step 1 〜 Step 6 を順番に実行してください(VRM を利用する場合は Step 8 まで)。
OpenUPM から関連パッケージを取得できるように設定します。
Name: OpenUPM
URL: https://package.openupm.com
Scopes: com.cysharp, com.vrmc, com.github-glitchenzo
▲図 1-1: Project Settings > Package Manager での Scoped Registries 設定
ShapeSync で必要な R3 の基本コアライブラリを NuGet 経由で導入します。
com.github-glitchenzo.nugetforunity
※バージョン指定が必要な場合は 4.5.0 を入力します。
R3 と入力し、一覧から R3(バージョン 1.3.1)を探して Install をクリックします。
▲図 1-2: NuGet > Manage NuGet Packages での R3 (1.3.1) のインストール
[!IMPORTANT] 重要な確認事項
- Unity Package Manager 上に表示される
R3 1.3.1(後述の Step 3)と、NuGet 版のR3は別物です。必ず NuGet ウィンドウからインストールを行ってください。- インストール後、プロジェクトの
Assets/packages.config内に<package id="R3" version="1.3.1" manuallyInstalled="true" />が記載され、Assets/Packages/R3.1.3.1/lib/.../R3.dllが生成されていることを確認してください。
[!WARNING] Step 2 から Step 3 へ進む順序を崩さないでください。 NuGet 版 R3 の復元を確認する前に Step 3 へ進むと、コンパイルエラーで Unity の domain reload が停止する場合があります。domain reload が停止している間は
[InitializeOnLoad]の復元フックも実行されないため、自動復元を期待できません。Step 2 の確認を完了してから Step 3 へ進み、問題が発生した場合は Q1 を参照してください。
Unity 上で R3 をスムーズに連携させるための Unity アダプターパッケージを導入します。
com.cysharp.r3
※バージョン 1.3.1 を指定します。
▲図 1-3: Package Manager での com.cysharp.r3 パッケージ確認・追加
com.unity.render-pipelines.universal(17.0.0 以上、24.3 検証基準 17.3.0)をインストールし、プロジェクトで使用する Graphics / Quality の該当設定へ URP Asset を割り当ててください。
▲図 1-4: Project Settings > Player での Graphics APIs 設定(Direct3D12 を最上位に設定)
Git の URL を指定して、ShapeSync の本体パッケージをインストールします。
https://github.com/zgock999/ShapeSync.git?path=Packages/net.zgock-lab.shapesync#0.2.0
[!WARNING] URL 内の
?path=Packages/net.zgock-lab.shapesyncは必ず#0.2.0より前に記述してください。順序が異なると Git の取得エラー(pathspec error)が発生します。
▲図 1-5: Package Manager での Git URL からの ShapeSync Core 追加
ShapeSync の大容量データおよびマテリアルを正常に扱うため、プロジェクト設定を調整します。
▲図 1-6: Project Settings > Editor での Asset Serialization Mode 設定(Mixed を選択)
VRM 1.0 形式のアバターモデルで ShapeSync を利用する場合は、以下のパッケージを追加します(※ShapeSync Core 単体で利用する場合はスキップしてください)。
com.vrmc.gltf (バージョン: 0.131.1)com.vrmc.vrm (バージョン: 0.131.1)VRM 連携用の拡張パッケージを追加し、連携スイッチを有効化します。
https://github.com/zgock999/ShapeSync.git?path=Packages/net.zgock-lab.shapesync.vrm#0.2.0
SHAPESYNC_USE_UNIVRM を追加して Apply をクリックします。
▲図 1-7: Project Settings > Player での Scripting Define Symbols 設定(SHAPESYNC_USE_UNIVRM を追加)
Windows 環境で Unity 6.0 LTS (6000.0.x) を使用する場合の Graphics API 設定に関して、重要な注意事項があります。
ShapeSync のテクスチャ変形エンジン(Texture StackMachine)は、GPU の高速な 非同期コンピュートキュー(Async Compute Queue) および 同期フェンス(GraphicsFence) を利用してリアルタイムにテクスチャを生成・合成します。
従来の DirectX 11 (D3D11) はこれらの機能を備えていないため、D3D11 環境下ではテクスチャ処理時に実行時エラー(NotSupportedException)が発生します。D3D11 はサポート対象外となっています。
6000.0.x) を使用する場合【手動変更が必須】:
6000.3.x) を使用する場合【確認のみ】:
本付記は、公開資料 Docs/codex/README.md の以下の各記述に基づいています。
## Requirements: D3D12 / Vulkan の非同期コンピュート要求、Unity 6.0 (D3D11初期値) と Unity 6.3 (D3D12初期値) の挙動、D3D11 非サポートの明記。### Choose the project template: Unity 6.0 での D3D11 から D3D12 への変更必須の記述。### 4. Confirm or install URP: Windows における Graphics APIs 設定手順とエディタ再起動の必要性。### Troubleshooting > Texture processing fails on Windows: D3D11 での NotSupportedException 例外発生と D3D12 への変更手順。The type or namespace name 'Collections' does not exist in the namespace 'R3' や FrameProvider、Observable<> 等が見つからないエラーが出る。[InitializeOnLoad] の復元フックが動かないため自動復元されないことがあります。R3(1.3.1)をインストールしてください。プロジェクトの Assets/packages.config に R3 が記載されているか確認し、コンパイルエラーが解消してから必要に応じて Unity を再起動してください。NotSupportedException: Cannot determine if this AsyncQueueSynchronisation Graphics... というエラーが出る。Cannot checkout repository ... pathspec ... did not match any file(s) known to git というエラーが出る。?path=Packages/net.zgock-lab.shapesync を #0.2.0 の前に記述しているか確認してください。インストールの完了後、正しく導入できたかテストを実行して確認できます。
Packages/manifest.json をテキストエディタで開き、"testables" の項目に "net.zgock-lab.shapesync" を追加します。
"testables": [
"net.zgock-lab.shapesync"
]