第1回 【初心者向け】unity+oculus...

189
第1回 Unity + Oculus Rift 次世代の3Dゲームを作って感じるワークショップ 2014/2/8 Yuichi Ishii Yuichi Ishii,2014/2/8 1

Upload: yuichi-ishii

Post on 22-Apr-2015

39.977 views

Category:

Technology


3 download

DESCRIPTION

UnityおよびOculus Riftの初心者の方を対象に簡単な体験型3Dゲーム開発をするワークショップです。

TRANSCRIPT

Page 1: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

第1回Unity + Oculus Rift次世代の3Dゲームを作って感じるワークショップ2014/2/8 Yuichi Ishii

Yuichi Ishii,2014/2/8 1

Page 2: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

自己紹介名前:石井 勇一

開発者コード名:zabaglione

Facebook: https://www.facebook.com/yuichi141

株式会社シーディングソフテック 代表取締役社長

普段はスマートフォン、組込み機器向けのプログラミングに関する研修の講師

物心ついたころからゲームセンターに通いだし、小3の時に親戚の家でパソコンを見てからプログラミングに夢中(下手の横好き)

最近の興味はUnityを中心としたNUI(Natural User Interface)、VRなどを絡めたゲーム開発

Yuichi Ishii,2014/2/8

Page 3: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

目次1Unityとは

Oculus Riftとは

Unityの操作について

Oculus Riftとの連携について

入力装置について

Yuichi Ishii,2014/2/8

Page 4: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

目次2Oculus Riftの実装例

Unity + Oculus Riftにまつわる問題点と回避策

課題アプリの作成(ワークショップ)

発表会

参考:Oculus Riftのスクリプト

Yuichi Ishii,2014/2/8

Page 5: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityとは

Yuichi Ishii,2014/2/8

Page 6: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

UnityとはUnity はゲーム開発のエコシステム。インタラクティブな 3D コンテンツ作成のための直感的なツールとサクサク作れるワークフローが、パワフルなレンダリングエンジンと完全に統合された環境で開発が出来ます。

手軽なマルチプラットフォームパブリッシング、高品質なアセットが幾千も揃ったアセットストア、困ったときにノウハウを共有してくれる巨大なコミュニティがあなたを支えます。

Unityの民主的なエコシステムは、美しく手の込んだゲームを作り出す時に、多くのデベロッパーやスタジオが直面する障壁を突き崩す手段となるでしょう。彼らは、人々が夢中になって喜ぶゲームをあらゆるプラットフォームで作るために、Unity を活用しているのです。

引用:http://japan.unity3d.com/unity/Yuichi Ishii,2014/2/8

Page 7: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

UnityとはUnity = 「Editor」+「Game Engine」

初登場は2005年のアップル主催 Worldwide Developers Conference

バージョン3.xから非常に多くのプラットフォームで動作するアプリケーションの作成が可能になった

バージョン4.0でMecanimと呼ばれる3Dモデルのアニメーション制御エンジンを内蔵し、4.3から2Dスプライトのサポートなど新機能を次々と実装し続けている。

Yuichi Ishii,2014/2/8

Page 8: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityが提供する機能一覧

Unity4.3.4時点 引用:http://japan.unity3d.com/unity/licensesYuichi Ishii,2014/2/8

主な機能

物理演算

ナビメッシュ、パス探索、群衆シミュレーション

RakNet によるマルチプレイヤーネットワーク

LOD のサポート

オーディオ (3D音響とステレオ音響)

オーディオフィルター

ビデオ再生とストリーミング

アセットバンドルによる本格的なストリーミング

Page 9: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityが提供する機能一覧

Yuichi Ishii,2014/2/8

アニメーション

Mecanim

Mecanim: IK Rigs

Mecanim: Sync Layers & Additional Curves

デプロイ関連

ワンクリックでのデプロイ

ウェブブラウザとの統合

スプラッシュスクリーンの変更

Unity4.3.4時点 引用:http://japan.unity3d.com/unity/licenses

Page 10: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityが提供する機能一覧

Yuichi Ishii,2014/2/8

グラフィックス(1)

低レベルレンダリングへのアクセス

マークアップによる ダイナミックフォント

Shuriken パーティクルシステム

3D テクスチャをサポート

リアルタイム Directional シャドウ

リアルタイム Spot/Point シャドウ またソフトシャドウ

HDR、トーンマッピング

ライトプローブUnity4.3.4時点 引用:http://japan.unity3d.com/unity/licenses

Page 11: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityが提供する機能一覧

Yuichi Ishii,2014/2/8

グラフィックス(2)

最適化されたグラフィック

シェーダーの利用(ビルトイン&カスタム)

ライトマッピング

グローバルイルミネーション付きライトマッピングとエリア・ライト

動的バッチング

静的パッチング

地形生成

Render-to-Texture エフェクトUnity4.3.4時点 引用:http://japan.unity3d.com/unity/licenses

Page 12: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityが提供する機能一覧

Yuichi Ishii,2014/2/8

グラフィックス(3)

フルスクリーンポストエフェクト

オクルージョンカリング

デファードレンダリング

ステンシルバッファーへのアクセス

GPU スキニング

Unity4.3.4時点 引用:http://japan.unity3d.com/unity/licenses

Page 13: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityが提供する機能一覧

Yuichi Ishii,2014/2/8

コード

Navmesh: 動的障害・回避プライオリティ

Webplayer デバッギング

C#, JavaScript, Booによる.NETベースのスクリプト

WWW 関数を使ったウェブデータへのアクセス

ユーザーのブラウザで URL を開く

.NET ソケットサポート

ネイティブプラグインサポート

カスタムクラス用インスペクタ GUIUnity4.3.4時点 引用:http://japan.unity3d.com/unity/licenses

Page 14: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityが提供する機能一覧

Yuichi Ishii,2014/2/8

エディタ

統合エディタ

自動的なアセットのインポート

アニメーションエディタ

プロファイラ・GPU プロファイリング

外部バージョン管理サポート

アセットパイプラインへのスクリプトアクセス

ダークスキン

Unity4.3.4時点 引用:http://japan.unity3d.com/unity/licenses

Page 15: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityが提供する機能非常に多くの機能がありますが、一度に全部覚える必要はありません。

1つの機能であってもマスターするまでには相当時間がかかりますので、根気よく続けて覚えてください。

このセミナーではUnityの基本操作+Oculus Riftとの連携方法についての説明と、実際の操作を体験していただきます。

Yuichi Ishii,2014/2/8

Page 16: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとは

Yuichi Ishii,2014/2/8

Page 17: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus RiftとはOculus Rift(オキュラス・リフト)とは、米Oculus VR社が開発したバーチャルリアリティ用ヘッドマウントディスプレイ(HMD、頭部搭載型ディスプレイ)です。

Yuichi Ishii,2014/2/8

http://www.oculusvr.com/

Page 18: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとは2012 年 8 月にKickstarter上で立ち上げられたプロジェクト

目標金額$250,000に対して、投資総額が$2,437,429 の調達に成功。(当時の日本円は$1=84円ぐらい。約2億円)の調達に成功

大成功プロジェクトして世界から注目を受ける

2012年のE3において「2012 Best of E3 Nominee」にノミネート

2013年のE3において「E3 2013のベストハードウェア賞」を受賞

各種ゲームメディアが「E3 2013で一番驚いたゲーム認定」

フォーブス誌のゲーム部門でCEOが1位を取った

Yuichi Ishii,2014/2/8

引用:http://yaseino.hatenablog.com/entry/2014/01/09/203922引用:https://gist.github.com/japboy/5545565

Page 19: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftのハード仕様(DK1)

Yuichi Ishii,2014/2/8

ディスプレイ仕様

・7 インチの画面サイズ・1280 x 800 (720p) の解像度 (片目辺りの解像度は 640 x 800)・レンズ中央から 64 mm の固定長・60 Hz LCD パネル・DVI-D/HMDI・USB 2.0 Full Speed・輝度とコントラスト調整可

引用:https://gist.github.com/japboy/5545565

Page 20: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftのハード仕様(DK1)

Yuichi Ishii,2014/2/8

トラッキング仕様

・1000 Hz サンプリングレート・3 軸回転儀 (gyroscope) による角速度検知・3 軸磁力計 (magnetometer) による磁場検知・3 軸加速度計 (accelerometer) による重力を含む加速度検知・USB の HID として動作・USB ケーブルが接続されていれば電源投入関係なくセンサー情報にはアクセス可能

引用:https://gist.github.com/japboy/5545565

Page 21: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftのハード仕様(DK1)

Yuichi Ishii,2014/2/8

レンズ仕様

・レンズは A, B, C の 3 種類が付属している。それぞれの適正視力は以下の通り

A: 視力 1.0 および遠視

B: 近視気味

C: 近視

引用:https://gist.github.com/japboy/5545565

Page 22: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftのソフト仕様(DK1)

Windows, Mac, Linux用のSDKを配布(言語はC++)

Unity, UDKへの統合キットを配布

SDKに含まれているソースコード及びバイナリは使用、変更、再配布が可能(正確にはSDKやライブラリなどに含まれるLICENSE.txtファイルやソースコードのコメントを参照のこと)

Yuichi Ishii,2014/2/8

Page 23: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの長所110 度(対角) / 90 度(水平)と視野角(FOV)が広い(ソニーHMZ-Tシリーズの2倍)

頭の向きをトラッキングでき、6 段階の被写界深度(DOF)をゲームに使えるほど低遅延で実現

他のHMDと同じく両目の視差を利用した裸眼立体視3D表示

59800円のHMZ-T1/T2に対して開発キットで300ドルという低価格(Developer Kit1の値段)

Yuichi Ishii,2014/2/8

引用:http://yaseino.hatenablog.com/entry/2014/01/09/203922引用:https://gist.github.com/japboy/5545565

Page 24: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの短所開発キットの解像度が1280x800(片目640x800)という低解像度

しかも画面が表示される部分はその中から更に制限(レンズ補正の歪みのため)

頭の「向き」は取れるが「位置」は取れない

Yuichi Ishii,2014/2/8

引用:http://yaseino.hatenablog.com/entry/2014/01/09/203922引用:https://gist.github.com/japboy/5545565

いずれもCES2014で発表された赤外線カメラ付属のコードネーム「Crystal Cove」で解消済み(らしい)。

Page 25: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの購入方法2014/2/8現在、日本正規代理店は存在しない

公式サイトから直接購入するのが確実https://www.oculusvr.com/order/

本体価格 $300 + 送料($50〜$60ぐらい?) + 関税?

コードネーム「Crystal Cove」が控えているが……

Yuichi Ishii,2014/2/8

Page 26: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの購入方法Oculus RiftをUnityで使うには「Unity Pro」が必須です。

Oculus Riftを購入するとUnity Pro体験版4か月延長コードが取得できます。

それも使い倒したらUnity Proを購入するか、他のゲームエンジンで試すとよいでしょう。

Yuichi Ishii,2014/2/8

Page 27: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

入力装置について

Yuichi Ishii,2014/2/8

Page 28: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

相性が良さそうな入力装置XInput互換の入力装置

Windows限定

XBOX 360 Wireless controller for Windows推奨

Mac OS Xは「Unity Hacks: Dual sticks」を使用すると良いらしいというUnityの開発者スレッドを発見(未確認)

http://forum.unity3d.com/threads/200074-Better-Oculus-Rift-FPS-Controller-(OSX)

あるいはこのスライドの後半で紹介している「問題点6」で解説している方法があります(確認済み)

Yuichi Ishii,2014/2/8

Page 29: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

相性が良さそうな入力装置Kinect

Leap Motion

Razer Hydra

STEM System

Virtuix Omni

MYO - Gesture control armband by Thalmic Labs

QUMARION

Yuichi Ishii,2014/2/8

Page 30: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

相性が良さそうな入力装置その他

Wiiコントローラ、PlayStation3などのコントローラ

Zeemote JS1

MIDI機器

Yuichi Ishii,2014/2/8

Page 31: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例

Yuichi Ishii,2014/2/8

Page 32: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Alone in the Rift

Unity で実装されたホラーデモ。Razer Hydra にも対応。Windows 用。

RiftEnabled™ – Alone in the Rift

Alone in the Rift - A horror game demo (with hydra support!) | Oculus-ready Games and Demos | Oculus Rift Developer Forums

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 33: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Lukalus

Unity で実装されたルカさんを観賞するデモ。Windows と Mac OS X に対応。@yuujii 作

Lukalusでルカと暮らす - develog.me

Lukalus 0.3 Win/Mac GamePad対応 - [ Bowl Roll ]

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 34: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Lukalus Live!

Unity で実装されたルカさんがダンスするのを観賞するデモ。Windows に対応。@yuujii 作

Lukalusでルカと暮らす - develog.me

ルカライブ!(Lukalus Live! 0.1) - [ Bowl Roll ]

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 35: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Macross + Oculus Rift

Unity で実装されたバルキリーシミュレータ。WindowsとMac OS X版。

SolidM Macross + Oculus Rift

SolidM Macross + Oculus Rift その5(最終版)

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 36: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Mikulus

Unity で実装された Tda 式初音ミクを視漢... 観賞するデモ。Windows 用と OS X 版がある。@GOROman作。

RiftEnabled™ – Miku Miku Dance (Japanese)

話題のOculusRiftでアッチの世界に入って来たついでにミクさんを触ってきた - Niconico video Q

Mikulus - 130611版(バージョンアップ) - [ Bowl Roll ]

Mikulus - 130623版 (立ちEDITION) - [ Bowl Roll ]

Mikulus OSX版 β - [ Bowl Roll ]

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 37: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Ocean Rift

Unity で実装された海底体感のデモ。Windows 用。

RiftEnabled™ – Ocean Rift

Ocean Rift (featuring sharks) | Works in Progress | Oculus Rift Developer Forums

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 38: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Oculus Street View

vr.js と HTML 5 で実装された Google Street View の Oculus Rift 対応版。クロスプラットフォーム。

RiftEnabled™ – Oculus Street View

Oculus Google Street Viewer

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 39: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例oculusDOGEZA

Tda 式ミクに土下座できる。

oculus DOGEZA(for Oculus Rift Only)

(PCの性能不足だと右画面が白くなる?)

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 40: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Parrot Coaster VR

Unity で実装されたローラーコースターのデモ。Windows 用。

RiftEnabled™ – ParrotCoaster WIP

Oculus Rift - Parrot Coaster VR - Weeeeee! -1080p - YouTube

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 41: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Rift Coaster

UDK で実装されたローラーコースターのデモ。Windows 用。

RiftEnabled™ – Rift Coaster

Meant to be Seen - View topic - Can someone with a Rift test my roller coaster? now w/ sound

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 42: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Titan

Unity で実装された「進撃の巨人」体感デモ。Windows 用と Mac OS X 版がある

Titan Win

Titan Mac

Yuichi Ishii,2014/2/8引用:http://wiki.oculusvr.jp/index.php?%E3%83%87%E3%83%A2

Page 43: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Titan of Space

Unity で実装された銀河系を宇宙船から観賞するデモ。Windows 用と Mac OS X 版がある。

RiftEnabled™ – Titans of Space

Titans of Space

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 44: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Tsuitekulus

ミクさんがミクさんなったあなたに着いてきます。Windows 用。

ついてくるッス v0.0.2 - [ Bowl Roll ]

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 45: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例VR Cinema 3D

Unity で実装された映画館を再現したデモ。好きな動画を VR 映画館で再生できる。Windows 用。

RiftEnabled™ – VR Cinema 3D

vrcinema3D | Oculus-ready Games and Demos | Oculus Rift Developer Forums

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 46: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例Yunalus

Unity で実装されたイリュージョンのスマートフォン向けゲームキャラクター「モグモグゆなちゃん」を観賞するデモ。Windows 用と Mac OS X 版がある。

Oculus Rift バーチャルリアリティがもっと身近に…

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 47: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例AngryBots + Oculus Rift + Razer Hydra(自作)

Unity付属のAngryBotsをFPS視点にしてOculus RiftとRazer Hydra対応にしました。Windows版のみ。

Razer Hydra対応は不完全です。WebPlayer版(単にFPS化したもの)

ダウンロード版

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 48: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの実装例VR SKI JUMP

SKIのJUMPを体験できる。Windows版とMac版がある。作者の@oukaichimon曰く、「妥当RiftCoasterを目指し、Oculus初体験者向けのソフトを作りました。」とのことです。是非チャレンジしてみてください。

VR SKI JUMP

トップページには沢山のアプリがります。

Yuichi Ishii,2014/2/8引用:https://gist.github.com/japboy/5545565

Page 49: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftの体験会これまで紹介したアプリケーションをダウンロードして試してみましょう。

Yuichi Ishii,2014/2/8

Page 50: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityの操作

Yuichi Ishii,2014/2/8

Page 51: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityの基本操作

Yuichi Ishii,2014/2/8

Scene

Project

Hierarchy

Toolbar

Inspector

Page 52: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Toolbar

トランスフォームツール

Unityの基本操作

Yuichi Ishii,2014/2/8

Scene内の移動

オブジェクトの移動

オブジェクトの回転

オブジェクトの拡大/縮小

Page 53: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Transformツールのまとめ

Yuichi Ishii,2014/2/8

Unityの基本操作

W E R

移動 回転(後半で使用)

拡大/縮小

この、赤や青、緑のハンドルのようなものを「Gizmo(ギズモ)」と呼びます。

Page 54: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Toolbar

トランスフォームツール

Scene内の移動や拡大縮小(ショートカットキー:Q)

オブジェクトの移動(ショートカットキー:W)

オブジェクトの回転(ショートカットキー:E)

オブジェクトの拡大/縮小(ショートカットキー:R)

Yuichi Ishii,2014/2/8

Page 55: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Toolbar

トランスフォームギズモトグルボタン。

Unityの基本操作

Yuichi Ishii,2014/2/8

Page 56: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unityの基本操作Toolbar

トランスフォームギズモトグルボタン

Sceneビューにおけるギズモの切り替えます。

それぞれクリックするたびに切り替わります。

Yuichi Ishii,2014/2/8

Page 57: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Toolbar

プレイ/ポーズ/ステップボタン

実際にゲームを動かしてみたり、一時停止、ステップ実行することができます。

Yuichi Ishii,2014/2/8

Unityの基本操作

Play Pause Step

Page 58: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Yuichi Ishii,2014/2/8

Unityの基本操作Toolbar

Layers ドロップダウンボタンSceneビュー中でどのオブジェクトを表示するか管理します

Page 59: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Yuichi Ishii,2014/2/8

Unityの基本操作Toolbarレイアウトドロップダウンボタン

画面のレイアウトを変えることができます。

[2 by 3], [4 Split], [Default], [Tall], [Wide]などからお好みのレイアウトを選んでください。

画面のレイアウトは移動、表示/非表示ができます。

[Save Layout...]でレイアウトを保存できます。

Page 60: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Yuichi Ishii,2014/2/8

Unityの基本操作Scene

プレイヤー、カメラ、敵およびその他あらゆるすべての GameObject を選択し、配置することができます。

Sceneビューの中におけるカメの移動方法について次のスライドで示します、

Page 61: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

シーンのカメラの調整方法1あくまでSceneビューの表示だけのことで、「Main Camera」には影響を与えません。

詳細はUnityオンラインドキュメントを参照のこと

Yuichi Ishii,2014/2/8

Unityの基本操作

回転ALT+左クリック右クリック

平行移動ALT+CTRL+左クリックホイールクリック

ズームホイール回転

Page 62: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Yuichi Ishii,2014/2/8

Unityの基本操作

シーンのカメラの調整方法2

フライトスルーモード

マウスの右ボタンを押したままにする

キーボードのWASDキーで上下左右、QEで上下の平行移動

SHIFTキーで加速

詳細はUnityオンラインドキュメントを参照のこと

Page 63: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Yuichi Ishii,2014/2/8

Unityの基本操作シーンのカメラの調整方法3シーンギズモ

Sceneビューの右上のアイコン。

XYZの近くにある腕の部分をクリックするとその方向にカメラを移動します。

真ん中の立方体をクリックすると、等角図法(Isometric Mode)と 透視(遠近)図法(Perspective Mode)の切り替えになります。

また、中央の立方体をSHIFTキーを押しながらクリックすると、少し見下ろした位置にカメラを移動します。

詳細はUnityオンラインドキュメントを参照のこと

Page 64: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Yuichi Ishii,2014/2/8

Unityの基本操作Hierarchy

現在開いているシーン中のすべての GameObject が含まれています。

HierarchyビューではGameObjectの作成や複製、削除ができます。

また、Sceneの中のGameObjectは階層構造を持つことができ、親子関係を持たせたり、解除したりできます。

Page 65: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Yuichi Ishii,2014/2/8

Unityの基本操作Project

プロジェクトに属するAssets(アセット:資産、財産など意味)にアクセスし、管理することができます。

Assetsはゲームを構成する様々な部品を表します。例えるなら、ゲームの素材倉庫のようなものです。

Page 66: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Yuichi Ishii,2014/2/8

Unityの基本操作Inspector

SceneビューやHierarchyビューで選択したGameObjectや、Projectビューのファイルの内容を表示したり変更したりすることができます。

UnityのGameObjectやAsstesは多くの「Component」を含んでいます。

ComponentはUnityの[Component]メニューから増やすことができます。

Componentを削除するには、各コンポーネントの右側にある歯車をクリックして[Remove Component]を選んでください。

Component

Component

Page 67: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

GameObjectとComponentSceneには多数のGameObject(インスタンス)が存在します。

GameObjectとはSceneに予め作成することもでききますし、スクリプトで動的に追加することもできます。

Yuichi Ishii,2014/2/8

Scene

GameObject

GameObject

Page 68: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

GameObjectには多数のComponent(≒振る舞い)が追加されています。

GameObjectとComponent

Yuichi Ishii,2014/2/8

Component

Scene

GameObject

GameObject

Component

Component

Component

Component

Page 69: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

GameObjectとComponentComponentを基底クラスとして様々な振る舞いを定義した派生クラスが定義されています。

Yuichi Ishii,2014/2/8

Component

Transform

Camera

Collider

Behaviour

BoxCollider

CapsuleCollider

MonoBehaviour ユーザ定義

ユーザ定義

Page 70: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

GameObjectとComponentGameObject

Create Empty

Transform以外のコンポーネントを持たないGameObject

Create Other

初めからいくつかのコンポーネントが追加されたGameObject

Yuichi Ishii,2014/2/8

Page 71: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

GameObjectとComponentComponentはGameObjectに追加します。したがって、まずはGameObjectを選択する必要があります。

ComponentはUnity Editorから追加したり、スクリプトから動的に追加することもできます。

Yuichi Ishii,2014/2/8

Page 72: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

GameObjectとComponent1つのGameObjectに同系のComponentを2つ以上追加することはできません。

例:Box ColliderとSphere Collider

どうしても追加したい場合は、よく吟味したうえでEmpty GameObjectを作成し、親子関係を持たせてることで実現できます。

Yuichi Ishii,2014/2/8

Page 73: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携について

Yuichi Ishii,2014/2/8

Page 74: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Oculus SDK配布サイトにあるovr_unity_0.2.5_lib.zipを展開し、OculusUnityIntegrationフォルダに含まれるUnityPackageをインストールするだけです。

OculusUnityIntegrationTuscanyDemo.unitypackage「Tuscany」のDemoパッケージ付

下記パッケージも包含しています。

OculusUnityIntegration.unitypackageOculus Riftと連携するために最低限必要なパッケージ

Yuichi Ishii,2014/2/8

Page 75: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1まずは試してみましょう。

Unityを起動してください。

新規にプロジェクトを作成してください

[File]-[New Project...]としてください

Yuichi Ishii,2014/2/8

Page 76: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Explorerで「OculusUnityIntegrationTuscanyDemo.unitypackage」をダブルクリックしてください。

しばらくするとUnity側でImport Package画面が出るので、Importボタンを押してください。インポートには時間がかかります。

Yuichi Ishii,2014/2/8

Page 77: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1インポート直後の画面

Yuichi Ishii,2014/2/8

スクリプトやPrefabなど

ネイティブプラグイン

demoプロジェクト

Page 78: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1OVR

OVR は Oculus Unity 統合の最上位のフォルダです。

PluginsOculus Riftとの通信するためのネイティブライブラリです

TuscanyOculus Riftのdemoアセット

Yuichi Ishii,2014/2/8

Page 79: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Editor:

Unity エディタへの機能拡張といくつかのC#スクリプトが含まれます。

Materials磁気コンパスや Main GUI ディスプレイで使用する画像ファイルなどが含まれます。

OVRImageEffectsOculus Rift ディスプレイ内で画像をワープさせるのに必要なスクリプトおよびレンズ補正シェーダが含まれます。

Yuichi Ishii,2014/2/8

Page 80: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Prefabs

Oculus Rift を Unity シーンに繋げるためのプレハブが含まれています。

Resources

いくつかの OVR スクリプトにより必要とされ、インスタンス化されるプレハブおよび別のオブジェクト(例えば磁気コンパスのオブジェクト)が含まれます。

Yuichi Ishii,2014/2/8

Page 81: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Scripts

Oculut Rift と Unity コンポーネントを結ぶC# ファイルが含まれます。これら多くのスクリプトは Prefabs フォルダと連携します。

ShadersOculus Rift用に調整されたGUI Shaderを含みます。

Texturesいくつかのスクリプトコンポーネントが必要とする画像アセットが含まれます。

Yuichi Ishii,2014/2/8

Page 82: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Projectビューの[Tuscany]-[Scenes]-[VRDemoTuscany]シーンファイルをダブルクリックして開いてください。

保存の確認ダイアログが表示されますが、今回は特に何もないので「Don't save」を押してください。

Yuichi Ishii,2014/2/8

Page 83: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1

Yuichi Ishii,2014/2/8

Page 84: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Sceneファイルを開いた直後の画面

Yuichi Ishii,2014/2/8

Page 85: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Hierarchyビューにある「OVRPlayerController」をダブルクリックして操作キャラの位置を確認しましょう。

Yuichi Ishii,2014/2/8

Page 86: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Toolbarの「Play」ボタンを押してください。

Oculus Riftが繋がっていれば樽状の2つのカメラ画像が表示されます。

Oculus Riftが繋がっていなければ、単なる2つのカメラ画像が表示されます。

Yuichi Ishii,2014/2/8

Page 87: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Oculus Rift接続時の画面

Yuichi Ishii,2014/2/8

Page 88: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Oculus Rift未接続時の画面

Yuichi Ishii,2014/2/8

Page 89: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Oculus Riftで立体視するためには、1280x800の解像度に全画面で表示する必要があります。

Unityの現バージョン(4.3.4)ではEditor上の実行でフルスクリーンにすることはできません。

そこでアプリケーションにして確認してみます。

Yuichi Ishii,2014/2/8

Page 90: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1Unityの[File]-[Build Settings...:]を開いてビルドの設定をします。

ビルド対象のシーンを追加するために、[Add Current]ボタンを押します。

間違って複数回押してしまったら、選択してDelキーを押して消してください。

Yuichi Ishii,2014/2/8

Page 91: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1

Yuichi Ishii,2014/2/8

余計なシーンは選択して[Del]キーで消します。

Page 92: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1[Player Settings...]を押してResolution and Presentationを以下のように変更します。

Yuichi Ishii,2014/2/8

Page 93: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1一旦、ダイアログを閉じてQualityの設定を行います。

Oculus Riftでは画面の粗さを抑えるためにAnti Aliasingを「4x Multi Sampling」以上にすることが推奨されています。

Yuichi Ishii,2014/2/8

Page 94: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1設定が終わりましたのでビルドおよび実行します。

Oculus RiftのパッケージをインストールするとUInityのメニューに[Oculus]が追加されます。

[Oculus]-[Build]メニューから行えます。

Yuichi Ishii,2014/2/8

Page 95: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1キーボードの制御1

Yuichi Ishii,2014/2/8

キー名称 使用方法

W または上矢印 プレイヤーを前方に移動

A または左矢印 プレイヤーを左に移動

S または下矢印 プレイヤーを後ろに移動

D または右矢印 プレイヤーを右に移動

左 Shift 押し続けるとプレイヤーが走る

Q および E 左右にプレイヤーが回転

引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html

Page 96: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1キーボードの制御2

Yuichi Ishii,2014/2/8

キー名称 使用方法

右 Shift シーン選択をトグル(上下の矢印でシーンの一覧からスクロール)

Return シーン選択がオンのとき、現在選択されたシーンをロード

Z 手動の磁気カリブレーションを有効化

X 自動の磁気カリブレーションを有効化

C マウスカーソルをオン/オフ切替

P 予測(Prediction)モードをオン/オフ切替

引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html

Page 97: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1キーボードの制御3

Yuichi Ishii,2014/2/8

キー名称 使用方法

B トラッカーの向きをリセット

スペース コンフィグメニューをトグル

, および . 予測(prediction) の値の減算/加算(ミリ秒単位)

[ および ] 垂直方向の視界 (FOV) の減算/加算(角度単位)

-および = 瞳孔間距離 (IPD) の減算/加算(ミリメートル単位)

引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html

Page 98: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1キーボードの制御4

Yuichi Ishii,2014/2/8

キー名称 使用方法

1 および 2 歪み定数 1 (K1) の減算/加算

3 および 4 歪み定数 2 (K2) の減算/加算

5 および 6 プレイヤーの高さの減算/加算(メートル単位)の減算/加算

7 および 8 プレイヤーの移動速度係数の減算/加算

9 および 0 プレイヤーの回転速度係数の減算/加算

引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html

Page 99: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1キーボードの制御5

Yuichi Ishii,2014/2/8

キー名称 使用方法

TabTabを押し続けて F3 -F5を押下することで現在のコンフィグのスナップショットを保存

F2 デフォルトのコンフィグにリセット

F3 F4 F5 保存されたコンフィグのスナップショットを再呼出

F6もし磁気参照の向きがセットされていれば磁気コンパスのオン/

オフ切替

引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html

Page 100: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1キーボードの制御6

Yuichi Ishii,2014/2/8

キー名称 使用方法

F11 全画面表示およびウィンドウ表示のモード切替

Esc アプリケーションの終了

引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html

Page 101: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1マウスの制御

マウスを使用することでプレイヤーが左右に回転します。

もしカーソルが有効化されていれば、マウスはカーソルが画面外になるまで、プレイヤーを回転させずに、カーソルをトラックします。

Yuichi Ishii,2014/2/8引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html

Page 102: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1ゲームパッドの制御1

もしプラットフォームの互換コントローラがある場合、プレイヤーコントローラの動作を制御できます。

左アナログスティックは WASD キーを使用するのと同様にプレイヤーを動作させることが出来ます。

右アナログスティックはプレイヤーを左右に Q および E キーを使用するかのように回転させます。

Yuichi Ishii,2014/2/8引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html

Page 103: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携1ゲームパッドの制御2

左のトリガーにより、もっと速く移動するか、シーン上を走ることができます。

スタートボタンにより画面選択をトグルできます。D-パッドの上下を押すことで、利用可能なシーンをスクロールします。A ボタンを押すことで現在選択されたシーンを開始します。

もしシーン選択がトグルされない場合、D-パッドの下を押すことでトラッカーの向きをリセットします。

Yuichi Ishii,2014/2/8引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html

Page 104: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携2今度は1から作成してみましょう。

Unityを起動してください。

新規にプロジェクトを作成してください

[File]-[New Project...]としてください

Yuichi Ishii,2014/2/8

Page 105: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携2Explorerで「OculusUnityIntegration.unitypackage」をダブルクリックしてください。(Demoを含まないパッケージ)

しばらくするとUnity側でImport Package画面が出るので、Importボタンを押してください。

インポートには時間は比較的短めです。

Yuichi Ishii,2014/2/8

Page 106: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携2ステージとなる床を作成します。

[GameObject]-[Create Other]-[Plane]でPlaneオブジェクトを作成

Planeのままでは後で何のオブジェクトか分からなくなるので、名前を変更してください。

名前を変更するには、Hierarchyビューで「Plane」を選択してマウスカーソルをちょっとずらすか、F2キーを押すと変更可能になります。

Yuichi Ishii,2014/2/8

Page 107: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携2ステージとなる床を作成します(続き)。

名前を「Plain」から「Floor」に変更します。

次に位置を調整します。位置はHierarchyビューで「Floor」を選択し、Inspectorビューの「Transform」コンポーネントの「Position」のX,Y,Zの値をすべて0にしてください。

Rotate, Scaleは変更不要です。

Yuichi Ishii,2014/2/8

Page 108: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携2

Yuichi Ishii,2014/2/8

Page 109: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携2Oculus Rift対応済みのPrefabをSceneビューに追加します。

[Oculus]-[Prefabs]-[OVRPlayerController]を選択

Yuichi Ishii,2014/2/8

Page 110: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携2OVRPlayerControllerには(左右の)カメラが子オブジェクトとして追加されています。

したがってHierarchyにあるMain Cameraは不要なので削除してください。

Yuichi Ishii,2014/2/8

Page 111: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携2Playerの位置がFloorと同じため、そのままでは落ちてしまいます(試しにPlayしてみてください)

Yuichi Ishii,2014/2/8

Page 112: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携2Playerを少し引き上げてください。

Hierarchyビューで「OVRPlayerController」をダブルクリックして、Sceneビューで緑色の矢印(Y軸)を選択して少し上に持ち上げてください。

InspectorビューのTransform : PositionのYが1以上であれば問題ありません。

Yuichi Ishii,2014/2/8

Page 113: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携2これで対応終了です。Playボタンを押して動作確認をしてください。

ただし、このままでは暗く、何もオブジェクトがありません。あとはUnityの機能を使ってシーンを構築していきます。

Yuichi Ishii,2014/2/8

Page 114: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

参考:Unity基本操作明るくするには1

Directional Light

太陽のように、かなり遠くに配置され、シーン内のすべてを照らします。

配置方法

[GameObject] - [Create Other] - [Directional Light]

位置はどこでも構わない

詳しくは公式ドキュメント参照

Yuichi Ishii,2014/2/8

Page 115: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

参考:Unity基本操作明るくするには2

Point Light

電球のように、ある場所から全方向を等しく照らします。

配置方法

[GameObject] - [Create Other] - [Point Light]

詳しくは公式ドキュメント参照

Yuichi Ishii,2014/2/8

Page 116: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

参考:Unity基本操作明るくするには3

Spot Light

車のヘッドライトのように、1 点から 1 方向に光を放ち、円錐内のオブジェクトのみを照らします。

配置方法

[GameObject] - [Create Other] - [Spot Light]

詳しくは公式ドキュメント参照

Yuichi Ishii,2014/2/8

Page 117: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

参考:Unity基本操作色を付けるには

Projectビューにある「Create」メニューを押して[Material(質感)]を選ぶ。

新しく作成したMaterialを選択し、InspectorでMain Colorをクリックするとカラーダイアログが表示されるので好きな色を選び閉じる。

色を設定したMaterialをSceneビューやHierarchyビューのオブジェクトにドラッグ&ドロップすると色を変更できる

Yuichi Ishii,2014/2/8

Page 118: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

参考:Unity基本操作テクスチャを貼りつけるには

Projectビューに画像ファイルをドラッグ&ドロップする

Projectビューの画像ファイルをSceneビューまたはHierarchyビューのオブジェクトにドラッグ&ドロップする(正しくは、Materialを作成してMaterialのTextureを変更し、Materialをドラッグ&ドロップする)

Yuichi Ishii,2014/2/8

Page 119: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携3既存のプログラムに対してOculus Rift対応を行うには、Main CameraをOculus Rift対応Cameraに置換します

これでOculus Riftのヘッドの動きにカメラが追従します

手順

1. Hierarchyの「Main Camera」を選択

2. InspectorのTransformの右側の歯車をクリックし、[Copy Component]を実行(位置と向きをコピー)

Yuichi Ishii,2014/2/8

Page 120: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftとの連携3手順

3. Hierarchyの「Main Camera」を削除

4. OVR/Prefabs/OVRCameraControllerをHierarchyに追加

5. または[Oculus]-[Prefabs]-[OVRCameraController]を実行

6. Hierarchyの[OVRCameraController]を選択

7. InspectorのTransformの右側の歯車をクリックし、[Paste Component Values]を実行(位置と向きを貼り付け)

Yuichi Ishii,2014/2/8

Page 121: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Unity + Oculus Riftにまつわる問題点と回避策

Yuichi Ishii,2014/2/8

Page 122: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点と解決策Unity+Oculus Rift開発メモ @k0rinさん

Oculus Rift ドキュメント(非公式翻訳)gamesonytabletさん

すべては紹介できないのでので、いくつかピックアップして紹介します。

Yuichi Ishii,2014/2/8

Page 123: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点1自動車や飛行機など、移動するオブジェクトにカメラを載せるには?

OVRCameraController(プレハブ)をそのオブジェクトの子にして、OVRCameraControllerコンポーネントのFollow Orientationプロパティに親オブジェクトをセットします。

OVRCameraControllerを子にしただけでは、追従はしますが回転にはついていきません。

Yuichi Ishii,2014/2/8

Page 124: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点1実例

1. OculusSample.zipを展開

2. Unityで上記プロジェクトを開く

3. Sample/Scenes/Scene1を開く(床とライトを設置済)

4. [GameObject]-[Create Other]-[Cube]を作成

5. Cubeを「Player」に名前を変更

6. Positionを(0, 0.5, 0)にする

Yuichi Ishii,2014/2/8

Page 125: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点1実例

7. OVRCameraControllerをPlayerの子に設定

8. OVRCameraControllerのPositionを(0,0,0)に設定

9. OVRCameraControllerのOVRCameraControllerプロパティの「Camera root position」 (親オブジェクトから見て、カメラの相対配置場所)のYを1に設定

10. 位置「Neck Position」のYを0.7(首の位置を指定)

11. OVRCameraControllerのOVRCameraControllerプロパティのFollow Orientationに「Player」を設定

Yuichi Ishii,2014/2/8

Page 126: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点1設定例

Yuichi Ishii,2014/2/8

Page 127: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点1実例

11. Layoutを「2 by 3」に変更

12. Playボタンを押して実行

13. HierarchyのPlayerを選択

14. InspectorのPositionの値を変更&確認

• カメラが追随することを確認

15. InspectorのRotationの値を変更&確認

• カメラが追随することを確認

Yuichi Ishii,2014/2/8

Page 128: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点23Dモデルのキャラの向きと頭の向きを同期させるには?

3DモデルのオブジェクトをOVRPlayerControllerの子オブジェクトのForwardDirectionの子オブジェクトとして登録する。

さらに「問題点1」の設定を行い、OVRCameraControllerコンポーネントの「Tracker Rotates Y」のチェックをオンにする

Yuichi Ishii,2014/2/8

Page 129: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点2実例

1. 先ほどの続きの場合はPlayerを削除。あるいはSample/Scenes/Scene2を開く

2. OVR/Prefabs/OVRPlayerControllerをHierarchyに追加

3. OVRPlayerControllerのPositionのYを1に設定

Yuichi Ishii,2014/2/8

Page 130: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点2実例

4. Cubeを作成

5. CubeをOVRPlayerController/ForwardDirectionの子に設定

6. CubeのPositionを(0, 0, 0)に設定

7. CubeのBox Colliderを削除(右の歯車を選択し、「Remove Component」を実行

Yuichi Ishii,2014/2/8

Page 131: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点2設定例

Playを押して動作確認

さらに効果を確認するために、CubeをForwardDirectionの子ではなく、OVRPlayerControllerの子に移動する

Yuichi Ishii,2014/2/8

Page 132: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点3Skyboxがずれて表示されることがある?

Unity標準のSkyboxはOculus Riftの立体視に対応していません。3Dモデルとして設置する必要があります。Noraさんが公開されているSkyboxMesh.csを使うのが簡単です。こちらで詳しい使い方が紹介されています。

Oculus Rift で Skybox を破綻なく表示できるSkyboxMesh.cs を試してみた - 凹みTips

Yuichi Ishii,2014/2/8

Page 133: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点4メッセージを常に正面に表示したい

3D Textかテクスチャを貼ったポリゴンを、OVRCameraControllerの子のCameraRightに接続します。CameraLeftの子にすると描画順序の関係からブレが発生します。

テクスチャポリゴンは3D空間内で他のオブジェクトと干渉しないよう、以下のような変更を加えたシェーダーを使います。

Tags { "Queue" = "Overlay" } // 最後に描画する

ZTest Always // Zテストをせず描画する

Yuichi Ishii,2014/2/8

Page 134: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点5GUIを追加したい

OVRGUI.csがGUIのヘルパクラスです。(OVR/Scripts/OVRGUI.cs)

SPACEキーを押した時のメニュー表示はOVRMainMenu.csが行っており、OVRGUIを利用しています。(OVR/Scripts/OVRMainMenu.cs)

Yuichi Ishii,2014/2/8

Page 135: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点5GUIを追加したい(続き)

OVRMainMenu.csと同様に行ってもよいのですが、Oculus開発者スレッドでUnity標準のGUIクラスのような感じで使うことができる「VRGUIパッケージ」が公開されています。

ダウンロードするにはOculus Riftの開発者名でログインしてください。

Yuichi Ishii,2014/2/8

Page 136: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点5GUIを追加したい(続き)

NGUIを利用する方法があります。

How to use NGUI with the Oculus Rift

Yuichi Ishii,2014/2/8

Page 137: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点6Mac OS XでXBOX360コントローラを使うには?

Unity 4 Integration - OSX Gamepadでまとめられています。

以下に要点をまとめ書きます。

ここのドライバ(TATTIEBOGLE)をインストール

これでとりあえず使えるようになります。

参考:ゲームパッドの動作テスト用のアプリ「Joystick And Gamepad Tester」-強火で進めで紹介されているツールを使うとボタンの番号がわかります。

Yuichi Ishii,2014/2/8

Page 138: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点6Mac OS XでXBOX360コントローラを使うには?(続き)

1. Unity標準の"First Person Controller"をシーンに配置

2. "First Person Controller"の子のMain Cameraを削除

3. "First Person Controller"の子にOVRCameraControllerを追加

4. 「問題点1」の対処を行う

Yuichi Ishii,2014/2/8

Page 139: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

問題点6Mac OS XでXBOX360コントローラを使うには?(続き)

5. [Edit]->[ProjectSetting]->[Input setting]を開く

a. インスペクターのAxesの"Mouse X"と"Mouse Y"を複製

b. 複製した"Mouse X"のTypeを"Joystick Axis"にし、Axisを"3rd axis"にする

c. 複製した"Mouse Y"のTypeを"Joystick Axis"にし、Axisを"4th axis"にする

6. これでMac OS XでもXBOX360を使って移動ができます。

7. そのほかのボタンについては別途調整

Yuichi Ishii,2014/2/8

Page 140: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

課題アプリの作成ワークショップ形式

Yuichi Ishii,2014/2/8

Page 141: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

課題の説明課題はOculus Rift対応のアプリケーションを作成することです。

いくつかアプリケーション例を示しますので、その中からお好きなものを選んで作成してください。

Yuichi Ishii,2014/2/8

Page 142: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

課題の説明アプリケーション例1

Sample Assets(beta)をベースに作成する

Sandboxフォルダにあるものをベースに改造する

ステージ作成用の3Dモデルとキャラクターだけ使用する

その他

Yuichi Ishii,2014/2/8

Page 143: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

課題の説明アプリケーション例2

Asset Storeで公開されているステージ内をOculus Riftで動き回る

おすすめのパッケージを以下に示します。

【全部タダ!】無料で使える Unity Asset 50選 -3Dモデル編-

syyamalogさん

Yuichi Ishii,2014/2/8

Page 144: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

課題の説明アプリケーション例3

ミクさんと戯れたい!

MMD4Mecanimを使うとMikuMikuDance用のモデルデータおよびモーションデータ(PMX/PMDファイル)をUnityにコンバートすることができます。

詳しくは公式サイトやUnity仮面さんの動画をご覧ください。

参考:MMDのモデルデータhttp://www6.atwiki.jp/vpvpwiki/pages/13.html

Yuichi Ishii,2014/2/8

Page 145: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

課題の説明アプリケーション例4

オリジナルゲームの作成

次のスライドにアイディアだけ書いておきます。

煮るなり焼くなり好きにしてください。

(資料作りに追われてゲームを作れなかったなんて言えない・・・)

Yuichi Ishii,2014/2/8

Page 146: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

オリジナルゲーム案コンセプト・イメージ

Missile CommandとYs1のダルク・ファクト戦を足して2で割った感じ

目的

あなたは超高出力レーザー砲になり、降りそそぐ隕石をレーザー砲で撃ち落とします。

レーザーが隕石に当たると3秒間爆風が広がります。これに他の隕石が巻き込まれると高得点になります。

隕石が床に当たると床が消えます。消えた床には移動できません。自分が立っている床が消えるとゲームオーバーです。

Yuichi Ishii,2014/2/8

Page 147: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

オリジナルゲーム案移動方法(下記のいずれか)

なし(頭の向きのみ。照準があったら自動的にレーザーを発射)

前後左右。メインキャラクタの方向は正面のみ

前後+左右旋回。メインキャラの向きも変更

勝利条件隕石の衝突を避け一定数以上の隕石を撃ち落したら終了

プレイヤーは得点を競い合う

得点例

レーザーによる直接破壊:10点

爆風による破壊:100点、200点、400点、・・・、100×2個数-1

Yuichi Ishii,2014/2/8

Page 148: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

発表会

Yuichi Ishii,2014/2/8

Page 149: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

お疲れ様でした!スタッフのみなさんもお疲れ様でした!

Yuichi Ishii,2014/2/8 149

Page 150: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

参考:Oculus Riftのスクリプト

Yuichi Ishii,2014/2/8

Page 151: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

Oculus Riftのスクリプトこの資料は以下の情報を元に独自に書いています。

Oculus Rift ドキュメント(非公式翻訳)

Oculus Unity Integration Guide v0.2.5c - Updated: December 3, 2013

誤字脱字、問題点がありましたら私にご連絡ください。

Yuichi Ishii,2014/2/8

Page 152: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

主に使用するスクリプトOVR/Scriptsに格納されている。

MonoBehaviourからの派生クラスOVRComponent

OVRCamera

OVRCameraController

OVRPlayerController

OVRDevice

OVRGamepadController

OVRMainMenu

Yuichi Ishii,2014/2/8

Page 153: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

主に使用するスクリプトヘルパー・クラス

OVRCrosshair

OVRGUI

OVRMagCalibration

OVRMessenger

OVRPresetManager

OVRUtils

Yuichi Ishii,2014/2/8

Page 154: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

MonoBehaviourからの派生クラス

Yuichi Ishii,2014/2/8

Page 155: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRComponentOVRクラスのベースクラスとなります。

Awake(), Start(), Update(), LateUpdate()メソッドにvirtualキーワードがついています。

Yuichi Ishii,2014/2/8

Page 156: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraUnity カメラクラスにレンダリングするために使用されます。

このコンポーネントは Rift トラッカーを読み取り、カメラ位置および回転をします。

Yuichi Ishii,2014/2/8

Page 157: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraController低レベルのカメラ操作を容易にするコンポーネントです。

Unity およびカメラのメインのインタフェースとなります。

Oculus Riftによるカメラ制御はこのコンポーネントを通じて行うようにしてください。

Yuichi Ishii,2014/2/8

Page 158: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerOVRCameraControllerのプロパティ一覧

Yuichi Ishii,2014/2/8

Page 159: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerVertical FOVこのフィールドには、カメラの視野(FOV)の垂直方向のフィールドを設定します(単位は度数)。

FOVはSDKで最適値を計算しますが、必要に応じてこの値を上書きすることができます。

FOVについては「よく分かるかもしれないOculus Riftについて(2) -Oculus Rift向けのポストプロセスの部分について」を参照のこと。

Yuichi Ishii,2014/2/8

Page 160: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerIPD

瞳孔間距離(Inter-Pupillary Distance)をメール単位で指定します。

デフォルトでは一般的な平均値が設定されています。

必要に応じて上書きすることができます。

Yuichi Ishii,2014/2/8

Page 161: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerCamera Root Position

アタッチされているオブジェクトに対する相対位置を設定します。

OVRPlayerController(プレハブ) では、Capsule Colliderのデフォルトの高さ2(m)の中心点である1.0(m)にセットされています。

Yuichi Ishii,2014/2/8

Page 162: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerNeck Position

アタッチされているオブジェクトに対する首の位置を指定します。

Yuichi Ishii,2014/2/8

Page 163: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerEye Center Position

このフィールドは頭部のモデリングにおいて目の中心が配置される場所をセットするのに使用します。

左右の目を分離するための瞳孔間距離(IPD)は自動的にセットされますが、この値は Set/GetIPD関数を通してセットすることも出来ます。

Yuichi Ishii,2014/2/8

Page 164: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerUse Player Eye Height

このフィールドは Oculus Configツールから実際のプレイヤーの目の高さをセットするために使用します。

このパラメータがONの時、以下の3 つの合計が Player Eye Heightと一致します。

Camera Root Position

Neck Position

Eye Center Position

このパラメータがONの時、 "Set Neck Position" を通して首の位置の書き換えは許可されません。

実装例はOVRCameraController.csスクリプトを確認して下さい。

Yuichi Ishii,2014/2/8

Page 165: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerFollow Orientation

これがセットされたとき、カメラは常にコンポーネントのrotationを追跡して、ヘッドトラッキングはこれに対するオフセットとなります。

車またはボディなどのオブジェクトにカメラを載せるときに便利です。

Yuichi Ishii,2014/2/8

Page 166: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerTracker Rotates Y

これがONのとき、カメラの実際のY軸回転に元づいて、それがアタッチされている親のTransformのY軸rotationの値をセットします。

これを拡張してX およびZ軸の値も対応させることができます。

カメラの実際の向きに元づいて、他のコンポーネントまたは他のゲームオブジェクトへフィードバックを反映させるのに便利です。

現時点ではヘッドトラッキングを実現してコントローラのForward 方向に反映させる際に、OVRPlayerControllerによって使用されます。

このコンポーネントの親 TransformをFollow Orientation にセットしたうえで Tracker Rotates Y を true とすることで方向(orientation)に対してフィードバックを反映します。

Yuichi Ishii,2014/2/8

Page 167: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerEnable Orientation

OFFにするとトラッカーの方向に応じたカメラの方向の更新を停止します。

Yuichi Ishii,2014/2/8

Page 168: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerPrediction On

オンのとき、トラッカーの予測(prediction)補正がセットされます。

予測(prediction)時間の大きさはOVRCameraController 配下にあるOVRDeviceコンポーネントを通して調整できます。

Yuichi Ishii,2014/2/8

Page 169: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerCall in Pre-Renderオンのとき、OVRCamera.csスクリプトの中でOnPreRender関数でレンダリングが行われます。

トラッカーをレンダリングに近づけるという効果があります(すなわち結果的に実際の待ち時間を低下させる) 。

しかし、この設定による発生する問題については「既知の問題」を参照して下さい。

Yuichi Ishii,2014/2/8

Page 170: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerWire-Frame Mode

セットするとシーンのレンダリングがワイヤフレームとなります。

Yuichi Ishii,2014/2/8

Page 171: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerLens Correction

セットすると、レンズ補正のパスが有効となります。

Yuichi Ishii,2014/2/8

Page 172: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerChromatic

セットすると、色収差(Chromatic Aberration)を修正するシェーダが使用されます。

色収差はレンズにより引き起こされ、画像の色が放射状に広がり、レンダリングされた画像の特定の場所で縞模様の色(Color Fringe)が発生する原因となります。

Yuichi Ishii,2014/2/8

Page 173: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCameraControllerBackground Color

OVRCameraControllerプレハブにアタッチされた両方のカメラの背景色を設定します。

Near Clip Plane両方のカメラのニアクリップ平面(カメラの描画を行う、カメラから最も近い点)の値をセットします。

Far Clip Plane両方のカメラのファークリップ平面(カメラの描画を行う、カメラから最も遠い点)の値をセットします。

Yuichi Ishii,2014/2/8

Page 174: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRPlayerControllerOVRPlayerController によりOculus Riftを使用した基本的なFirst Person Controllerを実装します。このスクリプトはOVRCameraController がアタッチされた OVRPlayerControllerプレハブにアタッチされています。

OVRPlayerControllerスクリプトは、Character Controllerを自動的に追加します。したがって、Sceneに適切なCollisionを設定することで相互作用します。

OVRPlayerControllerプレハブはForwardDirectionと呼ばれる空のゲームオブジェクトがアタッチされています。このゲームのオブジェクトは、Motor Controlの方向に基づいた行列が含まれています。このゲームオブジェクトは主にプレイヤーのモデルを格納します。

Yuichi Ishii,2014/2/8

Page 175: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRPlayerControllerOVRPlayerControllerのプロパティ一覧

Yuichi Ishii,2014/2/8

Page 176: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRDeviceOVRDevice は Oculus Rift ハードウェアに対する基本的なインタフェースです。全てのエクスポートされた C++ 関数のラッパー関数に加えて、格納されたOculus 変数を使用してカメラのビヘイビアをセットアップするヘルパー関数を含んでいます。

このコンポーネントはOVRCameraControllerプレハブに追加されてます。任意のゲームオブジェクトにアタッチできます。しかし宣言は一回のみとすべきであり、理由として特定のOculus Riftの値をUnityインスペクタで調整できるパブリック変数が含まれるためです。

Yuichi Ishii,2014/2/8

Page 177: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRDeviceOVRDeviceのプロパティ一覧

Yuichi Ishii,2014/2/8

Page 178: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRDevicePrediction Time

このフィールドにより、トラッカーがプレイヤーの頭部の位置がある場所を予想する時間をどれぐらい先にするかを調整できます。入力からビデオ遅延(Latency)をカバーするのに有力です。デフォルトの値は50ミリ秒ですが、適切に調整できます。

Yuichi Ishii,2014/2/8

Page 179: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRDeviceReset Tracker On Load

この値のデフォルトはOnです。

Onの時、Application.LoadLevelでシーンを移動するとRiftの向きがリセットされます。向きをキープしたい場合には、このパラメータをOffにします。

プログラムで任意のタイミングでリセットするにはOVRDevice.ResetOrientation(0); // デバイス番号

と記述します。

Yuichi Ishii,2014/2/8

Page 180: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRGamepadControllerOVRGamepadController はゲームパッドコントローラに対するインタフェースクラスです。

Windows マシン上で、ゲームパッドはXInput互換である必要があります。

現在ネイティブXInput互換のゲームパッドはMacOSでサポートされていません。ゲームパッドの入力には従前のUnity Input の手法を使用してください。

Yuichi Ishii,2014/2/8

Page 181: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRMainMenuOVRMainMenuは異なるシーンのロードを制御するために使用します。さらにユーザが様々なOculus Rift 設定を修正できるメニューをレンダリングして、これらの設定を後で再度呼び出しできるように格納します。

アクセスしたいシーンを幾つも加えることが出来ます。

現在OVRMainMenuは利便性を考えてOVRPlayerControllerプレハブにアタッチされてますが、適切に取り外して一般的なUnity ロジックで使用されている別のゲームオブジェクトに追加することもできます。

Yuichi Ishii,2014/2/8

Page 182: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

ヘルパー・クラス

Yuichi Ishii,2014/2/8

Page 183: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRCrosshairOVRCrosshair ステレオスコープを通した照準を追加するコンポーネントです。

照準は現在ビューがレンダリングされた後に描画されるため、歪み補正は全くありません。

Yuichi Ishii,2014/2/8

Page 184: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRGUIOVRGUI は2D または 3D で基本的なテキストのレンダリングを隠蔽するヘルパー・クラスです。

コードの2Dバージョンでは廃止予定であり、3D 要素のレンダリングに移行予定です(現在OVRMainMenuで使用されます。)

VRGUIパッケージを用いるとより使いやすくなります。

Yuichi Ishii,2014/2/8

Page 185: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRMagCalibrationOVRMagCalibrationは、ヨー・ドリフト(Yaw-drif)補正のために磁気センサーを校正するヘルパー・クラスです。

Yuichi Ishii,2014/2/8

Page 186: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRMessengerOVRMessengerは直接クラス間で高度なメッセージのためのクラスです。

これはUnity Community WikiのGeneral Conceptsにある"Advanced CSharp Messenger"のコピーです。

訳注:Scripts/Generalの「Messaging Systems」の中にありました。

Yuichi Ishii,2014/2/8

Page 187: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRPresetManagerOVRPresetManagerは、UnityのPlayerPrefsクラスを使用して変数の値を保存、再読み込みを可能にするためのヘルパークラスです。

現在OVRMainMenuコンポーネントによって使用されています。

Yuichi Ishii,2014/2/8

Page 188: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

OVRUtilsOVRUtilsは、再利用可能なstatic関数の集まりです。

Yuichi Ishii,2014/2/8

Page 189: 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ

本資料に関する問い合わせmail to: [email protected]

Facebook: https://www.facebook.com/yuichi141

HP: 個人ブログ:Zabaglioneのさもありなんhttp://zabaglione.info/

会社HP:(株)シーディングソフテックhttp://seedingsoftech.jp/

Yuichi Ishii,2014/2/8