Unite2014
UnityとWebデプロイメントの未来
UnityでのWebデプロイ
• WebPlayer
• 1.0から利用可能でブラウザのPluged-inで動く
• プラグインなのでデスクトップに近い性能が見込める
• HTML5
• 新たに追加
• プラグインをインストールしてもらう必要がない
これから
• GoogleがNPAPIを打ち切ったり、主要ブラウザがClickToPlayになった
りとプラグイン離れがどんどん進むのでは?
• プラグインを利用しないHTML5のみで稼働するUnityが必要に
WebGL
• 新しいHTML版UnityではWebGLを利用
• ハードウェアアクセラレーションされる
• JavaScriptで実装
• GLES2.0相当
• Open Web Standardなのでブラウザがちゃんと対応していれば動く
• 現在WebGLはFireFox、Chrome、IE、Operaで対応されている
• Safariは初期設定が無効になっている。。。
• Unityとの相性はいいと思っている
どうやるか
• 特にWebGLやJavaScriptの知識は必要ない
• 通常のUnityと一緒で知識があれば尚良いが、別になくても問題はない
• 内部での実装がすべてJavaScriptになる
• プラグインなどを作る際はJavaScriptでの実装が必要になってくる
• UnityランタイムはC++、スクリプトはC#などなので、内部でJavaScriptへの変
換が自動でおこなわれる。
emscripton
• C++からJavaScriptへのクロスコンパイルツール
arm.js
• JavaScriptのサブセット
• 動的型付け
• JITが推測しにくい
• FireFoxでは型をバインドして効率を上げる機能がある
IL2CPP
• IL(C#などのコンパイル後のデータ)からC++のコードを生成するツー
ル
変換の流れ
C#
IL
C++
obj
JavaScript
圧縮
JavaScript
Monoコンパイル
IL2CPP
clangコンパイル
emscripton
最適化
実装状態
• 5.0にプレビュー版が搭載される
• いずれadd-onとして正式リリースされる
• FireFoxとChromeのデスクトップ版で動作確認されている
• いずれその他主要ブラウザには公式対応する
• 一部HTML5/Unityの機能に未対応
• Video
• Network (WWWとSocketは可能)
• マイク
• 例外
• スレッド
• サブスタンス
その他
• WebPlayerよりかは遅い
• 現在はFireFoxが最もパフォーマンスが出る
• SIMD、マルチスレッドに対応していないので注意
• スキニングは結構遅い(本来SIMD、マルチスレッドで実装されるので)
• 場合によってはデスクトップ版の半分くらいのパフォーマンスしか出ないこ
ともあり
• それでもFlashとか、モバイルに比べたら十分だと思う
• プロファイラは利用可能(Pro)
• Plugin可能、JavaScriptで実装する
• Application.ExternalCall等を利用できる
WebPlayerはどうなる?
• 当分の間はこちらもサポートされる
• 各ブラウザがプラグインに対応されなくなったりするとそこで終わるだろう

【Unite2014】UnityとWebデプロイメントの未来