最小値と最大値の区間で引数をリニア補間した結果を表す、0 ~ 1 の範囲に写像した比例値を返します。smoothstep 関数を使用すると、不透明度(Opacity)などのアトリビュートの値を 0 から 1 までノンリニアに大きくすることができます。
smoothstep 関数は linstep 関数と機能が似ていますが、最小値と最大値の間の中央付近で値がす速く大きくなります。smoothstep 関数では、最小値と最大値の間でエルミート(hermite)の補間アルゴリズムが使用されます。
float smoothstep(float start, float end, float parameter)
parameter が start より小さい場合、linstep 関数は 0 を返します。
parameter が end より大きい場合、linstep 関数は 1 を返します。
次の図に、時間の経過に伴う smoothstep と linstep の戻り値の違いを示します。
パーティクル ツールを使用して、複数のパーティクルからなるパーティクル オブジェクト(名前は Cloud)を作成します。
さらに、ダイナミックなオブジェクト単位の不透明度(Opacity)アトリビュートをクラウド(Cloud)に追加します( パーティクル アトリビュートを操作するを参照)。次のランタイム エクスプレッションを作成します。
CloudShape.opacity = smoothstep(0,5,age);
このエクスプレッションが実行されると、パーティクルが出現した後の最初の 5 秒間で CloudShapeの不透明度(Opacity)アトリビュート値が 0 ~ 1 までノンリニアに大きくなります。このため、Cloud オブジェクトのすべてのパーティクルは透明から不透明に変わります。0 ~ 5 秒の間の中央である 2.5 秒付近で、変化の度合いが急に大きくなります。