TOKYO FAB GIRL- TECH MEMO

全くもって知識のないnanajuが、試行錯誤でやったものを忘れないように書いておくメモです。メインブログは、http://tokyofabgirl.blogspot.jp です。

Spatial Mapping in Unity 日本語訳

原文 Spatial mapping in Unity

11/14時点で途中です

Spatial mapping in Unity

Namespace : UnityEngine.VR.WSA.SurfaceObserver

このトピックは、どのようにSpatical Mapping があなたのunity projectの中で使うのかを説明します。 モノを置いたり、閉鎖したり(?)、室内の解析などをするために、ホロレンズ周辺の表面の三角メッシュを生成します。

Unityは、Spatial Mappingに関してフルサポートしています。開発者に、次のように提供されています

  1. Spatial Mapping コンポーネントはMixedReality Toolkit に存在します。これは、簡単で、すぐにSpatical Mappingを始めることができます
  2. 低レベルSpatial mapping API はすべての制御と、洗練されたアプリの特定のカスタマイズができます

Spatial Mapping をあなたのアプリの中で使用する場合、Spaial Perception(空間知覚) 能力は、AppxManifestをセットすることが必要です

Spatial Perception の設定

Spatical mapping データを使えるようにするために、Spatical mapping capability を有効にします

  1. unity エディタから、Player settingを開きます。
  2. windows Store タブをクリックします
  3. Publishing Setting を開きます。Capabilities の中のSpatialPerception をチェックします

注意:もしあなたがすでにVisual studio solutionにUnity Project をエキスポートしていたら、新しいフォルダにエキスポートするか、Visual Studio で、AppxManifestをセットしてください

Spatial mapping は、MaxVersionTested のleast 10.0.10586.0を必要とします

  1. Visual Studioにて、ソリューションエクスプローラpackage.appxmanifest を右クリックし、ViewCodeをクリックする
  2. TargetDeviceFamilyを見つけて、MaxVersionTested = "10.0.10240" を、10.0.10586にする
  3. Package.appxmanifest を保存する

ユニティのビルドインSpatical mapping コンポーネントを使う

Unity は2つの簡単にSpatial Mapping をアプリに実装できるコンポーネントを提供しています。Spatial Mapping Renderer と、Spatial Mapping Colider です

Spatial Mapping Renderer

Spatial Mapping Rendererは、Spatial Mapping メッシュを可視化します

Spatial Mapping Colider

ホログラフィックコンテンツ(もしくはキャラクター)とのインタラクション、例えば物理をSpacial Mapping と使えます

ビルドインSpacial Mapping component を使う

おそらくあなたは、ビジュアライズと表面との物理的なインタラクションを行うために、二つともアプリに追加するでしょう。Unityアプリの中で、二つのコンポーネントを使うために: ‘ 1. あなたがspacial surface meshes を見つけたい場所の中央のgameObject を選ぶ 2. インスペクターviewで、Add Component > AR > Spacial Mapping Colider or Spacial Mapping Renderer を選ぶ

Unity documentation site にて、さらに詳しく、どのようにこれらのコンポーネントを使うのかを紹介しています

ビルドインSpatical Mapping コンポーネントを超える

これらのコンポーネントは、ドラッグアンドドロップで簡単にSpacial Mappingを使うことができます。もしもっと先に行きたいとすると、2つの代表的な方法があります

  • あなたの自己レベルメッシュ処理をして、Low level Spatial Mapping Script APIを見る
  • Higher level mesh analysisをする。Mixed RealityToolKitの、SpacialUnderstangin library を見る

高レベルメッシュ解析 SpacialUnderstanding

Mixed RealityToolKit は、Unity APIsの上にビルドされた、ホログラムの開発に便利な設定コード集です

Spacial Understanding

ホログラムオブジェクトを実空間に置いたときに、しばしばそれはSpacial mappingのメッシュとサーフェスを越えることが望ましい。手続き的に置く動作をした時に、高レベルの環境把握が望ましい。これは、一般的に何が床であるのか、天井か、壁かを決めるときに必要です。さらに、この性能は、ホログラムを置くときに、一番望ましい実空間はどこなのかを決める事に対して最適化されます。

若いトチの実と破片を開発しているとき、Asobo studio は、この目的のための部屋の解析手法について、問題にぶつかりました。 各ゲームそれぞれのニーズがあると。でも、それらはSpacial Mapping technologyのコアの部分を共有していると。 HolotoolKit.SpacialUnderstanding library は、この技術をカプセル化しました。あなたが簡単に、壁の空のスペースを判定し、モノを天井に置く。そして、キャラクタが座るべき場所であるのかを無数の質問に対して判定する。

全てのソースコードがふくまれていて、あなたのニーズによってカスタマイズすることができ、コミュニティとともに改善していけます。C++をする人のコードは、UWP dllにラップされており、MixedRealityToolKitの中に含まれているプレファブをUnity に展開できます。

Understanding Modules

3つの基本的なインターフェースが、モジュール(シンプルなサーフェスや、空間クエリの地形、オブジェクトの形、制限ベースのオブジェクトを置くこと)によって示される。それぞれについては、下で説明します。さらに、3つの基本的なインターフェースである、レイキャスティングインタフェースはタグ付けされたサーフェスタイプや、すきのないプレイスペースのメッシュを回収するときに使われ、コピーできます。