Unityを用いた肉体の進化について

この記事はKAYAC Advent Calendar 2021の16日目です。

こんにちは。新卒サーバサイドエンジニアのみんと*1です。

皆さんは、次世代の肉体を手に入れ、来たるべき新時代に備えたいと思ったことがありますか?

僕はあります。

ということでUnityを使って電子上に存在可能な新たなる肉体を手に入れていきたいと思います。

Unityで新しい肉体を作る

次の3ステップで新しい顔を作っていきます。

1. 新たなる肉体となる依代を用意する

絵を描きます。

とりあえずのプロトタイプボディとして、顔と髪を用意しました。

f:id:otama_jaccy:20211216082916p:plain
依代

2. 古い肉体の情報を取得する

Unityで顔のパーツを取得するために、OpenCV for UnityDlib FaceLandmark Detectorを利用しました。どちらも有料のアセットですが、セールで半額になってるので買うなら今*2がおすすめです。

Dlib FaceLandmark Detectorは、画像から目や口などの形状推定をしてくれるライブラリです。 カメラから取得した画像を、このライブラリに渡してあげると次の図のように、顔のランドマークの座標を教えてくれます。

3. 古い肉体の情報を元に、Unity上に新たな目や口などを構成し表情を作る

2で取得した情報を1で用意した依代に埋め込みます。

f:id:otama_jaccy:20211216082944p:plain
依代に取り込まれたボーン

完成品

上の3つの工程を経て、新しい肉体が出来上がります。

f:id:otama_jaccy:20211216083917g:plain
次世代の肉体

おわりに

以上です。いかがでしたか? カヤックでは次世代の肉体を手に入れたい社員を募集中です。

www.kayac.com

*1:本名

*2:2021年12月16日現在