バーチャルキャラクターの表情表現のためのデバイスとソフトウェア

# はじめに
バーチャルキャラクターに対してどれだけプレゼンスを感じられるかというのは非常に大きな課題ですよね。
そのプレゼンスの表現において表情は非常に大きな要素です。

様々な場面・状況があり、バーチャルキャラクターに表情の概念を実装する手法も様々です。
「これ」という正解ないように思え、イベントやバーチャルキャラクターごとに工夫を凝らしているように思います。
とはいえ、ある程度よく使われる手法や組み合わせといったものはあるように感じているので、自分の知っているものを紹介していきます。
(Unityのようなリアルタイムゲームエンジン上にシステムを組む前提で、既製品のVTuberシステムは省きます。)

# デバイスとソフトパターン
## ヘッドマウントカメラ +  Dynamixyz
ヘルメットのようなものにカメラをつけてそれで常時顔を映し、その映像から表情解析してキャラクターに反映させます。
![ヘッドマウントカメラ](https://cgworld.jp/feature/images/making/201907-cgw251-hs3hiyori/0201b.jpg)
出典：[茨城県が生み出した注目の地域密着型バーチャルキャラクター：茨城県公認Vtuber「茨ひより」](https://cgworld.jp/feature/201907-cgw251-hs3hiyori-2.html)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140271/59d095f9-cfb8-f0e1-4589-3d3509d5c2b5.png)
出典：[Dynamixyz](http://www.dynamixyz.com/performer-single-view/)
### 長所
 - フェイストラッキングカメラの位置に依存せず動き回れる
 - トラッキングロストが少ない
 - 高い精度で多くの情報を取れることが多い

### 短所
 - ちょっと重い
 - 動きの邪魔
 - 視界が狭まる
 - （解析ソフトにもよるが）費用がかかる
 - リッチな情報が取れる分、モデル設定も大変になりがち

### 使われる場面
フェイストラッキングカメラの位置に依存せず動き回れるため、[OptiTrack](https://www.optitrack.jp/)や[Vicon](https://www.vicon.com/)のような**リッチな光学式モーションキャプチャを使って動き回るときに有効**です。
この手法を取るときは金銭的に余裕があるパターンも多いため、表情解析ソフトに[Dynamixyz](http://www.dynamixyz.com/)が選定されることが多いですね。
Dynamixyzは映画製作やゲームの現場で使われるほど非常に解析性能が高いですが、お値段に関してはトレードオフなっています。

### 使われている実例
Vtuber「茨ひより」ちゃんはヘッドマウントカメラとDynamixyzの組み合わせであることを公開([茨城県が生み出した注目の地域密着型バーチャルキャラクター：茨城県公認Vtuber「茨ひより」](https://cgworld.jp/feature/201907-cgw251-hs3hiyori-2.html))しています。
[![ひより](http://img.youtube.com/vi/q84pn-t2CZ4/hqdefault.jpg)](https://youtu.be/q84pn-t2CZ4)
[【#01】はじめまして、茨ひよりです！~自己紹介編~](https://youtu.be/q84pn-t2CZ4)
非常に高い精度での表情反映を実現しながら、体全体での大きな動きも実現していて非常に魅力的ですね。

## iPhoneX+ARkit FaceCapture
iPhoneX以降のTrueDepthカメラ搭載デバイスで使えるARkitのFaceCaptureでの表情解析データとVTuberシステムを通信させ、そのデータをキャラクターに反映させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140271/79ad6f66-df40-53e2-5948-e0ae9d099a2d.png)
出典：[iPhone X offers a cheap alternative to mo-cap](https://www.techspot.com/news/73824-iphone-x-offers-cheap-alternative-mo-cap.html)

### 長所
 - デバイス入手敷居が低い
 - デバイスに表情解析ソフトもついているようなものなので総合的に安い
 - 普及デバイスなのでネットに開発ナレッジが多い
 - 一般的に使い慣らされたデバイスなのでVTuberシステムを非エンジニアが使う想定に落とし込みやすい

### 短所
 - 頭につけるには重い
 - ディスプレイが視界を妨げる
 - カメラを机などに固定することが多く、その場合動きが制限される(固定カメラ画角が動ける範囲)
 - スマホ端末と通信する必要性がある

### 使われる場面
デバイスが重く大きく、頭の前につけて動き回るのは現実的ではないため、机に固定して**ゲーム実況や雑談のように基本的に動き回らないようなものに有効**です。

### 使われている実例
にじ3Dではこの手法が使われていることが[公開](https://prtimes.jp/main/html/rd/p/000000035.000030865.html)されています。
![にじ3D](https://prtimes.jp/i/30865/35/resize/d30865-35-700608-2.jpg)
出典：[「3Dライブ配信を、私1人で。」3Dにじさんじアプリ、にじさんじバーチャルライバーに配布開始！](https://cgworld.jp/feature/201907-cgw251-hs3hiyori-2.html)

[![にじ3D](http://img.youtube.com/vi/T0KvHCn03FY/hqdefault.jpg)](https://www.youtube.com/watch?v=T0KvHCn03FY)
[樋口楓のにじ3Dお披露目&重大発表!!](https://www.youtube.com/watch?v=T0KvHCn03FY)
動きの制限こそあれど、普及デバイスでここまでの精度を出せるのは最高ですよね。

## WebCamera + Dlib
Dlibは機械学習ライブラリの一つで、とても手軽に顔の器官検出が可能です。
それを用いて自前で顔の特徴点検出のシステムを組んでしまうというものです。
![image.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F140271%2F55bee0b1-ee81-fb04-225c-5835e7e2cbbd.png?ixlib=rb-1.2.2&auto=compress%2Cformat&gif-q=60&w=1400&fit=max&s=38db1c7f5ad5f837ea3770604a532f9e)

### 長所
 - 実質無料

### 短所
 - 実装者の腕次第

※レイヤー的に低いところにあるので、長所も短所も実装次第

### 使われる場面
オリジナルでシステムを作りたいときや、特別に**どうしても検出したい顔器官があるような場合に有効**です。
一から作るのはなかなか骨が折れる開発になると思います。（勉強目的としてやるととっても楽しい。）

### 使われている実例
AssetStoreにて[Unity向けのプラグインが販売](https://assetstore.unity.com/packages/tools/integration/dlib-facelandmark-detector-64314)されています。

## GamePad + 独自システム
表情のトラッキングは行わず、コントローラの入力に応じて、視線を変化させます。
この手法の場合、自動ではないので手動での操作が必要で、音ゲーのごとくタイミングを合わせて操作します。
使用されるコントローラは色んな流派が存在し、PS4だったりXboxだったりSwichだったり...。
HMDを使っている場合だとそのままHMDのコントローラが表情操作のコントローラにもなりがち。

![gamepad](https://images-na.ssl-images-amazon.com/images/I/417iQ3oORYL._AC_.jpg)
出典：[Xbox 360 コントローラー](https://www.amazon.co.jp/%E3%80%90Xbox-Windows-Xbox-%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC-%E3%83%AA%E3%82%AD%E3%83%83%E3%83%89/dp/B004DL20UU)

### 長所
 - アニメ的表現がしやすい
 - 実装コストが低い
 - (そもそもトラッキングしていないので)動作が安定する
 - トラッキングの負担が演者にない

### 短所
 - 表現が表情操作者のテクニックに依存する
 - キャラ数だけ表情操作役を用意する必要がある

### 使われる場面
安定して動作し、モデルへの実装コストが低めなので**一度切りのイベントで有効**です。
また、HMDで顔が隠れたり激しい動きをしていたり、**表情のトラッキングが難しい場面で有効**です。

### 使われている実例
VRchatなど正しくですね。
コントローラを押すことで表情を変化させています。
![vrchat](https://steamcdn-a.akamaihd.net/steam/apps/438100/header.jpg?t=1572297103)
出典：[Steam](https://store.steampowered.com/app/438100/VRChat/?l=japanese)
また、表情トラッキングだけでは判別できない特殊な表情(><←こういう表情とか)を補うためにトラッキングシステムと組み合わせて使われるケースも多いです。
![ヘッドマウントカメラ](https://cgworld.jp/feature/images/making/201907-cgw251-hs3hiyori/0201d.jpg)
出典：[茨城県が生み出した注目の地域密着型バーチャルキャラクター：茨城県公認Vtuber「茨ひより」](https://cgworld.jp/feature/201907-cgw251-hs3hiyori-2.html)


## 比較まとめ
どの手法にもメリデメがあり、どれかが完全上位互換になりえることはほぼないと思います。
特に見栄えの部分に当たっては**モデラーとエンジニアと演者による匠の調整**によるところが大きいと思っています。
運用体制や予算、得意な分野から最適な手法を組み合わせて組んでいく感じでしょうね

| |ヘッドマウントカメラ <br> +Dynamixyz　  |iPhoneX <br> +ARkit FaceCapture  |WebCamera <br> + Dlib  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| GamePad + 独自システム |
|---|---|---|---|---|
|初期費用 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  |★☆☆☆☆  |★★☆☆☆  |★★★★☆  |★★★★★  |
|運用コスト &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  |★☆☆☆☆  |★★★☆☆  |★★★☆☆  |★★☆☆☆  |
|実装コスト  |★★☆☆☆  |★★☆☆☆  |★☆☆☆☆  |★★★★★  |
|演者負担  |★★☆☆☆  |★★★★☆  |★★★☆☆  |★★★★★  |
|精度  |★★★★★  |★★★★☆  |★★★☆☆  |★☆☆☆☆  |
|演技反映度  |★★★★★  |★★★★☆  |★★★☆☆  |★☆☆☆☆  |
※星の数が多いほどその項目において優れている。
個人の主観的な比較であって絶対的な比較ではないのでご注意ください。