コンテンツにスキップ

サードパーティプラグイン

カスタム ShadersFiltersJavaScript Layers を作成し、Cavalry でネイティブレイヤーとして読み込むことができます。

Cavalry は ‘Third Party’ ディレクトリを再帰的に検索するため、プラグインは任意のディレクトリにパッケージ化できますが、各「製品」は 1 つの strings/definition.json ファイルを含む単一のフォルダ内で公開することをお勧めします。

製品は 1 つの Shader でも、10 個のバンドルでも構いません。各製品を適切にパッケージ化して配布してください。

プラグイン SDK をダウンロード。↓ ダウンロード

サードパーティレイヤーをインストールするには、プラグインのフォルダまたはフォルダの .zip を Cavalry ウィンドウ内の任意の場所にドラッグします。

フォルダ内のファイルが有効な場合、確認ダイアログが表示されます。

これにより、Shader/Filter ファイルを含むフォルダが以下に追加されます:

  • macOS - ~/Library/Application Support/Cavalry/Third-Party/Plugins
  • Windows - C:\Users\<USER>\AppData\Roaming\Cavalry\Third-Party\Plugins

その後、レイヤーは Cavalry 内で利用可能になります。

AppData~/Library は隠しフォルダです。見つけるには:

  • Windows - エクスプローラー表示オプションで「隠しファイル」をチェックします。
  • macOS - Finderで、移動メニューを開く際に Option/Alt キーを押すとライブラリが表示されます。

サードパーティレイヤーは複数のファイルで構成されます。

📁 Layer ┠ definitions.json ┠ layer.sksl ┠ layerIcon.png ┠ layerIcon@2x.png ┠ setup.js ┠ strings.json ┠ welcome.js ┠ versioning.js

レイヤーを定義する SkSL コードを含みます。これらのファイルは Cavalry の API モジュールの encryptFile を使用して暗号化できます。暗号化されたレイヤーは拡張子 .skslc を使用する必要があります。

レイヤーの Attribute を作成するための情報、UI の順序、アイコン名、その他の有用な情報を含みます。複数のレイヤーの定義を同じファイルに含めることができます。以下のを参照してください。

definitions.jsonstrings.json ファイルには、レイヤー作成者の識別子(例:会社名)として “author” キーを含める必要があります。これはプラグインの登録時に内部的に使用されます。この識別子にはスペースやピリオドを含めず、キャメルケースで記述することをお勧めします。

"author": "sceneGroup",

サードパーティレイヤーの superTypes は次のとおりです:

レイヤータイプSuperType用途
FilterthirdPartyFilterカスタム Filters を作成
ShaderthirdPartyShaderカスタム Shaders を作成
JavaScript UtilitythirdPartyJavaScript値(数値、色、文字列)を生成
JavaScript ShapethirdPartyJavaScriptShapeカスタム Shapes を作成
JavaScript DeformerthirdPartyJavaScriptDeformer既存の Shapes を変更

このオプションのスクリプトは、レイヤー作成時に追加のセットアップを実行するために使用できます。例えば、必要に応じて追加のレイヤーや接続を作成できます。このスクリプトの実行時には、変数 ‘layerId’ を含む ‘setup’ というモジュールが利用可能です。これを使用して作成中のレイヤーの ID にアクセスできます。

strings.json ファイルを使用して以下を含めることができます:

  • 表示名 - niceName を指定して definitions.json 内の属性名を上書きできます。niceName が指定されていない場合、camelCase という名前の属性は UI で自動的に Camel Case に変換されます。
  • ツールチップ - 属性にホバーしたときに表示される情報を追加します。

このファイルには author キーを含める必要があります。

現在、翻訳はまだサポートされていません。

アイコンの追加はオプションですが、強くお勧めします。デフォルトのアイコン名は定義スキーマで設定する必要があります。

アイコンタイプサイズサフィックス例名
レイヤー18x18pxlayerIcon.png
レイヤー(高解像度画面)36x36px@2xlayerIcon@2x.png
Attribute Editor16x16px_aelayerIcon_ae.png
Attribute Editor(高解像度画面)32x32px_ae@2xlayerIcon_ae@2x.png

Attribute Editor アイコンはあまり使用されませんが、Distortion FilterInput Shader ドロップダウンリストのような状況で必要になる場合があります。

ネイティブアイコンの色は次のカテゴリに分類されます:

カテゴリ
Shape#DDD273
Behaviour#9DD998
Utility#A8D3FA
Effect (Filters/Shaders)#F5B4B8
All#CACACA

オプションの welcome.js ファイルを含めて、新規ユーザーのオンボーディング/歓迎の手段として使用できます。Script UI を使用して、インストール成功時に表示される「スプラッシュスクリーン」を作成します。

install.fromUpdate を使用して、プラグイン更新時の条件分岐を作成できます。

const process = install.fromUpdate ? `updated` : `installed`;const label = new ui.Label(`You have ${process} the plugin.`);

プラグインのフォルダに versioning.js が存在する場合、そのプラグインのレイヤーを含むシーンを開くたびに実行されます。これは、以前のバージョンのプラグインを含むシーンに対して後方互換性を追加するために使用できます。

versioning.js はプラグインモジュールを介して 2 つのメンバー変数にアクセスできます:

  • layerId 例:plugin.layerId
  • saveData 例:plugin.saveData - saveData は .cv ファイル内のこのレイヤーのデータのコピーで、属性データへのアクセスに使用できます。

Definition に Attribute を追加すると、これらの値は自動的にレイヤー内の uniform として利用可能になります。すべての Attribute タイプがサポートされているわけではないことに注意してください。

Shader の先頭に次の行を追加すると…

uniform float2 resolution;

…Cavalry はこの uniform をレンダリングされるシェイプのサイズに設定します。

子 Shaders がサポートされており、セットアップスクリプトで作成し、SkSL Shaders と同様にコード内でサンプリングできます。

子 Shaders は Shader の childShaders Attribute に接続する必要があります(この Attribute は自動的に追加されます)。

マルチパス Filters がサポートされています。

以下の SDK をダウンロードして解凍し、インストール手順に従ってください。

プラグイン SDK をダウンロード。↓ ダウンロード

不足しているプラグインを含むシーンを開くと、Cavalry はシーンのコピーを作成します。このコピーはシーンから不足しているプラグインを削除します。現在、ユーザーが UI を通じてこれを修正する方法はありません。

警告ダイアログも表示されます。問題を解決するには、不足しているプラグインをインストールし、元のシーンファイルを再度開く必要があります。