ノード一覧に戻る

文字アニメーション

text_animate_by_glyph

TextLayout の文字ごとに、ずらし付きの移動・拡大縮小・透明度・波・バウンスを適用します

下書き
解説あり

入力ポート

名前説明
レイアウト
layout
TextLayout
必須
1文字単位で変形する TextLayout

出力ポート

名前説明
レイアウト
layout
TextLayout
1文字ごとの変形状態を更新した TextLayout

パラメータ

名前既定値範囲説明・選択肢
進行度
progress
Float
10–1 / step 0.01

選択した文字範囲に対する正規化アニメーション進行度

先頭文字
first_glyph
Int
00–4096

アニメーション対象に含める先頭文字番号(0 = 1文字目)

末尾文字
last_glyph
Int
40960–4096

アニメーション対象に含める末尾文字番号

逆順
reverse
Bool
false

選択した文字範囲を末尾から先頭へ向かってアニメーションします

1文字遅延
stagger
Float
00–0.5 / step 0.01

対象範囲の各文字に順番に追加する正規化遅延量

開始Xオフセット
translate_x
Float
0-128–128 / step 1

開始時に適用し、進行に応じて 0 へ戻る横オフセット

開始Yオフセット
translate_y
Float
0-128–128 / step 1

開始時に適用し、進行に応じて 0 へ戻る縦オフセット

開始スケール
start_scale
Float
10.05–4 / step 0.05

進行度 0 で適用し、進行に応じて 1.0 へ戻るスケール

開始不透明度
start_opacity
Float
10–1 / step 0.01

進行度 0 で適用し、進行に応じて 1.0 へ戻る不透明度

波の高さ
wave_y
Float
0-64–64 / step 1

アニメーション中に追加するサイン波の縦揺れ量

波の周期数
wave_cycles
Float
10–8 / step 0.25

0..1 の進行度全体で何周期ぶん波を進めるか

バウンス高さ
bounce_y
Float
00–128 / step 1

各文字のローカル進行度に沿って 1 回だけ上へ跳ねる量

どう考えればいい?

  • TextLayout は「どこに文字を置くか」を持つ
  • TextAnimateByGlyph は「その文字ごとにどう動かすか」を上書きする
  • 最後に TextRasterize v2TextOutline で画像へ焼く

1文字単位の考え方

  • v1 の glyph は実質 1文字単位
  • 先頭文字 = 01文字目
  • 末尾文字 の上限は、入力された TextLayout の文字数に合わせて自動調整される

進行度の考え方

  • progress0..1
  • 対象文字数が 11 文字なら、1 文字刻みは 1 / 11
  • stagger を 0 より大きくすると、各文字に順番に遅延が乗る

技術詳細

  • このノードは TextLayoutGlyph.visible / opacity / translate / scale を更新した新しい TextLayout を返す
  • translate_x / translate_y は「開始位置から元の位置へ戻る」補間として使う
  • start_scale / start_opacity も「開始状態から通常状態へ戻る」補間として使う
  • wave_y は進行中にサイン波オフセットを追加する
  • bounce_y は各文字ごとに 1 回だけ山なりの縦バウンスを追加する
  • TextRasterize v2 / TextOutline 側で translate / scale / opacity を読んで描画する
  • 出力 TextLayout は Inspector の 文字レイアウト(デバッグ) で glyph index / bbox を確認できる

使用例

[Text Input] -> [Text Layout] -> [文字アニメーション] -> [テキスト画像化] -> [Preview]
[Text Input] -> [Text Layout] -> [文字アニメーション] -> [文字アウトライン] -> [Preview]
ノード一覧に戻る