VRC Stocking Generator マニュアル
VRC Stocking Generator は、アバターの体からストッキングを作成するUnityエディタ拡張です。ニーハイ、パンティストッキング、全身タイツ、腕ストッキングのほか、コライダーによる範囲除去で好きな形のストッキングを作成できます。
Modular Avatar、lilToonの導入を推奨します。Modular Avatarが導入されていない場合、Blendshape SyncとMerge Armatureは設定されません。lilToonが導入されていない場合、プリセットで使われるマテリアルが読み込めません。
基本的な使い方
ツール(Tools) > Stocking Generatorからツールを開きます。ボディ > Skinned Mesh Rendererに、アバターの体のSkinned Mesh Rendererを指定します。マテリアル項目でプリセットを選ぶか、自分でマテリアルを指定します。ストッキングを生成をクリックします。- ストッキングが生成されます。必要に応じて色やマスクの設定を変えて、繰り返し生成して調整してください。
生成されたストッキングオブジェクトは、元のボディオブジェクトの隣に作成されます。メッシュ、テクスチャ、マテリアル、Prefab は指定した出力フォルダーに保存されます。
作成例
- ニーハイ
作り方
マスクモード を ニーハイ に設定し、必要に応じて ストッキング高さオフセットで高さを調整します。

- パンティストッキング
作り方
マスクモード を パンティストッキング に設定し、必要に応じて ストッキング高さオフセットで高さを調整します。下着が貫通するときは 出力 > 詳細設定 > 法線オフセット を少し上げてください。

- 腕ストッキング
作り方
腕ストッキング を有効にして、必要に応じて 腕ストッキング長さオフセット で長さを調整します。

- 全身タイツ
作り方
全身タイツ を有効にして、必要に応じて 首マスク で首周辺をカットします。ニーハイ・パンティストッキング・腕ストッキングが有効な時は、境界が濃くなります。

- 左右で高さの違う/片方だけのニーハイ・腕ストッキング
作り方
左右の高さオフセットを分ける を有効にして、左右それぞれのオフセットを調整します。片方だけにする場合は、無効にしたい方のチェック(右ニーハイ・左ニーハイ・右腕ストッキング・左腕ストッキング)を外してください。

- 網タイツ
作り方
網目パターン を有効にして、必要に応じて 網目サイズ、網目線の太さ、円周方向の網目数 を調整します。

- ノースリーブ
作り方
除去コライダー を使用します。
全身タイツ を有効にして、首マスク を有効にします。ヒエラルキーに空のGameObjectを追加して、その子に空のGameObjectをいくつか追加します。子オブジェクトに球体、カプセル、ボックスコライダーのコンポーネントを追加します。

球体コライダーで腕を覆い、カプセルコライダーで側面を、ボックスコライダーで背中を覆うと、きれいにノースリーブになります。コライダーの位置やサイズを調整して、好みの袖口の形にしてください。

除去コライダー を有効にして、作成したコライダーオブジェクトのルートオブジェクトを ルート に指定します。濃くする長さ を調整して、袖口の暗い境界の幅を調整してください。

- かかと、つま先を切り取る
作り方
除去コライダー を使用します。
ヒエラルキーにGameObjectを追加して、子オブジェクトにカプセルコライダーを追加します。カプセルコライダーを横に並べます。

除去コライダー を有効にして、作成したコライダーオブジェクトのルートオブジェクトを ルート に指定します。濃くする長さ を調整して、かかと・つま先周辺の暗い境界の幅を調整してください。

- 破れタイツ
作り方
除去コライダー を使用します。
ヒエラルキーに Assets/ranhai613/StockingGenerator/Colliders/ripping_mold.prefab を追加します。子オブジェクトにメッシュコライダーが複数配置されているので、位置やサイズを調整して、破れタイツの形を作ります。メッシュ同士の位置が近すぎると、除去範囲がつながってしまうので注意してください。

除去コライダー を有効にして、作成したコライダーオブジェクトのルートオブジェクトを ルート に指定します。濃くする長さ を0にしてください。もし他の部分の切り抜きで暗い境界を設定しているときは、2つ目のルート を有効にして、破れタイツ用のルートを指定し、2つ目の濃くする長さ を0にしてください。

色の変更
ストッキングの色は、ストッキング色 項目で変更できます。通常色 が基本のストッキング色で、濃い色 は境界やつま先などの暗い部分に使われます。マテリアル > プリセット を選ぶと、これらの色もプリセットに合わせて変わります。
色の例(プリセット)
- 白

- ネイビー

- ワインレッド

自分でマテリアルを用意する
マテリアル 項目で カスタム を選ぶと、ストッキング生成に使うマテリアルを自分で指定できます。ストッキング生成時に指定したマテリアルがコピーされ、メインカラーテクスチャ、アルファマスクテクスチャが差し替えられます。元のマテリアルには影響しません。
好きなシェーダーを使う
デフォルトでlilToonがサポートされています。他のシェーダー(Poiyomiなど)も動きますが、シェーダーによってはテクスチャの差し替え方法が異なるため、完全な互換性は保証できません。差し替えが失敗した場合は、コピーされたマテリアルのテクスチャとアルファマスクを手動で差し替えてください(生成されたテクスチャは、デフォルトで Assets/ranhai613/StockingGenerator/Generated に生成されます)。
制限
- Humanoidボーン以外の動作は保証しません。
- 近くで見るとストッキングの境界が荒く見える場合があります。
マテリアル > 詳細設定 > メインカラーテクスチャサイズやストッキングアルファマスク > 詳細設定 > マスクテクスチャサイズを大きくすると改善する場合があります。 - 体のメッシュを利用しているため、足がいわゆる「5本指ソックス」になります。
- 爪などの鋭いメッシュ部分でメッシュが繋がらず、破綻することがあります。また、爪のメッシュが重なり、不自然に色が濃くなることがあります。
各項目の説明
| 項目 | 説明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
表示言語 |
エディタUIの表示言語を選択します。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ボディ |
ストッキングメッシュとマスク生成に使う元のボディを指定します。元のレンダラーには有効なメッシュが必要です。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
マテリアル |
生成ストッキングに使うマテリアルと、メインカラーテクスチャの生成設定です。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ストッキング色 |
ストッキングの基本色と、境界やつま先などの暗色表現を調整します。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ストッキングアルファマスク |
ストッキングの表示範囲を決めるアルファマスクを設定します。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
出力 |
生成オブジェクト名、保存先、メッシュ処理、出力形式を設定します。
|
高度な使い方: 除去コライダー
除去コライダーは、指定したコライダーの範囲内の布を切り取る機能です。自動生成マスクに含まれてほしくない範囲を削ったり、複雑な形状の周辺をきれいにカットしたい場合に便利です。3Dビューでコライダーを確認するには、右上のGizmosを有効にしてください。

基本ワークフロー
- アバター付近に空のGameObjectを作成します。
- その子にも空のGameObjectを追加し、それにコライダーのコンポーネントを追加し、除外したい範囲を覆うように配置します。

- ツール側で
除去コライダーを有効にします。 - 親オブジェクトを
ルートに指定します。

濃くする長さを調整して、除外範囲周辺の暗い布表現の幅を決めます。- ストッキングを生成し、結果を確認してください。
有効なGameObject上の有効なコライダーだけが使用されます。対象コライダーはルートとその子以下です。
2つ目のルート を使う場合
あるコライダーグループと別のコライダーグループで、境界の暗さの幅を変えたい場合に 2つ目のルート を使います。たとえば、
- ルート: 大きな除外範囲に通常の
濃くする長さを使う。 - 2つ目のルート: 穴あき、破れ表現などの除去範囲に長さ0の
濃くする長さを使う。
どちらのルートもアルファマスクからピクセルを除外します。暗い境界幅はメインカラーテクスチャに対して別々に適用されます。
Tips
- できるだけ単純なコライダー形状を使うと、調整と確認がしやすくなります。
- メッシュコライダーでは、
Convexを有効にすると、コライダーの形状が単純化され、除外範囲が変わる場合があります。 - テクスチャサイズを大きくすると、除去コライダーの境界がより正確になります。
- 何も変わらない場合は、コライダーのGameObjectがアクティブで、Colliderコンポーネントが有効になっているか確認してください。
Q&A
ストッキングの生成に時間がかかりすぎます。
テクスチャサイズが大きい、スムージング回数が多い、各BlendShapeフレームにスムーズ処理を適用 が有効になっているなどの理由が考えられます。これらの設定を下げると、生成時間が短くなります。調整するときはテクスチャサイズを1024などに減らして、完成形を出力するときだけ大きくするのもおすすめです。
マテリアル > 詳細設定 > メインカラーテクスチャサイズとストッキングアルファマスク > 詳細設定 > マスクテクスチャサイズを小さくする。出力 > 詳細設定 > スムーズ反復回数を減らす。出力 > 詳細設定 > 各BlendShapeフレームにスムーズ処理を適用(低速)を無効にする。
Generate Stocking ボタンが押せません。何を確認すればいいですか?
Skinned Mesh Renderer が指定されていること、レンダラーにメッシュがあること、有効なマテリアルが指定されていることを確認してください。
生成されたマスクが空、または作成されません。
元メッシュにUV0が無い、想定したボーンが見つからない、選択した Mask Mode がアバターのリグに合っていない可能性があります。別の Mask Mode を試し、メッシュにUVがあるか確認し、コンソールの StockingGenerator 警告を見てください。
下着がボディにめり込みます。
法線オフセット を少し上げてください。
BlendShape が完全に合いません。
スムージングを使っている場合は、Apply Smooth Iterations to each BlendShape frame (slow) を有効にしてください。時間はかかりますが、BlendShape変形がより安定する場合があります。
腕ストッキングだけ作るには?
マスクモード を なし にし、腕ストッキング を有効にして、左腕または右腕のオプションを有効にします。
パンティストッキングや全身タイツを作るには?
下半身のパンティストッキングには マスクモード > パンティストッキング を使います。全身タイツにしたい場合は 全身タイツ を有効にし、必要に応じて 首マスク で首周辺をカットします。
足先を裸足にしたい場合は?
足先を除外 を有効にし、足先境界オフセット でカット位置を調整します。
除去コライダー が効きません。
除去コライダー が有効か、ルート が指定されているか、コライダーのGameObjectがアクティブか、Colliderコンポーネントが有効かを確認してください。また、コライダーが除外したいボディメッシュ範囲に実際に重なっているかも確認してください。
2つ目のルート はいつ使いますか?
暗い境界幅が異なる2つのコライダーグループを使いたいときに使います。両方のグループで同じ暗色境界幅を使えるなら、ルート は1つで十分です。
生成アセットはどこに保存されますか?
Output Folder に保存されます。既定では Assets/ranhai613/StockingGenerator/Generated です。