Perception シミュレーションPerception simulation

アプリの自動テストをビルドしますか。Do you want to build an automated test for your app? コンポーネント レベルの単体テストを超えるし、実際に、アプリのエンドを実行するためのテストを作成しますか。Do you want your tests to go beyond component-level unit testing and really exercise your app end-to-end? Perception シミュレーションは、探しているものです。Perception Simulation is what you're looking for. Perception シミュレーション ライブラリ偽の人間と送信の世界の入力データをアプリに、テストを自動化できるようにします。The Perception Simulation library sends fake human and world input data to your app so you can automate your tests. たとえば、左と右に人間の検索とジェスチャを実行することの入力をシミュレートできます。For example, you can simulate the input of a human looking left and right and then performing a gesture.

Perception シミュレーションでは、物理 HoloLens、HoloLens のエミュレーター、またはインストールされている混合の現実ポータルを使用した PC にこのようなシミュレーションの入力を送信できます。Perception Simulation can send simulated input like this to a physical HoloLens, the HoloLens emulator, or a PC with Mixed Reality Portal installed. Perception Mixed Reality デバイスでライブのセンサーをバイパスし、シミュレーションでは、デバイスで実行されているアプリケーションへの入力をシミュレートします。Perception Simulation bypasses the live sensors on a Mixed Reality device and sends simulated input to applications running on the device. アプリケーションでは、使用、および知覚のシミュレーションを実行するいると実際のセンサーを実行している間の違いを見分けることはできませんが、常に、同じ Api を介してこれら偽の入力イベントを受信します。Applications receive these fake input events through the same APIs they always use, and can't tell the difference between running with real sensors versus running with Perception Simulation. Perception シミュレーションは、シミュレートされた入力、HoloLens 仮想マシンに送信するために使用、HoloLens のエミュレーターと同じテクノロジです。Perception Simulation is the same technology used by the HoloLens emulator to send simulated input to the HoloLens Virtual Machine.

シミュレーションでは、まず、IPerceptionSimulationManager オブジェクトを作成します。Simulation starts by creating an IPerceptionSimulationManager object. そのオブジェクトは、シミュレートされた「人事」、ヘッドの位置、手の形の位置、ジェスチャなどのプロパティを制御するためのコマンドを発行できます。From that object, you can issue commands to control properties of a simulated "human", including head position, hand position, and gestures.

Perception でシミュレーションするための Visual Studio プロジェクトの設定Setting Up a Visual Studio Project for Perception Simulation

  1. HoloLens のエミュレーターをインストール開発 PC 上。Install the HoloLens emulator on your development PC. エミュレーターには、Perception シミュレーションに使用するライブラリが含まれています。The emulator includes the libraries you will use for Perception Simulation.
  2. 作成する新しい Visual StudioC#デスクトップのプロジェクト (コンソール プロジェクトをうまくを開始する)。Create a new Visual Studio C# desktop project (a Console Project works great to get started).
  3. 次のバイナリをプロジェクトに参照として追加 (プロジェクトに追加]-> [-> 参照)。検索できます %programfiles (x86) %\Microsoft XDE\10.0.11082.0をします。Add the following binaries to your project as references (Project->Add->Reference...). You can find them in %ProgramFiles(x86)%\Microsoft XDE\10.0.11082.0 a. 管理 - PerceptionSimulationManager.Interop.dll C# Perception シミュレーション用のラッパーです。PerceptionSimulationManager.Interop.dll - Managed C# wrapper for Perception Simulation. b. b. PerceptionSimulationRest.dll - HoloLens またはエミュレーターへの web ソケット通信チャネルを設定するためのライブラリを使用します。PerceptionSimulationRest.dll - Library for setting up a web-socket communication channel to the HoloLens or emulator. c.c. SimulationStream.Interop.dll のシミュレーションを共有する型。SimulationStream.Interop.dll - Shared types for simulation.
  4. 実装を追加するプロジェクト バイナリ PerceptionSimulationManager.dll。Add the implementation binary PerceptionSimulationManager.dll to your project a. まず、プロジェクトに、バイナリとして追加 (プロジェクトに追加-> -> 既存項目の)。プロジェクトのソース フォルダーにコピーしないように、リンクとして保存します。First add it as a binary to the project (Project->Add->Existing Item...). Save it as a link so that it doesn't copy it to your project source folder. PerceptionSimulationManager.dll をリンクとしてプロジェクトに追加b。Add PerceptionSimulationManager.dll to the project as a link b. 確認し、ビルドの出力フォルダーにコピーすることがあるのです。Then make sure that it get's copied to your output folder on build. これは、バイナリのプロパティ シートです。This is in the property sheet for the binary . マーク PerceptionSimulationManager.dll 出力ディレクトリにコピーするにはMark PerceptionSimulationManager.dll to copy to the output directory

IPerceptionSimulation マネージャー オブジェクトを作成します。Creating an IPerceptionSimulation Manager Object

シミュレーションを制御するには、IPerceptionSimulationManager オブジェクトから取得したオブジェクトの更新プログラムを発行します。To control simulation, you'll issue updates to objects retrieved from an IPerceptionSimulationManager object. 最初の手順では、そのオブジェクトを取得し、ターゲット デバイスまたはエミュレーターに接続します。The first step is to get that object and connect it to your target device or emulator. デバイスのポータル をクリックして、エミュレーターの IP アドレスを取得できます、ツールバーYou can get the IP address of your emulator by clicking on the Device Portal button in the toolbar

デバイスのポータルを開く アイコンデバイス ポータルを開く:エミュレーターでの HoloLens os、Windows Device Portal を開きます。Open Device Portal icon Open Device Portal: Open the Windows Device Portal for the HoloLens OS in the emulator.

まず、RestSimulationStreamSink.Create RestSimulationStreamSink オブジェクトを取得すると呼んでいます。First, you'll call RestSimulationStreamSink.Create to get a RestSimulationStreamSink object. これは、対象のデバイスまたはエミュレーターを http 接続を介して制御されます。This is the target device or emulator that you will control over an http connection. コマンドに渡され、によって処理されますが、 Windows Device Portalデバイスまたはエミュレーターで実行されています。Your commands will be passed to and handled by the Windows Device Portal running on the device or emulator. オブジェクトを作成する必要があります、4 つのパラメーターは次のとおりです。The four parameters you'll need to create an object are:

  • Uri の uri、ターゲット デバイスの IP アドレス (例:"http://123.123.123.123")Uri uri - IP address of the target device (e.g., "http://123.123.123.123")
  • System.Net.NetworkCredential 資格情報 - に接続するためには、ユーザー名/パスワード、 Windows Device Portalターゲット デバイスまたはエミュレーターにします。System.Net.NetworkCredential credentials - Username/password for connecting to the Windows Device Portal on the target device or emulator. そのローカル 168 を使用してエミュレーターに接続しています。 場合、.。 * アドレス同じ pc では、すべての資格情報が受け入れられます。If you are connecting to the emulator via its local 168...* address on the same PC, any credentials will be accepted.
  • bool の通常の通常の優先順位、優先度の低いは false の場合は True。bool normal - True for normal priority, false for low priority. 一般にこれを設定するtrueテスト シナリオ用。You generally want to set this to true for test scenarios.
  • System.Threading.CancellationToken トークン - 非同期操作をキャンセルするトークンです。System.Threading.CancellationToken token - Token to cancel the async operation.

2 つ目は、IPerceptionSimulationManager を作成します。Second you will create the IPerceptionSimulationManager. これは、使用してシミュレーションを制御するオブジェクトです。This is the object you use to control simulation. これをも実行することで、非同期メソッドに注意してください。Note that this must also be done in an async method.

シミュレートされたユーザーを制御します。Control the simulated Human

IPerceptionSimulationManager には、ISimulatedHuman オブジェクトを返す人間プロパティがあります。An IPerceptionSimulationManager has a Human property that returns an ISimulatedHuman object. シミュレートされたユーザーを制御するには、このオブジェクトに対して操作を実行します。To control the simulated human, perform operations on this object. 次に、例を示します。For example:

manager.Human.Move(new Vector3(0.1f, 0.0f, 0.0f))

基本的なサンプルC#コンソール アプリケーションBasic Sample C# console application

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.PerceptionSimulation;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Task.Run(async () =>
            {
                try
                {
                    RestSimulationStreamSink sink = await RestSimulationStreamSink.Create(
                        // use the IP address for your device/emulator
                        new Uri("http://169.254.227.115"),
                        // no credentials are needed for the emulator
                        new System.Net.NetworkCredential("", ""),
                        // normal priorty
                        true,
                        // cancel token
                        new System.Threading.CancellationToken());

                    IPerceptionSimulationManager manager = PerceptionSimulationManager.CreatePerceptionSimulationManager(sink);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            });

            // If main exits, the process exits.  
            Console.WriteLine("Press any key to exit...");
            Console.ReadLine();
        }
    }
}

サンプルを拡張C#コンソール アプリケーションExtended Sample C# console application

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.PerceptionSimulation;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Task.Run(async () =>
            {
                try
                {
                    RestSimulationStreamSink sink = await RestSimulationStreamSink.Create(
                        // use the IP address for your device/emulator
                        new Uri("http://169.254.227.115"),
                        // no credentials are needed for the emulator
                        new System.Net.NetworkCredential("", ""),
                        // normal priorty
                        true,
                        // cancel token
                        new System.Threading.CancellationToken());

                    IPerceptionSimulationManager manager = PerceptionSimulationManager.CreatePerceptionSimulationManager(sink);

                    // Now, we'll simulate a sequence of actions.
                    // Sleeps in-between each action give time to the system
                    // to be able to properly react.
                    // This is just an example. A proper automated test should verify
                    // that the app has behaved correctly
                    // before proceeding to the next step, instead of using Sleeps.

                    // Simulate Bloom gesture, which should cause Shell to disappear
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.Home);
                    Thread.Sleep(2000);

                    // Simulate Bloom gesture again... this time, Shell should reappear
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.Home);
                    Thread.Sleep(2000);

                    // Simulate a Head rotation down around the X axis
                    // This should cause gaze to aim about the center of the screen
                    manager.Human.Head.Rotate(new Rotation3(0.04f, 0.0f, 0.0f));
                    Thread.Sleep(300);

                    // Simulate a finger press & release
                    // Should cause a tap on the center tile, thus launching it
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerPressed);
                    Thread.Sleep(300);
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerReleased);
                    Thread.Sleep(2000);

                    // Simulate a second finger press & release
                    // Should activate the app that was launched when the center tile was clicked
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerPressed);
                    Thread.Sleep(300);
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerReleased);
                    Thread.Sleep(5000);

                    // Simulate a Head rotation towards the upper right corner
                    manager.Human.Head.Rotate(new Rotation3(-0.14f, 0.17f, 0.0f));
                    Thread.Sleep(300);

                    // Simulate a third finger press & release
                    // Should press the Remove button on the app
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerPressed);
                    Thread.Sleep(300);
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerReleased);
                    Thread.Sleep(2000);

                    // Simulate Bloom gesture again... bringing the Shell back once more
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.Home);
                    Thread.Sleep(2000);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            });

            // If main exits, the process exits.  
            Console.WriteLine("Press any key to exit...");
            Console.ReadLine();
        }
    }
}

API リファレンスAPI Reference

Microsoft.PerceptionSimulation.SimulatedDeviceTypeMicrosoft.PerceptionSimulation.SimulatedDeviceType

シミュレートされたデバイスの種類について説明しますDescribes a simulated device type

public enum SimulatedDeviceType
{
    Reference = 0
}

Microsoft.PerceptionSimulation.SimulatedDeviceType.ReferenceMicrosoft.PerceptionSimulation.SimulatedDeviceType.Reference

架空の参照のデバイスでは、PerceptionSimulationManager の既定値A fictitious reference device, the default for PerceptionSimulationManager

Microsoft.PerceptionSimulation.HeadTrackerModeMicrosoft.PerceptionSimulation.HeadTrackerMode

ヘッド トラッカー モードについて説明しますDescribes a head tracker mode

public enum HeadTrackerMode
{
    Default = 0,
    Orientation = 1,
    Position = 2
}

Microsoft.PerceptionSimulation.HeadTrackerMode.DefaultMicrosoft.PerceptionSimulation.HeadTrackerMode.Default

既定の Head が追跡します。Default Head Tracking. つまり、システムは、追跡モードの実行時の条件に基づいて最適なヘッドを選択ことがあります。This means the system may select the best head tracking mode based upon runtime conditions.

Microsoft.PerceptionSimulation.HeadTrackerMode.OrientationMicrosoft.PerceptionSimulation.HeadTrackerMode.Orientation

印刷の向きのみヘッドが追跡します。Orientation Only Head Tracking. つまり、追跡対象の位置は、信頼性が高く、できない場合があります、ヘッドの位置に依存する一部の機能を利用できない可能性があります。This means that the tracked position may not be reliable, and some functionality dependent on head position may not be available.

Microsoft.PerceptionSimulation.HeadTrackerMode.PositionMicrosoft.PerceptionSimulation.HeadTrackerMode.Position

ヘッドの位置指定の追跡。Positional Head Tracking. つまり、追跡されているヘッドの位置と向きの両方がある信頼性の高いThis means that the tracked head position and orientation are both reliable

Microsoft.PerceptionSimulation.SimulatedGestureMicrosoft.PerceptionSimulation.SimulatedGesture

シミュレートされたジェスチャを説明します。Describes a simulated gesture

public enum SimulatedGesture
{
    None = 0,
    FingerPressed = 1,
    FingerReleased = 2,
    Home = 4,
    Max = Home
}

Microsoft.PerceptionSimulation.SimulatedGesture.NoneMicrosoft.PerceptionSimulation.SimulatedGesture.None

ジェスチャがない場合に使用される sentinel 値A sentinel value used to indicate no gestures

Microsoft.PerceptionSimulation.SimulatedGesture.FingerPressedMicrosoft.PerceptionSimulation.SimulatedGesture.FingerPressed

ジェスチャが押された指A finger pressed gesture

Microsoft.PerceptionSimulation.SimulatedGesture.FingerReleasedMicrosoft.PerceptionSimulation.SimulatedGesture.FingerReleased

リリースの指のジェスチャA finger released gesture

Microsoft.PerceptionSimulation.SimulatedGesture.HomeMicrosoft.PerceptionSimulation.SimulatedGesture.Home

ホームのジェスチャThe home gesture

Microsoft.PerceptionSimulation.SimulatedGesture.MaxMicrosoft.PerceptionSimulation.SimulatedGesture.Max

最大の有効なジェスチャThe maximum valid gesture

Microsoft.PerceptionSimulation.PlaybackStateMicrosoft.PerceptionSimulation.PlaybackState

再生の状態について説明しますDescribes the state of a playback

public enum PlaybackState
{
    Stopped = 0,
    Playing = 1,
    Paused = 2,
    End = 3,
}

Microsoft.PerceptionSimulation.PlaybackState.StoppedMicrosoft.PerceptionSimulation.PlaybackState.Stopped

記録の停止と再生の準備ができては現在The recording is currently stopped and ready for playback

Microsoft.PerceptionSimulation.PlaybackState.PlayingMicrosoft.PerceptionSimulation.PlaybackState.Playing

記録を再生中The recording is currently playing

Microsoft.PerceptionSimulation.PlaybackState.PausedMicrosoft.PerceptionSimulation.PlaybackState.Paused

記録が現在一時停止していますThe recording is currently paused

Microsoft.PerceptionSimulation.PlaybackState.EndMicrosoft.PerceptionSimulation.PlaybackState.End

記録が末尾に達したThe recording has reached the end

Microsoft.PerceptionSimulation.Vector3Microsoft.PerceptionSimulation.Vector3

点または 3D 空間でベクターを表す場合があります、3 つのコンポーネントのベクターをについて説明します。Describes a 3 components vector, which might describe a point or a vector in 3D space

public struct Vector3
{
    public float X;
    public float Y;
    public float Z;
    public Vector3(float x, float y, float z);
}

Microsoft.PerceptionSimulation.Vector3.XMicrosoft.PerceptionSimulation.Vector3.X

ベクターの X コンポーネントThe X component of the vector

Microsoft.PerceptionSimulation.Vector3.YMicrosoft.PerceptionSimulation.Vector3.Y

ベクターの Y コンポーネントThe Y component of the vector

Microsoft.PerceptionSimulation.Vector3.ZMicrosoft.PerceptionSimulation.Vector3.Z

ベクトルの Z 成分The Z component of the vector

Microsoft.PerceptionSimulation.Vector3.#ctor(System.Single,System.Single,System.Single)Microsoft.PerceptionSimulation.Vector3.#ctor(System.Single,System.Single,System.Single)

新しい Vector3 を構築します。Construct a new Vector3

パラメーターParameters

  • ベクターの x、x コンポーネントx - The x component of the vector
  • y 軸ベクターの、y コンポーネントy - The y component of the vector
  • ベクトルの z、z 成分z - The z component of the vector

Microsoft.PerceptionSimulation.Rotation3Microsoft.PerceptionSimulation.Rotation3

3 つのコンポーネントの回転をについて説明します。Describes a 3 components rotation

public struct Rotation3
{
    public float Pitch;
    public float Yaw;
    public float Roll;
    public Rotation3(float pitch, float yaw, float roll);
}

Microsoft.PerceptionSimulation.Rotation3.PitchMicrosoft.PerceptionSimulation.Rotation3.Pitch

回転のピッチ コンポーネントは、X 軸の周りのダウンThe Pitch component of the Rotation, down around the X axis

Microsoft.PerceptionSimulation.Rotation3.YawMicrosoft.PerceptionSimulation.Rotation3.Yaw

Y 軸の周囲の回転のヨー コンポーネントThe Yaw component of the Rotation, right around the Y axis

Microsoft.PerceptionSimulation.Rotation3.RollMicrosoft.PerceptionSimulation.Rotation3.Roll

Z 軸の周囲の回転のロールのコンポーネントThe Roll component of the Rotation, right around the Z axis

Microsoft.PerceptionSimulation.Rotation3.#ctor(System.Single,System.Single,System.Single)Microsoft.PerceptionSimulation.Rotation3.#ctor(System.Single,System.Single,System.Single)

新しい Rotation3 を構築します。Construct a new Rotation3

パラメーターParameters

  • ピッチの回転のピッチ コンポーネントpitch - The pitch component of the Rotation
  • ヨー、回転のヨー コンポーネントyaw - The yaw component of the Rotation
  • ロールの回転のロールのコンポーネントroll - The roll component of the Rotation

Microsoft.PerceptionSimulation.FrustumMicrosoft.PerceptionSimulation.Frustum

カメラで通常使用される視錐台をについて説明します。Describes a view frustum, as typically used by a camera

public struct Frustum
{
    float Near;
    float Far;
    float FieldOfView;
    float AspectRatio;
}

Microsoft.PerceptionSimulation.Frustum.NearMicrosoft.PerceptionSimulation.Frustum.Near

最小の距離の視錐台に含まれています。The minimum distance that is contained in the frustum

Microsoft.PerceptionSimulation.Frustum.FarMicrosoft.PerceptionSimulation.Frustum.Far

最大距離の視錐台に含まれています。The maximum distance that is contained in the frustum

Microsoft.PerceptionSimulation.Frustum.FieldOfViewMicrosoft.PerceptionSimulation.Frustum.FieldOfView

ラジアン (PI よりも小さい) 視錐台の横のフィールドの表示The horizontal field of view of the frustum, in radians (less than PI)

Microsoft.PerceptionSimulation.Frustum.AspectRatioMicrosoft.PerceptionSimulation.Frustum.AspectRatio

垂直ビューのフィールドへの水平視野の比率The ratio of horizontal field of view to vertical field of view

Microsoft.PerceptionSimulation.IPerceptionSimulationManagerMicrosoft.PerceptionSimulation.IPerceptionSimulationManager

デバイスの制御に使用されるパケットを生成するためのルートRoot for generating the packets used to control a device

public interface IPerceptionSimulationManager
{   
    ISimulatedDevice Device { get; }
    ISimulatedHuman Human { get; }
    void Reset();
}

Microsoft.PerceptionSimulation.IPerceptionSimulationManager.DeviceMicrosoft.PerceptionSimulation.IPerceptionSimulationManager.Device

シミュレートされた人と、シミュレートされた世界を解釈するシミュレートされたデバイス オブジェクトを取得します。Retrieve the simulated device object that interprets the simulated human and the simulated world.

Microsoft.PerceptionSimulation.IPerceptionSimulationManager.HumanMicrosoft.PerceptionSimulation.IPerceptionSimulationManager.Human

シミュレートされたユーザーを制御するオブジェクトを取得します。Retrieve the object that controls the simulated human.

Microsoft.PerceptionSimulation.IPerceptionSimulationManager.ResetMicrosoft.PerceptionSimulation.IPerceptionSimulationManager.Reset

シミュレーションを既定の状態にリセットします。Resets the simulation to its default state.

Microsoft.PerceptionSimulation.ISimulatedDeviceMicrosoft.PerceptionSimulation.ISimulatedDevice

シミュレートされた世界でシミュレートされた人間を解釈し、デバイスを記述するインターフェイスします。Interface describing the device which interprets the simulated world and the simulated human

public interface ISimulatedDevice
{
    ISimulatedHeadTracker HeadTracker { get; }
    ISimulatedHandTracker HandTracker { get; }
    void SetSimulatedDeviceType(SimulatedDeviceType type);
}

Microsoft.PerceptionSimulation.ISimulatedDevice.HeadTrackerMicrosoft.PerceptionSimulation.ISimulatedDevice.HeadTracker

シミュレートされたデバイスから、ヘッドの追跡ツールを取得します。Retrieve the Head Tracker from the Simulated Device.

Microsoft.PerceptionSimulation.ISimulatedDevice.HandTrackerMicrosoft.PerceptionSimulation.ISimulatedDevice.HandTracker

シミュレートされたデバイスからの手の形の追跡ツールを取得します。Retrieve the Hand Tracker from the Simulated Device.

Microsoft.PerceptionSimulation.ISimulatedDevice.SetSimulatedDeviceType(Microsoft.PerceptionSimulation.SimulatedDeviceType)Microsoft.PerceptionSimulation.ISimulatedDevice.SetSimulatedDeviceType(Microsoft.PerceptionSimulation.SimulatedDeviceType)

指定されたデバイスの種類に一致するように、シミュレートされたデバイスのプロパティを設定します。Set the properties of the simulated device to match the provided device type.

パラメーターParameters

  • シミュレートされたデバイスの新しい種類を入力します。type - The new type of Simulated Device

Microsoft.PerceptionSimulation.ISimulatedHeadTrackerMicrosoft.PerceptionSimulation.ISimulatedHeadTracker

シミュレートされた人間の頭を追跡するシミュレートされたデバイスの部分を記述するインターフェイスします。Interface describing the portion of the simulated device that tracks the head of the simulated human

public interface ISimulatedHeadTracker
{
    HeadTrackerMode HeadTrackerMode { get; set; }
};

Microsoft.PerceptionSimulation.ISimulatedHeadTracker.HeadTrackerModeMicrosoft.PerceptionSimulation.ISimulatedHeadTracker.HeadTrackerMode

取得し、現在のトラッカーのヘッド モードを設定します。Retrieves and sets the current head tracker mode.

Microsoft.PerceptionSimulation.ISimulatedHandTrackerMicrosoft.PerceptionSimulation.ISimulatedHandTracker

シミュレートされた人間の手を追跡するシミュレートされたデバイスの部分を記述するインターフェイスします。Interface describing the portion of the simulated device that tracks the hands of the simulated human

public interface ISimulatedHandTracker
{
    Vector3 WorldPosition { get; }
    Vector3 Position { get; set; }
    float Pitch { get; set; }
    bool FrustumIgnored { [return: MarshalAs(UnmanagedType.Bool)] get; [param: MarshalAs(UnmanagedType.Bool)] set; }
    Frustum Frustum { get; set; }
}

Microsoft.PerceptionSimulation.ISimulatedHandTracker.WorldPositionMicrosoft.PerceptionSimulation.ISimulatedHandTracker.WorldPosition

メートル単位で、世界中とに関してノードの位置を取得します。Retrieve the position of the node with relation to the world, in meters

Microsoft.PerceptionSimulation.ISimulatedHandTracker.PositionMicrosoft.PerceptionSimulation.ISimulatedHandTracker.Position

取得し、ヘッドの中央を基準、シミュレートされた手トラッカーの位置を設定します。Retrieve and set the position of the simulated hand tracker, relative to the center of the head.

Microsoft.PerceptionSimulation.ISimulatedHandTracker.PitchMicrosoft.PerceptionSimulation.ISimulatedHandTracker.Pitch

取得し、シミュレートされた手トラッカーの下向きのピッチの設定Retrieve and set the downward pitch of the simulated hand tracker

Microsoft.PerceptionSimulation.ISimulatedHandTracker.FrustumIgnoredMicrosoft.PerceptionSimulation.ISimulatedHandTracker.FrustumIgnored

取得し、シミュレートされた手トラッカーの視錐台を無視するかどうかを設定します。Retrieve and set whether the frustum of the simulated hand tracker is ignored. 無視される場合、両方の手は常に表示します。When ignored, both hands are always visible. (既定値) を無視しない場合に手は手トラッカーの視錐台内にあるときに、表示のみです。When not ignored (the default) hands are only visible when they are within the frustum of the hand tracker.

Microsoft.PerceptionSimulation.ISimulatedHandTracker.FrustumMicrosoft.PerceptionSimulation.ISimulatedHandTracker.Frustum

取得し、手がシミュレートされた手の追跡ツールに表示されるかどうかを判断するための視錐台プロパティを設定します。Retrieve and set the frustum properties used to determine if hands are visible to the simulated hand tracker.

Microsoft.PerceptionSimulation.ISimulatedHumanMicrosoft.PerceptionSimulation.ISimulatedHuman

シミュレートされたユーザーを制御するための最上位レベル インターフェイスTop level interface for controlling the simulated human

public interface ISimulatedHuman 
{
    Vector3 WorldPosition { get; set; }
    float Direction { get; set; }
    float Height { get; set; }
    ISimulatedHand LeftHand { get; }
    ISimulatedHand RightHand { get; }
    ISimulatedHead Head { get; }
    void Move(Vector3 translation);
    void Rotate(float radians);
}

Microsoft.PerceptionSimulation.ISimulatedHuman.WorldPositionMicrosoft.PerceptionSimulation.ISimulatedHuman.WorldPosition

取得し、メートル単位で、世界中とに関してノードの位置を設定します。Retrieve and set the position of the node with relation to the world, in meters. 位置は、人間のフィートの中央にある点に対応します。The position corresponds to a point at the center of the human's feet.

Microsoft.PerceptionSimulation.ISimulatedHuman.DirectionMicrosoft.PerceptionSimulation.ISimulatedHuman.Direction

取得し、世界中でシミュレートされた人の顔の方向を設定します。Retrieve and set the direction the simulated human faces in the world. 負の Z 軸を 0 ラジアンに直面します。0 radians faces down the negative Z axis. Y 軸の正のラジアンは右回りに回転します。Positive radians rotate clockwise about the Y axis.

Microsoft.PerceptionSimulation.ISimulatedHuman.HeightMicrosoft.PerceptionSimulation.ISimulatedHuman.Height

取得し、シミュレーションの人間の高さをメートル単位で設定Retrieve and set the height of the simulated human, in meters

Microsoft.PerceptionSimulation.ISimulatedHuman.LeftHandMicrosoft.PerceptionSimulation.ISimulatedHuman.LeftHand

シミュレートされた人間の左側を取得します。Retrieve the left hand of the simulated human

Microsoft.PerceptionSimulation.ISimulatedHuman.RightHandMicrosoft.PerceptionSimulation.ISimulatedHuman.RightHand

シミュレートされた人間の右側を取得します。Retrieve the right hand of the simulated human

Microsoft.PerceptionSimulation.ISimulatedHuman.HeadMicrosoft.PerceptionSimulation.ISimulatedHuman.Head

シミュレートされた人間の頭を取得します。Retrieve the head of the simulated human

Microsoft.PerceptionSimulation.ISimulatedHuman.Move(Microsoft.PerceptionSimulation.Vector3)Microsoft.PerceptionSimulation.ISimulatedHuman.Move(Microsoft.PerceptionSimulation.Vector3)

メートル単位で、現在位置を基準として、シミュレートされた人間を移動します。Move the simulated human relative to its current position, in meters

パラメーターParameters

  • 翻訳に移動して、現在の位置を基準に変換translation - The translation to move, relative to current position

Microsoft.PerceptionSimulation.ISimulatedHuman.Rotate(System.Single)Microsoft.PerceptionSimulation.ISimulatedHuman.Rotate(System.Single)

Y 軸を中心に時計回りに現在方向の基準とした、シミュレートされた人間を回転します。Rotate the simulated human relative to its current direction, clockwise about the Y axis

パラメーターParameters

  • ラジアン単位の Y 軸に沿って回転する量radians - The amount to rotate around the Y axis

Microsoft.PerceptionSimulation.ISimulatedHandMicrosoft.PerceptionSimulation.ISimulatedHand

シミュレートされた人間の手の形を記述するインターフェイスします。Interface describing a hand of the simulated human

public interface ISimulatedHand
{
    Vector3 WorldPosition { get; }
    Vector3 Position { get; set; }
    bool Activated { [return: MarshalAs(UnmanagedType.Bool)] get; [param: MarshalAs(UnmanagedType.Bool)] set; }
    bool Visible { [return: MarshalAs(UnmanagedType.Bool)] get; }
    void EnsureVisible();
    void Move(Vector3 translation);
    void PerformGesture(SimulatedGesture gesture);
}

Microsoft.PerceptionSimulation.ISimulatedHand.WorldPositionMicrosoft.PerceptionSimulation.ISimulatedHand.WorldPosition

メートル単位で、世界中とに関してノードの位置を取得します。Retrieve the position of the node with relation to the world, in meters

Microsoft.PerceptionSimulation.ISimulatedHand.PositionMicrosoft.PerceptionSimulation.ISimulatedHand.Position

取得し、メートル単位で、人間の基準とした、シミュレートされた手の形の位置を設定します。Retrieve and set the position of the simulated hand relative to the human, in meters.

Microsoft.PerceptionSimulation.ISimulatedHand.ActivatedMicrosoft.PerceptionSimulation.ISimulatedHand.Activated

取得し、手の形が現在アクティブかどうかを設定します。Retrieve and set whether the hand is currently activated.

Microsoft.PerceptionSimulation.ISimulatedHand.VisibleMicrosoft.PerceptionSimulation.ISimulatedHand.Visible

手のアイコンが (つまり、かどうかは、HandTracker によって検出された位置に) SimulatedDevice に現在表示されているかどうかを取得します。Retrieve whether the hand is currently visible to the SimulatedDevice (ie, whether it's in a position to be detected by the HandTracker).

Microsoft.PerceptionSimulation.ISimulatedHand.EnsureVisibleMicrosoft.PerceptionSimulation.ISimulatedHand.EnsureVisible

SimulatedDevice に表示されるようにして手のアイコンに移動します。Move the hand such that it is visible to the SimulatedDevice.

Microsoft.PerceptionSimulation.ISimulatedHand.Move(Microsoft.PerceptionSimulation.Vector3)Microsoft.PerceptionSimulation.ISimulatedHand.Move(Microsoft.PerceptionSimulation.Vector3)

メートル単位で、現在位置を基準として、シミュレートされた手の形の位置を移動します。Move the position of the simulated hand relative to its current position, in meters.

パラメーターParameters

  • 翻訳 - シミュレートされた手の形を平行移動量translation - The amount to translate the simulated hand

Microsoft.PerceptionSimulation.ISimulatedHand.PerformGesture(Microsoft.PerceptionSimulation.SimulatedGesture)Microsoft.PerceptionSimulation.ISimulatedHand.PerformGesture(Microsoft.PerceptionSimulation.SimulatedGesture)

(のみ検出されます、システムによって、手が有効になっている場合)、シミュレートされた手の形を使用するジェスチャを実行します。Perform a gesture using the simulated hand (it will only be detected by the system if the hand is enabled).

パラメーターParameters

  • ジェスチャのジェスチャを実行するにはgesture - The gesture to perform

Microsoft.PerceptionSimulation.ISimulatedHeadMicrosoft.PerceptionSimulation.ISimulatedHead

シミュレートされた人間の頭を記述するインターフェイスします。Interface describing the head of the simulated human

public interface ISimulatedHead
{
    Vector3 WorldPosition { get; }
    Rotation3 Rotation { get; set; }
    float Diameter { get; set; }
    void Rotate(Rotation3 rotation);
}

Microsoft.PerceptionSimulation.ISimulatedHead.WorldPositionMicrosoft.PerceptionSimulation.ISimulatedHead.WorldPosition

メートル単位で、世界中とに関してノードの位置を取得します。Retrieve the position of the node with relation to the world, in meters

Microsoft.PerceptionSimulation.ISimulatedHead.RotationMicrosoft.PerceptionSimulation.ISimulatedHead.Rotation

シミュレートされた先頭の回転角度を取得します。Retrieve the rotation of the simulated head. 軸に検索するときに、正のラジアンは右回りに回転します。Positive radians rotate clockwise when looking along the axis.

Microsoft.PerceptionSimulation.ISimulatedHead.DiameterMicrosoft.PerceptionSimulation.ISimulatedHead.Diameter

シミュレートされた先頭の直径を取得します。Retrieve the simulated head's diameter. この値は、ヘッドのセンター (回転のポイント) を確認するに使用されます。This value is used to determine the head's center (point of rotation).

Microsoft.PerceptionSimulation.ISimulatedHead.Rotate(Microsoft.PerceptionSimulation.Rotation3)Microsoft.PerceptionSimulation.ISimulatedHead.Rotate(Microsoft.PerceptionSimulation.Rotation3)

現在、回転の基準としたシミュレートされたヘッドを回転します。Rotate the simulated head relative to its current rotation. 軸に検索するときに、正のラジアンは右回りに回転します。Positive radians rotate clockwise when looking along the axis.

パラメーターParameters

  • 回転の量を回転するにはrotation - The amount to rotate

Microsoft.PerceptionSimulation.ISimulationRecordingMicrosoft.PerceptionSimulation.ISimulationRecording

再生用に 1 つの記録と対話するためのインターフェイスが読み込まれます。Interface for interacting with a single recording loaded for playback.

public interface ISimulationRecording
{
    StreamDataTypes DataTypes { get; }
    PlaybackState State { get; }
    void Play();
    void Pause();
    void Seek(UInt64 ticks);
    void Stop();
};

Microsoft.PerceptionSimulation.ISimulationRecording.DataTypesMicrosoft.PerceptionSimulation.ISimulationRecording.DataTypes

記録のデータ型の一覧を取得します。Retrieves the list of data types in the recording.

Microsoft.PerceptionSimulation.ISimulationRecording.StateMicrosoft.PerceptionSimulation.ISimulationRecording.State

記録の現在の状態を取得します。Retrieves the current state of the recording.

Microsoft.PerceptionSimulation.ISimulationRecording.PlayMicrosoft.PerceptionSimulation.ISimulationRecording.Play

再生を開始します。Start the playback. 記録を一時停止すると、再生が一時停止中の場所から再開されます。停止した場合、先頭に再生が開始されます。If the recording is paused, playback will resume from the paused location; if stopped, playback will start at the beginning. 既に再生中の場合は、この呼び出しは無視されます。If already playing, this call is ignored.

Microsoft.PerceptionSimulation.ISimulationRecording.PauseMicrosoft.PerceptionSimulation.ISimulationRecording.Pause

現在の場所で再生を一時停止します。Pauses the playback at its current location. 記録が停止している場合、呼び出しは無視されます。If the recording is stopped, the call is ignored.

Microsoft.PerceptionSimulation.ISimulationRecording.Seek(System.UInt64)Microsoft.PerceptionSimulation.ISimulationRecording.Seek(System.UInt64)

(最初から 100 ナノ秒間隔) で指定された時間に、記録をシークし、その場所に一時停止します。Seeks the recording to the specified time (in 100 nanoseconds intervals from the beginning) and pauses at that location. 時間が、記録の末尾を越える場合、最後のフレームで一時停止中です。If the time is beyond the end of the recording, it is paused at the last frame.

パラメーターParameters

  • タイマー刻みの時刻をシークします。ticks - The time to which to seek

Microsoft.PerceptionSimulation.ISimulationRecording.StopMicrosoft.PerceptionSimulation.ISimulationRecording.Stop

再生を停止し、先頭に位置をリセットStops the playback and resets the position to the beginning

Microsoft.PerceptionSimulation.ISimulationRecordingCallbackMicrosoft.PerceptionSimulation.ISimulationRecordingCallback

再生中に状態の変更を受信するためのインターフェイスInterface for receiving state changes during playback

public interface ISimulationRecordingCallback
{
    void PlaybackStateChanged(PlaybackState newState);
};

Microsoft.PerceptionSimulation.ISimulationRecordingCallback.PlaybackStateChanged(Microsoft.PerceptionSimulation.PlaybackState)Microsoft.PerceptionSimulation.ISimulationRecordingCallback.PlaybackStateChanged(Microsoft.PerceptionSimulation.PlaybackState)

ISimulationRecording の再生の状態が変更されたときに呼び出されますCalled when an ISimulationRecording's playback state has changed

パラメーターParameters

  • newState の記録の新しい状態newState - The new state of the recording

Microsoft.PerceptionSimulation.PerceptionSimulationManagerMicrosoft.PerceptionSimulation.PerceptionSimulationManager

Perception シミュレーション オブジェクトを作成するためのルート オブジェクトRoot object for creating Perception Simulation objects

public static class PerceptionSimulationManager
{
    public static IPerceptionSimulationManager CreatePerceptionSimulationManager(ISimulationStreamSink sink);
    public static ISimulationStreamSink CreatePerceptionSimulationRecording(string path);
    public static ISimulationRecording LoadPerceptionSimulationRecording(string path, ISimulationStreamSinkFactory factory);
    public static ISimulationRecording LoadPerceptionSimulationRecording(string path, ISimulationStreamSinkFactory factory, ISimulationRecordingCallback callback);

Microsoft.PerceptionSimulation.PerceptionSimulationManager.CreatePerceptionSimulationManager(Microsoft.PerceptionSimulation.ISimulationStreamSink)Microsoft.PerceptionSimulation.PerceptionSimulationManager.CreatePerceptionSimulationManager(Microsoft.PerceptionSimulation.ISimulationStreamSink)

シミュレートされたパケットを生成すると、指定されたシンクへの配信にオブジェクトを作成します。Create on object for generating simulated packets and delivering them to the provided sink.

パラメーターParameters

  • 生成されたすべてのパケットを受信するシンクをシンクします。sink - The sink that will receive all generated packets

戻り値Return value

作成したマネージャーThe created Manager

Microsoft.PerceptionSimulation.PerceptionSimulationManager.CreatePerceptionSimulationRecording(System.String)Microsoft.PerceptionSimulation.PerceptionSimulationManager.CreatePerceptionSimulationRecording(System.String)

指定したパスにあるファイルのすべての受信パケットを格納するシンクを作成します。Create a sink which stores all received packets in a file at the specified path.

パラメーターParameters

  • パス - 作成するファイルのパスpath - The path of the file to create

戻り値Return value

作成したシンクThe created sink

Microsoft.PerceptionSimulation.PerceptionSimulationManager.LoadPerceptionSimulationRecording(System.String,Microsoft.PerceptionSimulation.ISimulationStreamSinkFactory)Microsoft.PerceptionSimulation.PerceptionSimulationManager.LoadPerceptionSimulationRecording(System.String,Microsoft.PerceptionSimulation.ISimulationStreamSinkFactory)

指定したファイルから、記録を読み込むLoad a recording from the specified file

パラメーターParameters

  • 読み込むファイルのパスのパスpath - The path of the file to load
  • 工場出荷時のために必要なときに、ISimulationStreamSink を作成するため、記録することによって使用されるファクトリfactory - A factory used by the recording for creating an ISimulationStreamSink when required

戻り値Return value

読み込まれた記録The loaded recording

Microsoft.PerceptionSimulation.PerceptionSimulationManager.LoadPerceptionSimulationRecording (System.String,Microsoft.PerceptionSimulation.ISimulationStreamSinkFactory、Microsoft.PerceptionSimulation.ISimulationRecordingCallback)Microsoft.PerceptionSimulation.PerceptionSimulationManager.LoadPerceptionSimulationRecording(System.String,Microsoft.PerceptionSimulation.ISimulationStreamSinkFactory,Microsoft.PerceptionSimulation.ISimulationRecordingCallback)

指定したファイルから、記録を読み込むLoad a recording from the specified file

パラメーターParameters

  • 読み込むファイルのパスのパスpath - The path of the file to load
  • 工場出荷時のために必要なときに、ISimulationStreamSink を作成するため、記録することによって使用されるファクトリfactory - A factory used by the recording for creating an ISimulationStreamSink when required
  • callback - コールバックを受け取る更新 regrading 記録の状態callback - A callback which receives updates regrading the recording's status

戻り値Return value

読み込まれた記録The loaded recording

Microsoft.PerceptionSimulation.StreamDataTypesMicrosoft.PerceptionSimulation.StreamDataTypes

ストリーム データのさまざまな種類について説明しますDescribes the different types of stream data

public enum StreamDataTypes
{
    None = 0x00,
    Head = 0x01,
    Hands = 0x02,
    SpatialMapping = 0x08,
    Calibration = 0x10,
    Environment = 0x20,
    All = None | Head | Hands | SpatialMapping | Calibration | Environment
}

Microsoft.PerceptionSimulation.StreamDataTypes.NoneMicrosoft.PerceptionSimulation.StreamDataTypes.None

ストリームのデータ型がない場合に使用される sentinel 値A sentinel value used to indicate no stream data types

Microsoft.PerceptionSimulation.StreamDataTypes.HeadMicrosoft.PerceptionSimulation.StreamDataTypes.Head

位置と、先頭の向きに関するデータの StreamStream of data regarding the position and orientation of the head

Microsoft.PerceptionSimulation.StreamDataTypes.HandsMicrosoft.PerceptionSimulation.StreamDataTypes.Hands

位置と手のジェスチャに関するデータの StreamStream of data regarding the position and gestures of hands

Microsoft.PerceptionSimulation.StreamDataTypes.SpatialMappingMicrosoft.PerceptionSimulation.StreamDataTypes.SpatialMapping

環境の空間のマッピングに関するデータの StreamStream of data regarding spatial mapping of the environment

Microsoft.PerceptionSimulation.StreamDataTypes.CalibrationMicrosoft.PerceptionSimulation.StreamDataTypes.Calibration

デバイスの調整に関するデータの Stream。Stream of data regarding calibration of the device. 調整のパケットは、リモート モードでのシステムでのみ受け入れられます。Calibration packets are only accepted by a system in Remote Mode.

Microsoft.PerceptionSimulation.StreamDataTypes.EnvironmentMicrosoft.PerceptionSimulation.StreamDataTypes.Environment

デバイスの環境に関するデータの StreamStream of data regarding the environment of the device

Microsoft.PerceptionSimulation.StreamDataTypes.AllMicrosoft.PerceptionSimulation.StreamDataTypes.All

すべて記録されたデータ型を示すために使用される sentinel 値A sentinel value used to indicate all recorded data types

Microsoft.PerceptionSimulation.ISimulationStreamSinkMicrosoft.PerceptionSimulation.ISimulationStreamSink

シミュレーションのストリームからデータ パケットを受信するオブジェクトAn object that receives data packets from a simulation stream

public interface ISimulationStreamSink
{
    void OnPacketReceived(uint length, byte[] packet);
}

Microsoft.PerceptionSimulation.ISimulationStreamSink.OnPacketReceived (uint の長さ、byte パケット)Microsoft.PerceptionSimulation.ISimulationStreamSink.OnPacketReceived(uint length, byte[] packet)

内部的に型指定されたおよびバージョン管理は、1 つのパケットを受信します。Receives a single packet, which is internally typed and versioned

パラメーターParameters

  • length - パケットの長さlength - The length of the packet
  • パケットのパケットのデータpacket - The data of the packet

Microsoft.PerceptionSimulation.ISimulationStreamSinkFactoryMicrosoft.PerceptionSimulation.ISimulationStreamSinkFactory

ISimulationStreamSink を作成するオブジェクトAn object that creates ISimulationStreamSink

public interface ISimulationStreamSinkFactory
{
    ISimulationStreamSink CreateSimulationStreamSink();
}

Microsoft.PerceptionSimulation.ISimulationStreamSinkFactory.CreateSimulationStreamSink()Microsoft.PerceptionSimulation.ISimulationStreamSinkFactory.CreateSimulationStreamSink()

ISimulationStreamSink の 1 つのインスタンスを作成します。Creates a single instance of ISimulationStreamSink

戻り値Return value

作成したシンクThe created sink