cascadeのエミッターで、Emitter Loopに0や1が入っている状況でSpawn Rateに1以下(0.4とか0.7とか)を入れたエフェクトを用意して、それをレベル上に配置しプレイすると正しく生成されません。
Emitter Loopに2以上が入っていれば、Spawn Rateに1以下が入ってもきちんと生成されます。
ただLoopに2以上を入れていてなおかつSpawn Rateに1以下を入れていても、Spawn Rate ScaleにSpawn Rateで入れてある数字以下を入れると、プレイした時に生成されません。
また、Delayでも同様の症状が出ます。
こちらが確認したのはEmitter Loopに0,Durationに1が入っている時、Delayに0.08以下を入れるとプレイすると生成が行われません。
4.20.1と4.20で同じ状態を確認しました。
これの解決法はありますか?もしくは、これは仕様で自分がモジュールを理解できていないだけでしょうか?
T_Sumisaki
(T_Sumisaki)
2
見た感じモジュールを理解できていないような印象を受けます
まず、(Duration * SpawnRate)が1より小さくなる値を設定した場合、実行時間内にパーティクルが生成される条件を満たせなくなると考えられます。
また、上記の式にSpawnRateScaleを掛けることになるので、1以下の場合は値が小さくなるので、秒間Spawn数が更に下がります。
ただ、こちらで試してみたところ、EmitterLoopが0(無限ループ)の場合は生成レートが1以下であってもレベルに配置したEmitterからパーティクルが生成されているように見えます
Delayに関しては事象が確認できていません。
おそらく他のパラメーターが要因であると考えます。
まず、(Duration * SpawnRate)が1より小さくなる値を設定した場合、実行時間内にパーティクルが生成される条件を満たせなくなると考えられます。
また、上記の式にSpawnRateScaleを掛けることになるので、1以下の場合は値が小さくなるので、秒間Spawn数が更に下がります。
つまりエミッターが1秒しか残らないのにレートを3秒間に1個生成、とかにしていると生成されない部分がループされる=結果的にパーティクルが見えないという事でしょうか。
>ただ、こちらで試してみたところ、EmitterLoopが0(無限ループ)の場合は生成レートが1以下であってもレベルに配置したEmitterからパーティクルが生成されているように見えます
この時のSpawn Rate,Spawn Rate Scaleはどのような数字でしたか? こちらでは新規作成した完全にデフォルトな状態で、Spawn Rateだけを1以下にしてレベルに配置し プレイすると生成されなくなります。
他のモジュールには一切触っていません。
T_Sumisaki
(T_Sumisaki)
5
同様の環境で試しましたがたしかにそのとおりですね。訂正します。
StarterContentsのFireを元に検証したため、他のEmitterが影響していたようです。
ただ、プレイをせずにレベルに置いた状態ではこちらの想定通りに生成されて、プレイをしてゲームに入ると生成されないのですがこれはなぜでしょうか?
上記の「まず、(Duration * SpawnRate)が1より小さくなる値を設定した場合~」の理由なら、レベル上に置いた状態でも生成されなくなりそうだと思ったのですが・・・。