みずぴー日記

人間の再起動ボタンはハワイのビーチにある

💖アイドルとして勤務する -理論と実践- #imas_hack

speakerdeck.com

IM@S Engineer Talks - connpassで話した。

あいさつとアジェンダ

f:id:mzp:20180712104110j:plain

こんにちは。mzpです。

f:id:mzp:20180712104115j:plain

本日はアイドルアバターで勤務する話をする。

背景: リモートワークの欠点

f:id:mzp:20180712104120j:plain

ボクの“副業”先はリモートワークを推奨している。これには雨の日は出社が面倒くさいと思う人が多かった、名古屋だけではエンジニアを集めれなかった、など様々な事情がある。

チームメンバーの半数は遠隔地に住んでいるため、リモートワークを前提とした働き方が必要となる。

f:id:mzp:20180712104123j:plain

リモートワークはいくつかの利点があるが、欠点もある。 今回は「自室から勤務する」という欠点にスポットをあてる。

f:id:mzp:20180712104126j:plain

カメラに写る範囲に変なものを置けない。 私はリモートワークをする直前に、カメラに写る範囲から物をどかすという作業をしている。

よく写るように、部屋の照明をだいぶ明るくする必要がある。 まぶしい。

f:id:mzp:20180712104131j:plain

この問題は弊社固有ではないらしく、同じくリモートワークを推進するソニックガーデン社ではこのような解決案が提案されている。(テレビ会議を劇的に円滑にする簡単なノウハウ | Social Change!)

このようにカメラのうつる範囲にオフィス風のポスターをはることで、自宅にいながらオフィスで勤務しているかのようにみせることができる。

f:id:mzp:20180712104135j:plain

こういった問題があるため、社内でVR勤務を求める声があがりはじめた。 これは全社集会で「10年後なにをやっていたいか」という話をした結果だが「アバター勤務」がやりたいことにあげられている。

f:id:mzp:20180712104139j:plain

よりよい未来は自分で作っていかなければならないので、アイドルアバターによるリモートワークを開始した。

デモ

f:id:mzp:20180712104142j:plain

デモです。

アバター勤務の利点

f:id:mzp:20180712104145j:plain

これでオンラインミーティングに参加するとこのようになる。 これは今週あった朝会の様子である。

これを今年の4月から続けている。

f:id:mzp:20180712104149j:plain

背景を気にしないくてよくなる。

iPhone Xの顔認識は可視光を利用していないため、部屋の明さを気にする必要もない。

f:id:mzp:20180712104152j:plain

自分の表情が反映されるので、積極的に笑顔になろうとする意識が働く。 姿勢もよくしたほうがいい。

f:id:mzp:20180712104156j:plain

かわいい表情を維持するために表情に気をつかうようになる。

f:id:mzp:20180712104200j:plain

でもあくびをしててもかわいい。

f:id:mzp:20180712104204j:plain

自分が微笑むとアイドルも微笑み返してくれる。脳にいい。

だんだんと自分がかわいい気がしてくる。むしろ自分がアイドルだ。

社内の反応

f:id:mzp:20180712104208j:plain

同僚の反応はこのようなものだった。 だいたいみんな戸惑いつつTwitterでしゃべっていた。 Slackは静かだった。

f:id:mzp:20180712104211j:plain

一方で弊社の代表がわりといい話をしていた。

「チームメンバーとして見た目は関係ない、性別、年齢も関係ない。みながベストな格好で勤務してほしい」

f:id:mzp:20180712104214j:plain

ただ、Slackアイコンを変えたほうが反響が大きくておもしろかった。「Slackコールがアイドルからの電話になる」

社外の反応

f:id:mzp:20180712104218j:plain

いくつかブログに書いたところ、社外からもいくつかの反応をもらった。

f:id:mzp:20180712104222j:plain

「mzpさんってあの美少女の人ですか」「はいそうです」という会話をしたことである。 まさか、美少女ですかと確認されて、肯定することが生じるとは思っていなかった。

f:id:mzp:20180712104225j:plain

あと「今後、アバター勤務が一般化したとして、そのときは同調圧力が働いて無難なアバターになるのでは。美少女などが使えるのは先行者だけだ」という考察がよかった。 説得力がある。

仕組み

f:id:mzp:20180712104228j:plain

今日はエンジニアトークなので、ここからは仕組みの話をする

f:id:mzp:20180712104232j:plain

コンセプトとしては気軽につかえるアバターシステム。 リモートワークしながら使えるのが前提となるので、専用のコントローラやセンサーを使ったものは避けた。 理想は通常のカメラと同様に使えるアバターシステムである。

f:id:mzp:20180712104235j:plain

このシステムは、主に4つの部分で構成されている。 - 人間の顔をiPhoneのセンサーで認識する - 認識した結果をアイドルに変換するiPhoneアプリ - iPhoneの画面をmacOSでキャプチャする - キャプチャした結果をオンラインミーティングアプリに接続する これらを1つづつ説明していく。

iPhone Xによる顔認識

f:id:mzp:20180712104239j:plain

最初はiPhoneによる顔認識について話す。

f:id:mzp:20180712104242j:plain

iPhone XにはFace IDのために顔の形状を認識するためのセンサーが搭載されている。これは30,000以上の赤外線ドットを顔に照射することで、顔の形状を読み取る。

f:id:mzp:20180712104245j:plain

ARKitを用いることで、このセンサー類で検知した顔の向きや表情を取得できる。本当にさまざまな表情が取得できるので眉毛のうごきだけとっても左右上下の動きをとれることになってる。 ただ、ボクはそこまで自在に眉が動かせないのでデバッグできない。

f:id:mzp:20180712104249j:plain

常にカメラで顔を写すためにスタンドが必要である。 今回はライトニングドックを用いた(iPhone Lightning Dock - ホワイト - Apple(日本))。

アイドルへの変換

f:id:mzp:20180712104252j:plain

次はアイドルへの変換について話す

f:id:mzp:20180712104256j:plain

ここではiPhoneのセンサーで検知した顔の向きや表情をアバターに反映させる。開発にはUnityを用いた。

f:id:mzp:20180712104300j:plain

顔の向きの反映は座標系を間違えなければそれほど難しくはない。hただ失敗すると顔が異常な方向を向いてしまうので怖い。

f:id:mzp:20180712104304j:plain

表情の反映はいくつかの工夫が必要である。 ARKitは顔の各パーツの動きを取得しているが、アバターはモーフという単位で表情を管理している。 このギャップを埋める必要がある。

f:id:mzp:20180712104308j:plain

たとえば眉毛の上下運動を左右のまばたきと対応づける。 顎の位置を口の大きさに対応づけるといった工夫をしている。 また、表情はオーバーなほうが伝わりやすいので一部は係数をおおきめにかけている。

f:id:mzp:20180712104312j:plain

我々は目をとじるとなにも見えなくなるので、まばたきがうまく反映できているかのデバッグはむつかしい。 結果、ウインクの練習が必須となる。

f:id:mzp:20180712104315j:plain

アイドルは基本笑顔だが、我々の基本は無表情なので対応が難しい。 今回は無表情は笑顔、笑顔は歯をみせる笑顔に対応づけた。

f:id:mzp:20180712104319j:plain

眉毛をさげるといった3次元の存在である我々には難しい表情はショートカットを設ける。 ここでは口をすぼめると困った顔になるというショートカット表情を導入している。

f:id:mzp:20180712104323j:plain

しかしそこまで多彩な表情ができるわけではないので「泣き顔」「怒っている顔」などは割愛した。 仕事している上でそんなに利用しないだろうという判断のものだが、笑顔と困っている顔に制限されたアバターで勤務するのはだいぶディストピアっぽい。

f:id:mzp:20180712104326j:plain

Tスタンスではなくかわいいポーズが必要となる。 いろいろ見た中で、照れ - ニコニコ静画 (イラスト)のポーズのうちミクの後ろに腕をまわしているポーズがかわいかったので採用した。

f:id:mzp:20180712104329j:plain

そのまま適用するとこうなる。 とてもかわいいが、上半身と首をひねっているため長時間は厳しい。

f:id:mzp:20180712104418j:plain

つらいとTwitterにつぶやくと、弊社人事よりかわいいは我慢だというコメントを貰う。

f:id:mzp:20180712104421j:plain

そうはいっても首をいためそうだったので、ポーズは修正した。 このように胴体の角度をなくし、楽に維持できるようにした。

iPhoneのキャプチャ

f:id:mzp:20180712104426j:plain

次はiPhoneの画面をキャプチャする仕組みである。

f:id:mzp:20180712104434j:plain

ここはゲーム実況配信のためにさまざまな知見が蓄積されている。 HDMI出力をキャプチャする、AirPlay互換サーバーを使うなど様々な方法がある。

f:id:mzp:20180712104438j:plain

今回はmacOSを使うのでQuickTime Playerによるキャプチャを用いた。

f:id:mzp:20180712104442j:plain

キャプチャの技術的詳細は、ばんじゅんさんがPhotoStudioPlayerを作る過程で検討しているのでそちらを参照してほしい(デレステフォトスタジオのリアルタイム透過プレイヤーをつくった - ツバメになったバリスタ)。

オンラインミーティングへの参加

f:id:mzp:20180712104445j:plain

最後にオンラインミーティングへの参加である。

f:id:mzp:20180712104449j:plain

キャプチャした内容を仮想カメラとして認識させるにはCamTwistを用いた。

f:id:mzp:20180712104456j:plain

特定のアプリのみをキャプチャできるので、それでQuickTimeを選択した。

f:id:mzp:20180712104459j:plain

あとはオンラインミーティングアプリでCamTwistによって作られた仮想カメラを選択すれば、ミーティングに参加できる。 どのアプリを使うかは会社の都合によって変わるところだが、今回はzoomを用いた。

まとめ

f:id:mzp:20180712104505j:plain

まとめると、次の流れでアイドルアバターによるリモートワークを実現している。

  • iPhone X + ARKitで表情をキャプチャする
  • Unityで作成したアプリで表情をアイドルにマップする
  • macOSiPhone画面をカメラとして認識させ、オンラインミーティングに参加する

さあ、みなさんもアイドルとしてリモートワークしましょう。

自撮り機能

f:id:mzp:20180712104508j:plain

このアプリにはリモートワーク用以外にもいくつかの機能を搭載している。まずはスクリーンショット保存機能。

f:id:mzp:20180712104512j:plain

デバッグの途中でだんだんと卯月の自取り画像を作るのがたのしくなってきたのでつけた。 よりリアリティをだすためにあえてシャッター音をつけている。

撮影ボタンなどもなるべくカメラアプリに見えるよう工夫した。

f:id:mzp:20180712104515j:plain

カメラロールがこのような状態になる。 かわいい。

f:id:mzp:20180712104519j:plain

正面より斜めのほうがいいと発見した。

f:id:mzp:20180712104522j:plain

見おろす感じもいい。

f:id:mzp:20180712104526j:plain

上からみおろすのもよい。

f:id:mzp:20180712104530j:plain

シャフトアニメにありがちなポーズ、通称シャフ度をしようとしたがうまくいかなかった。

f:id:mzp:20180712104534j:plain

笑顔とウインクと顔の角度を工夫したやつです。 これがいちばんうまく撮れたと思う。

ブルーバックスクリーン

f:id:mzp:20180712104538j:plain

背景をブルーバックスクリーンにする機能もある。

f:id:mzp:20180712104542j:plain

まるでデレステのフォトスタジオみたいですね。 ということは、さきほどばんじゅんさんの発表であったPhotoStudioPlayerとくみあせると、デスクトップ上にアイドルを呼べる。

f:id:mzp:20180712104546j:plain

このためにカメラ位置の調整機能もつけているので、こうすると全身を写せる。まるでデスクトップに住んでいるようになりますね。

f:id:mzp:20180712104551j:plain

Twitterでは「伺かだ....」というコメントを何件かもらいましたがみなさんしっていますか。ボクは謎のダメージを受ける。はてブコメントではひたすら「\e」と書かれた。

あんまり続けると老人会になるのでこれくらいにしておく。

今後の課題

f:id:mzp:20180712104555j:plain

目線制御をいれたい。 iPhoneのカメラをみることなくiPhoneの画面を見る技術が必要になる気がしてる。

iOS12のARKit2では単純に顔認識の向上らしいので、さらなる精度向上が見込める。 さらに舌認識がついたので対応したいが、仕事中に舌を出すシチュエーションが思いつかないので、あまり使い道はないかもしれない。

顔しか認識しないため、あまり複雑なポーズができない。 せめて手を動かしたい。OpenPoseなど姿勢推定アルゴリズムと組合せることで、手を認識できるようになるかもしれない。

専用のコントローラを用いて腕の制御をする方式も考えられるがリモートワーク支援という文脈からはずれてしまう上、手軽さがなくなってしまうので悩み所である。

類似ツール

f:id:mzp:20180712104601j:plain

最後に類似ツールがいくつかあるので紹介する。

f:id:mzp:20180712104604j:plain

FaceRig

f:id:mzp:20180712104608j:plain

パペ文字

f:id:mzp:20180712104613j:plain

iOS12のFaceTime。 今年のWWDCで発表された新機能。もともとメッセージアプリでは絵文字に表情をつけて送信するアニモジという機能があったが、これが通話に拡張された。 キーノートを現地で聞いていたが、これを見た瞬間、時代が追いついてきた!と思った。

まとめ

f:id:mzp:20180712104618j:plainf:id:mzp:20180712104621j:plain