2025-06-27

Awareness(2025/06/27)

【awarenessとは 意味・読み方・使い方】
意味・対訳:(…に)気づいていること、(…を)知ること、気づくこと、知ること、自覚、意識

理想と自分を比べるやつ(と言いつつ好きな作家の映像見て色々書くだけのやつ)

続きを読む

2025-04-10

カスのPDCAサイクル

現状:頭では(作業しなきゃ……)と思いつつ実際は作業してないカスみたいな時間と謎の後ろめたさを抱えた意味不明な精神状態

続きを読む

2025-04-07

AEでテキスト下揃えアニメーション

ちょっと工夫が要るのでメモ。TypeAnimeJPを作ったときの知識が役に立った。

ソーステキストにエクスプレッションを追加

以下のテキストをアニメーションさせるとする。

ああああ
いいい
うう
ええええ
おおおおお

改行部分に「\n」を追加する。

ああああ\n
いいい\n
うう\n
ええええ\n
おおおおお

改行を無くして1行にする。

ああああ\nいいい\nうう\nええええ\nおおおおお

空のテキストレイヤーを作成し、ソーステキストに以下のエクスプレッションを書く。(text変数にさっきのテキストをぶち込む)

var text = "ああああ\nいいい\nうう\nええええ\nおおおおお";

スライダー制御エフェクトを追加して、その値を取得するエクスプレッションを追記。
Math.roundで整数値にまとめる。文字数を指定するための値なので。

var s = Math.round(effect("スライダー制御")("スライダー"));

slice関数でスライダー制御の値の文字数だけ表示されるようにする。

text.slice(0, s);

これでスライダー制御の値にキーフレームを打てばアニメーションするようになる。

アンカーポイントにエクスプレッションを追加

このままでは上揃えのままなので、下揃えにするためにアンカーポイントにエクスプレッションを追加していく。

sourceRectAtTimeでこのレイヤーの縦横のサイズを得る。
さっきわざわざテキストをエクスプレッション内に記述したのは、普通にテキストを書いてアニメーターの不透明度でアニメーションさせると、レイヤーのサイズが変化しないから。

ちなみに「time - thisLayer.startTime」がちょっと工夫ポイント。startTimeの説明がややこしいので意味は割愛。

var r = thisLayer.sourceRectAtTime(time - thisLayer.startTime, true);

レイヤーの縦横のサイズが取得できたので、その値を使って位置を補正。もともとのアンカーポイントの値にレイヤーの高さを追加するだけ。

[value[0], value[1] + r.height];

エクスプレッションまとめ

ソーステキスト

var text = "ああああ\nいいい\nうう\nええええ\nおおおおお";
var s = Math.round(effect("スライダー制御")("スライダー"));
text.slice(0, s);

アンカーポイント

var r = thisLayer.sourceRectAtTime(time - thisLayer.startTime, true);
[value[0], value[1] + r.height];