HighFidelityのZoneとはなんぞや?
この記事は、セカンドライフ技術系アドベントカレンダー2016向けの記事です。
HighFidelityには、Zoneというオブジェクトがあります。今までのVRにはなかった新概念なので、ちょっと解説してみます。
Zoneとはなにか
Zoneは語感からだいたい分かると思いますが、VR世界をいくつかのエリアに分けて各エリアごとに環境設定できるようにするための「区切り」みたいなものです。具体的には、景観やライティングの設定ができます。
なぜZoneが必要なのか
セカンドライフは、シムが寄り集まることで世界を作っていました。環境はシムごとに変えることができたので特にさらなるエリア分けは必要じゃなかったんです。しかし、HighFidelityは、1つのDomein Serverがとても広大な世界を管理します。なので細かくエリアをわけれる仕組みが必要だったんじゃないでしょうか。
ちなみにこういう広大な世界になったのはシム超え問題がやっぱりきつかったんじゃないかと個人的には思ってます。SANSARも同じくシムという概念がなくなるし、広大な世界というのは次期VRのキーワードですね。
Zone編集の基本操作
編集モードに入ると生成できるオブジェクト一覧にZoneが含まれてます。
Zoneを生成したところです。ここでちょっと注意点があります。生成直後のZoneは選択された状態になってますが、選択状態を解いてしまうと再選択できなくなってしまいます。それどころかZoneのワイヤーフレームも見えなくなります。Zoneはとても大きなオブジェクトなので、普通に選択できるようにしてしまうと、他のオブジェクトを作りたいときに邪魔でしょうがないから、そういう仕様なのかなと思います。
Zoneを見えるようにするには、Editメニューで「Show Zones in Edit Mode」にチェックをつければOKです。
選択状態にしたいときは、Entity Listから探してクリックすればOK。
Zoneの背景を設定する
さてここからちょっと本格的にZoneの設定をしていきます。
↑ 公式サイトより引用
Zoneの背景を作るときはサイコロを作る要領で展開図ぽい画像を作ります。またパノラマ画像みたいなのを背景にすることもできるみたいですが、今回は公式サイトから展開図型のサンプルをダウンロードして設定してみます。
Zoneの編集メニューから、Background Modeを「SkyBox」にすると、SkyBoxメニューが出ます。ここで背景画像のURLと画像の色合いを設定できます。
無事設定した画像が背景になりました。
Zoneのライティングを設定する
Zoneはライトの加減も色々変えることができます。変更できる項目は色々あるんですが、とりあえずライトの強さだけ試してみました。
Light Intensityの数値を上げてみる。
びふぉあ
あふたー
おまけ
Zoneは背景やライティングの設定をすると公式には書いてあったんですが、リファレンスには乗ってない「Flying allowed」「Ghosting allowed」みたいなプロパティもありました。前者は予想通りZone内で飛行禁止する設定。後者はよくわかりませんでした。HighFidelity的には、ライティングみたいな見た目以外にも色々設定できるようにする方針なんでしょうか。せっかくなんで物理法則とかもZoneごとに変えれるようになってくれると面白そうです。
他にもZoneは、ネストさせることができたり、直方体以外の形にしたりと変わったことができるみたいで、まだまだ奥深そうです。SANSARにも似たような機能が入る可能性もあるかもしれないし、次世代VRをやる人はZoneという新概念を理解しておくといいかもですよ( ̄∇  ̄ )