顔トラ機材を投入するのにBlendShapeが無いアバターをどうにかするために既存表情からARKit用BlendShapeを生成するやつをClaude Codeに作らせました あくまで自分用の簡易的なもので100%生成したコードなのでメンテは期待しないでください
以下生成した説明文
VRChat/MMDのBlendShapeからARKit用BlendShapeを自動生成するNDMFプラグインです。 Jerry's Templatesと組み合わせて使用することで、フェイストラッキング非対応アバターを簡単に対応させることができます。
- Unity 2022.3.6f1以降
- NDMF 1.4.0以降
- VRChat SDK (Avatars)
- VPMリポジトリをVCC/ALCOMに追加
- プロジェクトに「Kx VRC ARKit BlendShape Generator」を追加
- Releasesからzipファイルをダウンロード
- VCCのプロジェクト管理画面で「Add Package」→「Add from Archive」を選択
- ダウンロードしたzipファイルを選択
- アバターのルートオブジェクトまたは顔メッシュを持つオブジェクトを選択
- Inspector > Add Component > KxVRCARKitBlendShapeGenerator > Kx VRC ARKit BlendShape Generator を追加
- Jerry's Templates (MA版) をアバターに追加
- アップロード時に自動的にARKit BlendShapeが生成されます
| 項目 | 説明 |
|---|---|
| Target Renderer | 対象のSkinnedMeshRenderer(空の場合はBody/Faceを自動検出) |
| Intensity Multiplier | 生成時の強度係数(0.5〜1.5推奨) |
| Enable Left Right Split | 左右分割を有効化(まばたき等を左右別々に生成) |
| Blend Width | 左右分割時のグラデーション幅(中央付近で左右をブレンドする範囲、0.001〜0.1) |
| Overwrite Existing | 既存のARKit BlendShapeを上書きする |
| Custom Mappings | 自動マッピングできないBlendShapeを手動で指定 |
| Debug Mode | デバッグログを出力する |
自動マッピングで対応できない場合は、カスタムマッピングを使用して手動でBlendShapeを指定できます。
- Custom Mappingsセクションを展開
- 「+」ボタンで新しいマッピングを追加
- ARKit名(例:
eyeBlinkLeft)とソースBlendShapeを指定 - 必要に応じてWeight(重み)とSide(左右フィルタ)を調整
NDMFのプレビュー機能を使用して、生成結果をリアルタイムで確認できます。
- Unityメニュー > Tools > NDMFを開く
- 「Kx VRC ARKit BlendShape Generator」のプレビューを有効化
- 生成されるBlendShapeをシーンビューで確認
以下のARKit BlendShapeを自動生成します:
- 目: eyeBlinkLeft/Right, eyeSquintLeft/Right, eyeWideLeft/Right
- 眉: browDownLeft/Right, browInnerUp, browOuterUpLeft/Right
- 口: jawOpen, mouthFunnel, mouthPucker, mouthSmileLeft/Right, etc.
- 頬: cheekPuff, cheekSquintLeft/Right
- 鼻: noseSneerLeft/Right
- 舌: tongueOut
VRChat/MMDの標準的なBlendShape名(vrc.blink, まばたき, あ, い, う等)から自動的にマッピングされます。
MIT License
kairox (@limit7412)