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
Craftrium で実現したObjectの両手操作による編集機能
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Graffity
February 14, 2025
Technology
59
0
Share
Craftrium で実現したObjectの両手操作による編集機能
Graffity
February 14, 2025
More Decks by Graffity
See All by Graffity
VisionOSTC_2025_ja
graffity
0
87
Introduce technical issue and solution of various genre games for Apple Vision Pro
graffity
0
37
Unity-Groq × AI × 音声認識
graffity
0
54
AppStoreConnectAPIを使って端末登録作業を自動化しよう!(Unity CI/CD 完全に理解した 勉強会)
graffity
0
490
AppleVisionProCICD
graffity
0
580
HandgestureTool for AppleVisionPro
graffity
0
180
NinjaGazeTyping
graffity
0
82
Graffity 採用候補者の皆様へ
graffity
2
24k
Other Decks in Technology
See All in Technology
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
3
2k
AIエージェント勉強会第3回 エージェンティックAIの時代がやってきた
ymiya55
0
180
出版記念イベントin大阪「書籍紹介&私がよく使うMCPサーバー3選と社内で安全に活用する方法」
kintotechdev
0
120
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
140
JAWS DAYS 2026でAIの「もやっと」感が解消された話
smt7174
1
120
タスク管理も1on1も、もう「管理」じゃない - KiroとBedrock AgentCoreで変わった“判断の仕事”
yusukeshimizu
0
150
GitHub Actions侵害 — 相次ぐ事例を振り返り、次なる脅威に備える
flatt_security
11
6.9k
【Oracle Cloud ウェビナー】データ主権はクラウドで守れるのか?NTTデータ様のOracle Alloyで実現するソブリン対応クラウドの最適解
oracle4engineer
PRO
3
130
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
qa
0
540
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
400
40代からのアウトプット ― 経験は価値ある学びに変わる / 20260404 Naoki Takahashi
shift_evolve
PRO
3
460
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
120
Navigating Weather and Climate Data
rabernat
0
150
Utilizing Notion as your number one productivity tool
mfonobong
4
280
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Docker and Python
trallard
47
3.8k
A Soul's Torment
seathinner
5
2.6k
Embracing the Ebb and Flow
colly
88
5k
Scaling GitHub
holman
464
140k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.1k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
240
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
280
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Transcript
visionOS Engineer Meetup vol.9 オンラインLT会 Craftrium で実現したObjectの 両 手 操作による編集機能
2025/02/14
登壇者情報 Graf fi ty(ג) ॴଐUnityΤϯδχΞ ઐྖҬɿαϯυϓϩάϥϛϯά UnityΛத৺ͱͨ͠ใൃ৴ͳͲΛߦ͍ͬͯ·͢ɻ 2 visionOS Engineer
Meetup vol.9 オンラインLT会 著書&査読協 力 @8bitdots https://qiita.com/Cova8bitdot @cova8bit.bsky.social
過去の登壇 3 visionOS Engineer Meetup vol.9 オンラインLT会 https://speakerdeck.com/cova8bitdots/handgesturetool-for-applevisionpro https://speakerdeck.com/cova8bitdots/ninjagazetyping-zhi-zuo-mi-hua
Graffity は松 竹 様と共同開発した空間ゲーム「Craftrium」先 月 リリースしました 4 visionOS Engineer Meetup
vol.9 オンラインLT会
今回は置物の編集操作についての技術的な部分の紹介になります 5 visionOS Engineer Meetup vol.9 オンラインLT会 移動 回転 拡
大 ・縮 小
VisionPro のハンドジェスチャーとして紹介されているのは6種類あります 6 visionOS Engineer Meetup vol.9 オンラインLT会
Unity ではTap とTap終了のイベントしか開発者は受け取れません 7 visionOS Engineer Meetup vol.9 オンラインLT会
UnityはHandTracking(各関節位置・向きの情報)は基本的にはSpaces でしか利 用 できません ※Spaces=Unityでいう Unbounded 8 visionOS Engineer Meetup
vol.9 オンラインLT会
先ほどのような制約の中でどうやって今回の操作を実現したのか?の紹介です 9 visionOS Engineer Meetup vol.9 オンラインLT会 移動 回転 拡
大 ・縮 小
移動 SECTION 1
移動はシンプルにTap 11 visionOS Engineer Meetup vol.9 オンラインLT会 Begin End ?
移動はシンプルにTap 12 visionOS Engineer Meetup vol.9 オンラインLT会 Begin End ?
移動はシンプルにTap 13 visionOS Engineer Meetup vol.9 オンラインLT会 Begin End ?
Begin~End中はHoldのはず!
移動はシンプルにTap 14 visionOS Engineer Meetup vol.9 オンラインLT会
移動はシンプルにTap 15 visionOS Engineer Meetup vol.9 オンラインLT会 PolySpatialのTap イベント処理 実際のTapイベント
VolumeApp でも「Tap/Touch」イベントであれば 手 の位置は取得可能 16 visionOS Engineer Meetup vol.9 オンラインLT会
https://docs.unity3d.com/Packages/
[email protected]
/manual/PolySpatialInput.html
VolumeApp でも「Tap/Touch」イベントであれば 手 の位置は取得可能 17 visionOS Engineer Meetup vol.9 オンラインLT会
https://developer.apple.com/documentation/swiftui/spatialeventcollection/event
VolumeApp でも「Tap/Touch」イベントであれば 手 の位置は取得可能 18 visionOS Engineer Meetup vol.9 オンラインLT会
https://developer.apple.com/documentation/swiftui/spatialeventcollection/event
先ほどのTapイベントのdevice位置情報をうまく流し込んであげれば完成 19 visionOS Engineer Meetup vol.9 オンラインLT会
回転 SECTION 2
Unity では直接「Rotate」というイベントはとれません 21 visionOS Engineer Meetup vol.9 オンラインLT会
Tapイベントで 二 個以上ある場合は両 手 操作のはず 22 visionOS Engineer Meetup vol.9
オンラインLT会
Tapイベントで 二 個以上ある場合は両 手 操作のはず 23 visionOS Engineer Meetup vol.9
オンラインLT会 Touch/Tap数は とれる activeTouches[0]は最初にTapした 手 →右 手 /左 手 としては判定されないので注意
Tapイベントで 二 個以上ある場合は両 手 操作のはず 24 visionOS Engineer Meetup vol.9
オンラインLT会 ・右 手 /左 手 に依存するアルゴリズムはマズイ ・最初の 手 /2番 目 の 手 で成り 立 つアルゴリズムが 大 事
回転については、Rotation開始時の両 手 位置の線分(ベクトル) と 現在の両 手 位置の線分(ベクトル)の外積を回転軸として実装しました 25 visionOS Engineer
Meetup vol.9 オンラインLT会
回転については、Rotation開始時の両 手 位置の線分(ベクトル) と 現在の両 手 位置の線分(ベクトル)の外積を回転軸として実装しました 26 visionOS Engineer
Meetup vol.9 オンラインLT会 彡 彡
回転については、Rotation開始時の両 手 位置の線分(ベクトル) と 現在の両 手 位置の線分(ベクトル)の外積を回転軸として実装しました 27 visionOS Engineer
Meetup vol.9 オンラインLT会
回転については、Rotation開始時の両 手 位置の線分(ベクトル) と 現在の両 手 位置の線分(ベクトル)の外積を回転軸として実装しました 28 visionOS Engineer
Meetup vol.9 オンラインLT会 外積(回転軸) ( なす 角 :回転量
※ちなみにUnityは左 手 系なので、黒ベクトル x 赤 ベクトルの外積は 青方 向になるので お気をつけください(学校で習う右ネジの法則とかは右
手 系です) 29 visionOS Engineer Meetup vol.9 オンラインLT会 ( https://docs.unity3d.com/jp/2018.4/ScriptReference/Vector3.Cross.html
先ほどの計算結果をうまく流し込んであげれば完成 30 visionOS Engineer Meetup vol.9 オンラインLT会
拡 大 ・縮 小 SECTION 3
Unity では直接「Zoom」というイベントはとれません 32 visionOS Engineer Meetup vol.9 オンラインLT会
Tapイベントで 二 個以上ある場合は両 手 操作のはず 33 visionOS Engineer Meetup vol.9
オンラインLT会 Touch/Tap数は とれる 再掲
VolumeApp でも「Tap/Touch」イベントであれば 手 の位置は取得可能 34 visionOS Engineer Meetup vol.9 オンラインLT会
https://docs.unity3d.com/Packages/
[email protected]
/manual/PolySpatialInput.html 再掲
Scale操作については両 手 のTap開始時の位置線分と 現在の両 手 位置の線分の 長 さの 比 をとってあげる
35 visionOS Engineer Meetup vol.9 オンラインLT会
Scale操作については両 手 のTap開始時の位置線分と 現在の両 手 位置の線分の 長 さの 比 をとってあげる
36 visionOS Engineer Meetup vol.9 オンラインLT会
Scale操作については両 手 のTap開始時の位置線分と 現在の両 手 位置の線分の 長 さの 比 をとってあげる
37 visionOS Engineer Meetup vol.9 オンラインLT会 440%
先ほどの計算結果をうまく流し込んであげれば完成 38 visionOS Engineer Meetup vol.9 オンラインLT会
Apple公式が紹介しているジェスチャーはUnity上で実装してあげれば実現可能です • 詳しいコードの解説はQiita にて既に公開中なので 是 非 ご活 用 いただければと思います。 39
visionOS Engineer Meetup vol.9 オンラインLT会 移動 回転 拡 大 ・縮 小 • https://qiita.com/Cova8bitdot/items/9b8817cae59486914b75