隠れメッシュ削除
服に完全に覆われて外から見えない体の面を、レイキャストで自動検出します。まず面を選択してハイライトし、目視で確認してから削除します。削除直前のボディは自動でバックアップされます。
VRChat/VRMアバター向け
服に隠れて見えない面の削除、服からはみ出した肌の検出と修正、不要データの掃除、書き出し前のチェックまで。アバター改変でよく使う下ごしらえを、Blenderのサイドバーひとつにまとめたアドオンです。
3Dビューポートのサイドバー「Avatar Toolkit」タブに、次の9機能がパネルとして並びます。削除や変更を伴う操作は、先に対象を選択・一覧表示してから確認ダイアログを経て実行します。
服に完全に覆われて外から見えない体の面を、レイキャストで自動検出します。まず面を選択してハイライトし、目視で確認してから削除します。削除直前のボディは自動でバックアップされます。
空の頂点グループ、効果のないシェイプキー、未使用のUVマップ・頂点カラー・マテリアルスロット、浮遊頂点/エッジをまとめて掃除します。スキャンで件数を確認してから削除できます。
複数メッシュの結合を、シェイプキーの消失やアーマチュア/UV構成の違いなどの事前チェック付きで行います。同じマテリアルを参照する重複スロットの統合もできます。
ポリゴン数・マテリアルスロット数・ボーン数などをPC/Quest別の参考ランクで表示し、NaN/Inf座標、スケール・回転の未適用、非多様体、ウェイトなしボーン、コレクション構成などの不整合を一覧にします。
読み込んだアバターでテクスチャが見つからない(紫/ピンク表示になる)とき、指定フォルダから画像を探して自動で再リンクします。候補が複数ある場合は自動選択せず、候補を一覧表示します。
指定したボーン(既定はHips)のレストポーズ位置が一致するように、別のArmatureを平行移動します。素足版とヒール版など、同じアバターの別バージョンを重ねて比べたいときに使います。
アクセサリなどの全頂点を、指定ボーンへウェイト1.0で割り当てます。アバター本体へ統合したあとも、UnityやVRChatでそのボーンに追従させられます。
頂点グループで指定した範囲のうち、体に埋まっている服の頂点だけを体表面まで押し出し、結果をシェイプキーとして追加します。値を0に戻せば、いつでも元の形状に戻せます。
服の表面より外側にはみ出している体の面を、現在のポーズのまま検出して編集モードで選択します。検査のみを行い、削除や変形は一切しません。
配布ZIPを展開せず、そのままBlenderにインストールします。
BOOTHからダウンロードした NuniAvatarToolkit-1.0.0.zip を、展開せずにそのまま用意します。
Blenderの「編集 > プリファレンス > アドオン」を開き、右上の「∨」メニューから「ディスクからインストール」を選んで、配布ZIPを指定します。
一覧に表示された「NuniAvatarToolkit」にチェックを入れて有効化します。
3Dビューポートで N キーを押してサイドバーを開くと、「Avatar Toolkit」タブが追加されています。各機能はこのタブ内のパネルとして並んでいます。
サイドバーに並ぶパネルの順に掲載しています。各機能をクリックすると、手順と注意点が開きます。
体メッシュの各頂点から放射状にレイを飛ばし、服(または任意で体自身)に完全に囲まれて外から見えない頂点・面を検出します。
AMT_Backups コレクションへ自動保存されます。ESC キーでキャンセルできます。進行状況はステータスバーに表示されます。頂点数×サンプル数が多いと時間がかかります。Blender内のPythonから、公開関数 NuniAvatarToolkit.run_hidden_mesh を呼び出せます。オブジェクト名またはオブジェクトを渡せます。
import NuniAvatarToolkit
result = NuniAvatarToolkit.run_hidden_mesh(
body="Body",
clothing=["Tops", "Jacket"],
action="SELECT", # ANALYZE / SELECT / DELETE
safety_margin="MEDIUM", # NONE / SMALL / MEDIUM / LARGE
)
print(result)ANALYZE は変更を加えず結果だけを返し、SELECT は安全余白を適用した面を選択します。DELETE は同じ面を削除しますが、必ず先に AMT_Backups へボディのコピーを作ります。戻り値は面番号・件数・バックアップ名などを含む辞書です。
Collection 等)のままのコレクション、空のサブコレクション分類名(衣装/Accessoryなど)は問いません。サブコレクションを一切使わないフラットな構成では、構成に関する警告は出ません。参考ランクはVRChatのAvatar Performance Ranking System(PC版/Quest版)の基準を参考にした概算です。
BOOTHで購入したアバターのFBX/.blendを読み込んだとき、テクスチャが見つからず紫/ピンク表示になることがあります。その欠落しているテクスチャ画像を、指定フォルダから探して再リンクします。
.001 等)の違いを許容して一致するもの同じアバターの別バージョン(例:素足版とハイヒール版)のArmatureは、オブジェクトの位置が両方 (0, 0, 0) でも、ボーン配置(レストポーズ)がずれていることがあります。指定ボーンのレストポーズのワールド座標が一致するように、対象Armature全体を平行移動します。
アクセサリなどをアバター本体へ統合する前に、全頂点をひとつのボーンへウェイト1.0で割り当てます。結合後もUnityやVRChatで、そのボーンに剛体的に追従させるための機能です。
use_deform=False)も、既存ウェイトを外す前に拒否します。共有メッシュは先にシングルユーザー化し、追従先には変形用のボーンを選んでください。他のアバター向けの服を着せると、体が服を突き抜けて肌がはみ出すことがあります。服のうち頂点グループで指定した範囲だけを対象に、体に埋まっている頂点を体表面まで押し出し、結果をシェイプキーとして追加します。全体をShrinkwrapで吸着させるのと違い、胸まわり・腰まわりなど直したい部分だけを狙えます。
AMT_Fit)が値1.0で追加されます。体の外側にある頂点は動かさず、内側に埋まっている頂点だけを押し出すので、服のシルエットは保たれます。
服の表面より外側に出ている体の面を検出し、編集モードで選択してハイライトします。検査のみを行い、削除や変形は一切しません。
削除を伴う機能を使う前に確認してください。
削除系の操作を実行する前に、必ずファイルを保存するか複製を作ってください。削除操作はBlenderの元に戻す(Ctrl+Z)の対象ですが、ファイルを開き直したりBlenderを終了したりすると、そのUndo履歴は使えません。
「隠れメッシュ削除」「不要データ一括削除」は、シェイプキーや服の着せ替えなど、実行時点では見えていないものの将来見える可能性がある面・データを消してしまうことがあります。除外設定を活用し、選択・スキャン結果を目視で確認してから削除してください。
共有・リンク・編集できないメッシュや、結果を保証できないモディファイア構成などを検出した場合は、データを書き換える前に処理を中止し、理由を表示します。「服メッシュフィット」「アーマチュア位置合わせ」は、途中で失敗した場合に変更前の状態へ戻します。
「統計/書き出し前チェック」のランクは、VRChatのAvatar Performance Ranking Systemの基準を参考にした概算です。マテリアルスロットは同じマテリアルでもスロットごとに数えます。基準は将来変わる可能性があるため、最終判断はVRChat公式ドキュメントで最新の基準を確認してください。
本アドオンは GNU General Public License v3.0(GPLv3) の下で提供しています。配布ZIPに LICENSE を同梱しています。
コードの改変・再頒布は、GPLv3の条件に従って自由に行えます。bpy を利用するBlenderアドオンは、GPL互換のライセンスである必要があるためです。