Slide 1

Slide 1 text

ॴ༑ଠ:VUB5PLPSP J04UW04WJTJPO04"QQ1SPHSBNNFS ଓɾ4IBSF1MBZͷྺ࢙ͱਐԽ J04ͱ"QQMF7JTJPO1SPʹ͓͚Δ ৽ల։ J04%$+BQBO 5SBDL$

Slide 2

Slide 2 text

@tokorom tokorom Spinners Inc. ॴ ༑ଠ / Yuta Tokoro

Slide 3

Slide 3 text

"HFOEB w 4IBSF1MBZͬͯͳʹʁ w 4IBSF1MBZͷྺ࢙ͱਐԽ w ೥ͷΞοϓσʔτ w "QQMF7JTJPO1SPͰͷ4IBSF1MBZ

Slide 4

Slide 4 text

4IBSF1MBZͬͯͳʹʁ

Slide 5

Slide 5 text

4IBSF1MBZͱ͸ 'BDF5JNF௨࿩தʹ཭Εͨ৔ॴͷ஌Γ߹͍ͱΞϓϦͷίϯςϯπΛڞ༗

Slide 6

Slide 6 text

4IBSF1MBZͱ͸ 'BDF5JNF௨࿩தʹ཭Εͨ৔ॴͷ஌Γ߹͍ͱΞϓϦͷίϯςϯπΛڞ༗ ೥ʹఫഇ

Slide 7

Slide 7 text

4IBSF1MBZͱ͸ 'BDF5JNF௨࿩தʹ཭Εͨ৔ॴͷ஌Γ߹͍ͱΞϓϦͷίϯςϯπΛڞ༗ ೥ʹఫഇ ೥ʹఫഇ

Slide 8

Slide 8 text

4IBSF1MBZͱ͸ ΞϓϦͰ༏Εͨ ڞ༗ମݧ Λఏڙ͢Δ͜ͱΛ໨తͱͨ͠ػೳ

Slide 9

Slide 9 text

छͷ4IBSF1MBZ ը໘ڞ༗ ಈըɾԻָͷڞࢹௌ ΧελϜ

Slide 10

Slide 10 text

छͷ4IBSF1MBZ ը໘ڞ༗ ಈըɾԻָͷڞࢹௌ ΧελϜ

Slide 11

Slide 11 text

4IBSF1MBZͷྺ࢙ͱਐԽ

Slide 12

Slide 12 text

೥4IBSF1MBZొ৔ʂ w ͨͩ͠'BDF5JNFͷ௨࿩தʹ͔͠ൃՐ͠ͳ͍

Slide 13

Slide 13 text

೥'BDF5JNF௨࿩தͰͳͯ͘΋ൃՐʂ w 'BDF5JNFͰͷ௨࿩தͰͳͯ͘΋ΞϓϦओಋͰ։࢝Ͱ͖ΔΑ͏ʹ w J.FTTBHF͔Β΋։࢝Ͱ͖ΔΑ͏ʹ w ͨͩ͠ʮ࿈བྷઌΛ஌͍ͬͯΔ૬खʯͷΈ

Slide 14

Slide 14 text

೥"JS%SPQͰ୭ͱͰ΋͙͢ʹ։࢝ʂ

Slide 15

Slide 15 text

೥"JS%SPQͰ୭ͱͰ΋͙͢ʹ։࢝ʂ w "JS%SPQʹରԠ͠ʮ࿈བྷઌΛ஌Βͳ͍૬खʯͱ΋4IBSF1MBZՄೳʹ w J04ͷJ1IPOF̎୆Λ͚ۙͮͯ"JS%SPQʹ΋ରԠ ࠓ೔ͷϥϯν Ͳ͏͢Δʁ λίεΛ4IBSF1MBZͰ ΈΜͳͰങ͓͏ʂ ͋ɺςΟϛϥ΋ ஫จ௥Ճͯ͘͠ΕͨͶ

Slide 16

Slide 16 text

ͦͷଞͷόʔδϣϯΞοϓ

Slide 17

Slide 17 text

೥J04 w ૹ৴Ͱ͖ΔϝοηʔδαΠζ͕,#͔Β,#ʹ֦େ

Slide 18

Slide 18 text

೥J04 w ϨΠςϯγͷվળ w ༏ઌ౓ͷ௿͍ϝοηʔδΛ6%1Ͱ௿ϨΠςϯγͰૹ৴Ͱ͖ΔΑ͏ʹ ௿ ௿ ௿ ௿ ௿ ௿ ߴ

Slide 19

Slide 19 text

೥J04 w 4IBSF1MBZͷ։࢝Λ؆୯ʹαϙʔτ͢ΔͨΊͷ (SPVQ"DUJWJUZ4IBSJOH$POUSPMMFS

Slide 20

Slide 20 text

೥J04 w ϑΝΠϧΛૹ৴Մೳʹ

Slide 21

Slide 21 text

೥ͷΞοϓσʔτ

Slide 22

Slide 22 text

೥J04 w )-4ΠϯλʔεςΟγϟϧͷಉظʹରԠ

Slide 23

Slide 23 text

೥WJTJPO04 w ಈըͷϑϧεΫϦʔϯ࠶ੜ࣌ʹಉ͡؀ڥʹ for await session in MyActivity.sessions() { playerViewController .player? .playbackCoordinator .coordinateWithSession(session) playerViewController .groupExperienceCoordinator .coordinateWithSession(session) }

Slide 24

Slide 24 text

೥WJTJPO04 w ͋ͱ̎ͭ͸ʮ"QQMF7JTJPO1SPͰͷ4IBSF1MBZʯͰ঺հ

Slide 25

Slide 25 text

"QQMF7JTJPO1SPͰͷ4IBSF1MBZ

Slide 26

Slide 26 text

ϗʔϜը໘͔Β'BDF5JNF4IBSF1MBZ w WJTJPO04Ͱ͸'BDF5JNF4IBSF1MBZ͕ಛผͳѻ͍ʹ

Slide 27

Slide 27 text

ϗʔϜը໘͔Β'BDF5JNF4IBSF1MBZ w WJTJPO04Ͱ͸'BDF5JNF4IBSF1MBZ͕ಛผͳѻ͍ʹ

Slide 28

Slide 28 text

4IBSF1MBZಋઢ͕ৗʹදࣔ w 'BDF5JNFத͸શ΢Οϯυ΢ͷ্෦ʹৗʹ4IBSF1MBZಋઢ

Slide 29

Slide 29 text

΢Οϯυ΢4IBSF1MBZத

Slide 30

Slide 30 text

ۭؒͰͷ4IBSF1MBZ

Slide 31

Slide 31 text

ۭؒϖϧιφ4IBSF1MBZ

Slide 32

Slide 32 text

WJTJPO044IBSF1MBZ People expect most visionOS apps to support SharePlay.

Slide 33

Slide 33 text

ۭؒϖϧιφͷςϯϓϨʔτ w ࢀՃऀͷϖϧιφ͕ίϯςϯπͷपลͰͲ͏ฒͿ͔Λ੍ޚՄೳ

Slide 34

Slide 34 text

ۭؒϖϧιφςϯϓϨʔτͷΧελϚΠζ w WJTJPO04৽ͨʹۭؒϖϧιφςϯϓϨʔτͷΧελϚΠζ͕Մೳʹ

Slide 35

Slide 35 text

ۭؒϖϧιφςϯϓϨʔτͷΧελϚΠζ w αϯϓϧίʔυ systemCoordinator.configuration.spatialTemplatePreference ɹ ɹɹ= .custom(CustomTemplate())

Slide 36

Slide 36 text

ۭؒϖϧιφςϯϓϨʔτͷΧελϚΠζ w αϯϓϧίʔυ struct CustomTemplate: SpatialTemplate { let elements: [any SpatialTemplateElement] = [ .seat(position: .app.offsetBy(x: 0, z: 4)), .seat(position: .app.offsetBy(x: 1, z: 4)), .seat(position: .app.offsetBy(x: -1, z: 4)), .seat(position: .app.offsetBy(x: 2, z: 4)), .seat(position: .app.offsetBy(x: -2, z: 4)), ] }

Slide 37

Slide 37 text

ۭؒϖϧιφςϯϓϨʔτͷΧελϚΠζ w 3PMFʢ໾ׂʣͷׂΓ౰ͯ .seat( ɹɹposition: .app.offsetBy(x: -3.5, z: 2.5), ɹɹrole: Role.blueTeam )

Slide 38

Slide 38 text

ۭؒϖϧιφςϯϓϨʔτͷΧελϚΠζ w 3PMFʢ໾ׂʣͷׂΓ౰ͯ

Slide 39

Slide 39 text

ۭؒϖϧιφςϯϓϨʔτͷΧελϚΠζ w 3PMFʢ໾ׂʣͷׂΓ౰ͯ // ੨νʔϜʹׂΓ౰ͯ systemCoordinator.assignRole(Role.blueTeam) // RoleΛղআ systemCoordinator.resignRole()

Slide 40

Slide 40 text

ۭؒϖϧιφςϯϓϨʔτͷΧελϚΠζ w Ͳͷํ޲Λ޲͔͘ͷࢦఆ .seat( ɹɹposition: .app.offsetBy(x: -3.5, z: 2.5), ɹɹdirection: .lookingAt(xxxSeat) )

Slide 41

Slide 41 text

ۭؒϖϧιφςϯϓϨʔτͷΧελϚΠζ w Ͳͷํ޲Λ޲͔͘ͷࢦఆ .lookingAt(xxxSeat).rotatedBy(.degrees(30))

Slide 42

Slide 42 text

ۭؒϖϧιφςϯϓϨʔτͷΧελϚΠζ

Slide 43

Slide 43 text

γϛϡϨʔλͰ4IBSF1MBZ

Slide 44

Slide 44 text

γϛϡϨʔλͰ4IBSF1MBZ

Slide 45

Slide 45 text

8SBQ6Q w 4IBSF1MBZ͸'BDF5JNF͕ͳͯ͘΋࿈བྷઌΛ஌Βͳ͍૬खͱͰ΋Մೳ w 4IBSF1MBZ͸WJTJPO04ͷࠜװΛ୲͏ w શͯͷΞϓϦ͕4IBSF1MBZରԠ

Slide 46

Slide 46 text

͓·͚ w 5BCMFUPQ,JUʹ΋4IBSF1MBZͷػೳ͕಺แ