Submit Search
Upload
SteamVR Plugin 2.0 にアップデートした話
•
1 like
•
2,600 views
S
shohashimoto4
Follow
SteamVR Plugin 2.0 にアップデートした話です。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 53
Download now
Download to read offline
Recommended
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
torisoup
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
Game Tools & Middleware Forum
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編
Unity Technologies Japan K.K.
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
Hironori Washizaki
IL2CPPに関する軽い話
IL2CPPに関する軽い話
Wooram Yang
Imprementation of realtime_networkgame
Imprementation of realtime_networkgame
Satoshi Yamafuji
UniRx完全に理解した
UniRx完全に理解した
torisoup
Recommended
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
torisoup
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
Game Tools & Middleware Forum
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
【Unity道場スペシャル 2017京都】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編
Unity Technologies Japan K.K.
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
Hironori Washizaki
IL2CPPに関する軽い話
IL2CPPに関する軽い話
Wooram Yang
Imprementation of realtime_networkgame
Imprementation of realtime_networkgame
Satoshi Yamafuji
UniRx完全に理解した
UniRx完全に理解した
torisoup
UniTask入門
UniTask入門
torisoup
Machinationの紹介
Machinationの紹介
Kazuhisa Minato
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
Mikito Yoshiya
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
光晶 上原
ゲーム向けな美味しい乱数を生成する(再アップ版)
ゲーム向けな美味しい乱数を生成する(再アップ版)
ai BlogOnly
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
UnityTechnologiesJapan002
インタフェース完全に理解した
インタフェース完全に理解した
torisoup
コールバックと戦う話
コールバックと戦う話
torisoup
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
SEGADevTech
TDD のこころ
TDD のこころ
Takuto Wada
SPAと覚悟
SPAと覚悟
Teppei Sato
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
Sugimoto Chizuru
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
UnityTechnologiesJapan002
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
torisoup
ゲーム開発とデザインパターン
ゲーム開発とデザインパターン
Takashi Komada
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
torisoup
情報共有は、なぜGoogle Docsじゃなく、 Confluenceなのか。
情報共有は、なぜGoogle Docsじゃなく、 Confluenceなのか。
Narichika Kajihara
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~
dena_genom
More Related Content
What's hot
UniTask入門
UniTask入門
torisoup
Machinationの紹介
Machinationの紹介
Kazuhisa Minato
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
Mikito Yoshiya
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
光晶 上原
ゲーム向けな美味しい乱数を生成する(再アップ版)
ゲーム向けな美味しい乱数を生成する(再アップ版)
ai BlogOnly
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
UnityTechnologiesJapan002
インタフェース完全に理解した
インタフェース完全に理解した
torisoup
コールバックと戦う話
コールバックと戦う話
torisoup
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
SEGADevTech
TDD のこころ
TDD のこころ
Takuto Wada
SPAと覚悟
SPAと覚悟
Teppei Sato
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
Sugimoto Chizuru
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
UnityTechnologiesJapan002
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
torisoup
ゲーム開発とデザインパターン
ゲーム開発とデザインパターン
Takashi Komada
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
torisoup
情報共有は、なぜGoogle Docsじゃなく、 Confluenceなのか。
情報共有は、なぜGoogle Docsじゃなく、 Confluenceなのか。
Narichika Kajihara
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~
dena_genom
What's hot
(20)
UniTask入門
UniTask入門
Machinationの紹介
Machinationの紹介
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
ゲーム向けな美味しい乱数を生成する(再アップ版)
ゲーム向けな美味しい乱数を生成する(再アップ版)
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
【Unite Tokyo 2019】今すぐ現場で覚えておきたい最適化技法 ~「ゲシュタルト・オーディン」開発における最適化事例~
インタフェース完全に理解した
インタフェース完全に理解した
コールバックと戦う話
コールバックと戦う話
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
TDD のこころ
TDD のこころ
SPAと覚悟
SPAと覚悟
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
Riderはいいぞ!
Riderはいいぞ!
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
ゲーム開発とデザインパターン
ゲーム開発とデザインパターン
UniRxでMV(R)Pパターンをやってみた
UniRxでMV(R)Pパターンをやってみた
情報共有は、なぜGoogle Docsじゃなく、 Confluenceなのか。
情報共有は、なぜGoogle Docsじゃなく、 Confluenceなのか。
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~
SteamVR Plugin 2.0 にアップデートした話
1.
SteamVR Plugin 2.0
に アップデートした話 クラスター株式会社 橋本
2.
⾃⼰紹介 • Twitter: @Miya04_NeT •
Unityエンジニア • 主にUI/UXの実装など を担当 • 趣味でiOSアプリの開発 をやっています
3.
環境 Unity 2018.3.6f1 アップデート前のバージョン v1.2.3 アップデート後のバージョン v2.2.0
4.
アップデートを断念してきた過去 過去2回ほど軽い気持ちでアップデートしようと して失敗してきました 1回⽬は普通にメジャーアップデート⼊ったっ ぽいからアップデートしてみるか〜というノ リで 2回⽬はOculus Touchのメニューの⼊⼒が取 れるかもと思って
5.
アップデートしようとした モチベーション
6.
Vive Trackerなどの 認識順問題の解決
7.
起こっていた問題 [CameraRig] Controller(left) Controller(right) Camera(head) Tracker(waist) Tracker(left foot) Tracker(right foot) Controller(left)Controller(right) waist Tracker(right
foot) Tracker(left foot)
8.
アサインがめちゃくちゃ Controller(left) Controller(right) waistTracker(right foot) Tracker(left
foot)
9.
なぜこうなるか どのトラッカーがどこにアサインさ れるのかは保証されていない → 認識する順番に依存
10.
解決⽅法 あります!!! が、説明するのもめんどくさいく らいだるいです 「Tracker 認識順」 で検索
11.
ここで救世主
12.
SteamVR Plugin 2.0!!!!
13.
SteamVR Plugin 2.0での 認識順の解決 1.
Manage Vive Trackersからどの場所で認識させるか設定 Left Foot、Right Foot、Waistなど 2. SteamVR_Behaviour_Pose.csのInputSourceに対応す るものを設定 1. に対応するものに設定 SteamVR Plugin 1.x時代の SteamVR_Tracked_Objectと同等のもの
14.
15.
16.
17.
18.
これだけ
19.
変更点Pick UP コントローラーの⼊⼒取得が刷新 CameraRigの構成
20.
コントローラーの⼊⼒取得
21.
22.
各種コントローラーの分岐がいらなく なる アクションベースで定義ができる Input.GetHogeのノリで書ける (ハプティクスの引数も変わりました) より細かい振動調整が可能に(?)
23.
CameraRigの構成
24.
1.x <-> 2.0 [CameraRig] Camera(Head) Camera(eye) Camera(ears) Controller(left) Controller(right) [CameraRig] Camera Controller(left) Controller(right)
25.
スッキリ✨
26.
アップデートフロー ⽅針 既存の⼊⼒を置き換える形で
27.
⼿順 1. 古いプラグインの削除 2. 新しいプラグインの追加 3.
⼊⼒周りのコンパイルエラーをコメントアウト 4. アクションの作成 5. コントローラーにアクションをバインディング 6. 新しい⼊⼒に差し替え
28.
1.古いプラグインの削除 使われなくなったスクリプトが残っ てしまって、エラーを吐きます 思い切って消しましょう
29.
2.新しいプラグインの追加 通常通りのインポートでOK 古いプラグインを使ってた場所でコ ンパイルエラーが起きます
30.
3.⼊⼒周りのコンパイルエラーを コメントアウト ⼿順2で出たコンパイルエラーをコメント アウトしていきます アクションを定義するためにコンパイ ルエラーをなくす必要があります コンパイルエラーが残ったままだと、 アクションを設定する画⾯が出せない
31.
4.アクションの作成 Window>SteamVR Inputからアクショ ンを設定するWindowを開きます defaultのアクションを作るか聞かれます とくにdefaultで定義されたものを使う 予定がなければ作らなくていいと思い ます
32.
33.
34.
⽣成されるファイル例 プロジェクトのルートディレクトリ action.json Assets/SteamVR_Input 定義したアクションを使えるように するclass類
35.
⼊⼒値 boolean vector1 vector2 vector3 pose skeleton :ボタンのクリックなど :トリガーを引いている具合など :トラックパッド、スティックの位置など :(?) :コントローラーのいるばしょ :あたらしく⼊った機能で使うやつ(?)
36.
5.コントローラーにアクションを バインディング アクション作成画⾯でOpen Binding UI を押すとlocalhost:8998 でWeb設定画⾯が⽴ち上がります
37.
38.
39.
40.
デフォルトバインディングの置換
41.
⽣成されるファイル例 プロジェクトのルートディレクトリ application_generated_unity_プロジェクト名 _コントローラー名.json unityProject.vrmanifest
42.
6.新しい⼊⼒に差し替え 1. SteamVR_Behaviour_Pose.csをコントローラーのPrefab にアタッチ • InputSourceを適切に設定 2.
コメントアウトを外す 3. Valve.VRをusingしてみる • RiderならAlt + Enter 4. 新しい⼊⼒⽅法に差し替え
43.
左⼿のコントローラから⼊⼒を取得する例
44.
無事アップデート完了😆
45.
余裕!
46.
と思いきや、 ビルドしたら動かない 😭
47.
ハマりポイント① ビルドすると動かなくなる問題 ビルドするとaction.jsonが消える😱 ビルド先がプロジェクトルートディレ クトリだと発⽣ 別のディレクトリにビルドしたら解決
48.
ハマりポイント② SteamVR_Input_ActionSet_Hogeの初期化 フィールドで初期化すると動かん トラッカーのバインディング忘れ トラッカーもコントローラーと同様にWeb からバインドしてあげる必要があります
49.
その他 認識しているコントローラーやデバイス しかバインディングできない Viveをつかってて、Oculus Touchのバ インディングとかができない 😩 Exampleを真似したらできるかもしれ ないが…
50.
その他 現在のSteamVR(1.3.20)で起きている問題 Manage Vive Trackersを押しても反応しない Configure
Settings から頑張る ViveTracker 2.0をManage Vive Trackersしようと すると、Identify Trackerのボタンが出てこない もしかしたら、ベースステーションが1.0だから かも? 🤔
51.
まとめ SteamVR Plugin 2.0にすれば認識順も簡 単に解決 ⼿順を踏めば、アップデートも怖くな い! 本番環境で動くまでがアップデート作業 (⾃戒)
52.
参考 https://qiita.com/kyourikey/items/ 5967018e613b2fd49a1f https://stackoverflow.com/questions/ 55278135/unity-build-error-action-json- removed-then-not-found-when-building https://github.com/ValveSoftware/ steamvr_unity_plugin
53.
ご静聴ありがとうございました よいVR開発ライフを〜👋
Download now