ボイスにあわせて文字速度を変える。
http://www.doblog.com/weblog/myblog/37649の中の人との会話。
Q.ボイスファイルの長さに合わせて、文字の表示速度を変えることはできないか?
なかなか面白いことを言う。
そこで私が提示したソリューションが以下。
ソリューション
ボイスファイル名は通常、ナンバリングで管理されていることが前提。
一番最初のボイスは0000.wavになるとする。
このファイル名に、さらに文字速度の情報を盛り込む。
例)0000.wav→0000.123.wav
この二つ目の数字は、NScripter内部でそのまま文字速度として採用されるもので、ボイスファイルの長さ(単位:ミリ秒)を、そのセリフの文字数で割った数値(端数切捨て)になる。
このファイル名にした後、NScripterのスクリプト側で、独自のボイス専用命令を作成して対処する。
*define numalias voice_file,100 numalias voice_speed,101 defsub voice game *start voice "0000.123.wav" セリフだよっ!\ end *voice getparam $voice_file split $voice_file,".",%voice_file,%voice_speed textspeed %voice_speed dwave 0,$voice_file return
こうすると、早口のセリフの時は文字速度も速く、のんびり口調の時は文字速度も遅くなる。
結論
- ボイスファイルの長さを調べる。
- 何か特別なプログラムで一気にやりたい。
- セリフの長さを調べる。
- 通常、声優さんに渡すためセリフを抜き出しているはずだから簡単。
- 長さ(ミリ秒数)とセリフの文字数で文字速度を割り出す。
- エクセルかなんか欲しー。
手間の割にはあんまり演出的にすごい訳ではないような気がする。やめやめ。