2015年3月28日

Opaque Multimedia での Kinect 4 Unreal プロジェクト

作成 Russell Grain

インターネットをご覧のみなさん、こんにちは。Russel Grain です。私のチームは半年ほど前から、オーストラリアの Opaque Multimedia で Kinect 4 Unreal プラグインを開発中です。Kinect 4 Unreal は、Kinect 2 センサーのすべての機能をアンリアル エンジン 4 が使えるようにするためのプラグインです。つい最近 ウェブサイト上でプラグインのバージョン 1.1 および、それに関連する Epic のマーケットプレイスのコンテンツサンプル のコレクションをリリースしました。

Kinect 2 とは何ですか?

これまで使う機会のなかった方もいらっしゃると思いいますが、Kinect 2 とは、カラーカメラ、赤外線カメラ、TOF カメラを組み合わせて詳しい世界地図を作成するために使うセンサー一式です。拾った音をローカライズするためのマイクロフォンの配列も格納しています。

Kinect 2 は主に、各種センサーから推測する骨格の情報に合わせてプレイヤーを追跡するためのものです。骨格の追跡は Kinect 2 の機能のほんの一部なのですが、Kinect 2 がどのようなことに最もよく使われるのかが想像しやすいと思います。

Kinect 2 の始まり

Kinect 4 Unreal はもともと、いわゆるインプットだけがユーザーの体の動きとなるナチュラル モーション インターフェースが必要とされる数々のプロジェクトの内部ツールとして始まりました。Kinect 2 SDK のあらゆる部分に技術を注入して、Kinect 2 で実現可能なすべての機能をアーティストとレベル デザイナーが期待通りに使えるようにしました。

K4U を初めて手にした時のことを覚えています。アンリアルで Kinect を使っているエンジニアが、休憩時間にポーズを取ったり踊ったりしているので、彼を呼んで、私がいじることができる何か、できれば手のステートと手の位置を設定してくれないかと頼みました。今備わっているものはまだ存在しないかなり初期の頃でしたが、やってみたいことを行うために必要なものを使うことができました。

火の玉を投げてみたい

その日はその後ずっと、技術がまだ初期の段階で他のエンジンで Kinect アプリケーションを開発した体験に基づいてそのデモの作成に没頭しました。私は、レベルに山積みの箱を送り込んで、自分の手で爆発を作って投げることができる魔女になっていました。本当にびっくりしました。その日はもう Opaque Multimedia オフィスで他の作業は何もできませんでした。仕方ありません、火の玉を投げることに比べたら、職場でやることは正直、ちっとも面白くないですから。

1 日以上かかってしまうだろうと思っていたのですが、実際は 30 分でした。既に出来上がっていたので、何も作業することなく済みました。

K4U1火の玉のデモおよびデモ用ブループリント

ユーザーのことを考える

Kinect 4 Unreal のあらゆる側面には我々の核となる方針である「コード経験に関係なく誰もが使えるもの」が含まれていますが、中でもよく表れているのが火の玉のデモの開発です。

開発が進み、Kinect 2 の機能に触れる機会が多くなるにつれて、データをゲームに使おうとしているユーザーにとってデータをもっと使いやすくする方法について考え始めるようになりました。そこで、デザインチームのところへ行って彼らにデモゲーム一式の作成依頼し、彼らからのフィードバックをイタレートすることができました。

K4U_3大人気のコンテンツ サンプル:無人スパイ機カメラのコントロール

このプロセスによって、生の Kinect データをユーザーに公開するインターフェースと手段が徐々に良くなりました。デザイナーが始めから終わりまでデモを完成させる頃には、我々も Kinect 2 が備えているすべての機能をユーザーが快適かつ簡単に利用できるようにするインターフェースを作成したという自信がありました。

この共同アプローチの一番良い例は、Avateering システムです。もともとは、 Kinect 2 からの生の骨格データを公開していただけでした。アーティストからは、ゲーム キャラクターを直接コントロールするためにそのデータを使う分には問題はほとんどないけれど、出力の動きがぎくしゃくしているという声が聞かれました。

K4U_4Avateering システムのデモでは、生データの入力と処理済みデータの入力の違い、および Unreal アニメーションを使った Avaterring 入力の連携方法を紹介

Kinect 2 の回転の入力を直接アンリアルの回転に自動変換して、ダイナミックスムージング機能を統合した部分について、これまで多くの方から感謝の声を頂いています。最終的に、情報が読みやすくなり、かなり使いやすくなりました。

進化し続ける

現在のプラグイン バージョン 1.1 は、かなり長い間安定した機能一式を提供してきました。Kinect 2 で可能な実質上ほぼすべての機能をユーザーに提供しているからです。Kinect 2 SDK への公式アップデート後の機能パリティも完全に維持します。Kinect 2 に興味をお持ちの方は是非 1.1 introduction video をご覧ください。Kinect の基本的な機能を紹介し、いくつかの新規機能について詳しく説明しています。

このさき数ヶ月かけて、他にもいろいろ改良していく予定です。プラグインへのオプション的な拡張や、コア的な機能の向上なども含まれています。

プレイヤーがインゲームのアバターとこれまでにないような方法で関わることができるようなインターフェースの作成を目指して、次回の UE4 タイトル「 Lost Pisces 」のデベロッパーであるSirenum Digital の人たちとも作業しています。

アンリアル エンジン 4 が完全無料になった今、Kinect 2 とアンリアル エンジン 4 を連携させて実現できる素晴らしいことを多くの人に堪能してもらいたいと願っています。