ランタイム エクスプレッション内でランタイム エクスプレッション内の値を使用する
 
 
 

作成エクスプレッション内で定義した変数をランタイム エクスプレッション内で参照できるのは、その変数がグローバル変数として定義されている場合に限られます。ただし、カスタム アトリビュートを作成し、作成エクスプレッション内でそのアトリビュートに値を代入した後、ランタイム エクスプレッション内でそのアトリビュートの値を参照または設定することができます。

たとえば、作成エクスプレッション内でパーティクル オブジェクトの位置アトリビュートを $oldposition という変数に代入する場合を考えます。

vector $oldposition = particleShape1.position;

同じパーティクル シェイプ ノードのランタイム エクスプレッション内では、$oldposition 変数の値を参照できません。この問題を解決するには、このパーティクル オブジェクト用のカスタム アトリビュートを作成し、作成エクスプレッション内でそのアトリビュートに値を代入した後、ランタイム エクスプレッション内でそのアトリビュートの値を使用します。

たとえば、oldpos というアトリビュートを作成し、作成エクスプレッション内でそのアトリビュートに位置(position)値を代入する場合を考えます。

particleShape1.oldpos = particleShape1.position;

こうすると、ランタイム エクスプレッション内で particleShape1.oldpos の値を参照することができます。

オブジェクトの初期位置を保存するアトリビュートを作成する必要はありません。初期位置はすでに、初期状態アトリビュート position0 に存在します。このアトリビュートはエクスプレッション エディタアトリビュート リストには表示されません。