まどすた#1に行ってきた

# 概要
https://roommetro.doorkeeper.jp/events/44062
日時：2016/05/21
会場：品川グランドセントラルタワー 日本マイクロソフト　品川本社

# 1.build2016現地で感じたクライアント開発の潮流
初音玲さんのセッションで、サンフランシスコでやっていたbuild2016のレポート
### MSの大きな流れが５つ
　・Bash実装やOSS化
　・自然な会話をUIでするConversation  as a service
　・Cognitive Seriviceの22個のAPI
　　→ https://azure.microsoft.com/ja-jp/services/cognitive-services/
　・HoloLensのMixed RealityDevice
　・Xamarin無償化によるVS＋C#によるマルチOS開発推進。

### マルチOS当たり前の世界になってくる。
　・RedHatが .Net Coreをサポート

### Bot frameworkで音声認識→テキスト化→文脈解析できる
  → https://dev.botframework.com/
　・ルールベースの言語会話エンジンのようだけど、日本語対応はまだ。
　・実際にBot frameworkを使ったデモ
　　　・音声認識の精度が結構いい。ルールベースで制約与えれば、パターン系の応答は自動化できそうな勢い。
　　　・キーノート初日はcognitive Serviceの件。
　　　・画像から状況認識して返すAPIがある。画面形状や領域識別まで全部できてる。もうOCRいらない感。
　　　・MSリサーチの成果で日本も対応国リストに入った。。
### HoloLens
・西海岸とskypeで繋いでデモ。
・UWPアプリが壁にアイコンとして張りつくってこういうことか！という感じ。
　　・攻殻・・というかナデシコのコミュニケウィンドウが壁に出てる感。
### Xamarin
・詳しくは後述
### 参加してわかったこと
・MS Love OSS
・MSもVisualStudioとWindows以外はOSSになってきた。
・米国では政府補助金事業はOSSとして公開する法律が通った。
・日本でも検討中。日本企業は準備できてますか？
### まとめ：
・WindowsPhone死んでないよ
・UWPでスマホとPCの区別がなくなりつつありiOSとAndroidの区別もなくなるかも。
・HolLens楽しかった。


# 2.Holo World はじめの一歩。
脇谷さんのHololensセッション。Hololensの実機はなかったけど、holographicApp概要とHoloLensの特徴について。

###HolographicAppの考え方
・ホログラムは光と音で構成されている。光を目の前に表示しているが黒は透明として扱われる。黒は描写できない。
・ホログラムを周囲の環境に配置できる。人に配置すると、人に合わせて動く。
・ホログラムは人や環境の相互作用を生み出す。見つめたり、手を使ったり音声でホログラムを操作できる。

・環境に対する３つの考え方＋１
　・EnhancedEnvironment：ユーザー環境にデジタル情報やコンテンツを追加。ARに相当。
　・BlendedEnvironment ：ユーザー環境を解析して、デジタルレイヤーに変換、コンテンツ情報を融合する。Mixed Realityに近い。
　・Virtual Environment：ユーザーの現在の環境をデジタル情報やコンテンツで完全に変更。時間と空間を置換する。いわゆるVR。
　・VRに現実情報を付加するのがAugumented Virtual。聴覚、視覚に加えて触覚も支配下に置くと没入感がさらに増す。

###VRヘッドセットとHololensの比較
・Hololensは視野角が狭い。VIVEでも55%。酔わないようにするには90fps必要らしい。ちなみにPSVRは120fps
・HololensはVR用HMDではなく、MixedReality用の機器。現実世の融合が一番の特徴になっている。

###Transformed your world
・Hololensのウリは、周囲の環境をリアルタイムでレイヤーに変換すること。1280x720が最大解像度
・MRC（Mixed Relity Capture)
　　・ユーザーはカメラのレンズのような視界になる。
　　・有効範囲は１．２５ｍ～５ｍくらい。
・XYZ座標系で処理してる。DX11は使えるけど、現時点ではUnityがお勧め。VS2015とHyperVとRemoteFXが必要。

###Unityでデモ
・edit->project settingでクオリティ変更が必要（60fpsに）
・Unity-C#プロジェクトにチェックが必要。
・描画をZAMLからDirectXに変更
・player Settingsの中にVRサポートがあるので、それを選ぶ
・テーブルクロスだけ模様を変更とかできる。

###Hologramの共有（SpecialAnchor)
・複数のHololensでオブジェクトを共有できるようになる。
・最初のユーザーがアンカー（サーバー）になって、他からのアクセスを受ける。古いネトゲのような方式。

#3.build2016振り返り
エクセルソフトの田淵さんと榎本さんのセッション。主にXamarin関係について。
・ライセンスフリーになりました。OSSになりました。
　　・基本はVSと同じになります。MSDN持ってればついてくる。
   ・ただし、VS Pro単体だとXamarinStudioの利用権がついてこない。
・iOS Simulator for Windows発表。一度シミュレーターでビルドしないとコケるらしい。
・Xamarin Test Recorder
###Evolve2016イベントレポート
・Xamarinのオンリーイベント。アメリカのオーランドで1500人くらい集まった。
・トレーニングとカンファレンスの2日間だけど、参加料超高い。
・keynote session
　　・OpenSOurce Xamarin SDK
　　・Forms Preview
　　・Workbooks
　　・Live testCloud(debuggable)
　　　　→ youtubeにkeynoteがあがってる。iOS DesignerとかFormsあたりのセッションが面白いよ

###Xamarin Formsのデモ
・アルファ版じゃないと動かない。ちょっと人柱感がパない。

###Xamarin platform SDK
・アプリのリリースビルドができることがゴールだけどデバッグビルドがない。
・まだまともに使えない。2ヶ月くらいで使えるようにしていく。

###さいごに
6/25の技術書典というイベントのtechboosterブースでXamarin.android SDKの解説本出します。


# 4.デスクトップアプリがこの先生きのこるには //2016
亀谷さんのセッション。従来のWindowsアプリインストーラーをUWPに移行するためのツールの話。

###Project Centinual （DsktopAppConverter)
・というものが以前あった。今はUWindows bridge(後述)
・WindowsのデスクトップアプリをUWPに移行して欲しいというMSのメッセージ。

### UWindows Bridge
・既存アプリをWin10で動作する形式にするためのツール郡
・Windows Bridge for XXX　な名前。
・旧デスクトップアプリのコンバーターが、Procject centinual

###今作れるアプリの種類
・Classic desktop App：やりたい放題なのでUWPになるわけない。
・Univeral Windows Platform app：ストア配布できるアプリ。いろんなデバイスで動く。

###ClassicアプリをUWPにするには。
・自力解決してみた＞TouchME Gesture Studio
　　・エンジンをclassic。フロントエンドをUWPにしたらできた。
　　・パッケージ名でデータ保存先が確定するので、classic側で無理やり取れる。
　　・審査も通った！
　　　・と思ったらProject centinualが生きてて同じようなことしてた。

###Project Centinial(DesktopAppConverter)
・従来アプリをUWPパッケージ化する。中身は従来と同じなので、動かない環境がある。
・msiのインストーラーからAppXを生成する。
　　・msiをサイレントモードで実行して展開したのち、まとめ直してパッケージ化してるらしい・・・
・DesktopAppConverterが動くバージョンが結構限定されてる。enterpriseが必要。WinSDK10も必要。
・ダウンロード時にOSイメージが一緒に必要。インストールはzip展開だけ。
・ストアアプリ系はCドライブじゃないと動かないことが多いらしい・・・。
・開発環境で使うときは、AppXマニフェストを使う。

###UWPでパッケージ化するメリット
・レジストリ肥大化の防止。削除がフォルダ削除ですむ。
・storeで公開できる。

###MSによる、UWP移行stepの説明
・だいたいこういう段階で、何年かかけて移行していきたいみたい。
1：convert：とりあえず展開してzip化
2：enhance：デスクトップアプリから通知やライブタイル呼べるようになる。
3：extend UWPとコンソールアプリ間でプロセス間通信？フロントエンドUWP＋バックエンドexeがこれでできる。すっごい悪用できそう。
4：UWP成分増やそうぜ
5：Expand すべてのコードをUWPに。

・変換されたデスクトップアプリのデバッグ手段もあるらしいけど、VS15のPeview2が必要。

# 5.LT大会
###GetCool WallPaperをLinqpadでやる
Windows Spotlightで数日おきに壁紙がDLされてくるから、気に入ったのを保存するツールをLinqPadで作った。
LINQPad便利。処理の経過や内容を可視化できるツール。クラス内容とか見えるようになるらしい。

###AndroidTVはいいぞ（最近は）
最初はまともに見られないレベルだった。ゲーム起動できるけどタッチないので遊べません。
Xamarinアプリ転送してやれば、AndroidにC#のコードを送りつけて遊べるようになります。

###UnityでC#5.0/6.0が使える未来がきそう（むろほしさん）
C#5.0/6.0最高!だけどUnityだとまだ使えません！だったのが、
　→ Unityが.net foundation入り。C#6.0サポートがbuildで通知されたらしい。
でも、.net7.0はしばらくかかりそう。


###MR世界をバーチャルに体験
オフレコのため割愛

###VR元年のゲーム開発
碕岬さん。黒騎士と白の魔王作ってます。
・ゲーム開発でUnityがはやってそう？
　　→ Unityは3Dが作りやすいので使われてる。

・(Unity以外の3D手段である)DirectX12、Metal、Vulkun
　→ VRで高FPSが求められるため、ローレベルAPI化が進んでいるらしい。
　→ VulkunはOpenGLっぽい初期化処理が必要。
　　→ Unityなら初期化はよしなにしてくれる。マルチプラットフォームもできる。簡単！

・でもUnityにも闇はある
　よく不可解な挙動する。エフェクト周りはしょっちゅうバグる。
　Gitとの相性が悪い。空フォルダの存在を許してはいけない。
　サーバーで当たり判定持ちたいけど、クライアントにしか物理演算がない。
　Monoコンパイラがよくわからないエラー吐く。ビルド遅い。Worninngがエラー扱いになる。
　IOSのビルドをCiでやるとjenkinsが怒る。

・Unityでも仕上げるのはしんどい。
　でもユーザー多いので継続的なアップデートが期待できる。
　VSTUでVS使えるようになった。.Net Foudationに参加したので.Netの強化も期待できる。
　個人の人はAssetStoreを活用して欲しい。だいたいなんでもある。
　スマホゲームだとUnityはデファクトになった。VR次第でさらに強くなる。

・VRとゲーム
　VR元年、HMDいろいろ。特にPSVRとSteamVR。
　VRはエンターテインメント性が高い。仮想現実は非現実。テーマパークでも使われてる。
　HMD＝VRではない。
　　→ HMDが一般市民の手の届く価格帯になってきた。
　　→ より多くの人がVRを体験できる土壌が整った。

・まとめ
　ゲーム業界的には節目。皆で盛り上げたい。一派性にならないように盛り上げたい。
　開発から配信までの手順はもうプロアマで変わらない。
　UnityのノウハウはWebに転がってる。
　開発キット買わなくてもいい。
　ゲーム開発者もまだMHDをわかってない。

###Cutting Edge
Buildの後にEdgeWebSummitがあったので、EdgeのBrowserUpdateの紹介とWebプラットフォームのUpdateの話

・ブラウザとしての新機能。
　Accesibility Tree View　→ 名前やロールがついてるか確認できる。
　PasteAndGo → 貼り付けて移動できるようになった
　アドレスバーがマシに。
　タブがピン留めできるように
　　→ 以上大体chromeでもできるよ！

・タブが増えすぎた時に壊れるバグが直った。
　swipeナビゲーションが入る。スワイプで戻れる。chromeでも（略
　
・Extensionsついた。
　Chrome拡張モデルをベース。インストールはストアアプリから。appx形式でパッケージされる。

・Demo：
　ローカルの開発中extensionも読み込める。

まとめると、edgeがchromeにやっと追いついてきた。

・Web Platform Updateについて
　Beacon：サーバーに小さいデータを送信するAPI。
　Web Notificationm:通知が出せる。現在開いてるページだけらしい

・Windows hello
　顔認証の仕組み。パスワードの代わりに使えるようになった。顔を向けるとOKが押せるようになる。
　サーバー対応が必要。顔データを認証キーとしてパスワード作り直す感じで、パスワード不用になるわけではない。
　Signin with Windows Helloのダイアログが増える。

・まとめ：
　・ブラウザ機能がだいぶマシに。
　・レンダリングエンジンが進化。


#まとめ
DesktopAppConverterはその後も結構話題になっているようです。
MSが本格的にUWPへの移行を進めてくることが予想されるので、従来資産を今後も使いたい場合は、積極的に試していく必要がありそうです。
HoloLensは面白いし、実際エンタメに特化しつつありそうなVRよりも、応用の幅というか、BtoB的な用途がありそうなんですが、いかんせんお高いのがネック。３年たったら普及価格になるでしょうか？

んで、今回一番面白かったのがBot framework。
とにかく認識精度がよく、内部アルゴリズムどうやってるか知りたいレベル。
画像認識精度もよかったので、１０年くらい前にOCRのライブラリ売ってた身としては枯れたと思われた技術にまだ進展余地があったのだなあと思わされました。