VR空間でWebブラウザを作る

3/8のOcufes@お台場、4/26,27のニコニコ超会議@にて出展させていただいた、Unbouneded Spaceでは、写真、動画、書類などをVR空間に浮かべて制御していました。


f:id:Takyu:20140511205946p:plain
ニコニコ超会議で使ったパンフレットです)


来場いただいた方からの感想で、かつ自分でもやってみたいなーと思ってたこととして、VR空間でネットを見る、というのがあります。

ということで、Unbounded Spaceの次なる改良版はWebブラウザ対応にしたいと思っていたところ、@hecomiさんの素晴らしい調査のおかげさまで実装目処がつきました。

Awesomium 1.7.1 を利用して Unity 上で Web ページをテクスチャとして表示してみた - 凹みTips

@hecomiさん、ありがとうございますm(_ _)m


対応方法については@hecomiさんのブログに詳しく書かれているので、ここではそれ以外のところを簡単に記載したいと思います。

ブログに倣って、Awesomiumを使いました。これはunityでWebブラウザをテクスチャとして表示できる便利なツールです。

では最もシンプルな実行手順です。

[AwesomiumをUnityで動かしてWebコンテンツを表示するまでの手順]

1. AwesomiumSDKをインストール(Macに対して)
2. Unity用のパッケージをUnityでインポート
3. サンプルシーンをビルドし、実行ファイルを動かす

[自分で指定したオブジェクトにテクスチャとしてWebブラウザを割り当てる手順]

1. Planeを生成(GameObject->Other->Plane)
2. Planeオブジェクトに対して、Componentを追加(Component->Awesonium->Web UI Component)
3. Inspectorで、TargetをGUIからRendererに変更。

f:id:Takyu:20140514204121p:plain

ちょっと見づらいですが、黄色で囲んだ箇所です。
ここがGUIになっていると、Planeオブジェクト上で
ブラウザが表示されません。


サンプルシーンを動かしたときの画面

f:id:Takyu:20140511222312p:plain

自分でPlaneオブジェクトを追加したときの画面

f:id:Takyu:20140511222347p:plain


マウススクロールやリンクのクリックもちゃんと動きます。

画像ではわかりませんが、

・実行後にInstantiateでブラウザを生成
・transform.positionを変化させて任意の位置に移動

ができることも念のため確認しました。

あと、Cubeオブジェクトではうまく表示されませんでした。
どこか設定が足りないのかもしれませんが、Planeだと確実でした。

[注意点]

Awesomiumはバイナリ化したものしかWebコンテンツが表示されない

@hecomiさん情報では、海外の方が裏技的なことを駆使し、Windows版だけはUnity上では動けるようにした、という報告がありました。

ただ、Unbounded Spaceは現状Macでしか動かせないので、ちょっと面倒ですが開発時の動作確認は毎回バイナリで実施しようと思います。


また、参考のため、ライセンスについても記載します。

Awesomiumのライセンス形態はかなりおおらかです。

以下に条件があります。
http://wiki.awesomium.com/licensing/licensing-overview.html


代表的な項目です。
・IndieDeveloperは無料で使える
・$100K/year以上の利益を得ている団体で、かつ商用利用する場合はProLicenceが必要
 ・IndieDeveloper以外でも、非商用(利益を得ない、政府系ではないなど)であればfree版を使ってよい
(詳しく知る必要がある方は、必ずご自身で確認してください)


とりあえずこれを使えば、Unbounded Spaceの改良は進みそうです。

ついでに見た目も色々と変えようと思ってます。
まだ書けるほどではありませんが、改良版に合った操作方法も検証中です。


と、ここまで解説しながら、次回のOcufesでは違うものを作ってたらすいませんm(_ _)m