360°写真、動画を用いた VR 対応アプリの開発方法

1ae8fc4f63ab4770dd4545006489234c?s=47 yuky_az
August 20, 2016

360°写真、動画を用いた VR 対応アプリの開発方法

iOSDC 2016で発表した際のスライドです。スマートフォンのVR対応についてお話です。

1ae8fc4f63ab4770dd4545006489234c?s=128

yuky_az

August 20, 2016
Tweet

Transcript

  1. ˃ࣸਅɺಈըΛ༻͍ͨ 73ରԠΞϓϦͷ։ൃํ๏ :VLJOBHB"[VNB !ZVLZ@B[ J04%$+BQBO

  2. ࣗݾ঺հ :VLJOBHB"[VNB
 ʢզ࠺޾௕ʣ J04ΤϯδχΞ 3% େֶͷݚڀһɺϝʔΧʔۈ຿ɺϓϩάϥϛϯά ߨࢣɺϑϦʔϥϯεΛܦͯɺ%VDLMJOHTגࣜձࣾͰ εϚϗ޲͚73"*Λ։ൃத !ZVLZ@B[ TBJJMBCDPN

    ਓ޻஌ೳɺਓ޻ੜ໋ɺੜ෺ֶɺ ϓϩάϥϛϯάڭҭɺ
 ϒϥδϦΞϯॊज़ ଞͷڵຯͷର৅
  3. ൃදͷྲྀΕ εϚʔτϑΥϯʹΑΔ73ʹ͍ͭͯ ˠҰൠ࿦ɺ໰୊఺ɺΞϓϦ΁ͷཁٻ ౓ϥΠϒετϦʔϛϯάΞϓϦͷ։ൃྫ ˠΧϝϥରԠɺ).%ରԠɺ࣮૷ํ๏

  4. όʔνϟϧϦΞϦςΟʔ(VR)ͱ͸ʁ ޒײ΍૝૾ྗΛܹࢗ͠ɺͦ͜ʹͳ͍΋ͷΛ࡞Γग़͢

  5. VRʹඞཁͳཁૉ ྟ৔ײ ˠө૾΍Ի੠ͱ਎ମײ֮ͷҰகʹΑΓɺຊ౰ʹͦͷ৔ʹ͍Δ Α͏ͳ೴ͷࡨ͕֮ى͖Δ շదੑ ˠө૾΍Ի੠ͱ਎ମײ֮ͷෆҰகʹΑΓɺ73ਲ͍͕ൃੜ͢Δ
 ͷͰɺ͜ΕΛ௿ݮ͢Δ

  6. εϚʔτϑΥϯʹΑΔVR ೋ؟ϔουϚ΢ϯτσΟεϓϨΠ ).% ʹεϚϗΛ૷ண σόΠεͷ޲͖ͱө૾ͷ޲͖ΛҰகͤ͞Δ

  7. εϚʔτϑΥϯVRͷಛ௃ ϋΠΤϯυσόΠε 0DVMVT3JGUɺ)5$7JWFɺ1MBZ4UBUJPO73ɺFUD ˠ1$ͱͷ઀ଓ͕ඞཁɺϦιʔεେɺ਎ମҠಈͷݕ஌͕Մೳ εϚʔτϑΥϯ J1IPOFɺ"OESPJEεϚϗɺFUD ˠ1$ͱͷ઀ଓ͸ෆཁɺϦιʔεখɺ਎ମҠಈͷݕ஌͕೉͍͠

  8. ΞϓϦ΁ͷཁٻ ྟ৔ײˍշదੑͷͨΊʹ ˠߴ͍ϑϨʔϜϨʔτͱɺटͷಈ͖ʹର͢Δө૾ͷ௥ैੑ ڑ཭ͷݕ஌͸΄΅ෆՄ
 ˠମͷҠಈͷݕ஌͸೉͍͠ɻ਎ମҐஔΛݻఆͯ͠࢖༻͕લఏ Ϧιʔεʹ༨༟͕ͳ͍
 ˠ$16ɺ(16ɺϝϞϦͷແବݣ͍Λۃྗ཈͑Δ

  9. ˃ϥΠϒετϦʔϛϯάΞϓϦͷ։ൃྫ )6(73EFHSFFMJWF ˃ϥΠϒಈըΛࢹௌɺ).%ରԠ ϦΞϧλΠϜͰίϛϡχέʔγϣϯ ࢖༻࣮੷
 ˠԻָϥΠϒɺΧϯϑΝϨϯεɺFUD
 ͔ࠃͰͷར༻

  10. ΞϓϦ΁ͷཁٻ ϥΠϒதɺϦΞϧλΠϜͰҎԼͷॲཧ͕ൃੜ ಈըͷड৴ɺϐΫηϧόοϑΝͷॲཧɺ ›ΧϝϥରԠɺ%ඳըɺ ϝοηʔδͷૹड৴ɺϞʔγϣϯηϯαɺFUD J1IPOFͷੑೳΛϑϧʹҾ͖ग़͢͜ͱ͕ඞཁ

  11. ࣮૷ํ๏ͷબఆ (PPHMF734%, ˠ࣮૷͕؆୯͕ͩɺΧελϚΠζੑ͕௿͍ 6OJUZ
 ˠϢχόʔαϧͳ։ൃ؀ڥͷͨΊɺ J1IPOFͷੑೳΛϑϧʹҾ͖ग़͢ͷ͸೉͍͠

  12. ࣮૷ํ๏ͷબఆ 4DFOF,JU ˠߴϑϨʔϜϨʔτͰͷಈը࠶ੜ͕೉͍͠ɻ 0QFO(-&4 (-,JU
 ˠѻ͍͕೉͍͕͠ɺ ύϑΥʔϚϯεΧελϚΠζੑ͕ߴ͍ ADOPTED

  13. ॲཧͷྲྀΕͷུ֓ ϥΠϒσʔλͷड৴ J1IPOFεΫϦʔϯʹඳը ಄ͷ޲͖ͷݕग़ ֤ॲཧ͸ϚϧνεϨουͰ࣮ߦ͞ΕΔ ٿͷ಺໘ʹ ςΫενϟΛషΓ෇͚ Ұఆִ࣌ؒؒͰ࣮ߦ ࢹઢϕΫτϧͷճస

  14. ςΫενϟͷషΓ෇͚,PEBL41, %ม׵Λߦ͍
 ٿͷ಺໘ʹషΓ෇͚Δ x = R * sin(φ) * cos(θ)

    y = R * cos(φ) z = R * sin(φ) * sin(θ) ੾Γൈ͖ ࠲ඪม׵ ݩը૾4JOHMFpTIFZF D 8BMUFS θ φ
  15. ςΫενϟͷషΓ෇͚3JDPI5IFUB4 ݩը૾%VBMpTIFZF %ม׵Λߦ͍ɺͦΕͧΕ
 ൒ٿͷ಺໘ʹషΓ෇͚Δ x = R * sin(φ) *

    cos(θ) y = R * sin(φ) * sin(θ) z = R * cos(φ) ੾Γൈ͖ ճస ࠲ඪม׵
  16. ಄ͷ޲͖ͷݕग़ MFUNPUJPO.BOBHFS$..PUJPO.BOBHFS  NPUJPO.BOBHFSEFWJDF.PUJPO6QEBUF*OUFSWBM NPUJPO.BOBHFSTUBSU%FWJDF.PUJPO6QEBUFT5P2VFVF /40QFSBUJPO2VFVF  \ EFWJDF.BOBHFS FSSPS

    JO MFUZBXEFWJDF.BOBHFSBUUJUVEFZBX MFUQJUDIEFWJDF.BOBHFSBUUJUVEFSPMM MFUSPMMEFWJDF.BOBHFSBUUJUVEFQJUDI ^ $PSF.PUJPOΛར༻ͯ͠ σόΠεͷ޲͖ ಄ͷ޲͖ Λऔಘ
  17. ࢹઢϕΫτϧͷճస D +VBOTFNQFSF Ψ = yaw θ = pitch Φ

    = roll ࢹઢϕΫτϧΛճస͠ ࢹઢͷઌΛεΫϦʔϯʹඳը͢Δ ΫΥλʔχΦϯʢ࢛ݩ਺ʣ ͷར༻͕ඞཁ
  18. ϚϧνεϨουઃܭ ༷ʑͳॲཧΛฒྻͰߦ͍ɺϘτϧωοΫ͕ੜ͡ͳ͍Α͏ʹ͢Δ ಈըσʔλͷड৴ ϐΫηϧόοϑΝͷॲཧ ςΫενϟͷషΓ෇͚ ಄ͷ޲͖ͷݕग़ ࢹઢϕΫτϧͷઃఆ εΫϦʔϯʹඳը γϦΞϧΩϡʔ༏ઌ౓௿ ը໘ͷϦϑϨογϡͱಉظ

    ௨৴ͱಉظ γϦΞϧΩϡʔ༏ઌ౓ߴ Ϟʔγϣϯηϯαͱಉظ
  19. GPUͷνϡʔχϯά %FCVHOBWJHBUPS'14*OTUSVNFOUT0QFO(-&4"OBMZTJT ෛՙͷେ͖͍ॲཧ͸ແ͍͔ʁϝογϡͷܗঢ়͸ద੾͔ʁFUD

  20. ࣮ԋಈը -ѱ͍ྫ- ϚϧνεϨουͷઃܭ͕ෆద੾ ύϑΥʔϚϯεͷνϡʔχϯά͕े෼Ͱͳ͍ ྟ৔ײ͕௿͍ɺ73ਲ͍͕ൃੜɺ୺຤͕ߴԹ

  21. ࣮ԋಈը -ྑ͍ྫ- ϚϧνεϨουͷઃܭ͕ద੾ ύϑΥʔϚϯεͷνϡʔχϯά͕े෼ ྟ৔ײ͕ߴ͍ɺ73ਲ͍͕ൃੜ͠ͳ͍ɺ୺຤͕ߴԹʹͳΒͳ͍

  22. ·ͱΊ ύϑΥʔϚϯεͷ޲্ ˠ$16ɺ(16ͷ࠷దԽ %ඳը ˠඳ͖͍ͨΠϝʔδΛ਺ࣜԽ͢Δ ྟ৔ײ͕͋ΓɺշదͳεϚʔτϑΥϯ73ͷͨΊʹ ϚϧνεϨου ˠෳ਺ͷॲཧΛฒߦͯ͠ߦ͍ɺಛఆͷεϨου͕ϘτϧωοΫ ʹͳΔͷΛ๷͙