1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VRCでモーションキャプチャーをしよう[フラット向け]

Posted at

はじめに

  • VRCにおける自分の動きをレコーディングしてモーションを作る方法を説明します
  • フラットを使うことを想定していますが、その他でもほぼ変わりません
  • HUMRを使います
    • ぜひ商品ページの説明を熟読下さい 1

Unity準備

  • 次をいれたプロジェクトを用意しておく 2

VRC初期設定(初回のみ)

  • VRChatの小さいメニュー、歯車タブより「ログの出力」をONにする
    image.png

動きの記録

  • アバターをフラットに変更(無印サンプルフラットを推奨 3
  • モーション記録ワールドに行って、記録したい動きをする
  • 動きが終わったら、VRCを終了する
    • 記録は、ワールドに入った瞬間に開始、VRC終了時に保存される 4

動きの抽出

  • fbxファイル5をHierarchyにいれる
    image.png

  • Inspectorから Add Component→Output Log Loader(HUMR)をアタッチする
    image.png

  • Display Nameにモーションを記録したキャラクター名を入力する

  • LoadOutputLogから適切なログを選ぶ
    image.png

  • ログは基本的に最大2日分保存されています
  • 表示されている数字は、VRC起動時刻を表しています
    例:_04-03-22 = AM4時3分22秒
  • LoadLogToExportAnimボタンを押す
    image.png
  • エクスポート画面が出て処理が実行される6ので、終わるまで少し待つ
    image.png
  • Assets/HUMR/FBXs/(自分の名前) というフォルダが出来ている7ので移動する。その中のfbxをクリックする
    image.png
  • より良くするための手順を好みに応じて実行する
  • InspectorにおいてAnimationを押す。下にアバターサンプルが出ていなければ二重線部分をクリックして表示させる
    image.png
  • 再生ボタンを押して記録したものが読み込めていることを確認8
    image.png

ループ設定・トリミング(前後不要部削除)と抽出

  • ウィンドウサイズをうまく調整して以下の表示が見えるようにする
    image.png
  • ループモーションにするならLoop Timeにチェックをいれる
    image.png
  • アニメーションの範囲をバーで調整して、欲しい場所だけ再生されるようにする 9
    image.png
  • 下の方にスクロールして、Applyを押す 10
    image.png
  • fbxの右矢印を押す
    image.png
  • Animationをクリックして、Ctrl+Dを押す
    image.png
  • モーションデータの出来上がりです!あとはこれを実際に使いたいプロジェクトにコピーしてEmoteBox等で実行して下さい
    image.png

より良くするための手順

Ctrl+Dで分離するより前の時点でこの手順を実行するとより正しいアニメが出力されるはずなのですが、体感できるほどの違いはないように思います。

  • InspectorからRig、Configureをそれぞれクリックする
    image.png
  • InspectorでChestがNoneになっているはずなので、Hierarchyからいれる
  • image.png
  • Headをクリック
    image.png
  • Jawにマッピングされているボーンをクリックして、キーボードのDeleteを押す
    image.png
  • Inspectorを下にスクロールしてDoneを押す
    image.png

動きの取り込み

これはうまくExport出来なかった時のトラブルシューティング手順です。通常必要ありません

  • Advanced:CustomOutputLogPathをクリックするとパスが表示されるのでそれをコピーしてエクスプローラで開く
    image.png
  • ファイルサイズが0でないログ(output_Log_日付_時刻.txt)を開く
    image.png
  • テキスト内を「HUMR:」で検索する。下のようなものが出れば、赤で囲った部分がDisplay Name。 出なければ、そのログにはレモーションレコードした情報が保存されていないので、他のログを探す
    image.png
  1. 無料ダウンロード方法の案内もあります(便利だと思ったらぜひ購入して下さい!)

  2. 既存プロジェクトに追加でやってもよいですが、アバターにLogLoaderをつけるとAv3Emuなどとの相性が悪く管理が難しくなります。そのあたりの操作ミス防止・説明の簡便さのため新規プロジェクトで説明しています。

  3. アクセサリをArmatureの中に入れていたりすると変な記録になるので改変済みは避けるとよいです(逆に、ボーン構造を変える改変をしていて、汎用的でないモーションを作るならそのアバターそのものがよいです)。無印・Anibはどちらでもいいですが説明の簡便さのためとりあえず無印を推しています。

  4. 入った瞬間からなので最初は変な姿勢になります。また終了するまで保存されません。

  5. prefab、fbxのいずれも同じ結果になります。Av3Emuの誤動作防止のためfbxを使うとよいです。無印・Anibどちらでもよいです。

  6. もしエクスポート画面が出ない場合、ログが取れていないか、DisplayNameが誤っている可能性が高いです。ログの見方を参考に確認して下さい。
    参考までにここではVRCで取得したログを元にGenericアニメーション(アバターを動かす事はできないアニメーション)を一度作成し、そのアニメーションをFBXに組み込んで(ここでFBX Exporterというアセットを使っている)、HumanoidとしてUnityに再読込させる(この時点でアバターを動かせるアニメーションに変換される)という処理をしているようです。Hierarchy上の存在をファイルに出力するのはUnity的には出力なので「エクスポート」というウィンドウのようです。

  7. AnimationController,GenericAnimationsフォルダも作成されますが、使いません(GenericAnimationでHumanoidアバターを動かすことは出来ません!)

  8. 最初にすごい姿勢をしていたり、最後にログアウトの動きをしていたり、影が濃かったりしますが、とりあえず実行した動きが保存されていればOKです。fbxでのLoadingを推奨しましたが、もしprefabで実行してboneに追従がうまくいかないアクセなどあるとこの時点で空中に固定されて表示されて邪魔になることがあります。

  9. 最初と最後のフレームは全てのキーが完全に記録されます。ループアニメを作るときはその最初と最後のデータだけ作ってあとは自動補間すると(多少滑らかすぎて機械的にはなるけれど)自然な感じにできると思います

  10. 範囲外のアニメデータは消されます。あとから必要になったらもう一度Loadすればいいだけですが、すぐ必要なことが明確ならばfbxをCtrl+Dで増やしておくと便利だと思います

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?