FaceRigなんてもう古い！Vをやるならこれを使え！

# はじめに

　**この記事は宣伝用です。技術的なところは以下のリンクをたどってください。**
[OpenCvSharpとDlibDotNetでやるFace Tracking + α](https://qiita.com/kumaS-kumachan/items/326ec6afa201c85d0a34)
[Unityでの async・await・lock](https://qiita.com/kumaS-kumachan/items/06d615c9616ec92e3ff6)
[WindowsでTensorFlow liteをビルドする](https://qiita.com/kumaS-kumachan/items/be4b508ebd23955e648d)


　あと、タイトルはやや釣りぎみです。FaceRigもいいツールだと思います。私が作ったもの（kumaS.FaceTracking）も性能自体はほぼ変わらないレベルまで仕上げましたが。~~(タイトルはインパクトないとダメだってマッマが...)~~

# 環境

* Windows 10 Pro
* Unity2018.3.8f1

　Unityの設定

* .NET 4.x Equivalent (Scripiting Runtime Version)
* Mono (Scripiting Backend)
* .NET Standard 2.0 (Api Compatibility Level)

　My PC のスペック

* CPU : i7-7700HQ
* GPU : GTX1050 (今回はあまり関係ない)
* メモリ : 16GB

# つくったものの概要(宣伝タイム)

　V界隈に仲間入りするのには高い、高い壁があった。モデルを用意するのもそうだが、何より動かすのが難しい。お金があれば他の人に任せたり、高い機器やソフトのごり押し(over 500,000 yen)できるけど、そんなにお金使えないよね？そして、こんな記事見ないと思うし。
　VR機器は高いし、手で動かしてというのはやるのは簡単だけど完成度を高めるのは難しい。<font color="silver">(スマホで出てるやつはカスタマイズできないから除外だよ♡)</font>
自分で作るにしてもWebカメラから動きを導くのは難しい。(Unityのfacelandmark?そこそこお金かかるよね？)ということで **私の作った「kumaS.FaceTracking ・ kumaS.PoseNet」の出番だ！** 

　 <font color="#55c500">**導入簡単・様々なスペックのマシンに対応・カスタマイズもしやすい・VRMとLive2D両方対応、FaceTracking だけではなく全身トラッキングもできる。そんなものがあるんです。** </font>
　
## できること

 * Live2D・適切なボーンとBlendShapeをもった3Dモデルへのフェイストラッキングの反映
 * まばたき・目玉の位置も取得、反映
 * マシンの性能ごとに合わせたパフォーマンスの設定
 * 様々なカスタマイズに対応（ただのスクリプトなので）
 * 全身トラッキング（3Dモデル） 

### デモ

　いろいろここに書くより動画見せたほうが早いので貼っときます。<font color="silver">（変な模様がついているのはgif化した時の影響だよ）</font>
![demo2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/338159/32635aa6-91a2-4486-e35a-2b6221dddf09.gif)


## 類似製品との比較

　Vを動かすものにいろいろあると思いますがそれぞれに対して(kumaS.FaceTracking・kumaS.PoseNetと比べた時の)メリット・デメリットをまとめました。

### モーションキャプチャ用の機器
 **<font color="blue">メリット</font>** 
正確に、高FPSで、たくさんの箇所をキャプチャできる。性能は最強。
 **<font color="red">デメリット</font>** 
高い。とにかく高い。法人か石油王じゃなきゃやってられない。
### VR機器
 **<font color="blue">メリット</font>** 
手、頭をキャプチャできる。VRChat使えば割と楽に撮れる。
 **<font color="red">デメリット</font>** 
VRChatを使わないとそこそこ難しい。そこそこお値段する。結局この世界に回帰するけど。
### 専用カメラ(kinectとか)
 **<font color="blue">メリット</font>** 
全身撮れる。
 **<font color="red">デメリット</font>** 
難しい。細かいところは撮れない。安価とはいえお金かかる。
###  OpenCvSharpとかFacelandmarkとか
 **<font color="blue">メリット</font>** 
これらにできることは私のもので全てできるのでなし。
 **<font color="red">デメリット</font>** 
難しい。お金かかる。
###  PoseNet
 **<font color="blue">メリット</font>** 
これらにできることは私のもので全てできるのでなし。
 **<font color="red">デメリット</font>** 
難しい。そもそもUnityに使える実装がない。

　<font color="#55c500">**結論。個人でやる分には私の「kumaS.FaceTracking・kumaS.PoseNet」の勝利！** </font>

## vs FaceRig

　FaceRigについて書いてなかったのはここでしっかり比較するためです。

|項目|kumaS.FaceTracking|FaceRig|
|---:|---:|--:|
|値段|<font color="blue">基本無料</font>|<font color="red">有料</font>|
|信頼性|<font color="red">これから（安定はしている）</font>|<font color="blue">世界中で使われている</font>|
|FPS|ぬるぬる|ぬるぬる|
|精度|良好|良好|
|カスタ<br>マイズ|<font color="blue">可能。パラメータはもちろん、<br>スクリプトも。</font>|<font color="red">パラメータのみ可</font>|
|対応<br>モデル|<font color="blue">Live2D・ボーンとBlendShape<br>を設定した3Dモデル。<br>独自実装も可能。|<font color="red">独自ファイル<br>追加購入でLive2D可</font>|
|商用|<font color="blue">そのまま可（責任はとらない）</font>|<font color="red">プロ版にする必要あり</font>|
なお、FPSと精度はどちらも似たようなフェイストラッキング方法なので似たり寄ったり。

 **結果**
<font color="#55c500">**私の「kumaS.FaceTracking」の勝利！** </font>
信頼性がほしい方はどうぞFaceRigをお使いください。

# 配布場所
　それでは！当の「kumaS.FaceTracking・kumaS.PoseNet」ですが、Boothで販売しております。
　無料のやつと、有料のやつがあります。気を付けてください。

[**Tracking in Unity** (booth)](https://kumas.booth.pm/items/1657599)

　無料のほうは、プログラム（.unitypackage）と最低限の説明のみ。
　有料のほうは、うまく動かないときや、よりよい設定をするときのための How to 本（いや？HTMLファイル？）が入っています。
　初心者の方や、手っ取り早く使いたい方は有料のものもご購入するのをおすすめします。できるだけわかりやすく使えるようにしましたが、多機能なので慣れるまで扱いづらいかもしれません。

# さいごに
　ここまで読んでくださりありがとうございました。この「kumaS.FaceTracking」で、みなさんのVライフがよりよくなれば幸いです。なお、Boothでチップを積んでくださると喜びます。