セットアップチュートリアル
1. アバターを準備する
このチュートリアルではもふろうさんのBodyにContactFurを設定します。あなたのアバターで進める場合は、FurOwlをアバターのルート、Bodyをファーがあるメッシュの名前に読み替えてください。
完成までの流れ
- 通常のlilToonファーが表示されることを確認します。
- Avatar Setupでメッシュと自分用接触を選びます。
- 設定済みPrefabを作り、生成されたアバターを確認します。
- Unity上で接触変形をプレビューし、VRChat上で接触条件を確認します。
アバターをシーンへ置く
必要なアセットを導入したプロジェクトで、作業用のシーンを作成します。ProjectウィンドウからアバターのPrefabをHierarchyへドラッグしてください。もふろうさんではFurOwl.prefabを使用します。
Hierarchyでアバターのルートを選択し、InspectorにVRC Avatar Descriptorがあることを確認します。
![]()
ファーがあるメッシュを確認する
アバターの子オブジェクトを展開し、ファー用マテリアルが設定されたRendererを探します。もふろうさんではBodyが対象で、Eyesは対象外です。Bodyにはファー用のBodyと通常のBlowマテリアルがあります。自動セットアップでは、ファーのない部分の見た目はそのままに、ファーのある部分へ接触変形を追加します。
| もふろうさんでの名前 | あなたのアバターで確認するもの |
|---|---|
FurOwl | VRC Avatar Descriptorを持つアバターのルート |
Body | ファーを表示するMesh Renderer / Skinned Mesh Renderer |
Bodyマテリアル | lilToonのファー用マテリアル |
Hand_L / Hand_R | 左右の手に対応するHumanoidボーン |
ファーの長さ・色・毛並みは通常のlilToon設定で整えます。ContactFurを追加する前に見た目が正しいことを確認すると、接触変形だけを比較しやすくなります。
名前がBodyである必要はありません。複数のファーメッシュがあれば、次の画面でまとめて選択できます。非アクティブなメッシュも検出されるため、衣装の切り替え用メッシュも確認してください。
2. ContactFurを設定する
Avatar Setupを開く
Hierarchyでアバターのルートを選択した状態で、Tools > Contact Fur > Avatar Setupを開きます。上部の「アバター」にもふろうさんが入っていることを確認してください。空欄なら、Hierarchyからアバターのルートをこの欄へドラッグします。
ファーを使うメッシュを選ぶ
「ファーを使うメッシュ」でBodyにチェックを入れます。あなたのアバターに複数の候補がある場合は、接触変形を追加したいメッシュだけを選びます。チェックを外したメッシュは変更されません。
マテリアルを変更した後に一覧へ反映されていない場合は「再検出」を押してください。候補が一つも出ない場合は、lilToonのファー用描画方式になっているか確認します。
自分からの接触を選ぶ
他の人に触られたときだけ反応させるなら「自分用Receiverを使用する」をオフにします。自分の手でも触れたい場合はオンにしてください。この例ではオンにします。他人用Receiverは自動的に作られます。
手の自己接触をマスクする
VRChatでは通常、手や指にContact Senderが自動設定されます。自分用Receiverを使うと、このSenderによって手指自身のファーまで反応してしまうことがあります。これを防ぎたい場合に「手のマスクを使用する」をオンにしてください。この例ではオンのまま、解像度1024で作成します。
Humanoidアバターでは左右の手を基準とした球体が初期配置されます。もふろうさんではHand_LとHand_Rが「基準Transform」に入ります。ただし、半径0.07 m・ぼかし幅0.04 mの初期値では、もふろうさんの手を覆うには小さいため、中心位置と範囲を調整してください。
- マスク領域の一覧で左手または右手の球体を選択します。
- Sceneビューで、球体が自己接触を避けたい手の部分を覆うか確認します。
- 「中心オフセット」「マスク領域の半径」「ぼかし幅」を調整します。Sceneビューのハンドルからも位置と半径を編集できます。
次の画像はもふろうさんの左右の手を覆うように調整した例です。中心オフセットは小数第3位に丸めて記載しています。
| 基準Transform | 中心オフセット X / Y / Z | マスク領域の半径 (m) | ぼかし幅 (m) |
|---|---|---|---|
Hand_L | 0.004 / 0.256 / 0.010 | 0.35 | 0.15 |
Hand_R | -0.004 / 0.256 / 0.015 | 0.35 | 0.15 |
同じ値を入力しても、アバターの大きさや姿勢によって覆う範囲は変わります。Sceneビューで手全体を覆っているか確認してください。
手マスクで反応しない範囲に指定した部分は、自分からの接触には反応せず、他人からの接触には反応します。手マスクを省略すると自分からの接触も全面で有効になります。既存の共通マスクは引き継がれます。
Humanoidでないアバターなどでは、球体を追加し、アバター内の手に相当するTransformを指定します。球体を置く位置はモデルごとに確認してください。
設定済みPrefabを作る
「設定済みPrefabを作成」を押し、保存先としてAssets内のフォルダを選びます。たとえばAssets/MyAvatarsを選ぶと、その中に新しいFurOwl ContactFurフォルダが作成されます。同名のフォルダがあれば別名になります。
FurOwl ContactFur/
├─ FurOwl ContactFur.prefab
├─ Materials/
│ └─ Body_0_Body.mat
└─ Masks/
└─ Body_0_SelfMask.png
生成後、設定済みアバターがシーンに配置されて選択されます。シーン上の元アバターと同じ位置・向きに配置され、元アバターは自動で非アクティブになります。Undoすると配置が取り消され、元アバターの有効状態も戻ります。以降は生成されたFurOwl ContactFurを使います。
元アバターのメッシュ・マテリアル・コンポーネント設定は変更されません。マスクを使わない場合、Masksは作成されません。
生成結果を確認する
アバター配下にContactFur SetupとContactFur Toggleが作成されます。もふろうさんの例では次の構成になります。
FurOwl ContactFur
├─ Armature
├─ Body
├─ Eyes
├─ Anchor Target
├─ ContactFur Setup
│ ├─ Body Contacts
│ │ ├─ Fur Receiver
│ │ └─ FurSelf Receiver
│ └─ Body Mask 0
└─ ContactFur Toggle
Fur Receiverを選択すると、他人から受け取る設定を確認できます。撮影したSDKではREADMEの「Write to Shaders」に相当する項目がWrite to Materialsと表示されています。

| 確認する項目 | 他人用 | 自分用 |
|---|---|---|
| Receiver Type | Proximity | Proximity |
| Write to Materials / Write to Shaders | オン | オン |
| Shader Parameter Override | Fur | FurSelf |
| Allow Self | オフ | オン |
| Allow Others | オン | オフ |
| Target Renderers | Body | Body |
3. 触れたときの動きを確認する
Unityでプレビューする
Unityの再生ボタンを押さず、編集モードのまま進めます。
- Hierarchyで空のGameObjectを作り、
Contact Preview Senderなどの名前を付けます。アバターの子にする必要はありません。 Tools > Contact Fur > Material Contact Previewを開きます。- 生成されたアバターの
Bodyを「ファーのRenderer」へドラッグします。元アバターのBodyと間違えないようにしてください。 - 空のGameObjectを「Sender 1」へドラッグします。
- 接触元を「他人」にして「プレビュー開始」を押します。
- SceneビューでSenderをもふろうさんの胸元へ動かし、表面に近づけます。

指定したGameObjectを動かすと、接触させる位置を変えられます。UnityのこのプレビューだけならVRC Contact Senderコンポーネントは不要です。最大8か所の接触を同時に確認できます。
毛倒しとかき分けを見る
接触点の中心では毛並みに沿って毛が倒れ、外周では外向きにかき分けられます。Senderを表面から離し、通常の毛並みへ戻ることも確認してください。小さな変化はSceneビューを拡大すると見やすくなります。
変形が弱い・広すぎる場合は、複製されたマテリアルを選び、Inspector末尾の「ファー拡張設定」から「Material Contact ファー設定」を開きます。まず「接触半径」と「倒す強さ」「かき分けの強さ」を調整してください。詳しくはパラメーターを参照してください。
自分用マスクを確かめる
プレビュー中も「他人」と「自分」を切り替えられます。Senderをマスクで除外した手の表面へ移動し、「自分」では反応が抑えられ、「他人」では反応することを確認します。どちらの接触元でも反応しない部分があれば、共通マスクも確認してください。
確認後は「停止/元に戻す」を押します。プレビューウィンドウを閉じたときや再生を開始したときも停止します。
VRChatで確認する
Unityプレビューでは触れたときの毛の動きを確認できます。実際に自分や他のユーザーの手で触れたときに反応するかは、VRChat上で確認してください。
生成されたアバターを、普段のVRChat SDKの手順でビルド・アップロードし、Material Contacts対応クライアントで次を確認してください。
- 自分の手で触れたときに反応すること。自分用Receiverを使わない構成では反応しないこと。
- 他のユーザーから触れられたときに反応すること。
- 手マスクで除外した部分が、自分と他人で意図した反応になること。
- Expression Menuの
ContactFurで接触変形をオン・オフできること。
触れる側のContact SenderとReceiverでCollision Tagsを一致させます。Unityプレビューで動いてVRChatで動かない場合は、トラブルシューティングへ進んでください。

