メインコンテンツへスキップ

VRChatワールド内でアバターの動きを記録できるツールを使ってみた

    VRChat上の動きをHumanoidAimationに出力する『HUMR』を公開しました
    GitHubとboothにて無料配布しています

    ほんの数分で記録から出力まで行えます#VRChat https://t.co/6zTY6ga9MDhttps://t.co/XKqytVg0Hz

    — ヒャクアシさん (@mukaderabbit) February 7, 2021

    こちらのヒャクアシさんがgithubに公開されているツールを使って、なんとVRChat内でアバターの動きをロギングして、UnityでAnimation化が可能なんです!

    とお友達に教えてもらったので試してみました。こんな感じでAnimation化できたよ。

    ひゃくあしさんツールで
    アニメーション化できたマッチョ体操w
    (ビバマッチョ) pic.twitter.com/Oyxk1RCI7X

    — ひら吉/hirakichi@温泉街のビーセイ猫🐱 (@hirakichiVR1) August 11, 2021

    自分の動きが記録できれば、ワールドに動いているアバターを設置したり、アバターの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の手法の方がかなり楽だと思います。

     
     
    気まぐれVRChatterです。 最近、なかなかVRに入れないですが、今も時々VRで雑談を楽しんでます。 (Amazonアソシエイトプログラムに参加しています)

    あなたへのおすすめ