低スペックPCでVtuberになるいくつかの方法

# はじめに
なかじ氏（[@nkjzm](https://twitter.com/nkjzm)）の[Vtuberハンズオン](https://supporterzcolab.com/event/321/)に参加してしばらく、ノートPCのWebカメラで手軽にVtuberになる方法を調査したり実装したりしていました。
この記事では、それらを導入するための学習リソースを、メリットとデメリットと共にまとめました。

# Vtuberを始める方法

## 事前準備
Vtuberを始めるには、以下の２つのアプリが必要です。

1. 表情や体の動きをモデルに同期させるアプリ
2. ライブ映像を収録・配信するアプリ

この記事では主に、1.のアプリの特徴についてまとめます。
（ライブ配信やUnityを未経験の方は、先に[こちら](#ライブ配信やunityを未経験の場合)等で入門するのがオススメです）

## 1. 表情や体の動きをモデルに同期させるアプリ

### **方法①: 「FaceRig」を使う**

商用ソフトウェアである「[FaceRig](http://store.steampowered.com/app/274920/FaceRig/)」を利用する方法です。
導入コストが低かったためか、このアプリを使う方法がこれまで最もスタンダードな手法でした。

#### 実装例

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Vtuberテスト①: FaceRig<br>　ノートPCのスペックだと、FaceRigが一番安定する。 <a href="https://t.co/RPjo7YXMTh">pic.twitter.com/RPjo7YXMTh</a></p>&mdash; Hirosaji (@hirosaji) <a href="https://twitter.com/hirosaji/status/977827102501163013?ref_src=twsrc%5Etfw">2018年3月25日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

PC: Surface Pro 4
OS: Windows 8.1
（※モデルはAgate氏の[アライさん](http://steamcommunity.com/sharedfiles/filedetails/?id=971114318)をお借りしました）

#### メリット
- 価格が安い（¥1,480）
- 導入コストが低い（DL後すぐに始められる）
- 高いパフォーマンスが得やすい（高スペックPCでなくても、高FPSが安定する）

#### デメリット
- 対応OSがWindowsのみ
- 3Dモデルの読込形式がCOLLADA(.dae)のみ
- 商業利用に制約がある（[Pro版](http://store.steampowered.com/app/315200/FaceRig_Pro_Upgrade/)や[Studio版](http://store.steampowered.com/app/571690/FaceRig_Studio__Personal/)が必要）
- 機能拡張ができない

#### 学習リソース
・[お手軽にはじめるバーチャルYouTuber(VTuber)になる方法](https://medium.com/@GOROman_1661/%E4%B8%AD%E3%81%AE%E4%BA%BA-%E4%BA%8C%E6%AC%A1%E5%85%83-%E3%81%AB%E3%81%AA%E3%82%8B%E6%96%B9%E6%B3%95-facerig-live2d-unity-obs-avvoicechanger-%E6%B0%97%E5%90%88-d49c3d456ed6)
・[FaceRigを使って配信と自作Live2Dモデル使用](http://bibinbaleo.hatenablog.com/entry/2017/12/31/220012)
・[【Facerig/Live2D】使い方とバーチャルYoutuberになる方法](https://minimalist.joho.info/windows10/facerig-vertual-youtuber/)


### **方法②: 「OpenCV」と「Dlib」を使う**

Unityで表情認識などの画像処理ができるAsset「[OpenCV](https://assetstore.unity.com/packages/tools/integration/opencv-for-unity-21088)」「[Dlib](https://assetstore.unity.com/packages/tools/integration/dlib-facelandmark-detector-64314)」を活用したアプリを作成・利用する方法です。

#### 実装例

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Vtuberテスト②: OpenCV + Dlib<br>　ラグが酷い...。最適化か高スペックPCが必要だ...。 <a href="https://t.co/P6B7Dn8VDk">pic.twitter.com/P6B7Dn8VDk</a></p>&mdash; Hirosaji (@hirosaji) <a href="https://twitter.com/hirosaji/status/977827282575269888?ref_src=twsrc%5Etfw">2018年3月25日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

PC: MacBook Air (13インチ, 2017)
OS: macOS High Sierra
プラットフォーム: Unity 2017.3.1
（※モデルは醤油せんべい氏([@showyousenbei](https://twitter.com/showyousenbei))の[鹿島](http://library.live2d.com/Libraries/view/000122/showyousenbei)さんをお借りしました）

#### メリット
- 人やモデルに合わせてパラメータを調整できる
- マルチプラットフォーム対応（デスクトップ, モバイル, Web）
- 画像処理系の機能が拡張しやすい
    - エラー画面や情動的な画像の検出とモザイク処理
    - SNS映えする画面の検出と自動投稿
    - 顕著性マップを利用した文章(説明文等)や画像(広告等)の生成・分析
    - など...

#### デメリット
- 価格が少し高い（OpenCV(\$95), Dlib(\$40)）
- 高スペックPCや高い最適化技術が必要

#### 学習リソース
- [FaceRig無しでも中の人(二次元)になりたい！【Unity × OpenCV × Dlib × Live2D】](https://qiita.com/utibenkei/items/15925db826721f6bb00c)
- [iPhoneXがなくてもアニ文字したいんだ！ 【Unity×OpenCV×Dlib】](https://qiita.com/kenta71/items/f18c0092b14e74a1e6aa#dlib-facelandmark-detector%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88)
- [UnityとOpenCVとDlibとARでユニティちゃんになってみた facetracking 2018](http://mswim2000189.hatenablog.com/entry/2018/03/04/022218)

### **方法③: 「Face Tracking with ARKit」を使う**
iPhoneXと親和性の高いことで注目される「[Face Tracking with ARKit](https://developer.apple.com/videos/play/fall2017/601/)」を活用したアプリを作成・利用する方法です。
ちなみに、最近注目を集める[バーチャルライバー](https://www.ichikara.co.jp/official)が使う「[にじさんじ](https://www.ichikara.co.jp/nijisanji)」にも、この技術が使われているようです。

#### 実装例

<blockquote class="twitter-tweet" data-conversation="none" data-lang="ja"><p lang="ja" dir="ltr">iPhone X+ARKit+Live2Dがどんな感じに動くかのサンプル<br>(音声はPCで再生してるやつを録音したもの)<br>まだ表情のパラメーターは弄りがいがある感じ <a href="https://t.co/xNQZcQhsTY">pic.twitter.com/xNQZcQhsTY</a></p>&mdash; みっきー＠SHT晴風14 (@mzyy94) <a href="https://twitter.com/mzyy94/status/931228533166260225?ref_src=twsrc%5Etfw">2017年11月16日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

#### メリット
- 価格が無料
- 人やモデルに合わせてパラメータが調整できる
- 既に複数のプラットフォーム(Unity, Xcode)で開発報告がある
- Unityならマルチプラットフォーム対応（デスクトップ, モバイル, Web）
- AR, VR系の機能が拡張しやすい

#### デメリット
- iPhoneXなどのデプスカメラが必要
- 高スペックPCや高い最適化技術が必要

#### 学習リソース
- [Unity ARKit PluginのFace Trackingを使ってみる](http://www.noshimemo.com/entry/2017/12/01/000000)
- [【Unity】ARKitのFaceTrackingでユニティちゃんに変身する](http://tm8r.hateblo.jp/entry/2017/12/04/135602)
- [iPhoneX で Face Tracking with ARKit を実装する](https://qiita.com/koooootake/items/ebb858785a69dbe5d901)
- [ARKit の Face Tracking で顔にマスクをつける for iPhone X - 実践編](http://appleengine.hatenablog.com/entry/2017/11/17/180359)

### **方法④: 「Intel® RealSense™ SDK」を使う**
Intelのデプスカメラに特化した「[Intel® RealSense™ SDK](https://software.intel.com/en-us/realsense-sdk-windows-eol)」を活用したアプリを作成・利用する方法です。

#### 実装例

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Unityちゃん表情追加確認です。 <a href="https://t.co/UnKmy9Syar">pic.twitter.com/UnKmy9Syar</a></p>&mdash; 琴葉 葵（偽） (@Hv2RMjHzDyqXVIr) <a href="https://twitter.com/Hv2RMjHzDyqXVIr/status/886909132518838272?ref_src=twsrc%5Etfw">2017年7月17日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

#### メリット
- 人やモデルに合わせてパラメータを調整できる
- Unityならマルチプラットフォーム対応（デスクトップ, モバイル, Web）
- 表情だけでなく、手や指の動きも同期できる

#### デメリット
- 対応OSがWindowsのみ（[librealsense](thub.com/IntelRealSense/librealsense)を使えばMacでも可？）
- 全機能を使うには専用のカメラ(Intel® RealSense™ Depth Camera)が必要（[参考](https://www.buildinsider.net/small/bookrealsense/0104)）

#### 学習リソース
- [MMD形式キャラクターモデルの表情・頭・位置をウェブカメラで動かす](https://qiita.com/Hv2RMjHzDyqXVIr/items/7e1aca3506a05aa20644)
- [RealsenseSDKとWEBカメラでキャラクターになりきる](https://qiita.com/akihiro01051/items/ace3a2bfd655c764caf3)
- [RealsenseSDKとWEBカメラでキャラクターになりきる(Live2D編)](https://qiita.com/akihiro01051/items/c050e1e1e8dbbee8c041)


### **方法⑤: 「FaceVTuber」を使う**
彗星の如く現れた、超お手軽Webアプリ「[FaceVTuber](https://facevtuber.com/)」を利用した方法です。

#### 実装例

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Vtuberテスト③: FaceVTuber<br>　解像度は低いけど、無料で手軽で高パフォーマンス。 <a href="https://t.co/n72NrQ6ZV2">pic.twitter.com/n72NrQ6ZV2</a></p>&mdash; Hirosaji (@hirosaji) <a href="https://twitter.com/hirosaji/status/977828747947655168?ref_src=twsrc%5Etfw">2018年3月25日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

PC: MacBook Air (13インチ, 2017)
OS: macOS High Sierra
ブラウザ: Google Chrome
（※モデルは[キズナアイ](http://library.live2d.com/Libraries/view/000122/showyousenbei)さんをお借りしました）

#### メリット
- 価格が無料（2018年3月現在）
- 導入コストが低い（モデルのアップロード後すぐに始められる）
- 高いパフォーマンスが得やすい（高スペックPCでなくても、高FPSが安定する）
- 3Dモデルが利用可能（MMD形式）

#### デメリット
- ~~解像度が低い~~ ※少しずつ改善されています（[ソース](https://twitter.com/FaceVTuber/status/979986519493521408)）
- 機能拡張ができない
- 動作環境がWebブラウザに限られる

#### 学習リソース
- [FaceVTuber](https://facevtuber.com/)
- [誰でも簡単にバーチャルユーチューバー！FaceVTuberとdynamic import](https://qiita.com/kotauchisunsun/items/dd2aa895321a55faf1a1)


## 2. ライブ映像を収録・配信するアプリ

[OBS](https://obsproject.com/ja)というフリーソフトを使うのがおそらく主流です。
非常に高機能なフリーソフトなので、特別高度な加工が必要でない限りは、このアプリを使うと良いでしょう。

- [OBSのダウンロードページ](https://obsproject.com/ja/download)
- [OBSの詳しい使い方](https://www18.atwiki.jp/live2ch/pages/468.html)


## 実装例

これらアプリを組み合わせれば、簡単にVtuber動画を作ることができます。
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">試しにゲーム実況Vtuberを作ってみる。 <a href="https://t.co/LTShP1Vi4b">pic.twitter.com/LTShP1Vi4b</a></p>&mdash; Hirosaji (@hirosaji) <a href="https://twitter.com/hirosaji/status/977847609237712896?ref_src=twsrc%5Etfw">2018年3月25日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


#（ライブ配信やUnityを未経験の場合）
「はじめに」で書いた[Vtuberハンズオン](https://supporterzcolab.com/event/321/)の発表資料で一度、導入から配信までの流れに触れておくのがオススメです。
全体の流れを把握できるほか、UnityやOBSなどの代表的なツールの連携を体感することができます。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">初めて作ったVtuber。<br>（<a href="https://t.co/LggymLNizg">https://t.co/LggymLNizg</a>より） <a href="https://t.co/gRDkRa6JFd">pic.twitter.com/gRDkRa6JFd</a></p>&mdash; Hirosaji (@hirosaji) <a href="https://twitter.com/hirosaji/status/977826780336631808?ref_src=twsrc%5Etfw">2018年3月25日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

↑ハンズオン資料だけで、こんなVtuberが作れます。
（Webカメラは使わず、入力音声と同期して口を動かすLipSync機能を活用）


# まとめ
この記事では、一般のノート型のような低スペックPCでVtuberになる方法をまとめました。
表にすると、各特徴はこんな感じです。

|  | **FaceRig** | **OpenCV + Dlib** | **ARKit** | **RealSense SDK** | **FaceVTuber** |
|:--:|:--:|:--:|:--:|:--:|:--:|
| **動作環境** | PC(Winのみ) | PC/モバイル/Web | PC/モバイル/Web | PC/モバイル/Web | Web |
| **開発環境** | - | Win/Mac | Win/Mac | Win(/Mac) | - |
| **対応モデル** | 3D(.dae)/2D | 3D/2D | 3D/2D | 3D/2D | 3D(.pmx) |
| **導入コスト** | 低 | 高 | 高 | 高 | 低 |
| **解像度** | 高 | 高 | 高 | 高 | 中 |
| **価格** | ¥1,480 | \$95+$40 | 無料 | 無料（専用カメラは有料） | 無料 |
| **拡張性** | - | 高 | 高 | 高 | - |
| **動作部位** | 顔 | 顔 | 顔 | 顔/手 | 顔 |
| **表情の変更** | 可 | 可 | 可 | 可 | 不可 |



あまり機能や解像度を欲張らなければ、低スペックPCでも、一般公開されているモデルを使って手軽にVtuberを始めることができそうです。