mcpField
T
threejs-interaction

threejs-interaction

github.com/cesartevisual開発11394 回インストール7 週間前に更新
リポジトリ

threejs-interaction について

threejs-interactionは、Three.jsプロジェクトでピッキングと操作を実装するためのスキルです。ポインターやタッチ操作、座標処理、選択状態、複雑なシーンでの検証を扱います。

主な機能

  1. 01ポインターとタッチ操作の指針
  2. 02ビューポート基準の座標変換
  3. 03レイキャストと選択処理
  4. 04ドラッグとコントロールの連携
  5. 05操作の検証チェックリスト

活用シーン

  1. 01Three.jsシーンにオブジェクト選択を追加
  2. 02トランスフォーム操作付きのドラッグを実装
  3. 03分割ビューポートで選択を行う
  4. 04タッチとキーボード操作を検証

インストール

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

$npx skills add https://github.com/cesartevisual/threejs-skills --skill threejs-interaction

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

詳細

ピッキングとコントロール

プロジェクトにインストールされているバージョンと既存のアーキテクチャを使用してください。これらの指示はユーザーのタスクを補足するものであり、無関係な変更や外部での操作を許可するものではありません。

タスクに応じてコントロールを選び、インタラクティブ領域の外では通常のページスクロールを維持してください。重要な操作について、ポインター、タッチ、キーボード、HTML の各同等操作を定義してください。選択状態は、一時的なメッシュインデックスだけではなく、安定した ID をキーとしてアプリケーションの状態に保持してください。

実際のイベントのビューポート矩形を使用して、クライアント座標を変換してください:x = 2 * (clientX - left) / width - 1、y = 1 - 2 * (clientY - top) / height。シザー表示では、そのビューの矩形を使用してください。サイズが 0 のビューは無視してください。関連するルート/レイヤーのみをレイキャストし、子孫、インスタンス ID、表裏面の挙動を考慮してください。

移動距離のしきい値を使って、クリックとドラッグを区別してください。キャンバスの外までドラッグする場合はポインターキャプチャを使用し、pointercancel とキャプチャの喪失に対処してください。オブジェクト操作がジェスチャーを制御している間はオービットコントロールを一時停止し、すべての終了経路で必ず復元してください。

ドラッグ平面とトランスフォームギズモでは、ワールド座標の結果をオブジェクトの親空間に変換してください。用途に応じて、スケールの制約とヒット許容範囲を設定してください。シェーダーによる可視変形は CPU レイキャストと一致しない場合があります。必要に応じてプロキシジオメトリなど、別のピッキング方法を使用してください。

負荷の高いホバー処理は描画フレームに合わせて間引き、メモリー割り当てを再利用し、コントロールとリスナーを破棄してください。キャンバスのオフセット、タッチのキャンセル、ネストされたトランスフォーム、遮蔽、キーボードによる選択、リスト更新後のインスタンス選択を検証してください。

API リファレンス

正確なシグネチャとリビジョン固有の挙動については、公式ドキュメントを参照してください。ドキュメントにアクセスできない場合は、インストール済みの型定義/ソースを調べ、残る不確実性を明記してください。

コメント