ノベルゲーのシナリオの、XMLでの記述案
こんな感じで。
<scenalio title="序章"> <sentence> <!--sentece要素が始まった時、その時の画面の状況その他をパッケージしたセーブデータが作られます。--> <background effect="default" span="80" file="background.png" /> <!--このように単品で演出系のタグを表示すると、即座に画面にそれが反映されます。この場合は、画面の背景を変更する演出です。また、effect属性は書き換える際の画面効果の種類であり、spanはその画面効果にかける時間をミリ秒で示します。--> <staging effect="default" span="80"> <cast type="主人公" expression="笑い" costume="制服" pose="胸を張る" action="entry" position="右" /> <!--主人公の立ち絵を舞台に立たせる。場所は舞台の向かって右側。表情は笑いで、制服で、胸を張った姿勢--> <cast type="ライバル" expression="渋面" costume="制服" pose="腕組み" action="entry" position="左" /> <!--主人公の立ち絵を舞台に立たせる。場所は舞台の向かって左側。表情は渋面で、制服で、腕組みの姿勢--> </staging> <!--このようにstaging要素で区切ると、複数の演出を同時に展開します。--> <messages> <!-- message 要素のlang属性は言語を示します。このシナリオファイルは大きくなりますが、シナリオそのものに翻訳文を追加できるので、訳の原文との比較も容易です。また、翻訳の抜けも容易に確認できます。 --> <message lang="ja" speaker="主人公">テキストウィンドウに文字を表示するには、message要素を使います。</message> <message lang="en" speaker="Hero">if you want to put letters to textwindow, use message Element.</message> </messages> <!--sentence要素が閉じられた時、デフォルトの設定では、クリック待ちと、それに伴う各種入力(セーブやコンフィグ)と、その後でテキストウィンドウの消去が行われます。また、このセンテンスの既読フラグも立てられます。--> </sentence> <sentence> <execute condition="◯◯をした" term="yes"> <!-- execute要素はif文に相当します。フラグなどを見て、該当する場合にその内部の要素を実行します。--> <messages> <message lang="ja" speaker="">途中でクリックをさせたい時は、<click />要素をはさみます。</message> </messages> </condition> <flag condition="××をした" value="yes" /> <!-- flag要素でフラグを立てることができます。あるいは、値を設定することができます。--> <no_click /> <!-- no_click要素を置くと、そのセンテンスの終了時のクリック待ちは行われません。--> <no_clear /> <!-- no_clear要素を置くと、そのセンテンスの終了時のテキストウィンドウの消去が行われません。--> </sentence> </scenalio>
んでまあ、こんなんシナリオライターに書けとか言ったらネック・ハンギング・ツリーでもかまされそうなので、これは飽くまでもエンジン間移動を楽にするための中間形式と位置づけたい。
んでまあ、翻訳するならこれで翻訳せよと翻訳者に渡すのもこのファイルか。