久々に
知人の仕事の手伝いで VBScript を使うことになった。
Perl とか Ruby とかだとそれをインストールしなくちゃ行けないので、素の Windows で実行できるスクリプトというわけで VBScript を選んだワケなんだが……しかし、なんだな……使いにくいことこの上ないな、この言語は……。それと機能不足だ……書式付き文字列出力とかないのかこれは? 配列操作も全然命令が足りないぞ?
あと美しく書くにはどうすればいいんだ……orz
というわけで、処理の内容の割には長くて変なものができあがりましたよ、と。
処理の内容は台本についている音声ファイル名を実際のスクリプトに反映させるというもの。台本にはファイル名とそのキャラクタの台詞が書かれている。そこで VBScript でその台本と同じ台詞をゲームで使われるシナリオ・ファイル(業界ではスクリプトと言う)から探し出して、一致したらその音声ファイル名をつける。これを台本のすべての音声ファイルが終わるまで繰り返す。
んで、テキトーに作ったもんだから、これが馬鹿正直に一つの台詞をすべてのスクリプト・ファイルの一行一行と照合してるんだなこれが(バカー)。いや、VBScript だからそれぐらいのことなら数行で済むし手間かからんだろうっておもったんだが、それがそうでもなかったという。
だいたいファイルなんて、まるっと丸ごと読み込んでくれるんじゃないの?
なんで一行ずつ読むの……。
などなど。
喋るキャラは決まっているわけだから、そのキャラの台詞だけ照合すれば処理は圧倒的に速かったんだけど、まぁそんなこんなでタコいソースを書いてしまったなぁ(ぉ
- その手のソフトは地味に面倒です。うちもシナリオファイルから音声ファイル名と台本を一括で作成するソフト作りましたけど、かなりの手間でした 更に汎用的になるよう項目選択も出来るようにしたので、値段と時間が合わなかったという……w -- Crescent
- え、そう? 手間は別に(汗)。汎用性はあんまり考えたことはないですけどね。使うエンジンはいつも同じなので。 -- たまきん
- 汎用性メインにしたから、手間だったのかなぁ。まぁ、リッチテキストにしたり、台本用ルーチンが面倒だったのかも -- Crescent
- 台本は Word のマクロをつかってやってますね。縦書きにそろえられますし、なかなか便利です。というか、C とかでやろうとしてませんか? 文字列操作は Perl などの文字列操作用の言語が便利ですよ。正規表現なんかも簡単に使えますし。 -- たまきん
- 確かVBです やっぱり、Perlをやらなくちゃ駄目なのか…… -- Crescent
- VB で書くってだけで、そもそも 10 倍ぐらい疲れると思う(ぇー -- たまきん
#comment