apply-conventions について
PlayCanvas エンジン開発向けの規約スキルです。座標、API、カメラ、マテリアル、境界の指針をまとめ、実行中のアプリでの検証を重視します。
主な機能
- 01座標と向きの規約
- 02現行 PlayCanvas API の利用指針
- 03カメラ操作と視野角の注意点
- 04マテリアル編集と境界の指針
- 05実行時の検証方法
活用シーン
- 01実装前のエンジン規約確認
- 02現行 PlayCanvas API の選定
- 03モデルの向きや照明の問題調査
- 04実行中アプリでの配置確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ playcanvas/ skills --skill apply-conventionsインストール後、Claude Code で/apply-conventionsを入力して読み込まれたか確認します。
詳細
エンジンの規約
バージョンによって異なる API は、インストール済みの playcanvas の宣言で確認してください。
座標
- 右手系、+Y が上、単位はメートルです。
entity.forward、カメラ、lookAtは -Z を使用します。 - ディレクショナルライトとスポットライトは、ローカルの -Y 方向(デフォルトでは真下)を照らします。
lookAtではなく、setEulerAnglesで向きを調整してください。 - glTF モデルは通常 +Z を向いています。モデルごとのヨー角を
calibrate-modelで記録してください。 - 角度 API は XYZ 順の度数を受け取ります。ピッチ、ヨー、ロールはアプリの状態として保持し、
getEulerAngles()の結果をsetEulerAngles()に渡し直さないでください。補間にはmath.lerpAngleまたはQuat.slerpを使用してください。 - 意味的なルートにはワールド座標のセッターを使い、親の下では
setLocal*を使ってください。剛体ルートやスキン付きボーンをスケーリングしないでください。
現在の API
modelとanimationではなく、renderとanimコンポーネントを使用します。createScriptではなく、ESM のclass X extends Scriptとstatic scriptNameを使用します。createBoxなどのcreate*ヘルパーではなく、Mesh.fromGeometry(device, new BoxGeometry())を使用します。playcanvasから名前付きインポートを使用し、同梱スクリプトはplaycanvas/scripts/esm/**からのみ使用します。
カメラ
- FOV はデフォルトで 45° の垂直視野角です。操作を作成する前に、同梱のカメラスクリプトを確認してください(
reuse-scripts)。
マテリアルと境界
StandardMaterial.useMetalnessのデフォルトはfalseです。metalnessを使用する前に有効にしてください。- プロパティを変更した後は
material.update()を呼び出してください。メッシュごとの値には、更新やクローンを行わずにmeshInstance.setParameter()を使用します。 - 一部のメッシュ用に共有マテリアルを編集する前に、インポート済みのものも含めてクローンしてください。
setParameterは生の値をアップロードします。sRGB カラーはColor#linear()で変換してください。- デフォルトでは裏面がカリングされ、反時計回りのワインディングが表面です。
- エンティティに
aabbはありません。子孫のmeshInstance.aabbを結合してください。mesh.update()で境界が更新されない場合は、mesh.aabbを自分で設定し、頂点シェーダーによる変位分も拡張してください。
実行中のアプリで検証する
オフラインの値だけでは、向き、ポーズ、配置を証明できません。inspect-runtime を使って実行中のアプリから値を読み取り、実際に確認したスクリーンショットだけを根拠に見た目を判断してください。ファイルパスが保存されているだけでは証拠になりません。
コメント
Markdown 対応