この記事のゴール

MetaQuest3でMRデモ 3. QuestCameraTools-Unity/QRTracking-6000を自作モデルで実装でQRコードで表示させる3Dモデルの位置をコントローラーで微調整できるようにする.

現実空間のものと3Dモデルを重ねる際,QRコードと相対座標で頑張って合わせてもどうしても微妙にずれてしまうだろうと思い,コントローラーで微調整できるスクリプトを作りました.ModelContainerのコンポーネントとして追加してください.
MetaQuest3でMRデモ 4. QuestCameraTools-Unity/QRTracking-6000を時間経過で3Dモデル表示切替とセットにしたバージョンもあるのでどうぞ.

  • 現在のTransformの情報が可視化された方が分かりやすいかと思い,Canvas_ui/Status(TextMeshPro)のオブジェクトをModelContainerの子の位置に作っていることを前提にしたコードになっています.
  • コントローラーのサムスティックを倒すとオブジェクトが平行移動し,左コントローラーのXボタン(Button.Three)を押すと回転に切り替わります.平行移動に戻したい際はもう一度左コントローラーのXボタンを押してください.
  • ゆっくり倒して微調整してください.また,上下左右のうち倒さなかった方の傾きが微妙に適用されるのが嫌だったので,倒れ具合が大きいほうだけ採用するようにしています.

こちらでもdefaultの方にMeshLenderやマテリアルがある際は適宜修正してください.

aligncontroller.cs
changemodel.csとの統合版