スクリプト属性
スクリプト属性は、PlayCanvasの強力な機能であり、スクリプトのパブリックで設定可能なインターフェースを定義します。これらを使用すると、コードでスクリプトをインスタンス化または設定する際にプログラムで、あるいはPlayCanvas Editor内で視覚的に、簡単に調整できる特定のパラメーターを公開できます。これは、スクリプトを一度書けば、異なるインスタンスや異なるチームメンバーによって、その動作やプロパティを簡単に調整できることを意味します。
スクリプト属性を使用する理由
- 明確なパブリックインターフェース: 属性は、スクリプトのどの部分をカスタマイズすることを意図しているかを正式に定義し、コードの明確性と保守性を向上させます。
- エディタとの統合(オプション): PlayCanvas Editorを使用する場合、属性はInspector panelに編集可能なフィールドとして表示されます。これにより、アーティスト、デザイナー、その他の開発者がコードを深く掘り下げることなくスクリプトを設定できる、ユーザーフレンドリーなインターフェースが提供されます。
- プログラムによる設定: コードを介してエンティティやスクリプトコンポーネントを作成または管理する際に、これらの属性の初期値を直接設定でき、動的で柔軟なセットアップを可能にします。
- 再利用性: 汎用的なスクリプト(例:「Movement」スクリプト)を作成し、Editorまたはコードで、さまざまなエンティティに対してそのプロパティ(速度、方向、ターゲットなど)をカスタマイズできます。
- コラボレーション: 主にコーディングに集中していないチームメンバーを含む全員が、ゲームプレイ要素、キャラクターのステータス、視覚的プロパティを変更できるようにします。
- 迅速なイテレーション: Editorで調整するか、コード内の初期化パラメーターを変更することにより、異なる構成と値を迅速にテストできます。
動作方法
スクリプト内で属性を宣言すると、本質的に初期化および変更が可能なプロパティを定義することになります。
- コード内: スクリプトコンポーネントにスクリプトを追加する際、またはスクリプトインスタンスのプロパティを介して実行時に、これらの属性の値を設定できます。
- エディタ内: PlayCanvas Editorはスクリプトファイルを解析し、Inspectorに(数値フィールド、チェックボックス、カラーピッカー、アセットピッカーなどの)対応するUIコントロールを作成します。これらのコントロールを使用すると、スクリプトの各特定インスタンスの属性値を設定できます。
たとえば、回転スクリプトのspeed
属性を公開できます。エディタでは、これは数値フィールドとして表示されます。プログラムでは、initialize
メソッド内でthis.speed = 5;
を設定したり、エンティティを設定する際にentity.script.myScript.speed = 5;
を設定したりできます。これにより、異なる回転するオブジェクトに対して異なる回転速度を設定でき、すべて同じ基盤となるスクリプトロジックを使用し、視覚的にまたはコードを介して設定できます。
2つのシステム: ESM と Classic
PlayCanvasには、スクリプト属性を定義するための2つのシステムがあり、これは2種類のスクリプト作成方法に対応しています。
- ESM Script Attributes: 最新のESモジュール(
.mjs
)スクリプトで使用されます。属性は通常、クラスメンバー変数の上のJSDocコメントを使用して宣言されます。これは新しいプロジェクトに推奨されるアプローチです。 - Classic Script Attributes: 古い「Classic」スクリプト(
.js
)ファイルで使用されます。属性は特定のMyScript.attributes.add(...)
APIを使用して宣言されます。
根底にある目標は同じである(設定可能なインターフェースを定義すること)一方で、構文や一部の機能は両者で異なります。各システムの詳細については、上記のリンクをクリックしてください。
PlayCanvasで柔軟で保守性が高く、共同作業に適したプロジェクトを構築するには、Editorの視覚的ツールを活用する場合でも、完全にコードでシーンを構築する場合でも、スクリプト属性を理解し活用することが重要です。