今回も、しぶとく引用符ネタです。今回はAfterEffects 7.0で引用符である"〜"を“〜”のように変換するスクリプトと、引用符を修正するスクリプトです。引用符を修正するスクリプトが、なぜ必要なのかと言えばAfter Effects 7.0でテキストを入力すると引用符が自動的に変換され“〜”のようになるためです。ただし、先頭で"を入力した場合のみ正しく処理され2文字目以降は”にされてしまいます。これを解消するためのスクリプトが必要になるわけです。
まず、スクリプト1は、変換したい引用符があるテキストレイヤーをタイムラインウィンドウで選択してから実行します(必ずタイムラインウィンドウで選択してください)。テキストレイヤーは複数選択でき選択したテキストレイヤーのみダブルクオーテーションが引用符に変換されます。
スクリプト2はAfterEffects 7.0の引用符の不具合を解消するものです。スクリプト1と同様に変換したいテキストレイヤーを選択してから実行します。
なお、文字に色など属性を指定する前に実行してください。属性が指定された後では文字の色などがおかしくなります。また、スクリプトはExtend Script ToolKitから実行しても問題ありません。
【スクリプト1】
LQ = "“"; // 開始カッコ
RQ = "”"; // 閉じカッコ
function convertQ()
{
selObj = app.project.activeItem.selectedLayers;
for (i=0; i<selObj.length; i++)
{
count = 0;
result = "";
txt = (selObj[i].sourceText.value).toString();
for (j=0; j<txt.length; j++)
{
c = txt.charAt(j);
if (c == '"')
{
c = LQ;
if (count & 1) c = RQ;
count++;
}
result += c;
}
selObj[i].sourceText.setValue(result);
}
}
convertQ();
【スクリプト2】
LQ = "“"; // 開始カッコ
RQ = "”"; // 閉じカッコ
function convertQ()
{
selObj = app.project.activeItem.selectedLayers;
for (i=0; i<selObj.length; i++)
{
count = 0;
result = "";
txt = (selObj[i].sourceText.value).toString();
for (j=0; j<txt.length; j++)
{
c = txt.charAt(j);
if ((c == RQ) && ((count & 1) == 0)) c = LQ;
if ((c == LQ) || (c == RQ)) count++;
result += c;
}
selObj[i].sourceText.setValue(result);
}
}
convertQ();