【Unity】VIVE + トラッカー3個のフルトラッキングで動いた様子をアニメーションとして保存する

公開日:2019-06-04
最終更新:2019-06-05

「VR空間で踊った動きをそのままアニメーションとして取り出す」システムを組みました。
この記事ではシステムを作るのに使ったアセットと、実装のはしがきをつらつらと書きます。

https://twitter.com/Maron_Vtuber/status/1127923606082600960

pixivFANBOXで配布していますので、ササッと試してみたいって人は500円課金して試してみてね!
https://www.pixiv.net/fanbox/creator/16717003

環境
・Unity2017.4.15f1

デバイス
・HTC VIVE
・VIVEトラッカー3個

使用アセット
①FinalIK ver1.8
https://assetstore.unity.com/packages/tools/animation/final-ik-14290

②SteamVR Plugin ver2.2.0
https://assetstore.unity.com/packages/tools/integration/steamvr-plugin-32647

③EasyMotionRecorder
https://github.com/duo-inc/EasyMotionRecorder

④自作のHumanoidアバター


アニメーションを記録するのは③EasyMotionRecorderの機能を使っただけなので、一切コードを書かずに済みました。

今回の大事なポイントは、「VIVEとVIVEトラッカーにアバターを上手く追従させること」です。
以下に、概要をざっくりと上げます。

☆まず、アバターの身長と自分の身長が違うので、合わせなければいけません。
これはアバターのScaleを大きくするか、自分(HMDやコントローラのオブジェクトの親)を小さくすることで解決します。

☆Final IKで追従するダミーオブジェクトを用意
Final IKを使うと、「アバターの頭(Headボーン)はこのオブジェクトに追従させる」
というようなことができますが、例えば、アバターのHeadボーンをHMDのオブジェクトにそのまま追従させると角度や高さがおかしなことになります。

角度:アバターのHeadボーンが傾いていたり回転しているため
高さ:アバターのHeadボーンの始点≠アバターの目線 のため

よって、Final IKの追従用にダミーのオブジェクトを作ってやる必要があります。
(HMDとHeadボーンのズレを吸収するオフセットを持ったオブジェクト)

HMDの子にダミーのオブジェクトを作り、positionとrotationをいじることで
上述の角度の違いと高さの違いを吸収します(=オフセットを作る)

Scriptでキャリブレーションするときは
・ダミーのオブジェクトのposition = キャリブレーション時のアバターのHeadボーンのposition
・ダミーのオブジェクトのrotation = キャリブレーション時のアバターのHeadボーンのrotation
とするだけでokです。

これを、手や腰、脚に対しても行います。

☆VR空間内にスイッチを作る
Steam VR Plugin をインポートするとUI Elementというスクリプトが使えて、
これをアタッチしたオブジェクトはVR空間上でクリックできるようになります。とても便利!
クリックしたときのイベントは、Unityで標準で使えるButtonと同じようにInspector上で指定できるので、
プログラム書くのが苦手でも使いやすいですね!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以上、フルトラモーションの保存のTips(ほぼキャリブレーションの概説)でした

質問などはTwitterにDMください
https://twitter.com/Maron_Vtuber

記事が少しでもいいなと思ったらクラップを送ってみよう!
41
+1
@maronの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする