マップ値の設定および編集

 
 
 

個々のコンポーネントのユーザデータ値を設定および編集するには、[取得](Get)[プロパティ](Property)[ユーザデータマップ](User Data Map)メニューの[ユーザデータ値の設定](Set User Data Value) および [ユーザデータ値の編集](Edit User Data Value)コマンドを使用します。これら2つのコマンドはまったく同じことを実行します。

個々のコンポーネントのマップ値は、最初に値を設定または編集するまでは存在しません。値を設定する前にまず始めにクラスタ内のすべてのコンポーネントを選択して([Select] [メンバ/コンポーネントの選択](Select Members/Components)が便利)、テンプレートのデフォルト値でユーザデータマップをすばやく初期化できます。

[表示](View)[スクリプト](Scripting)メニューにある [SDK Explorer](SDK Explorer)を使用すると、すべてのコンポーネントのマップ値を参照できます。

コンポーネントのマップ値を設定および編集するには

  1. データマップを持つクラスタのメンバである1つまたは複数のコンポーネントを選択します。

    コンポーネントがデータマップ付きの複数のクラスタのメンバである場合、またはクラスタが複数のデータマップを持つ場合、コンポーネントに加えて希望するユーザデータマップを選択する必要があります。

    選択に追加するには、Explorer で[Shift]キーを押しながら[UserData]ノードをクリックします。

  2. [取得](Get) [プロパティ](Property) [ユーザデータマップ](User Data Map) [ユーザデータ値の設定](Set User Data Value)または[ユーザデータ値の編集](Edit User Data Value)を選択します。第1のコマンドはコンポーネントの初期マップ値を設定することを意味し、第2のコマンドは値を後で変更することを意味しますが、実際には2つのコマンドは区別なく使用できます。

    ダイアログボックスが開き、テンプレートに定義されたパラメータが表示されます。

  3. 値を編集し、[OK]をクリックします。

    複数のコンポーネントが選択された場合は、最初のコンポーネントに対する値が表示されます。異なるコンポーネントが異なる値を持っている場合は、ボックスおよびスライダは空白のままにはなっていません(他のパラメータを編集している場合とは異なります)。ただし、ダイアログボックスで値を変更すると、選択したすべてのコンポーネントの値が変更されます。

    また、ユーザデータマップ値はアニメートできません(ダイアログボックスにアニメーションアイコンが表示されている場合でも)。ここでパラメータをアニメートしようとした場合は、実際にはテンプレートとしての役割を果たすカスタムプロパティのパラメータをアニメートすることになります。

すべてのコンポーネントのマップ値を表示するには

  1. Explorer でユーザデータマップノードを選択します。

  2. [表示](View) [スクリプト](Scripting) [SDK Explorer]を選択します。

  3. [om selection]ページの[Object Details]セクションに、すべてのコンポーネントの現在のマップ値が表示されます。たとえば、次のように記述します。

ポイントウラウド上のユーザデータでの作業

ユーザデータをパーティクルに適用する場合に、特別に考慮すべき点がいくつかあります。問題の原因は、シミュレーション中にパーティクルが消滅して発生する際にコンポーネントインデックスが再利用されることにあります。このため、パーティクルクラスタ内のコンポーネントはシミュレーション中のある時点で消滅する場合があり、その後インデックスが再利用された場合、対応するパーティクルは自動的にクラスタのメンバとなり、元のパーティクルに対して定義されたユーザデータを持つことになります。

ユーザデータは、パーティクルが[不死]の設定になっていて、放出がない場合(言い換えると、すべてのパーティクルが存在する初期状況からシミュレーションを開始する場合)に最もよく機能します。必要に応じて、最大数のパーティクルが存在するフレームでクラスタを作成した場合もうまく機能します。しかし、この状況では古いパーティクルのマップ値が新しいパーティクルで再利用されることを覚えていてください。