VRChat の .vrca / .vrcw AssetBundle を Unity プロジェクトに復元するための Editor 拡張です。
SARS の技術的手法を参考にした独自実装の復元補助処理と AssetRipper.exe を組み合わせ、
Missing Script・ピンクマテリアル・Broken PPtr エラーの切り分けと復旧を支援します。
| 項目 | 内容 |
|---|---|
| Unity | 2022.3.x (VCC 推奨バージョン) |
| VRChat SDK | com.vrchat.base 必須。Avatar プロジェクトは com.vrchat.avatars、World プロジェクトは com.vrchat.worlds を VCC 経由で利用 |
| AssetRipper.exe | Dean2k/SARS の Release.zip から取得 |
| OS | Windows 10/11 |
Avatar Recovery 1.0.3 以降は、既存 World / Avatar Project の SDK 構成を壊さないように
com.vrchat.baseの依存範囲を広く取っています。VRChat SDK - BaseとVRChat SDK - Worlds/VRChat SDK - Avatarsは VCC 上で同じバージョン系列に揃えてください。 例: Worlds 3.7.6 + Base 3.10.3 のような混在はVRCWorldBuilder初期化エラーの原因になります。
| 項目 | 内容 |
|---|---|
| Poiyomi Toon Shader | https://poiyomi.com/ |
| lilToon | https://lilxyzw.github.io/lilToon/ |
これらが無い場合、復元したマテリアルは Standard シェーダーにフォールバックされます (機能的には動作しますが見た目が変わります)。
Dean2k/SARS から Release.zip をダウンロードし、お好きな場所に展開してください。 配置パスは 自由に選べます — 以下の 2 つの方法のいずれかで指定できます。
Tools → Avatar Recovery を開く以下のいずれかに AssetRipper.exe を置けば、ツールが自動検出します:
| パス | 説明 |
|---|---|
%USERPROFILE%\Tools\AssetRipper\AssetRipper.exe | ユーザーフォルダー直下 (推奨) |
%USERPROFILE%\Downloads\AssetRipper\AssetRipper.exe | ダウンロードフォルダー |
%USERPROFILE%\Desktop\AssetRipper\AssetRipper.exe | デスクトップ |
%LOCALAPPDATA%\AssetRipper\AssetRipper.exe | ローカルアプリデータ |
%PROGRAMFILES%\AssetRipper\AssetRipper.exe | Program Files |
%PROGRAMFILES(X86)%\AssetRipper\AssetRipper.exe | Program Files (x86) |
C:\Tools\AssetRipper\AssetRipper.exe | C ドライブ Tools フォルダー |
D:\Tools\AssetRipper\AssetRipper.exe | D ドライブ Tools フォルダー |
E:\Tools\AssetRipper\AssetRipper.exe | E ドライブ Tools フォルダー |
C:\Tools\ARC\Assets\AssetRipper\AssetRipper.exe | ARC 互換配置 |
設定タブを開くと「✓ 検出済み: [パス]」と表示されれば成功です。検出されない場合は警告メッセージと共に配置候補が表示されます。
見つからない場合、ツールは自動的に AssetRipper モードを無効化します (Unity API のみで展開する旧モードで動作)。 AssetRipper モードでないと VRCAvatarDescriptor 等の Missing Script を解決できないため、必ず配置することを推奨します。
VCC で新規 / 既存プロジェクトを開き、以下のパッケージをインストール:
VRChat SDK - Base (com.vrchat.base)VRChat SDK - Avatars (com.vrchat.avatars)VRChat SDK - Worlds (com.vrchat.worlds)AvatarRecovery.unitypackage を選択Packages/com.nickel-jp.avatar-recovery/ 配下にツール本体が配置されますメニュー: Tools → Avatar Recovery を選択。ウィンドウが開けば成功です。 「設定」タブを開いて「AssetRipper.exe パス」欄が ✓ になっていることを確認してください。
.vrca ファイルを 1 つ選ぶAssets/AvatarRecovery/Restored Avatar data/[ファイル名]/[ファイル名].prefab に復元.vrca / .vrcw を含むフォルダーを選択 (直下のファイルを自動収集).vrca / .vrcw ファイルを選択%LocalAppData%\..\LocalLow\VRChat\VRChat\Cache-WindowsPlayer) を自動スキャン.vrca / .vrcw)__data ファイルスキャン / .vrca/.vrcw 拡張子スキャンinstanceID 既知ビルドエラーを Critical として表示.unitypackage 出力先指定.unitypackage として出力 (展開後に Package 出力).vrca / .vrcw を展開せずに Unity 内で即プレビュー:
PreviewRenderUtility で隔離シーンにレンダリング (外部ツール不要)AvatarRecovery → ウィンドウを開く (v1.7)AvatarRecovery → PhysBone・Contact 参照チェック (v3.0) — 選択 GameObject 配下の VRC コンポーネントの参照切れを検出AvatarRecovery → アップロード前診断 (v3.2) — 選択 GameObject の SDK / Shader / Material 問題を診断[SARS][計測] ログで各フェーズの処理時間を Console 出力「AssetRipper + SARS パイプライン」モードを ON にした場合、以下の処理が自動実行されます:
.vrca ファイル選択
↓
[1] AssetRipper.exe を外部プロセスとして起動
├─ 一時ディレクトリに ExportedProject 出力
└─ ダミーの Scripts/.cs と Shader/.shader が含まれる
↓
[2] ScriptGuidFixer (SARS FixScripts の手法を参考にした独自実装)
├─ 一時ディレクトリ内の .cs.meta から (stub GUID → 型名) を抽出
├─ TypeCache でプロジェクト内の本物の MonoScript を検索
└─ .prefab/.controller/.asset/.unity/.anim 内の m_Script: を書き換え
↓
[3] ShaderGuidFixer (SARS EasyShaderReassign の手法を参考にした独自実装)
├─ ダミー .shader ファイルから元シェーダー名を読み取る
├─ プロジェクト内の Poiyomi/lilToon/Standard を自動検索
└─ .mat 内の m_Shader: を書き換え
↓
[4] ダミーの Scripts/Shader フォルダーを一時ディレクトリから削除
↓
[5] クリーンなアセットを Unity プロジェクトの target フォルダーへコピー
├─ .meta ファイルも一緒にコピー (GUID 整合性のため必須)
└─ シンボリックリンク / パストラバーサル攻撃を防ぐガード付き
↓
[6] AssetDatabase.Refresh
↓
[7] MissingScriptCleaner
└─ Prefab に残った Missing Script コンポーネントを削除
↓
[8] PoseResetter
├─ SkinnedMeshRenderer.sharedMesh.bindposes から本来のボーン位置を計算
└─ 全ボーンを T ポーズ (バインドポーズ) に戻す
↓
完了 — Console に統計サマリー出力
復元結果は拡張子に応じて自動振り分けされます:
Assets/AvatarRecovery/
├── Restored Avatar data/ ← .vrca の復元先
│ ├── キプフェル/ ← 元ファイル名でサブフォルダー
│ │ ├── AnimationClip/
│ │ ├── AnimatorController/
│ │ ├── AudioClip/
│ │ ├── Avatar/
│ │ ├── AvatarMask/
│ │ ├── Material/
│ │ ├── Mesh/
│ │ ├── MonoBehaviour/
│ │ ├── Texture2D/
│ │ └── キプフェル.prefab ← メイン Prefab
│ ├── アリス/
│ └── ...
└── Restored World data/ ← .vrcw の復元先
├── ぼくの神社/
│ ├── Mesh/
│ ├── Material/
│ └── ぼくの神社.prefab
└── ...
| 優先度 | 使用する名前 | 例 |
|---|---|---|
| 1 | 元 .vrca のファイル名 (拡張子なし) | キプフェル.vrca → キプフェル |
| 2 | Blueprint ID (キャッシュ __data 展開時) | avtr_xxxxx-xxxx-xxxx |
| 3 | Unknown (最終フォールバック) | — |
AssetRipper.exe が見つかりません エラー原因: AssetRipper.exe が想定パスに無く、UI でもパス指定されていない
対処 (どちらか):
%USERPROFILE%\Tools\AssetRipper\ 等) のいずれかに展開原因: VRChat SDK がプロジェクトにインストールされていない
対処:
VRChat SDK - Avatars パッケージをインストールRestored Avatar data/[名前]/ フォルダーを削除してから実行)原因: AssetRipper/SARS 展開時点で VRCExpressionsMenu asset 本体を Unity asset として復元できず、Prefab に未解決GUIDだけが残っている可能性があります。0000000deadbeef... のようなGUIDは、参照先を解決できなかったことを示すプレースホルダーとして扱われます。
対処:
VRCExpressionsMenu を再割り当てVRCExpressionsMenu asset を作成して Avatar Descriptor に割り当て原因: Poiyomi / lilToon シェーダーがプロジェクトにインストールされていない
対処:
Broken text PPtr GUID 00000000... fileID -XXXXX is invalid! エラー原因: SARS パイプラインが OFF になっているか、AssetRipper が認識されていない
対処:
原因: AssetDatabase の非同期インポートとのタイミング問題
対処:
原因: バンドル構築時のアニメーションポーズが Transform に焼き付けられている
対処: PoseResetter が自動的に T ポーズに戻すので、Console に「ボーン リセット: N 個」のログが出ていれば修正済みです。 出ていない場合は SkinnedMeshRenderer の bindposes が壊れている可能性があるため、コンソールエラーを確認してください。
原因: 大量のアバターを連続展開して GPU メモリが枯渇
対処:
原因: 2024 年以降の VRChat はキャッシュを暗号化しているため復元不可
対処:
| 制限 | 内容 |
|---|---|
| 対応 OS | Windows のみ (AssetRipper.exe 依存) |
| Unity バージョン | 2022.3.x で動作確認済み。2019.4 のバンドルもパッチ可能だが major version が異なるとブロックされる |
| 暗号化キャッシュ | 復元不可 (VRChat 2024 年以降のキャッシュ) |
| ヒューマノイド以外の Rig | T ポーズリセットが SkinnedMeshRenderer.bindposes ベースなので一応動作するが、HumanPoseHandler による補正は humanoid アバター限定 |
| PhysBone の Rest 位置 | 復元後に Inspector で「Reset」ボタンを手動で押すことを推奨 |
| AssetRipper のライセンス | GPL — 外部プロセスとして呼び出すため AvatarRecovery 本体のライセンスとは独立 |
Avatar Recovery Unity 本体は MIT License で配布しています。詳細は同梱の LICENSE を参照してください。
本パッケージは AssetRipper 本体を同梱していません。AssetRipper はユーザーが個別に取得・配置する外部ツールであり、AssetRipper 側のライセンスは GPL-3.0 です。
SARS 本体のソースコード・バイナリは同梱していません。SARS の技術的手法を参考に、復元補助処理を Avatar Recovery Unity 側で独自実装しています。
⚠️ 必ずお読みください
このツールは データバックアップ・自分の作品復元 を目的としています。以下の利用は VRChat の利用規約および各国の著作権法に違反する可能性があります:
| 用途 | 可否 |
|---|---|
| ✅ 自分が作成 / 購入したアバターの復元 | OK |
| ✅ ローカルテスト用バンドルからのデータ救出 | OK |
| ✅ 失った Unity プロジェクトの復元 | OK |
| ❌ 他人のアバターを抽出して再アップロード | NG (著作権侵害) |
| ❌ 販売アバターを未購入で抽出 | NG (著作権侵害) |
| ❌ フレンドのキャッシュからアバターを盗用 | NG (TOS 違反) |
| ❌ 抽出したアセットを再配布 | NG (著作権侵害) |
VRChat はリッピング検知の仕組みを強化しており、検知された場合 アカウント BAN の対象になります。 このツールを使用したことによって生じたいかなるトラブルについても、開発者は責任を負いません。
.vrca / .vrcw バイナリの解析とプロジェクトエクスポートHumanPoseHandler — humanoid アバターのポーズリセットMonoScript.FromMonoBehaviour — スクリプト型解決PrefabUtility.LoadPrefabContents / SaveAsPrefabAsset — Prefab 操作AssetDatabase.TryGetGUIDAndLocalFileIdentifier — GUID 解決凡例: 🆕 新機能 / 🐛 バグ修正 / 🔒 セキュリティ / 📦 内部改善 / ⚙️ UX 改善 / 🧪 デバッグ
Expressions > Menu の未解決GUIDを Warning として検出VRCExpressionsMenu asset 本体を復元できなかった可能性と、元Menu assetなしでは完全復元できない理由を記載新規: Core/AvatarRecoveryDiagnostics.cs + UI/AvatarDiagnosticsPanel.cs
PipelineManager.blueprintId 残存、VRC_AvatarDescriptor 欠落/複数、Missing Script、Expression Menu 未解決参照を検出invalid subscript 'instanceID' 既知エラーを Critical として表示AvatarRecovery/アップロード前診断 を追加FindAssets("t:Prefab") の先頭を無条件採用しないVRC_AvatarDescriptor、PipelineManager、Renderer 数、ファイル名一致でメイン Prefab 候補をスコアリング新規: Utils/AvatarRecoveryEnvChecker.cs
ウィンドウ起動時に以下を自動チェックし、Console に [SARS] ログを出力:
2022.3.22f1 と不一致なら警告)Packages/vpm-manifest.json から com.vrchat.avatars 抽出 (新旧両形式に対応)。World Project では Avatar 専用チェックをスキップVrcaLoader.cs の TryLoadBundle に追加:
LoadFromFile null 時も詳細ダイアログ (既存 return false 動作は不変)AssetRipperBridge.cs の CopyExportedAssets 直後に追加:
.meta 群を Regex で走査し、既存プロジェクトと重複する GUID を Console に警告新規: Core/AvatarRecoveryValidators.cs + MenuItem AvatarRecovery/PhysBone・Contact 参照チェック
VRCPhysBone.rootTransform == null → ℹ️ Info (SDK 3.10.0 で正常動作のため誤検知防止)VRCPhysBoneCollider.rootTransform == null → ⚠️ Warning (参照切れの可能性)VRCContactReceiver/Sender.collisionTags 空 → ℹ️ InfoSerializedObject リフレクション)try-finally で既存コードをラップし、処理時間を [SARS][計測] ログに出力:
VrcaExtractor.ExtractAssetRipperBridge.ExtractAvatarRecoveryWindow.RunBatchExtraction全変更は以下の制約下で実施:
| ID | 症状 | 修正 |
|---|---|---|
| #4 | ドメインリロード時 AssetBundle リーク — 再コンパイル後に「another AssetBundle already loaded」エラー | AssemblyReloadEvents.beforeAssemblyReload で事前 Unload |
| #1 | hotControl が解除されない — MouseDown 内のみの GetControlID で ID ズレ | 固定ヒント "AvatarRecovery.VrcaPreviewWindow.Drag".GetHashCode() で毎フレーム安定 ID |
| #2 | 別ボタン MouseUp で左ドラッグが誤終了 | _dragButton で開始ボタン記録、対応ボタンでのみ終了 |
| ID | 症状 | 修正 |
|---|---|---|
| #6 | Skybox ObjectField に focus 中 F/0 キーで視点リセット | KeyDown && rect.Contains チェック追加 |
| #13 | File.Replace が長日本語パスで失敗 | 新ヘルパー LongPathIO.TryAtomicReplace (両パスに \\?\ 自動付与) |
VrcaPreviewWindow.cs — 「視点リセット」ボタンの左隣に ObjectField 配置:
Camera.gameObject.AddComponent<Skybox>() 方式 (ユーザーの Scene 非汚染)EditorPrefs に選択パスを永続化 (次回復元)#1F1F23) にフォールバック| 操作 | 動作 |
|---|---|
| 左ドラッグ | パン (平行移動、縦方向=高さ変更) |
| 右ドラッグ | 視点回転 (Orbit) |
| 中ドラッグ | パン (バックアップ) |
| スクロール | ズーム |
| F キー | (補助) アバター全体にフォーカス |
| 0 キー | (補助) 初期視点リセット |
修飾キー不要、マウスのみで完結。
新規: UI/VrcaPreviewWindow.cs
PreviewRenderUtility で隔離シーンにレンダリング (外部ツール不要)Assets/ 非汚染ShaderRemapper 自動フォールバック絵文字 👁 がフォントにグリフが無く豆腐表示される問題 → Unity 標準アイコン (ViewToolOrbit 等) + 和文「プレビュー」に差し替え (GetEyeIcon() で複数名をフォールバック試行)
SARS v25.5.27 系で確認した重要改善の考え方を参考に、AvatarRecovery 側で独自実装:
| # | 改善 | 実装ファイル |
|---|---|---|
| N1 | \\?\ 長パス対応 StreamReader/Writer | 新規 Utils/LongPathIO.cs |
| N2 | ObjectFactory.AddComponent + RequireComponent 自動解決 | 新規 Core/ComponentDependencyResolver.cs |
| N4 | tempComp を明示 DestroyImmediate | ScriptGuidFixer.cs 修正 |
実害改善:
StreamReader が DirectoryNotFoundException → 32767 文字まで対応VRCPhysBone 等 [RequireComponent] 持ち型で MonoScript 解決失敗 → 依存を先に追加して再試行で解決率向上全 15 ファイルを精査し 10 件の HIGH/MEDIUM バグを修正:
| ID | ファイル | 問題 | 修正 |
|---|---|---|---|
| C1 | VrcaLoader.cs | info == null で NRE | null 早期 return に分離 |
| C2 | PoseResetter.cs | エラー時に壊れた Prefab を上書き | ErrorMessage ガード |
| H1 | VrcaCacheScanner.cs | ルート直下 __data で NRE | blueprintId null チェック |
| H2 | VrcaCacheScanner.cs | 空リストでゼロ除算 | Math.Max(1, count) ガード |
| H3 | ShaderRemapper.cs | sharedMaterials 代入後 SetDirty 抜け | 明示的に SetDirty 呼び出し |
| H4 | Styles.cs | Texture2D リーク (ドメインリロード時) | HideFlags.HideAndDontSave |
| H5 | VrcaLoader.cs | fs.Read 戻り値無視で未初期化バイト解析 | Array.Resize で読取分のみ使用 |
| M1 | MissingScriptSearchPanel.cs | 走査中 Transform 破棄で MissingReferenceException | null チェック追加 |
| M2 | VrcaLoader.cs | 同名バンドル複数時に 1 件しかアンロード | break 削除 |
| M3 | ScriptGuidFixer.cs | AddComponent 失敗を完全サイレント | 警告ログ追加 |
さらに 7 件の見落とし追加修正:
File.ReadAllBytes 実行 → finally で _loadedTexturePath 記録DrawSettingsTab 例外で labelWidth が戻らず他 UI に影響 → try-finally 保証EnsureUnityFolder / EnsureFolderExists / ShaderListWriter で絶対パス silent 失敗 → 先頭 “Assets” 検証DrawBackgroundImage が Layout イベントでも動作 → Repaint のみに限定OnDisable で ClearProgressBar設定タブに「背景画像 (v1.8)」セクション追加:
GUI.DrawTexture に変更して歪み解消)HideFlags.HideAndDontSave + OnDisable で明示破棄)展開成功した .vrca / .vrcw は:
AvatarRecovery 追加Tools → AvatarRecovery (互換) に加え、新たに AvatarRecovery → ウィンドウを開く をトップレベルに追加。
新規: Core/ShaderListWriter.cs
復元結果フォルダ内に List of Shaders/Shaders.txt を自動生成:
設定タブに 「Shader 自動再割り当て (SARS)」 トグル追加:
Shaders.txt のみ出力 → 手動割り当て想定ShaderGuidFixer を 3 段階 API に分解 (CollectShaderMappings / ResolveMappingsPublic / ApplyMappings)EditorPrefsHelper に AutoReassignShaders / BackgroundImagePath / BackgroundOpacity / BackgroundScaleMode / PreviewSkyboxPath 等の永続化キー追加DisplayCancelableProgress ヘルパー + RunAssetRipper ポーリングで 200ms 粒度キャンセル実現.vrcw で異なるケース → FindExportedAssetsDir で BFS 再帰探索D:/... 指定時に ExportPackage が「No assets to export」 → NormalizeToAssetsPath で Assets/... に正規化v1.4 で追加した「展開完了後の Missing Script 削除確認ポップアップ」は、SARS パイプライン内の MissingScriptCleaner と二重に実行 される設計上の欠陥がありました (SARS 経由の場合は既に削除済みになっており、ポップアップでは常に 0 件)。
v1.4 の bool トグルを 3 値の選択肢 に変更し、ユーザーが SARS パイプラインの Missing Script 削除ステップを完全にコントロールできるようにしました。
設定タブ → 動作オプション内に「展開時の Missing Script 削除」プルダウンを追加:
| 値 | 動作 |
|---|---|
| 自動削除 (推奨) ← デフォルト | 展開時に常に削除 (v1.0〜v1.3 と同じ動作) |
| 展開後にポップアップで確認 | 展開時はスキップ → 完了後に OK/NO を確認 |
| 削除しない | 完全スキップ → MissingScriptSearch タブから手動削除可能 |
SARS パイプラインの他のステップ (FixScripts / FixShaders / PoseResetter / Prefab リネーム) は 常に自動実行 されます。Missing Script 削除だけが選択可能です。
v1.4 の bool キー (AutoMissingScriptPrompt) を保存していたユーザーは自動的に新ポリシーに変換されます:
true (ポップアップ ON) → v1.5 で Askfalse (デフォルト) → v1.5 で AlwaysMissingScriptDeletePolicy enum を MissingScriptCleaner.cs に追加AssetRipperBridge.Extract / VrcaExtractor.Extract に missingScriptPolicy パラメータ追加policy == Always で条件化.vrca / .vrcw を展開した直後に、復元 Prefab に対して Missing Script の自動削除を実行するかをユーザーに確認 するポップアップを表示する機能を追加。
展開完了した N 件の Prefab に対して、Missing Script の自動削除を実行しますか?
[OK (削除実行)] [NO (スキップ)]
MissingScriptCleaner.CleanPrefabAsset を実行 (進捗バー表示)EditorPrefsHelper に LoadAutoMissingScriptPrompt / SaveAutoMissingScriptPrompt 追加RunBatchExtraction で成功した Prefab パスを successPrefabPaths リストに収集PromptAndRunAutoMissingScriptCleanup を実装復元アバターやシーンに残っている Missing Script (型解決できなくなったコンポーネント) を検出して一括削除する新タブを追加しました。タブ構成は ファイル指定 / キャッシュスキャン / MissingScriptSearch / 設定 の 4 つに拡張されました。
Ctrl+Z で削除前の状態に復帰可能RecordPrefabInstancePropertyModifications で Prefab 側にも変更を記録prefab-id-v1_avtr_xxx_NNN.prefab) を [元ファイル名].prefab (例: キプフェル.prefab) に自動変換
__data 展開時は BlueprintId にフォールバック(2), (3) を付与bone.localScale を親スケール考慮で計算AvatarRecovery.Editor → EditorTools.AvatarRecovery.Editor (namespace と統一、他パッケージとの衝突リスク排除)Generic=N, 非単位スケール=M を表示✓ 検出済み: [パス])%USERPROFILE%, %LOCALAPPDATA%, %PROGRAMFILES% 等の環境変数を自動展開)Restored Avatar data/[名前]/ / Restored World data/[名前]/.vrca / .vrcw) で自動振り分けExtracted/, Worlds/) を保存しているユーザーは自動的に新デフォルトに更新Packages/com.nickel-jp.avatar-recovery/README.md| ID | 重要度 | 修正内容 |
|---|---|---|
| H1 | HIGH | StreamReader/Writer に UTF-8 エンコーディング強制 (日本語ファイル名対策) |
| H2 | HIGH | File.Delete + File.Move → File.Replace (atomic) に変更 |
| H3 | HIGH | RenderTexture リーク修正 (try-finally で ReleaseTemporary 保証) |
| H4 | HIGH | _checkedIndices のスキャン再実行時クリア漏れを修正 |
| M1 | MEDIUM | パストラバーサル / symlink / junction 対策 (3 重ガード) |
| M3 | MEDIUM | メジャーバージョン不一致パッチを警告 → エラーで中止 |
| M4 | MEDIUM | .meta 拡張子チェックを EndsWith ベースに |
| L1 | LOW | 260 文字超のパスに \\?\ プレフィックス自動付与 |
| L2 | LOW | 一時ディレクトリ削除をリトライ付き (5 回 × 200ms) |
| L3 | LOW | Texture2D 作成前に width/height <= 0 ガード |
| L4 | LOW | SerializedObject を using パターンに (Unity 2022.3+ で IDisposable) |
.prefab/.controller/.asset/.unity/.anim の m_Script: を YAML テキストレベルで書き換え.mat の m_Shader: をプロジェクトシェーダーへ自動マッチング (Poiyomi / lilToon / Standard 優先順位)SkinnedMeshRenderer.bindposes ベースで全ボーンを T ポーズ (バインドポーズ) に復元__data ファイルスキャン (新型キャッシュ構造).vrca / .vrcw 拡張子スキャン.meta ファイルもコピーするように修正 (AssetRipper の GUID 整合性を尊重)Broken text PPtr GUID 00000000 エラー — MonoScript 参照を本物の MonoScript に自動置換Directory.GetFiles(AllDirectories) を手動再帰スキャンに変更し、フォルダーごとに try-catch でスキップ可能にv1.1 以降、配布前に以下のセキュリティ・品質検証を実施しています:
File.Replace) / UTF-8 エンコーディング強制このツールはそのままの状態で提供されます (AS-IS)。
動作不良があった場合は Console ログ ([AvatarRecovery] プレフィックス付き) を確認の上、
復元元 .vrca の Unity バージョン・SDK バージョン・エラーメッセージを添えてご報告ください。
Happy Recovery! 🎨
com.nickel-jp.avatar-recovery
Undefined
1.0.4
2022.3 or later
No dependencies
No legacy packages