threejs-camera について
three.js の開発者やエージェント向けのカメラスキルで、標準的な投影カメラに加え、キューブ、マルチビュー、ステレオカメラも扱います。パラメーター設定、リサイズ対応、性能上の注意点を案内します。
主な機能
- 01透視カメラと正投影カメラの設定
- 02視野角とクリッピング面の調整
- 03CubeCamera による環境マップ
- 04ArrayCamera と StereoCamera の理解
- 05リサイズと投影行列への対応
活用シーン
- 01シーンに適した透視投影または正投影の選択
- 02リサイズ後のカメラアスペクト比の更新
- 03リアルタイム環境反射の生成
- 04非 XR のステレオまたはマルチビュー設定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ full-stack-skills/ threejs-skills --skill threejs-cameraインストール後、Claude Code で/threejs-cameraを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yamlexamples/workflow-perspective-resize.md
詳細
このスキルを使うタイミング
ユーザーが次の内容に言及した場合は、必ずこのスキルを使用してください:
- パースペクティブと正投影の切り替え、
fov、aspect、zoom、near、far - リアルタイム環境マップや反射に使う
CubeCamera(更新頻度に関する注意点) - マルチビューやステレオのオフアクシス投影(非XR)に使う
ArrayCamera/StereoCamera
重要:camera、webxr、postの使い分け
| トピック | スキル |
|---|---|
| 標準的なデスクトップ投影 | threejs-camera |
| XR参照空間、IPD | threejs-webxr |
| composer内のオフスクリーンパス用カメラ | threejs-postprocessing |
トリガーとなる語句の例:
- 「PerspectiveCamera」、「OrthographicCamera」、「CubeCamera」、「aspect」、「near」、「far」
- 「パースペクティブカメラ」、「正投影」、「立方体カメラ」
このスキルの使い方
- パースペクティブ:
aspectを幅/高さに設定し、リサイズ時に更新します(threejs-renderersのワークフロー例)。 - 正投影:CADや2.5Dビューでは、ワールド単位で
left/right/top/bottomを定義します。 - near/far:シーンの範囲を収めつつ、深度精度とのバランスを取ります。フォグとの関係はthreejs-scenesを参照してください。
- CubeCamera:反射プローブの位置に配置します。シーンが十分に静止しているタイミングで
updateを呼び出し、ドキュメントに従ってレンダーターゲットの出力を使用します。 - Stereo/Array:高度な機能です。目のパラメーターについてはドキュメントを参照し、XRについてはthreejs-webxrに案内します。
- 投影行列:パラメーターを編集した後に
updateProjectionMatrix()を呼び出します。 - ヘルパー:
CameraHelperはthreejs-helpersにあります。
examples/workflow-perspective-resize.mdを参照してください。
ドキュメント一覧(公式)
対象範囲
- 対象: コアのカメラクラスとパラメーター、キューブ/アレイ/ステレオの概要。
- 対象外: WebXR参照空間、目の行列、セッションのライフサイクル(threejs-webxr)、シャドウマップカメラの調整(threejs-lights)、composer内のパス専用カメラ(threejs-postprocessing)。
よくある落とし穴とベストプラクティス
- リサイズ後に
aspectが正しくないと画像が引き伸ばされます。必ずキャンバスと同期してください。 - 大きなワールドで
nearが小さすぎると、深度精度が低下します。 - 毎フレーム
CubeCameraを更新すると処理負荷が高くなるため、パフォーマンスのために更新頻度を抑えてください。
ドキュメントとバージョン
カメラのパラメーターとCubeCameraの更新動作は、three.js docsのCamerasセクションに準拠しています。WebXRでは異なる投影経路を使用します。ユーザーがヘッドセットや参照空間に言及した場合は、threejs-webxrに案内してください。
エージェントの回答チェックリスト
このスキルを使用して回答する際は、次のような回答を優先してください。
- 該当する場合は、
PerspectiveCamera、OrthographicCamera、またはCubeCameraへのリンクを含めます。 - 該当する場合は、リサイズとthreejs-renderersの
setSize/DPRのパターンを組み合わせて説明します。 XR/WebXRManagerに関する質問は、レンダラーについて一言触れたうえでthreejs-webxrに案内します。- 内部パラメーターを変更した後は
updateProjectionMatrix()を呼び出すことに触れます。 - ライトについて説明する際にシャドウフラスタムのデバッグに言及する場合は、threejs-helpersの
CameraHelperを使用します。
参考資料
- https://threejs.org/docs/#Cameras
- https://threejs.org/docs/PerspectiveCamera.html
- https://threejs.org/docs/CubeCamera.html
キーワード
英語: perspectivecamera, orthographiccamera, cubecamera, projection, aspect, near, far, three.js
中国語: カメラ、パースペクティブ、正投影、投影、近クリップ、遠クリップ、CubeCamera、three.js
コメント
Markdown 対応