Tobii Eye Tracker 5 + Unityでアバターを動かしてみる
ガジェットの紹介 + デモとして簡単に使ってみるところまでの導入記事です。
この記事を読むと、最終的にこういう事が出来ます。
Tobii Eye Tracker 5とは
視線計測製品メーカーであるTobiiがコンシューマー向けに売っているデバイスです。
Eye Trackerという呼称のとおりアイトラッキングができるほか、しれっと頭部の6自由度トラッキングができたり、Windows Hello(顔認証によるWindowsログイン)に対応してたりします。
特にアイトラッキングと頭部トラッキングは3Dアバターを動かすのに使えそうなので、実際に動かしてみました。
Tobii Eye Tracker 5を導入する
まず公式サイトで買います。
買うとやがて届きます。
開封してPCに接続するとソフトウェアダウンロードが自動で始まる…
…らしいんですが、私のPCでは始まりませんでした。この場合は公式のダウンロードページに行きます。
ここで
・Select the hardwareの`Tobii Eye Tracking`を選択
・Select Tobii deviceの`Tobii Eye Tracker 5`を選択
・下部の"Please use this offline installer"をクリックしてインストーラ(exe)をダウンロード & 実行
として、ドライバーをインストール。
その後、セットアップのために"Tobii Experience"を起動します。こちらも自動インストールされるはずなんですが、もしインストールされていない場合はMicrosoft Storeからインストールします。
Tobii Experienceを初めて実行するとデバイスの位置設定とかキャリブレーションが始まるので、指示にしたがってセットアップします。
UnityのSDKを使ってみる
このnoteでは2019.4.1f1を想定しています。
Unityを起動したらAsset Storeを開き、"Tobii Eye Tracking SDK"を検索してインポート。
アバター表示にVRMを使いたいので、UniVRMをダウンロードし、インポートします。本記事ではv0.55.0を使います。
その後、適当なVRMモデルをUnityへインポートします。手元にVRMモデルが無い場合、VRoid Hubなどでダウンロードが許可されているモデルを使用します。
最後に、モーション反映用のちょっとしたコードを書いたので、こちらをインポートします。
インポート後に"T5_4_V/Scenes/T5_4_V"シーンを開いて、インポートしておいたVRMをシーン上の原点に配置します。
また、シーン上の"Tracker2Motion"オブジェクトのコンポーネントに対し、VRMを合計で3ヶ所へアタッチします。
これで完了です。実行すると、Tobii Eye Tracker 5によるトラッキングでアバターが動きます。
見てもらうとわかりますが、けっこう良い感じで動くので「これで遊ぶのは十分アリだな~」と思いました。
本題はここまでで、残りは実装の補足とか、細かい話になります。
補足1: TobiiのAPIでまばたきをそれっぽくするTips
TobiiのSDKではユーザーのまばたき情報が「目が開いてそう」「目が閉じてそう」の2値のみでしか取得できず、「目が閉じかけ」みたいな状態は分かりません。そこで、サンプルコード上では
・目が閉じるときは一瞬で閉じる
・目を開くときはゆっくり(10フレーム=0.2秒前後)開く
という制御を行って、見た目が自然になるよう対策しています。単純な割にうまく動いてくれます。
//目の開閉フラグを取得(※具体的なコードは実際のunitypackageのコードを見て下さい)
bool _eyeClosed = ...;
if (_eyeClosed)
{
//目が閉じるときは一瞬で閉じる
_blinkValue = 1.0f;
}
else
{
//目を開くときは、10フレーム程度かけてゆっくり開かせる
_blinkValue = Mathf.Max(_blinkValue - eyeOpenRate * Time.deltaTime, 0f);
}
//VRMの方式に従ってブレンドシェイプを適用
blendShape.AccumulateValue(lBlinkKey, _blinkValue);
blendShape.AccumulateValue(rBlinkKey, _blinkValue);
blendShape.Apply();
補足2: Tobii Eye Tracker 4C vs. 5で動きを比較
1世代前のTobii Eye Tracker 4Cと最新版のTobii Eye Tracker 5で動きを比べるとこんな感じになります。
5のほうが断然よいです。性能差の理由としては以下が考えられます。
・視野角が広がった(横38° x 縦29°→横40° x 縦40°)
・レイテンシが安定した
・ソフトウェア的にも頭部トラッキング周りの処理が改善されてそう
性能差についてはこちらの記事の内容ほぼそのままで、実際やってみて「確かにそれっぽいな」という感触がありました。
ちなみに、導入手順は省略しますが今回紹介したUnityプロジェクトはそのままTobii Eye Tracker 4Cでも動きます。これはTobiiのソフトウェアがよく出来てるポイントです。
ただし4Cと5を付け替えるときはEye Tracker自体のドライバーやソフトウェア周りでアンインストール / 再インストールが必要なので、そこはご注意ください。
補足3: Tobii Eye Tracker 5によるアバター操作ソフトを作って公開したい人への忠告
動きの良さを実感した一方、アバター操作という観点でTobii Eye Tracker 5に依存したプロダクトを出すのはちょっとハードルが高いと再認識しました。
理由は技術観点ではなくユーザーコストとバリューのバランス取りが難しいからです。以下、具体的に書きます。
まずTobii Eye Tracker 5の価格を確認。本体の229$ + 関税とかも合わせ、本記事の執筆時点の為替(107円/ドル)で約27,000円です。
いっぽう世間的なソフトの例を見ると、例えばLuppetの導入コストは
・Leap Motion: 約12,000円
・個人ライセンス: 5,000円
・(持ってない場合)Webカメラ: 5000円程度でそこそこのモノが買える
という価格感でやや高めに見ても約22,000円です。つまりユーザーコストで勘定すると、仮にTobii Eye Tracker用のソフトが無償だとしても、導入価格がちょっと高いとみなされる所からスタートになり、価格勝負の選択肢が取れません。これがソフト制作のハードルが高くなる理由です。
逆に言うと、「価格がやや高めである」という前提に立って付加価値を積んでいくならアリだと思います。
・Tobii Eye Tracker本来の強みであるアイトラッキングを活かしたおもしろ機能をなんか足す
・「Eye Trackerとコレとコレを組み合わせると値段はかかるけどめっちゃ動くよ!」みたいなハードウェア構成を提案する
やる場合はこの点に気をつけて挑戦してもらえれば…と思います。デバイス自体はとても良いので、誰か本記事をきっかけにやってくれると嬉しい限りです。
この記事が気に入ったらサポートをしてみませんか?