cvELD Shell Fit logo 1 cvELD Shell Fit logo 2

Complete User Documentation

cvELD Shell Fit

服と体の突き抜け(貫通)を自動で見つけ、画面を見ながらリアルタイムに綺麗に押し戻して、最後にシェイプキー(Shape Key)やメッシュへワンクリックで焼き込めるBlenderアドオンです。

cvELD_ShellFit · Version 1.1.0 · Blender 5.0.0–5.3.0(5.2.1 推奨)· Blender 4.5 非対応 · GPL-3.0-or-later

Shell Fit の考え方

3Dキャラクターに服や靴下を着せたとき、服の表面から肌が突き破ってしまったり、逆に服が体の中に埋もれてしまったりする現象を「貫通(突き抜け)」と呼びます。Shell Fit は、メッシュの頂点を1つずつ自動で調べ、本当にはみ出している部分だけをピンポイントで押し戻して綺麗にフィットさせてくれるツールです。

Body Moves(体を動かす)

衣装を基準にして、はみ出している素体(肌)を内側へ押し込みます。衣装のきれいな形を崩さずに、体を衣装の中に収めたいときに使います。

Cloth Moves(衣装を動かす)

素体を基準にして、衣装を外側へ押し出します。服や靴下を体の表面に沿わせて自然にフィットさせたいときに使います。

Fit Type(合わせ方のタイプ)

薄い布や服には Shell、リング・ベルト・靴下の履き口のような厚みのある帯には Solid を選びます。迷ったら自動判定の Auto でOKです。

調整中はリアルタイム(ライブ)で補正がかかるため、スライダーを動かした結果がその場ですぐ画面に反映されます。納得のいく形になったら、シェイプキー(Shape Key)かメッシュに焼き込んで(Bake)完成です!

Body Moves:突き抜けた肌を内側へ収める

Body Moves は、衣装(ここではニーソックス)を基準にして、ソックスの表面から突き出してしまった肌を内側へ押し込みます。左が実行前、右が実行後です。逆に体を基準にして服側を広げたいときは Cloth Moves を選びます。(画像をクリックすると拡大できます)

左:肌がソックスを突き破って穴だらけに見える実行前。右:肌がソックスの内側に綺麗に収まり、白いソックスだけが見える実行後。

Squeeze Bulge の使用例(お肉の食い込みと盛り上がり)

Fit Type を「Solid」にした Body Moves では、帯が肌にキュッと食い込んだときの「溝」と、そのまわりのお肉がふんわり盛り上がる「むにっとした変化」を作ることができます。下の画像をクリックすると拡大できます。

オーバーニーソックス:左が実行前、右が実行後です。履き口のゴムの食い込みと、太もものお肉が上下にふんわり盛り上がるリアルな質感が作れます。
リング状パーツ:左が実行前、右が実行後です。3本の帯が脚に食い込み、帯と帯の間のお肉がむにっと盛り上がります。
大切な作業の流れ: ① Body(素体)と Cloth(衣装)を指定 → ② 動かす側(Moves)を選ぶ → ③「Setup Live」を押す → ④ スライダーで結果を調整 → ⑤「Bake」で確定!
※ライブ調整中に対象のモデルを変えたいときは、先に「Bake」するか「Clear」を押して一度終了させてください。

導入

必要なもの

  • Blender 5.0.0 以上、5.3.0 以下(安定して動作する 5.2.1 推奨)。※Blender 4.5 以前のバージョンには対応していません。
  • 同じシーン内にある 2 つのメッシュオブジェクト:素体(Body)衣装(Cloth)
  • 3D画面のサイドバー(キーボードの N キーで開閉できます)。

長さの設定はBlenderの単位設定に従います。素体と衣装の「位置・回転・スケール」が揃っている(Ctrl+Aで適用されている)ほど、計算が正確になり綺麗に仕上がります。

インストール手順

  1. 配布されたアドオンの zip ファイルを用意します(解凍せずzipのままでOKです)。
  2. Blenderのメニューから 編集(Edit) → プリファレンス(Preferences) → アドオン(Add-ons) を開き、右上の ディスクからインストール(Install…) を選んで zip を指定します。
  3. アドオン一覧に出てきた cvELD Shell Fit にチェックを入れて有効化します。(※拡張機能としてインストールする場合は、Blenderの拡張機能の手順に従ってください)。
  4. 3D画面で N キーを押し、サイドバーに cvELD Shell Fit タブが表示されれば準備完了です!

更新と削除

アドオンを新しいバージョンに更新するときは、作業中のライブ状態を Bake または Clear で一度終了させ、Blenderを再起動してから新しいzipをインストールしてください。アンインストールしたいときは、プリファレンスのアドオン一覧から無効化・削除します。すでにシェイプキーやメッシュに焼き込んだ(Bakeした)結果は、アドオンを削除してもファイルの中にしっかり残ります。

基本手順

  1. Body(素体)と Cloth(衣装)を指定する: Body 欄に素体メッシュ、Cloth 欄に衣装メッシュを入れます。右側のスポイトボタンを押すと、現在選択しているメッシュを一発で指定できます(同じオブジェクトを両方に指定することはできません)。
  2. 動かす側(Moves)を選ぶ: 体を衣装に合わせたいなら Body Moves、服を体に合わせたいなら Cloth Moves を選びます。パネルの Moves: ... に実際に変形するオブジェクト名が表示されます。
  3. Fit Type を選ぶ: 薄い布や靴下なら Shell、リングやベルトなど厚みのある閉じたパーツなら Solid を選びます。迷ったら Auto(自動判別)を選んでおけば安心です。
  4. 保存先(Bake To)を先に決めておく: New Shape Key は元の形を壊さずに新しいシェイプキーとして保存します。Mesh (Destructive) はメッシュ自体を直接書き換えて確定します。
  5. 「Setup Live」を押す: ライブ補正がスタートします! 初期状態では Auto Parameters on Setup がオンになっているため、モデルの大きさに合わせた使いやすい初期値(Clearance、Search Radius、Smooth Iterations)が自動で入力されます。
  6. 画面を見ながら結果を調整する: 貫通している頂点数(Penetrating)や最大の深さ(Max depth)がパネルに表示されます。スライダーを動かすと画面のモデルがリアルタイムに変わるので、好みの見た目になるよう調整しましょう。
  7. 必要なら効果の範囲を絞る(Limit): 一部分だけ効果を弱めたい・除外したいときは、Limit で頂点グループを作成・選択し、ウェイトペイント(Paint)で黒く塗って調整します。
  8. 確定する: Bake Shape Key または Bake to Mesh を押して結果を焼き込みます。やり直したい場合は Clear を押せば、変更を捨てて作業前の状態に綺麗に戻せます。
やり直しの安心ポイント: Setup Live を実行しても、同じ名前の既存シェイプキーが勝手に消えることはありません。ライブ確認中は既存キーの数値を一時的に 0 にして今回の変化だけを見せてくれます。もし気に入らなければ Clear を押すだけで、以前のシェイプキーを残したまま安全に戻せます。

操作リファレンス

Body / Cloth と Moving Object

Body と Cloth はシーンごとに保存される設定です。Body Moves では素体が動き(衣装が基準)、Cloth Moves では衣装が動きます(素体が基準)。ライブ調整中に対象を入れ替えたいときは、先に Bake または Clear を押してください。

Fit Type(合わせ方の種類)

Shell は、服や靴下などの薄い布向けです。Solid は、リング・腕輪・ベルト・オーバーニーソックスの履き口のような「厚みのある帯状のパーツ」向けで、パーツ自体の形を保ったまま体に巻き付けます。Auto は Cloth の形を自動分析して最適なタイプを選び、画面に Detected: ShellSolidHybrid (both)(両方の混合)のいずれかを表示します。

Setup Live(ライブ補正の開始)

モデル同士のはみ出しを調べ、動かす側のオブジェクトにリアルタイムのライブ補正を作ります。画面を見ながらスライダーを動かすだけで、結果が即座に更新されます。ポーズを付けた状態のモデルで実行しても、計算時だけ一時的に基準姿勢を参照し、終わったら元のポーズに戻してくれるので安心です。

衣装や素体に厚み付けモディファイア(Solidify)が付いている場合は、Disable Target Solidify をオンにしておくと、計算中だけ一時的に非表示にして正確な表面でフィットできます。

ライブ中はパネルに Penetrating(突き抜けている頂点数)と Max depth(一番深い貫通の深さ)が表示されるので、数値を見ながら微調整できます。

ライブオブジェクトの一括選択

Clear ボタンの右側にある小さなアイコンを押すと、現在のシーン内で ShellFit のライブ補正がかかっているオブジェクトをすべてまとめて選択できます。複数のモデルを選んだ状態で Bake や Clear を押せば、一括で確定・解除ができて便利です。

Auto(自動初期設定と判定)

現在の Body / Cloth の大きさや位置関係をチェックし、Clearance(すき間)、Search Radius(探索距離)、Smooth Iterations(なめらかさ)にちょうど良い初期値を自動でセットします。Fit Type が Auto のときは布の形状も判定します。もし貫通が見つからなかったり、全く無関係な離れたパーツが指定されている場合は、パネルにわかりやすく警告が表示されます。

Solid fit の設定(帯状パーツ向け)

Fit Type を Solid にすると、Search Radius の表示が Wrap Distance(巻き付け距離) に変わり、浮いている部分を素体へ引き寄せる距離として使われます。Rigid First をオンにすると、まずパーツ全体の位置と角度を素体に合わせてから残りの部分を変形するため、パーツ本来の綺麗な形を崩さずにフィットさせたいときに最適です。

Body Moves でリングやソックスの履き口が素体に食い込む表現を作りたいときは、Squeeze Bulge をオンにします。帯の下に食い込みの溝を作り、その周囲のお肉をふんわり盛り上げます。オンにすると Squeeze Depth(溝の深さ)Bulge Amount(盛り上がりの量) が現れ、さらに細かい設定(Details)の中に Asymmetry(上下の非対称さ)Reach(盛り上がりの広がり幅) が表示されます。パネルには検出された帯の数や幅、間隔も表示されます。

Limit(効果範囲の制限)

Limit Group が空欄なら、はみ出している場所全体に効果がかかります。頂点グループを指定すると、ウェイトの強さ(0〜1)で効果をコントロールできます(0 = 動かさない、1 = フルに動かす、0.5 = 半分の強さ)。Invert(反転) をオンにすると、効かせる場所と除外する場所をワンタッチで入れ替えられます。

  • + ボタン: 動かす側のメッシュに新しい頂点グループを作成します。最初は全体が 1.0 になっているので、そこから効かせたくない場所を削っていけます。
  • Paint: 自動でウェイトペイントモードに入ります。効果を弱めたい場所をブラシで黒く(0に)塗ります。ライブ中なら、塗っている最中もリアルタイムに画面の線や形が変わります!
  • Finish Painting: もう一度同じボタンを押すと、元のオブジェクトモードに戻ります。
  • Fill: 選択中の Limit Group を全頂点 1.0(全体に効く状態)にリセットします。

Bake Shape Key / Bake to Mesh(確定保存)

保存の選択肢どんな結果になる?こんなときに使おう
New Shape Key指定した Shape Key Name の名前で新しいシェイプキーを作り、数値を 1.0 にします(同じ名前のキーがあれば上書き更新します)。元のモデルの形をそのまま残しておき、後からスライダーで効果の強弱を調整したりアニメーションさせたいとき。
Mesh (Destructive)補正結果をメッシュの頂点データ自体に直接書き込みます。新しいシェイプキーは作られません。この形を完成形として完全に固定したいとき(※元に戻すには Undo するしかなくなるため注意してください)。

Clear(ライブ補正の中止)

保存(Bake)をせずに、現在のライブ補正や作業用データを綺麗に削除して作業前の状態に戻します。自分で作った頂点グループや無関係なデータは消えずに残るので安心してください。

Solid:リングを脚に合わせる

Solid モードでは、「リングを脚に合わせる」ことも、「脚をリングに合わせる」こともできます。ここでは、脚の形を崩さずにリング側をフィットさせる例を紹介します。左側はリングが脚に対して大きくブカブカで、すき間もまばらな状態です。右側では、脚の自然な輪郭に沿ってリングの内側がぴったりフィットし、すき間が均一になっています。(画像をクリックすると拡大できます)

左:脚に対してリングが大きすぎ、すき間がバラバラな状態。右:脚の輪郭に沿ってリングが綺麗にフィットした状態。

Solid:素体をリングに合わせる

逆に、リングの形を固定したまま、素体(脚)を内側へキュッと収めることもできます。この使い方をするときは Squeeze Bulge をオフにします。左側はリングを動かさずに素体が内側に綺麗に収まった状態、右側は素体が太くリングと重なってしまっている状態です。(画像をクリックすると拡大できます)

左:リングを固定したまま、素体が内側に収まった状態。右:素体がリングの外側へ突き出して重なっている状態(Squeeze Bulge はオフ)。

1.1.0:隙間・裾・装飾の調整(新機能)

バージョン 1.1.0 では、服を着せたときによくある「服と体の余計なすき間」「ミニスカートの裾がつぶれる問題」「リボンなどの小物が体にめり込む問題」を解決する新機能が追加されました!

服と体の隙間を詰める(Close Gaps)

衣装を動かすモード(Cloth Moves)で Fit Type を Shell または Auto にしているとき、「Close Gaps(隙間を詰める)」 が使えます。「Gap Blend(隙間を詰める強さ)」は 0〜100% で調整可能です。0% では引き寄せを行わず貫通防止の押し戻しだけを行い、数値を上げると服を体へ吸い寄せるようにフィットさせます。

まずは 「Auto Gap Reach(引き寄せ距離を自動計測)」 にチェックを入れておくのがオススメです。手動で距離を指定したい場合だけチェックを外し、届く範囲(距離)を入力してください。手動距離は「効果が届く範囲」であり、強さではありません。範囲の外側半分に向かって効果が自然にフェードアウトします。

ミニスカートの裾を保ち、服と体の隙間を詰める

ミニスカートを着せたとき、太ももへの引き寄せが強すぎると裾が左右の脚に吸い込まれて形が崩れてしまうことがあります。そんなときは 「Preserve Skirt Opening(裾の広がりを保持)」 をオンにし、「Skirt Preservation(裾の保持量)」 で調整しましょう!

0% なら通常の引き寄せ、100% なら自動判定された裾のふんわりした広がりをしっかり守ります。腰まわりは体にフィットさせつつ、裾へ向かって自然に広がる綺麗なシルエットを保つことができます。(※まっすぐ立った全身モデルを前提とした自動判定のため、片側だけのメッシュや特殊なポーズでは仕上がりをよく確認してください)。

ミニスカートの裾を保ち、服と体の隙間を詰める
ミニスカートの裾を保ちつつ、ウエストまわりの隙間を自然に詰めた調整例。

※画像の数値はこの衣装での一例です。衣装の形状やデザインに合わせて「Gap Blend」と「Skirt Preservation」のバランスを調整してください。

リボンやブローチなどの小物の形を守る(Preserve Ornaments)

「Preserve Ornaments(装飾の形状を保持)」 をオンにすると、服の表面にあるリボン・ボタン・金具など「近くにある小さな独立したパーツ」を自動で見つけ出し、布の動きに合わせて一緒に動かしてくれます。小物が体へペタッと吸着して潰れてしまうのを防ぎ、立体的な形をキープできます!

リボンなどの小物の形を保つ
ニーソックスのリボンの立体形状をふんわり保ちながら調整した例。

※布のメッシュと頂点が直接つながっている飾りなどは、独立パーツとして判定できない場合があります。また、素体のメッシュに穴が開いていて閉じていない場合は内外判定が難しくなることがあるため、必要に応じて画面の補正結果を確認してください。

アップデートの確認と購入先

Blenderのプリファレンス(設定画面)に、公式ストアへのリンクと 「更新を確認」 ボタンが追加されました。「更新を自動確認」をオンにしておくと、起動時と1日1回のペースでGitHubの最新安定版リリースをチェックします(※Blenderのインターネット接続が必要です。モデルデータやシーン情報などの個人データは一切送信されません)。新しいバージョンが見つかると設定画面やNパネルにお知らせが表示され、リリースページをすぐに開くことができます(ダウンロードとインストールは手動で行います)。

BOOTH · Superhive(Blender Market) · 最新リリース(GitHub)

設定値一覧

パラメーターは「Setup Live」でライブ調整中にパネルへ表示され、画面を見ながら自由に変更できます。単位はBlenderの長さ単位(メートルなど)です。選んでいる「Fit Type」や「Moving Object」によって表示される項目が変わります。

項目名設定範囲・初期値どんな効果? どう使う?
Bodyメッシュのみ(初期値なし)素体(体)のオブジェクトを指定します。
Clothメッシュのみ(初期値なし)衣装(服や靴下)のオブジェクトを指定します。
Moving ObjectBody Moves / Cloth Moves
(初期値:Body Moves)
どちらを基準にして、どちらを動かすかを決めます。
Fit TypeAuto / Shell / Solid
(初期値:Auto)
衣装に合ったフィット方法。薄い布は Shell、厚みのある帯は Solid、迷ったら自動判別の Auto。
Bake ToNew Shape Key / Mesh (Destructive)
(初期値:New Shape Key)
確定した結果の保存先。通常は元に戻せる New Shape Key がオススメです。
Clearance初期値 0.001
スライダー範囲 -0.02〜0.02
基準面との間に残す「すき間(余白)」です。マイナスの値を入れると、基準面を少し越えて外側へ配置できます。
Strength0.0〜5.0(初期値 1.000
※Shell のみ
押し出す強さの倍率です。1.0 でぴったり測定どおり。少し貫通が残ってしまうときは 1.0 より少し大きくします。
Search Radius
※Solid では Wrap Distance
最小 0.0(初期値 0.03Shell では貫通を探す範囲、Solid では浮いている衣装を素体に引き寄せる最大距離です。
Smooth Iterations0〜32(初期値 4動いた部分と動いていない部分の境界をなめらかにぼかす回数です。増やすほど広い範囲がなだらかになります。
Refine Passes0〜10(初期値 3
※Cloth Moves または Solid
一度合わせたあと、まだ補正しきれていない部分をもう一度細かく調整する反復回数です(0で無効)。
Cover Passes0〜10(初期値 4
※Cloth Moves のみ
衣装を押したとき、ポリゴンのすき間から肌がチクチク飛び出さないように布を持ち上げる回数です(0で無効)。
Rigid Firstオン/オフ(初期値:オン)
※Solid のみ
全体の位置と角度を先に素体に合わせてから、残った細かい部分だけを変形します。パーツの形を崩したくないときに便利です。
Limit Group初期値:空欄効果をかける範囲を制限する頂点グループです。空欄なら全体に効果がかかります。
Invertオン/オフ(初期値:オフ)Limit Group のウェイトの効果(効く場所と効かない場所)を入れ替えます。
Squeeze Bulgeオン/オフ(初期値:オフ)
※Solid の Body Moves のみ
リングが肌に食い込んだ溝と、その周囲のお肉がふんわり盛り上がる質感を作ります。
Squeeze Depth0 以上(初期値 0.0000、目安 0.05リングの下に作る食い込み溝の深さです。0 のときはリングの太さから自動計算します。
Bulge Amount0.0〜5.0(初期値 1.000溝の周囲のお肉が盛り上がる量です。0 で溝だけ、1 で自然な盛り上がりになります。
Asymmetry-1.0〜1.0(初期値 0.00
※Details の中
リングの上側と下側での盛り上がりの差です(0 で自動バランス)。
Reach0.25〜8.0(初期値 1.50
※Details の中
盛り上がりがリングの外側へ広がる広さ(リング幅に対する倍率)です。
Shape Key Name文字列(初期値 ShellFitシェイプキーとして保存するときの名前です(メッシュ直接保存では使いません)。
Auto Parameters on Setupオン/オフ(初期値:オン)Setup Live 開始時に自動でちょうどいい数値を測ってセットするかどうか。手動で入力した数値を固定したいときはオフにします。
Disable Target Solidifyオン/オフ(初期値:オン)計算中だけ、基準側の厚み付けモディファイア(Solidify)を一時的にオフにして正確な表面を使うかどうか。

困ったとき(トラブルシューティング)

こんなときここを確認・対処してみよう!
Body is not set / Cloth is not set と出る両方の欄にメッシュオブジェクトが正しく指定されているか確認してください。カーブやアーマチュア、同じオブジェクトを2回選ぶことはできません。
Penetrating(貫通数)が 0 になっているBody と Cloth の指定が逆になっていないか、Moving Object の向き、モデル同士が実際に重なっているか、Search Radius の値を確認しましょう。まず Auto を試し、必要なら Search Radius を少し大きくしてみてください。
スライダーを動かしてもほとんど形が変わらないLimit Group に意図しない頂点グループが選ばれていないか確認してください。グループを使う場合は、動かしたい場所のウェイトを 1.0 に塗る必要があります(存在しないグループ名の場合はフィルターなしとして扱われます)。
一部だけどうしても貫通が残ってしまうStrength を少し上げたり、Search Radius を広げてみてください。Cloth Moves の場合は Refine Passes や Cover Passes を増やすと改善します。また、メッシュの面の向き(法線)が裏返っていないか、穴や重複頂点がないかも確認しましょう。
位置関係について警告メッセージが出るBody と Cloth が大きく離れすぎていないか、別の部位のパーツを指定していないか確認してください。
動作が重くてパソコンがカクつく頂点数が非常に多いハイポリゴンモデルでは計算に時間がかかります。まずはポリゴン数を減らした軽い複製モデルで設定の数値を決め、本番では必要な範囲だけを Limit Group で絞って処理するのがオススメです。
ベイクしたのに効果が見えない・消えてしまったシェイプキーの数値(Value)が 1.0 になっているか、他の強いシェイプキーが同時に動いていないか、モディファイアの適用順序を確認してください。Mesh (Destructive) で保存した場合は元に戻せなくなるので、直前にアンドゥできる状態で確認しましょう。

※不具合を報告するときは、使っている Blender の正確なバージョン、OS、GPU(グラフィックボード)、モデルのおおよその頂点数、設定値、詳しい操作手順、表示されたエラーメッセージを添えていただけると素早く対応できます。

変更履歴

1.1.0

  • 装飾パーツの追従(Preserve Ornaments): リボンやボタンなどの小物を布の動きに合わせて移動させ、立体形状を保持する機能を追加。
  • 服と体の隙間補正(Close Gaps): 余計な隙間を体へ自然に引き寄せるブレンド機能を追加。
  • スカートの裾の自動保護(Preserve Skirt Opening): ミニスカートの裾が脚に吸い寄せられて潰れるのを防ぎ、ふんわり広がるシルエットを守る機能を追加。
  • 処理の高速化: ライブ再計算時の不要な計測を削減し、接触補正のレスポンスを向上。
  • バグ修正: 編集モード中に頂点グループ削除でエラーが発生する不具合を修正。
  • 機能追加: アップデート通知機能、公式ストアリンク、補正後の品質統計表示を追加。

1.0.0

  • Body Moves / Cloth Moves の2つの基本フィットモードを搭載。
  • Setup Live と Auto によるリアルタイム補正と、使いやすい初期パラメーターの自動計測。
  • Shell / Solid / Auto の3種類の Fit Type。
  • Solid モードでの Rigid First(形状維持)と、リング向けのお肉の食い込み・盛り上がりを作る Squeeze Bulge。
  • シーン内のライブオブジェクトの一括選択と、まとめて Bake / Clear できる機能。
  • Limit Group、反転(Invert)、ウェイトペイント(Paint)、全塗り(Fill)による範囲コントロール。
  • 元の形を残せる Shape Key と、直接書き込む Mesh (Destructive) の2種類のベイク方式。
  • ポーズ状態でも扱いやすい補正、厚み付け(Solidify)対応、布の突き抜けを抑える Refine / Cover パス。