はじめに
アニメーションを作成しているといつかは欲しいと思うようになるのが数値をランダムに動かす乱数表現です。その揺らしの表現をするために、エクスプレッションを使用するわけですが、今回はイメージしやすいものとして、テキストの「位置」にエクスプレッションで乱数を追加し、文字の位置をランダムに揺らしたいと思います。以下でその方法と詳細について解説します。
エクスプレッションの追加(位置)
まずエクスプレッションの追加ですが、「位置」を選択した状態で、「アニメーション」→「エクスプレッションの追加」でエクスプレッションを追加します。
ちなみにエクスプレッション追加のショートカットキーは
・「alt」を押しながらキーフレームのストップウォッチを押す。
のなので、たくさん使う人は覚えておいてもいいかもしれません。
乱数を使ってランダムな動きの表現方法「random(◯,◯)」
先ほど追加したエクスプレッションにコードを追加します。「random(A,B)」のコードを使うのですが、意味としては、「A〜Bの間でランダムに値を変化させる」という意味です。
今回は「位置」をランダムに動かしたいということなのですが、ここで問題が一つあり、このrandamのコードは、その性質として一つのコードにつき、一つの値しか動かせないので、位置のようにx,yとあると動かすことができません。そこで、少し複雑ですが、次のような表記をします。
x=random(0,100); y=random(0,100);[x,y]
ちなみに「不透明度」など一つの値をランダムに動かしたい場合は次の一つのコードだけでちゃんと機能します。
random(0,100)
※初心者のためのエラー対策
ちなみに( )など、エクスプレッションに書く文字は基本的に全て”半角”と覚えておいてください。プログラミングの基本でもありますが、全角の場合はエラーが出てしまいます。
ランダム表現応用編①-指定範囲外も10%で含む「gaussRandom」
先ほどの「random」は、指定された範囲内でのみ動きますが、この「gaussRandom」という乱数は10%の確率で指定された範囲外でも動来ます。細かな違いですが、覚えておくと使う機会があるかもしれません。
gaussRandom(5,100)
ランダム表現応用編②-変化の回数を指定する「wiggle(◯,◯)」
ランダムに値を動かすエクスプレッションとしてはもう1つあります。「wiggle(A,B)」のコードですが、A=1秒間に何回数値を動かしたいか、B=変動幅です。先ほどのrandomとの違いとしては、randomが1フレームごとに値を変化させるのに対して、wiggleは数値を変化させる回数を指定できるので、Aの値がコンポジションのフレームレート以下なら、値が変わるまでの間はキーフレーム的に滑らかに動きます。Aの値がフレームレートを超えるとrandomの時と同じ動きをします。また、wiggleは複数の値を動かすことができるので、入力するコード1つで「位置」のエクスプレッションを機能させることができます。
wiggle(5,100)
また、wiggleはrandomよりも自然に動くので、使い方としてはカメラの手ブレを表現する時に使われたりもします。
(練習)テキストアニメーション
こちらrandom関数を使ったテキストアニメーションの解説動画も作ったので、よかったら見てください。衝撃波などのアレンジを加えることで一気にかっこよくなります。
【AE初心者2019】乱数を使ってランダムな動きをするテキストアニメーション
さいごに
今回はエクスプレッションを使って、位置を数値をランダムに動かす方法を紹介しました。エクスプレッションまで手をつけれるようになると、AEでは表現の幅がどんどん増えていきます。色々と使って慣れることで、アニメーション力をどんどん伸ばしていきましょう!!