MX Ink Integration
このアドオンは、Logitech MX Ink penをFusionプロジェクトに導入する方法を示します。
これはUnity integration packageを含み、Meta SDKがインストールされていない・ペンが利用不可などの特別なエラー制御や、コンポーネントで継承可能になるような修正が行われています。
内容
HardwareMXPen
HardwareMXPen
コンポーネントは、LogitechのUnity integration packageの中で提供されている親クラスVrStylusHandler
を微修正したものです。
大部分は、エディター上でMX Inkのエミュレーションを強制するもので、2つのオプションがあります。
forceRightHandPen
:true
の場合、エディター上では、右コントローラーがMX Penとして扱われます(実際にMX Penであるかどうかにかかわらず)forcedHandPenIsAController
:デフォルトでは、先端の入力圧はコントローラーのxスティック軸になり、圧無しの値は1、最大圧の値は0になります。true
の場合、このロジックが反転し、コントローラーは描画を行わないものとして使用できます。false
の場合、デフォルトのロジックが使用され、実際のMX Penが通常通り振る舞うコントローラーになります。
HardwareMXPen
は、ローカルのペンを検知するため、ハードウェアリグに付いていることを想定しています。
VrStylusHandler
と同じように、left_touch_controller
とright_touch_controller
が提供されていて、コントローラーのかわりにペンが検知された時に適切な方を非表示にします。
NetworkMXPen
NetworkMXPen
クラスは、LineDrawingアドオンのNetworkLineDrawer
を操作します。
現在の実装は、以下のようなロジックになっています。
- MX Inkか先端ボタンが押された時に描画点を追加する(そして必要に応じて、線の描画を開始する)
- 入力圧が0になったら、現在の線の描画を停止する
- 別のボタンが押されたら、現在の描画を停止する
- ペンの停止を検知したら、現在の描画を停止する
またこのクラスは、MX Inkが手と置き換わった時に、どちらのネットワークリグを隠すかの指定を管理します。NetworkHand
コンポーネント使用時にautomaticallyDetectNetworkHands
値をtrue
に設定すると、これは自動的に調整が行われます。
依存関係
デモ
デモシーンはAssets\Photon\FusionAddons\MXInkIntegration\Demo\
フォルダーにあります。
このシーンをテストする場合は、Meta Packagesがプロジェクトにインストールされている必要があります。
あるいは、Meta Packagesを含むMeta XR integrationプロジェクトを使用して、直接テストすることもできます。
Download
このアドオンの最新バージョンは、無料のXR アドオンのプロジェクトに含まれています。
対応するトポロジー
- 共有モード
更新履歴
- Version 2.0.1:
- Add collider to prefab, and some fixes to ensure BlockingContact compatibility
- Add feedback class
- Version 2.0.0: First release