Text 文字列

Anime の 道具箱

dA-tools.com

HOME > AfterFx > expression > 実例 > Text 文字列

 テキスト:文字

Sample:文字列操作

 テキスト、文字列操作のサンプルです。

 1.タイム表示

  • セルアニメでよく使う[秒+コマ]という形式でTimeを表示するExpressionです。
  • まずGlobal objectのtimeToTimecode( ) メソッドで現在のTimeを取得します。
  • このメソッドの返り値はStringです。変数 fullTimeに代入します。

fullTime=timeToTimecode(t = time + thisComp.displayStartTime, timecodeBase = 24, isDuration = false)

  • 結果  00:00:05:12
  • この様になります。次に後半の[秒:コマ]の部分だけを抜き出します。

sec=fullTime.substring(6,8)

  • substring()でなくてsubstr( )を使う方法だと次のようになります。

koma=fullTime.substr(9,2)

  • そして秒とコマを ”+” でつなぎます。

sec + "+" + koma

  • 結果
    • 05+12
  • 別の方法として、split( )を使うことも出来ます。
  • split( )を使うと 00:00:05:12が[時]・[分]・[秒]・[フレーム]それぞれに分けて配列に入ります。
  • 秒とコマがそれぞれ配列の[2]と[3]に入っているのでそれを取り出し、つなぎ合わせます。

sec=fullTime.split(":")[2];
koma=fullTime.split(":")[3];
sec + "+" + koma

 2.ファイル名

  • フッテージレイヤーの名前から拡張子を除いたファイル名だけを表示してみます。
  • 例としてTest.mov というファイルを使います。
  • まずレイヤー名を取得して変数 fullNameに代入します。

fullName=thisComp.layer("Test.mov").name;

  • substring( ) を使いたいので、2つめの引数(ピリオドの位置)を得るためにlastIndexOf( )を使います。
  • 返り値を変数[dot]に代入します。

dot=fullName.lastIndexOf(".");

  • 最後にsubstring( ) を使ってピリオドの手前の文字までを抜き出します。

fullName.substring(0,dot)

 3.ランダム文字

  • アルファベット[a-z]をランダムに表示するExpressionを作ってみます。
  • 乱数を発生させるメソッドramdom( )は数字だけしか出しません。そこで 数字を文字に関連付けるためにキャラクターコード変換を使います。キャラクターコードとは文字や記号をコンピュータで扱うために、文字や記号一つ一つに割り当てられた固有の数字のことです。
  • アルファベットの"a"はキャラクターコードでは[97]、"z"は[122]ですので97から122までの数字をランダムに発生させ、その数字を文字に変換すればOKです。
  • randomの返り値を整数化するのにMath.roundで四捨五入します。

chCode=Math.round(random(97,122));
String.fromCharCode(chCode)

  • 一文字では寂しいので10文字に増やしてみました。
  • for ループを使って文字を10回発生させて文字列を作ります。

var sum="";
for ( i=1 ; i<=10 ; i++){
 chCode=Math.round(random(97,122));
 sum+=String.fromCharCode(chCode);
}