XamarinのWebViewでWebGLは動かせるのか!?

スポンサーリンク

10月に行われるXamarinのイベントに勢いで登録してしまったので頑張ってアプリ作成をしているエブリデイです。

イベントはこちら

で、Live2Dを使ったアプリを作ろうと思い四苦八苦しております。

Live2DをXamarinで動かすために考えた方法は3種類、Jarをコンバートする、WebViewでWebGLを利用する、cocos2dで作成してcocossharpです。

この中でも一番簡単に実現しつつ汎用性が高いのは「WebViewでWebGLを利用する」だと思い色々試してみたのですが、XamarinのWebViewはWebGLに対応していないっぽくちょっと挫折感を味わっております。

Live2DのサンプルサイトをAzureStorageに配置して参照しているのですが、WebGLのContext作成時にエラーになります。

このサイト自体はPCのChromeやEdgeで見てもちゃんと稼働するし、スマートデバイスのChromeブラウザやSafariで見てもちゃんと稼働します。

Live2DのWebGLデモサイトはこちら

Live2DのWebGLサンプルアプリはこちら

%e7%84%a1%e9%a1%8c

Androidで作る場合はChromiumを実装する必要があってDependencyServicesを利用する必要があるんじゃないかとか考えているのですが情報が少なくて解決に至っていません。

もう少し深堀して調査してみたいと思います。

イベントまで後1か月どうなることやら。

後日談


色々調べてみたらAndroidは5.0以降のWebViewならWebGLに対応しているようです。

ただし、端末依存がありAndroid5.0だとしてもWebViewのバージョンが古い場合はWebGLが動作しないみたいです。

WebViewは4系と5系が境界線になっていて、WebGLが使えるようになったのはWebViewのv36からだそうです。

ただしv36はLollipoのpreview版にしか入ってないので、v37から強化されているとの認識になっているみたいです。

AndroidのOSが5系だとしてもWebViewのバージョンが低い場合があり、その場合はWebGLが動かないみたいですね。

iOSは8から対応しているのでiOS8以降のSDKであれば問題なく動くみたいです。

WebGLが動くか確認するには下記のサイトにアクセスすればわかります。

Android4系でWebGLを動かしたい場合はChrom Custom Tabsを利用するのがいいみたいです。

Chrome Custom Tabs

ちなみにAndroidエミュレータではOpenGLは動かないのでWebGLも動きません。実機で確認しましょう。

コメント