VRChatワールド内でアバターの動きを記録できるツールを使ってみた
こちらのヒャクアシさんがgithubに公開されているツールを使って、なんとVRChat内でアバターの動きをロギングして、UnityでAnimation化が可能なんです!
とお友達に教えてもらったので試してみました。こんな感じでAnimation化できたよ。
自分の動きが記録できれば、ワールドに動いているアバターを設置したり、アバターのAFKやエモートスイッチにも使えて楽しいですよね!
ここでは簡単に使い方を備忘録的にまとめておいます。詳細は以下の公式動画を参照してくださいね。
①[任意] アバターの動きをロギング(Logging)できるワールドを作成する
実はヒャクアシさんの方で、ロギング可能なワールドをアップしているので、このワールドに入るだけでロギングされます。
どのファイルにログが出力されるかと言うと、
C:\Users\{{ Your User Name }}\AppData\LocalLow\VRChat\VRChat
にある「output_log_xx-xx-xx.txt」です!({{ Your User Name }}はWindowsのユーザ名に置換してください。)
ロギングがうまくいくと、こんな感じにアバターの動きが出力されています。
2021.08.12 11:45:18 Log - HUMR:ひら吉/HIRAKICHI みたいな文字列で始まる行ですね。これらの時系列がアバターの動きを表しているようです。
②アニメーション化する
Unityプロジェクトを作る
いつもどおりプロジェクトを作って
・VRChat SDK3 World
・Udon Sharp
・Package ManagerからFBXExporterをインストール
・Githubで公開されているOutput Loader
をインポートしてください。
Githubはこちら。
https://github.com/mukaderabbit/mukaderabbit-HyakuashiUdonMotionRecorder-HUMR-/releases
HUMR_OutputLogLoader_vX.X.unitypackage
アバターをインポートする
①で使ったアバターのモデルをこのプロジェクトにインポートしてください。(※Avatar Descriptorはいらないので消してOK。なお他のモデルでも一応動くみたいです。)
アバターにAdd ComponentでOutput Log Loaderを追加する
以下のようにOutput Log Loaderを追加する。
DisplayNameはVRChatの表示名で、これを一字一句正しく入力する。できれば上のoutput_log_xx-xx-xx.txtに出力されている名前をそのままコピペした方が良いです。
FBXを出力する
Output Log Loader内の「LoadLogToExportAnim」ボタンを押すと、AssetのHUMR-FBXs-{{ Display Name }}の下にFBXファイルが出力される。
FBXからAnimationを切り出す
出力されたFBXファイルを選択すると、Animationタブの下にアニメーションがあるのでそこで切り出してください。切り出し方は上のYouTube説明動画が分かりやすいです。
また切り出し時はApplyを押すと切り出されますが、あくまでFBXファイル内に切り出されるので、それらを選択して、Ctrl+D(コピー)を押すと、Animation単体として抽出することができます。
これで完了です。
慣れれば本当にすぐにできます。
いろいろと活用させてもらおうと思います。
実は最初は別の方法で(バーチャルモーションキャプチャを使ってUnityに動きを送信して)アニメーション化していたのですが
・VRMを使う必要がある(VRChatではVRMは使わないので手間がかかってしまう)
・他のアバターに適用すると動かない(動きがぐちゃぐちゃになる)
など、VRChatで使う上では若干困難な点もあったため、VRChat用途であればこのnoteの手法の方がかなり楽だと思います。
サポートいただいてどうもありがとうございます! これからもVRの情報を収集発信したいと思います!