$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Craftrium で実現したObjectの両手操作による編集機能
Search
Graffity
February 14, 2025
Technology
0
47
Craftrium で実現したObjectの両手操作による編集機能
Graffity
February 14, 2025
Tweet
Share
More Decks by Graffity
See All by Graffity
VisionOSTC_2025_ja
graffity
0
49
Introduce technical issue and solution of various genre games for Apple Vision Pro
graffity
0
27
Unity-Groq × AI × 音声認識
graffity
0
26
AppStoreConnectAPIを使って端末登録作業を自動化しよう!(Unity CI/CD 完全に理解した 勉強会)
graffity
0
460
AppleVisionProCICD
graffity
0
550
HandgestureTool for AppleVisionPro
graffity
0
110
NinjaGazeTyping
graffity
0
65
Graffity 採用候補者の皆様へ
graffity
2
23k
Other Decks in Technology
See All in Technology
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
19
7.5k
Snowflake導入から1年、LayerXのデータ活用の現在 / One Year into Snowflake: How LayerX Uses Data Today
civitaspo
0
2.3k
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
2
190
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
400
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
160
AR Guitar: Expanding Guitar Performance from a Live House to Urban Space
ekito_station
0
150
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
230
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
870
ActiveJobUpdates
igaiga
1
310
LayerX QA Night#1
koyaman2
0
250
ExpoのインダストリーブースでみたAWSが見せる製造業の未来
hamadakoji
0
190
Kiro を用いたペアプロのススメ
taikis
4
1.7k
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
390
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
850
Optimizing for Happiness
mojombo
379
70k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
400
A better future with KSS
kneath
240
18k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.2k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
190
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.8k
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