フルボディトラッキングのための機材比較

この記事は [VTuber Tech #1 Advent Calendar 2018](https://qiita.com/advent-calendar/2018/vtuber) 11 日目の記事です。

# 自己紹介
　こんにちは。株式会社バーチャルキャストで開発をしている [さんたーP](https://twitter.com/santarh) です。最近は VTuber 生放送のシステム構築、3D モデルモデリング＆セットアップ、放送オペレーションをしています。具体的には [こちら](https://santarh.blogspot.com/p/aboutme.html) 。


# はじめに
　3DCG モデルのキャラクタに対して動きを与える方法のひとつとして、モーションキャプチャシステムを用いたフルボディトラッキングがあります。本記事では主要なモーションキャプチャシステムを VTuber 向けにフルボディトラッキングに使用する際の比較を行います。対象システムは以下の 5 つです。

- [Perception Neuron](https://neuronmocap.com/)
- [Xsens MVN](https://www.xsens.com/products/xsens-mvn-animate/)
- [OptiTrack](https://optitrack.com/)
- [VICON](https://www.vicon.com/)
- [VIVE Tracker](https://www.vive.com/jp/vive-tracker/)

　そもそもモーションキャプチャによるフルボディトラッキングが自らのユースケースに必要なのかどうか、という技術選択の判断は以下のスライドを御覧ください。

[#CEDEC2018「一万人規模音楽ライブからトークイベントまで、バーチャルキャラクターをリアルイベントへ召還する技術」](https://niconare.nicovideo.jp/watch/kn3372)

# 忙しい人むけの概略表

| 機器              | 値段           | 方式        | アクタの体型と動きを取得できる？ | ひとりで運用できる？ | 落とし穴 |
|:------------------|:--------------|:------------|:------------------------------|:-------------------|:-------------------------|
| Perception Neuron | 個人でも買える | 慣性センサ式 | できる                         | なんとか            | どんどんズレる、周囲の磁場環境 |
| Xsens MVN         | 個人だと辛い   | 慣性センサ式 | できる                         | 無理               | だんだんズレる |
| OptiTrack         | 個人だと辛い   | 光学式       | できる                         | 無理               | 高いから大丈夫（熟知すれば） |
| VICON             | 個人だと無理   | 光学式       | できる                         | 無理               | 高いから大丈夫（熟知すれば） |
| VIVE Tracker      | 個人でも買える | 光学式       | 追加ソフトウェアが必要          | だいたい            | トラッキングロスト、周囲の電波環境 |

# 必要なリソースから見た違い

- 要点
  - 高価な機材ほど出来は良い（当たり前）
  - 高価な機材ほど運用するのに人員と土地の広さを要求する

　まず辛辣な話をします。同じジャンルの仕組みの機器ならば、値段が高いほうが精度が良く、ソフトウェアの出来やサポートも充実しています。一方で値段が高いほど、運用に必要な人員や土地は増えます。
　たとえばもっとも安価な VIVE Tracker や Perception Neuron はひとりで６畳の部屋で運用することもできます。しかしそれ以外の Xsens MVN, OptiTrack, VICON となるとひとりでスーツを着用することもできませんし、キャリブレーションもひとりではできません。一方で生放送に使うには機器の安定性が重要ですが、安価なほど耐障害性は低くなります。特に VIVE Tracker や Perception Neuron Pro の 2.4GHz 帯無線接続はイベント会場で使用することは絶望的です。

# 取得できる情報の違い

- 要点
  - VIVE Tracker 以外はアクタの体型情報とその動きを取得できる
  - アクタとキャラクタの体型の違いを吸収する技術（リターゲティング）が必要
  - キャラクタにもっともらしい動きをさせるために最重要
  - 無限こだわりポイント
  - VIVE Tracker はセンサ情報のみなのでアクタの情報を推定する別種のソフトウェアが必要

　Perception Neuron, Xsens MVN, OptiTrack, VICON はアクタの体型情報を事前入力、または計測で得ることができ、動きも計測します。ここで、得られた体型情報と動きはアクタ自身のものであり、キャラクタのものではありません。愚直にアクタの動きの関節角をキャラクタに与えると歩幅は違いますし、接地感もなくなってしまいます。したがってアクタとキャラクタの体格差を吸収して動きを適用する必要があります。これを一般にはリターゲティングと言います。リターゲティングには例えば以下のソフトウェアや機能を使います。

- [Autodesk MotionBuilder](https://area.autodesk.jp/product/motionbuilder/)
- [UnrealEngine4 SkeletalMesh AnimationRetargeting](http://api.unrealengine.com/JPN/Engine/Animation/AnimationRetargeting/)
- [Unity Mecanim Humanoid](https://docs.unity3d.com/Manual/Retargeting.html)

　自然な動きをキャラクタに落とし込めるかどうかはほぼこの部分にかかっています。バーチャルキャストを始め、各社・各個人のアプリケーションの数だけリターゲティングの実装はあるだろうというくらい、奥が深くクリティカルな要素技術です。

　また唯一 VIVE Tracker は取得できるアクタの情報が不完全です。他のモーションキャプチャシステムには存在する「センサの情報からアクタの体型情報と動きを生成する」システムを用意しなければなりません。またはリターゲティングと一体化したシステムでキャラクタを直接 IK で操作する方法もあります。これには例えば以下のソフトウェアや機能を使います。

- [IKinema Orion](https://ikinema.com/orion)
- [FinalIK VRIK](https://assetstore.unity.com/packages/tools/animation/final-ik-14290)

# 慣性センサ式・光学式の違い

- 要点
    - 慣性センサ式は大掛かりな設備を必要としないが、時間経過要因や複数アクタ間の位置関係はズレる
    - 光学式は大掛かりな設備が必要だが、現実空間の絶対位置を取るため複数アクタ間の位置関係を得ることがシンプル

　この記事で挙げた５つのモーションキャプチャシステムは物理的な仕様で二種類に大別できます。ひとつは慣性センサ式、もうひとつは光学式です。具体的には慣性センサ式は Perception Neuron と Xsens MVN 、そして光学式は OptiTrack, VICON と VIVE Tracker です。
　まず設備面での違いを挙げます。慣性センサ式はアクタの身体に這わせた慣性センサを用いて測定するので、アクタ本人以外の大掛かりな設備は必要ありません。したがってセンサの上から着物を着ることができたり直射日光下の屋外でも使用できるという利点があります。一方で光学式はアクタに取り付けた再帰性反射材と、多数の赤外線カメラや照射装置を用いて測定するので、三脚やトラス組みを用いたモーションキャプチャシステムスタジオを構築する必要があります。また赤外線を使用しているため、直射日光下での測定は非常に難しいです。
　次に同時収録人数の違いです。まず光学式は現実の絶対位置での測定を行うので歩き回ったあとに元の位置に戻ってもズレませんし、複数のアクタがいてもその相対位置関係は保たれます。一方で慣性センサ式は身体の慣性センサの時間積分なので誤差が溜まり、姿勢がどんどんズレていきます。例えば Perception Neuron に比べれば格段に精度の良い Xsens MVN でも 10 分も動き回っていれば 1m は位置がズレてしまいます。

# 慣性センサ式 Perception Neuron, Xsens MVN のその他比較

- 要点
  - 値段は Perception Neuron のほうがとても安い
  - 精度は Xsens MVN のほうが非常に高い
  - Perception Neuron を使用するときは周りの磁場環境に左右される
  - Xsens MVN は最近の更新で指グローブに対応 ~~したが Unity Plugin の更新がない~~ (2020/03/31 更新)

　慣性センサ式の 2 種について、それぞれ説明します。まず値段は圧倒的に Perception Neuron のほうが安いです。Xsens MVN は高価なので、個人ならば Perception Neuron を買うことになるでしょう。
　しかし値段の差はそのまま精度に直結します。センサ自体の精度もそうですが、それに加えて Perception Neuron は周囲の磁場環境にとても左右されます。これは周囲に PC やスマートフォンが立ち並ぶオフィスで Perception Neuron を使用すると使い物にならないレベルです。Perception Neuron を使用する際は磁場クリーンな環境を用意する必要があります。
　取れる情報も差があります。Perception Neuron は指も含まれますが Xsens MVN は指は含まれません。ただ Xsens MVN も指グローブ（Prime Xsens）を購入することで指の情報を取ることができます。~~Xsens MVN の Unity Plugin に指の更新は来ないですが……~~ Unity Plugin を用いれば Unity でも指グローブの情報を用いることができます。(2020/03/31 更新)

# 光学式 OptiTrack, VICON のその他比較

- 要点
  - 値段は OptiTrack のほうが安い
  - VICON はもっとも高価でもっともプロ向け
  - どちらもプロユース想定なのでソフトウェアやハードウェアの使用方法を熟知する必要がある

　光学式の 2 種について、それぞれ説明します。VICON はこのモーションキャプチャシステム分野における先達で、モーションキャプチャスタジオを持つ企業用途では一般的です。その分非常に高価です。OptiTrack は VICON と比較すれば安価ですが、やはり個人で手を出せる金額ではありません。
　どちらともモーションキャプチャスタジオ向けの製品となるので、使用するにはソフトウェア・ハードウェア、そしてセットアップについて熟知する必要があります。
　モーションキャプチャスタジオという安定した環境で運用することを前提としているので、その環境下にある限りは落とし穴はさほどないでしょう。挙げるとすれば、赤外線を使用するためスタジオ内の金属部品・眼鏡などが反射し、トラッキング精度が落ちることがあります。

# VIVE Tracker についてその他

- 要点
  - Base Station 2.0 でも同時に最大 4 つまでしか Base Station を認識しないため、ロストしやすい
  - 無線運用の場合 2.4 GHz 帯のため周囲の電波環境に左右されやすい

　Vive は Tracker はあくまで VR 機器なので、他の 4 機材と比べると安定性に欠けます。トラッキングの要となる Base Station は 2 つまで、2.0 でも同時には 4 つまでしか認識されないため、どうしても死角が多くなるからです。また通信の問題もあります。基本的に 2.4 GHz 帯無線通信前提なので、電波環境にも左右されてしまいます。幸いにも Tracker は有線接続での認識が可能なので、慣性センサ式のようにケーブルを身体に這わせることで解決ができます。

# まとめ
　モーションキャプチャシステムは値段が高ければ高いほどクオリティは上がります。しかしそれに伴って人員や土地のリソースの要求量が上がります。また方式の違いにより使用に適さないシチュエーションも多々存在するので、使い分けることができれば良いでしょう。（いや、買えないんだがね……欲しい……）