Blender初心者がVRMファイルを作ってVirtualCastで使えるようになるまで

やっぱ自前アバターほしいよね… かわいいモデル作ってVirtualCastしたいよね。ということでやったやつ

f:id:o_mega:20180531001826p:plain

箱じゃねえか!最低限だけどかわいい

登場するやつ

メイン

  • Blender
    • すごいモデリングツール。メッシュ、ボーン、スキニングをここで行う。今回使ったのはv2.79b
  • VRM
    • ドワンゴ社が提唱する、3Dアバターフォーマット。モデルデータ。VirtualCastで使える、コレを作るのが第一目標
  • VirtualCast
    • ドワンゴ/インフィニットループ社のVRライブ・コミュニケーションサービス(公式ママ)。安直にいうとvTuber的なことができるやつ。オンラインで6人まで同一ルームに入ってボイチャ付きでワイワイできる。これが無料で遊べるとか、神。ここのアバターVRM形式。これで自作VRMを使うのがゴール
  • ニコニ立体
    • ドワンゴ社の3Dモデル共有サービス。VirtualCastで使うVRMはここにアップロードしておく

その他

  • FBX
    • (起源はさておき)Autodesk社のプロプライエタリな(ここでは主に3Dを扱う)モデルフォーマット。事実上の業界標準フォーマットなので、今回はblenderからUnityへモデルを取り込む時に中継している
  • Unity
    • Unity社のゲームエンジン…、ながら今回はUniVRMをいじくるためのエディットツールとして登場する。v2018.1.1f1
  • UniVRM
    • ドワンゴ社が提供する、VRMのコンバートツール。UnityAssetという体で提供されているので、Unityが要る。v0.36

Blender作業

Blenderモデリングをして、ボーンを仕込み、スキニングをする。BlenderからUnityのHumanoid互換でfbxをエクスポートする を参考に作業した。

注意としてはVirtualCast側で必須なボーンがあり、ない場合はモデルが追従しなかったり描画されない(UnityのImport - Humanoid設定はパスするが、VirtualCastで動かないケースもあった)。

いくつか試したり聞いた結果、少なくとも以下の構成で動作を確認した

f:id:o_mega:20180531001717p:plain

  • hip
    • spine
      • neck
        • head
      • shoulder
        • upper_arm
          • lower_arm
            • hand
    • upper_leg
      • lower_leg
          • foot

左右あるものは、末尾にドットLだのドットRだのつけている。それぞれ同名の頂点グループも合わせて必要。

終わったらexport - .fbx でfbx形式で出力する。

Unity(UniVRM)作業

VRMファイルを作ってみたい - dwango on GitHubに従ってやる

UniVRMをUnityで取り込んで、上で作ったfbxファイルを取り込む。とインスペクタにImport settingが出るので Rig - Animation TypeをHumanoidにする(手順どおり)

f:id:o_mega:20180531003913p:plain

configureを押して、ボーンの設定の確認。漏れていたら、ヒエラルキーウインドウからボーンをドラッグして入れる。問題なさそうであればDone

(Unity上ではそれぞれのボーンがTransformとして扱える様子?)

f:id:o_mega:20180531004115p:plain

 

自分のケースではボーン名間違えた時にここでエラーを出して、Humanoidを適用できないことがあった。エラーを見て、ボーンを再確認してblender側で直してfbxを読み直す

手順に従い、ヒエラルキーにモデルをドロップして出現させ、サイズを調整する。サイズ調整するときは横に1x1x1のCube(1m四方相当)を出して置くと良い。VRM - export humanoidでノーマライズした vrmを一旦出力。vrmを読み直して、ライセンス設定をして再度vrmを出力

VirtualCast動作テスト

ニコニ立体に行き、vrmファイルをアップロードする。上がったときのid(tdXXXX)をメモる

f:id:o_mega:20180531011807p:plain

ちなみに現物は「VRMテスト(hacorobo)」 なんかつま先がねじれとる…

 

バーチャルキャスト[Virtual Cast]をダウンロードして、exeと同一ディレクトリにconfig.jsonを作る。詳しくは

なりたいあなたになれる!バーチャルキャストで VRM モデルのインポートが可能に! | 株式会社インフィニットループ技術ブログを参照して、jsonにさっきのidをprefix(td)抜き(数字のみ)で書く。

 

VirtualCastを起動する。とりあえず動作確認するだけなら、起動直後のタブでニコニコ動画ログインをした後、「自分で配信しない」タブからスタジオに入ればいい(凸先idは空でよい)。あとはViveをかぶって、VirtualCast内メニューからモデルを選択すれば良い。

ボーンが足りないとここで首なしT姿勢のモデルを横から眺める羽目になる(おそらくボーンが適正でない)が、うまくいけばこのように動けるはず

f:id:o_mega:20180531001826p:plain

TODO

  • 表情とか視線のあれ
  • テクスチャとかマテリアルが一切ないのを何とかする

ここすき

  • VirtualCastはモデルのサイズに合わせて動くので、小さいキャラだと低い視点になって楽しい
  • 手が短いとものを掴むのに苦労する(左手タッチパッド移動が実装されたので多少なんとかはなる。高いものは取れない)

追記

  • つま先ねじれ問題はボーンの方向の問題でした。ボーン名L,Rに対して、つま先を前後逆に付けると、適正ポーズになったときにねじれる様子