ゴール アトリビュートを編集する

以降のセクションでは、アトリビュートを編集して、ゴールに対する追従パーティクルと nParticle オブジェクトのエフェクトを調整する方法を説明します。

オブジェクト単位でゴール ウェイトを設定する

ゴールをオブジェクトに追加すると、対応するゴール ウェイト アトリビュートが追従パーティクル オブジェクトに追加されます。ゴール ウェイトは、追従オブジェクトのすべてのパーティクルがどの程度ゴールに引き付けられるかを設定します。ゴール ウェイトは、ゴールを作成する前にゴール オプション(Goal Options)ウィンドウを使って設定することができます。また、後でアトリビュート エディタ(Attribute Editor)を使用してゴール ウェイトを調整することもできます。

ゴール ウェイトは、0 から 1 の範囲に含まれる値に設定することができます。値 0 は、ゴールの位置は追従パーティクルに何の影響も与えないことを表します。この値を 1 に設定すると、追従パーティクルはゴール オブジェクトに即座に移動します。

0 から 1 の値を設定した場合、パーティクルはゴム製のスプリングで結ばれているかのようにゴールに向かって移動します。値が 1 に近いほど、追従パーティクルは最終位置にすばやく移動します。既定のゴール ウェイト値は 0.5 です。

ヒント: 追従パーティクルがほとんど振れずにゴール オブジェクトを追従するようにするには、追従パーティクル オブジェクトの運動量保存(Conserve)アトリビュートを 0 など、0.8 未満の値に設定します。値が 0 の場合、振れはありません。

ゴール ウェイトを調整しなくても、ゴール オブジェクトのエフェクトのオン/オフを切り替えることができます。これを行うには、アトリビュート エディタ(Attribute Editor)で追従パーティクル オブジェクトのアトリビュートを表示している状態で、ゴール オブジェクトに関連付けられているゴールのアクティブ化(Goal Active)アトリビュートをオフに設定します。

ゴール オプション(Goal options) ウィンドウを表示するには

  1. nParticles > ゴール(Goal) > を選択します。このウィンドウのアトリビュートは、アトリビュート設定を変更した後に作成されたゴールに作用します。

アトリビュート エディタ(Attribute Editor)ゴール ウェイト(Goal Weight)を変更するには

  1. ゴールの作用を受けるパーティクル(またはソフト ボディのパーティクル)を選択します。
  2. アトリビュート エディタ(Attribute Editor)を表示します。
  3. ゴール ウェイトおよびオブジェクト(Goal Weights and Objects)セクションを開きます。

    ゴール ウェイトがゴール オブジェクト名の横に表示されます。このウェイトを変更すると、オブジェクト全体に適用されます。

    (パーティクル単位の設定のいずれかを変更すると、このゴール ウェイトは適用されなくなります。)

    パーティクル オブジェクトが複数のゴール オブジェクトを持っている場合は、それぞれのオブジェクトに対応するゴール ウェイト セクションが表示されます。

    ヒント: チャネル ボックス(Channel Box)では、ゴール ウェイト(Goal Weight)[0] が最初に追加したゴール オブジェクトのゴール ウェイトを表します。2 番目はゴール ウェイト(Goal Weight)[1]、3 番目はゴール ウェイト(Goal Weight)[2]... のようになります。

パーティクル単位でゴール ウェイトを設定する

パーティクル単位でゴール ウェイトを調整して、追従パーティクルのモーションをより細かく制御することができます。パーティクル単位のゴール ウェイトは、追従オブジェクトのゴール PP (Goal PP)アトリビュートによって制御されます。

パーティクル単位のゴール PP (Goal PP)アトリビュートは、パーティクルに接続されているすべてのゴール オブジェクトに対して使用されます。既定では、各パーティクルのゴール PP (Goal PP) アトリビュートは 1 です。

重要: エミッタにアタッチされたパーティクル システム上でゴール ウェイト PP (Goal Weight PP) (ゴールに固有のパーティクル単位のゴール ウェイト アトリビュート)を使用する場合には、ゴール ウェイト PP (Goal Weight PP) アトリビュート値がパーティクルの作成エクスプレッションで初期化されることを確認してください。これをしなければ、好ましくないパーティクル ダイナミック動作になる可能性があります。
ヒント: ソフト ボディのウェイト ペイント ツール(Paint Soft Body Weights Tool)を使用すると、ソフト ボディのサーフェスにペイントすることで、パーティクルごとにソフト ボディにゴール ウェイトを設定することができます(ソフト ボディのウェイト ペイント ツール(Paint Soft Body Weights Tool)の詳細については「Maya クラシック ダイナミクス」を参照)。

パーティクル単位のゴール ウェイトを設定するには

  1. 追従するパーティクル オブジェクトを選択し、アトリビュート エディタ(Attribute Editor)を表示します。
  2. アトリビュート エディタ(Attribute Editor)パーティクル単位(配列)アトリビュート(Per Particle (Array)Attributes)セクションでゴール PP (Goal PP) アトリビュートを見つけます。パーティクル単位のアトリビュートの設定に関する詳細は、「パーティクル単位のアトリビュートを操作する」を参照してください。

    ゴール PP (Goal PP)値とオブジェクト単位のゴール ウェイトとが乗算され、各パーティクルの合計ゴール ウェイトが作成されます。

    たとえば、オブジェクト単位のゴール ウェイトが 0.5 で、パーティクルの一部にパーティクル単位のゴール ウェイト 0.5 を加えた場合、これらのパーティクルの合計ゴール ウェ イトは 0.25 になります。2 つめのゴール オブジェクトがあり、対応するオブジェクト単位のゴール ウェイトが 0.1 である場合は、パーティクルの合計ゴール ウェイトは 0.05 に なります。

    注: ゴール PP にランプを作成した場合、このランプはパーティクルの生存期間全体にわたってマップされます。ゴール オブジェクトのサーフェスにはマップされません。さらに、放出に合わせてゴールにテクスチャを設定することはできません。

ゴール ウェイトを、パーティクル単位、オブジェクト単位で設定する

パーティクル システムと関連付けられている各ゴール オブジェクトについて、パーティクルがこのオブジェクトにどのくらい強く引き付けられるかを表すゴール ウェイト(Goal Weight)値を設定できます。基本のパーティクル単位のゴール PP (Goal PP) アトリビュートを使用しても、各パーティクルにおけるゴール フォースの全体的な効果を軽減することはできますが、他のパーティクルとオブジェクトの反応から独立して、特定のパーティクル における特定のゴールのインフルエンスを選択的に変更することはできません。この変更を行うには、特定のゴール オブジェクトにパーティクル単位でゴール ウェイト値を指定できるユーザ定義アトリビュートを使用する必要があります。これらのアトリビュートを使用して、1 つのパーティクル システム内で、1 つのゴール オブジェクトにさまざまなゴール引力を作成できます。

ゴール ウェイト NPP ユーザ定義アトリビュートは、N 番目のゴール オブジェクトに、パーティクル単位のゴール ウェイトを提供します。ゴール オブジェクトの番号は、パーティクル システムの goalGeometry 配列で使用されているインデックスに対応します。これにより、パーティクル システムでゴール オブジェクトを追加または除去しても、パーティクルごとのウェイトは保持されます。特定のゴール オブジェクトにパーティクルごとのゴール ウェイトが見つからない場合、このオブジェクトの標準ゴール ウェイト値(パーティクルのアトリビュート エディタ(Attribute Editor)でオブジェクト名の隣にあるスライダで指定された値)がすべてのパーティクルに適用されます。

パーティクルごとのゴール ウェイト アトリビュートを設定するには

  1. パーティクルが引き付けられるゴール オブジェクトを作成したことを確認します(nParticle > ゴール(Goal))。詳細については、「}ゴールを作成する」を参照してください。
  2. コンポーネント(Component)モードで、パーティクルごとのゴール ウェイトを編集したいパーティクルを個々に選択します。
  3. アトリビュート エディタ(Attribute Editor)のパーティクル システム ノードで、ゴール ウェイトおよびオブジェクト(Goals Weights and Objects)セクションに移動し、目的のゴール オブジェクトのゴール ウェイト # PP の作成(Create Goal Weight # PP)ボタンをクリックします。
  4. 次のいずれかの操作を行って、コンポーネント エディタ(Component Editor)を開きます。
    • パーティクル単位(配列)アトリビュート(Per Particle (Array)Attributes)セクションに移動し、対応するゴール ウェイト # PP (Goal Weight # PP)アトリビュートの隣にある空のボックスを右クリックして、ポップアップ メニューからコンポーネント エディタ(Component Editor)を選択します。
    • ウィンドウ > 一般エディタ > コンポーネント エディタ(Window > General Editors > Component Editor)を選択します。
      ヒント: goalWeight 列が表示されない場合は、コンポーネント エディタ(Component Editor)メニューでオプション > ゼロ カラムの非表示(Options > Hide Zero Columns)を選択し、ゼロ列を表示します。

      シミュレーションを実行するまで、値はゼロのままです。

  5. シミュレーションを再生します。必要に応じて任意のフレームで停止し、コンポーネント エディタ(Component Editor)goalWeight の値を確認します。

パーティクルごとのゴール ウェイト アトリビュートをオフにするには

  1. アトリビュート エディタ(Attribute Editor)のパーティクル システム ノードで、ゴール ウェイトおよびオブジェクト(Goals and Weights)セクションに移動し、目的のゴール オブジェクトのゴール ウェイト # PP の削除(Delete Goal Weight # PP)ボタンをクリックします。

    この結果、パーティクルは、特定のパーティクルではなくシステムに定義されたゴール ウェイトを取るようになります。

ゴール ポイントのデータをパーティクル単位で検証する

ゴール オブジェクトを作成したら、パーティクル ノードにパーティクルごとにユーザ定義アトリビュートをいくつか追加できます。パーティクル システムがゴール オブジェクトに引き付けられると、これらのアトリビュートは、各パーティクルが引き付けられる各ゴール オブジェクト上の特定の点に関するデータで埋められます。この情報はコンポーネント エディタ(Component Editor)パーティクル(Particles)タブで確認できます。この情報は変更できません(編集はできますが、シミュレーションを再実行すると値が置き換えられます)が、ランタイムでのパーティクルの表現では便利なこともあります。たとえば、ゴール オブジェクトに近づくにしたがってカラーが濃くなるように、パーティクル カラーを変更することができます。

パーティクル システムは複数のゴール オブジェクトを持つことがあるため、これらの新しいアトリビュートには、ゴール オブジェクトとデータの対応を表す番号が付けられています。ゴール オブジェクトの番号は、パーティクル システムの goalGeometry 配列で使用されているインデックスに対応します。この方法により、パーティクル システムにゴール オブジェクトを追加したり、除去したりしても、パーティクルごとのアトリビュートの意味が変わらないことが保証されます。

注: これらのアトリビュートでは、アニメートされた UV はサポートされていません。ゴール オブジェクト上の UV にアニメーションをつけた場合、生成された接線はオリジナルの UV パラメータ設定に対応します。メッシュを僅かに変形したりコントロール ポイントをアニメートしたりすると、全フレームでのメッシュ データのリフレッシュをメッシュがトリガするので、結果として問題を回避できます。

Maya では、パーティクル システムのゴール オブジェクトとしていろいろな種類のオブジェクトを使用できますが、接線と法線が適切に生成されるのは、NURB サーフェスおよびポリゴン サーフェスのゴール オブジェクトだけです。NURBS カーブ、ゴール オブジェクトとして使用されるその他のパーティクル システム、その他のコントロール ポイント ベースのプリミティブからは、適切な法線や接線は生成されません。

ゴール ポイント データのパーティクルごとのアトリビュートを設定するには

  1. パーティクルが引き付けられるゴール オブジェクトを作成したことを確認します(nParticle > ゴール(Goal))。詳細については、「ゴールを作成する」を参照してください。
  2. コンポーネント(Component)モードで、ゴール ポイントのパーティクルごとのアトリビュートを表示したいパーティクルを個々に選択します。
  3. アトリビュート エディタ(Attribute Editor)で、ゴール ウェイトおよびオブジェクト(Goals Weights and Objects)セクションに移動し、目的のゴール オ ブジェクトに対して、目的のゴール ポイント(Goal Point)アトリビュート(位置(Position)法線(Normal)接線 U (Tangent U)接線 V (Tangent V))の隣にある作成(Create)ボタンをクリックします。
  4. 次のいずれかの操作を行って、コンポーネント エディタ(Component Editor)を開きます。
    • パーティクル単位(配列)アトリビュート(Per Particle (Array)Attributes)セクションに移動し、対応するゴールのワールド法線 # PP (Goal World Normal # PP)アトリビュートの隣にある空のボックスを右クリックして、ポップアップ メニューからコンポーネント エディタ(Component Editor)を選択します。
    • ウィンドウ > 一般エディタ > コンポーネント エディタ(Window > General Editors > Component Editor)を選択します。
      注: goalWorld 列が表示されない場合は、コンポーネント エディタ(Component Editor)メニューでオプション > ゼロ カラムの非表示(Options > Hide Zero Columns)を選択してゼロ列を表示します。

      シミュレーションを実行するまで、値はゼロのままです。

  5. シミュレーションを再生します。必要に応じて任意のフレームで停止し、コンポーネント エディタ(Component Editor)goalWorld の値を確認します。

パーティクルごとのゴール ポイント データ アトリビュートをオフにするには

  1. アトリビュート エディタ(Attribute Editor)のパーティクル システム ノードで、ゴール ウェイトおよびオブジェクト(Goals and Weights)セクションに移動し、目的のゴール オブジェクトに対して、目的のゴール ポイント(Goal Point)アトリビュートの隣にある削除(Delete)ボタンをクリックします。

ゴールの NURBS/ポリゴン UV 位置を指定する

NURBS またはポリゴン サーフェスの CV をゴールとして使用すると、追従パーティクルは直接その CV へと移動します。しかし一般に CV は、離れた位置に配置されています。追従パーティクルのシェイプ ノードの既定のゴール U (goalU)ゴール V (goalV)アトリビュートを追加し設定することにより、パーティクルを直接的にまたは均等にサーフェスに移動させることができます。これらのパーティクル単位のアトリビュートは、パーティクルが引き付けられる NURBS またはポリゴン サーフェス上の正確な UV (座標)位置を設定します。

定義済みゴール オフセット(Goal Offset)アトリビュートを追加および設定して、より簡単に似たような結果を得ることができます(下にある「ゴール位置のオフセットの指定」を参照)。

追従オブジェクトが複数のゴール オブジェクトを持つ場合、それぞれのゴール オブジェクトに対して同じパーティクル単位の U および V 値が使用されます。

アトリビュートがオブジェクト上の有効な位置を指定していない場合は、その代わりとしてサーフェスまたはカーブ上で最も近い位置がゴールとして使用されます。オブジェクトの U および V の範囲外にある位置やトリミングされたカーブまたはサーフェスの一部にある位置は、無効として扱われます。最も近い位置が使用されるようにするには、-1 を指定します。

アトリビュートの追加の詳細については、「nParticle にダイナミック アトリビュートを追加する」を参照してください。これらのアトリビュートの値は、エクスプレッション、MEL スクリプト、またはその他のアトリビュート編集方法を使用して設定することができます。

ポリゴン メッシュ ゴール オブジェクトを扱う

パーティクル単位のゴール U (goalU)/ゴール V (goalV)アトリビュートがポリゴン メッシュ ゴール オブジェクトに適用されるとき、パーティクルを引き付けるゴール メッシュ サーフェス上の特定の点を指定します。ゴール V (goalV)/ゴール U (goalU)値のアニメーション、およびゴール オブジェクトとその UV 座標は完全にサポートされます。

各ポリゴン メッシュのオブジェクトに対して UV セット(UV Set)コントロールが表示され、ゴール V (goalV)/ゴール U (goalU)値が与えられたパーティクルのゴール位置の決定に際し、どの UV セットを使用するか決定できます。

ポリゴン メッシュ オブジェクト上の UV マッピングは任意であるため、与えられたゴール V (goalV)/ゴール U (goalU)のペアがゴール サーフェス上の 2 つ以上の点にマップされることがありえます。あるパーティクルに潜在的なゴール ポイントが複数ある場合、Maya はパーティクルのワールド空間上の現在の位置に最も近いポイントを選択し、それをゴール位置として使用します。この決定はフレームごとに再計算されるので、パーティクルが他の潜在的なゴール位置に近づくと、オリジナルのゴール位置ではなくそのゴール位置にパーティクルが引き付けられます。

同様に、ある特定のパーティクルのゴール V (goalV)/ゴール U (goalU)値に一致するポイントがない場合もあります。この場合、指定したゴール ポイントに UV 空間上で最も近いメッシュ頂点が使用されます。この決定もフレームごとに再計算されます。

注: ポリゴン メッシュ ゴール オブジェクトでは、パーティクルのゴール V (goalV)/ゴール U (goalU)値がゴール サーフェス上に存在しない(つまり、これらの値がマップされていない)場合、パーティクルは指定された値にニアレストの頂点に引き付けられます。この結果、ゴール UV の値をマップされていない空間でアニメートすると、パーティクルがメッシュの頂点間を飛び回ることになります。

ゴール位置のオフセットの指定

既定のゴール オフセット(Goal Offset)アトリビュートを追従パーティクル オブジェクトのシェイプ ノードに追加した場合、ゴール オブジェクトのワールド空間位置へのオフセットを設定することができます。たとえば、カーブの CV から構成されるゴールへ向かって移動するパーティクルがあるとします。ここでオフセット機能は、それぞれの CV およびゴール オフセットをパーティクルに指示します。ゴール オフセット(Goal Offset)アトリビュートは、パーティクル単位のベクトル アトリビュートです。

アトリビュートの追加の詳細については、「nParticle にダイナミック アトリビュートを追加する」を参照してください。このアトリビュートの値は、エクスプレッション、MEL スクリプト、またはその他のアトリビュート編集方法を使用して設定することができます。

ヒント: 対称的に配置された CV を持つオブジェクトに対して均等に分布したエフェクトを作成するには、エクスプレッション内で sphrand ( )関数を使用してランダム値を goalOffsetに割り当てます。