VRMをモーション付きでWebブラウザ上で動かしてみる

この記事は whywaita Advent Calendar 2023 12日目の記事です。

前日は id: nersonu さんの「サブスクを整理する」でした。定期的にサブスクの整理をすることは出費を確認する上で大切ですね。

nersonu.hatenablog.com

唐突ですが今回は VRM をブラウザ上で描画して Mixamo からダウンロードした fbx ファイルをもとにモーションをつける Web アプリを開発したいと思います。

VRM とは?

VRMは汎用的な3Dのファイル形式であるglTFを拡張した人型3Dアバター向けのファイル形式です。 2018年頃に登場した比較的新しいファイル形式です。

vrm.dev

Mixamo とは?

Mixamo は3D CGのモデルやアニメーションを利用できるサービスです。 以下に示すように、複数の3Dアニメーションのモデルなどを利用することができます。

mixamo で利用できる3Dアニメーションモデル

Mixamoでは3Dアニメーションを表現するファイルをFBX形式のファイルでダウンロードすることができます。

成果物

vrm-mixamo-viewer-waita というサービスを作りました。

vrm-viewer.kira924age.com

VRMファイルを画面にドラッグ&ドロップしてボタンを押すとモーション付きでVRMを描画できます。

キックをするずんだもん

技術要素

このサービスを開発する上で以下のツールを用いました。

  • vite
  • react
  • three.js
  • pixiv/three-vrm
  • react-three/fiber
  • react-three/drei

詳細について興味のある方は GitHub のコードを見てみてください。

github.com

ちなみにUIは glTF Viewer を丸パクリさせてもらいました。

さいごに

今回はMixamoからダウンロードしたfbxファイルをもとにVRMにモーションをつけて描画するサービスを作りました。 VRMにモーションをつけるとなんかいいですね。