Successfully reported this slideshow.
Your SlideShare is downloading. ×

20190413_HoloLens_meetup

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
20190615HoloLensMeetup
20190615HoloLensMeetup
Loading in …3
×

Check these out next

1 of 19 Ad

More Related Content

Similar to 20190413_HoloLens_meetup (20)

Advertisement

Recently uploaded (20)

20190413_HoloLens_meetup

  1. 1. 最近のHoloLens開発Tips 2019/04/13 株式会社ホロラボ 加藤 広務 Tokyo HoloLens ミートアップ vol.14
  2. 2. 自己紹介 氏名 : 職歴 : 備考 : 2 加藤 広務(Hiromu Kato) NEC • ミドルウェア開発 • ソフトウェア戦略・企画 • 携帯電話/携帯コンテンツ企画 サイバーエージェントグループ • スマホゲームのネイティブエンジニア ホロラボ • MRエンジニア くだらないことをつぶやいています Twitter @hi_rom_
  3. 3. .NET / IL2CPP
  4. 4. 従来のHolo開発(.NET) メリット  デバッグしやすい  ビルド時間が短い デメリット  実行速度がIL2CPP比で劣る Player Settings → Other Settings → Configuration
  5. 5. 従来のHolo開発(.NET)  しかし今後はIL2CPPに切り替えることを避けられない UWPでの.NET scripting backend は 将来削除されるのでIL2CPPをお勧めします
  6. 6. これからのHolo開発(IL2CPP) メリット  実行速度が速くなる  いままで使えなかったAPIが使える デメリット  ビルド時間が長い  デバッグしにくい 参考:デコシノニッキ「HoloLensのIL2CPPでの開発」 Player Settings → Other Settings → Configuration
  7. 7. 参考:IL2CPPの仕組み https://docs.unity3d.com/ja/current/Manual/IL2CPP-HowItWorks.html より引用 ① Unity スクリプティング API コードを通常の .NET DLL にコンパイルします (マネージドアセンブリ)。 ② スクリプトの一部ではないすべてのマネージドアセンブリ (プラグインや基本クラスライブラリなど) は Unused Bytecode Stripper という Unity ツールによって処理されます。Unused Bytecode Stripper は使われていないクラスとメ ソッドを見つけ、 DLL (Dynamic Link Library) から削除します。この処理は、ビルドされたゲームのサイズを顕著に削減 します。 ③ それから、マネージドアセンブリはすべて、標準の C++ コードに変換されます。 ④ 生成された C++ コードと IL2CPP のランタイムの部分は、ネイティブのプラットフォームコンパイラーを使ってコンパ イルされます。 ⑤ 最後に、コードは、ターゲットとするプラットフォームに基づき実行ファイルか DLL のいずれかにリンクされます。 ① ② ③ ④ ⑤
  8. 8. 参考:Api Compatibility Level https://blogs.unity3d.com/jp/2018/03/28/updated-scripting-runtime-in-unity-2018-1-what-does-the-future-hold/ より引用
  9. 9. .NET Standard 2.0  API 一覧は以下から確認可能 https://github.com/dotnet/standard/blob/master/docs/versions/netstandard2.0.md  TcpClient や UdpClient クラスがあるので便利(#if UNITY_UWPディレクティブが必要ない!)  従来のネットワーク関連の実装方法(#if UNITY_UWPでStreamSocketを利用していた) http://akihiro-document.azurewebsites.net/post/hololens_sharingtcp/
  10. 10. デバッグ
  11. 11. 従来のデバッグ方法  UWPのVisual Studio プロジェクトのC#コードに ブレークポイントを張って普通にできた
  12. 12. IL2CPPのデバッグ方法  IL2CPPでビルドしたUWPのプロジェクトにはC#コードは含まれていない!  どうするればよいか?  すてきなブログがあります! http://www.hiromukato.com/entry/2019/03/24/200057
  13. 13. パフォーマンス
  14. 14. 従来の(簡易)パフォーマンスチェック  FPSDisplayプレハブが準備されていたのでシーンに配置
  15. 15. MRTK v2以降のパフォーマンスチェック  MRTKではコアシステムとしてプロファイラが実装されている 参考:MRTK v2 Beta2 DiagnosticsDemoの確認  ちなみに、コアシステムの定義は以下
  16. 16. Diagnostics Profile  プロファイルでチェックを入れることでいつでもパフォーマンスを確認可能
  17. 17. Speech Commands Profile  音声コマンドでプロファイラの表示 / 非表示の切り替えが可能
  18. 18. まとめ ① IL2CPPからは逃げられない ② IL2CPPでコードがスッキリ ③ IL2CPPでもC#コードにブレークポイントをはって デバッグできる ④ 徐々にMRTK v2 にシフトしていこう (正式リリースは2019/07予定) https://github.com/Microsoft/MixedRealityToolkit-Unity/blob/mrtk_release/Roadmap.md
  19. 19. おまけ:HTK / MRTK のサンプルシーン概要  HoloToolkit-Unity-Examplesカタログ  HoloToolKitのサンプルシーン概要をすべて掲載  MRTK v2(Beta2) デモシーンの概要確認  MRTK v2(RC1) 追加デモシーンの概要確認  MixedRealityToolkitのサンプルシーン概要をすべて掲載

×