mcpField
U
unity-xr

unity-xr

github.com/alphaonedev開発54 回インストール
リポジトリ

unity-xr について

unity-xr は、Unity で AR・VR アプリを開発するためのスキルです。XR インタラクション、AR Foundation の機能、複数ターゲット向けビルド、没入型プロジェクトの性能確認を扱います。

主な機能

  1. 01XR Interaction Toolkit による操作の作成
  2. 02AR Foundation による平面検出
  3. 03複数ターゲット向けビルド設定
  4. 04VR ポインターのレイキャスト実装
  5. 05Unity Profiler による性能監視

活用シーン

  1. 01オブジェクトをつかめる VR シーンの構築
  2. 02平面を検出する AR アプリの作成
  3. 03対象デバイス向け XR ビルドの自動化
  4. 04スタンドアロン VR ヘッドセットでの性能確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill unity-xr

インストール後、Claude Code で/unity-xrを入力して読み込まれたか確認します。

詳細

目的

このスキルは、Unity を使った XR アプリケーションの開発を自動化し、支援します。Oculus Quest や HoloLens などのデバイス向けに、ハンドトラッキング、空間オーディオ、マルチプラットフォームビルドといった AR/VR 機能に重点を置いています。Unity の XR エコシステムを活用し、没入型インタラクションのコードを効率化します。

使用する場面

バーチャルトレーニングシミュレーション、3D 製品ビジュアライゼーション、マルチプレイヤー VR ゲームなど、インタラクティブな AR/VR 体験を作成するときにこのスキルを使用します。Android ARCore や iOS ARKit に対応させる場合のように、デバイスに依存しないコードが必要なクロスプラットフォームプロジェクトや、スタンドアロン VR ヘッドセット向けにパフォーマンスを最適化するときにも適用します。

主な機能

  • 入力システム向けに XR Interaction Toolkit を処理します。XRBaseInteractable を使用して、VR シーン内でつかめるオブジェクトを定義します。
  • 統一された AR 開発向けに AR Foundation をサポートします。ARPlaneManager を使って平面検出を有効にし、表面を追跡します。
  • クロスプラットフォームの互換性を確保します。Unity の Player Settings API を使用して複数のターゲット向けにビルド設定を構成します。たとえば、特定のデバイス向けに XRSettings.enabled = true; を設定します。
  • 没入型インタラクションを管理します。XRInteractorLineVisual を使って VR ポインター用のレイキャストを実装し、2~3 行の C# コードで衝突を確認します。
  • パフォーマンスを最適化します。Unity の Profiler でフレームレートを監視し、XR プラグインと連携して VR の上限を 90 FPS に設定します。

使用パターン

基本的な XR プロジェクトを設定するには、まず Unity と XR パッケージを Package Manager からインストールします。XR Interaction Toolkit をインポートし、新しいシーンを作成して XR Rig プレハブを追加します。AR の場合は、スクリプトの Start() メソッドで AR Session を初期化します。必ず早い段階でターゲットのハードウェア上でテストしてください。VR インタラクションでは、GameObject にスクリプトをアタッチし、OnSelectEntered() などのイベントを処理します。コードはモジュール化し、入力処理とロジックを分離します。ビルド時には、自動化のためにコマンドラインビルドを使用します。たとえば、Unity -batchmode -projectPath /path/to/project -buildTarget Android -executeMethod BuildScript.PerformBuild を実行します。

一般的なコマンド/API

  • ビルド用 Unity CLI:Unity -quit -batchmode -projectPath /path/to/project -buildWindows64Player /output/path.exe を使用して VR ビルドをコンパイルします。出力には -logFile build.log を含めます。
  • XR Interaction API のスニペット:
    using UnityEngine.XR.Interaction.Toolkit;
    public class GrabHandler : XRGrabInteractable { void OnSelectEntered(SelectEnterEventArgs args) { transform.position = args.interactor.transform.position; } }
    
  • セッション管理用 AR Foundation API:
    using UnityEngine.XR.ARFoundation;
    public class ARManager : MonoBehaviour { private ARSession arSession; void Start() { arSession = FindObjectOfType<ARSession>(); arSession.enabled = true; } }
    
  • 設定形式:Unity の ProjectSettings/ProjectSettings.asset を編集して XR プラグインを設定します。たとえば、XRSettings の下に XR Plug-in Management: Oculus を追加します。API キー(AR サービス用など)には、ビルドスクリプトで $ARFOUNDATION_API_KEY のような環境変数を使用します。
  • 一般的なエンドポイント:Unity サービスと連携する場合は、クラウドビルド用の https://services.unity.com/api/v1/projects などの REST エンドポイントを参照します。認証には $UNITY_ACCESS_TOKEN を使用します。

統合に関する注意事項

Package Manager CLI で XR パッケージを追加し、このスキルを Unity のコアエンジンと統合します:Unity -projectPath /path -importPackage path/to/xri.unitypackage。外部ツールを使用する場合は、FBX モデルをエクスポートして Unreal や Blender と連携し、その後 Unity にインポートして XR スクリプトを適用します。バージョン管理を使用する場合は、.meta ファイルが追跡されていることを確認し、XR 設定を検証する Git フックを構成します。クラウド統合(Unity Cloud Build など)の認証には、$UNITY_PROJECT_ID のような環境変数を設定し、スクリプトで使用します:string projectId = System.Environment.GetEnvironmentVariable("UNITY_PROJECT_ID");。API の不一致を避けるため、統合するすべての環境で Unity のバージョンを必ず一致させてください。

エラー処理

デバイスが見つからないなど、よくある XR エラーを確認してください。セッションを開始する前に、コードで if (!XRSettings.isDeviceActive) { Debug.LogError("XR device inactive"); } を使用します。AR トラッキングの失敗には、ARSession.stateChanged イベントで対処します。

ARSession.stateChanged += OnStateChanged; void OnStateChanged(ARSessionStateChangedEventArgs args) { if (args.state == ARSessionState.Error) { Debug.LogError(args.errorCode); } }

デバッグには、Editor の設定で Unity の ErrorPause を使用します。ビルドエラーについては、スクリプトで CLI ログを解析します。たとえば、終了コードを確認します。if (process.ExitCode != 0) { throw new Exception("Build failed"); }。実行時例外に備えて、API 呼び出しは必ず try-catch ブロックで囲みます。たとえば、try { arSession.Reset(); } catch (Exception e) { Debug.Log(e.Message); }。

具体的な使用例

  1. VR インタラクションシーン:シンプルな VR グラバーを作成するには、Unity プロジェクトを作成し、XR Interaction Toolkit をインポートして、シーンに XR Rig を追加し、次のスクリプトをオブジェクトにアタッチします。

    using UnityEngine.XR.Interaction.Toolkit;
    public class SimpleGrabber : XRGrabInteractable { protected override void OnSelectEntered(SelectEnterEventArgs args) { rigidbody.isKinematic = true; } }
    

    Unity -batchmode -buildTarget Android -executeMethod BuildPipeline.BuildPlayer を使用して、Oculus デバイスでビルドして実行します。

  2. AR 平面検出:AR アプリでは、プロジェクトに AR Foundation を追加し、平面を検出するスクリプトを作成します。

    using UnityEngine.XR.ARFoundation;
    public class PlaneDetector : MonoBehaviour { private ARPlaneManager planeManager; void Start() { planeManager = gameObject.AddComponent<ARPlaneManager>(); planeManager.planesChanged += OnPlanesChanged; } }
    

    Unity -projectPath /path -buildTarget iOS -customBuildTarget iPhone を使用してビルドし、モバイルデバイスでテストします。

グラフの関係

  • 接続先:unity-core(一般的な Unity スクリプト作成機能とエンジン機能)
  • 所属先:ar-vr クラスター(ほかの AR/VR スキルと依存関係を共有)
  • 関連先:3d-modeling(XR シーンへのアセットのインポート)

コメント