Kinect重量挙げ #6 エフェクト合成

オーラや火花などのエフェクトはUnityのパーティクルシステムとして制作しました。これをKinectの実写映像に重ねるのですが、実写へのCG合成はもっともウソくさく見えるところ。違和感をなくそうと思えば道のりは果てしないですが、いくつか基本的なことを注意すればうっかり違和感を増してしまうことだけは避けられます。

解像度/フレームレート

仮にエフェクトが現実に生じてそれを撮影しているとしたら、実写とエフェクトとで解像度やフレームレートが異なるはずがありません。おなじ映像に収まっているのですから。でもこのことに無頓着で、CG部分だけ妙に精細でヌルヌル動いてる、みたいな作品は案外よくあります。
Continue reading →

Kinect重量挙げ #5 テレビ中継風演出

本件、研究テーマそのものは多くの可能性を秘めていますが、今回の展示にかぎっていえば正直地味なことは否めません。実写にエフェクト合成するKinectハックはすでに知られているし、ARもすっかり世間におなじみですから。それでもテレビやスポーツ中継の未来を表現し、またせめて一矢報いたいとの思いから、出目はできるだけ工夫しました。

テレビのスポーツ中継を模した画面作りをしていきます。まずデザインしてもらったいかにもなテロップ部品を画面にオーバーレイ表示します。ただそのままではきれいすぎてPCっぽいので、簡易的にアナログ風の色ズレを再現しました。RGBチャンネルに分けたテクスチャをずらして重ねただけ。原理的にはテロップだけ色ズレするのはおかしいですが、らしく見えればよいことにします。負荷との兼ね合いもありますが、本来ならフィルタとして実装するのが正解でしょう。

ChromaticAberration

【下】左右にずらしたR・BチャンネルをGチャンネルの上に加算ブレンド

Continue reading →

Kinect重量挙げ #4 開発環境

ここで、本件の開発環境について。

プラットフォームは Windows 8.1。Kinect SDK 1.8 をインストール。ハードウェアは Surface Pro 2 に Kinect for Windows。実行環境も同じ。本番はスペックに余裕のあるデスクトップPCを使うつもりでしたが、ブースの電力が足りないことが判明…。今度からブースがひしめき合うイベントでは注意しよう。

Surface Pro 2

働き者のSurface Pro 2。画面はUnity

Continue reading →

Kinect重量挙げ #3 姿勢判定の実装

道具

まずは判定の仕方について。姿勢を判定するには複数の要素(スケルトンの各関節情報)を対象と比較しなければなりません。しかし、要素の値を一つ一つ比べて総合的な一致度を測る、というのはいかにも煩雑です。そこでベクトルの内積を使います。

ベクトルの内積(ドット積)とは…くわしくはググってください。高校生は教科書を読もう。端的にいうと、ベクトル同士の向きがどれだけ近いかを求める演算です。ベクトルは何次元でもかまわず、計算も簡単です。
Continue reading →

Kinect重量挙げ #2 姿勢判定の検討

重量挙げの動作検出はそれぞれの姿勢をKinectで捉えることで実現することにしました。

ご存知のとおり、Kinectは三次元の位置と向きとを持つ関節点の集まり(スケルトン。ボーンとも呼ばれるが厳密には異なる)としてプレイヤーの姿勢をリアルタイムに取り込むことができます。このスケルトンが、定められた姿勢と一致しているか調べるのが判定の基本となります。

Kinect Skeleton

これがスケルトンだ

Continue reading →

Kinect重量挙げ #1 始動

技術担当の谷口です。まずはこれまで携わってきた案件を、記憶の新たなものからさらっていくことにします。

先日幕張メッセで催された第6回ニコニコ学会βシンポジウムにおける常設フロア企画、『デジタルスポーツ研究展示』のとあるブースを手伝いました。スポーツ映像にCGエフェクトを合成することで、ふつう目に見えない運動の力学を楽しく可視化しようという研究です。題して『スポーツ超LIVEテクノロジー』。次世代放送規格ハイブリッドキャストや2020年の東京オリンピックを見据えた、クライアントのD社らしいテーマです。今回の成果は次のようになりました。

力強くニセのバーベルを挙げるディレクターS。撮ったはずの学会当日映像が見当たらないのは彼の飲酒に関係があるという声も

Continue reading →