Core

XML-RPG(仮)のシナリオを記述するScenarioCoreでは、劇作品などの台本で用いられる「幕・場・カット」の構造を用います。 これは古くから使われている構造であり、シナリオの著者や読者にとってなじみ深いものだと思います。

RPGでは、一幕は1つの事件、一場は1つの地点でのストーリー展開、一カットは一場内での区切りを表す、と考えられます。 また、ストーリーの構成単位としてはやはり「台詞・ト書き・状況説明」を用います。 ト書きは主にエンジンに対する説明、状況説明はCoreとEventsとで役割が異なりますが、コメントや初期条件の設定に用います。

要素

名前空間は http://static.s59.xrea.com/2002/RPg-Scenario としています。

要素 役割
scenario シナリオ文書の宣言
act 幕の宣言
scene 場の宣言、シナリオの構成単位
cut カットの宣言
desc 状況説明(DESCription)
line 台詞
dir ト書き(stage DIRection)
br 台詞の区切り(BReak)
span 抑揚などの細かい指定
a 別のシナリオ文書へのリンク
 (階層構造)

 - scenario
    - desc
    - act
       - desc
       - scene
          - desc
          - cut
             - desc
             - dir
                - a
             - line
                - br
                - span

内容進行を表現する要素

scenario 要素
内容が、XML-RPG(仮)の実行エンジンで再生されるシナリオであることを示します。
act 要素 (省略可)
シナリオの一幕を宣言します。RPGシナリオにとっては意味上の宣言にすぎませんが、 RPGシナリオでは、おおよそ1つの事件ほどの規模のストーリーを表します。
scene 要素
属性 役割
where ストーリーの地点
name 場面の名称
id シーンナンバーなどの一意的識別子
シナリオの一場(場面)を宣言します。シナリオの構成単位で、場面を重ねることでストーリーも進行していきます。 場面はその名の通りストーリーの発生している地点に属し、通常は地点が変わらない限り場面も変わりませんが、 RPGシナリオで戦闘シーンなど著しく状況が変わる場合は、同一地点であっても別の場面に移ることが良いと思います。
cut 要素
属性 役割
name 場面の名称
id 一意的識別子
1場面内の一区切りを宣言します。scene要素内には1個以上のcut要素を含むことになります。 多くの場合、選択の結果の1つはcut要素で表されます。

内容を表現する要素

シナリオの内容はscene要素の子孫要素として扱われる。

desc 要素
シナリオの状況描写を宣言します。コメントと似ていますが、 読者やエージェントに該当シーンの状況を説明する、という意味がある点でコメントとは異なります。
line 要素
属性 役割
role 発言者
style CSS2プロパティ
シナリオでのセリフを宣言します。XML-RPG(仮)では、 登場人物のセリフだけではなくプロンプトも「システムのセリフ」と見なし、line要素で宣言します。
dir 要素
シナリオのト書き(stage direction)を宣言します。Coreではdir要素の内容はテキストとなりますが、 Eventsでは実際の演出を記述する要素となります。
span 要素
属性 役割
style CSS2プロパティ
line要素の内容を修飾します。視覚エージェントにとっては文字に関する修飾(大きさ、太さ、色など)だけでなく、表示時間のずれなどに相当することになります。

とくに時間のずれなどは、SMILで表現した方が良いのかもしれません。

a 要素