1. TofAr コンポーネント
ToF AR TofAr コンポーネント
TofArコンポーネントは他のコンポーネント間に共通の機能を提供します。
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
Yes |
1.1. RunMode
RunModeはToF ARの実行状態を表します。ToF ARは下記バターンで動作することができます。 MultiNodeではAndroidデバイスのセンサー値やカメラ映像を他のデバイスで受信し、利用することができます。
現在のRunModeは RuntimeSettingsProperty のrunModeより取得できます。
1.2. Prefabs
Name | Description |
---|---|
TofArManager |
SDK共通機能を提供します。 |
1.3. コンポーネントの詳細
TofArコンポーネントの詳細については API references for TofAr を参照してください。
2. ToF コンポーネント
ToF AR ToF コンポーネント
ToFコンポーネントはToFカメラのDepthデータ、Confidenceデータ、PointCloudデータへのアクセスを提供します。主に下記機能を提供します。
-
データ取得
-
データの表示
-
ToFカメラのコントロール(フレームレート、露出時間の変更など)
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
Yes |
2.1. ストリームとデータ構造
アプリケーションはManagerのPublic Fieldよりデータを取得できます。
2.1.1. データ形式: Depthデータ
Depth映像のピクセルを格納したshort配列(16bit)。 各要素にはToFカメラを原点としたDepthデータが格納されます。 Depthデータの単位はミリメートル。
[0] | [1] | [2] | […] | [[Width * Height]] |
---|---|---|---|---|
2500 |
2550 |
2525 |
… |
0 |
2.1.2. データ形式: Confidenceデータ
Confidence映像ピクセルを格納したshort配列(16bit)。 各要素にはConfidenceデータが格納されます。 0以上の値が格納されます。
[0] | [1] | [2] | […] | [[Width * Height]] |
---|---|---|---|---|
100 |
0 |
500 |
… |
0 |
2.1.3. データ形式: PointCloudデータ
PointCloudデータを格納したbyte配列(8bit)。 配列内にはx,y,z各16bitの値が2要素を用いて格納されます。
値の取り出しには System.BitConverter.ToInt16(byte[] value, int startIndex) メソッドや System.BlockCopy (Array src, int srcOffset, Array dst, int dstOffset, int count) を用います。
例:
// get single value.
short x = BitConverter.ToInt16(TofArTofManager.Instance.PointCloudData.Data, 0);
short y = BitConverter.ToInt16(TofArTofManager.Instance.PointCloudData.Data, 2);
// get all values.
int size = TofArTofManager.Instance.PointCloudData.Data.Length;
short[] all = new short[size / sizeof(short)];
Buffer.BlockCopy(TofArTofManager.Instance.PointCloudData.Data, 0, all, 0, size);
[0] | [1] | [2] | [3] | [4] | [5] | [6] | [7] | … | [Width * Height * 2 * 3] |
---|---|---|---|---|---|---|---|---|---|
[x0] |
[y0] |
[z0] |
[x1] |
… |
[Width * Height * 3] |
||||
100 |
50 |
200 |
200 |
100 |
60 |
64 |
32 |
… |
0 |
2.2. Prefabs
Name | Description |
---|---|
TofArTofManager |
ToFカメラとの接続を管理します。 |
DepthViewQuad |
ToFカメラ映像を表示するQuadオブジェクト。 |
DepthViewRawImage |
ToFカメラ映像を表示するRawImageオブジェクト。 |
PointCloudMesh |
点群を表示するMeshオブジェクト。 |
DepthConfigurationPanel |
Depthモード選択UI。 |
SkeletonDepthView |
ToFカメラ映像上にHand認識結果, Body認識結果, Face認識結果を示するRawImageオブジェクト。 |
2.3. コンポーネントの詳細
Tofコンポーネントの詳細については API references for Tof を参照してください。
3. Color コンポーネント
ToF AR Color コンポーネント
ColorコンポーネントはRGBカメラデータへのアクセスを提供します。主に下記機能を提供します。
-
データ取得
-
データの表示
-
RGBカメラのコントロール(解像度、オートフォーカス、自動露出、ホワイトバランスの設定など)
-
静止画撮影(iOS AVFoundation 使用時のみ)
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
Yes |
3.1. ストリームとデータ構造
アプリケーションはManagerのPublic Fieldよりデータを取得できます。
3.1.1. データ形式: Colorデータ
Color映像のピクセルを格納したbyte配列(8bit)。 各要素にはColorカメラのピクセルデータが格納されます。 ピクセルデータの内容はRGBカメラのハードウェアや設定に依存します。
[0] | [1] | [2] | […] | [max] |
---|---|---|---|---|
128 |
120 |
200 |
… |
0 |
3.1.2. データ形式: PhotoColorデータ
CapturePhotoProperty で指定された画像フォーマットのファイルイメージを格納したbyte配列(8bit)。
3.1.3. データ形式: PhotoDepthデータ
PhotoColorデータ撮影時にキャプチャされたDepth映像のピクセルを格納したbyte配列(8bit)。
3.2. Prefabs
Name | Description |
---|---|
TofArColorManager |
RGBカメラとの接続を管理します。 RGBカメラの機能を利用するシーンに必ず配置してください。 |
ColorViewQuad |
ToFカメラ映像を表示するQuadオブジェクト。 シーンに配置するとTofArColorManagerのストリーム開始/終了に自動連携し表示を行います。 |
ColorViewRawImage |
ToFカメラ映像を表示するRawImageオブジェクト。 シーンに配置するとTofArColorManagerのストリーム開始/終了に自動連携し表示を行います。 |
3.3. コンポーネントの詳細
Colorコンポーネントの詳細については API references for Color を参照してください。
4. Plane コンポーネント
ToF AR Plane コンポーネント
PlaneコンポーネントはDepthカメラ映像内の指定ポイントを含む平面をリアルタイム認識します。 主に下記機能を提供します。
-
平面情報の取得
-
Unityシーン内での動的オブジェクト化
最大8つまでの認識設定を一括して指定/取得することができます。 nullまたは要素数0の設定リストを指定すると平面認識は実行されなくなります。
本コンポーネントは以下のプラットフォームで使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
Yes |
4.1. ストリームとデータ構造
アプリケーションはManagerのPublic Fieldよりデータを取得できます。
4.2. データ形式: Planeデータ
平面情報を格納した構造体です。
[Member] | [Type] | [Description] |
---|---|---|
normal |
Vector3 |
平面の法線ベクトル |
center |
Vector3 |
平面検出基準点 |
radius |
float |
基準点から最も近い平面端までの距離 |
4.3. Prefabs
Name | Description |
---|---|
TofArPlaneManager |
ToF AR Planeコンポーネントとの接続を管理します。 |
PlaneObject |
平面検出結果を可視化する3Dオブジェクト |
4.4. コンポーネントの詳細
Planeコンポーネントの詳細については API references for Plane を参照してください。
5. Mesh コンポーネント
ToF AR Mesh コンポーネント
MeshコンポーネントはDepthカメラ映像から3Dメッシュをリアルタイム生成します。 主に下記機能を提供します。
-
頂点やトライアングル情報の取得
-
Unityシーン内での動的Meshオブジェクト化
-
Meshの軽量化制御
-
Segmentationコンポーネントが生成したマスク部分を除外したメッシュの生成
Meshの解像度制御は AlgorithmConfigProperty の設定で行うことができます。 meshReductionLevel をn(nは0以上の整数)と設定すると、Mesh生成に利用するPointCloudの点数は1/(n+1)となり、Meshの解像度を制御することができます。
meshReductionLevelは0の時最も高解像度で、数値を上げるほど解像度は下がるが軽量化されます。 下図ではオレンジ色のPointCloudデータがMesh生成の入力データとして利用されることを示しています。
本コンポーネントは、以下のプラットフォームで使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
Yes |
5.1. ストリームとデータ構造
アプリケーションはManagerのPublic Fieldよりデータを取得できます。
5.2. データ形式: Meshデータ
頂点、トライアングル情報を格納した構造体です。
[Member] | [Type] | [Description] |
---|---|---|
verticesCount |
int |
頂点数 |
vertices |
float* |
頂点配列へのポインタ |
trianglesCount |
int |
トライアングル数 |
triangles |
int* |
トライアングル配列へのポインタ |
5.3. Prefabs
Name | Description |
---|---|
TofArMeshManager |
ToF AR Meshコンポーネントとの接続を管理します。 |
DynamicMesh |
Mesh生成結果を可視化するMeshオブジェクト。 |
5.4. コンポーネントの詳細
Meshコンポーネントの詳細については API references for Mesh を参照してください。
6. Coordinate コンポーネント
ToF AR Coordinate コンポーネント
Coordinateコンポーネントは解像度が異なるDepthカメラ映像とRGBカメラ映像、3Dカメラの座標相互変換を行います。 本機能はコンポーネントプロパティにアクセスすることにより変換後の座標データを取得することができます。
キャリブレーション情報は CalibrationSettings
Prefabを用いることでアプリケーション間で共有することができます。
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
Yes |
6.1. ストリームとデータ構造
本コンポーネントはストリームデータアクセスは提供しません。
6.2. Prefabs
Name | Description |
---|---|
TofArCoordinateManager |
ToF AR Coordinateコンポーネントとの接続を管理します。 |
CalibrationSettings |
Depth映像とColor映像のマッピングを行うためのキャリブレーション情報管理します。 |
6.3. コンポーネントの詳細
Coordinateコンポーネントの詳細については API references for Coordinate を参照してください。
7. Hand コンポーネント
ToF AR Hand コンポーネント
HandコンポーネントはToFカメラ映像から人の手や指の関節の位置をリアルタイム認識します。
主に下記機能を提供します。
-
手の存在有無の取得
-
手の関節等の位置情報の取得
-
両手の中心点の表示(RecognizeConfigProperty.cameraFacingをFrontとした場合)
-
ハンドポーズとハンドジェスチャーの認識(ハンドポーズは瞬間的動作、ハンドジェスチャーは連続的動作)
-
指先の平面タッチ推定
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
Yes |
7.1. 認識モード
認識モード | 説明 |
---|---|
OneHandHoldSmapho |
端末を片手で持ち、他方の手を端末の前方に差し出しリアカメラで撮影します。 |
Face2Face |
端末に対面し片手または両手をフロントカメラで撮影します。 |
HeadMount |
スマートフォン用VRゴーグルに端末をセットして頭部に装着し、片手または両手を前方に差し出しリアカメラで撮影します。 |
7.2. 認識モードごとの認識距離
認識モード | 認識距離 |
---|---|
OneHandHoldSmapho |
100~800mm |
Face2Face |
100~1200mm |
HeadMount |
100~800mm |
7.3. ストリームとデータ構造
アプリケーションはManagerのPublic Fieldよりデータを取得できます。
7.3.1. データ形式: Handデータ
Hand情報を格納した構造体です。
[Member] | [Type] | [Description] |
---|---|---|
handStatus |
手の認識状態 |
|
featurePointsLeft |
Vector3[] |
左手特徴点と手首特徴点のカメラ座標系でのXYZ座標 |
featurePointsRight |
Vector3[] |
右手特徴点と手首特徴点のカメラ座標系でのXYZ座標 |
poseLevelsLeft |
float[] |
左手のポーズの認識レベル |
poseLevelsRight |
float[] |
右手のポーズの認識レベル |
7.4. 手特徴点の位置
ArmCenter の座標は取得できない。 |
7.5. 手認識処理を実行する Neural Network Library について
手認識処理の下層レイヤでは下記のNeural Network Libraryを使用することができます。
-
TensorFlow Lite
アプリケーション実行時に使用される Neural Network Library 及び RuntimeMode は下記フローで決定されます。
-
TofArHandManager のUnity Inspectorの下記指定値
-
nnlib
-
runtimeMode
-
runtimeModeAfter
-
-
端末ごとのデフォルト設定値。
端末ごとのデフォルト設定値については HandライブラリとRuntimeModeのデフォルト設定 を参照してください。
7.6. 端末の回転に関する設定とHandModelの回転方向のまとめ
Cardboard XR Plugin | Orientation | [HandModel.] autoRotation |
HandModelの回転方向 | |
---|---|---|---|---|
1 |
Off |
Auto Rotation |
True |
端末の回転方向と同じです |
2 |
Off |
Auto Rotation |
False |
回転しません |
3 |
Off |
Auto Rotation 以外 |
True |
端末の回転方向と同じです |
4 |
Off |
Auto Rotation 以外 |
False |
回転しません |
5 |
On |
Landscape Right |
True |
端末をLandscape Right 方向とした時に正しく見える方向です |
6 |
On |
Landscape Right |
False |
回転しません(7と同じ方向です) |
7 |
On |
Landscape Left |
True |
端末をLandscape Left 方向とした時に正しく見える方向です |
8 |
On |
Landscape Left |
False |
回転しません(7と同じ方向です) |
7.7. 手モデルへの当たり判定追加について
手モデルへ当たり判定を追加するには、HandCollider Prefabをシーンに配置し、任意の設定を行います。 その際、HandModelまたはRealHandModelと同一の親オブジェクトの配下に配置する必要があります。
7.8. ポーズ推定について
ポーズ推定は単一フレームの手のポーズを認識します。 ポーズの種類については PoseIndex を参照してください。
7.9. ジェスチャー推定について
ジェスチャー推定は1秒間の連続的な手の動きのパターンを認識します。 ジェスチャーの種類については GestureIndex を参照してください。
7.10. Prefabs
Name | Description |
---|---|
TofArHandManager |
ToF AR Handコンポーネントとの接続を管理します。 |
HandModel |
手検出結果を可視化する3Dオブジェクト。 |
RealHandModel |
手検出結果を可視化する3Dオブジェクト。
|
HandCollider |
手モデルの当たり判定を有効化します。 |
FingerTouchDetector |
指先の平面タッチ推定機能を有効化します。 |
7.11. コンポーネントの詳細
Handコンポーネントの詳細については API references for Hand を参照してください。
8. MarkRecog コンポーネント
ToF AR MarkRecog コンポーネント
MarkRecogコンポーネントは任意の2値画像内のマークを認識します。 主に下記機能を提供します。
-
画像内のマーク認識
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
No |
8.1. ストリームとデータ構造
本コンポーネントはストリームデータアクセスは提供しません。
8.2. Prefabs
Name | Description |
---|---|
TofArMarkRecogManager |
Mark認識の機能を利用するシーンに必ず配置してください。 |
MarkImageDrawer |
Hand認識コンポーネントと連携しマーク画像を作成します。 |
8.3. コンポーネントの詳細
MarkRecogコンポーネントの詳細については API references for MarkRecog を参照してください。
9. Modeling コンポーネント
ToF AR Modeling コンポーネント
Modelingコンポーネントは複数フレームに渡るToFカメラのDepthデータを蓄積し、3D Meshデータを生成します。主に下記機能を提供します。
-
3Dモデリング処理の開始/終了
-
3Dモデリングパラメータの設定
-
データの出力
-
Segmentationコンポーネントが生成したマスク部分を除外したメッシュの生成
本コンポーネントは、以下のプラットフォームで使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
No |
9.1. ストリームとデータ構造
アプリケーションはManagerのPublic Fieldよりデータを取得できます。
9.2. データ形式: Modelingデータ
頂点、トライアングル情報のリストを格納した構造体です。
モデリング結果は複数の3DMeshデータ(ブロック)に分割される場合があり、最大ブロック数の要素がリストに格納されます。
各要素には下記形式でデータが格納されます。
[Member] | [Type] | [Description] |
---|---|---|
vertices |
float[] |
頂点配列 |
triangles |
int[] |
トライアングル配列 |
blockIndex |
int[] |
ブロックインデックス |
9.3. Prefabs
None
9.4. コンポーネントの詳細
Modelingコンポーネントの詳細については API references for Modeling を参照してください。
10. Body コンポーネント
ToF AR Body コンポーネント
BodyコンポーネントはBody認識関連の処理を行い、認識結果データをアプリケーションに提供します。 主に下記機能を提供します。
-
ToFカメラ映像からBodyを認識
-
AR Foundationに準拠したフォーマットのBody認識データ出力
-
Body認識結果の表示
-
Bodyジェスチャーの認識
アプリケーションは TofArBodyManager.BodyData フィールドよりデータを取得できます。
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
使用可能なEstimator: |
iOS |
Yes |
使用可能なEstimator: |
10.1. データ形式: Bodyデータ
アプリケーションは TofArBodyManager.BodyData フィールドよりBody情報を格納した構造体を取得できます。
[Member] | [Type] | [Description] |
---|---|---|
results |
BodyResult[] |
Body情報配列 |
BodyResultは AR FoundationのARHumanBodyクラスと同じ定義です。
10.2. 関節位置の定義
関節位置の基本定義はARKitに準拠しています。
Validating a Model for Motion Captureの図表に対応する関節位置インデックスが TofAr.V0.Body.JointIndices に定義されています。
実際に認識される関節データ数、関節位置は使用するBody認識エンジンにより異なるため、変換をしてBodyデータに格納されます。 変換マッピングについては別途記述します。
10.4. ジェスチャー推定について
ジェスチャー推定は TofArBodyGestureManager で行われます。 ジェスチャー推定結果は TofArBodyGestureManager.OnGestureEstimated イベントにハンドラを登録することで取得できます。
ジェスチャーの種類については BodyGesture を参照してください。
10.5. Prefabs
Name | Description |
---|---|
TofArBodyManager |
ToF AR Bodyコンポーネントとの接続を管理します。 Bodyの機能を利用するシーンに必ず配置してください。 |
BodySkeleton |
Body認識結果をシンプルなスケルトンで表示します。 |
10.6. コンポーネントの詳細
Bodyコンポーネントの詳細については API references for Body を参照してください。
11. SV2BodyPoseEstimator
ToF AR のDepthデータよりBody認識処理を行います。
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
Yes |
11.1. 使用方法
11.1.1. シーン設定
-
シーンには下記が存在する必要があります。
-
TofArTof/TofArTofManager
-
TofArBody/TofArBodyManager
-
-
TofArBodyManager.DetectorType を BodyPoseDetectorType.Internal_SV2 に設定します。
-
BodySkeleton Prefabをシーン原点に配置します。
11.1.2. 実行時設定
TofArTofManagerとTofArBodyManagerを開始すると認識処理を開始します。
11.2. 関節位置マッピング
ARKitの関節インデックスへの認識結果のマッピングです。
ARKit | SV2BodyPoseEstimator joint index |
---|---|
JointIndices.Head |
0 |
JointIndices.Neck1 |
1 |
JointIndices.RightShoulder1 |
2 |
JointIndices.RightForearm |
3 |
JointIndices.RightHand |
4 |
JointIndices.LeftShoulder1 |
5 |
JointIndices.LeftForearm |
6 |
JointIndices.LeftHand |
7 |
JointIndices.RightUpLeg |
8 |
JointIndices.RightLeg |
9 |
JointIndices.RightFoot |
10 |
JointIndices.LeftUpLeg |
11 |
JointIndices.LeftLeg |
12 |
JointIndices.LeftFoot |
13 |
JointIndices.RightEyeball |
14 |
JointIndices.LeftEyeball |
15 |
JointIndices.RightEye |
16 |
JointIndices.LeftEye |
17 |
12. ARFoundationConnector
ARFoundationConnector を使うことで、Unity Project 上で AR Foundation と ToF AR を共存させることができます。この時、ToF AR は下位レイヤのカメラを直接制御せず、AR Foundation から得られる RGB や ToF カメラの出力データフレームを使用し、Hand や Body などの認識処理を動作させます。このため、アプリ開発者は AR Foundation の有無にかかわらず ToF AR から同じインタフェースでデータフレームを受け取ることができます。
12.1. 使用方法
使用方法については AR Foundation の利用を参照してください。
12.2. Prefabs
Name | Description |
---|---|
ARFoundationConnector |
AR Foundation から得られるフレームデータを ToF AR へ入力・連携させるための機能。 |
12.3. コンポーネントの詳細
ARFoundationConnector は、ARFoundation が出力する以下のデータを対応する ToF AR の Manager コンポーネントから取得可能とします。
ARFoundation の機能 | 対応する ToF AR Manager |
---|---|
RGB Color 映像 |
TofArColorManager |
Depth データ |
TofArTofManager |
Human Stencil, Human Depth |
TofArSegmentationManager |
3D ボディトラッキング |
TofArBodyManager |
Face トラッキング |
TofArFaceManager |
デバイストラッキング |
TofArSlamManager |
ARFoundation がプラットフォームごとにサポートしている機能については com.unity.xr.arfoundation (対応プラットフォーム)を参照してください。
ARFoundation がサポートしていない機能は ToF AR でもサポートしません。
13. Segmentation コンポーネント
ToF AR Segmentation コンポーネント
SegmentationコンポーネントはSegmentation認識関連の処理を行い、認識結果データをアプリケーションに提供します。 主に下記機能を提供します。
-
Colorカメラ映像から空部分の推定を行い、マスクテクスチャを作成(SkyDetector使用時)
-
Colorカメラ映像から人物部分の推定を行い、マスクテクスチャを作成(HumanDetector使用時)
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
使用可能なEstimator: |
iOS |
Yes |
使用可能なEstimator: |
13.1. データ形式: Segmentationデータ
アプリケーションはTofArSegmentationManager.SegmentationData フィールドよりSegmentation情報を格納した構造体を取得できます。 SegmentationResults 参照
13.2. Segmentation認識エンジン
下記の認識エンジンをサポートしています。
13.3. Prefabs
Name | Description |
---|---|
TofArSegmentationManager |
ToF AR Segmentationコンポーネントとの接続を管理します。 |
SkySegmentationDetector |
Colorカメラ映像から空部分の推定を行い、マスクテクスチャを作成します。 |
HumanSegmentationDetector |
Colorカメラ映像から人物部分の推定を行い、マスクテクスチャを作成します。 |
13.4. コンポーネントの詳細
Segmentationコンポーネントの詳細については API references for Segmentation を参照してください。
14. SkyDetector
Colorカメラ映像から空部分の推定を行い、マスクテクスチャを作成します。
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
Yes |
14.1. 使用方法
-
SkySegmentationDetector Prefabをシーンに配置します。
実行時にTofArColorManagerとTofArSegmentationManagerに接続し推定処理を行います。 そのため実行時にそれぞれのManagerが存在している必要があります。
TofArColorManagerはRGB形式のColorデータを出力する設定となっている必要があります。 FormatConvertProperty 参照。
14.2. 出力データ形式
14.2.1. Segmentaton情報
TofArSegmentationManager.SegmentationData フィールドよりSegmentation情報を格納した構造体を取得できます。 SegmentationResults 参照。
OutputFormat
SegmentationResult.name | SegmentationResult.rawPointer | SegmentationResult.maskBufferByte |
---|---|---|
Sky |
TextureFormat.R8 形式バッファへのポインタ |
TextureFormat.R8 形式バッファ |
14.3. マスクテクスチャ2D型情報
SkySegmentationDetector.MaskTextureプロパティよりTexture2D型で取得可能です。
テクスチャフォーマットは TextureFormat.R8 となります。
詳細については API references for Segmentation.Sky を参照してください。
15. HumanDetector
Colorカメラ映像から人物部分の推定を行い、マスクテクスチャを作成します。
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
Yes |
|
iOS |
Yes |
15.1. 使用方法
-
HumanSegmentationDetector Prefabをシーンに配置します。
実行時にTofArColorManagerとTofArSegmentationManagerに接続し推定処理を行います。 そのため実行時にそれぞれのManagerが存在している必要があります。
TofArColorManagerはRGB形式のColorデータを出力する設定となっている必要があります。 FormatConvertProperty 参照。
15.2. 出力データ形式
15.2.1. Segmentaton情報
TofArSegmentationManager.SegmentationData フィールドよりSegmentation情報を格納した構造体を取得できます。 SegmentationResults 参照。
OutputFormat
SegmentationResult.name | SegmentationResult.rawPointer | SegmentationResult.maskBufferByte |
---|---|---|
Human |
TextureFormat.R8 形式バッファへのポインタ |
TextureFormat.R8 形式バッファ |
15.3. マスクテクスチャ2D型情報
HumanSegmentationDetector.MaskTexture プロパティよりTexture2D型で取得可能です。
テクスチャフォーマットは TextureFormat.R8 となります。
詳細については API references for Segmentation.Human を参照してください。
16. AR Foundation Human Stencil / Human Depth
AR FoundationからHuman Stencil データ、Human Depthデータを取得し、マスクテクスチャを作成します。
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
No |
|
iOS |
Yes |
16.1. 使用方法
-
ARFoundationConnectorをセットアップします。
詳細については、 AR Foundationのセットアップを参照してください。
-
ARFoundationConnectorのInspectorで AR Foundation Segmentation コンポーネントをアクティブにします。
-
AR Foundation Segmentation コンポーネントの Capture Stencil や Capture Depth をオンにします。
実行時にTofArSegmentationManagerに接続し処理を行います。 そのため実行時にそのManagerが存在している必要があります。
16.2. 出力データ形式
TofArSegmentationManager.SegmentationDataフィールドよりSegmentation情報を格納した構造体を取得できます。 SegmentationResults 参照。
OutputFormat
SegmentationResult.name | SegmentationResult.rawPointer | SegmentationResult.maskBufferByte | SegmentationResult.maskBufferFloat |
---|---|---|---|
Human |
TextureFormat.R8 形式バッファへのポインタ |
TextureFormat.R8 形式バッファ |
|
HumanDepth |
TextureFormat.RFloat 形式バッファへのポインタ |
TextureFormat.RFloat 形式バッファ |
17. Face コンポーネント
ToF AR Face コンポーネント
FaceコンポーネントはFace認識関連の処理を行い、認識結果データをアプリケーションに提供します。 主に下記機能を提供します。
-
AR Foundationに準拠したフォーマットのFace認識データ、BlendShapeデータ出力
-
Face認識結果の表示
-
視線認識結果の表示
アプリケーションは TofArFaceManager.FaceData フィールドよりデータを取得できます。
本コンポーネントは以下のプラットフォームが使用可能です。
Platform | Available | Note |
---|---|---|
Android |
No |
|
iOS |
Yes |
内部でARKitを使用します。AR |
17.1. データ形式: Faceデータ
アプリケーションは TofArFaceManager.FaceData フィールドよりFace情報を格納した構造体を取得できます。
[Member] | [Type] | [Description] |
---|---|---|
results |
FaceResult[] |
Face情報配列 |
FaceResultは AR FoundationのARFaceクラスにBlendShapeデータのフィールドを追加した定義。
17.2. Prefabs
Name | Description |
---|---|
TofArFaceManager |
ToF AR Faceコンポーネントとの接続を管理します。 |
FaceModel |
Face認識結果をMeshで表示します。 |
17.3. コンポーネントの詳細
Faceコンポーネントの詳細については API references for Face を参照してください。