アイコン

佐藤さとる

梶研 [mocopi センシング の環境を整える (Unity完全に理解した)]

2023年12月19日

thumbnail

mocopi センシング の環境を整える (Unity完全に理解した)

出席率

  • 3年セミナー:??%

スケジュール

短期的な予定

  • mocopi でセンシング(~12月)
    • mocopi x Unity
    • 色んな動作をとる
    • 誤差を計測(簡易)
    • 動作をグラフ化
    • bvhをパースするパッケージを作る
    • csv に書き出せるアプリを作る
    • 複数人の絡みを取ってみる
    • ブラウザで動作を確認できるようにする(gLTF形式の理解)
    • Unity で複数人の動作を可視化する

長期的な予定

  • ブルーシートばたばたの使い道を考える
  • ライブセンシングの使い道を考える
  • PDR やりたい

進捗報告

Unity で複数人の動作を可視化する

結果

できませんでした...

既存のパッケージの組み合わせで出来そう

出来ない

スクリプトを自作できそう(一旦置いとく)

既存のパッケージに合うBVHファイルを生成するスクリプトを書く

分からない(パッケージが壊れてる?)

fbx に変換してからUnityに取り込めば再生できた

やったこと

UnityでVRMモデルを読み込む

参考: https://github.com/vrm-c/UniVRM/releases
UniVRMというパッケージを使用してVRMをHumanoidにする
Assets に取り込んで、Migrate To Vrm 1 を押すだけでできる
スクリーンショット 2023-12-17 18.23.18.png (534.5 kB)

Animation Clipを再生する

それっぽい攻撃をしてポーズをとってくれるカッコいい系のanimationファイル
というのを拾ってきてvrmに適用に適用

プレビュー画面

実際にモデルに反映させたいがわからない...

animation controller を使う
スクリーンショット 2023-12-17 19.13.51.png (187.0 kB)

Animator タブでコントローラーを指定したら動いた

BVHをanimation clipにする

BVH を animatoin clip にしてくれる UniVRM を使う

モーションが消えてしまっている

スクリーンショット 2023-12-17 19.19.55.png (418.1 kB) スクリーンショット 2023-12-17 19.05.10.png (451.3 kB)

原因: 互換性のないBVHだった (VRMドキュメント)

BVHをUniVRMに対応する形にする

実線丸が必須のボーン
avatar.png (199.9 kB)

mocopi と UniVRM(Humanoid) のボーン名の違い
mocopiでのボーン名UniVRM(Humanoid) のボーン名(*は任意)
rootHips
torso_1Spine
torso_4Chest
torso_7UpperChest*
neck_1Neck
headHead
l_shoulderLeftShoulder
l_up_armLeftUpperArm
l_low_armLeftLowerArm
l_handLeftHand
r_shoulderRightShoulder
r_up_armRightUpperArm
r_low_armRightLowerArm
r_handRightHand
l_up_legLeftUpperLeg
l_low_legLeftLowerLeg
l_footLeftFoot
l_toesLeftToes*
r_up_legRightUpperLeg
r_low_legRightLowerLeg
r_footRightFoot
r_toesRightToes*

手動で置き換えてみたが動かなかった。

テストで使われているBVHを使ってみたがダメだった。
使用したBVHファイル

Muscle Power が全て0(デフォルト) の状態
スクリーンショット 2023-12-18 18.33.35.png (341.2 kB)

Blender で fbx に変換してから再生する

Blender を経由する必要があるのは面倒だけど物は試しとしてやってみる(参考)

Blender で fbx に変換するスクリプト

ダメだった
スクリーンショット 2023-12-18 18.33.35.png (341.2 kB)

原因: RigのAnimation Typeを Humanoid に変更していなかった

動いた

初期位置を変更することもできた

bvhからfbxへの変換が面倒だったので、Automatorで自動化した

ツイスターゲームを再生してみた

リアル

bvhsender

Unity

体全体の位置が動いていない

ぺこらモデルはツイスターゲームを再生するには問題があったので、
Unityちゃんで再生した(テクスチャがバグっている)

ちゃんと屈んだり移動したりできていることは確認できた。

C#スクリプトから動かしてみた

ブラウザで動かした時のように、BVHをパースしてモデルを動かすことができそう

腕を動かしてみた

この先の研究を考えた

「mocopi は長時間動くと狂う」
他のセンサと組み合わせて途中でキャリブレーションできないか

例)
歩いているとき、足が一定間隔で伸びると仮定すると
歩いているのに膝が最小でも30度曲がっている→ ー30度して調整(適当)

mocopiアプリと VRChat等の中間で処理を挟んで補正できたら嬉しいかも

進路関係

なし

余談

スマホが帰ってきた

先週、ぺこライブに行ったとき有明アリーナに落としてきた

IMG_5813.jpg (1.4 MB)

特徴的な文字を書いておくと伝えやすくておすすめです