目次へ戻る |
前へ戻る |
GSML (Gassan Scenario Markup
Language)
version 1.1
Last modified: 18 April, 2001
|
このGSMLは、『月山実行環境 バージョン3.1.0』の為のシナリオ製作に開発されたものです。
このドキュメントの目次は、GSMLのノード仕様を一望する事が出来ます。 目次の項目はエレメント名であり、左によっているほど子ノードとなります。例えば、エレメント「chara」は、エレメント「cut」の開始タグと終了タグの中でのみ利用可能である事がわかります。そして、エレメント「chara」の親ノードであるエレメント「cut」は、エレメント「scene」の開始タグと終了タグの中でのみ利用可能だと知る事が出来ます。 |
<!ELEMENT
gsml (data|scene|if|loop|end)+> <!ATTLIST gsml version CDATA #REQUIRED > |
|
|
エレメント「gsml」は、「XML宣言(XML declaration)」と「文章型宣言(Document Type Declaration)」の次に記述されるエレメントであり、他のGSMLエレメントは全てこのエレメントの開始タグと終了タグの間に記述されます。
エレメント「gsml」は、エレメント「data」「scene」「if」「loop」「end」のいずれか一つ以上持たなければなりません。
また、「XML宣言」と「文章型宣言」は必ず必要なものです。
|
<?XML
version="1.0" encoding="Shift_JIS"?> <!DOCTYPE scenario SYSTEM "geml.dtd"> <gsml version="1.1">
</gsml> |
<!ELEMENT
data EMPTY> <!ATTLIST data operation CDATA #REQUIRED> |
|
|
このエレメントは無くてもかまいません。
このエレメントは複数個あってもかまいません。
無条件でのフラグ処理を行います。月山はGSMLを読み込むと、はじめにエレメント「data」を処理します。
アトリビュート「operation」にフラグ処理の式を与えます。
この式は、
フラグ名 := 値
の形式を用います。(「:=」は、「右辺の値を左辺のフラグにセットする」という意味を持ちます。)
フラグにセットできる値は、「true」と「false」の二つの値のみです。
<--
このサンプルは、フラグ「CONTENT_#0」に「false」をセットする処理です。--> |
<!ELEMENT
scene (cut+)> <!ATTLIST scene name CDATA #REQUIRED> |
|
|
このエレメントは無くてもかまいません。
このエレメントは複数個あってもかまいません。
このエレメント「scene」は、シナリオをシーンごとに分ける為のものです。一つのシナリオファイル(GSMLファイル)に複数のシーンが存在する事が出来ます。
SGMLファイル中で、プレーヤーが体感し操作する部分のプログラムは、全てこのエレメント「scene」の開始タグと終了タグの間に記述されます。
一つのファイルの中で、エレメント「scene」は複数個あってもかまいません。
それぞれのエレメント「scene」は、必ず一つ以上のエレメント「cut」を持たなければなりません。
アトリビュート
- name
現在プレイ中のシーン名をウインドウのタイトルバーに表示する為のものです。
<!ELEMENT cut (imagelist|text|audio|plugin|selection|timer)+> |
|
このエレメント「cut」は、シーンの内容をカットごとに分ける為のものです。一つのシーンに対して複数のカットが存在する事が出来ます。
画像や文章の表示のプログラムは、この中で記述されるエレメント「imagelist」「text」で行なわれます。
エレメント「cut」は、エレメント「imagelist」「text」「audio」「plugin」「selection」「timer」のいずれか一つ以上持たなければなりません。
<!ELEMENT imagelist (effect?,(image|filter|composer)+)> |
|
このエレメント「imagelist」は、一つ以上のイメージを表示する際の一単位を作成します。イメージリストのタグ内に複数のイメージが与えられた場合、それらを合成し、一つのイメージとして扱い、もしエレメント「effect」があれば、そのイメージをエレメント「effect」に渡します。その結果が表示されます。
エレメント「imagelist」は、エレメント「image」「filter」「composer」のいずれか一つ以上持たなければなりません。
<imagelist> |
<!ELEMENT
effect (param*)> <!ATTLIST effect name CDATA #REQUIRED> |
|
|
このエレメント「effect」は、エレメント「imagelist」で作成されたイメージを表示する際に作用する特殊効果を指定します。すでに表示されているイメージと、新に表示するイメージを加工することでエフェクトが実現されます。
パラメータが必要な場合はエレメント「param」でプラグインにパラメータを渡します。
アトリビュート
- name
使用するエフェクト名を指定します。(正確にはクラスパスの通ったディレクトリに存在するExchangeEffectクラス名を指定します。)
標準で用意されたエフェクト
- OverLay
新たに表示するイメージを透明度 100% で以前のイメージに重ねて、徐々に 0% へ透明度を下げていくことでイメージを交換します。
- Ellipse
画面中心から、長円形ワイプで広がるように交換します。
- Perapera_L
左下から右上に向かって、斜めにめくるようにイメージを交換します。
- Perapera_R
右下から左上に向かって、斜めにめくるようにイメージを交換します。
- Patapata_Height
上下から中心に向かってイメージを交換します。
- Patapata_Height_R (テスト中)
中心から上下に向かってイメージを交換します。
- Patapata_Width
横にしたブラインドを閉じるようにしてイメージを交換します。
- Kuropata_Height
上下から中心に向かって画面を黒で塗りつぶした後、新しいイメージを表示します。
- Kuropata_Width
横にしたブラインドを閉じるようにして暗転した後、新しいイメージを表示します。
See Also: | エレメント「param」 |
<!ELEMENT
image EMPTY> <!ATTLIST image file CDATA #REQUIRED> <!ATTLIST image position (right|center|left) #IMPLIED> <!ATTLIST image x CDATA #IMPLIED> <!ATTLIST image y CDATA #IMPLIED> <!ATTLIST image loader CDATA #IMPLIED> |
|
|
このエレメント「image」は、エレメント「imagelist」内で画像合成の要素の一つとして扱われるイメージ・レイヤーを作成します。それぞれのイメージ・レイヤーは、エレメント「imagelist」のタグにはさまれた順に合成されます。先頭にあるイメージ・レイヤーをベース画像とし、続くイメージ・レイヤーを重ねていきます。
エレメント「filter」を利用することで、それぞれのイメージ要素にフィルター(画像処理)を施すことが可能です。また、エレメント「composer」を利用することで、複数のイメージを合成したものを一つの要素として扱うことも可能です。
アトリビュート
- file
イメージ・レイヤーにする(表示する)画像ファイルを指定します。
利用可能な画像ファイル
- JPEG
- PNG
- GIFおよび透過GIF
- BMP(要loader)
- position
画像ファイルの表示位置をコマンドで与えます。
アトリビュート「position」に与えられるコマンド right 右側に表示 center 中央に表示 left 左側に表示
画像ファイルの表示位置を座標で指定します。表示可能領域の左上を 0 とし、X 座標を指定します。
アトリビュート「position」が指定されている場合、positionが優先されます。
- y
画像ファイルの表示位置を座標で指定します。表示可能領域の左上を 0 とし、Y 座標を指定します。
アトリビュート「position」が指定されている場合、positionが優先されます。
標準ではサポートされていない画像を利用する場合などに、画像ローダー名を指定します。(正確にはクラスパスの通ったディレクトリに存在するImageLoaderクラス名を指定します。)
標準で用意された画像ローダー
- BMPImageLoader
Windows仕様のBMPフォーマット画像ファイルをロードします。(OS/2仕様のBMPには対応していません。)
<image file="images/tomone.bmp" loader="BMPImageLoader"/> |
<!ELEMENT
filter ((param*),image)> <!ATTLIST filter name CDATA #REQUIRED> <!ATTLIST filter position (right|center|left) #IMPLIED> <!ATTLIST filter x CDATA #IMPLIED> <!ATTLIST filter y CDATA #IMPLIED> |
|
|
このエレメント「filter」は、エレメント「imagelist」内で画像合成の要素の一つとして扱われるイメージにフィルター(画像処理)を施します。
パラメータが必要な場合はエレメント「param」でプラグインにパラメータを渡します。
エレメント「filter」は、エレメント「image」を必ず一つだけ持ちます。
アトリビュート
- name
フィルター名を指定します。(正確にはクラスパスの通ったディレクトリに存在するFilterクラス名を指定します。)
- position
イメージの表示位置をコマンドで与えます。
アトリビュート「position」に与えられるコマンド right 右側に表示 center 中央に表示 left 左側に表示
- x
画像ファイルの表示位置を座標で指定します。表示可能領域の左上を 0 とし、X 座標を指定します。
アトリビュート「position」が指定されている場合、positionが優先されます。
- y
画像ファイルの表示位置を座標で指定します。表示可能領域の左上を 0 とし、Y 座標を指定します。
アトリビュート「position」が指定されている場合、positionが優先されます。
標準で用意されたフィルター
<filter
name="FirstPixelTransparentFilter"> |
See Also: | エレメント「param」 |
<!ELEMENT
composer ((param*),(image|filter)+)> <!ATTLIST composer name CDATA #REQUIRED> <!ATTLIST composer position (right|center|left) #IMPLIED> <!ATTLIST composer x CDATA #IMPLIED> <!ATTLIST composer y CDATA #IMPLIED> |
|
|
このエレメント「composer」は、エレメント「imagelist」内で画像合成の要素の一つとして扱われるイメージ・レイヤーを、ダイナミックに作成することを可能にします。
パラメータが必要な場合はエレメント「param」でプラグインにパラメータを渡します。
エレメント「composer」は、エレメント「image」「filter」で渡された二枚のイメージを必要とします。
アトリビュート
- name
コンポーサー名を指定します。(正確にはクラスパスの通ったディレクトリに存在するComposerクラス名を指定します。)
- position
イメージの表示位置をコマンドで与えます。
アトリビュート「position」に与えられるコマンド right 右側に表示 center 中央に表示 left 左側に表示
- x
画像ファイルの表示位置を座標で指定します。表示可能領域の左上を 0 とし、X 座標を指定します。
アトリビュート「position」が指定されている場合、positionが優先されます。
- y
画像ファイルの表示位置を座標で指定します。表示可能領域の左上を 0 とし、Y 座標を指定します。
アトリビュート「position」が指定されている場合、positionが優先されます。
標準で用意されたエフェクト
<composer
name = "MaskTransparentFilter"> |
See Also: | エレメント「param」 |
<!ELEMENT
text (#PCDATA)> <!ATTLIST text prompt (on|off) #IMPLIED> <!ATTLIST text scroll (on|off) #IMPLIED> |
|
|
エレメント「text」は、このエレメントの開始タグと終了タグの間に記述されたテキストを表示します。その後、マウスのクリック待ち状態になります。
アトリビュート
すでに表示されていたテキストを上方向にスクロールして消去した後、新規にテキスト表示を行います。
<text prompt="off" >この一段目のテキストは、</text> <text >改行後、この二段目のテキストが続けて表示されます。そしてクリック待ち・・・。</text> <text scroll="on" >クリックされると、一段目と二段目のテキストがクリアされ、この三段目が表示されます。</text> |
<!ELEMENT
audio EMPTY> <!ATTLIST audio layer (bgm|se|voice) #REQUIRED> <!ATTLIST audio command (play|loop|stop) #REQUIRED> <!ATTLIST audio file CDATA #REQUIRED> |
|
|
このエレメント「audio」は、三つのレイヤー「bgm」「se」「voice」を持ち、それぞれにサウンドデータを設定し再生する事ができます。
アトリビュート
利用可能なオーディオファイル
最高64チャンネルまでの MIDI およびデジタルオーディオの合成およびレンダリングを利用できます。 (注意) |
<!ELEMENT
plugin (param*)> <!ATTLIST plugin name CDATA #REQUIRED> |
|
|
このエレメント「plugin」は、一時的に外部のJAVAクラスに処理を移します。
アトリビュート「name」にはプラグイン名を与えます。(正確にはクラスパスの通ったディレクトリに存在するGPluginクラス名を指定します。)
パラメータが必要な場合はエレメント「param」でプラグインにパラメータを渡します。
標準で用意されたプラグイン
- MoviePlugin
Flash 2, QT, AVI, MPEG-1, HotMedia, H.261, H.263 のメディアファイルを再生します。
必要なパラメータ
file : 再生するファイル名を与えます。
width : 再生時における、表示サイズの横幅をピクセル単位で与えます。
height : 再生時における、表示サイズの縦幅をピクセル単位で与えます。
- FlashPlugin
Flashアニメーションを再生します。MoviePluginでもFlashが再生できますが、FlashPluginで再生した場合は表示画面の下部にタイムカウンターや音声コントールパネルが表示されません。
! 再生できるFlashアニメーションファイルはFlash2バージョンの.swfファイルです。
Flash 3以降で作成されたデータは、Flash 2 formatにexportして下さい。必要なパラメータ
file : 再生するファイル名を与えます。
width : 再生時における、表示サイズの横幅をピクセル単位で与えます。
height : 再生時における、表示サイズの縦幅をピクセル単位で与えます。
- DefaultOpening
月山のサンプルシナリオ用に作成された、オープニングのJAVAアニメーションの例です。
- DefaultEnding
月山のサンプルシナリオ用に作成された、エンディングのJAVAアニメーションの例です。
<plugin name="jp.gr.java_conf.wffm.gassan.view.plugin.SamplePlugin" /> |
See Also: | エレメント「param」 |
プラグインによる機能拡張 |
<!ELEMENT
param EMPTY> <!ATTLIST param name CDATA #REQUIRED> <!ATTLIST param value CDATA #REQUIRED> |
|
|
このエレメント「param」は、パラメータを必要とするプラグインにパラメータを渡します。
アトリビュート
- name
パラメータ名を与えます。
- value
パラメータにセットする値。
<plugin
name="MoviePlugin"> <plugin
name="FlashPlugin"> |
<!ELEMENT selection (alternative+)> |
|
このエレメント「selection」は、選択項目を表示するためのもで、エレメント「alternative」と共に使用します。
See Also: | エレメント「alternative」 |
<!ELEMENT
alternative (#PCDATA)> <!ATTLIST alternative operation CDATA #REQUIRED> |
|
|
エレメント「alternative」は、選択項目の一項目を構築します。タグの間に記述されたテキストは選択項目名として表示され、選択された時のみアトリビュート「operation」に与えられた式を処理します。
この式は、
フラグ名 := 値
の形式を用います。(「:=」は、「右辺の値を左辺のフラグにセットする」という意味を持ちます。)
フラグにセットできる値は、「true」と「false」の二つの値のみです。
アトリビュート
<text>There
is the door of the entrance to a kitchen room. </text> |
See Also: | エレメント「selection」 |
<!ELEMENT
timer EMPTY> <!ATTLIST timer value CDATA #REQUIRED> |
|
|
このエレメント「timer」は、アトリビュート「value」で指定されたミリ秒の間、次のタグ処理への移行を停止します。現行の処理(再生中のオーディオ等)は停止しません。
アトリビュート
- value
ミリ秒単位で数値を与えます。
<!--
1秒間停止する -->
|
<!ELEMENT
if EMPTY> <!ATTLIST if condition CDATA #REQUIRED> <!ATTLIST if gsmlFile CDATA #REQUIRED> |
|
|
このエレメントは無くてもかまいません。
このエレメントは複数個あってもかまいません。
このエレメント「if」は、条件分岐を行います。
アトリビュート「condition」にフラグ名 = 値 の形式で与えられた式を評価し、その結果が「真」である時のみ、アトリビュート「gsmlFile」で指定されたシナリオファイル(GSMLファイル)へ分岐します。
アトリビュート
<!--
もし、フラグ「KITCHEN_ROOM」が「true」なら、シナリオファイル(GSMLファイル)「kitchen-room.gsml」にジャンプする
-->
|
See Also: | エレメント「data」 |
エレメント「selection」 | |
エレメント「loop」 |
<!ELEMENT
loop EMPTY> <!ATTLIST loop condition CDATA #REQUIRED> <!ATTLIST loop gsmlFile CDATA #REQUIRED> |
|
|
このエレメントは無くてもかまいません。
このエレメントは複数個あってもかまいません。
このエレメント「loop」は、繰り返し処理を行います。
アトリビュート「condition」にフラグ名 = 値 の形式で与えられた式を評価し、その結果が「真」である間、アトリビュート「gsmlFile」で指定されたシナリオファイル(GSMLファイル)を繰り返し呼び出し(分岐)ます。
アトリビュート
- condition
フラグ名 = 値 の形式で、分岐を行なう条件式を記述します。
- gsmlFile
分岐先のシナリオファイル(GSMLファイル)を指定します。
<!--
フラグ「MENU」が「true」の間、シナリオファイル(GSMLファイル)「menu.gsml」を表示する。
-->
|
See Also: | エレメント「data」 |
エレメント「selection」 | |
エレメント「if」 |
<!ELEMENT end EMPTY> |
|
このエレメントは無くてもかまいません。
このエレメントは複数個あってもかまいません。
このエレメント「end」は、それ以降のシナリオファイル(GSMLファイル)をキャンセルし、GEMLファイルで指定されたエンディングに処理を移します。
目次へ戻る |
前へ戻る |
Copyright © 1999-2001 WFFM. All Rights Reserved.