以下、単位はフレーム[F](1/60秒)で、60Fで1秒となります。例えば、60は60/60秒=1秒を表します。
文章の表示は、ウィンドウを開くのに1掛かり、表示の最後に3掛かります。従って、最低でも4は掛かるということになります。ウィンドウを開くときのウェイトは透明ウィンドウであっても掛かります(見えないウィンドウが表示されると考えてください)。文章の表示を継続して使用するとウィンドウは開いたままになるので、その際にはウィンドウを開くときのウェイトは掛かりません。ウィンドウ最後のウェイトだけは常に掛かるようです。
例として「あいうえお」と表示する動作の場合は、後述しますが通常スピードの全角文字の表示には1字につき1掛かることから、1+5+3=9掛かることになります。
以下では通常スピード(\S[1])と、それより遅い場合(\S[2]以降)に分けて解説します。何故か両者の計算方法が大きく異なるためです。
全角文字1字につき1掛かります。半角文字の場合は2字くっつけて1と計算します。くっつけられない場合は半角文字1字で1となります。例えば「150円」という文字列の場合は、まず半角文字2字をセットにして「15」の部分で1掛かり、次の半角文字「0」はくっつけられないので単体で1掛かり、最後に全角文字「円」は1掛かるので、これは合計3掛かることになります。半角文字1字を0.5として計算してはいけません。必ずまとまりを作る必要があります。
改行に時間は掛かりませんが、半角文字をセットにする際の区切りとして働きます。
\S[1]のときは全角文字1字につき1掛かっていましたが、\S[n]のときはn+1掛かります。nではないことに注意してください。
半角文字の計算は\S[1]のときと大きく異なり、まとまりを作るのではなく言わば1字を0.5と見なすような計算をします。ただし、計算結果に小数が出ないような特別な処置が施されます。具体的には\S[n]のとき、半角文字1字の計算時間は(n+1)/2(ただし小数点以下切り上げ)とします。つまり例えば半角文字のみを表示する場合、\S[6]と\S[7]の表示時間は全く同じになります。また、まとまりを作る方式ではないので、改行などの区切りがあっても無関係に計算します。
以下は各文字の表示時間を表にまとめたものです。\S[1]の場合はn=1とします。
文字
|
\S[1]の場合
|
\S[n](n≠1)の場合
|
全角文字
|
1
|
n+1
|
半角文字
|
2字を1つのまとまりにして全角文字と見なす。
まとめられない場合は1字で1とする。
|
(n+1)/2(ただし小数点以下切り上げ)
|
\\
|
半角文字1字と見なして同様に計算。
|
\C[m]
|
半角文字の区切りになる。直後に改行があると1
|
\S[m]
|
直後に改行があると1
|
\N[m]
|
文字列をそのまま置換。
|
文字列をそのまま置換。
ただし置換後の文字列が空文字列であり、
かつ直後に改行があると1
|
\V[m]
|
数値を半角文字列にしたものをそのまま置換。
|
\$
|
別ウィンドウ表示に際してn 直後に改行があるとさらに1
|
\!
|
詳細不明
|
\.
|
16 直後に改行があるとさらに1
|
\|
|
61 直後に改行があるとさらに1
|
\>
|
以降の文字に掛かるウェイトをすべて無視する。
|
\<
|
\>の処理終了に際してn 直後に改行があるとさらに1
|
\^
|
n
|
\_
|
半角文字1字と見なして同様に計算。
|
外字
|
全角文字1字と見なして同様に計算。
|
上記の表にも記載しておりますが、\^にもウェイトが掛かります。\S[10]などに設定してテロップのようなものを作成したときに、最後に\^を入れてもなかなかウィンドウが閉じないのは、\S[10]であれば\^に10もウェイトが発生してしまうためです。もし早く閉じたいのであれば、\>\^としましょう。
\C[m]や\S[m]など、多くの特殊文字で通常はウェイトが掛からないのに改行があるとウェイトが掛かるものがあります。中でも特殊な文字は\N[m]で、\S[2]以降の場合に限って\N[m]の中身が空っぽだと、改行後にウェイトが掛かる仕様となっています。これは不思議な仕様です。空文字列でも\S[1]であれば改行でウェイトは掛かりません。
1/4秒ウェイト、1秒ウェイトは上記の表にあるように不正確です。\.\.\.\.と\|では、前者の方が若干時間が掛かるということになります。いずれも1/60秒の誤差ですから通常は問題になりませんが、もし正確なウェイトを実行するのであれば\<を活用するのが良いでしょう。\<は現在のスピードに比例したウェイトを実現するので、任意のウェイトを作成するのに適しています。例えば、1/4秒ウェイトは\S[15]\<を、1秒ウェイトは\S[20]\<\<\<を使えばそれぞれ正確になります(改行後のウェイトに注意してください)。
前述したように、\S[2]は\S[1]より3倍遅くなります。2倍遅くすることは出来ません。活用場面が中々ないと思われますが、これを解消するには\<を適宜挿入すると良いでしょう。例えば「あいうえお」を通常の2倍遅く表示するのであれば、\S[1]では\<が1掛かることを利用して「あ\<い\<う\<え\<お\<」と書けば良いのです。これにより、1字につき2掛かるようになります。
表示の遅さ
|
実際に記載するテキスト
|
1倍遅い
|
あいうえお
|
2倍遅い
|
あ\<い\<う\<え\<お\<
|
3倍遅い
|
\S[2]あいうえお
|
4倍遅い
|
\S[3]あいうえお
|
5倍遅い
|
\S[4]あいうえお
|
次の文章の表示に掛かる計算時間を求めてみます。ウィンドウはすでに開かれているものとします(最初のウェイト1のみ掛からないということです)。
こんにちは。\S[3]\\\\\C[5]わかるかな??\.
なかなか難しいかも\S[8]知れないけれど、\$
めげずに\S[4]\_\C[0]がんばってねえ。
\|\>何秒かわかったかな\<!\^
|
以下は実際に表にして計算時間を各々求めていった結果です。
行番号
|
文字列
|
表示速度\S[n]
|
種類
|
所要時間[F]
|
1
|
こんにちは。
|
1
|
全角文字×6
|
6
|
1
|
\S[3]
|
1
|
\S[m]
|
0
|
1
|
\\\\
|
3
|
半角文字×2
|
4
|
1
|
\C[5]
|
3
|
\C[m]
|
0
|
1
|
わかるかな??
|
3
|
全角文字×7
|
28
|
1
|
\.
|
3
|
\.
|
17
|
2
|
なかなか難しいかも
|
3
|
全角文字×9
|
36
|
2
|
\S[8]
|
3
|
\S[m]
|
0
|
2
|
知れないけれど、
|
8
|
全角文字×8
|
72
|
2
|
\$
|
8
|
\$
|
9
|
3
|
めげずに
|
8
|
全角文字×4
|
36
|
3
|
\S[4]
|
8
|
\S[m]
|
0
|
3
|
\_
|
4
|
半角文字×1
|
3
|
3
|
\C[0]
|
4
|
\C[m]
|
0
|
3
|
がんばってねえ。
|
4
|
全角文字×8
|
40
|
4
|
\|
|
4
|
\|
|
61
|
4
|
\>
|
4
|
\>
|
0
|
4
|
何秒かわかったかな
|
4
|
(\>の範囲内)
|
0
|
4
|
\<
|
4
|
\<
|
4
|
4
|
!
|
4
|
全角文字×1
|
5
|
4
|
\^
|
4
|
\^
|
4
|
最後のウェイト
|
3
|
合計
|
328
|
以上より、328/60秒≒5.5秒掛かることが分かります。