blenderでボーンを組んで人間モデルを作り、unityでhumanoidリグをインポートした備忘録

unity humanoid リグ3Dモデリング

 

バーチャル3Dクリエイター神部まゆみです(*^-^*)

この記事は、blenderでhumanoidリグを組んでunityに持って行って動かしてみた備忘録です。

 

私はVRoid StudioやMake Humanとかのソフトでしかhumanoidモデルを作ったことがなかったので、一から作ってみようと思ってやってみました。

VRoid Studio | VRoid
VRoid Studioは、人型アバター(キャラクター)の3Dモデルを作成できるWindows・Mac用アプリケーションで、どなたでも無償でご利用いただけます。作成した3Dモデルは、VR/ARコンテンツ内でアバターとして利用するなど、商用・非商用を問わず、さまざまな用途に活用できます。
www.makehumancommunity.org

手軽にhumanoidモデル作りたいなら↑こういうソフト使うか、boothで出来合いのアバター買うのが楽でいいかもしれません。

でも自分で一から作ってみると仕組みがわかるし勉強になるので、一から作ってみます。

————-PR———————-

現在、人気アセットが最大95%オフでまとめ買いできる unityツール系アセットメガバンドルセールをやってるみたいです(日本時間2021/11/01 PM15:59まで)

unityツール系アセットメガバンドルセール最大95%オフ

欲しいアセットはこの機会に買っておくと良いかも。

————————————-

  1. 参考にした頭のいい先輩のページ
  2. メッシュがなくても必須ボーンがあってボーン構成が間違ってなければ、humanoidとして認識されるっぽい?
    1. 具体的な手順
  3. unityに持っていった!…humanoidとして認識された!
  4. 適当にメッシュを配置して、自動でウェイト付けする
    1. アーマチュアをクリックして選択、Shift押しながらメッシュを選択して、 オブジェクト ⇒ ペアレント ⇒ 自動のウェイトで をクリック
    2. ポーズモードにして、ボーンを回転させてみてメッシュが追従するかどうかチェック
      1. ボーンを動かしてもメッシュが追従しない場合、アーマチュアとメッシュの親子関係に注意
  5. unityに持って行ってhumanoidリグ設定。ちゃんと動いてアニメーションさせられた!
  6. 失敗例:最初テキトーに作ったら、unityのhumanoidリグ設定でエラーが出た(-_-;)
    1. File ‘1’ has an invalid Avatar Rig Configuration. Missing or invalid transform: Required human bone ‘LeftHand’ not found ってエラーが出た
    2. humanoidがダメでもジェネリックならいける
    3. 単にボーンの名前が間違ってたみたいです(;^_^A
        1. VRoidやMakeHumanもボーン名がだいぶ違うみたいだから、だいたい構造と名前が合ってればhumanoidでいけるっぽい?
  7. 補足:blenderのRegifyアドオンを使えばhumanoidボーンのテンプレを使える
    1. ボーンの大きさを調整する必要がある
    2. 自動でウェイト付けしてunityに持って行ってみる
  8. 続く?

参考にした頭のいい先輩のページ

とても参考になりました。

ありがとうございます(*^-^*)

BlenderからUnityのHumanoid互換でfbxをエクスポートする - Qiita
BlenderでUnity向けにウェイト付きメッシュを作る方法。 Rigify使わない。 Blender2.79 Unity5.6.3p1 Blender2.83でUnity向けヒューマノイドを Weight Paint する ...

メッシュがなくても必須ボーンがあってボーン構成が間違ってなければ、humanoidとして認識されるっぽい?

humanoidとして認識できる最低限の必須ボーンさえ設定してあれば、メッシュがなくてもunityでhumanoidとして認識されるらしいです。

まぁ先輩のページ通り、基本的なボーンだけ設定しておこうかな。

  • Head
  • Neck
  • Chest
  • Spine
  • Hips
  • Shoulder.L
  • Shoulder.R
  • UpperArm.L
  • UpperArm.R
  • LowerArm.L
  • LowerArm.R
  • Hand.L
  • Hand.R
  • UpperLeg.L
  • UpperLeg.R
  • LowerLeg.L
  • LowerLeg.R
  • Foot.L
  • Foot.R

このあたり。

 

UpperChestとかToesとか、手の指のボーンとかはなくても大丈夫っぽい。

このあたりのボーンはだいたいどのモデルでも持ってると思う。

VRoidだとスカートとか髪の毛のボーンとかも設定されてたりするけど、そういうのは基本のボーンを満たしたうえで、必要に応じて追加すればいいかも。

具体的な手順

大きさとかはテキトーです…。

とりあえず構成が合ってれば後で直せるのでざっくりと。

 

1,最初にHipsを作ってテイルを選択し、Spine,Chest,Neck,HeadとEキーで伸ばしていく

blender humanoid リグ

 

2,Chestのテイルを選択して、X軸ミラーをオン。Shift+Eキーで両側にShoulderを伸ばす。そこから左右のUpperArm、LowerArm,Handを伸ばしていく

blender humanoid ボーン

 

3,Hipsのテイルを選択し、Shift+Eキーで左右のUpperLegの伸ばしていく。その後「関係」の接続をオフにして、下に移動させる。UpperLeg,LowerLeg,Footと伸ばしていく。

blender humanoid ボーン

「関係」メニューにある「接続」のチェックを外すと、接続が外れて点線で表示されるようになる。

blender humanoid ボーン

 

ボーンの長さとかは適当に整えれば良し。

blender ボーン humanoid unity

ちょっと足が太すぎるかな?

まぁだいたいで…(;^_^A

unityに持っていった!…humanoidとして認識された!

fbxエクスポートで、メッシュとアーマチュアだけ選択してエクスポートすればOK。メッシュはないからアーマチュアだけでもいいかも。

humanoidのリグ設定はOK。

blender ボーン humanoid unity

でもボーンだけだから何も表示されないですね…。当たり前か。

blender ボーン humanoid unity

veryanimationでアニメーション作って動かしてみようかと思ったけど、メッシュがないとボーンの表示もバグるのか?なんかおかしい(-_-;)

blender ボーン humanoid unity

まぁ一応認識はされたから、メッシュをつけてみます。

適当にメッシュを配置して、自動でウェイト付けする

ボーンに沿って、UV球やら円柱やらで適当にメッシュを配置して見ました。

blender ボーン humanoid unity

バラバラにツギハギしただけなので、Ctrl+Jで結合したほうがいいかも。

アーマチュアをクリックして選択、Shift押しながらメッシュを選択して、 オブジェクト ⇒ ペアレント ⇒ 自動のウェイトで をクリック

ちゃんとメッシュの中にボーンが配置されてれば、自動ウェイトでだいたい行けると思います。

blender ボーン humanoid unity

ポーズモードにして、ボーンを回転させてみてメッシュが追従するかどうかチェック

ボーンを動かせばちゃんとメッシュも一緒に動いてますね(*^-^*)

blender ボーン humanoid unity

ボーンを動かしてもメッシュが追従しない場合、アーマチュアとメッシュの親子関係に注意

ボーンを動かしてもメッシュがついていかない場合、ウェイト付けに失敗している。

アーマチュアをクリックしてからメッシュを選択しないと、メッシュが親になってしまってダメ。

メッシュが親になってると、ポーズモードでボーン動かしてもメッシュが追従しない↓。

アーマチュアを先にクリック⇒Shift押しながらメッシュをクリック⇒自動のウェイトで の順番で、アーマチュアの子にメッシュがくるようにするのが正解。

blender ボーン humanoid unity

 

あとはボーンとメッシュの位置が離れてたり、形状が複雑な場合は自動ウェイトだとダメかも。

その場合は頂点グループの設定とかやって、自分でウェイト塗らないといけないからめんどくさいです。

unityに持って行ってhumanoidリグ設定。ちゃんと動いてアニメーションさせられた!

リグ設定をして、アニメーターコントローラーを作成。適当なアニメーションファイルをveryanimationで作って動かしてみました。

おお……こんな適当なモデルでもちゃんと動くとは…!

blender ボーン humanoid unity

自分が開発したロボットが無事起動したかのような嬉しさ(笑)。

VRoid StudioやMakeHumanなどのソフトでしか作ったことがなかったので、一からhumanoidのモデルを動かせたのはこれが初めてです。

また一つできることが増えたから嬉しい(*^-^*)

 

同じアニメーターコントローラーとアニメーションファイルを指定すれば、他のhumanoid

キャラも同期して動きます(笑)。

unity humanoid リグ

このモデルで作ったhumanoidアニメーションがほかのモデルで動いてるわけだから、ちゃんとhumanoidしてると思う。

 

あとはメッシュを凝ったり、ボーンを細かく作ってウェイト付けしていけばいいのかな。

VRChatのデフォルメされた簡単な形状のキャラくらいなら作れるかもしれない。

うむ、次回やってみよう( *´艸`)

失敗例:最初テキトーに作ったら、unityのhumanoidリグ設定でエラーが出た(-_-;)

うろ覚えで適当にHipsから生やしていって作ったら、エラーでダメだった。

こんな感じの子ね。

blender ボーン humanoid unity

File ‘1’ has an invalid Avatar Rig Configuration. Missing or invalid transform: Required human bone ‘LeftHand’ not found ってエラーが出た

blender ボーン humanoid unity

 

こっちには「Erro(s) found while importing rig in this animation file. Open “Import Messages” foldout below for more details」って書いてある。

blender ボーン humanoid unity

最初何も見ずに適当に作ったから、ボーンの命名規則と構造が間違ってたことが原因かな?

humanoidがダメでもジェネリックならいける

ジェネリックはhumanoid以外のその他みたいなやつだから、ボーンが適当でも受け入れてくれるようです。

blender ボーン humanoid unity

でもジェネリックだと、humanoid用のアニメーションは動かないです。

unity generic リグ

単にボーンの名前が間違ってたみたいです(;^_^A

こんな単純なことが原因だったとは(-_-;)

ボーンの名前がHips.002みたいなデフォルトの名前になっていて、unity側で見つけられなかったことが原因かな。

上半身だけ名前つけてたみたいだけど、下半身がデフォルトのまま(笑)。

blender ボーン humanoid unity

ボーンの名前を先輩のページ通りにやったらちゃんとhumanoidとして認識されました。

BlenderからUnityのHumanoid互換でfbxをエクスポートする - Qiita
BlenderでUnity向けにウェイト付きメッシュを作る方法。 Rigify使わない。 Blender2.79 Unity5.6.3p1 Blender2.83でUnity向けヒューマノイドを Weight Paint する ...
VRoidやMakeHumanもボーン名がだいぶ違うみたいだから、だいたい構造と名前が合ってればhumanoidでいけるっぽい?

ボーン名が指定されてて、完全一致じゃないとunityで認識されない、なんてことはないっぽい?

多分だいたい合ってれば認識してくれるのかな。

 

これがVRoidモデルのボーン。

 

これはMakeHumanで作ったモデルのボーン。

Makehumanの使い方②!キモオタっぽいリアルな3Dモデルを作ってみる
バーチャル3Dクリエイター神部まゆみです(*^-^*) 前回の続きで、MakeHumanをいじっていきます。 前回の記事はこちら。 MakeHumanでキモオタっぽいモデルを作ろうと思っていじってみ...

なんか全然構造が違うけど、必須ボーンがちゃんとあれば大丈夫なのかな?

深く掘って見ていったら、pelvisってやつの下に足のボーンが、Spine01の下に肩~腕以降のボーンがありました。

こう見るとボーン構造と名前がだいたい合ってれば、unityが推測してhumanoidリグ設定してくれるのかな。

補足:blenderのRegifyアドオンを使えばhumanoidボーンのテンプレを使える

最初から使ったら勉強にならないから使わなかったけど、これが楽かもしれない。

blenderのアドオンでrigって検索すれば出てくるのでチェックすればOK。

そうするとアーマチュア追加のメニューに出てくる「Human(Meta Rig)」ってやつをクリックすればOK。

こんな簡単にhumanoidボーンが作れるとは…。

ただ、なんかボーンがやたら細かく設定されてるみたい。

あっても困らないならそのまま使ってもいいけど…どうだろ。

ボーンの大きさを調整する必要がある

メッシュと合わせないといけないので、大きさを調整する必要があります。

これなら最初にRigfyを追加しておいて、だいたいボーンの大きさを決めて、それに合わせてメッシュを作ったほうがいいかな?

blender regify

これTポーズにしないといけないのかな?腕のボーンを調整してみる。

blender regify

自動でウェイト付けしてunityに持って行ってみる

ちょっとズレてるからお腹のあたりのウェイト付けに失敗してるっぽい( ̄▽ ̄;)

blender regify

まぁ一応設定できたことはできたから、unityに持って行ってみる。

 

緑の子がそうですが…ウェイト付けに失敗してすごいことになってるけど、一応持っていけたからいいか(笑)。

unity humanoid regify

まぁ今回みたいな簡単なモデルなら必須ボーンさえあればいいから、一から単一ボーン組んでやってもいいかも。

続く?

結構簡単にhumanoidのモデルを作ってunityに持って行けました。

すごく難しいと思ってたけど、そうでもないっぽい。

あとはいかにメッシュやテクスチャとかを作り込むか?次第かな。

 

せっかくだからVRchatに持って行くところまでやってみようかな?( *´艸`)

他人様の作ったアバターしか使ったことがないので、自分で一から作ったアバターをVRChatで使うのは初めてだし…。

VRChat Descripterとかのコンポーネント追加すればなんか行けそうな気もするけど…。

色々他にも設定が必要で大変そうだったら保留にしときますが( ̄▽ ̄;)

 

まぁもうちょっといじってみます(*^-^*)

 

タイトルとURLをコピーしました