mcpField
V
vrc-avatars

vrc-avatars

github.com/alexanderstephenthompsonクリエイティブ・メディア37 回インストール
リポジトリ

vrc-avatars について

Unity と VRChat SDK を使って VRChat アバターを作成・最適化するスキルです。アバター設定、表情、アニメーション、性能制限を扱い、Quest 向けの個別対応も説明します。

主な機能

  1. 01Avatar 3.0 の設定
  2. 02表情メニューとパラメーター
  3. 03パフォーマンス最適化
  4. 04PhysBones とコンタクト
  5. 05Animator コントローラーの指針

活用シーン

  1. 01性能目標に沿ったアバター設計
  2. 02表情メニューと同期パラメーターの設定
  3. 03Quest 用アバタービルドの準備
  4. 04アニメーションと PhysBones の動作確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alexanderstephenthompson/claude-hub --skill vrc-avatars

インストール後、Claude Code で/vrc-avatarsを入力して読み込まれたか確認します。

同梱ファイルreferences/avatar3-setup.mdassets/avatar-performance-limits.md

詳細

VRChat アバタースキル

バージョン: 1.0 スタック: VRChat SDK、Unity

VRChatのパフォーマンスランキングシステムでは、「Poor」または「Very Poor」にランク付けされたアバターは、ほとんどのプレイヤーのセーフティ設定によって自動的に非表示になります。丁寧に作り込んだアバターが、見えないロボットのシルエットになってしまうのです。マテリアルが多すぎるとバッチ処理が崩れます。ボーンが多すぎるとCPU負荷が高まります。Write Defaultsが混在すると、アニメーションの挙動が予測不能になります。また、Questには大幅に厳しい制限があり、ポリゴン数を減らしただけの同じアバターではなく、別途ビルドする必要があります。

最初からGoodランクの制限内で作れば、アバターはほかのプレイヤーから実際に見えるようになります。パラメーターの予算やPhysBoneの制限は恣意的なものではありません。見えるか見えないかの境界なのです。


対象範囲と境界

このスキルの対象:

  • Avatar 3.0のセットアップ
  • 表情メニューとパラメーター
  • パフォーマンス最適化
  • PhysBoneとコンタクト
  • Animatorコントローラー

ほかのスキルに委ねる内容:

  • unity-csharp:C#のパターンとパフォーマンス最適化

このスキルを使う場面: VRChatアバターの作成や最適化。


基本原則

  1. パフォーマンスランクは重要です — Poorのアバターはブロックされます。
  2. Questとの互換性 — 別途ビルドが必要で、制限も厳しくなります。
  3. パラメーターの予算 — 同期パラメーターは最大256ビットです。
  4. PhysBoneの制限 — ボーンが増えるほど負荷も高まります。
  5. 実機でテストする — ミラーとパフォーマンスは異なります。

パフォーマンス制限

Quest(目標:Good)
指標GoodMediumPoor
三角形数10,00015,00020,000
マテリアル数124
ボーン数90150256
PhysBone数068
PC(目標:Good)
指標GoodMediumPoor
三角形数32,00070,000-
マテリアル数4816
ボーン数150256400
PhysBone数163264
PhysBoneコライダー数81632

パターン

階層構造
Avatar Root
├── Armature
│   └── Hips
│       ├── Spine → Chest → Neck → Head
│       │                         ├── Eye_L, Eye_R
│       │                         └── Hair bones
│       ├── Leg_L → Knee → Foot → Toe
│       ├── Leg_R → ...
│       └── (Shoulder → Arm → Elbow → Hand → Fingers)
├── Body (SkinnedMeshRenderer)
├── Clothes (optional separate mesh)
└── Accessories
パラメーターの予算(256ビット)
Type        Bits    Common Uses
─────────────────────────────────
Bool        1       Toggles
Int         8       Outfit index, state machines
Float       8       Blend shapes, radial controls

Example Budget:
- VRCEmote (int)         8 bits
- VRCFaceBlendH (float)  8 bits
- VRCFaceBlendV (float)  8 bits
- Custom toggles ×10     10 bits
- Outfit selector        8 bits
- Remaining             214 bits
表情メニューの構造
Main Menu
├── Expressions
│   ├── Happy
│   ├── Sad
│   └── Surprised
├── Toggles
│   ├── Hat On/Off
│   ├── Glasses On/Off
│   └── Jacket On/Off
├── Outfits (Radial)
│   └── Select 1-4
└── Settings
    ├── PhysBone Intensity
    └── Fallback Toggle
Write Defaultsのパターン
Choose ONE approach project-wide:

Write Defaults ON:
- Simpler setup
- Properties return to default when state exits
- Can cause conflicts between layers

Write Defaults OFF (Recommended):
- More control
- Must explicitly set all animated properties
- Each state fully defines its output

アンチパターン

アンチパターン問題対処法
マテリアルが多すぎるバッチ処理が崩れ、ランクに悪影響を及ぼしますテクスチャを統合し、アトラス化します
Write Defaultsが混在している挙動が未定義になりますどちらかに統一します
PhysBoneが最適化されていないパフォーマンスに負荷がかかります数を減らし、チェーンを簡素化します
フォールバックアバターがないブロックされたユーザーにはロボットが表示されますパフォーマンスに優れたフォールバックを設定します
ローカル専用の項目に同期パラメーターを使用している同期予算を浪費しますローカル専用として正しく設定します
Questで全身メッシュを使用している三角形数が増えますQuest用のメッシュを別途用意します

チェックリスト

セットアップ
  • アーマチュアがヒューマノイド構造に従っている
  • アバターディスクリプターが設定されている
  • 該当する場合、アイトラッキングが設定されている
  • ビゼームが設定されている
  • 視点位置が正しく設定されている
パフォーマンス
  • 三角形数が目標ランクの範囲内である
  • マテリアル数が最小限になっている(アトラス化)
  • ボーン数が制限内である
  • PhysBoneが最適化されている
  • 該当する場合、Quest版がアップロードされている
表情
  • 表情メニューが整理されている
  • パラメーターが256ビットの予算内に収まっている
  • Write Defaultsが統一されている
  • ジェスチャーレイヤーが設定されている
  • トグルがテストされている
品質
  • デフォルトポーズでクリッピングがない
  • PhysBoneが自然に動作する
  • 表情が正しく見える
  • VRChatでテスト済みである(Unityだけでなく)

参考資料

  • references/avatar3-setup.md — Avatar 3.0の設定ガイド

アセット

  • assets/avatar-performance-limits.md — QuestおよびPCのパフォーマンス制限

コメント