ハンドトラッキング
注釈
この機能は、実験的な機能であり、変更される可能性があります。また、サポート対象外のため、本番環境には使用しないでください。これらの実験的な機能は、今後のリリースで提供される可能性のあるプレビュー版として提供されています。実験的機能に関するフィードバックは、Lightshipの開発者コミュニティ に投稿してください。
フレーム内の人物の手の位置を追跡するには、ハンドトラッキング機能を使用します。ハンドトラッキング機能では手のひら検出を行い、手の2D位置や、手の幅、高さを確認できます。
ハンドトラッキングは、MediaPipe社のハンドトラッキング機械学習モデルを使用しています。詳細は、この モデルカード をご参照ください。
ハンドトラッキングを有効にするには、 ARHandTrackingManager
をシーンスクリプトに追加し、 ARHandTrackingManager.HandTrackingUpdated
のイベントハンドラを登録します。
using Niantic.ARDK.AR.Awareness;
using ARDK.Extensions;
public class MySceneScript: MonoBehaviour
{
[SerializeField]
private ARHandTrackingManager _handTrackingManager;
private void Start()
{
_handTrackingManager.HandTrackingUpdated += OnHandTrackingUpdated;
}
}
イベントハンドラで、 TrackingData.AlignedDetections
のリストにハンドトラッキングのデータがあるかどうかを調べます。
private void OnHandTrackingUpdated(HumanTrackingArgs args)
{
var data = args.TrackingData;
for(var i=0; i < data.AlignedDetections.Count; i++)
{
var item = data.AlignedDetections[i];
Debug.Log(item.X +" "+ item.Y + " -- " + item.W + " " + item.H );
}
}
スクリプトで ARHandTrackingManager
を使用できない場合は、セッションの ARWorldTrackingConfiguration
で IsPalmDetectionEnabled
を有効にしてハンドトラッキング機能を有効にしてから、 ARSession.HandTracker.HandTrackingStreamUpdated
の独自のイベントハンドラを追加します。
コード例については、ContextAwareness/HumanARにある ARDK使用例 のハンドトラッキング例をご参照ください。