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のユーザ名に置換してください。)

画像1

ロギングがうまくいくと、こんな感じにアバターの動きが出力されています。

画像2

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に出力されている名前をそのままコピペした方が良いです。

画像3

FBXを出力する

Output Log Loader内の「LoadLogToExportAnim」ボタンを押すと、AssetのHUMR-FBXs-{{ Display Name }}の下にFBXファイルが出力される。

画像4

FBXからAnimationを切り出す

画像5

出力されたFBXファイルを選択すると、Animationタブの下にアニメーションがあるのでそこで切り出してください。切り出し方は上のYouTube説明動画が分かりやすいです。

また切り出し時はApplyを押すと切り出されますが、あくまでFBXファイル内に切り出されるので、それらを選択して、Ctrl+D(コピー)を押すと、Animation単体として抽出することができます。

これで完了です。

慣れれば本当にすぐにできます。


いろいろと活用させてもらおうと思います。


実は最初は別の方法で(バーチャルモーションキャプチャを使ってUnityに動きを送信して)アニメーション化していたのですが
・VRMを使う必要がある(VRChatではVRMは使わないので手間がかかってしまう)
・他のアバターに適用すると動かない(動きがぐちゃぐちゃになる)
など、VRChatで使う上では若干困難な点もあったため、VRChat用途であればこのnoteの手法の方がかなり楽だと思います。

サポートいただいてどうもありがとうございます! これからもVRの情報を収集発信したいと思います!