SORAを設計するにあたって、次のモデルを参考にした。
脚本とは、演劇作品やテレビ・ラジオ番組における演技、演出、構成を指定したものである。多くの場合、演技や構成は時間順に記述されており、また幕、場(シーン)、カットといった文書構造を持っている。
一般的な脚本は次のような構造を持っている。
脚本は先頭のページから読み進められ、記述された順にシナリオが進行してゆく。その際、複数の場面が同一地点で時間を別にして進行されることがある。この場合、同じ地点でも過去に記述された場面は切り捨てられ、新しい方の場面の演出が適用される。
SORAでは脚本の構造を取り入れ、メッセージや演出を意味する要素を時間順に記述し、構成を意味する要素でそれらを構造化する。実行エンジンによる再生が進むにつれて、シナリオは自動的に進行してゆく。同一地点の場面が複数ある場合、記述順で後方にある場面が有効となる。
プレイヤーキャラクタとマップ上に存在するキャラクタが接触すると、接触されたキャラクタの持つフラグにより分岐が行われ、分岐先に関連づけられた演出が実行される。この接触されたキャラクタをイベントキャラクタと言い、単にイベントと言うときもある。SORAでもこのモデルに倣い、イベントキャラクタを明示的に指定する。
構造化文書の特色として、ある文書から別の文書への参照を指定するハイパーリンクを持つことが挙げられる。ハイパーリンクにより、文書間に関連を持たせることが可能になっただけでなく、長大な電子文書を複数の文書に分割して管理することが容易になった。 SORAではシナリオ間の関連づけ、シナリオの結合をハイパーリンクを用いて行う。
以上のモデルを参考にして、SORAでは次のような言語モデルを設計した。
演出要素は文書の先頭から順番に解析され、実行される。構成を意味する要素は演出要素のコンテナとして機能する。
また、イベントキャラクタが必要となる状況はプレイヤーキャラクタの操作が可能な時、つまりシナリオの実行が一時的に終了したときである。従って、イベントキャラクタの記述とシナリオの記述は時系列で直列に記述することができる。このため、同一のイベントキャラクタを複数記述した時も同一地点で時間の違う複数場面の記述と同様に扱える。すなわち、文書の後方に記述したものが優先される。
SORAでの記述例を示す。
<scenario> <scene where="村の中心" id="説明"> <desc>昼、村の中心にて。</desc> <prompt>SORAの説明</prompt> </scene> <walk> <event name="村人"> <a href="#会話"/> </event> <event name="看板"> <line>村へようこそ。<line> </event> <walk> <scene where="村の中心" id="会話"> <desc>村人は面倒くさそうに話す。<desc> <cut> <line actor="男">一回しか言わねえからな。<line> <dir>間を置く。<dir> </cut> <cut> <line actor="男">ま、順番どおり演じる、ってことだ。<line> <dir>プレイヤーから遠ざかる。<dir> </cut> </scene> <walk> <event name="村人"> <line actor="男">説明は終わりだ。<line> </event> </walk> </scenario>
イベントキャラクタのフラグ操作を一切行っていないことに注意。シナリオが直線的である限り、フラグ管理は必要ない。
generated on Thu Jun 17 15:41:51 JST 2004