Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OculusQuest完全に理解した。 / Oculus Quest Completely U...
Search
nkjzm
June 23, 2019
Technology
5.1k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
OculusQuest完全に理解した。 / Oculus Quest Completely Understood.
xR Tech Tokyo #16 @ DMM.comでの登壇資料です。
https://vrtokyo.connpass.com/event/129570/
nkjzm
June 23, 2019
More Decks by nkjzm
See All by nkjzm
個人iOSアプリ開発で使っているClaude Code Hooksの紹介
nkjzm
0
650
アバター配信アプリ『Vフレット』 でVRM 1.0対応をしてみる
nkjzm
1
360
VRMアバターでギターの弾き語りがしたい!! 『Vフレット』の開発で考えたこと
nkjzm
0
590
『ALTDEUS: Beyond Chronos』で物語に没入できる操作感を実現するマルチプラットフォーム対応の道のり / The path to multi-platform support for immersive storytelling in ALTDEUS: Beyond Chronos
nkjzm
0
400
『ALTDEUS: Beyond Chronos』におけるマルチプラットフォーム向けコントローラーの対応 / Support for multi-platform controllers in "ALTDEUS: Beyond Chronos
nkjzm
0
470
Unityで使える汎用的な ハンバーガーメニューの実装 / UniHamburger
nkjzm
3
1.6k
20時間超の物語をVRで!『ALTDEUS: Beyond Chronos』の制作を支えた”Uranus”の制作過程と機能紹介 [CEDEC2021] / Introduction of ALTDEUS' VR ADV tool "Uranus", CEDEC2021
nkjzm
1
2.6k
withコロナに見るXR業界のイマ! [CEDEC2021] / XR NOW CEDEC2021
nkjzm
3
1.9k
VRプロダクト開発ラウンドテーブル2021
nkjzm
0
1.6k
Other Decks in Technology
See All in Technology
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
240
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
290
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
300
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
620
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
4
900
Autonomous AI Databaseサービス・アップデート(FY27)/ adb-service-update-jp-fy27
oracle4engineer
PRO
0
130
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
0
270
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
260
20260903 Tokyo Jazug Night #62 | Azure エンジニアよ、 その環境は本当にセキュアか?
olivia_0707
1
630
振り返りこそエンジニアの本領
negima
0
330
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
120
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
0
130
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
30 Presentation Tips
portentint
PRO
1
390
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Amusing Abliteration
ianozsvald
1
290
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Code Reviewing Like a Champion
maltzj
528
40k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
Transcript
Confidential - Do Not Share !1 OculusQuest શʹཧղͨ͠ xR Tech
Tokyo #16 @DMM.com ɹɹpresented by ɹ@nkjzm
!2 Who is @nkjzm ? Nakaji Kohki / ϦϦΧͪΌΜ Mercari,
Inc. R4D XR Engineer ຊόʔνϟϧϦΞϦςΟֶձೝఆ VRٕज़ऀ ΞϛϡʔζϝϯτϝσΟΞ૯߹ֶӃ ήʔϜϓϩάϥϚʔֶՊ VRઐ߈ ߨࢣ ஶॻ: ٕज़ධࣾʰVRΤϯδχΞཆಡຊʱڞஶ ࡞: ʰCrevasseʱʰࢸۙڑΨʔϧVRʱ #xRStreetStyle #xRfm #ϞʔγϣϯΩϟετ Twitter: @nkjzm
!3 #xRStreetStyle
!4 ൃදͷత OculusQuestͷ ։ൃऀΛ૿͢
!5 ݕূ࣌ͷόʔδϣϯ • Unity 2018.3.14f1 • Oculus Integration for Unity
- 1.37 • Oculus Utilities Plugin 1.32.0 • Mac OSX 10.14.4ʢ18E226ʣ • Windows 10 Home (1809)
!6 ຊͷൃද༰ 01 VRλϫʔσΟϑΣϯε 02 OculusQuest։ൃͷجຊ 03 OculusQuestͷ։ൃTIPS 04 OculusQuestશཧղʹཧղͨ͠
!7 VRλϫʔσΟϑΣϯε
!8 ຊͷൃද༰ 01 VRλϫʔσΟϑΣϯε 02 OculusQuest։ൃͷجຊ 03 OculusQuestͷ։ൃTIPS 04 OculusQuestશཧղʹཧղͨ͠
!9 OculusQuest։ൃͷجຊ ͜Ε͔Β։ൃΛ͡ΊΔਓ
!10 - OculusQuestຊମ - 5ສԁ~ - Android ϕʔεͷVRHMD - PC
- Mac / Win - Unity - 2017.4 LTS - 2018.4 LTS - 2019.1.2f1 - Android SDK - Oculus Integration ։ൃʹඞཁͳͷ ಋೖ͜ͷهࣄ͕͔Γ͍͢Ͱ͢ʂ UnityʴOculus Quest ։ൃϝϞ - ϑϨʔϜγϯηγε https://framesynthesis.jp/tech/unity/oculusquest/
!11 1. Unity্Ͱ։ൃ 2. AndroidΞϓϦ(*.apk)ͱͯ͠Ϗϧυ 3. QuestΛ༗ઢଓ(type-c) 4. adbίϚϯυͰΠϯετʔϧ
5. Quest্Ͱىಈ ϥΠϒϥϦ>ෆ໌ͳΞϓϦΑΓ ։ൃ͔Β࣮ػىಈ·ͰͷྲྀΕ $ adb install -r hoge.apk
!12 QuestͷήʔϜา͖ճΕΔͷͰɺϏϧυͷʹ༗ઢଓ͢Δͷ͕໘ʹͳΔ ↓↓↓ ϦϞʔτͰͷΠϯετʔϧ͕Մೳ tcpϞʔυͰϩʔΧϧωοτϫʔΫܦ༝ͰadbίϚϯυ͕ଧͯΔ έʔεελσΟᶃ ༗ઢଓ͕໘͍͘͞ʂ $ adb
tcpip 5555 $ adb connect 192.168.0.0:5555
!13 VRͰͷݟ͑ํಈ࡞Λ֬ೝ͢ΔͨͼʹϏϧυ͢Δͷ͕໘͍͘͞ ↓↓↓ Rift / Vive / ALVRͰϓϨϏϡʔ͕Մೳʂ - OculusͷSDKશOculusڞ௨ͳͷͰɺQuestͷػೳRiftͰಈ͘
- ΫϩεϓϥοτϑΥʔϜରԠͳͷͰViveWinMRͰಈ͘(ޙड़) - ALVRͰετϦʔϛϯάϓϨϏϡʔͱ͍͏ख έʔεελσΟᶄ ։ൃதʹVRϓϨϏϡʔ͍ͨ͠ʂ
!14 - ALVRͰετϦʔϛϯάϓϨϏϡʔͱ͍͏ख - PCVR(SteamVR)ΛϦϞʔτͰϓϨΠ͢Δ͜ͱͷͰ͖ΔOSS - SteamVRͷήʔϜΛOculus Go/QuestͰϓϨΠ͢Δ͜ͱՄೳ - ϦϙδτϦ
https://github.com/polygraphene/ALVR/blob/master/README-ja.md έʔεελσΟᶄ ։ൃதʹVRϓϨϏϡʔ͍ͨ͠ʂ
!15 ຊͷൃද༰ 01 VRλϫʔσΟϑΣϯε 02 OculusQuest։ൃͷجຊ 03 OculusQuestͷ։ൃTIPS 04 OculusQuestશཧղʹཧղͨ͠
!16 OculusQuestͷ։ൃTIPS ࣮ࡍʹ։ൃͯ͠Έ͔ͯͬͨݟ
!17 VRͰΓ͍ͨجຊతͳػೳ͕ ͯ͢ἧ͍ͬͯΔঢ়ଶ - खͰϞϊΛ௫Ή - ςϨϙʔτҠಈ - UIΛૢ࡞͢Δ(uGUI) σϝϦοτ:
Ҡ২େมʹ 1.31͔Β ΫϩεϓϥοτϑΥʔϜʹରԠ Oculus Integration͕ศརʂʂ OculusͷSampleFrameworkશγʔϯΛQuest࣮ػͰಈ͔ͯ͠Έͨ https://qiita.com/nkjzm/items/58a696f66c4989e5a35c
!18 - OVR Grabbable - ௫·ΕΔΫϥε - OVR Grabber -
௫ΉΫϥε खͰϞϊΛ௫Ή
!19 - OVR Grabbable (ӈਤܧঝͨ͠Ϋϥε) - Snapػೳ: ௫ΉॴΛఆٛՄೳ - Snap
Offsetʹҙ - GameObjectͷWorld࠲ඪܥ Ͱͷݪͱͷڑ = Offset - ͔ͭͬ͑ɾɾɾ - nullͩͱݪѻ͍ʹͳΔͷͰ ϓϨϋϒࣗମͰҐஔ߹Θͤ खͰϞϊΛ௫Ή
!20 - 2छྨͷΩʔόΠϯυ͕ଘࡏ - Combined - OVRInput.Get(OVRInput.But ton.PrimaryIndexTrigger); - OVRInput.Get(OVRInput.But
ton.SecondaryIndexTrigger); - Individual - OVRInput.Get(Button.PrimaryIndexTr igger, Controller.LTouch); - OVRInput.Get(Button.PrimaryIndexTr igger, Controller.RTouch); Combined Individual Touchίϯτϩʔϥʔͷࢥ
Touchίϯτϩʔϥʔͷࢥ !21 - Individual - OVRInput.Get(Button.PrimaryIndexTrigger, Controller.LTouch); - OVRInput.Get(Button.PrimaryIndexTrigger, Controller.RTouch);
- ୈೋҾΛ variableʹ͢Δ͜ͱ Ͱɺࠨӈͷ۠ผ͕ͳ͘ͳΔ → ϞϊࣗମʹτϦΨʔΛ࣋ͨͤΔ - OVRInputશൠ͕ଟͦ͏͍͏ࢥ - Hapticsػೳ ͳͲ Individual
Oculusͷ Hapticsػೳ !22 - OVRHaptics (deprecated) - OVRInput Haptics -
Haptics- Oculus Developers https://developer.oculus.com/documentation/unity/latest/concepts/ unity-haptics/ // Start OVRInput.SetControllerVibration ( 1, 1, OVRInput.Controller.RTouch); // End OVRInput.SetControllerVibration ( 0, 0, OVRInput.Controller.RTouch); hapticsClip = new OVRHapticsClip(audioClip); OVRHaptics.LeftChannel.Mix(hapticsClip)
Touchίϯτϩʔϥʔͷࢥ !23 - Individual - OVRInput.Get(Button.PrimaryIndexTrigger, Controller.LTouch); - OVRInput.Get(Button.PrimaryIndexTrigger, Controller.RTouch);
- ୈೋҾΛ variableʹ͢Δ͜ͱ Ͱɺࠨӈͷ۠ผ͕ͳ͘ͳΔ → ϞϊࣗମʹτϦΨʔΛ࣋ͨͤΔ - OVRInputશൠ͕ଟͦ͏͍͏ࢥ - Hapticsػೳ ͳͲ Individual
ϞϊࣗମʹτϦΨʔΛ࣋ͨͤΔ ॐͷ࣮ !24 public class Gun : OVRGrabbable, IGrabbable {
OVRInput.Controller currentController; public void GrabBegin(OVRInput.Controller controller) { currentController = controller; } void Update() { if (isGrabbed && OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger, currentController)) { // implement } } }
ϞϊࣗମʹτϦΨʔΛ࣋ͨͤΔ ॐͷ࣮ !25 public interface IGrabbable { void GrabBegin(OVRInput.Controller controller);
} public class CustomOVRGrabbable : OVRGrabber { protected override void GrabBegin() { base.GrabBegin(); if (m_grabbedObj is IGrabbable) { ((IGrabbable)m_grabbedObj).GrabBegin(m_controller); } } }
!26 VRͰΓ͍ͨجຊతͳػೳ͕ ͯ͢ἧ͍ͬͯΔঢ়ଶ - खͰϞϊΛ௫Ή - ςϨϙʔτҠಈ - UIΛૢ࡞͢Δ(uGUI) σϝϦοτ:
Ҡ২େมʹ 1.31͔Β ΫϩεϓϥοτϑΥʔϜʹରԠ Oculus Integration͕ศརʂʂ OculusͷSampleFrameworkશγʔϯΛQuest࣮ػͰಈ͔ͯ͠Έͨ https://qiita.com/nkjzm/items/58a696f66c4989e5a35c
!27 Oculus IntegrationΞϓϦ͕ (΄΅)ͦͷ··Vive ProͰಈ͍ͨʂ །ҰඞཁͳରԠ • Open VRͷΠϯϙʔτ •
ίϯτϩʔϥʔରԠ ΫϩεϓϥοτϑΥʔϜʹରԠ
!28 • Open VRͷΠϯϙʔτ • [Player Settings]-[XR Settings]-[Virtual Reality SDKs]Ͱʮ+ʯΛԡͯ͠OpenVRΛՃ
• [Window]-[Package Manager]ΑΓ[OpenVR (Desktop)]ΛInstall (όʔδϣϯ1.0.5) • ίϯτϩʔϥʔରԠ ΫϩεϓϥοτϑΥʔϜʹରԠ
!29 • Open VRͷΠϯϙʔτ • ίϯτϩʔϥʔରԠ • ֓ͶײతͳରԠ͚ • Touch,
AxisXDʹରԠ • ཧతʹରԠ͍ͯ͠ͳ͍Ωʔ • A,X,Start,Back • ΫϩεϓϥοτϑΥʔϜରԠ͢Δ ͳΒࣄલͷఆΛ͓͢͢Ί ΫϩεϓϥοτϑΥʔϜʹରԠ Oculus IntegrationΛ༻͍ͨVive։ൃ࣌ͷίϯτϩʔϥʔରԠʹ͍ͭͯ - Qiita https://qiita.com/nkjzm/items/45112ef07f7d946e3521
!30 Ҡ২ʹ͍ͭͯ Standalone VR Meetup #02 - connpass https://standalone-vr.connpass.com/event/132070/ Standalone
VR MeetupͰฉ͍ͨײ͡ ૯ͯ͡؆୯ͦ͏…ʂ • OculusϓϥοτϑΥʔϜܥ • ౦ژΫϩϊε • EXOS_DEMO • SteamVR • ϦϦʔεࡁΈSteamVRήʔϜΛQuestʹҠ২ͨ͠ https://qiita.com/GONBEEE_project/items/ 590405a1f514559712c5
!31 τΡʔϯௐͷ3DϞσϧ͕ CC-BY3.0ͰखʹೖΔʂ - Poly Toolkit͕ศར https://developers.google.com/poly/ develop/toolkit-unity - Object2TerrainͰ
ܰྔίϦδϣϯΛੜ Google PolyͰ؆୯Ϩϕϧ੍࡞ʂ
!32 Google PolyͰ؆୯Ϩϕϧ੍࡞ʂ ΦϒδΣΫτʹ߹ΘͤͯTerrainΛ࡞ΔʲUnityʳʲΤσΟλ֦ுʳ http://kan-kikuchi.hatenablog.com/entry/ObjectToTerrain - Poly Toolkit͕ศར - Object2TerrainͰ
ܰྔίϦδϣϯΛੜ
!33 ϩέʔγϣϯϕʔεVRϨϕϧͷମݧ͕ࣗͰؾܰʹग़དྷΔ - 5ສԁͷσόΠεͰา͖ճΕΔͷ࠷ߴ͗͢Δ - ൣғ֎ʹߦ͚ͳ͍͜ͱ͕͔Δݟͨ ͩͱҰؾʹ͕Γ͕૿͢ ϧʔϜεέʔϧָ͕͍͠ʂʂʂ
!34 ൣғ֎ʹߦ͚ͳ͍͜ͱ͕͔Δݟͨ
!35 ຊͷൃද༰ 01 VRλϫʔσΟϑΣϯε 02 OculusQuest։ൃͷجຊ 03 OculusQuestͷ։ൃTIPS 04 OculusQuestશཧղʹཧղͨ͠
!36 OculusQuestશཧղʹཧղͨ͠ Ҿ༻ݩ: https://twitter.com/kaitendaentai/status/1052689241744896001
!37 OculusQuestશཧղʹཧղͨ͠ Ҿ༻ݩ: https://twitter.com/kaitendaentai/status/1052689241744896001 ೳྗͷ͍ਓ͕ ࣗΒͷ༰࢟ൃݴɾߦಈͳͲʹ͍ͭͯɺ ࣮ࡍΑΓߴ͍ධՁΛߦͬͯ͠·͏ ༏ӽͷࡨ֮ΛੜΈग़͢ೝόΠΞε Ҿ༻ݩ: μχϯάʹΫϧʔΨʔޮՌ
- Wikipedia
!38 OculusQuestશཧղʹཧղͨ͠ Ҿ༻ݩ: https://twitter.com/kaitendaentai/status/1052689241744896001
!39 OculusQuestશཧղʹཧղͨ͠ Ҿ༻ݩ: https://twitter.com/kaitendaentai/status/1052689241744896001 ͜Ε͔Βٸܹʹࣗ৴Λࣦ͍ͬͯ͘༧ఆͳͷͰɺ Twitterͱ͔Qiitaͱ͔ϒϩάͱ͔Ͱݟڞ༗ͭͭ͠ɺ ΈΜͳͰΓ্͍͖͛ͯ·͠ΐ͏
!40 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠—
!41
!42