[忘備録]OptiTrackの準備からキャリブレーション，スケルトン作成まで

#はじめに
モーションキャプチャシステムの準備から使い方まで私利私欲で書いたもの．
利用したシステムはOptiTrack．（URL：http://www.mocap.jp/optitrack/ ）

詳しいドキュメントは[こちら](http://v110.wiki.optitrack.com/index.php?title=OptiTrack_Documentation_Wiki)．

#環境
- Motive 1.9.0
- Flex3 12台
- OptiHub2 3台

#準備編
##OptiTrackとPCの接続
まずはじめにOptiTrackとPCを接続する.
＜接続するときの注意点＞
以下の画像の通りにつながないとUSBの転送容量以上のデータが流れることになり，モーションキャプチャシステムがうまく動かなくなる．またSYNCケーブルはin-outがそれぞれ対応するようにハブに接続する．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/2255d7c5-e408-e075-2161-df60a4d4e7cc.png)


##Motiveの起動とカメラ接続の確認
Motiveを起動する際は，ライセンスキーの入ったドングルをPCに差す必要がある．  
Motiveを起動すると以下の画像のような画面がでる．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/7df9e27c-5a8b-f4d4-537d-35e1e7b6d6e3.png)

ここでは設置したカメラの台数とMotiveが認識しているカメラの台数が一致しているかを画面左のCamerasで確認する．一致していないときは何か不具合があるので，配線間違いなどをチェックする．

##カメラの調整とキャリブレーション
###カメラの調整
各カメラが対象をとらえているか確認する．Cameras内のTracking(12)(Master)と書いてある部分の下の丸いマークをクリックすると，CameraPreviewの映像が，各カメラが撮影している赤外線画像になる．そこでカメラの角度などの調整を行う．次に行うキャリブレーションを行うとカメラを動かせなくなるのでここですべての調整を行う．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/11046153-3302-ca0a-6828-749ef756a14e.png)

###マスク
トラッキングカメラを円状に設置していた場合や，環境からの赤外線が入ってきた場合など，トラッキングカメラにノイズが入ることが多く発生する．そこでそのノイズを排除する機能としてマスク機能がMotiveにあるのでそれを利用する．CameraPreviewにあるMask Visible Markersをクリックすると，カメラ画像で白く映っていたところが赤く塗りつぶされる．これでマスクは完了である．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/cd8eff38-23a1-edf8-dee3-9306b5940431.png)


###Wanding
通称「儀式」
写真のキャリブレーションワンド（通称「儀式棒」）を用意し，各カメラのキャリブレーションを行う．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/69279cb4-068e-a0fe-8371-3e3b68e745dc.png)

MotiveのCameraCalibrationでStartWandingを選択する．ここでプロジェクト保存を求められるので，保存する．保存後，キャリブレーションワンドを持った人は，モーションキャプチャシステムの中に入り，中で儀式を行う．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/c4ddd204-3aae-0724-d9af-85ff38234409.png)  

Wanding中のCameraPreviewは以下の画像のようになり，各カメラの全体にWandingがいきわたるように儀式を行う．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/aa10783e-bf3a-1389-2436-ce2565545649.png)

CalibrationのSufficient For QualityがVeryHighになるまでWandingは行う．終わったらCalculateをクリックし計算が終了次第ApplyResultをクリックしWandingを終了する．（計算が終了したときは青色の軌跡がたくさん見えるようになっている）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/85445459-f342-2214-3ec6-051ef8f1d31f.png)


##グラウンディング
写真のキャリブレーションスクエアを用意し，空間の原点を設定する．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/c4aec982-bb32-b40d-9907-c871ffa6cc87.png)

原点にキャリブレーションスクエアを設置したらSetGroundPlaneをクリックしキャリブレーションは完了．（グラウンドをセットする際にキャリブレーションデータを保存するように指示されるので，プロジェクト名にあった名前を付けると良い）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/ec094d98-afc2-b994-8aad-bd9d09d2b9fc.png)

#利用編
##RigidBodyの作成
RigitBodyを作成するためには，作成したいもののマーカーをすべて選択するようにドラッグアンドドロップする．その後，右クリックでメニューを出し，Rigit Body -> Create From selected Markersを選択し作成は完了．（Projectビューが出てない場合は出しておく）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/12ce2c37-2067-4918-5d79-999b5672a6ca.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/f6566567-36d1-6bc0-6dc5-fc2cd09f349a.png)

##Skeltonの作成
Skeltonを作成する前に，体にマーカーをつける必要がある．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/17a03a0a-24ee-c298-3377-d355b1f92eee.png)
Skeltonビューを出し，プルダウンメニューからBaseline(37)を選択する．出てきた人型のモデルに示されたマーカーに従って，トラッキングマーカーを実際に張り付ける．張り終わったら，モーションキャプチャシステムの中に入ってもらい，MarkersDetectedの数がMarkersNeededと同じになることを確認する．そしてNameを設定しSkeltonPreviewをOnに設定しCreateをクリックしてSkeltonの作成は完了．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/8a1b88f2-a970-9cb5-2f8d-f760ff929e70.png)

##録画
Timelineビューの録画ボタンで録画が可能．止める場合も同じボタンでOK．再生する場合はEditに切り替えてからProjectにあるTakesを選択する．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/161850/1ab2b38f-6e26-586f-bf5f-d0dc2cdaef81.png)

#終わりに
（録画したトラッキングデータは各種形式[.fbx;.vbh;.csv]でエクスポートできる）
Unityで読み込んでみる編も書きたい．