CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【VRChat】アバターのボーンのセッティングについて解説

こちらの記事では、VRChatで利用されているボーンの仕組みなどについて解説しています。
主にVRChat、もといUnityで扱えるボーン自体の種類について解説していきます。
VRChatで利用されているボーン構造の種類
VRChatで利用できるボーンの種類には大きく分けて2種類存在します。
利用できないボーンの構造も存在しますが、今回はそちらの説明は省略させていただきます。
Humanoid
人型のボーンは、全てHumanoidで扱われています。
人型でこの設定を使わない事は殆どありません。

このようにVRChat内で出てくる人型のボーンは全てHumanoidです。
また、このHumanoidは、VRChat内で手や、足、頭などのトラッキングを行うことが出来ます。
Humanoidは、人間そっくりの、等といった意味があります。

凝っているアバターの中には、こちらのアバターのように明らかに人型でなくともHumanoidが使われている場合もあります。
Generic
人型でない物をセッティングする際はこちらのGenericが利用されることが多いです。

例えばこのようなモデルです。
こちらはGenericのモデルが利用されています。
Genericは、般的な,包括的な、といった意味があります。
それぞれの特徴
特に理由なく分かれている訳ではなく、1つ1つにしっかりとした特徴があります。
その為、モデルの構造に応じてHumanoidかGenericかどちらかを正しく選択する必要があります。
Humanoidの場合
Humanoidの場合、人型の形をしているボーンを動かすのに長けています。
また、Humanoid式で作られたアニメーションは、全てのHumanoid式のボーンで流用することが出来ます。

こういった動きもHumanoidでできているのでアニメーションを抜き取れば他のHumanoidモデルにすぐ適用させることが出来ます。
アニメーションのベースとなったHumanoidから頭身がかけ離れている等、大きい違いがあるとアニメーションの一部に破綻が発生する場合があります。
Genericの場合
Genericの場合は、人型以外のモデルを動かしたいときに使う形になります。
逆に人型のモデルを動かすのには向いていません、その場合はHumanoidの方を利用する方が無難です。

Genericモデルのアニメーションの一例です。
また、ボーン構造の問題上、Humanoidのアニメーションを流用したりすることは出来なくなります。
理由としては、ボーンの構造がHumanoidと共通している部分が一切存在しない為です。
モデルをセットアップする時どちらを利用するべきか
モデルをセットアップする際は、モデル自体の形によってHumanoid か Genericを使うべきか変わります。
大よその決まる条件は、以下の通りです。
- 人型の形をしている場合はHumanoid
- それ以外の物 (動物や無機質のオブジェクトなど) はGeneric

左がHumanoid、右がGenericです。
かなり大雑把ですが、大よその条件としてはこのような形になります。
逆にHumanoid向けの形をしているのに、Genericで設定してしまうと、動作に問題が出てしまったり、そもそも動かなくなってしまうこともあります。
正しいタイプを選択することが重要です。
セッティングする
モデルファイル(FBX)から簡単にセッティングする作業を解説します。
今回はハオラン君をベースに作業してみます。

HumanoidかGenericを選択

モデルには必ずボーン構造を選択する項目があります。
アセット一覧からそのモデルを選択することによって、Inspectorの部分にその内容が出現します。

この部分です。
完成しているモデルの場合は既に設定されていることが多いです。
試しに構造を切り替えしてみたり、中身の確認をしたりしてみましょう。
ハオラン君の場合は既にHumanoidとして設定されています。
モデルの設定内容を変更した場合は右下のApplyを選択すると初めて更新が適用されます。

Genericに切り替えるとそちら向けの設定に内容が切り替わります。
Humanoidも同様です。
自動設定が上手く行われているか確認(Humanoidの場合)
こちらはHumanoidを選択した場合です。

Avatar definitionという項目にConfigureという部分が出現します。
ここでHumanoid向けにセットする為に「どのボーンがどの人間の部位に値するか」を設定する必要があります。

クリックすると、このような画面になります。
一見手動で設定しないといけないように見えますが、Humanoidに設定した時点でUnity側で自動的に検出してくれる為、ある程度は設定済み、上手く行けば全て設定されていることが多いです。
緑になっている部分が設定済みです。
ここがしっかりと設定されていればVRChat内で正常に動かすことが出来ます。

もし、赤くなっている、灰色になっている等があれば、手動で設定する必要があります。
Genericの場合
Genericの場合は、種類を切り替えるのみで、特に設定を行う必要はありません。
但し、HierarchyからアバターのInspectorを設定する際に、Humanoidと違う部分があります。
簡単に説明すると、Humanoidに比べて設定出来る項目が少ないため、その分設定の項目も減ってるといった形です。

動画のような感じになります、Humanoidに比べてレイヤーを指定できる部分が減っている感じです。
無くなっている物としては、ジェスチャーレイヤー等です。
指の動きがトラッキング出来ない為、設定項目が無くなっている形となります。
その他特筆事項など
VRChatにおけるボーンについてのちょっとした情報です。
最初から制作する場合は、見ておくべき項目がいくつか存在します。
直接は関係なかったりする部分も存在しますが、知っておけば制作の手助けとなる部分も出てきます。
推奨ボーン数

VRChatにはアバターパフォーマンスランクという物が存在します。
メッシュの数、マテリアルの数などが存在しますが、その中には、ボーンの数による評価も存在します。
こちらから確認することが出来ます。
VRChat公式のページの為、英語となっていますが見るべき場所は1つです。

こちらのBoneと書かれている部分です。
75までに抑えると、Excellentの評価なので、ただ単純に人型のボーンを利用するのみだと、この制限に到達してしまうことはありません。
但し、ボーンが別で組み込まれているオブジェクトをアバターに含ませたり、髪に使われているボーンが多かったりすると、簡単に到達したりします。

一例としてこちらのモデルをお借りし、3Dモデリングソフトにインポートして確認してみました。

クオリティを最大限に出す為に服にボーンがいくつも組み込まれています。
いくつも入っているお陰でモデルはかなりクオリティが高いです。
しかし、このように多くのボーンが埋め込まれていたりするとパフォーマンスランクが下がってしまうことは避けられなくなってしまいます。

BoneはMedium評価、Phys Boneと呼ばれている物でVery Poor、といった感じです。
physicsボーンについて
ボーンの中にはVRChat専用の物として、Physics Boneという物が存在します。
簡単に言うと、「揺らすことの出来るボーン」です。
こちらもアバターパフォーマンスランクから確認することができます。

PhysBones~~~と書かれている部分です。
また、設定方法はこちらで解説されています。

配布されているボーン
Boothで配布されているボーンとしては以下のような物があります。

ボーンを作成するのが面倒な場合はこちらからダウンロードするのも有りです。
但しウェイトの設定などは3Dモデリングソフトを使って行う必要があります。
まとめ
今回はVRChatにおけるボーンの詳細について解説しました。
ボーンの構造については、応用すれば、Generic向けのモデルにHumanoid設定を適用させることもできますが、こちらはかなり上級者向けです。

前述の項目で出てきていたイタチの3Dモデル、こちらは記事内ではGenericとして扱っていましたが、アバターとしてはHumanoidでできています。
マスターするとこのような物を作ることもできるのでしっかりと理解しておきましょう。
お疲れ様でした。