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
Graffity
February 14, 2025
Technology
0
33
Craftrium で実現したObjectの両手操作による編集機能
Graffity
February 14, 2025
Tweet
Share
More Decks by Graffity
See All by Graffity
AppStoreConnectAPIを使って端末登録作業を自動化しよう!(Unity CI/CD 完全に理解した 勉強会)
graffity
0
390
AppleVisionProCICD
graffity
0
480
HandgestureTool for AppleVisionPro
graffity
0
86
NinjaGazeTyping
graffity
0
55
Graffity 採用候補者の皆様へ
graffity
1
20k
Other Decks in Technology
See All in Technology
Recoil脱却の現状と挑戦
kirik
3
460
データエンジニアがクラシルでやりたいことの現在地
gappy50
3
640
会社もクラウドも違うけど 通じたコスト削減テクニック/Cost optimization strategies effective regardless of company or cloud provider
aeonpeople
2
360
複数のGemini CLIが同時開発する狂気 - Jujutsuが実現するAIエージェント協調の新世界
gunta
13
3.7k
興味の胞子を育て 業務と技術に広がる”きのこ力”
fumiyasac0921
0
290
From Live Coding to Vibe Coding with Firebase Studio
firebasethailand
1
300
MCPと認可まわりの話 / mcp_and_authorization
convto
2
290
Datasets for Critical Operations by Dataform
kimujun
0
120
クマ×共生 HACKATHON - 熊対策を『特別な行動」から「生活の一部」に -
pharaohkj
0
180
地域コミュニティへの「感謝」と「恩返し」 / 20250726jawsug-tochigi
kasacchiful
0
100
【CEDEC2025】LLMを活用したゲーム開発支援と、生成AIの利活用を進める組織的な取り組み
cygames
PRO
1
1.6k
Microsoft Learn MCP/Fabric データエージェント/Fabric MCP/Copilot Studio-簡単・便利なAIエージェント作ってみた -"Building Simple and Powerful AI Agents with Microsoft Learn MCP, Fabric Data Agent, Fabric MCP, and Copilot Studio"-
reireireijinjin6
1
120
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Designing for humans not robots
tammielis
253
25k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
The Cost Of JavaScript in 2023
addyosmani
51
8.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Documentation Writing (for coders)
carmenintech
72
4.9k
How GitHub (no longer) Works
holman
314
140k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
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