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
62
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Craftrium で実現したObjectの両手操作による編集機能
Graffity
February 14, 2025
More Decks by Graffity
See All by Graffity
VisionOSTC_2025_ja
graffity
0
110
Introduce technical issue and solution of various genre games for Apple Vision Pro
graffity
0
45
Unity-Groq × AI × 音声認識
graffity
0
71
AppStoreConnectAPIを使って端末登録作業を自動化しよう!(Unity CI/CD 完全に理解した 勉強会)
graffity
0
520
AppleVisionProCICD
graffity
0
610
HandgestureTool for AppleVisionPro
graffity
0
190
NinjaGazeTyping
graffity
0
86
Graffity 採用候補者の皆様へ
graffity
2
25k
Other Decks in Technology
See All in Technology
脆弱性対応、どこで線を引くか
rymiyamoto
1
400
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
4
690
日本 Fintech 未来予測レポート 2027〜2028年(オリジナル版)
8maki
0
2.3k
アンオフィシャルな、オフィシャルからのお願い
wyamazak_devrel
0
120
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
120
AIはどのように 組織のアジリティを変えるのか?
junki
4
960
2026TECHFRESH畢業分享會 - AI 時代的人生存檔點
line_developers_tw
PRO
0
1.1k
Chainlitで作るお手軽チャットUI
ynt0485
0
260
SONiCのLinuxベースを活かしたZabbix監視
sonic
0
180
ルールやカスタム機能、どう活かす?ハンズオンで体感するIBM Bobの出力コントロール
muehara
1
170
やさしいA2A入門
minorun365
PRO
12
1.9k
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
680
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.3k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
Statistics for Hackers
jakevdp
799
230k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
65
55k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
The SEO identity crisis: Don't let AI make you average
varn
0
490
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
390
Amusing Abliteration
ianozsvald
1
200
Art, The Web, and Tiny UX
lynnandtonic
304
22k
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