


～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～
【おまけ】
～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～～

便利な関数とか。意外と知られてないけど便利な方法とか色々。


・数値の上昇する関数

ここでは例として、explodのscale値について、100Fで0,0→1,1にすることを考えてみます。
記述方法は4通り。


①　scale=0.01*animelemtime(1),0.01*animelemtime(1)

②　scale=1.0*sin((pi/2/100)*animelemtime(1)),1.0*sin((pi/2/100)*animelemtime(1))

③　scale=1.0*(1-cos((pi/2/100)*animelemtime(1))),1.0*(1-cos((pi/2/100)*animelemtime(1)))

④　scale=1.0*(0.5-0.5*cos((pi/100)*animelemtime(1))),1.0*(0.5-0.5*cos((pi/100)*animelemtime(1)))


それぞれの意味について解説します。


◆◆◆①　使用頻度：低

これが最も一般的な方法なのではないでしょうか。1次関数を用いて数値の上昇を図る。
しかし、この記述方法だと、なんか緩急がなく、のろのろっとした印象を受けることがあります。
理由については後述。


◆◆◆②　使用頻度：かなり高

sin関数による数値の上昇。
sin関数は、角度が0度～90度（pi/2）の範囲において、0から1まで変化する関数です。
①のような1次関数との最大の違いは、変化の末端が平坦であるということ。
1次関数は、常に同じ変化率によって上昇する関数ですが、
sin関数は、角度が大きくなるにつれ、変化率がどんどん小さくなっていきます。

具体例を挙げますと、

sinが0度の時の値は、 sin(0)=0
sinが45度の時の値は、sin(pi/4)=約0.7。
sinが90度の時の値は、sin(pi/2)=1。

45度とは、0度と90度の中間の値ですが、中間地点で既に7割に達しています。
つまり、中間地点までは物凄い勢いで大きくなっていって、
そっから先は変化が徐々に緩やかになってゆく。
そして、sinが変化の末端である90度に達すると、変化率はゼロになる。
つまり、『変化の末端が平坦になる』。


このように、sin関数には、0度～90度の間において、
最初の変化を物凄く強調して、後の変化を緩やかにする効果が存在します。

爆弾が爆発する様子を思い浮かべてみてください。爆弾が爆発し、爆風が吹き荒れる。
爆風は、空気抵抗により減衰し、徐々にスピードを落としてゆく。
つまり、最初は速く、最後は遅い変化なわけですね。
この場合、1次関数を用いて、のっぺりと等速で変化させるより、
緩急つけて速い、遅いをきっちり分けて演出する方が効果的と言えるでしょう。



さて、ここから余談ですが、思い返してみると、日常生活において、等速運動はむしろ稀で、
逆に、速い遅いがはっきりしている加速度運動が多いことに気づくでしょう。
机から落ちたペンの速度は、一定でなく、最初は遅いが後に速い。
走り始めた陸上選手の速度は、はじめは遅いが徐々に速くなる。

しかしこれは考えてみれば当然のことで、ニュートンの法則によると、
力を加え続けると、質量あるモノは加速度運動で動き出すのだという。
逆に言えば、加速度運動をしていない、等速運動をしている状態であるということは、
力が加わってない状態であるということを表しているわけですね（それが全部とは言わないけれど）。
しかし、現実には、空気があり、摩擦があり、重力がある。
力のまったく加わらない状況は有り得ないのであって、日常的な感覚としては、
『ほとんどすべてのものは加速度運動で動く』と言って差し支えないのではないでしょうか。

であるからして、現実をデフォルメ化したゲーム内で等速運動を多用するのは、
ある種ナンセンスなのではないかというのが持論です。

要するに、1次関数は実はそんな汎用性の高い物ではないですよってこと。
前述のとおり、1次関数で表される変化は専ら等速運動であって、現実世界では稀な類の動きなんですね。
変化率が大きいと違和感は少ないですが、変化率が小さくなればなるほど異様な印象を受けるので、
使う際は注意してください。


◆◆◆③　使用頻度：かなり低

cos関数による数値の上昇。
cos関数は、角度が0度～90度（pi/2）の範囲において、1から0まで変化する関数です。
①や②との違いは、変化の最初が平坦であるということ。
cos関数は、1から最初はゆったりと小さくなっていって、
徐々に変化率を増してゆき、最後は変化率∞で0に至ります。

このcos関数を1から引いたのが与式です。

1-cosの値は、0から、最初はゆったりと上昇してゆき、最後は物凄い速度で1に至ります。
実際、

1-cosが0度の時の値は、 1-cos(0)=0
1-cosが45度の時の値は、1-cos(pi/4)=約0.3。
1-cosが90度の時の値は、1-cos(pi/2)=1。

のように、変化の最初はゆったり、最後は物凄い速度といったような感じです。


さて、余談。
使用頻度でいえば、②が一番です。















