3D アプリ ランチャー (UWP アプリ) の実装します。Implement 3D app launchers (UWP apps)

注意

この機能は、イマーシブ ヘッドセットの 2017 の Fall Creators Update (RS3) の一部としてが追加され、HoloLens と Windows ではサポートされて 10 April 2018 Update。This feature was added as part of the 2017 Fall Creators Update (RS3) for immersive headsets and is supported by HoloLens with the Windows 10 April 2018 Update. アプリケーションには、イマーシブ ヘッドセットで 10.0.16299 以上 10.0.17125 HoloLens では、Windows SDK のバージョンが対象とすることを確認します。Make sure your application is targeting a version of the Windows SDK greater than or equal to 10.0.16299 on immersive Headsets and 10.0.17125 on HoloLens. 最新の Windows SDK を検索するここします。You can find the latest Windows SDK here.

Windows Mixed Reality ホーム始めるユーザーがアプリケーションを起動する前に配置する場所です。The Windows Mixed Reality home is the starting point where users land before launching applications. Windows Mixed Reality の UWP アプリケーションを作成する、既定では、そのアプリのロゴで 2D スレートとしてアプリが起動されます。When creating a UWP application for Windows Mixed Reality, by default, apps are launched as 2D slates with their app's logo. Windows Mixed Reality のエクスペリエンスを開発する際に 3D ランチャーは、アプリケーションの既定の 2D ランチャーをオーバーライドする必要に応じて定義できます。When developing experiences for Windows Mixed Reality, a 3D launcher can optionally be defined to override the default 2D launcher for your application. 一般に、ランチャーが 3D がインプレース アクティブ化されると、アプリは、既定の 2D ランチャーは優先のユーザーからホーム Windows Mixed Reality を取る没入型アプリケーションを起動するためお勧めします。In general, 3D launchers are recommended for launching immersive applications that take users out of the Windows Mixed Reality home whereas the default 2D launcher is preferred when the app is activated in place. 作成することも、 3D ディープ リンク (secondaryTile) 2D の UWP アプリ内のコンテンツへの 3D ランチャーとして。You can also create a 3D deep link (secondaryTile) as a 3D launcher to content within a 2D UWP app.

3D アプリ起動ツールの作成プロセス3D app launcher creation process

3D アプリ起動ツールを作成する 3 つの手順があります。There are 3 steps to creating a 3D app launcher:

  1. デザインと conceptingDesigning and concepting
  2. モデリングとエクスポートModeling and exporting
  3. (この記事)、アプリケーションに統合します。Integrating it into your application (this article)

3D アセットを使用して、アプリケーションの起動ツールを作成する必要がありますとして使用する、ガイドラインの authoring Windows Mixed Reality互換性を確保します。3D assets to be used as launchers for your application should be authored using the Windows Mixed Reality authoring guidelines to ensure compatibility. このオーサリングの仕様を満たすために失敗した資産は、ホーム Windows Mixed Reality ではレンダリングされません。Assets that fail to meet this authoring specification will not be rendered in the Windows Mixed Reality home.

3D の起動ツールを構成します。Configuring the 3D launcher

Visual Studio で新しいプロジェクトを作成すると、アプリの名前とロゴを表示する単純な既定のタイルが作成されます。When you create a new project in Visual Studio, it creates a simple default tile that displays your app's name and logo. この 2D を置き換えるには、カスタムの 3D モデルで表現は、"MixedRealityModel"要素を既定のタイルの定義の一部として含める、アプリケーションのアプリケーション マニフェストを編集します。To replace this 2D representation with a custom 3D model edit the app manifest of your application to include the “MixedRealityModel” element as part of your default tile definition. だけランチャーは 2D に戻すには、マニフェストから MixedRealityModel 定義を削除します。To revert to the 2D launcher just remove the MixedRealityModel definition from the manifest.

XMLXML

最初に、現在のプロジェクトで、アプリ パッケージのマニフェストを見つけます。First, locate the app package manifest in your current project. 既定では、マニフェストの Package.appxmanifest を名前されるは。By default, the manifest will be named Package.appxmanifest. Visual Studio を使用している場合は、ソリューション エクスプ ローラーで、マニフェストを右クリックし、選択ソースの表示を編集するための xml を開きます。If you're using Visual Studio, then right-click the manifest in your solution viewer and select View source to open the xml for editing.

マニフェストの上部にある uap5 スキーマを追加し、無視できる名前空間として含めます。At the top of the manifest, add the uap5 schema and include it as an ignorable namespace:

<Package xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" 
         xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 
         xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" 
         xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
         IgnorableNamespaces="uap uap2 uap5 mp"
         xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">

次に、アプリケーションの既定のタイルに"MixedRealityModel"を指定します。Next specify the "MixedRealityModel" in the default tile for your application:

<Applications>
    <Application Id="App"
      Executable="$targetnametoken$.exe"
      EntryPoint="ExampleApp.App">
      <uap:VisualElements
        DisplayName="ExampleApp"
        Square150x150Logo="Assets\Logo.png"
        Square44x44Logo="Assets\SmallLogo.png"
        Description="ExampleApp"
        BackgroundColor="#464646">
        <uap:DefaultTile Wide310x150Logo="Assets\WideLogo.png" >
          <uap5:MixedRealityModel Path="Assets\My3DTile.glb" />
        </uap:DefaultTile>
        <uap:SplashScreen Image="Assets\SplashScreen.png" />
      </uap:VisualElements>
    </Application>
</Applications>

MixedRealityModel 要素は、アプリ パッケージに格納されている 3D 資産へのファイル パスを受け入れます。The MixedRealityModel elements accepts a file path pointing to a 3D asset stored in your app package. のみの 3D モデルが現在 .glb ファイル形式を使用して配信され、に対して作成される、 Windows Mixed Reality 3D アセットの作成手順についてははサポートされています。Currently only 3D models delivered using the .glb file format and authored against the Windows Mixed Reality 3D asset authoring instructions are supported. 資産は、アプリ パッケージに格納する必要があり、アニメーションが現在サポートされていません。Assets must be stored in the app package and animation is not currently supported. "Path"パラメーターが空白の場合、Windows は 3D ランチャーではなく 2D スレートを表示します。If the “Path” parameter is left blank Windows will show the 2D slate instead of the 3D launcher. 注: .glb 資産としてマークされる必要「コンテンツ」のビルド設定でのビルドと、アプリを実行する前にします。Note: the .glb asset must be marked as "Content" in your build settings before building and running your app.

ソリューション エクスプ ローラーで、.glb を選択し、[プロパティ] セクションを使用して、ビルド設定で"Content"としてマークSelect the .glb in your solution explorer and use the properties section to mark it as "Content" in the build settings
ソリューション エクスプ ローラーで、.glb を選択し、[プロパティ] セクションを使用して、ビルド設定で"Content"としてマークSelect the .glb in your solution explorer and use the properties section to mark it as "Content" in the build settings

境界ボックスBounding box

必要に応じて、オブジェクトの周囲の追加のバッファー領域を追加する、境界ボックスを使用できます。A bounding box can be used to optionally add an additional buffer region around the object. 境界ボックスは、中心点と、境界ボックスの中央から各軸に沿った端までの距離を示すエクステントを使用して指定します。The bounding box is specified using a center point and extents which indicate the distance from the center of the bounding box to its edges along each axis. 境界ボックスのユニットを 1 ユニットにマップすることができます = 1 メートルです。Units for the bounding box can be mapped to 1 unit = 1 meter. 境界ボックスが指定されていない場合、1 つは自動的に格納オブジェクトのメッシュに。If a bounding box is not provided then one will be automatically fitted to the mesh of the object. 指定された境界ボックスは、モデルよりも小さい場合は、メッシュに合わせてに変更されます。If the provided bounding box is smaller than the model then it will be resized to fit the mesh.

境界ボックスの属性のサポートが付属 RS4 の Windows 更新プログラムをプロパティとして MixedRealityModel 要素。Support for the bounding box attribute will come with the Windows RS4 update as a property on the MixedRealityModel element. 最初に、アプリの上部にある境界ボックスを定義するマニフェストが uap6 スキーマを追加し、そのを含める無視できない名前空間として。To define a bounding box first at the top of the app manifest add the uap6 schema and include it them as ignorable namespaces:

<Package xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" 
         xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 
         xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" 
         xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
         xmlns:uap6="http://schemas.microsoft.com/appx/manifest/uap/windows10/6"
         IgnorableNamespaces="uap uap2 uap5 uap6 mp"
         xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">

次に、MixedRealityModel 上には、境界ボックスを定義する SpatialBoundingBox プロパティを設定します。Next, on the MixedRealityModel set the SpatialBoundingBox property to define the bounding box:

        <uap:DefaultTile Wide310x150Logo="Assets\WideLogo.png" >
          <uap5:MixedRealityModel Path="Assets\My3DTile.glb">
              <uap6:SpatialBoundingBox  Center=”1,-2,3” Extents=”1,2,3” />
          </uap5:MixedRealityModel>
        </uap:DefaultTile>

Unity を使用します。Using Unity

Unity を使用する場合、プロジェクトのビルドし、アプリケーション マニフェストを編集する前に、Visual Studio で開く必要があります。When working with Unity the project must be built and opened in Visual Studio before the App Manifest can be edited.

注意

3D の起動ツールは、ビルド、および Unity からの新しい Visual Studio ソリューションを展開するときに、マニフェストで再定義する必要があります。The 3D launcher must be redefined in the manifest when building and deploying a new Visual Studio solution from Unity.

注意

(VR) のイマーシブ ヘッドセットの 2017 の Fall Creators Update (RS3) の一部として、2018 年 4 月の一部として、この機能は追加された HoloLens 用の更新プログラム (RS4)。This feature was added as part of the 2017 Fall Creators Update (RS3) for immersive (VR) headsets and as part of the April 2018 Update (RS4) for HoloLens. アプリケーションが (VR) のイマーシブ ヘッドセットで 10.0.16299 以上 10.0.17125 HoloLens での Windows SDK のバージョンを対象とすることを確認します。Make sure your application is targeting a version of the Windows SDK greater than or equal to 10.0.16299 on immersive (VR) headsets and 10.0.17125 on HoloLens. 最新の Windows SDK を検索するここします。You can find the latest Windows SDK here.

重要

3D のディープ リンク (secondaryTiles) は、2 D の UWP アプリでのみ機能します。3D deep links (secondaryTiles) only work with 2D UWP apps. ただし、作成することができます、 3D アプリ起動ツールホーム Windows Mixed Reality から排他のアプリを起動します。You can, however, create a 3D app launcher to launch an exclusive app from the Windows Mixed Reality home.

アプリからの 3D モデルを配置する機能を追加することによって Windows Mixed Reality を 2D アプリケーションを強化できる、 Windows Mixed Reality ホーム2D アプリ内のコンテンツにディープ リンクとしてと同じように2D セカンダリタイルWindows [スタート] メニュー。Your 2D applications can be enhanced for Windows Mixed Reality by adding the ability to place 3D models from your app into the Windows Mixed Reality home as deep links to content within your 2D app, just like 2D secondary tiles on the Windows Start menu. たとえば、360 ° のフォト ビューアー アプリに直接リンクまたはユーザーが作成者についての詳細ページに表示された資産のコレクションから 3D コンテンツを配置できるようにする 360 ° photospheres を作成できます。For example, you can create 360° photospheres that link directly into a 360° photo viewer app, or let users place 3D content from a collection of assets that opens a details page about the author. これらは、3 D コンテンツを使用して 2D のアプリケーションの機能を拡張する、いくつかの方法です。These are just a couple ways to expand the functionality of your 2D application with 3D content.

3D"secondaryTile"を作成します。Creating a 3D “secondaryTile”

作成時に、複合現実のモデルを定義することで"secondaryTiles"を使用して、アプリケーションからは、3 D コンテンツを配置できます。You can place 3D content from your application using “secondaryTiles” by defining a mixed reality model at creation time. 複合現実のモデルは、アプリ パッケージ内の 3D アセットを参照して、必要に応じて境界ボックスを定義して作成されます。Mixed reality models are created by referencing a 3D asset in your app package and optionally defining a bounding box.

注意

排他のビュー内からの"secondaryTiles"の作成は現在サポートされていません。Creating “secondaryTiles” from within an exclusive view is not currently supported.

using Windows.UI.StartScreen;
using Windows.Foundation.Numerics;
using Windows.Perception.Spatial;

// Initialize the tile
SecondaryTile tile = new SecondaryTile("myTileId")
{
    DisplayName = "My Tile",
    Arguments = "myArgs"
};

tile.VisualElements.Square150x150Logo = new Uri("ms-appx:///Assets/MyTile/Square150x150Logo.png");

//Assign 3D model (only ms-appx and ms-appdata are allowed)
TileMixedRealityModel model = tile.VisualElements.MixedRealityModel;
model.Uri = new Uri("ms-appx:///Assets/MyTile/MixedRealityModel.glb");
model.ActivationBehavior = TileMixedRealityModelActivationBehavior.Default;
model.BoundingBox = new SpatialBoundingBox
{
    Center = new Vector3 { X = 1, Y = 0, Z = 0 },
    Extents = new Vector3 { X = 3, Y = 5, Z = 4 }
};

// And place it
await tile.RequestCreateAsync();

境界ボックスBounding box

オブジェクトの周囲、追加のバッファー領域を追加するのには、境界ボックスを使用できます。A bounding box can be used to add an additional buffer region around the object. 境界ボックスは、中心点と、境界ボックスの中央から各軸に沿った端までの距離を示すエクステントを使用して指定します。The bounding box is specified using a center point and extents which indicate the distance from the center of the bounding box to its edges along each axis. 境界ボックスのユニットを 1 ユニットにマップすることができます = 1 メートルです。Units for the bounding box can be mapped to 1 unit = 1 meter. 境界ボックスが指定されていない場合、1 つは自動的に格納オブジェクトのメッシュに。If a bounding box is not provided then one will be automatically fitted to the mesh of the object. 指定された境界ボックスは、モデルよりも小さい場合は、メッシュに合わせてに変更されます。If the provided bounding box is smaller than the model then it will be resized to fit the mesh.

アクティブ化の動作Activation behavior

注意

この機能はサポートされている Windows RS4 更新の時点でします。This feature will be supported as of the Windows RS4 update. この機能を使用する場合、アプリケーションは 10.0.17125 以上の Windows SDK のバージョンを対象とするかどうかを確認します。Make sure your application is targeting a version of the Windows SDK greater than or equal to 10.0.17125 if you plan to use this feature

ユーザーに選択するときの反応を制御する 3D secondaryTile のアクティブ化の動作を定義できます。You can define the activation behavior for a 3D secondaryTile to control how it reacts when a user selects it. これは、複合現実でホーム purley 有益または装飾用である 3D オブジェクトを配置に使用できます。This can be used to place 3D objects in the Mixed Reality home that are purley informative or decorative. 次のライセンス認証の動作の種類がサポートされています。The following activation behavior types are supported:

  1. 既定:アプリがアクティブにユーザーが 3D の secondaryTile を選択Default: When a user selects the 3D secondaryTile the app is activated
  2. None:ユーザーが何も起こりません 3D secondaryTile とアプリを選択すると、アクティブ化されません。None: When the users selects the 3D secondaryTile nothing happens and the app is not activated.

取得して、既存の"secondaryTile"を更新していますObtaining and updating an existing “secondaryTile”

開発者は、バックアップ以前に指定するプロパティが含まれる、既存のセカンダリ タイルの一覧を取得できます。Developers can get back a list of their existing secondary tiles, which includes the properties that they previously specified. 値を変更して、UpdateAsync() を呼び出すことによって、プロパティを更新することもできます。They can also update the properties by changing the value and then calling UpdateAsync().

// Grab the existing secondary tile
SecondaryTile tile = (await SecondaryTile.FindAllAsync()).First();

Uri updatedUri = new Uri("ms-appdata:///local/MixedRealityUpdated.glb");

// See if the model needs updating
if (!tile.VisualElements.MixedRealityModel.Uri.Equals(updatedUri))
{
    // Update it
    tile.VisualElements.MixedRealityModel.Uri = updatedUri;

    // And apply the changes
    await tile.UpdateAsync();
}

ユーザーが、Windows Mixed Reality をチェックします。Checking that the user is in Windows Mixed Reality

3D のディープ リンク (secondaryTiles) は、ビューは、Windows Mixed Reality ヘッドセットで表示されているときにのみ作成できます。3D deep links (secondaryTiles) can only be created while the view is being displayed in a Windows Mixed Reality headset. Windows Mixed Reality ヘッドセットされていないビューに表示されている場合は、エントリ ポイントを非表示か、エラー メッセージを表示してこれを適切に処理をお勧めします。When your view isn't being presented in a Windows Mixed Reality headset we recommend gracefully handling this by either hiding the entry point or showing an error message. これを確認するにはクエリを実行してIsCurrentViewPresentedOnHolographic()します。You can check this by querying IsCurrentViewPresentedOnHolographic().

タイル通知Tile notifications

現在、タイル通知が 3D アセットの更新を送信するサポートしていません。Tile notifications do not currently support sending an update with a 3D asset. つまり、開発者は、以下を実行できません。This means that developers will not be able to do the following

  • プッシュ通知Push Notifications
  • 定期的なポーリングPeriodic Polling
  • スケジュールされた通知Scheduled Notifications

詳細については、他のタイルの機能と、属性とその 2D のタイルの使用方法を参照してください。、ドキュメントについては UWP アプリのタイルします。For more information on the other tiles features and attributes and how they are used for 2D tiles refer to the Tiles for UWP Apps documentation.

関連項目See also