ASCII倶楽部

このページの本文へ

週替わりギークス 第351回

BlenderでVTuberアバター制作 VRChat対応で苦戦した理由は……

2026年08月08日 07時00分更新

文● きゅんくん

  • この記事をはてなブックマークに追加
  • 本文印刷

 モデリングソフトBlenderで、筆者のVtuberの姿「きゅんロボ」の、VRChatで使える3Dモデルを制作しようと奮闘している途中だった(参考:3Dモデルを必死にリギングした結果、「AIが優秀すぎる」ことに気づいた)。

 その後、紆余曲折あってモデリングやリギングが成功し、VRChatできゅんロボアバターを使えるようになったので記しておきたい。

完成したきゅんロボアバター

VRChatでは“人間型”しか動かない

 以前の記事では、腕の関節を自然に曲げたり、脚を動かしたり頭を動かしたりすることができた。

多関節が自然に曲がる

ボーンが入っている

 しかし、ここでBigな間違いに気付く。

 今回の目標は3DモデルをVRChatで動かすことだ。

 しかし実は、VRChatでは、人間型のリグしか動かすことができないらしいのである。

人間をセンシングに使って、それをアバターに反映するのだから確かに納得と言えば納得なのだが……。

 今あるリグは、腕の関節が人間より多かったり、脚が4本あったりと、人間のボーンの構造とは程遠い。

 どうやらHumanoidという規格があるらしく、それに準拠しなくてはならないらしい。

正しいアーマチュア(Unity画面)

 画像はこちらのページより引用させていただいた。Blenderで作った3DモデルをUnity経由でVRChatに持ち込むやり方は、こちらのページを参考にさせていただいた。

現状のボーンだとHumanoidと合わない

 現状のボーンのまま動かしたいところだけHumanoidに当てはめればいけるかと思ったのだが、Humanoidの親子構造に完全になっていないとだめらしい。

 そこで、ダミーのHumanoidボーンを作り、それが動くと連動して多関節の腕や多脚が動くようにしようと思った。

ダミーのHumanoidボーンを作った

Humanoidボーンに重なるように再設計

 ダミーのHumanoidボーンと多関節のボーンが重なるようにした。

 Transformation Constraintという機能を使って、Humanoidボーンが動いたらその角度が選んだ別のボーンにコピーされる。角度をただコピーするだけではなく、X軸の回転をZ軸の回転に変換したり、回転する量を調整したりできる。

 脚は、右太ももを動かすと4脚のうち中央前の1脚が、右ふくらはぎを動かすと右の1脚が動くように設定した。左の場合は太ももで中央後ろの1脚、ふくらはぎで左の1脚が動く。

 腕はHumanoidを動かした時に多関節をきれいに曲げる方法がわからなかったので人間の関節数と揃えることにした。

脚にもダミーボーンがある

ウェイトがネックでうまく動かず

 結果を言うと、この方法はBlender内ではちゃんと動いたのだがVRChat内でうまく動かせなかった。

 腕に多関節があるのが邪魔になっているようだ。

 後で理解したのだが、腕を曲げる時に「自動のウェイトで」という機能を使い、多関節に合わせて自動でウェイトをつけていた。だから、Humanoidに合わせたウェイトがついていない。この当時は「ウェイト」の意味もわかっていなかったが……。

 ウェイトとは、私の簡単な理解では、ボーンを動かした時にモデルのどの部分がどれくらい動くかを指示することだ。

 正しくは「3Dモデルの各頂点が骨組み(ボーン)の動きにどれくらい追従するかを0.0から1.0の数値で指定した影響力のこと」らしい。

 今回は腕だけがグネグネ動くモデルで、他は変形しない硬いモデルだ。

 だから余計理解がややこしかった。

 腕の多関節のボーンを消して、Humanoid準拠のボーンのみにする。そして「自動のウェイトで」をやりなおす。

 作った多関節のボーンはもったいないので、フィギュアやかわいい画像を作るとき用に別名保存でとっておくことにした。

やり直したボーン(筆者配信より)

各パーツにウェイトをつけていく

 これで腕はVRChat上でも動くようになったが、他のパーツにウェイトが全くついていない(ここでウェイトの存在に気付いた)。

 通常、人間のようなぐにゃっと曲がるモデルの場合はウェイトペイントという機能をつかって曲がるところだけにウェイトをつけていく。先ほどの「自動のウェイトで」はこれをボーンに合わせて自動でやってくれている形だ。

 今回、腕以外は硬いパーツなので、通常とは違う方法でウェイトをつけていく。

 ウェイトペイントはウェイトモードで実行するのだが、硬いパーツの場合は編集モードを使う。

 まず、ウェイトをつけたいオブジェクトを選択し、編集モードに入る。

 そして、Aキーで全頂点を選択する。

 右側のオブジェクトデータプロパティ(緑色の三角形アイコン)を開く。

 頂点グループを開き、割り当てたいボーン名の頂点グループを選択するが、多分ないので、+を押して新しい頂点グループを追加して、名前をボーン名と同じにする。

 名前が同じだと自動で紐付けが完了するらしい。

 ボーンの名前付けはちゃんとわかりやすくしなくてはならない。

 そして、Weightを 1.000 に設定し、Assign を押す。

 硬いパーツのウェイトの付け方はなかなかインターネット上に資料がなく難儀した。

 最終的にChatGPTが教えてくれた。

 これを各パーツにやっていく。

Unity経由でVRChatで試して…

 すると、ウェイトがついて、VRChat内で手を動かした時に手のモデルがちゃんと連動したり、脚を動かした時に脚のモデルがちゃんと連動したりする。

 難しかったのは、Blenderでの挙動がうまくいっていてもUnityに持っていってさらにVRChatに持っていくと全然変になっていたりすることだった。

うまくいっていなかったとき

 本当はmocopiという全身トラッキングセンサーでBlender上で動くかどうか試してみようとしていたのだが、mocopi自体に筆者として未知なところが多く、未知×未知でよくわからなくなってしまうので、毎回Unityを経由してVRChat内で試していた。

 モデリング経過は全てYouTubeで配信した。

 配信をすると記録として残るので、自分がどうやってどこまでどう作ったのかを見返すことができて助かる。以前どうやって問題を解決したのかがすぐわからなくなってしまうので……。

 こちらに全配信がまとまっているのでご興味ある方はご覧いただきたい。長いです!!

ディテールを調整して完成!!

 全パーツがちゃんと意図通りに動いた後、目が動くようにしたり口がリップシンクしたり調整して完成させた。

 脚は、先ほど設定した太ももとふくらはぎに対応させたやり方だと、前中央脚と右脚が繋がった感じの動きをしてしまってかわいくない動きだったので、右脚と左脚だけ動かして、前中央脚と後ろ中央脚は動かさないことにした。

完成したアバター

めちゃかわいく動きます!!

完成したアバターで踊ってみた。楽しい!

 現在は完成したアバターで踊ってみたをやっている。

 Vtuberは3Dになったら踊るっきゃないっしょ!

 現在の困ったポイントとしては、身長が30cmほどと小さいのでVRChatの使いやすい身長と合わず、身体が床にめり込んでしまうことが多いことだ。

 目線の高さによってめり込んでしまうことがあるらしく、宙に浮かせるなどもやってみようとしたのだがうまくいってない。

 一旦踊ってみたをする分にはなんとかなっているので放置している。

 3DモデルがあるとLive2Dよりできることがあって楽しい!活動の幅を広げていきたい。

 

筆者紹介:きゅんくん

1994年東京都出身。
ロボティクスファッションクリエイター / メカエンジニア
高校生の頃に「メカを着ること」を目標にロボティクスファッションの制作を始めた。「人間とメカがゼロ距離で近づいた際に人は何を思い感じるのか?」を明らかにするため、2014年よりファッションとしてのウェアラブルロボットの開発を開始。2018年よりウェアラブルロボットと人のインタラクションについて深めるため修士課程に進学。修了後もATRの連携研究員として、ウェアラブルロボットと人のインタラクションの研究を進めている。 DMM.make AKIBAスタートラインメンバー。

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

ASCII倶楽部の新着記事

会員専用動画の紹介も!