Xbox 360用の周辺機器として登場したモーションセンサー「Kinect for Xbox 360」だが、当初のゲーム入力装置という枠を超え、さまざまな研究者や開発者の手によって進化を続けている。もともとはKinect for Xbox 360のハッキングからスタートした試みが、現在ではマイクロソフト公式の開発ツールキットとして「Kinect for Windows」がリリースされ、より高度な仕組みとして実装が始まっている。今回紹介するのもそうした試みのひとつだ。
顔の移動や変化をリアルタイム追跡できる
「Face Tracking SDK」
最新のツールキット「Kinect for Windows SDK 1.5」ではいくつか新機能が付与されており、そのひとつに「Face Tracking SDK」の存在がある。人の顔をスキャンしてその頂点情報を読み込み、顔の移動や変化をリアルタイムで追跡する仕組みだ。
具体的には顔の振り向きや上下移動、さらには眉の動きから口の動きまでこと細かに把握でき、人の表情を読み取ることができる。複数の顔の同時スキャンも可能で、人の体の動きだけでなく表情も含めた画面のキャラクターのコントロールが行なえる。さらに音声認識と組み合わせれば、リアルな顔ではなく、SNS上の友人とオンラインアバターによる表情の変化を含めたチャットが可能になるなど、いろいろ応用ができそうだ。
「Unity3D」で表情を再現
今回、MSDNの「Channel 9」が紹介しているFace Tracking SDKを組み合わせた興味深いプロジェクトは、著名なゲームエンジンのひとつ「Unity3D」を利用したものだ。
Face Tracking SDKで読み取った頂点情報を利用してUnity3Dで人物の3Dイメージを自然な形で動かしている。詳細はBoffswanaで公開されている動画を参照してみるといいだろう。基本的にはFace Tracking SDKをそのまま利用したもので、ここからさらに人物の顔の3Dイメージをより自然な形で動かそうとしている。動画は2バージョンあり、表情があまり動かないやや堅めのものと、口まわりの動きのバリエーションを増やし、より表情が自然な形になったものが紹介されている。ここでは表情豊かなほうをご覧いただこう。
Face Tracking SDKはさまざまな応用が考えられ、例えば前述のようにチャットで利用したり、3DのMMORPGでプレイヤーによりリアリティを持たせたり、あるいはより実用的に映画やイメージ映像でのCGキャラクターの演技をより自然なものにしたりと、わずか2万円程度の装置とそこそこの性能のPCの組み合わせで本格的な作業が可能になる。
Kinect for Windowsはさまざまな分野で研究者によって利用されており、例えば筆者が6月に米カリフォルニア州サンフランシスコで取材したIntelの研究開発紹介イベント「Intel@Research」において、関連展示の半分近くでKinectが利用されていた。使い方は壁面ディスプレイでのタッチセンサーの代用であったり、あるいは人物認識やモーションセンサーによるユーザーインターフェイス(UI)用途であったりとさまざまだ。
現状ではその成果は地味ながら、ひょっとしたら今後Kinectを応用したモーションセンシング技術がさまざまな場所で一躍メジャーな存在になっているかもしれない。