VRChat用人型アバターを作ってみた

Blender、Unity共に初めての僕が、人型アバターをBlenderでモデリングし、VRChatにアップロードするまでの手順をまとめました。

この記事のターゲット

  1. オリジナル人型アバターを作りたい
  2. Blenderに触れたことがない
  3. Unityに触れたことがない
  4. 最低限必要な知識がわからない

Blender編

モデリング

Blenderのチュートリアルとして、以下のサイトを参考にしました。
記事だと自分のペースで読み進めることができるため、基本操作を学ぶ上ではおすすめです。

Blender入門 – CGradproject
シンプルな人型モデルを作成するチュートリアルです。
#01~#21を読んだところ、2時間ほどでBlenderの基本操作が身につきました。

かんたんBlender講座
目鼻のあるキャラクターを作成する手順が紹介されています。
ややディテールの凝ったキャラクターを作る際に参考になります。

また、複雑な操作を学ぶ際は動画がわかりやすいです。VRChatユーザーから絶大な支持を得ているBlender講座を紹介します。

ワニでもわかるゼロからのBlender講座
現在(2018/8/23)、イラストから顔の3Dモデルを作成するまでの手順が丁寧に説明されています。

リギング

VRChat上で身振り手振りするためには、体の関節位置を指定する必要があります。
リギングとはリグと呼ばれる骨のようなものをモデルに配置することです。実際、リグはボーンとも呼ばれています。
Blender用に配布されているVRChatアバターのサンプルがあるので、こちらを利用すると確実です。下記リンク先にあるRigging your meshの項目にダウンロードリンクが載っています。

Blender to Unity Vrchat Avatar Creation

サンプルはfbx形式です。Blenderにfbxファイルを読み込む場合は、下の画像のように[ファイル] → [インポート] → [FBX(.fbx)]の項目をクリックします。

リンク先にも書いてあるのですが、[アーマチェア]タブの[リーフボーンを無視]と[ボーン方向の自動整列]にチェックを入れてからサンプルをインポートします。

サンプルデータのBodyオブジェクトを削除し、リグを拡大縮小して自分のアバターであるモデルに合わせれば完成です。
リグもGRSキーで移動、回転、スケールができます。
拡大縮小する際は画面左の[オプション]タブの[xミラー]にチェックを入れると左右対称に編集することができるため便利です。

ちなみに、アバターは背が高すぎても低すぎてもトラブルの元なので、このサンプルの身長を参考に作ると良いと思います。(頭が天井にめり込む、家具やオブジェクトで周りが見えないなど)

また、サンプルを元にすれば問題ないはずですが、リグは親子関係が重要な要素になります。
親子関係はBlenderの画面右上で確認できます。
下の画像のように、胸→首→頭という具合で親子関係が設定されています。
この関係がおかしくなっていると後のUnityでの作業でエラーが生じるため気をつけてください。

モデルとリグを合わせたら、モデルにウェイトをつけます。ウェイトとは、リグの移動にモデルのどの部分をどの程度追従させるかの設定です。
Blenderには自動でウェイトをつけてくれる機能があります。オブジェクトモードでshiftキーを押しながら、モデル → リグの順に右クリックで選択します。モデル、リグ共にオレンジ色にハイライトされていると思いますが、モデル側の方がやや赤い色になっていることを確認してください。確認できたら、ctrl + pを入力後、[自動のウェイトで]をクリックすることでウェイトをつけることができます。

[オブジェクトモード]でリグを選択し、[ポーズモード]に切り替えることで、ウェイトのつき具合を確認することができます。
リグを選択し、rで回転させることができます。リグの回転に応じてモデルも変形していることがわかると思います。

リグの動きとモデルの動きの関係が想定していたものと違っていた場合、ウェイトの設定を手動で編集することで解決できます。下記のサイトを参考にしてください。

Blender入門#35 – ウェイトペイント

テクスチャ作成

モデルに色や模様をつけるためにはテクスチャが必要です。
下記のサイトが大変参考になりました。

かんたんBlender講座 – マテリアル/テクスチャ

fbx出力

VRChatに使えるアバターはfbx形式なので、fbx形式で出力します。

UnityとBlenderでは、前後上下の方向が同じではないため、出力する際に指定します。
もしもUnityに読み込んだ際にモデルが横倒しになってしまう場合は、この部分の設定を変えてください。

Unity編

SDKのダウンロード

まずはVRChatのアカウントを作成します。
VRChatのホームページへ行って画面右上に表示されている[Login]からアカウントを作成します。新規作成する際は[Register]をクリックします。

VRChat

作成したアカウントでログインすると、VRChatのホーム画面になります。
左側の[Download]をクリックし、[Content creation]の[Download SDK]をクリックすると、SDKのダウンロードが始まります。

VRChat – home

Unityのインストール

同様に、[Download SDK]の左側にある[Download Unity]をクリックすると、VRChatの[Setting up the SDK]ページに移動します。一番上の[Requirements]にSDKが対応しているUnityのバージョンとダウンロードリンクが掲載されているので、そこからUnityのインストーラーをダウンロードしてください。

Unity 長期サポート

また、事前にUnity Hubをインストールしておくと、[Setting up the SDK]ページの[click here]をクリックするだけでUnity Hubが起動し、適切なバージョンのUnityのインストールが始まるので楽チンになります。

Unity Hub ダウンロードページ

プロジェクトの作成

Unityを起動するとまずはサインインを促されます。僕は何となくサインインしちゃったのですが、Work offlineでもできるかもしれません。どちらかお好きな方を選んでください。

右上の[New]ボタンをクリックすることで新しいプロジェクトが作れます。
プロジェクト名と保存場所を指定し、[Create project]をクリックします。

SDKのインポート

Unityのエディタが起動したところで[Assets] → [Import package] → [Custom package…]を選択し、ダウンロードしたVRChatのSDKを選択します。

画像右下にある[Import]ボタンを押してインポートの終了です。

モデルの追加

画面下部分にある[Project window]を右クリックし、[Create] → [Folder]をクリックしてください。Avatarなど、適当な名前をつけてフォルダを作成します。

作成したフォルダにBlenderでエクスポートしたfbxファイルとテクスチャをドラッグ&ドロップします。

Humanoid設定

どのリグが手や足なのか対応付けがされていないため、設定を行います。
Materialsとモデルとテクスチャがあることを確認し、モデルをクリックします。(下のスクリーンショットではkuwamaiというファイル名のものです)
すると右側に[Inspector window]が表示されるので、[Rig]タブの[Animation Type]を[Humanoid]にした後、その下の[Apply]、[Configure…]をクリックします。

右側に人型が現れると思うので、リグの対応付けがされていないグレーの丸印にモデルのリグを左側からドラッグ&ドロップしていきます。
人型の左下に、[Head]や[Hand]の項目もあるため、忘れずにチェックしてください。

対応付けが終わったら右下の[Apply] → [Done]で終了です。
また、人型の右上にある[Muscles & Settings]をクリックすると表示されるスライドバーを操作することで、実際にモデルがどのような動きをするか確認することができます。

アバターの設定

モデルを左上の[Hierarchy window]にドラッグ&ドロップします。
右側の[Inspector window]から[Add Component]をクリックし、検索欄にvrc_avと入力すると[VRC_Avatar Descriptor]が出てくると思うので、それを選択します。

[VRC_Avatar Descriptor]ではアバターに関するいくつかの設定を変更することができます。

  • [View Position]で目の位置が設定できます。小さくて灰色のボールが表示されているので、モデルの目の位置とボールの位置が合うように設定しましょう。
  • [Default Animation Set]で性別の設定ができます。女性、男性を選択することで、それぞれそれっぽい動きになります。

アバターのアップロード

[VRChat SDK]タブの[Settings]からVRChatアカウントでログインします。

次に、[VRChat SDK]タブの[Show Build Control Panel]をクリックした後、[Build & Publish]をクリックします。

このとき[VRCCam]から見た画像がアバターのサムネイルになります。
中央の[Game]タブから[Scene]タブに切り替え、[Hierarchy]ウィンドウ内の[VRCCam]を選択します。右側の[Inspector]ウィンドウに表示されている[Position]や[Rotation]等を変更してサムネイルのカメラアングルが変更できます。

説明文を書き、チェック項目にチェックをすると、[Upload]ボタンが押せるようになるので、ボタンをクリックします。
これで作成したアバターがVRChatにUploadされます。

VRChat編

Steamをインストールし、ストアからVRChatをダウンロードしてください。
VRChatを起動、ログインができたら[メニュー]を開き、[Avatar]を選択します。(デスクトップモードで起動している場合、メニューボタンはEscキーです。)

Personal欄に自分がアップロードしたアバターが表示されていると思うので、それを選択し、左下のChangeボタンでアバターが切り替わります。

まとめ

  • Blenderを用いたモデリング、リギングの手順を紹介しました。
  • UnityでVRChatにアバターをアップロードする手順を紹介しました。

参考にしたサイト

更新履歴

2018年8月1日

  • VRChatのホームページデザインの変更に対応しました

2018年12月29日

  • VRChat SDKに対応するUnityのバージョンについて追記しました