🥽

[HoloLens]Graphics Tools for Unreal

2021/01/16に公開

Graphics Tools for Unreal v0.1.0 がリリースされたので触ってみました。

https://github.com/microsoft/MixedReality-GraphicsTools-Unreal

Graphics Tools とは

Graphics Tools for Unreal Engine は、パフォーマンスを考慮しながらも Mixed Reality アプリケーションのビジュアルの忠実度を向上させるために作成されたコード、Blueprint、およびサンプルアセットを含むプラグインです。

グラフィックビルディングブロック

ビルディングブロック(そのまま利用できるパーツのようなもの)として以下の3種類用意されています

ライティング 近接ライト エフェクト
Lighting Proximity Lights Effects
複合現実感に最適化された物理ベースのライティング技術 表面までの距離を示すために使用されるカスタムライトタイプ 複合現実で利用される一般的なグラフィック効果

必要なソフトウェア

  • Windows SDK 18362+

  • Unreal 4.26.0+

  • Visual Studio 2019

プラグインの取得

  1. リリースページからプラグイン(MixedReality-GraphicsTools-Unreal-0.1.0.zip)を取得

  2. プロジェクトのルート(.uprojectがある階層)に Plugins フォルダを作成し その中に解凍したデータを格納する

  3. HoloLens 用のパッケージを作成する場合は、プロジェクトが C++ プロジェクトであることを確認する(Blueprint プロジェクトの場合はソースビルドができずパッケージ化に失敗する)

  4. プラグインメニューで Graphics Tools のプラグインを有効にする

アプリパッケージ

リリースページで HoloLens 2 用のサンプルパッケージ(GraphicsTools-HoloLens.0.1.0.zip)も提供されています。デバイスポータル等からデバイスにインストールできます。

サンプルの確認

プラグインを有効にすると GraphicsToolsExamples Content 配下に 3 つのサンプルレベルが格納されています。またその 3 つのレベルの親レベルとなる Loader というレベルがあります。

  • Loader
    Loader

  • Material Gallery

    このシーンでは、Graphics Tools のマテリアル機能とシェーダーを使用して可能なマテリアルとシェーディングテクニックの例を示しています。目標は、Unreal の標準的な照明モデルと同様のビジュアルを実現し、Fluent Design System の原則を実装し、Mixed Reality デバイスでのパフォーマンスを維持することです。

    Material Gallery

  • Material Matrix

    このレベルでは、Unreal のデフォルトの物理ベースのライティングモデルと、Graphics Tools で利用可能な簡略化されたライティングモデルを比較します。Graphics Tools の照明モデルを使用するには、照明のないマテリアル内に MF_GTDefaultLit 関数を配置し、出力をマテリアルの emissive color に割り当てます。指向性照明は、GTDirectionalLight コンポーネントまたはアクタによって指定されます。ライティングはダイナミックで、「Rotate Sun」ボタンを使ってアニメーション化することができます。

    Material Matrix

  • Proximity Lights

    近接ライトは、色のグラデーションで表面に投影された点光源を模倣する Fluent Design System のパラダイムです。近接インタラクションに使用されることが多く、アプリは GTProximityLight コンポーネントまたはアクターを介して近接ライトのプロパティを制御できます。マテリアル上で近接ライトを利用するには、MF_GTProximityLights マテリアル関数をマテリアル内に配置し、出力をマテリアルの emissive color に割り当てます。一度に最大 3 つの近接ライトを使用できます。

    Proximity Lights

実機動作

以下は、実機にデプロイし動作確認したものになります。

Discussion