これちのPost-it

技術ネタをペラペラと

Unityのマーカー認識だけでバーチャルYouTuberになってみた

はじめに

現在バーチャルYouTuberになるには HTC Vive のような VR HMDや、Perception Neuronのような全身モーションキャプチャーバイスが必要です。しかしそれらを用意するのは敷居が高いです。
そこで今回は、特別なデバイスを使わずに PC だけでバーチャルYouTuberになる方法をざっくりと紹介したいと思います。

今回作った動画

www.youtube.com

必要なもの

以下のものを用意、もしくはAsset を Unity の新規プロジェクトに Import しておいてください。

  • PC(できればカメラつき。なければWebカメラが必要)
  • Unity 2017.2以降
    • Vuforia
      • マーカーを認識し、その位置にオブジェクトを表示する機能を持つ
    • Recorder。こちらからDL
      • Unity内で動画撮影するために使用。なぜか音声は録音できなかったのでスマホで録音
  • 動画編集ソフト
    • 今回はiMovieを使用しましたが字幕文字サイズや位置の調整が自由に出来ないのでおすすめはしません(Hikakin は Final Cut Pro を使用)
  • 3Dモデル
    • Mayaを使って自作。3Dモデルを作る前に iPad Pro で2D絵も作成しました
  • 印刷したマーカー×3
    • 頭・右手・左手のPCから見える位置に貼り付けるマーカー f:id:korechi:20180210092153j:plain:h400
      この画像は、Unity に Vuforia をインポートすると Unity Project の中のどこかに保存されます。astronaut, fissure, oxygen という名前で探せばどこかにあるはずです。

システム全体像

雑ですみません。笑
頭・右手・左手に印刷されたマーカーをセットし。PC のカメラから見えるようにマーカーの向きを調整して下さい。
f:id:korechi:20180210095927j:plain

Vuforiaの使い方

ここが参考になりました。
www.noshimemo.com

Recorderの使い方

ここが参考になりました。
tsubakit1.hateblo.jp

撮影手順

  1. Unityを起動
  2. GameObject->Vuforia->ARCameraGameObject->Vuforia->Image×3をhierarchyに配置
    • 途中で必要なコンポーネントは適宜インポート
    • Unity のインストール時に Vuforia をインストールしておく必要があります
    • Imageは適宜、FaceImage, RightHandImage, LeftHandImageのように名前を分けておきましょう
    • ARCamera->Open Vuforia configuration から Max Simultaneous Tracked Image を 3 にしましょう。最大3つのマーカーを同時にトラッキングできます
  3. Image Target を変更
    • 3つの Image が同じ画像を使わないように注意 f:id:korechi:20180210100613p:plain:h400
  4. 3Dモデルを Image の子どもとしてアタッチ
    f:id:korechi:20180210100409p:plain
  5. UI->RawImageで背景となる画像を用意し、Rendere Mode を Screen Space - Camera にする
    • こうすると、3D のオブジェクトは UI Canvas より前に表示され、カメラの映像は後ろに隠れる
      f:id:korechi:20180210101031p:plain:h400
  6. Tools > Recorder > Videoでウインドウを開き、Start Recording で撮影開始
  7. Stop Recording で撮影終了
    • デフォルトでは、Project->Recordings フォルダに動画が保存される (8. 適宜動画を編集)
  8. YouTube に公開

バーチャルYouTuberになってみた所感

Vuforia を顔トラッキングに使用するとブレが結構気になる

顔を動かしていないのにモデルがぶれたり、少し顔の角度を変えるとすぐトラッキングロスする。しかし、手のトラッキングはそんなに気にならない。(手がぶれぶれするのは許容できるのかも)
しっかりとバーチャルYouTuberを続けたいなら顔だけも別のトラッキング方法を用いた方が良いかもしれない。例えば VR HMD とか。

PCと顔の距離感が難しい

PCから離れすぎるとトラッキングロス。逆に近すぎても動きをつけるのが大変に。
オブジェクトのサイズ感、PCとの距離にノウハウが求められそう。

iMovie は バーチャルYouTuber の動画作成にあまり向いていない

字幕の自由度が低いのと、エディタ内のタイムラインにコメントを残せない(僕が見つけられなかっただけかも)のが気になりました。
例えば、「ここは~について話している」といったコメントをいろんな箇所に見えるように残しておきたいなと思いました。

Maya はBlender より操作感が Unity に近く扱いやすい

W, E, Rキーのショートカットが移動・回転・スケールに対応しているなど、Maya は比較的 Unity と近い操作感で扱うことができました。
値段は高いですが、無償体験版もありますし Unity を触ったことある人にはこれから Maya をおすすめします。

台本を作っておくことはとても大事

台本があると撮影がスムーズに進みます。しかし、台本だけでちゃんと面白いものにするのはそれなりの技術も必要なので、ある程度慣れたらアドリブでやってみても面白いのかも?
2本しかまだ作っていないのでまだ知見が足りていません。

声は後からでも収録し直して追加できる

バーチャルYouTuberの強みですが、映像と音声が必ずしも同じタイミングに撮影されている必要はありません。あとからセリフだけ追加したり、聞き取りにくかったら取り直すことも可能です。
でも口パクを追加したらまたちょっと違うのかも。

動画作成には結構時間がかかる

(台本作成)、撮影準備、撮影、編集、公開、と、動画撮影に必要となる作業は結構あります。
撮影~公開までは3時間で終わったとしても、ネタを考えている時間など、作業時間以外にも結構な時間とられます。
このコストと目的・楽しさを天秤にかけましょう。

Unity で撮影するなら Unity 経験者はそれなりに有利

エンターキーを押したら~の処理をする、など基本的なスクリプトは多少書くことになると思います。
そういった時の自由度や、そこにかかる時間は Unity に慣れている人の方が有利であることは間違いなくあると思います。
とは言え中でゲーム実装とかでもしない限り複雑なコードは書かないと思うので、Unity 未経験者でも全然大丈夫だとも思います。
そこは作りたい動画の内容次第かな。

今後の方針

ひとまず動画を公開し、バーチャルYouTuberになってみるという目的は達成できました。
ただ、一度なってみて満足してしまったのと、これを継続的に続けていくことはそれなりに負担がかかるのも分かったので、これからもバーチャルYouTuberを続けていくかは要検討、というところです。
たまーーにネタを思いついたら動画をあげてみる、くらいのスタンスが僕には良いのかもしれないなと思いました。
あ、でも Maya を使って 3Dモデルを作成する訓練としてはとても良かったです!
3Dモデルへのアレルギーが大分減りました。笑
これからはこの新しい技術を活かしつつ AR/VR にまた時間を割いていこうと思います。