PlayerCapture - accessivr/accessivr-unity-sdk GitHub Wiki
プレイヤーの動きを解析する
AccessiVR ではプレイヤーの動きを解析する際に、下記のステップが必要になります。
- 解析を行うための Script を実装
- 実際にアプリを実行してデータを蓄積
- 管理画面から日付を選択しデータセットを作成(※1)
- 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説明
- 再生ボタンです。Timelineの再生/停止が可能
- 表示/非表示の切り替えボタン
- ソロボタンです。チェックがついているプレイヤーだけを表示します
- プレイヤーバーです。データがその時間まで存在していることを示しています。
- イベントです。発行したイベントを表しています。
- タイムルーラーです。ドラッグすることで任意の時間にシークできます。
- 現在表示されているタイムラインの時間(秒数)です。
SectionSummaryを解析する
SectionSummaryを解析するにはDataManagerの左下のチェックボックスにチェックした後、SceneViewの左下に表示されるPopupViewから表示したいデータIDを選択することで表示することができます。