Más contenido relacionado La actualidad más candente (20) Similar a 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ (20) 第1回 【初心者向け】Unity+Oculus Riftで次世代の3Dゲームを作って感じるワークショップ1. 第1回
Unity + Oculus Rift
次世代の3Dゲームを作って感じるワークショップ
2014/2/8 Yuichi Ishii
Yuichi Ishii,2014/2/8
1
6. Unityとは
Unity はゲーム開発のエコシステム。インタラクティブな 3D コンテ
ンツ作成のための直感的なツールとサクサク作れるワークフローが、
パワフルなレンダリングエンジンと完全に統合された環境で開発が
出来ます。
手軽なマルチプラットフォームパブリッシング、高品質なアセット
が幾千も揃ったアセットストア、困ったときにノウハウを共有して
くれる巨大なコミュニティがあなたを支えます。
Unityの民主的なエコシステムは、美しく手の込んだゲームを作り出
す時に、多くのデベロッパーやスタジオが直面する障壁を突き崩す
手段となるでしょう。彼らは、人々が夢中になって喜ぶゲームをあ
らゆるプラットフォームで作るために、Unity を活用しているのです。
引用:http://japan.unity3d.com/unity/
Yuichi Ishii,2014/2/8
7. Unityとは
Unity = 「Editor」+「Game Engine」
初登場は2005年のアップル主催 Worldwide Developers
Conference
バージョン3.xから非常に多くのプラットフォームで動作す
るアプリケーションの作成が可能になった
バージョン4.0でMecanimと呼ばれる3Dモデルのアニメー
ション制御エンジンを内蔵し、4.3から2Dスプライトのサ
ポートなど新機能を次々と実装し続けている。
Yuichi Ishii,2014/2/8
18. 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位を取った
引用:http://yaseino.hatenablog.com/entry/2014/01/09/203922
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
20. Oculus Riftのハード仕様(DK1)
トラッキング仕様
・1000 Hz サンプリングレート
・3 軸回転儀 (gyroscope) による角速度検知
・3 軸磁力計 (magnetometer) による磁場検知
・3 軸加速度計 (accelerometer) による重力を含む加速度検知
・USB の HID として動作
・USB ケーブルが接続されていれば電源投入関係なくセンサー情報に
はアクセス可能
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
22. Oculus Riftのソフト仕様(DK1)
Windows, Mac, Linux用のSDKを配布(言語はC++)
Unity, UDKへの統合キットを配布
SDKに含まれているソースコード及びバイナリは
使用、変更、再配布が可能
(正確にはSDKやライブラリなどに含まれる
LICENSE.txtファイルやソースコードのコメント
を参照のこと)
Yuichi Ishii,2014/2/8
23. Oculus Riftの長所
110 度(対角) / 90 度(水平)と視野角(FOV)が広い
(ソニーHMZ-Tシリーズの2倍)
頭の向きをトラッキングでき、6 段階の被写界深度
(DOF)をゲームに使えるほど低遅延で実現
他のHMDと同じく両目の視差を利用した裸眼立体視
3D表示
59800円のHMZ-T1/T2に対して開発キットで300ドル
という低価格(Developer Kit1の値段)
引用:http://yaseino.hatenablog.com/entry/2014/01/09/203922
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
28. 相性が良さそうな入力装置
XInput互換の入力装置
Windows限定
XBOX 360 Wireless controller for Windows推奨
Mac OS Xは「Unity Hacks: Dual sticks」を使用すると良
いらしいというUnityの開発者スレッドを発見(未確認)
http://forum.unity3d.com/threads/200074-BetterOculus-Rift-FPS-Controller-(OSX)
あるいはこのスライドの後半で紹介している「問題点
6」で解説している方法があります(確認済み)
Yuichi Ishii,2014/2/8
32. 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
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
34. Oculus Riftの実装例
Lukalus Live!
Unity で実装されたルカさんがダンスするのを観
賞するデモ。Windows に対応。@yuujii 作
Lukalusでルカと暮らす - develog.me
ルカライブ!(Lukalus Live! 0.1) - [ Bowl Roll ]
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
35. Oculus Riftの実装例
Macross + Oculus Rift
Unity で実装されたバルキリーシミュレータ。
WindowsとMac OS X版。
SolidM Macross + Oculus Rift
SolidM Macross + Oculus Rift その5(最終版)
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
36. 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 ]
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
37. Oculus Riftの実装例
Ocean Rift
Unity で実装された海底体感のデモ。Windows 用。
RiftEnabled™ – Ocean Rift
Ocean Rift (featuring sharks) | Works in Progress |
Oculus Rift Developer Forums
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
38. Oculus Riftの実装例
Oculus Street View
vr.js と HTML 5 で実装された Google Street View
の Oculus Rift 対応版。クロスプラットフォーム。
RiftEnabled™ – Oculus Street View
Oculus Google Street Viewer
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
40. Oculus Riftの実装例
Parrot Coaster VR
Unity で実装されたローラーコースターのデモ。
Windows 用。
RiftEnabled™ – ParrotCoaster WIP
Oculus Rift - Parrot Coaster VR - Weeeeee! 1080p - YouTube
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
41. 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
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
43. Oculus Riftの実装例
Titan of Space
Unity で実装された銀河系を宇宙船から観賞する
デモ。Windows 用と Mac OS X 版がある。
RiftEnabled™ – Titans of Space
Titans of Space
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
45. Oculus Riftの実装例
VR Cinema 3D
Unity で実装された映画館を再現したデモ。好き
な動画を VR 映画館で再生できる。Windows 用。
RiftEnabled™ – VR Cinema 3D
vrcinema3D | Oculus-ready Games and Demos |
Oculus Rift Developer Forums
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
47. Oculus Riftの実装例
AngryBots + Oculus Rift + Razer Hydra(自作)
Unity付属のAngryBotsをFPS視点にしてOculus
RiftとRazer Hydra対応にしました。Windows版の
み。
Razer Hydra対応は不完全です。
WebPlayer版(単にFPS化したもの)
ダウンロード版
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
48. Oculus Riftの実装例
VR SKI JUMP
SKIのJUMPを体験できる。Windows版とMac版がある。
作者の@oukaichimon曰く、「妥当RiftCoasterを目指し、
Oculus初体験者向けのソフトを作りました。」との
ことです。是非チャレンジしてみてください。
VR SKI JUMP
トップページには沢山のアプリがります。
引用:https://gist.github.com/japboy/5545565
Yuichi Ishii,2014/2/8
78. Oculus Riftとの連携1
OVR
OVR は Oculus Unity 統合の最上位
のフォルダです。
Plugins
Oculus Riftとの通信するためのネイ
ティブライブラリです
Tuscany
Oculus Riftのdemoアセット
Yuichi Ishii,2014/2/8
80. Oculus Riftとの連携1
Prefabs
Oculus Rift を Unity シーンに繋げるため
のプレハブが含まれています。
Resources
いくつかの OVR スクリプトにより必要
とされ、インスタンス化されるプレハ
ブおよび別のオブジェクト(例えば磁気
コンパスのオブジェクト)が含まれます。
Yuichi Ishii,2014/2/8
81. Oculus Riftとの連携1
Scripts
Oculut Rift と Unity コンポーネントを結ぶ
C# ファイルが含まれます。これら多くの
スクリプトは Prefabs フォルダと連携しま
す。
Shaders
Oculus Rift用に調整されたGUI Shaderを含
みます。
Textures
いくつかのスクリプトコンポーネントが
必要とする画像アセットが含まれます。
Yuichi Ishii,2014/2/8
95. Oculus Riftとの連携1
キーボードの制御1
キー名称
W または 上矢印
使用方法
プレイヤーを前方に移動
A または左矢印
プレイヤーを左に移動
S または下矢印
プレイヤーを後ろに移動
D または右矢印
プレイヤーを右に移動
左 Shift
Q および E
押し続けるとプレイヤーが走る
左右にプレイヤーが回転
引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html
Yuichi Ishii,2014/2/8
98. Oculus Riftとの連携1
キーボードの制御4
キー名称
使用方法
1 および 2 歪み定数 1 (K1) の減算/加算
3 および 4 歪み定数 2 (K2) の減算/加算
5 および 6 プレイヤーの高さの減算/加算(メートル単位)の減算/加算
7 および 8 プレイヤーの移動速度係数の減算/加算
9 および 0 プレイヤーの回転速度係数の減算/加算
引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html
Yuichi Ishii,2014/2/8
99. Oculus Riftとの連携1
キーボードの制御5
キー名称
使用方法
Tab
Tabを押し続けて F3 -F5を押下することで現在のコンフィグのス
ナップショットを保存
F2
デフォルトのコンフィグにリセット
F3 F4 F5 保存されたコンフィグのスナップショットを再呼出
F6
もし磁気参照の向きがセットされていれば磁気コンパスのオン/
オフ切替
引用: http://gamesonytablet.blogspot.jp/2013/08/oculus-rift.html
Yuichi Ishii,2014/2/8
127. 問題点1
実例
11. Layoutを「2 by 3」に変更
12. Playボタンを押して実行
13. HierarchyのPlayerを選択
14. InspectorのPositionの値を変更&確認
• カメラが追随することを確認
15. InspectorのRotationの値を変更&確認
• カメラが追随することを確認
Yuichi Ishii,2014/2/8
137. 問題点6
Mac OS XでXBOX360コントローラを使うには?
Unity 4 Integration - OSX Gamepadでまとめられていま
す。
以下に要点をまとめ書きます。
ここのドライバ(TATTIEBOGLE)をインストール
これでとりあえず使えるようになります。
参考:ゲームパッドの動作テスト用のアプリ
「Joystick And Gamepad Tester」- 強火で進めで紹介
されているツールを使うとボタンの番号がわかります。
Yuichi Ishii,2014/2/8
138. 問題点6
Mac 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
139. 問題点6
Mac 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.
7.
これでMac OS XでもXBOX360を使って移動ができます。
そのほかのボタンについては別途調整
Yuichi Ishii,2014/2/8
164. OVRCameraController
Use 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
174. OVRPlayerController
OVRPlayerController によりOculus Riftを使用した基本的な
First Person Controllerを実装します。このスクリプトは
OVRCameraController がアタッチされた OVRPlayerController
プレハブにアタッチされています。
OVRPlayerControllerスクリプトは、Character Controllerを自動
的に追加します。したがって、Sceneに適切なCollisionを設定
することで相互作用します。
OVRPlayerControllerプレハブはForwardDirectionと呼ばれる空
のゲームオブジェクトがアタッチされています。このゲーム
のオブジェクトは、Motor Controlの方向に基づいた行列が含
まれています。このゲームオブジェクトは主にプレイヤーの
モデルを格納します。
Yuichi Ishii,2014/2/8
176. OVRDevice
OVRDevice は Oculus Rift ハードウェアに対する基本
的なインタフェースです。全てのエクスポートされ
た C++ 関数のラッパー関数に加えて、格納された
Oculus 変数を使用してカメラのビヘイビアをセット
アップするヘルパー関数を含んでいます。
このコンポーネントはOVRCameraControllerプレハブ
に追加されてます。任意のゲームオブジェクトにア
タッチできます。しかし宣言は一回のみとすべきで
あり、理由として特定のOculus Riftの値をUnityインス
ペクタで調整できるパブリック変数が含まれるため
です。
Yuichi Ishii,2014/2/8
179. OVRDevice
Reset Tracker On Load
この値のデフォルトはOnです。
Onの時、Application.LoadLevelでシーンを移動するとRiftの向きがリ
セットされます。向きをキープしたい場合には、このパラメータを
Offにします。
プログラムで任意のタイミングでリセットするには
OVRDevice.ResetOrientation(0); // デバイス番号
と記述します。
Yuichi Ishii,2014/2/8
184. OVRGUI
OVRGUI は2D または 3D で基本的なテキストの
レンダリングを隠蔽するヘルパー・クラスです。
コードの2Dバージョンでは廃止予定であり、3D
要素のレンダリングに移行予定です(現在
OVRMainMenuで使用されます。)
VRGUIパッケージを用いるとより使いやすくなり
ます。
Yuichi Ishii,2014/2/8