どう考えればいい?
TextLayoutは「文字がどこにあるか」の構造Text Reveal By Glyphは「そのうちどの文字を見せるか」を決める- まだ画像にはしない
- 最後は
TextRasterizeやTextOutlineで画像化する
glyph について
- v1 では
glyphは実質 1文字単位 と考えてよいです - したがって
先頭文字 = 0は 1文字目、1は 2文字目、という意味です - つまり
先頭文字/末尾文字は 文字番号 を指定していると思えば大丈夫です
挙動
first_glyph〜last_glyphの範囲だけがリビール対象になります- 範囲外の文字は非表示になります
reverse = trueの時は、同じ範囲を末尾から表示しますdelayは全体の開始待機です。0.5なら progress が半分進むまで何も表示しません- 既に
visible = falseの glyph は、このノードでも表示されません
進行度の考え方
progressは常に0..1の正規化値です先頭文字〜末尾文字で選ばれた 対象文字数 が11なら、1文字ぶんの刻みは1 / 11 = 0.0909...です- 1文字ずつ一定間隔で表示したい時は、この刻みごとに
progressを進めます - 文字数が変わっても同じアニメーション系の制御へ載せやすいように、文字数そのものではなく
0..1を使っています
インスペクター補助表示
文字リビール補助には、次が表示されます- 全体の文字数
- 現在選んでいる範囲の文字数
- 現在選んでいる範囲に対する 1文字ぶんの刻み値
- 現在の進行度で何文字表示されるか
末尾文字は、入力TextLayoutの実際の文字数に合わせて自動で上限が更新されます- 出力
TextLayoutは Inspector の文字レイアウト(デバッグ)で glyph index / bbox も確認できます
使用例
[Text Input] -> [Text Layout] -> [Text Reveal By Glyph] -> [Text Rasterize] -> [Preview]
[Text Input] -> [Text Layout] -> [Text Reveal By Glyph]
[TimeSource] ----------------------^ progress