【VRChat】2025年版:Blenderで人型アバターを作ってVRChatにアップロードする❶~モデル準備~

blender
記事内に広告が含まれています。

以前のシリーズで、猫キャラクター宗房のアバターを作る記事を書きました。今度は、いよいよ人型アバターを作ってみようということで、今回こつこつ作ってたこのブログのキャラクター、ブレンヌさんのメッシュが大体出来上がってきましたので、アバター制作過程をまとめてみたいと思います。

左図のような人型アバターを作ります。

  • リップシンク、まばたき等のアニメーションがついてます
  • しっぽが揺れます(PhysBoneで揺れをつけます)
  • lilToonシェーダーをつけます。
  • 手、顔のボーンも入れます

PCデスクトップで遊ぶなら、機能的には十分なアバターが作れるように解説していきます。

Blenderでのモデリング・マテリアル・ウェイトペイントについては気を付けるポイントなどは解説しますが、基本、自分でできるよという方向けです。テクスチャのアトラス化、マテリアル削減などは解説しています。

VRChatで動かすためのリグはどうしたらいいのかとか、アバター制作のためのポイントをまとめておきたいと思います。

この記事は、Blenderで人型のアバターを作ってVRChatに持っていく方法を解説した中級者向けの記事です。

難易度 3.5

VRChatやUnityを使ったことがないという方は、以下のシリーズで必要なソフトをインストールしたり、一回シンプルなアバターを作ってみると理解しやすくなると思います。操作方法など詳細に解説しているので、一回このシリーズをやってみてください。

スポンサーリンク

アバター制作で気を付けること

メッシュを1つに統合し、マテリアルを少なくしたもの。評価はGood
メッシュがバラバラでマテリアルが多くなり、評価がPoorになってしまったもの。

VRChatではメッシュやマテリアルを適切につけないとパフォーマンスに影響が出ます。

容量が重いとカクついたり、うまく表示できなかったりします。

左図はアバターをアップロードしたときのVRChatによるアバターのパフォーマンスの評価です。上がGood、下がPoorで低評価です。

(ただ下のPoorな状態でもそんなに操作が悪いなと思うほどカクつくことはなかったです。)

パフォーマンスを下げるメインの要素は以下のものです。

  • ポリゴンが多すぎる
    • Excellent(非常に良い): ポリゴン数7500以下
    • Good:ポリゴン数 10,000以下
    • Medium: ポリゴン数15000以下
    • Poor:ポリゴン数20000以下
  • メッシュが多すぎる / 分割されすぎている
    • メッシュはできるだけ統合する(推奨は1。多くても4個くらいまで)
  • マテリアルの数が多い
    • テクスチャ・マテリアルをまとめてアトラス化する(推奨は4個まで。多くても7個くらい)
  • テクスチャ容量が大きい
    • 解像度は必要十分に抑える(例:2048pxを最大サイズとする。4Kはなるべく使わない)

ただ、これらの推奨値を守っていると、あまりクオリティの高いモデルが出来ません。完璧に守る必要はないので、それぞれの容量が大きくなりすぎないよう意識していきましょう。評価がPoorになっても遊ぶのに支障なく動くことも多いので、最初は作りやすいように作ってみればいいと思います。段々最適化・軽量化ができるようになれば大丈夫です。

スポンサーリンク

モデリングで気を付けるポイント

モデリングで注意することをまとめています。(モデリングやポーズに関しては様々なやり方があり、これが正解だとは言えないかもしれませんが、一番基礎的で初心者がやりやすい方法を解説していると思ってください。)

ポーズの取り方

初心者はTポーズで作ってください。

姿勢はまっすぐに近いほどバグが出にくい

最初に作るTポーズは基準の位置となります。リグはなるべく真っすぐに作る必要があるので、リグとモデルのズレが大きくなると、フルトラなどでアバターを動かしたときに思わぬ姿勢になったり、動きがおかしくなってしまうことがあります。リグを真っすぐ作る必要があるので、なるべくそこに合わせてモデルの姿勢もまっすぐにしておきましょう。

もちろん、姿勢が悪いキャラが好きだ、とか、そういう特徴を持ったキャラを作りたいという拘りがある方もいると思いますが、そういう場合は後で待機アニメーションを作ったり、調整することもできます。

トラッキングを使わずPCデスクトップ専用で、自作の待機ポーズしか使わないのであれば、基準ポーズを猫背や内股にしても遊ぶことは可能です。ただし、その場合でもリグ自体は真っすぐ作りますし、他のアニメーションを流したときに不自然な動きになることがあります。

リグはまっすぐ伸ばす。それに合わせて姿勢や腕、足もまっすぐ伸ばそう
  • 身長は実際の人間の身長に近いものにしましょう。VRChatの世界では建物が人間の身長基準になっています。もちろん少し小さめや身長がかなり高めなキャラも作れますが、あまりに巨大すぎるとダメです。
  • モディファイア適用…モデルをUnityにインポートするときは全てのモディファイアを適用しておく必要があります。
  • トランスフォーム適用しておいてください。

身長に関しては以前の猫アバター制作の記事で詳しく書いています。この記事の初めに紹介していますので、わからないという方は一度そちらからやってみることをオススメします。

スポンサーリンク

位置の調整

作業しやすいように、赤白の輪っかの3Dカーソルがワールドの中心にあることを確かめる、もしくはワールド中心に移動してから作業を行ってください。

※足を少し開いてますが、本当は真っすぐな方がいいらしいです。もう自分はこれが基準でいいのでそのままいきます。

モデルの位置

左図で、赤白輪っかがあるところがワールド中心です。この位置を基準にして、モデルの立ち位置を調整します。リグの位置を基準として、そこにモデルを合わせていくとやりやすいです。

  • 正面から見て、ワールド中心が真ん中に来るように
  • 側面から見て、ワールド中心が身体部分の中心くらいにくるように(この中心位置からボーンを垂直につなげる予定です)
  • 高さは、ワールド中心が地面の高さとなるので、そこに足裏がつくように

原点の調整

原点をワールド中心へ

Unityでトランスフォームしやすかったり、バグが起こりにくくなるらしいので、各パーツのオブジェクトの原点をワールド中心に揃えます。(できればメッシュは1つに統合した方がいいですが、バラバラにする場合)

オブジェクトモードで、各オブジェクトを選択して、Object > Set Origin > Origin to 3DCursorで原点をワールド中心に移動できます。

スポンサーリンク

ポリゴン軽量化

ポリゴン10000以下を目指しましたが、無理でした。10400くらいでやってみたいと思います

ポリゴン軽量化のポイント

ポリゴン軽量化っていろいろノウハウがあると思うんですが、複雑なことはあまりしておらず、今回はシンプルにポリゴンを削るということをがんばっていました。

  • 隠れているところはどんどん削る…服の下のメッシュ、髪で隠れた頭部のメッシュなども削りまくると軽くなります。(服を着せ替えしたい場合など除く)
  • 髪の毛、細かい飾りの模様などはノーマルをベイク
スポンサーリンク

マテリアル・テクスチャのポイント

今回はBlenderでマテリアルを作成して、VRChatにもっていった先でlilToonシェーダーへ変換する予定です。(lilToonシェーダー…軽くて多機能な人気のシェーダーです)

マテリアルをつけるときに気を付けること

Blenderでは様々なマテリアルを自由につけることができますが、Unityのシェーダーでは表現できないものがあったり、逆にlilToonだからこそできる表現もあります。

Unityに持って行っても安定して表現ができるようにするには、とにかくテクスチャに焼くことが一番です。凹凸があればノーマルマップを焼いて、ラフネスにもこだわりたいならラフネス用のテクスチャを焼いていく必要があります。

Principled BSDFなどで直接数値を入力するのではなく、なるべくテクスチャを接続して表現するようにマテリアルを設定しておきましょう。

発光メタリックは数値を調整して作っています。lilToonシェーダーで表現できます。

サブサーフェス・スキャタリングなどは表現できません。が、lilToonシェーダーの影色を工夫することで少し似たような表現ができます。

宝石・ガラスのような疑似表現もできるようですが、今回は触れません。ガラスのマテリアルもlilToonにあるみたいなので使いたい方は調べて使ってみてください。自分は今回軽量化のために眼球のガラスっぽい部分は透過して、最終的にはそもそもメッシュを削除しました。

マテリアルを、すべてテクスチャに焼いて、それを接続することで表現しているノードの組み方の例です。
  • カラー用テクスチャを作成
    • カラーを直接指定すると、VRChatのフォールバックシェーダーで真っ白になってしまいます。今回自分はテストとしてカラーを直接指定するマテリアルも作ってみましたが、全てのマテリアルのカラーはカラーテクスチャとしてベイクすることが推奨されます。
  • マテリアル・テクスチャのアトラス化
    • なるべくマテリアル・テクスチャ枚数を少なくするために行います。よくわからないって方はなるべくマテリアルをシンプルにしてまとめればアップロードできるので必ずしなくてはいけないというわけでもないです。(UnityのTexTransToolなどでもアトラス化できるらしいけど今回は触れません)
  • 透過部分があるマテリアルにはアルファマスクを作る
    • まつげなど、透明部分があるマテリアルは、白黒のアルファマスク用のテクスチャも作ります。不透明部分はカラーがついてて、透過する部分はアルファ0のテクスチャがあればそれがベストですが、Unityで作成できるので用意できなくても大丈夫です。

マテリアル・テクスチャのアトラス化については以下の記事で解説しています。↓

スポンサーリンク

リギング

以前、猫キャラクターのシンプルなアバターを作ったときに、VRChatで動く、ほぼ最低限のリグをつけました。今回は人型ということで、ある程度、フルトラ・目・手のトラッキングに対応できるように、手や目などにもリグをつけます。(※フルトラ設定などは解説しません)

さらに、しっぽがあるので、揺れものとして、揺らすためのリグも作っていきたいと思います。

必須ボーンとオプションボーン

Unityのボーン確認画面より

VRChatでアバターとして使用するには、UnityでHumanoidに変換可能なボーン構造に合わせる必要があります。

おおよその位置や名前は各図を見てその規格に合わせます。

また、実線の〇がついてるのが必須のボーンで、点線の〇がついてるのが、なくてもいいオプションボーンです。

Unityのボーン確認画面より
Unityのボーン確認画面より

今回はいろいろなトラッキングやジェスチャーに対応できるよう、以下のオプションボーンをつけます。

  • Toeボーン(足先が曲がる表現)
  • 手(ハンドトラッキングできるように)
  • 目(アイトラッキング、視線が動くアニメーションなど)

Joe(あご)のボーンはつけません。しゃべりはシェイプキーでリップシンクする予定です。

また、動きを調整するための補助ボーンを自由につけることができます。揺れもののためのボーンも用意しておきます。(必須orオプション以外のボーンはUnityでは無視されるだけですが、ペアレントでつけておけば動きに追従します)

リグを付ける前に、メッシュについてる全てのモディファイアは適用しておいてください。

ボーンを正しい位置に配置

Armatureの中からSingle Boneを出します。

オブジェクトデータプロパティ > Viewport DisplayIn Front にチェックを入れることでボーンを見やすくします。

スポンサーリンク

Bodyのリグ

中心と左半分だけ作って後で対称化します。編集モードで作業してください。最初に作ったシングルボーンをHipsボーンにするので、おへそと股の間くらいにボーンのHeadが来るような感じで上に移動させます。そこからEキーでボーンを生やしていき、下図のように配置してみてください。名前もつけておいてください(LとかRとかつけなくてもいいです。)

正面から見たところ

パーツの位置の目安は、上の図と、必須ボーンなどの項目で見せた図の丸いアイコンが、それぞれのボーンのヘッド(太い方の丸い接続部)が来るようにすると良いです。とにかく骨格を考えて、そこを基点に曲げたい関節部分にボーンのヘッドを合わせてください。

Head~HipsボーンはX軸を0に合わせ、UpperLeg~LowerLegまでもX軸をそろえて曲げないようにしてください。

側面から見たところ

HeadからToesまでしか表示しておりません。腕はこのこのY座標の位置に揃える必要はありません。

HeadからLowerLegまではY軸を揃えて、垂直に揃うようにしてください。

原点の位置から垂直に伸びているような感じ

Footは足首から足指の付け根あたり。Toesは足指の付け根から真っすぐY軸方向に前に伸ばしておく(足の向きのトラッキングに影響します。)

:上から見たところ(腕部分のみ表示)

Y軸、Z軸を揃えてまっすぐ配置します。(Y軸を0にする必要はありません。)

自分はかなり腕を曲げてモデルを作ってしまったな…と思っているので、もうちょっとひじを曲げずに作ると揃えやすいですね

※Shoulder,Neckの親はChestボーン、UpperLegの親はHipsボーンになるようにしてください。

ひじとひざを「く」の字に曲げる

ひじとひざ部分のボーンの接続部を移動させて、少し曲げておきます。

UnityのHumanoidに曲げる方向をわかりやすくするためにやっています。

手のボーン

Handボーンが親になるように、それぞれの指まで、左図のようにボーンを生やします

関節を細分化してボーンを分割したいので、指についてるボーンを選択して右クリック、Subdivideで分割します。

何分割するか設定できるので、2分割します。

すべての指で2分割し、ゆびに沿ってボーンを配置します。(曲げてもいいです)それぞれのボーンに名前も付けてください。関節部分にボーンのヘッドが来るようにしてください。

スポンサーリンク

顔のボーン

目のボーンを配置していきます。目はボーンの回転に追従するように動きますので、目の回転中心位置にボーンを配置します。

例えば丸い眼球がある場合はわかりやすくて、眼球の中心にボーンのヘッドが来るようにすればいいです。

2D表現などしていて目が平面の場合は、目の奥に回転中心を置きます。

眼球の中心にボーンを配置する

Headボーンから目の中心部へEでボーンを生やします。

眼球の中心部の辺を一周選択して、Shift + Sでメニューを開き、Cursor to Selectedで眼球の中心に3Dカーソルを持ってきます。

3Dカーソルが眼球の中心にきたところ

今度はさきほど作ったボーンのTailを選択してSelection to Cursorで3Dカーソルの位置へ移動させます。

眼球の中心にTailが移動できたら、そこから真上にボーンを生やします。

つなぎのボーンを削除します。

この目のボーンのTransformを見ると、Roll(ロール角度)にいらない数値が入っているので、これを0にしておきます。

ロールを0にすると、ボーンの軸が手前がZ、横方向がXになります。

ボーンの軸は、オブジェクトデータプロパティのViewport Display > Axesにチェックを入れて表示します。

ボーンの名前はLeftEyeとつけます。

ボーンの対称化

中心部にあるボーンは除き、左右どちらもつける必要のあるボーンを全部選択して、右クリックしてメニューを出します。

Names > Auto-Name Left/Right

を押すと自動でShoulder.LのようにL,Rの表記を付け足してくれます。

名前が付けられたら、対称化したいボーンを選択したまま、また右クリック、Symmetrizeを押します。

すると片方にしかないボーンを両側に生成してくれます。

L,Rも自動でついています。

正面からみたところ

目のボーンの名前は

LeftEye
RightEye

に変更してください。

スポンサーリンク

揺れもののボーンをつける

しっぽ

例えばしっぽなら、ある程度基準にしたいしっぽのポーズを作っておきます。

しっぽなのでHipsボーンを親にして、付け根から順にボーンを生やしていきます。

名前は必ずこうしろという名前はないと思いますが、数字をつけてわかりやすいようにしておきましょう。

メッシュで曲がる辺が入っているところにボーンのヘッドが入るように配置していきます。(あまりボーンが多すぎると処理の負荷がかかります。今回しっぽしかないので多めにつけてますが、3~6本あたりがいいかも)

※髪の毛、猫耳を揺らしたい場合はHeadボーンを親にしてください。

Blenderではリグやウェイトをつけるだけです。UnityでPhysBoneという機能をつけて揺らします。

リギング完成

リギングは以下のような感じで完成しました。

スポンサーリンク

ウェイトペイント

特に、アバター作成だからって普段のキャラクター作りと違うところってないです。普通にウェイトペイントして、いい感じに関節が曲がればOKです。

ウェイトペイントを完璧にしようとするとかなり難易度が上がるので、とりあえず1回作ってみるということを目標にして、自動ウェイトで付けてそれでOKにしてしまっても良いと思います。

自動ウェイト

全てのオブジェクトを選択して、最後にリグを選択。Ctrl + Pでメニューが出てくるので、
With Automatic Weights
をクリックして自動でウェイトペイントをある程度つけてくれる機能があります。

自動ウェイトでウェイトをつけると、いらないボーンのウェイトが結構ついて修正がめんどくさくなります。自分でつけたい方は
With Empty Group
で空の状態から始めることができます。

  • 動かす眼球や瞳は目のボーンのウェイトだけつけるようにしてください。逆に他のオブジェクトに目のボーンのウェイトは乗せないようにしてください。
  • 明らかにウェイトが乗ってなくて置いてけぼりのパーツが出ないようにしてください。

便利機能

ウェイトペイントするときの便利機能やよく使う機能を紹介します。

対称化と自動正規化

画面右上に

  • X軸で対称化
    • 左右対称のオブジェクトのとき、片方のウェイトを塗るともう一方も塗ってくれる
  • Auto Normalize(自動正規化)
    • ウェイトを塗ると自動で合計ウェイトを1にしてくれる。(余計なボーンが入ってるとうまくいかない)

頂点のウェイト情報を見る

ウェイトペイントの途中で、ある頂点にどのボーンのウェイトが乗っているか見ることができますが。

上部メニューで頂点選択を選び、左のメニューでSelect Boxにして、調べたい頂点を選択します。

すると右側に、その頂点についてるウェイトやボーンの一覧が表示されます。

明らかにいらないTailなどのボーンがついてしまっていて、このままだと自動正規化してもめちゃくちゃになってしまうので、いらないボーンを一覧リストの右側の×ボタンで消します。必要なボーンだけになったら、Normalizeを押すと、合計が1になるようにウェイトを振り分けてくれます。

スポンサーリンク

シェイプキーアニメーション

次はシェイプキーアニメーションをつけていきます。PCデスクトップで遊ぶ場合でも必要最低限のアニメーションがついてると、アバターが活き活きしてきます。以下の2種類のアニメを作ってUnityに持って行って設定したいと思います。

  • リップシンクで発音に合わせて口元が動く、喋ってるようなアニメーション
  • まばたきアニメーション

❶リップシンク

やり方は前のシリーズの猫アバターを作ったときと同じです。人間なので口元の動きが複雑ですが

オブジェクトモードで顔部分のメッシュを選択し、オブジェクトデータプロパティのShape Keysというところの右側にあるのアイコンをクリックします。

Basisというメニューが増えます。

もう一回のアイコンをクリックするとKeyというメニューが増えますので、その上で左クリックして名前をsound_aに変更しましょう。(あ、と発音したときに動くアニメーションをつけるということです。)

次は、編集モードにして、口元を「あ」の形にします。

今回自分は歯も作ったので、歯も上下に開いています。

形を変形し終わったらオブジェクトモードにします。これでsound_aのシェイプキーができました。

横からも見て形を整えます。

sound_aの下のValueという値を0~1に動かすと、さきほど作った変形アニメーションが実行されます。

動かしてみた場合は、必ず0に戻しておいてください。

自分がバーを動かしているので速度やタイミングがおかしいですが、こんな感じのアニメが設定できました。

同様に、オブジェクトモードで+アイコンをクリックして今度はsound_iのキーを作ります。

編集モードで口を少し横に広げて「い」の形を作り、オブジェクトモードに戻ります。

2D表現や、みなさんが思うかわいい「い」の形は違うかもしれませんが…好きに作ってみてください。

これを繰り返し、a,i,u,e,oの五種類のシェイプキーを作ってみてください。口だけじゃなくて、耳や、動かしたいところを動かしてみて構いません。このキャラは「お」のときにかならず鼻が動くんだ!みたいな謎キャラとか作れます。ただ、トラッキングとかを後でやる予定なら無難に口元だけにしといた方がいいかもしれません。(頂点を消したり増やしたりはできません。移動、拡縮、回転などなら良いです。)

❷まばたき

まばたきのシェイプキーですが、1つのメッシュにシェイプキーを付けるのが簡単なので、まつげと顔のメッシュを統合しました。(まつ毛と顔メッシュが統合されてる方はシェイプキー作成まで飛ばしてください。)

UV統合

UVが別々になってしまっているので、まつ毛用UVをアトラス用UVにコピーしてUVも統合しました。

まつげ部分の頂点を選択し、まつ毛用のUV画面で UV > Copy UVs でUVをコピー。

アトラスUVにいき、UV > Paste UVs でそのままの位置にコピーします。

マテリアルは別のものがついているので、UVは重なっても構わないと現段階で判断しました。

ウェイトペイント、口元につけたシェイプキーは大丈夫でした。

シェイプキー作成

メッシュを統合したところで、まばたきアニメを作ります。リップシンクのときと同様に頭部のメッシュを選択して、Shape Keysのリストに+アイコンでblinkを追加しましょう。

まつげが見えにくいですが、とりあえずこんな感じでできました。

とりあえずまばたきアニメーションもできたので、モデルの書き出しをしていきます。

スポンサーリンク

モデルの書き出し

全ての準備ができたらモデルを書き出ししていきます。

アバターデータをUnityに持っていく場合は
File > Export > FBX
FBX形式でエクスポートします。

FBXエクスポート設定

FBXエクスポートのウィンドウで必要な設定をしていきます。

Object Types
Shiftを押しながら、Camera, Lampを押して除外します。カメラやライトをエクスポートしないための設定です。

Transform > Apply Scalings
FBX Allに変更します

Armature
Add Leaf Bonesのチェックを外す。余計な末端のボーンがつかないようにします。

あとは英字でアバターの名前をつけて、Export FBXを押してエクスポートします。

※画像は以前munehusaというアバターを作ったときのものです。

フォルダにまとめる

アバターのフォルダを作って、そこにテクスチャ画像と、さっきエクスポートしたFBXファイルをまとめましょう。

Blenneアバターなので「blenne」というフォルダを作って

  • アトラス化したテクスチャ3種類
  • まつげ用のアルファマスク用のテクスチャ
  • マットキャップ用マスクテクスチャ
  • FBXファイル

を入れました。

マットキャップ用のマスクは、テクスチャをアトラス化するときに作成しました。マットキャップ(オプションでつける質感表現)がいらないよって方は別になくてもいいです。

これでUnityに持っていくFBXフォルダができました。

スポンサーリンク

続き

次の記事↓
【VRChat】2025年版:Blenderで人型アバターを作ってVRChatにアップロードする❷~lilToonシェーダーでマテリアル作成~

【VRChat】2025年版:Blenderで人型アバターを作ってVRChatにアップロードする❸~リグ・揺れもの設定~

スポンサーリンク

参考記事

リギングについてMiyokoさんの記事を参考にさせていただきました。

コメント