gamesUnity5でサイドバイサイドの立体視(ステレオスコピック)で画面を表示するまでの手順をまとめてみました。Texture」や「Fisheye」という機能を使いますが、Unity4まではProfessional以上の有償版でないと使えないようです。Unity5では無償版で使えます。Only」と表示されることがありましたが、いつの間にか表示されなくなってました。Only」を再現させる手順と修正する方法は不明です。下準備Sceneを作ります。ユニティちゃんとクエリちゃんを配置しました。「ユニティちゃん」はユニティ・テクノロジーズ・ジャパン、「クエリちゃん」はポケットクエリーズのマスコットキャラクターです。Assetストアから無料でダウンロードできます。どちらのキャラクターも著作権が緩めで、モデル・音声・スクリプト・アニメーションなどが含まれています。Cameraも後で使います。lightなども配置します。Cameraからカメラを追加します。左目用カメラとするので名前はLeftCameraとします。Textureをクリックして追加します。名前はLeftCameraTextureとします。TextureにLeftCameraTextureを設定します。このサイズでは画像が粗いのでほどほどに設定してください。PlaneでPlaneを配置します。名前はLeftCameraPlaneとします。LeftCameraPlaneのInspectorを開いてLeftCameraTexgureをドラッグ&ドロップします。LeftCameraTextureのシェーダーはUnlit/Textureがよさそうです。LeftCameraPlaneに何かが写りました。LeftCameraPlaneがLeftCameraに映り込まないように位置と角度を調整しました。LeftCameraPlaneがどの位置にあってもLeftCameraに映らないようにレイヤーを設定します。Layerでレイヤーを追加します。追加するレイヤーの名前はStereo3Dとします。LeftCameraPlaneを選択してInspectorのLayerをStreo3Dに設定します。MaskのStreo3Dをオフにします。これで左目用カメラの映像は期待通りになったと思います。右目用カメラを配置するHierarchyウィンドウのLeftCameraを右クリックしてDuplicateします。Sceneに新しいカメラが追加されるので名前をRightCameraとします。RightCameraの位置はLeftCameraよりX方向にプラス0.10くらいの位置にしてください。LeftCameraとRightCameraは常にセットで移動させたいので一つのオブジェクトにまとめます。Emptyで空(から)のオブジェクトを作ります。Camerasと、LeftCameraとRightCameraを子オブジェクトにします。Camerasを動かすだけで済みます。右目用カメラの映像をテクスチャ表示する右目用カメラの映像をテクスチャ表示する方法は左目用と同じです。TextureにRightCameraTextureを設定するRightCameraTextureのSizeを設定するPlaneを追加してRightCameraPlaneに設定するRightCameraPlaneのInspectorにRightCameraTextureをドラッグ&ドロップするRightCameraPlaneのシェーダーをUnit/Textureに設定するRightCameraPlaneのLayerをStreo3Dに設定する左右のカメラの映像を左右に並べるSceneのLeftCameraPlaneとRightCameraPlaneが重ならないように左右に並べます。CameraをLeftCameraPlaneとRightCameraPlaneの前に移動します。Inspectorを設定します。Rectは左右の映像が収まるように調整するGameウィンドウに左右が収まるまで調整してください。これでゲーム画面にサイドバイサイドの画像だけが表示されるようになりました。キャラクターにポーズを付けて背景を配置しました。Android用にビルドしたらスマートフォンで動作しました。Cardboardを使う方法が思い浮かびます。Unity」を使えばもっと簡単に済みます。Rift用SDKの代替手段という方法も思い浮かびます。Riftは価格が4万円ほどします。今のところ有効活用できそうな方法は「立体視のトレーニング用アプリ」でしょうか。ここまではスクリプト無しで出来たので良しとします。Licenseの規定で公開しているUnity用アセットです。Sceneに「CardboardMain」というプレハブを配置するだけで、実行時にサイドバイサイド・レンズ補正・トリミングの処理をしてくれました。カメラを増やす必要もありません。SDKを使った方が圧倒的に簡単なのですが、CardboardMainは実行中でなければ何の効果もありません。しても自力で実装したいこともあると思います。AssetsのEffectsの中にあるFisheye(魚眼)のスクリプトを左右のカメラに割り当てるいいと思います。下の画像はFisheyeを強めにかけた結果です。アスペクト比や左右オフセットの調整はスクリプトを書く必要がありそうです。透視投影と平行投影を合成するには[ユニティちゃん]以上、参考になれば幸いです。当ブログは公開後に内容を修正することがあります。当ブログの内容により発生した損害につきましては一切の責任を負いかねますのでご了承下さい。ユーザーの訪問の際にクッキーやアクセス解析という方法でユーザーの行動を記録しています。これはユーザー個人を特定できない情報であり、サイトの質向上のために用いられます。プライバシー保護のために当ブログのクッキーの取得を拒否するにはお使いのブラウザのクッキーの送受信を拒否するよう設定してください。当サイトは第三者によって配信される広告を表示します。その際、ユーザーが過去に閲覧したサイトの情報からユーザーの興味のある広告を優先的に表示することがあります。このために、ユーザーのインターネット閲覧履歴情報を利用することがありますが、これらは個人を特定できる情報ではなく、個人情報の漏洩や電話、手紙、メールによるセールスはありません。