AR kit で顔面キャスアプリを作る (その3 顔面情報の送受信)
今回やること
今回は、その2で確認した、顔面各パーツの数値データを、アプリとサーバーの間で送受信します。
送信
こんな感じでサーバーに数値をリアルタイムに送信することに成功しました。
AR kitのFaceTrackingで顔の各パーツの動きを数値で取ってWebSocketでリアルタイム送信させる試み。動画は口の開き具合(jawOpen;全開が1.0)。来週は受信側を作っていきます。 pic.twitter.com/2jwVaqDuOZ
— からあげ (@krgpi) 2019年1月30日
FaceTracking中にfaceGeometryがアップデートされた時に呼ばれる関数に、Socketに値を送信するコードを挿入しました。
受信
サーバーから受信した値を元に顔の3Dオブジェクトを動かします。
見てもらった方が早いので、コードです。func viewdidload()から抜いてきてます。
socket io の部分は他のViewでも使うためClassを作って使いまわしてます。適宜読み替えてください。
次回
めでたくサーバーを介して端末間(1対多)で顔面のデータ(ジオメトリ)を共有できる基本機能が完成したので、細かいところを作り込んでいきたいと思います。
Client側
- jawOpen以外の値も送受信させる
- diffuse.contentsする画像を変えられるようにして、どの画像にしたかもSocketで送受信させる
Server側
- 配信者を複数人対応(Roomの自動生成)
デュアルモニターにしてるのですが、左のモニターだけ見すぎて、反対側の肩こりがひどいです。今年こそ4Kモニター導入…?