More Related Content
[BGP Meeting]本気のピアリング-真剣に考えても深刻になるな- オンプレ脳の人ができるだけ勉強せずに「 k8s上でシステムを稼働まで持ってく(いきたい)」話 Cocos2d-x(JS) ハンズオン #12「Cocos2d-xとSpine」 Cuda fortranの利便性を高めるfortran言語の機能 What's hot (20)
博士論文 中間報告会 Interim presentation of doctor thesis 20200203 標本レコード修正のためのOpen refine(ド基礎編) 5分で分かるBig Switch Networks 続・PowerApps に Power BI を埋め込む よろしい、ならば自動化だっ! ~自動家の自動化哲学~ #AsianAA C#次世代非同期処理概観 - Task vs Reactive Extensions ActionCableのクライアントはRails外から利用できるのか ある工場の Redmine 2021 ( Redmine of one plant 2021 ) iOSでライブラリを提供する際に気をつけたいこと Similar to First vr sdk_introduction (20)
20200516 selenium-meetup-winappdriver Docker for Windows & Web Apps for Containers 実践活用技法 はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで- 静的解析ツール Klocworkによる 機能安全規格への対応 Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06 C#版人狼知能エージェントの作り方~Visual Studio編~(AIWolf.NET 1.0.6版) WEC2013 システム開発ステップガイド インストール編 140417 0.04 Mixed Reality Toolkit V2開発環境構築(2020/01版) App controllerとwindows azure packで作る大規模プライベートクラウド Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】 Windows 8 Developers カンファレンス <初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013 Devcontainerのススメ(1)-Devcontainerとはどういう技術?- Devcontainerのススメ(1)-Devcontainerとはどういう技術?- LibreOfficeをWindows上でビルドする BOSH-lite で 1VM Cloud Foundry First vr sdk_introduction
- 17. 1. Unityプロジェクト作成
17
STEP 5. ユーザの操作画面となるScreen Space上に
ボタンを配置するための設定
②Canvas>Render Modeで
“Screen Space - Overlay”を選択
①“ConnetionCheck”
を選択する
- 19. 1. Unityプロジェクト作成
19
STEP 7. 4つボタンを作成し,
ボタンとボタンのテキストに名前をつける.
①ボタン作成 Hierarchyウィンドウ>Create>UI>Button
ボタンの名前は“Reset”, “Recenter”,
“TargetBtn”, “NonTargetBtn”
- 25. 2. FirstVR(FVR)とオブジェクト(Cube)を接続
25
手のオブジェクト(Cube)
C# Script “TestFVR”
hand: 手の動きをバーチャルで
表現するゲームオブジェクト
fvr : FVRConnectionのインスタンスFVRConnection
(FVRゲームオブジ
ェクトにアタッチさ
れている)
FIRST
VR gesture : FVRGestureのインスタンス
STEP 1. FirstVR(FVR)とバーチャルなオブジェクト(Cube)を
どのように接続するか理解しましょう
プレファブ(FVR)とデー
タをやりとして,
FirstVRとオブジェクト
(Cube)を接続します
データのやりとり
- 38. 2. FirstVR(FVR)とオブジェクト(Cube)を接続
38
STEP 1. ジェスチャ認識のスクリプト
ジェスチャのキャリブレーション時に使う
秒数を扱う変数たち
ジェスチャを登録する際に使うボタンを扱
う変数たち
ジェスチャをチェックするためのテキスト
ボタンやテキストなどのUIを使うので忘れずに
ターゲットジェスチャを登録す
る関数
ノンターゲットジェスチャを
登録する関数
ジェスチャの学習器
をリセットする関数
ジェスチャを登録す
るときに呼ばれるコ
ルーチン
Editor's Notes
- #2: これからFirstVRのSDKの導入について説明させていただくインターンの細野です。
よろしくお願いします。
- #3: まずはSDKのダウンロードからお願いします。
- #4: 上のリンクにいってもらってまずSDKをダウンロードしてください。
- #5: 開発者登録をしていない方はまず登録フォームを埋めていただいて登録をお願いします。
- #6: そしたら左側のタブからダウンロードをお願いします。
ちなみにみなさんダウンロードできていますか?
- #7: 次にダウンロードしてきたフォルダを開いて中に以下のフォルダが入っているかどうかチェックをお願いします。
- #8: 一応ここまでをとりあえず動画で振り返ってみます。
ここまではダウンロードだけなのでもしどこからダウンロードするかわからなかったら教えてください。
- #9: SDKをダウンロードしたらまずFirstVRを使うアプリを作成する上で必要になる機能について説明していきます。
FirstVRでコンテンツを作成する際にはリセンターと腕の回転の同期、ジェスチャー認識の以上の3つの機能が重要になってきます。
1つ目としてはまずリセンターの機能が必要になってきます。リセンターはOculusGoとかでも正面を直したりコントローラーの向きをちょこちょこ設定し直したりするやつと同じでFirstVRも使っているうちに向きが若干ずれるのでセンタリングをやり直してあげる必要があります。
2つ目のとしては腕の回転の同期です。手を直接表示するVRコンテンツの様なものを作る際には特にこの機能は重要になってきます。
3つ目はジェスチャー認識です。ジェスチャー認識に関してはこのデバイスのキモであり、実装がちょっと難しいのでこのあとで出来るだけ丁寧に説明します。
- #10: そしたら具体的に開発する際につかっていくクラスの説明をします。
今回はこのマークのついているクラスをメインに使っていくのでこれからの話をするなかでそれを意識して話を聞いてもらえるとありがたいです。
このマークがついているクラスを使って腕や手のジェスチャや回転を取得します。
- #11: とりあえずここまででわからないことはありますか?
- #12: ここから実際にFirstVRを使ったアプリケーション作成の話に入っていきます。
ここでは実際に手のジェスチャと腕とFirstVRの回転の同期を埋め込んだサンプルを作っていきます。
- #13: ではまず初めにFVRSDKのプロジェクトを開いてください。
- #14: そしたら自分で作ったシーンやスクリプトを入れおくためのフォルダを作成してください。
ここではAssetsフォルダの下にScenesフォルダとScriptsフォルダを作成しています。
- #15: フォルダの作成が終わったら、Scenesフォルダの中に適当な名前でシーンを作成してください。
- #16: そしたらFVRフォルダの中にあるPrefabフォルダの中のConnnectionCheckPrefabとFVRContairnerプレファブをシーンに配置してください。
ConnnectionCheckPrefabは繋がっているかどうかを確認する用でFVRContainerはFirstVRと直接データをやり取りする部分になっています。
- #17: プレファブの配置が終わったら、手の回転の動きを同期させるオブジェクトを配置します。
手のモデルの代わりにここではCubeを使います。
なのでヒエラルキータブのCreateからCubeを作成してください。
- #18: そしたら次にこれからジェスチャを登録したり、リセンターしたりするためのボタンを配置するために配置したコネクションチェックというプレファブのCanvasという部分のRenderModeをScreen-Space-Overlayに変えてください。
これをしないとあとあとボタンを配置したときにボタンが押せなくなってしまいます。
- #19: 変えたらもう一手間必要で申し訳ないのですが、繋がっているかどうかをみて確かめるためのオブジェクトであるVisualの位置を調整してゲームタブにしっかり表示できているか確認してください。
とりあえずインスペクタからz軸の位置を0にしてもらってから調整するとやりやすいと思います。
- #20: 次にリセンターとジェスチャ登録に使うためのボタンが必要なので計4個のボタンを配置してください。
Cubeの時と同様にヒエラルキータブから作成できます。
で配置が終わったらゲームビューのところを見ながらボタンが被らないように位置を整えてください。
ちなみにこのボタンの役割としてはリセンターを行うためのボタンとターゲットジェスチャーを登録するボタン、ノンターゲットジェスチャを登録するボタン、ジェスチャのデータをリセットするボタンになっています。
- #21: そしたら先ほど配置したボタンがしっかり機能するために必要なEventSystemをヒエラルキータブに追加してください。
これがないとビルドしてもボタンを押すことができません。
- #22: 次にコードを書いていくための準備をします。
なので初めに作ったScriptsフォルダの中にC#ファイルを作ってください。
- #23: ここまでを動画で一度振り返ってみます。
- #25: ここからはFirstVRを扱うためのスクリプトを書いていきます。
- #26: まずスクリプトを書きはじめる前にどうやってFirstVRのデータを受け渡すかについて軽く説明をします。
仕組みとしては先ほど配置したFVRContainerの子オブジェクトであるFVRDeviceオブジェクトのさらに子オブジェクトのFVRゲームオブジェクトにあタッチされているFVRConnectionというクラスの持っている変数や関数を利用してデータを受け取ります。
- #27: ではとりあえずさっき作成しておいたスクリプトを腕を同期させるゲームオブジェクトにアタッチします。
やり方としてはヒエラルキータブのCubeをクリックしてインスペクターのアドコンポーネントをクリックすることで行けると思います。
- #28: ようやくですがここからスクリプトを書いていくので作成したC#のファイルを開いてください。
- #29: ここからは書き終わったコードを見ながら話していきたいと思います。
まずは手の動きと手のゲームオブジェクトとFirstVRの動きを同期させるためのプログラムとリセンターの関数についてみていこうと思います。
まずはFVRConnectionと手のゲームオブジェクト(ここではCube)を扱うためのインスタンスを作成してください。
作成が終わったら次はリセンターの関数を作ってください。
ここの赤い枠線の中です。
あとでUnityEditorから紐付けを行うのでpublicにするのを忘れずにお願いします。
- #30: そしたらUnityに戻ってもらってCubeのインスペクタからAdd Componentをしてもらって先ほど作ったスクリプトをアタッチしてください。
- #31: アタッチが終わったら次はアタッチされたスクリプトの変数の紐付けを行なっていきます。
まずはFVRConnectionの紐付けを行います。
- #32: 次にFirstVRと回転を同期させるゲームオブジェクトを紐付けます。
- #33: 今度はリセンター用に作成したボタンにリセンターの関数を紐付けます。
- #34: この時点で書き出せばリセンターと回転の同期ができる状態ができました。
- #35: この時点で書き出せばリセンターと回転の同期ができる状態ができました。
- #39: ジェスチャの認識の際はまずボタンとチェック用のテキストを使うためにUnityEngine.UIをインポートしてください。
そしたら次にジェスチャを登録する際に使うFVRGestureの変数を用意してあげて、ボタンやチェック用のテキストも用意します。