ソリューション

solutions

Unityでのアバター表情制御

Unity環境にてアバターの表情を制御する機能の開発実績があります。

開発実績

ユニティちゃんの表情(瞬きや口の動き)を制御した例。© Unity Technologies Japan/UCL

技術要素

  • Unity
  • Dlib
  • OpenPose

詳細

■アバター表情制御

メタバースをはじめとした仮想空間の発展により、アバターの表情制御を精度良く行う方法が求められています。

弊社ではUnityを利用したアバターの表情制御の開発実績があります。Unityでアバターの表情を制御する際に一般的に用いられるBlendShapeによる制御手法を取っています。 表情制御の元となる表情データとしては、表情推定の機械学習分野などで広く使用されているDlib Face Landmark 68データやOpenPose Face Landmark 70データを扱った経験があります。 入力データの構造や表情の制御のために必要な操作を熟知しているため、一般的な形式以外でもお客様のご希望に合わせたカスタマイズが可能です。

■入力データの例(Dlib Face Landmark 68、OpenPose Face Landmark 70)

人物の表情を表現するデータ形式として代表的なDlib Face Landmark 68データ、OpenPose Face Landmark 70データについてご紹介します。

Dlib Face Landmark 68データは汎用ライブラリDlibの機械学習による表情検知機能でも使用されるデータ形式です。名前の通り表情を68点のランドマークで表現しています。表情のデータ形式として一般的に利用されています。

OpenPose Face Landmark 70データは姿勢検知ライブラリOpenPoseの表情検知機能で使用されるデータ形式です。こちらも名前の通り表情を70点のランドマークで表現しています。

下図で示すように、これら2つの形式はほぼ同じですが、両目の黒目のランドマークの有無や、ツール特性としての座標値の微妙な違いがあります。

face_landmark

左がDlib Face Landmark 68データ、右がOpenPose Face Landmark 70データのイメージ図

■BlendShapeのご紹介

BlendShapeはUnityで使用されるアニメーション手法の1つです。3次元のモデルは基本的に点と線の集まりで表現されています。BlendShapeはパラメータの変化に対して、モデルを形作る点がどのように動くのかを定義し、様々な動きを表現することができます。 例えば「ア」という発音をする時、口は上下方向に開きます。BlendShapeでは「ア」という発音に対して上唇周りの点は上方向に、下唇周りの点は下方向に動くよう定義します。このように定義されたいくつもの動作の組合せによりアバターの表情が制御されます。

mesh

ユニティちゃんを構成する点と線を可視化した図


ソリューション一覧に戻る