【VRChat】2Dイラストが動く『ぷにぷにアバター』を自作絵に簡単改変する手順

VRChat内で動く改変されたぷにぷにアバター

VRChatでは、2025年2月頃からぷにぷにアバター」と呼ばれる、まるで2Dイラストがそのまま動き出したようなアバターをよく見かけるようになりました。

この流れのきっかけとなったアバターの一つが、「凪 -Nagi-【オリジナル3Dモデル】」などでお馴染みのクリエイター、rio3dさんがBoothで公開した「[3Dモデル] #ぷにぷにあばたー ナギチャン」。このアバターをベースに使うことで、自分の描いたイラストをVRChatの3D空間で動かすことができます!

ペーパーマリオのように平面的なキャラクターが立体空間を歩き回る姿は、とてもユニークで魅力的ですよね。

今回の記事では、この「#ぷにぷにあばたー ナギチャン」を例に、自分のイラストに差し替えてオリジナルのぷにぷにアバターを作成する手順を、備忘録も兼ねて分かりやすく解説します。

改変に必要なもの:

手順の概要は驚くほどシンプルです!

  1. 「#ぷにぷにあばたー ナギチャン」をUnityプロジェクトにインポートする。
  2. アバターに使われているイラスト(テクスチャ)を、自分の用意したイラストに差し替える(上書きする)。
  3. VRChatにアップロードする。

たったこれだけで、あなたの描いたキャラクターがVRChatで動き出します! それでは、具体的な手順を見ていきましょう。

[3Dモデル] #ぷにぷにあばたー ナギチャン (BOOTH)


この記事で解説する手順

  1. Unityに「ぷにぷにアバター」をインポートする
  2. 簡単!ぷにぷにアバターのイラスト差し替え手順

Step 1: Unityに「ぷにぷにアバター」をインポートする

まずは、Boothで購入した「#ぷにぷにあばたー ナギチャン」のフォルダに含まれている.unitypackageファイルを、あなたのVRChatプロジェクトのAssetsウィンドウにドラッグ&ドロップしてインポートします。

Unityにぷにぷにアバターのunitypackageをドラッグ&ドロップする

インポートが完了したら、ProjectウィンドウのAssets/PUNIPUNI_AVATARフォルダ内にある「PUNI」という名前のPrefab(プレハブ)を、Hierarchyウィンドウ(シーン)にドラッグ&ドロップして配置します。

インポート完了後、PUNI Prefabをヒエラルキーに配置

この状態でVRChat Creator Companion (VCC) の手順に従ってアバターをアップロードすれば、オリジナルの「ナギチャン」ぷにぷにアバターとして使用できます。


Step 2: 簡単!ぷにぷにアバターのイラスト差し替え手順

ここからが本番の「改変」作業です。ぷにぷにアバターの見た目と動きは、主に以下の4枚のPNG画像(テクスチャ)によって制御されています。これらの画像を自分のイラストに差し替えるだけで、簡単にオリジナルアバターが作れます。

ぷにぷにアバターを構成する4枚のPNG画像

これらの画像は、UnityプロジェクトのAssets/PUNIPUNI_AVATAR/Materialsフォルダ内にあります。

  • tex_nagi_default.png: 通常時(立っている時やアイドル状態)のイラスト
  • tex_nagi_default_talk.png: 口パク時(話している時)のイラスト
  • tex_nagi_walk_1.png: 歩行時アニメーション1枚目のイラスト
  • tex_nagi_walk_2.png: 歩行時アニメーション2枚目のイラスト

VRChat内で実際に動かすと、通常時はdefault、話すとtalk、歩くとwalk_1walk_2が交互に表示されることで、アニメーションしているように見えます。

通常の3Dアバター改変のように複雑な位置調整などは不要! 最も簡単な改変方法は、この4つのファイルと全く同じファイル名で自分のイラストを用意し、元のファイルを上書きしてしまうことです。これにより、アバター内部の参照設定を維持したまま、見た目だけを自分のイラストに入れ替えることができます。

2-1. 差し替え用イラストの準備

まずは、上記4つの状態に対応する自分のイラストを用意します。ポイントは以下の通りです。

  • 画像サイズ: 元のナギチャン画像は3035×3035ピクセルで作成されています。可能であれば、これと同じサイズでイラストを用意し、中央にキャラクターを配置するのがおすすめです。(異なるサイズでも動作しますが、表示がずれる可能性があります)
  • ファイル名: 元のファイル名(tex_nagi_default.png など)と完全に同じ名前を付けます。
  • ファイル形式: PNG形式(透過背景も利用可能)で保存します。

私は、以前作成したマヌカちゃんアバターの改変モデルを元に、以下のようなイラストを描いてみました。(当ブログのWebツール「ドット絵変換ツール」で少しドット絵風にしています)

ドット絵変換ツール

差し替え用に作成した4種類のイラスト

(左から順に、通常、口パク、歩行1、歩行2)

元になったマヌカちゃんアバター

描いた(または用意した)イラスト4枚に、それぞれ対応する元のファイル名を付けます。

用意したイラストに元のファイル名をつける

2-2. Unity上でイラストファイルを上書き

次に、Unityエディタ上で元のイラストファイルを特定し、用意した自分のイラストで上書きします。

1. UnityのProjectウィンドウで、Assets/PUNIPUNI_AVATAR/Materialsフォルダを開きます。

2. 中にある元のナギチャンのPNGファイル(例: tex_nagi_default.png)のどれか一つを右クリックし、「Show in Explorer」(Macの場合は「Reveal in Finder」)を選択します。これにより、これらのファイルが保存されている実際のフォルダが開きます。

UnityのMaterialsフォルダでPNGファイルを右クリックしShow in Explorerを選択

3. 開いたフォルダに、先ほど準備した自分のイラストPNGファイル4枚すべてをコピー&ペースト(またはドラッグ&ドロップ)します。

開いたフォルダに自作イラストをコピー&ペースト

4. 「ファイル名は既に存在します」という警告が表示されるので、「ファイルを置き換える」を選択して、4つのファイルをすべて上書きします。

ファイルの上書き確認ダイアログ

2-3. Unityでの確認とVRChatへのアップロード

ファイルの上書きが完了したら、Unityエディタの画面に戻ります。Unityがファイルの変更を自動的に検知し、インポート処理を行います。少し待つと、ProjectウィンドウやSceneビューに表示されているアバターの見た目が、自分のイラストに変わっているはずです!

Unityエディタ上でイラストが差し替わったことを確認

(↑Unity上で自分のイラストに置き換わりました!)

ここまで確認できたら、あとは通常のVRChatアバターアップロード手順と同じです。VRChat SDK Control Panelを開き、「Build & Publish for Windows」ボタンを押して、アバターをアップロードしましょう。

これで、あなたのオリジナルイラストがVRChatで動く「ぷにぷにアバター」の完成です!

VRChat内で動く完成したオリジナルぷにぷにアバター

さあ、あなたの分身をVRChatの世界で歩き回らせてみましょう!

[3Dモデル] #ぷにぷにあばたー ナギチャン (BOOTH)

【VRChat】アバター最適化でVery Poor脱出!Mantis & MeshDeleterでポリゴン削減してPoorにする方法

VRChatで使用しているアバターのパフォーマンスランクが「Very Poor」になってしまうことがあります。Very Poorランクは、ワールドによっては表示が制限されたり、他ユーザーへの負荷となる可能性も指摘されており、可能な範囲での最適化が推奨されています。

今回は、Unityのツール「Mantis LOD Editor」と「MeshDeleterWithTexture」を用いて、アバターのポリゴン数を削減し、パフォーマンスランクを「Very Poor」から「Poor」へ改善することができたため、その手順と方法を記録としてまとめます。

【最適化結果:ビフォーアフター】

最適化前: 188,784ポリゴン / パフォーマンスランク: Very Poor

最適化前のアバター(Very Poorランク)

最適化後: 69,995ポリゴン / パフォーマンスランク: Poor

最適化後のアバター(Poorランク)

上記のように、見た目への影響を最小限に抑えつつ、ポリゴン数を63%削減することに成功しました!

具体的には、以下の方法でポリゴン数を効果的に削減しました。これらのテクニックは、アバター改変や自作モデル制作においても重要になると思われます。

  • 隠れたパーツの削除: 服の下で見えない体の一部(肘など)のメッシュを削除。
  • Mantis LOD Editorによる削減: 各パーツ(服、髪、小物など)のポリゴン数を、見た目が崩れない範囲で削減。
  • MeshDeleterWithTextureによる部分削除: 服の不要な装飾や、さらに隠れた部分のメッシュをテクスチャ指定で削除。
  • (応用)MeshDeleterによるパーツ分離: 複合パーツ(例:インナーとアウターが一体化した服)を分離し、それぞれ個別に最適化。

この記事では、これらの手順を順番に解説していきます。


この記事の内容

  1. 最適化に必要なツールと準備
  2. 知っておくと便利な専門用語(非破壊的, NDMF)
  3. Mantis LOD Editorを使ったポリゴン削減の基本
  4. Mantisだけでは難しいケースと課題
  5. MeshDeleterWithTextureを使った部分的なメッシュ削除
  6. 応用テクニック:MeshDeleterで服パーツを分離する
  7. まとめ:Very Poor脱出!最適化の成果とポイント
  8. 参考にさせていただいた情報
  9. 追記:ハイエンドモデル最適化の限界と注意点 (2025年4月)

最適化に必要なツールと準備

今回のVRChatアバター最適化(ポリゴン削減)で使用した主なツールは以下の通りです。

  • Mantis LOD Editor – Professional Edition (Unity Asset Store / 有料: 約$55)
    • 高品質なポリゴン削減(リダクション)機能を持つ定番のUnityアセット。アバターの各パーツのポリゴン数を効率的に減らせます。購入後、UnityのPackageManager > My Assetsからインポートします。
  • 【非破壊でポリゴン削減】Mantis LOD EditorのNDMF化ツール (Booth: ひつぶさん作 / 無料 ※Mantis LOD Editor本体が必要)
    • 上記のMantis LOD Editorを、VRChatアバター改変で広く使われているフレームワーク「NDMF(なでもふ)」上で、より安全かつ簡単に(非破壊的に)利用できるようにするツール。Boothからダウンロードし、unitypackageをインポートします。実際にアバターに適用するのはこちらです。
  • MeshDeleterWithTexture beta (Booth: がとーしょこらさん作 / 無料)
    • テクスチャ画像上で範囲を指定することで、対応するメッシュ部分を削除(実際には新しいメッシュを生成)できる非常に便利なUnityエディタ拡張。Mantisでは難しい、服の細かい装飾の削除や、隠れた部分のメッシュ除去に役立ちます。Boothからダウンロードし、unitypackageをインポートします。
  • anatawa12’s VRC Avatar Tools (旧: gists pack) (VCC経由で導入可能)
    • アバターのパフォーマンス統計情報を詳細に表示する機能などが含まれるツール群。特に「Actual Performance」タブは、最適化作業中の現在のポリゴン数やパフォーマンスランクをリアルタイムで確認するために必須です。VCC (VRChat Creator Companion) の「Manage Project」から簡単に追加できます。

【重要】Actual Performanceタブでの確認方法:

anatawa12’s VRC Avatar Toolsを導入すると、VRChat SDK Control Panelに「Avatars」タブが追加され、その中に「Actual Performance」という項目が表示されます。MantisやMeshDeleterで最適化を行った後、Unityを再生モード(Play Mode)にすると、このタブの情報が更新され、最新のポリゴン数やパフォーマンスランクを確認できます。目標は、ここの「Polygons」の数値を70,000以下にすることです(Poorランクの上限)。

VCCでanatawa12's VRC Avatar Toolsを追加する画面

Actual Performanceタブでポリゴン数とランクを確認

(↑この例では188,784ポリゴンでVery Poor。目標は70,000ポリゴン以下!)

知っておくと便利な専門用語(非破壊的, NDMF)

アバター最適化を進める上で、いくつか知っておくと理解が深まる用語があります。

  • 非破壊的 (Non-Destructive)
    元のデータを直接書き換えずに行う編集方法のこと。今回使うNDMF版MantisやMeshDeleterは、元のメッシュデータを保持したまま処理を行うため、「非破壊的」です。つまり、設定を間違えたり、結果が気に入らなかったりした場合でも、ツール(コンポーネント)を削除したり設定を戻したりするだけで、簡単に元の状態に戻すことができます。初心者でも安心して試せる大きなメリットです。
  • NDMF (Nade Nadenadeshiko Mod Fwk / なでもふ)
    VRChatアバター改変のためのフレームワーク(仕組み)の一つ。アバターの色々な設定や改変を「コンポーネント」として管理し、それらをビルド時に自動で適用してくれます。非破壊的な改変と相性が良く、多くの便利ツールがNDMFに対応しています。今回使う「Mantis LOD EditorのNDMF化ツール」もその一つです。

Mantis LOD Editorを使ったポリゴン削減の基本

VRChat SDKのValidation画面でポリゴン超過パーツを特定

まずは、アバターの中でどのパーツがポリゴン数を増やしている主犯なのかを特定しましょう。

1. UnityでVRChat SDK Control Panelを開き、「Builder」タブを選択します。

2. アバターを選択した状態でビルドを実行しようとすると、パフォーマンスに関する警告(Validation Results)が表示されます。「Polygons」に関する警告メッセージの横にある「Select」ボタンをクリックすると、ポリゴン数が特に多いメッシュ(衣装パーツなど)がHierarchyウィンドウでハイライトされます。

3. ハイライトされたオブジェクト(衣装パーツなど)に、「NDMF Mantis LOD Editor」コンポーネントを追加します。(Inspectorウィンドウで「Add Component」し、”Mantis”で検索すると見つかります)

4. 追加されたコンポーネントの「Quality」スライダーを調整します。この数値を下げるほどポリゴン数が削減されますが、下げすぎるとメッシュの形が崩れてしまいます。

NDMF Mantis LOD EditorコンポーネントのQualityスライダー

【ポイント】Shaded Wireframe表示を活用しよう

Qualityスライダーを調整する際は、Unityのシーンビュー表示を「Shaded Wireframe」に切り替えると、ポリゴンの削減具合やメッシュの崩れ具合が視覚的に分かりやすくなります。「Shaded」表示と適宜切り替えながら、見た目を損なわないギリギリのラインを探っていきましょう。

Shaded Wireframe表示でポリゴンを確認

この「パーツ特定 → コンポーネント追加 → Quality調整」を、ポリゴン数が多いパーツに対して繰り返していくのが基本的な流れです。

【重要】使わないパーツは完全に削除しよう

アバター改変をしていると、「元の服や髪型も、いつか使うかもしれないから一応残しておこう」と、非表示にしただけでHierarchyに残してしまうことがあります。しかし、非表示にしただけのメッシュもポリゴン数としてカウントされてしまう場合があります!

今回の私のアバターも、元のマヌカちゃんのエプロンパーツなどを非表示で残していましたが、これらをHierarchyから完全に削除したところ、約16,000ポリゴンも削減できました。

使わないパーツは思い切って削除しましょう。もし後で必要になった場合は、元のアバターや衣装のunitypackageを再インポートすれば簡単に戻せます。

Hierarchyから不要なパーツを削除する

(参考: UnityだけでVRChatアバターのVeryPoorを脱出する方法|こはだ 様

【注意】顔と素体のポリゴン削減は慎重に!

顔周りの細かいメッシュ構造

Mantisでのポリゴン削減は効果的ですが、アバターの「顔」と「素体(Body)」のメッシュは、原則として削減しない方が無難です。

特に顔周りは、豊かな表情を作るために非常に多くの細かいポリゴン(メッシュ)で構成されています。口周りのポリゴンはリップシンク(口パク)の様々な形に対応するため、目周りのポリゴンはまばたきや感情表現のために必要です。

これらの部分をMantisで安易に削減してしまうと、喋るたびに口が破綻したり、表情が崩壊したりする可能性が非常に高くなります。同様に、素体の関節部分なども、削減するとポーズを取ったときに不自然な見た目になりやすいです。

ポリゴン削減は、主に服、髪、アクセサリーなどのパーツで行い、顔と素体はできるだけ元の状態を保つようにしましょう。

【判断】時にはデザイン的な妥協も必要

尻尾パーツの削減前後の比較

どうしても目標のポリゴン数(Poorランクの70,000ポリゴン)に収まらない場合、デザインの一部を諦めるという判断が必要になることもあります。

今回のアバターでは、尻尾パーツのポリゴン数をMantisである程度削減しましたが、それでも目標達成が難しかったため、最終的に尻尾パーツ自体を削除する決断をしました。もちろん残念ですが、パフォーマンスランク改善のためには、こうしたトレードオフが必要になる場合もあります。

Mantisだけでは難しいケースと課題

Mantis LOD Editorは非常に優秀なツールですが、最適化を進める中で、Mantisだけでは対応が難しい、あるいは効率が悪いと感じる場面が出てきました。

  • 複合パーツの削減限界: インナーとアウターが一体化している服など、一つのオブジェクトに複数の部位が含まれている場合、Mantisで削減すると、先にポリゴン数が少ない部分(例: インナー)が破綻してしまい、ポリゴン数が多い部分(例: アウター)を十分に削減できないことがある。パーツを分離して個別に削減したい。
  • 隠れたメッシュの残り: 服の下に隠れている素体の一部(例: お腹周り)を非表示にしてもメッシュが残り、ポリゴン数に含まれてしまう。この隠れた部分だけを削除したい。
  • 部分的な装飾の削除: 服の特定の部分(ポケット、ベルト、フリルなど)だけを削除してポリゴン数を稼ぎたいが、Mantisでは全体的な削減しかできない。

これらの課題を解決するために役立つのが、「MeshDeleterWithTexture beta」です。

最適化前の体メッシュ(服で隠れている部分も表示)

(↑例えば、服の下に隠れているこのお腹部分のメッシュを削除したい)

服を非表示にした状態。腹部のメッシュが残っている

MeshDeleterWithTexture betaを使った部分的なメッシュ削除

MeshDeleterWithTexture beta」は、その名の通り、テクスチャ画像上で指定した範囲に対応するメッシュ部分を削除(正確には、削除した新しいメッシュを生成)してくれる画期的なツールです。

使い方は非常に直感的です。

1. がとーしょこらさんのBoothからunitypackageをダウンロードし、プロジェクトにインポートします。

2. Unityメニューバーに「GotoTools」という項目が追加されるので、「MeshDeleter with Texture」を選択して専用ウィンドウを開きます。

MeshDeleter with Textureのメニュー

3. ウィンドウ上部の「Renderer」という欄に、メッシュを削除したいオブジェクト(例: 体のメッシュを持つオブジェクト)をHierarchyウィンドウからドラッグ&ドロップします。

4. オブジェクトに設定されているテクスチャ画像がウィンドウ内に表示されます。

5. 画面右側の「Draw Type」から「PEN」などを選択し、テクスチャ上で削除したい部分(例: 服で隠れるお腹の部分)を黒く塗りつぶします。塗りつぶした部分は、シーンビュー上のモデルにもリアルタイムで反映され、削除される範囲を確認できます。

MeshDeleterでテクスチャのお腹部分を黒く塗りつぶす

6. 削除範囲を確認したら、「DeleteMesh」ボタンをクリックします。これで、指定した部分が削除された新しいメッシュが生成され、オブジェクトに自動で適用されます。

MeshDeleter実行後、お腹部分のメッシュが削除された状態

【ポイント】MeshDeleterも非破壊的!

このツールも「非破壊的」で、元のメッシュデータはプロジェクト内に残っています。もし削除範囲を間違えたり、元に戻したくなったりした場合は、オブジェクトのMesh Renderer(またはSkinned Mesh Renderer)コンポーネントで、Meshの指定を元のファイルに戻すだけでOKです。安心して試せますね。

生成された新しいメッシュが適用されているInspector画面

この方法で、服の下に隠れていた腹部メッシュを削除したところ、約1,000ポリゴン削減できました。さらに、残った部分にMantis LOD Editorを適用して、より効率的にポリゴンを削減することも可能です。

応用テクニック:MeshDeleterで服パーツを分離する

最適化対象のテックウェア(インナーとアウターが一体)

MeshDeleterの「テクスチャ範囲指定でメッシュを削除する」機能は、応用することで一体化している服パーツを分離するのにも使えます。

今回使用したテックウェア(約60,000ポリゴン)は、コート部分(アウター)と上半身のインナーが同じ一つのオブジェクト(メッシュ)として作られていました。このままだと、Mantisで削減しようとしても、ポリゴン数の少ないインナー部分が先に破綻してしまい、ポリゴン数の多いコート部分を十分に削減できませんでした。

そこで、MeshDeleterを使って「インナーだけのメッシュ」と「アウターだけのメッシュ」を擬似的に作り出すことにしました。

【パーツ分離手順】

1. 元のテックウェアオブジェクトをHierarchy上で複製(Ctrl+D または Cmd+D)し、それぞれ「インナー用」「アウター用」など分かりやすい名前に変更します。

2. 「インナー用」オブジェクトを選択し、MeshDeleterウィンドウを開きます。

3. テクスチャ上で、アウター(コート)に対応する部分をすべて黒く塗りつぶし、「DeleteMesh」を実行します。これにより、インナー部分だけが残ったメッシュが生成されます。

インナー用オブジェクトでコート部分を塗りつぶす

インナー部分だけのメッシュが完成

4. 同様に、「アウター用」オブジェクトを選択し、MeshDeleterウィンドウで今度はインナーに対応する部分をすべて黒く塗りつぶし、「DeleteMesh」を実行します。これにより、アウター(コート)部分だけが残ったメッシュが生成されます。

アウター用オブジェクトでインナー部分を塗りつぶす

これで、もともと一体だった服を「インナー」と「アウター」の2つのメッシュに分離できました。Blenderなどの外部モデリングソフトを使わずに、Unity上だけでパーツを分離できるのは非常に便利です。

分離後は、それぞれのパーツ(インナー、アウター)に個別にNDMF Mantis LOD Editorを適用し、より効果的にポリゴン数を削減していくことが可能になります。

まとめ:Very Poor脱出!最適化の成果とポイント

以上の方法を用いた結果、最初に18万ポリゴンあったVeryPoorランクのアバターを、69,995ポリゴンのPoorランクに改善することができました。

最終的なポリゴン数(69995)とPoorランクの表示

最終的に目標の70,000ポリゴン以下に収めるために、服の装飾削除やコートのポリゴン削減など、デザイン面での調整も行いました。見た目を維持しながらポリゴン数を削減する作業は、試行錯誤が必要ですが、非常に良い練習になったと感じています。

最適化後のアバターの外観(見た目の劣化は最小限)

今回使用した「Mantis LOD Editor (NDMF版)」と「MeshDeleterWithTexture beta」は、どちらも非破壊的なツールであるため、初心者でも比較的安心して試すことができます。「いつでも元に戻せる」という点は、最適化作業を進める上での大きな心理的な支えになります。

Mantisの強力なポリゴン削減能力と、MeshDeleterの柔軟な部分編集・応用力を組み合わせることで、Very Poorランクのアバターも効果的に最適化できる可能性が高まります。

VRChatアバターのポリゴン数でお悩みの方は、ぜひこの記事で紹介したツールと手順を参考に、最適化に挑戦してみてください。(なお、パフォーマンスランクにはポリゴン数以外にもマテリアル数などが影響するため、総合的な最適化を目指す場合はそちらも考慮が必要です)

参考にさせていただいた情報

今回のアバター最適化(ポリゴン削減)にあたり、以下の記事や動画を大変参考にさせていただきました。素晴らしい情報をありがとうございます。


追記:ハイエンドモデル最適化の限界と注意点 (2025年4月)

この記事ではVery PoorランクのアバターをPoorランクに改善する手順を紹介しましたが、すべてのケースで同様の最適化が最善とは限らない点について追記します。特に、元のポリゴン数が非常に多い、いわゆる「ハイエンドモデル」の最適化には注意が必要です。

これらのモデルは、ディテールに富んだ装飾や複雑な衣装、多くのギミックなどが魅力ですが、その分ポリゴン数が膨大(10万ポリゴンをはるかに超えることも珍しくありません)です。このようなモデルに対してMantis LOD Editorなどでポリゴン削減を行うと、わずかな削減率でも見た目のディテールが失われ、モデル本来の魅力が大きく損なわれてしまう可能性があります。

Poorランクの規定(7万ポリゴン)を少しオーバーしている程度のアバター(例えば7万~10万ポリゴン程度)や、もともとシンプルなデザインのデフォルメモデルなどであれば、この記事で紹介した方法は有効でしょう。しかし、規定の倍以上、例えば15万、20万ポリゴンを超えるようなハイエンドモデルを、見た目を維持したままPoorランクまで無理に削減しようとすることは、多くの場合困難であり、あまり推奨できません。

では、どうすれば良いかというと、無理に一つのモデルを極端に最適化するのではなく、用途に応じた使い分けを検討するのが現実的です。

  • 通常利用: メインのアバターは、最適化せず元のクオリティのまま使用する。
  • 軽量化が必要な場面: 大人数が集まるイベントや、パフォーマンスが重視される特定のワールドに参加する際には、別途軽量化されたバージョン(Quest対応版などが用意されている場合もあります)を用意するか、あるいは最初から軽量な別のアバターを使用する

【筆者の体験談と反省】

実を言うと、今回Poorランク(69,995ポリゴン)まで最適化したマヌカ改変モデルですが、しばらく使ってみて、少し考えが変わりました。確かに軽量化には成功したのですが、その過程で服の細かい装飾などを一部削除してしまったことに対し、「そこまでして最適化する必要があったかな?」という気持ちが後から出てきました。

また、私自身のVRChatのプレイスタイルとして、パフォーマンスが非常にシビアなワールドに頻繁に参加するわけではなかったため、「このモデルに関しては、Very Poorのままでも大きな支障はなかったかもしれない」というのが正直なところです。

アバターの最適化は、VRChatを快適に楽しむ上で重要な要素の一つですが、それが常に必須というわけではありません。ご自身のプレイスタイルや参加するコミュニティ、そして「どの程度の見た目の変化なら許容できるか」をよく考慮した上で、最適化を行うかどうか、どのレベルまで行うかを判断することが大切だと思います。

【VRChat】服の裏地が透ける/透明になる問題を修正!MeshFlipperの使い方

VRChatでマントやロングコートなど、丈の長い衣装を着ているアバターを使ったとき、「あれ? フレンド視点だと服の裏地が透明になって透けて見える…」と指摘された経験はありませんか?

自分視点では特に問題ないのに、他人から見るとコートの裏側などが描画されず、体が透けて見えてしまう…。これはVRChatでアバターを使っていると比較的よく遭遇する現象です。

この「衣装の裏地が透ける問題」、実は簡単なUnityツールで解決できる場合があります。この記事では、その原因と、解決策となるツール「MeshFlipper」の使い方について、備忘録も兼ねて解説します。


この記事の内容

  1. なぜVRChatで服の裏地が描画されない(透ける)のか?
  2. 解決策!「MeshFlipper」の導入と使い方(実装手順)
  3. (少し技術的な話)MeshFlipperが裏地問題を解決する仕組み
  4. まとめ:服の裏地が透けるならMeshFlipperを試そう!

なぜVRChatで服の裏地が描画されない(透ける)のか?

VRChat内でコートの裏地が透けて見えている状態の例

この現象の主な原因は、多くの3Dモデルで採用されている「片面レンダリング(または片面描画)」という仕組みにあります。

簡単に言うと、3Dモデルを構成するポリゴン(板のようなもの)は、基本的に「表面」だけを描画し、「裏面」は描画しないことで、コンピューターの描画負荷を軽くしています。体にぴったりフィットした服などは、外側(表面)だけが見えれば十分なので、この仕組みで問題ありません。

しかし、コート、マント、スカートのようにヒラヒラしたり、裾が長かったりする衣装の場合、キャラクターが動いたり、特定の角度から見たりすると、衣装の「裏面」が見えてしまうことがあります。

片面レンダリングでは、この「裏面」は描画対象外なので、結果として何も描画されず、背景や体が透けて見えてしまうのです。これが、他人視点や三人称視点のカメラで見たときに「裏地が透明になっている」「バグで描画されていない」ように見える正体です。

この問題を解決するには、単純に「衣装の裏面もちゃんと描画されるようにする」必要があります。そのための処理を簡単に行ってくれるのが、次にご紹介する「MeshFlipper」というツールです。


解決策!「MeshFlipper」の導入と使い方(実装手順)

衣装の裏地が透ける問題の解決方法を探していたところ、以下の記事で「MeshFlipper」というUnityエディタ拡張ツールの存在を知りました。(情報感謝です!)

Android(Quest)対応方法マニュアルAdvanced!! – もえぎつばさ 様

MeshFlipperは、Unity上で3Dモデルのメッシュデータ(形状データ)を加工し、裏面も描画されるように両面化してくれる非常に便利なツールです。fum1さんがBoothで無料配布してくれています。

【無料】メッシュの裏面を生成するツール / Mesh Flipper (BOOTH)

導入と基本的な使い方は以下の通り、とても簡単です。

MeshFlipperのウィンドウと設定オプション

  1. MeshFlipperをUnityプロジェクトにインポートする
    まず、上記BoothからMeshFlipperをダウンロードします。ダウンロードしたファイルに含まれるMeshFlipper.csというスクリプトファイルを、UnityプロジェクトのAssetsフォルダ内の好きな場所(例えばEditorフォルダなど)にドラッグ&ドロップしてインポートします。
  2. 裏地が透ける衣装のメッシュを選択する
    UnityのHierarchyウィンドウで、修正したいアバターを選択し、その中から裏地が透けてしまう衣装のパーツ(オブジェクト)を探します。そのオブジェクトにアタッチされているSkinned Mesh RendererまたはMesh Rendererコンポーネントを見つけてください。
  3. MeshFlipperウィンドウを開く
    Unityのメニューバーから fum1 > Mesh Flipper を選択し、MeshFlipperの専用ウィンドウを開きます。
  4. オプションを設定する(重要:TwoSidesを選択)
    MeshFlipperウィンドウが開いたら、対象の衣装パーツ(Skinned Mesh Rendererなどが付いたオブジェクト)を選択した状態で、以下のオプションを設定します。

    • TwoSides: このオプションにチェックを入れるのが基本です。これがメッシュを両面化する機能で、チェックを入れると裏面も描画されるようになります。
    • Flip: こちらはポリゴンの面の向き(法線)を反転させる機能です。通常、裏地が透ける問題の解決にはTwoSidesだけで十分です。

    ほとんどの場合、TwoSidesにチェックを入れるだけで裏地が透ける問題は解決します。

  5. 「Create Mesh」ボタンを押して実行する
    オプションを設定したら、「Create Mesh」ボタンをクリックします。すると、MeshFlipperが選択したメッシュを両面化処理し、新しいメッシュデータを作成して自動的に元のメッシュと差し替えてくれます。(元のメッシュデータもバックアップとして残る場合があります)

処理が完了したら、Unityのシーンビューで衣装の裏側から見てみたり、VRChatにアップロードしてフレンドに確認してもらったりしましょう。裏地がちゃんと描画され、透けなくなっていれば成功です!


(少し技術的な話)MeshFlipperが裏地問題を解決する仕組み

少しだけ技術的な話をすると、MeshFlipperは内部で以下のような処理を行っています。

  • 頂点データの複製と法線の反転: 元のメッシュの頂点データをコピーし、コピーした側のポリゴンの向き(法線)を反転させます。
  • メッシュの結合: 元のメッシュ(表面)と、法線を反転させたコピー(裏面用)を一つに結合します。

これにより、実質的に「表面用のポリゴン」と「裏面用のポリゴン」の両方を持つメッシュデータが作成されます。結果として、どちらの方向から見てもポリゴンが描画されるようになり、裏地が透ける問題が解決するという仕組みです。

要するに、MeshFlipperは「本来は存在しなかった(描画されなかった)服の裏側」を擬似的に作ってくれるツール、と理解しておけば大丈夫です。

この複雑な処理をボタン一つで実行してくれるので、特にコートやスカートなど、裏側が見えやすい衣装を扱う際には非常に重宝します。


まとめ:服の裏地が透けるならMeshFlipperを試そう!

VRChatでアバターの衣装(特にコートやマント、スカートなど)の裏地が透けてしまう透明になってしまうという問題に遭遇したら、まずはUnityエディタ拡張ツール「MeshFlipper」の利用を検討してみてください。

簡単な手順でメッシュを両面化でき、多くの場合、これだけで裏地が正常に描画されるようになります。

MeshFlipperは、開発者のfum1さんがBoothで無料配布してくれています。同じ悩みを持つVRChatユーザーやアバター改変を行う方は、ぜひ導入して試してみることをお勧めします!

【無料】メッシュの裏面を生成するツール / Mesh Flipper (BOOTH)

【VRChat】初めてのアバター購入&改変!マヌカちゃんで実践したモデル・服・髪の導入手順と注意点

VRChat内で改変したマヌカアバター

VRChatに興味があるけど、「アバターってどうやって用意するの?」「改変って難しそう…」と感じている方も多いのではないでしょうか。実は最近、VRChatのアバター導入や改変プロセスは、以前に比べてかなり分かりやすく、始めやすくなっています。

この記事では、VRChat初心者だった筆者が、人気アバター「マヌカ」ちゃんをBoothで購入し、初めてのアバター改変(着せ替え、テクスチャの色や瞳の変更、髪型変更など)に挑戦した際の記録をまとめました。

特に、公式ツール「VCC (VRChat Creator Companion)」のおかげで、Unityを使ったアバターのアップロード作業が驚くほど簡単になっています。この記事が、これからVRChatでアバターを使ってみたい、アバター改変を始めてみたいという方の参考になれば幸いです。

(筆者は3Dモデル制作の学習の一環としてVRChatアバター改変を始めました。学習ステップは以下の通り考えています)

  1. 既存販売アバターの基本的な改変(着せ替え、色変更、簡単なギミック等) ※本記事の内容
  2. VRoid Studioで作成したモデルをVRChatへ導入(テクスチャ作成等の練習)
  3. Blender等によるフルスクラッチモデル制作(最終目標)

今回は、ステップ1の体験談と手順、つまずいた点などを詳しくご紹介します。


目次

  1. ベースモデル「マヌカ」購入と導入(VCCが超便利!)
  2. モデルの改変:服装の着せ替え(対応衣装と注意点)
  3. モデルの改変:瞳と服の色の変更(テクスチャ編集とシェイプキー)
  4. モデルの改変:髪型の変更(対応髪型とエラー対処)
  5. まとめ:初めてのアバター改変は学びが多くて楽しい!
  6. おまけ:初めての自作ワールド挑戦と失敗

ベースモデル「マヌカ」購入と導入(VCCが超便利!)

購入したマヌカモデルをUnityに導入した様子

今回、初めてのアバター改変のベースとして選んだのは、Studio DINGOさんが制作・販売されている大人気3Dモデル「マヌカ」ちゃんです。

オリジナル3Dモデル「マヌカ」ver1.02 – JINGO CHANNEL (Booth)

ちょうどアバターを探していた時期に、作者様がX(旧Twitter)でブラックフライデーセール(50%OFF!)を実施されていたのが購入の決め手でした。さすが人気モデル、クオリティが高くて可愛いです!

【Tips】Boothでのセール情報: VRChatアバターや衣装が多く販売されているBoothでは、クリエイターさんが個別にセールを行うことがあります。気になるモデルを見つけたら、作者さんのXアカウントなどをフォローしておくと、お得な情報を見逃さずに済むかもしれません。

アバターの導入手順(UnityへのインポートとVRChatへのアップロード)については、「メタカル最前線」さんの以下の記事が非常に分かりやすかったです。画像付きで丁寧に解説されているので、初心者の方はまずこちらを読むのがおすすめです。

【徹底解説】VRChatのアバターアップロード・導入方法。困ったときのトラブルシューティング付き | メタカル最前線

VCC (VRChat Creator Companion) がとにかく便利!

VRChat Creator Companion (VCC) のメニュー画面

今回のアバター導入で特に感動したのが、VRChat公式ツール「VCC (VRChat Creator Companion)」の存在です。以前(2018年頃)はUnityのセットアップやVRChat用コンポーネントの導入がもっと複雑だった記憶がありますが、VCCを使えば驚くほど簡単でした。

VCC上で作りたいもの(アバターかワールドか)を選んでプロジェクトを新規作成するだけで、必要なものが揃ったUnityプロジェクトが自動でセットアップされます。Unity Hubから手動で設定する手間が省け、非常にストレスフリーです。プロジェクト管理画面も見やすく、初心者にとって大きな助けになるツールだと感じました。

VCCでのプロジェクト管理画面


モデルの改変:服装の着せ替え(対応衣装と注意点)

購入した衣装をマヌカちゃんに着せた様子

アバターの導入ができたら、次はいよいよ改変の第一歩、服装の着せ替えです。通常、別売りの衣装アセットはアバターの体型に合わせてUnity上で微調整が必要ですが、「マヌカ」ちゃんのような人気アバターの場合、多くのクリエイターさんが「マヌカ対応」として、マヌカちゃんに最適化された衣装をBoothで販売してくれています。これは初心者にとって非常にありがたい点です。

今回は、デフォルトの元気な雰囲気から、少し落ち着いたミステリアスな雰囲気に変えたかったので、オーバーサイズのテックウェアを探していました。そこで見つけたのが、hajimata雑貨店さんの「マヌカ対応衣装【Tech Wear】」です。

マヌカ対応衣装【Tech Wear】 – hajimata (Booth)

探していた日にちょうど発売されたという偶然もあり、即購入。デザインもクオリティも素晴らしい衣装です!

Unity上でマヌカちゃんにTech Wearを着せている様子

「マヌカ対応」衣装なので、導入は非常に簡単。基本的には、購入した衣装のPrefab(プレハブ:設定済みの部品セット)を、UnityのHierarchyウィンドウにあるマヌカちゃんアバターのオブジェクトに入れるだけでOKです。(元の服や不要なパーツは非表示にします。今回はケモミミも非表示にしました)

衣装の着せ替え方法についても、先ほど紹介した「メタカル最前線」さんの記事が大変参考になりました。

【2024年最新版】 VRChat初心者必見!BOOTHで買った衣装をUnityで簡単に改変(カスタマイズ)する方法を解説 | メタカル最前線

【つまずきポイント】衣装小物の追従設定ミス

Tech Wearに付属していた防弾メガネ(ゴーグル)の配置で少しミスをしました。

最初、衣装本体と同じ階層にメガネのPrefabを配置してしまったため、メガネが体の動きには追従するものの、頭の動きには追従せず、結果的に頭の中に埋まってしまいました。

メガネが頭に埋まってしまう失敗例

【解決策】 メガネのような頭部に追従させたい小物は、アバターの骨格構造(Armature)の中にある「Head」(頭ボーン)の子オブジェクトとして配置する必要があります。具体的には、Armature/Hips/Spine/Chest/Neck/Head の下にメガネのPrefabを移動させます。これで頭の動きに合わせてメガネも動くようになります。

正しいメガネの配置場所(Headボーンの下)

アバターの親子関係(ヒエラルキー構造)を理解することが、小物を正しく配置する鍵になります。


モデルの改変:瞳と服の色の変更(テクスチャ編集とシェイプキー)

服装の次は、アバターの印象を大きく左右する瞳と服の色を変更してみました。

瞳の改変には、Boothで販売されている瞳テクスチャを購入して差し替えるのが最も簡単な方法です。しかし今回は、今後の3Dモデル制作の練習も兼ねて、マヌカちゃんの元の顔テクスチャファイルに直接加筆修正する方法を試しました。

【手順】

  1. Unityプロジェクト内にあるマヌカちゃんの顔テクスチャファイル(.pngや.psdなど)を見つけ、作業用フォルダにコピーする。
  2. PhotoshopやCLIP STUDIO PAINTなどの画像編集ソフトで、コピーしたテクスチャファイルを開き、瞳の部分を描き変える。(今回は瞳孔の形を変え、色を緑色に変更)
  3. 編集したテクスチャをPNG形式で出力する。
  4. 出力したPNGファイルを、Unityプロジェクト内の元のテクスチャファイルと同じフォルダに、同じファイル名で上書き保存する。

ファイルを上書きすると、Unityが自動的に変更を検知し、アバターの見た目に反映してくれます。非常に便利です。

編集前後の瞳テクスチャ比較

【つまずきポイント】消したはずのハイライトが表示される? → シェイプキーの罠

瞳テクスチャを更新した際、「あれ?テクスチャ編集で消したはずの瞳のハイライトやクローバー柄が表示されている…?」という現象に遭遇しました。

【原因と解決策】 これは、テクスチャではなく「シェイプキー」で制御されている要素でした。シェイプキーとは、アバターの特定の部位の形状をスライダーで変化させられる機能のことで、表情の変化(目パチ、口パク)や、こうした細かい装飾の表示/非表示に使われることがあります。

UnityのInspectorウィンドウで、アバターの顔や体のメッシュ(Skinned Mesh Renderer)を選択し、「BlendShapes」(シェイプキーのこと)の項目を確認します。そこにハイライトや柄に対応する名前のスライダーがあれば、その値を調整することで表示を消すことができました。(つまり、テクスチャから消す必要はなかった…!)

UnityのInspectorでシェイプキー(BlendShapes)を調整する様子

ついでに、落ち着いた雰囲気にするために瞼を少し下げるシェイプキーも調整。シェイプキーはアバターの個性を出す上で非常に強力な機能ですね。

服の色の変更については、瞳の色に合わせて、元の黒色ベースの服テクスチャに紺色のレイヤーを重ねて色調を変更したものを、同様に上書きする方法で対応しました。もっと凝るなら、模様を描き足したりするのも面白そうです。

瞳と服の色を改変した後のマヌカちゃん

これで、だいぶ目標としていた「落ち着いてミステリアス」なイメージに近づいてきました。


モデルの改変:髪型の変更(対応髪型とエラー対処)

新しい髪型に変更したマヌカちゃん

仕上げに髪型も変更します。ここでも「マヌカ対応」の髪型アセットがBoothに豊富にあり、イメージに合うものをすぐに見つけることができました。人気アバターならではの利点ですね。

今回は、かやすとあさんの「みみだしボブ」を購入しました。

みみだしボブ【Manuka Hairstyle】 – かやすとあ (Booth)

マヌカちゃんデフォルトのお団子ヘアも可愛いですが、今回のコンセプトにはボブの落ち着いたシルエットが合うと考えました。(付属のリボンはアクセントとして残し、サイズを最大に変更しました)

髪型とリボンを変更した完成形のマヌカちゃん

【つまずきポイント】髪型セットアップ時のエラー

衣装と同様に、購入した髪型のPrefabをアバターのオブジェクトに入れてセットアップしようとした際に、エラーが発生することがありました。(特にModular Avatarなどのツールを使っている場合)

髪型セットアップ時のエラーメッセージ例

【解決策】 このような場合、髪型オブジェクトに「MA Bone Proxy」(Modular Avatarに含まれるコンポーネント)を追加し、そのコンポーネントの「Bone Reference」にアバターの「Head」ボーンを指定することで解決できる場合があります。これにより、髪が頭に正しく追従するようになります。(この設定を行えば、再度セットアップツールを適用する必要はありません)

MA Bone Proxyコンポーネントの設定例

アセットによっては導入方法が異なる場合があるので、付属のReadmeなどをよく確認することが大切です。


まとめ:初めてのアバター改変は学びが多くて楽しい!

改変したアバターの集合写真

今回は「はじめてのVRChatモデル導入と改変」として、人気アバター「マヌカ」ちゃんをベースに、衣装や髪型の購入・導入、瞳や服のテクスチャ編集・色変更に挑戦しました。

VRChat公式ツール「VCC」の登場や、Boothでの豊富な対応アセット、そして多くの先人たちが残してくれた分かりやすい解説記事のおかげで、初心者でも比較的スムーズに、そして楽しくアバター改変を進めることができました。関係者の皆様に感謝です。

目標としていた「落ち着いてミステリアス」な雰囲気のマヌカちゃんも、なんとか形になったのではないかと思います。

最終目標であるBlenderでのフルスクラッチモデル制作への道はまだ遠いですが、今回のような改変作業を通して、テクスチャ編集やUnityの操作、アバターの構造(Armatureやシェイプキー)についての理解を少しずつ深めることができました。今後もVRoidモデルの導入などを試しつつ、学習を続けていけば、いつか目標に到達できるかもしれない、と感じています。

何よりも、自分の手でアバターが変化していく過程は非常に面白かったです。この記事が、これからVRChatアバターの世界に足を踏み入れようとしている方、初めてのアバター改変に挑戦しようとしている方の、何かしらの参考になれば幸いです。次回は「ギミック組み込み」など、もう少し複雑な改変にも挑戦してみたいと思います!


おまけ:初めての自作ワールド挑戦と失敗

自作ワールドでの失敗シーン

アバター改変と並行して、VRChatの「ワールド制作」にも少しだけ挑戦してみました。「ワールド作るならアスレチックでしょ!」と安易に考えた結果、見事に壁にぶつかりました。

特に難しかったのが「移動する床にプレイヤーを乗せる」という処理です。通常のゲーム開発の感覚で動く床を配置しても、VRChatではプレイヤーが床の動きに追従せず、そのまま下に落ちてしまいます。これは、VRChatがオンラインゲームであり、複数プレイヤーの位置情報を常に同期させる必要があるため、単純な物理演算だけではうまくいかないようです。

椅子に座らせるなどのギミックを使えば回避できるそうですが、移動床を実現するにはかなりテクニカルな実装が必要になるとのこと。まずは基本的なワールド構築から学んでいこうと思います。