Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ワコムのペンタブを使ったMagic Leap 1 アプリケーション、Unityで作れ〼

2020年12月17日(木)19時~22時まで開催された「Magic Leap Meetup vol.2」で「ワコムのペンタブを使ったMagic Leap 1 アプリケーション、Unityで作れ〼」というお話をさせていただきました!
https://magicleap.connpass.com/event/195213/

  • Be the first to comment

  • Be the first to like this

ワコムのペンタブを使ったMagic Leap 1 アプリケーション、Unityで作れ〼

  1. 1. REALITY IS JUST BEGINNING 1
  2. 2. MAGICLEAP 2020 2 ワコムのペンタブを使ったMagic Leap 1 アプリケーション、Unityで 作れ〼 Magic Leap Meetup vol.2 in Japan 2020.12.17
  3. 3. MAGICLEAP 2020 目次 01. 自己紹介 02. ワコムのペンタブレットについて Magic Leap 1をサポートしているペンタブレットの紹介から 各ボタンの説明。 03. 開発について ペンタブレットの取得できる情報から使用するクラスやメソッドなどを紹介。 04. お知らせ 3
  4. 4. MAGICLEAP 2020 4 自己紹介 01
  5. 5. MAGICLEAP 2020 Place image here 自己紹介 5 Sadao Tokuyama 株式会社OnePlanet XR Enginner 徳山 禎男 tokuyama@1planet.co.jp @tokufxug
  6. 6. MAGICLEAP 2020 Spatial Tag 6 Place image here 現実空間に付箋を貼りつける Landscapeアプリ Place image here Invisible Laughing Ghost 見えないゴーストを音声とライトで 見つけて退治するゲーム ● 開発ツール: Unity ● 空間オーディオを使用。 ● https://world.magicleap.com/ja-jp/det ails/net.magicmodelers.invisiblecryin gcreature Handrawn Place image here 球体をつなげてモデルを作成する アプリ ● 開発ツール: Unity ● ハンドトラッキングを使用。 ● https://world.magicleap.com/ja-jp/det ails/net.magicmodelers.concepts.ha nddrawn ● 開発ツール: Magic Script ● 複数のPrism生成処理を実施。 ● https://world.magicleap.com/ja-jp/det ails/net.magicmodelers.magicleap.c oncepts.spatialtag 自己紹介 Magic Leap World にリリースした アプリケーション
  7. 7. MAGICLEAP 2020 7 ワコムのペンタブ レットについて 02
  8. 8. MAGICLEAP 2020 Wacom Pro Pen 3D ワコムのペンタブレットについて Magic Leap 1に対応しているペンタブレットを紹介。 8 Wacom Intuos Pro M Model:PTH-660 標準で付属している Wacom Pro Pen 2 をサポート Wacom Pro Pen 3Dに搭載している 下スイッチに対応。 https://store.wacom.jp/products/detail.php?product_id=3513 https://store.wacom.jp/products/detail.php?product_id=3526
  9. 9. MAGICLEAP 2020 9 ワコムのペンタブレットについて ボタンの説明 ファンクションキー 通常はよく使用する機能の呼び出し設定に 使用するボタン。 ファンクションキーは、 上に4つ、下に4つの計8つ備わってます。
  10. 10. MAGICLEAP 2020 10 ワコムのペンタブレットについて ボタンの説明 タッチホイール 通常、タッチホイールの上を指でなぞって、 ズームやスクロールなどを行います。
  11. 11. MAGICLEAP 2020 11 ワコムのペンタブレットについて ボタンの説明 センターボタン 通常、タッチホイールに割り当てられた機能の 切り替えなどに使用します。
  12. 12. MAGICLEAP 2020 12 ワコムのペンタブレットについて ボタンの説明 サイドスイッチ(下) 通常、左ダブルクリック(カスタマイズ可) Wacom Pro Pen 2D サイドスイッチ(上) 通常、右ボタンクリック(カスタマイズ可)
  13. 13. MAGICLEAP 2020 13 ワコムのペンタブレットについて ボタンの説明 サイドスイッチ(下) 通常、3Dオブジェクトの拡大縮小、移動 (カスタマイズ可) サイドスイッチ(中) 通常、3Dオブジェクトの回転 (カスタマイズ可) サイドスイッチ(上) 通常、右ボタン(カスタマイズ可) Wacom Pro Pen 3D
  14. 14. MAGICLEAP 2020 14 Bluetoothによる接 続に対応。 ワコムのペンタブレットについて Magic Leap 1 と ワコムペンタブレットの接続方法
  15. 15. MAGICLEAP 2020 15 開発について 03
  16. 16. MAGICLEAP 2020 16 開発について サポートバージョン Lumin OS 0.96.0~ Lumin SDK 0.21.0~
  17. 17. MAGICLEAP 2020 17 開発について 使用するクラス UnityEngine.XR.MagicLeap.MLInput Control の入力情報の取得する際に MLInput クラスを使用しますが、ワコムのペンタ ブレットの入力情報を取得する場合も、 MLInputクラスを使用します。 https://developer.magicleap.com/learn/reference/public/v0.24.0/UnityAPI/class_unity_e ngine_1_1_x_r_1_1_magic_leap_1_1_m_l_input.html
  18. 18. MAGICLEAP 2020 18 開発について 使用するクラス UnityEngine.XR.MagicLeap.MLInput Control と同じように使用前に MLInput.Startを呼び出しますが、6DoFを使用しないた め、引数の MLInput.Configurationのコンストラクタ引数は falseを設定します。 MLResult result = MLInput.Start(new MLInput.Configuration(false));
  19. 19. MAGICLEAP 2020 19 開発について ワコムのペンタブレットで使用するdelegate MLInput.OnTabletConnected このコールバックは、タブレットデバイスが接続されているときに呼び出されます。 MLInput.OnTabletDisconnected このコールバックは、タブレットデバイスが切断されたときに呼び出されます。 public delegate void TabletConnectionDelegate(byte tabletId) Delegate
  20. 20. MAGICLEAP 2020 20 開発について ワコムのペンタブレットで使用するdelegate MLInput.OnTabletButtonDown このコールバックは、タブレットのボタン押下が検出されたときに呼び出されます。 MLInput.OnTabletButtonUp このコールバックは、タブレットのボタンが離されたときに呼び出されます。 public delegate void TabletButtonDelegate(byte tabletId, TabletDeviceButton tabletButton, ulong timestamp ) Delegate
  21. 21. MAGICLEAP 2020 21 開発について ワコムのペンタブレットで使用するdelegate TabletDeviceButton 以下の enum(列挙型) を持っている。 Unknown Button7 Button1 Button8 Button2 Button9 Button3 Button10 Button4 Button11 Button5 Button12 Button6 -
  22. 22. MAGICLEAP 2020 22 開発について ワコムのペンタブレットで使用するdelegate TabletDeviceButtonButton1 Button2 Button3 Button4 Button5 Button6 Button7 Button8 Button9
  23. 23. MAGICLEAP 2020 23 開発について ワコムのタブレットで使用するdelegate TabletDeviceButton Wacom Pro Pen 3D Wacom Pro Pen 2D Button10 Button11 Button12 Button10 Button11
  24. 24. MAGICLEAP 2020 24 開発について ワコムのペンタブレットで使用するdelegate MLInput.OnTabletRingTouch このコールバックは、タッチホイールイベントが検出されたときに呼び出されます。 public delegate void OnRingTouchDelegate(byte tabletId, int touchRingValue, ulong timestamp ) Delegate
  25. 25. MAGICLEAP 2020 25 開発について ワコムのペンタブレットで使用するdelegate MLInput.OnTabletRingTouch このコールバックは、タッチホイールイベントが検出されたときに呼び出されます。 ワコムの touchRingValue には 72 段階のレベルがあり、 0 から 71 までの値が あります。 値は絶対値で あり、 開始位置との 相対値では ありません。 0 0~71 まで
  26. 26. MAGICLEAP 2020 26 開発について ワコムのペンタブレットで使用するdelegate MLInput.OnPenTouchDelegate このコールバックは、ペンタッチイベントが検出されたときに呼び出されます。 public delegate void OnPenTouchDelegate(byte tabletId, TabletState tabletState ) Delegate
  27. 27. MAGICLEAP 2020 27 開発について ワコムのペンタブレットの情報 TabletState タブレットの状態に関する情報を含んだ構造体 IsPenTouchActive:bool ペンがタブレットに触れている状態を判定する フラグ。 IsConnected:bool タブレットがMagic Leap 1 との接続状態を判 定するフラグ。 PenDistance:float タブレットとペンの距離。 TimeStamp:ulong イベント発火時のタイムスタンプ。 1 / 4
  28. 28. MAGICLEAP 2020 28 開発について ワコムのペンタブレットの情報 TabletState PenDistance 0.0cm ~ 1.0cm 1.0cm以上離れた場合、 1.0cmが返却されます。 ペンがタブレットに押し付けた 状態が0.0cm
  29. 29. MAGICLEAP 2020 29 開発について ワコムのペンタブレットの情報 TabletState タブレットの状態に関する情報を含んだ構造体 Type:MLInput.TabletDeviceType Unknown Wacom ToolType:MLInput.TabletDeviceToolType Unknown Pen Eraser 2 / 4
  30. 30. MAGICLEAP 2020 30 開発について ワコムのペンタブレットの情報 TabletState MLInput.TabletDeviceToolType Pen Eraser タブレットに対し、ペンの向きによって TabletDeviceToolTypeが以下のように変わります。 タブレットから約 1cm内で検知 タブレットから約 1cm内で検知
  31. 31. MAGICLEAP 2020 31 開発について ワコムのペンタブレットの情報 TabletState タブレットの状態に関する情報を含んだ構造体 PenTouchPosAndForce:Vector3 現在のタッチ位置(x ,y) 筆圧(z) タッチ位置の範囲は -1.0 ~1.0。 筆圧の範囲は 0.0 ~ 1.0。 AdditionalPenTouchData:int[] (0要素目 = x, 1要素目 = y, 2要素目 = z) 追加の座標値(x,y, z)デバイスに対し、固有 のデータを含まれています。 ワコムのタブレットは、ペンの傾きのデータ (x, y)を-64から64度までの角度で保持します。 まっすぐの状態が0度です。 (zは常に0が返ってきます。) 3 / 4
  32. 32. MAGICLEAP 2020 32 開発について ワコムのペンタブレットの情報 TabletState PenTouchPosAndForce ペンのタッチポジションの起点はタブレットの真ん中。 以下のようにタッチの範囲は -1.0~1.0(少数第一位まで) y x -1.0 +1.0 +1.0-1.0
  33. 33. MAGICLEAP 2020 33 開発について ワコムのペンタブレットの情報 TabletState PenTouchPosAndForce タブレットから約 1cm内で検知 ペンがタブレットに触れていない時の筆圧は 0。 少し触れた時点で0.1~0.2。かなり押し付けないと 1.0まで到達しない。
  34. 34. MAGICLEAP 2020 34 開発について ワコムのペンタブレットの情報 TabletState AdditionalPenTouchData ペンの傾きによって角度を取得する ことができます。 タブレットから約 1cm内で検知 タブレットに対し、ペンの傾きの角度が取得できます。 ペンがタブレットから 0~1cm以内の距離で角度の情報が取得できます。
  35. 35. MAGICLEAP 2020 35 開発について ワコムのペンタブレットの情報 TabletState AdditionalPenTouchData タブレットに対し、ペンの傾きの角度が取得できます。 ペンがタブレットから 0~1cm以内の距離で角度の情報が取得できます。 y x -64 +64 +64-64
  36. 36. MAGICLEAP 2020 36 開発について ワコムのペンタブレットの情報 TabletState タブレットの状態に関する情報を含んだ構造体 ValidityCheck:TabletDeviceStateMask この構造体のどのデータが有効かを判断する ために使用されます。 例: AdditionalPenTouchDataを使用する前に、 ValidityCheckでその変数が有効かどうかを チェックします。 4 / 4
  37. 37. MAGICLEAP 2020 37 開発について ワコムのペンタブレットの情報 TabletState この例はペンの傾き情報のデータが有効であれば、 AddtionalPenTouchDataから回転情報を求めて、 ペンの3Dモデルに反映させています。 If (tabletState.ValidityCheck.HasFlag( MLInput.TabletDeviceStateMask.HasAdditionalPenTouchData)) { _pen.localRotation = Quaternion.Euler(-90, 0, 0) * Quaternion.Euler( tabletState.AdditionalPenTouchData[1] , tabletState.AdditionalPenTouchData[0] * -1 , 0); }
  38. 38. MAGICLEAP 2020 38 開発について Example の紹介 ワコムのタブレットによる Exampleは、Magic Leap Unity Packageに含まれています。 (Assets/MagicLeap/Examples/Intermediate/Scenes/WacomTablet.unity)
  39. 39. MAGICLEAP 2020 39 開発について まとめ まとめ 1. Wacom の ペンタブレットを使ったアプリケーション開発が、 Unityで行うことができます。 2. Magic Leap 1 の Lumin OS v0.96.0~、Lumin SDK 0.21.0~対応し ています。 3. UnityEngine.XR.MagicLeap.MLInputでペンタブレットの接続、切断、 ペンタブレットやペン状態や情報を取得できます。
  40. 40. MAGICLEAP 2020 40 お知らせ 04
  41. 41. MAGICLEAP 2020 41 お知らせ Magic Leap Advent Calendar 2020 の 紹介 現在、Magic Leap Advent Calendar 2020 開催中です。今回のワコムタブレットについて 2020年12月18日(金)に投稿します。こちらも見て頂ければ幸いです。
  42. 42. MAGICLEAP 2020 42 THANK YOU
  43. 43. MAGICLEAP 2020 43 Q&A TIME
  44. 44. MAGICLEAP 2020 44 宣伝 05
  45. 45. MAGICLEAP 2020 45 宣伝 Magic Leap ブログ 知っ徳!納徳 Magic Leap https://medium.com/japanese-magic-leap-fans
  46. 46. MAGICLEAP 2020 46 宣伝 LEAPERS JAPAN Facebook Group https://www.facebook.com/groups/LEAPERSJAPAN
  47. 47. MAGICLEAP 2020 47 宣伝 Magic Leap コンテンツを日本から世界へ https://xr-hub.com/archives/24309
  48. 48. MAGICLEAP 2020 48 宣伝 Magic Leap Japan @ Twitter https://twitter.com/magicleapjapan
  49. 49. MAGICLEAP 2020 49 宣伝 NTT ドコモ XR サイト https://xr.docomo.ne.jp/

×