みなさんこんにちは!B4の室賀です。
皆様、「鬼滅の刃」はご存知でしょうか? 知らない人はいないレベルに人気を博した当マンガですが、このマンガの主人公、”竈門炭治郎(かまどたんじろう)”を、一人前の鬼殺隊に育てた師匠的な存在が、この”鱗滝左近次(うろこだきさこんじ)”さんです。 この鱗滝左近次さん、見ての通りずっと天狗のお面をしていらっしゃるんですね。 そして、私研究でARアプリ開発をやっております。
ということで今回は! 「Unityで、顔検出機能を用いて鱗滝左近次になれるARアプリ開発をしよう!!」というテーマです! 「鱗滝左近次になる」とは、ただ単に天狗のお面を被るというだけです!! (ごめんなさい、タイトル及び内容ふざけました。)
それでは早速作っていく!!
まずは天狗のお面の正面の画像を用意します。
こちらの拾った画像を、
顔だけくり抜きます。
そしたらFaceTrackingMeshという機能を用いて、こちらの画像をマスクとして顔に貼り付けるようにします。
ここまでの成果がこちら↓
目や口が合うよう位置を微調整した結果このサイズ感になりました。 いやぁ、にしても想像以上にキモチワルイ。
次に、天狗の鼻の部分を作ります。 鼻だけ、円柱のような3Dオブジェクトを使おうという作戦です。 今度は、顔検出してその座標に基づき3DオブジェクトをAR表示する機能を使います。
テキトーにシリンダー型のオブジェクトを用いて鼻を作りました。 そして今度は、FaceTrackingPoseという機能を使います。
…と、考えていたのですが、AR Session OriginのAR Face Managerにくっつけられるプレハブが一つしかない。 で、いろいろ調べてみたのですが、どうやら顔検出を用いて2つ以上のモノをAR表示するのはできなさそうでした。 (AR Session Originを2つ用意してみてビルドしてみたけど、鼻しか出ませんでした。) よって、(もしかしたらできるのかもしれないけど、)顔Meshと鼻で鱗滝さんになることは断念。 まぁ、”顔Mesh鱗滝”がめちゃキモかったのでしゃーない。
ってことで最初からお面の3Dオブジェクトないのかと探してみると、、、
「いや、めっちゃええのあるやん。」
ということで、結局クソ単純な仕様ではあるけど、顔に合わせてお面を表示するアプリにしました。 てな感じで鱗滝左近次になれるアプリ完成!!!
しっかり鱗滝さんになれてますねぇ〜〜!!
弟は調子こいて髪を白髪にしてるので、まさに鱗滝さんにそっくりだ!
ということで、顔検出を使ったクソアプリを作ったお話でした。