PlayerCapture - accessivr/accessivr-unity-sdk GitHub Wiki

プレイヤーの動きを解析する

AccessiVR ではプレイヤーの動きを解析する際に、下記のステップが必要になります。

  1. 解析を行うための Script を実装
  2. 実際にアプリを実行してデータを蓄積
  3. 管理画面から日付を選択しデータセットを作成(※1)
  4. Unity Editorから作成したデータセットのデータをダウンロードして、データの解析を行う

※1 データの集計には多少の時間がかかります。

Unity にてプレイヤーの動きを解析するための Script を埋め込む

プレイヤーIDを発行する

集計する際にはユニークなIDが必要なので CreatePlayerId() を使用して、ユニークなIDを生成します。
その他のAPIでも使用します。

string playerId = AccessiVRCore.Instance.CreatePlayerId();

トラッキングの開始

トラッキングの開始時には先程生成した PlayerId とともに、集計用のユニークなID(SectionIdと呼称しています)を指定します。
※ SectionIdは任意の文字列を指定することができますが、同一アプリケーション内で重複したIDを指定してしまうと集計結果がおかしくなってしまうのでご注意下さい。

AccessiVRCore.Instance.StartPlayerCapture(string playerId, string sectionId, (out string type, out Vector3 position, out Vector3 direction) =>
{
  // SteamVR の場合
  var steamVrCamera = FindObjectOfType<SteamVR_Camera>();

  // VRDevice の model 
  type = VRDevice.model;

  // HMD の position を指定
  position = steamVrCamera.transform.position;

  // HMD の 向きを指定
  direction = steamVrCamera.transform.rotation * Vector3.forward;
});

トラッキングの終了

トラッキングの終了時には開始時に指定したパラメーターと同じ値を指定します。

AccessiVRCore.Instance.StopPlayerCapture(string playerId, string sectionId);

トラッキング中のイベントを発行する

トラッキング中にはイベントを発行することができます。
このイベントはどのプレイヤーがどのタイミングでイベントを発行したのかが解析できます。

eventId は任意の文字列を指定することができます。 x, y, zの引数はイベントがどこで発生したかを記録できます。

AccessiVRCore.Instance.PlayerEvent(string playerId, string sectionId, string eventId, float x, float y, float z);

管理画面でデータの集計をする

Unityから送信したデータを解析するために管理画面から抽出条件を追加します。

管理画面の ユーザー行動解析 メニューから下記の画面に移動します。

抽出条件を追加 ボタンから新規に条件を指定します。

Unityにて記述した sectionId を記述して、データを抽出する期間を指定します。

データの抽出には多少の時間がかかるので、処理中のタグがあるうちは解析データを見ることはできません。

Unity Editorにてプレイヤーの動きを解析する

解析データのダウンロード

Window -> AccessiVR -> AccessiVR を選択すると下記のような Window が出現します。

先程、データを抽出したデータセットをダウンロードするために、Extraction Listタブに移動してAccessiVRにログインします。

ログイン後、データセットを作成したアプリケーションのIDを指定し、データセットの一覧を取得します。

データセットの一覧が表示されるので、解析したいデータのDownloadボタンをクリックしてデータをダウンロードをします。
同時に複数のデータをダウンロードすることも可能です(順番にダウンロードされます)。

ダウンロードが完了すると、Completedの表示に変るので、Data Managerタブに移動します。

※ 一度ダウンロードしたデータは削除しない限り、ログインせずとも解析を行うことができます。

PlayerTimelineを解析する

PlayerTimelineを解析するために、DataManagerに表示されているダウンロード済みのデータ一覧の解析したいデータのPlayerTimelineボタンを押します。

データを開くのに少々時間がかかりますが、読み込みが終ると下記のような Window が表示されます。

PlayerTimelineの表示とともに、Scene Viewのほうには下記のような描画が追加されます。

球がプレイヤー,円錐がプレイヤーの視線方向を表します。

PlayerTimelineのUI説明

  • #ff0000 再生ボタンです。Timelineの再生/停止が可能
  • #ff7f00 表示/非表示の切り替えボタン
  • #ffff00 ソロボタンです。チェックがついているプレイヤーだけを表示します
  • #7fff00 プレイヤーバーです。データがその時間まで存在していることを示しています。
  • #00fffe イベントです。発行したイベントを表しています。
  • #007fff タイムルーラーです。ドラッグすることで任意の時間にシークできます。
  • #0000ff 現在表示されているタイムラインの時間(秒数)です。

SectionSummaryを解析する

SectionSummaryを解析するにはDataManagerの左下のチェックボックスにチェックした後、SceneViewの左下に表示されるPopupViewから表示したいデータIDを選択することで表示することができます。