テキストを描画する1

 さて、YaneSDK.NETは楽しみに待つとして、夏コミの実装を続けます^^;。まずはテキスト描画。作るのはサウンドノベルですが、どうせなら後で応用が効く汎用的なテキストレイヤの設計を考えたいと思います(暇だし)。

 大抵のゲームでは、演出シーンにおいてはスクリプトという物を組んで、それをシナリオエンジンがパージングして、タイミングを制御しつつ画面に文字だのイラストだのを表示します。スクリプトで複雑な処理を記述出来るとより多彩な演出が行えます。ただし、スクリプトの構文があんまり複雑だと、初めからネイティブコードでかけよ、という話になり、本末転倒かもしれません。

 ちなみに、演出用のスクリプトと、例えばLuaのような外部組み込みスクリプトに果たして概念的な違いがあるのか、よくわかりません。メインプログラムも、外部スクリプトも、演出用スクリプトも同じ言語で書けたら……べ、便利なのか、な? どうだろう?

 話がずれましたが、そんなわけで演出用スクリプトには文字出力とは関係あるコードと無いコードがごっちゃになっています。これを取捨選択するのはシナリオエンジンの仕事であって文字表示ルーチンの仕事ではありません。ですから、文字表示ルーチンはスクリプトの仕様に依存せずに設計されるのが理想的です。

 例えば

<font size="3">テスト

みたいな、HTML風スクリプトを解釈するとした場合、文字表示ルーチン側では、フォントサイズの変更を受け入れるメソッドがあれば良く、そこにタグ名の依存とかがあってはNGです。

 思いつくことをつらつらと書きますが、テキスト表示の場合、入力待ち、ウェイト、早送りなどにも対応しなければいけません。これらの情報をどう保存するのかも課題です。近々、要求仕様を書き出してみましょう。