ライト エディタ(Light Editor)でプラグイン ライトを作成する

ライト エディタ(Light Editor)ではプラグイン ライトを作成できます。プラグインのロード後、ライト エディタ(Light Editor)に既定のアイコンとともにプラグイン ライトが自動的に追加されます。

次に、ライト アイコンをクリックしたり、またはグループを右クリックしてマーキング メニューを使用すると、ネイティブ ライトとして、シーン内でプラグイン ライトを作成できます。

プラグイン ノードでライトの分類文字列を使用する場合、すべてのライトが自動的に追加されます。

プラグイン ノードは、次の MEL コマンドを実行すると、ライトの分類文字列を使用していることを確認します。

getClassification <nodeType>

たとえば、getClassification pointLightdrawdb/light/pointLight:light を返します。

返される文字列内の light が分類を表します。

drawdb/light/<light type> は、ビューポート 2.0 のライト分類を示します。プラグインが既存の内部分類(drawdb/light/directionalLight など)のいずれかを使用すると、ライトに対応するシェーダと、ビューポートで UI 描画用に内蔵されたビューポート 2.0 ジオメトリ エバリュエータが自動的に使用されます。

注: プラグインのロード時にライト エディタ(Light Editor)が既に開かれている場合は、プラグイン ライト作成アイコンとマーキング メニュー アイテムを表示できるように、このエディタを閉じてから再度開き、表示内容を更新する必要があります。

ライト エディタ(Light Editor)のプラグイン ライトの表示をカスタマイズする

テンプレート ファイルを作成すると、エディタ、作成 MEL コマンド、および使用するアイコンに表示されるプラグイン アトリビュートをカスタマイズできます。

カスタマイズは可能ですが、必須ではありません。アイコンを何も指定しない場合は、既定のアイコンが使用されます。MEL コマンドを何も指定しない場合は、次のコマンドを使用します。

shadingNode -asLight <lighttype>

実行すると、光源が作成されます。

テンプレート ファイルのサンプルは、先頭に LE という名前が付けられ、インストール フォルダの ../scripts/AETemplates フォルダ内に格納されています。たとえば、スポットライトの場合は LEspotLightTemplate.mel になります。

プラグイン例

Developer Kit 内の例 apiDirectionalLightShape は、lightdrawdb 内部分類を使用してプラグイン ノードを作成できるサンプル プラグインです。Maya のポイント、方向、およびスポットの各タイプと一致するように調整されたノード アトリビュートです。ライト エディタ(Light Editor)のサンプル テンプレートにはプラグインが付属しています。たとえば、インストール フォルダの ../scripts/AETemplates フォルダ内には、LEapiDirectionalLightShapeTemplate.mel があります。

次の例では、3 つすべてのプラグイン ライト ノードが作成されたシーンについて説明します。各ライトには、使用されるさまざまなアトリビュート セットとカスタム アイコンが一覧表示されています。プラグイン ライトが 2 つが選択され、ビューポートに表示されています。

ライト エディタ(Light Editor)には、さまざまなテンプレートに記載されたすべてのアトリビュートの列が表示されます。ただし、ライトのアトリビュートを修正できるのは、そのアトリビュートが特定のライト タイプに対して存在する場合のみです。この例では、拡散の放出(Emit Diffuse)が LEapiDirectionalLightShapeTemplate.mel テンプレート ファイル内にあるため、拡散の放出(Emit Diffuse)がライト エディタ(Light Editor)のカラムになっています。一方で、拡散の放出(Emit Diffuse)は LEdirectionalLightTemplate.mel テンプレート ファイル内にありませんが、拡散の放出(Emit Diffuse)アトリビュートがディレクショナル ライトに含まれるため、このアトリビュートはライト エディタ(Light Editor)を使用してネイティブ ディレクショナル ライトとして編集できます。