インスタンスオブジェクトについて


インスタンスは使う頻度が多い機能ですが、ド忘れをして困ることがあるのでまとめます。

- その1 - 「複数のインスタンスオブジェクトをランダムに適用します」
1.インスタンスのオプションを開きます。
2.下記のように設定します。

 ・Cycle = Sequential(シーケンシャル ・リスト内のオブジェクトを循環表示します。)
 ・Cycle Step Unit = Second(秒)
 ・Cycle Step = ランダムに配置するには大きな数を入れます。(小さな数だとアニメーションの途中でリストの次のオブジェクトに循環してしまいます。)


3.パーティクルシェイプのアトリビュートを開きます。
4.インスタンサの項目を下記のように設定します。

 ・Cycle Start Object(サイクル開始オブジェクト) = Particle ID(シーケンシャル)

以上で、複数のインスタンスオブジェクトをランダムに適用できます。



- その2 - 「インスタンスオブジェクトをランダムに回転します。」
1.パーティクルシェイプのアトリビュートを開きます。
2.「ダイナミックアトリビュートの追加」>「一般」>「UserScalar1PP」を追加します。
3.「パーティクル単位(配置)アトリビュート」>「UserScalar1PP」を右クリックで「作成エクスプレッション」を選択します。
4.「particleShape1.UserScalar1PP = rand (1,360); 」と入力し、「編集」をクリックします。
5.「インスタンサ」>「回転オプション」>「回転」のプルダンメニューから「UserScalar1PP」を選びます。これで開始時の回転角度が1~360度の間でランダムに選ばれるようになりました。


パーティクルが放出された後に、回転を継続させるには、

6.「パーティクル単位(配置)アトリビュート」>「UserScalar1PP」を右クリックで「ダイナミクスエクスプレッション後ランタイム」を選択します。
7.「particleShape1.UserScalar1PP += 1; 」と入力し、「編集」をクリックします。これで1フレームごとに1度回転するようになります。


さらに、回転を移動で制御するには、

8.「ダイナミクスエクスプレッション後ランタイム」を以下のように書き換えます。
float $vel = (particleShape1.velocity)/5;
particleShape1.rotPP += $vel;

この手順の解説はこちらのサイトが有名です。



- その3 - 「インスタンスオブジェクトをランダムにスケーリングします。」
1.パーティクルシェイプのアトリビュートを開きます。
2.「ダイナミックアトリビュートの追加」>「一般」>「UserScalar2PP」を追加します。
3.「パーティクル単位(配置)アトリビュート」>「UserScalar2PP」を右クリックで「作成エクスプレッション」を選択します。
4.「particleShape1.UserScalar2PP = rand (0,1,1); 」と入力し、「編集」をクリックします。
5.「インスタンサ」>「一般オプション」>「スケール」のプルダンメニューから「UserScalar2PP」を選びます。これで開始時の大きさが0,1~1の間でランダムに選ばれるようになりました。


自動化のサイトはこちら

コメント