※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

(ほとんど)XMLっぽい構文で定義します。

<?xml version="1.0" encoding="UTF-8"?>

<!--
    ルートノード
    type属性で何を定義しているかを判断します。

    "stage"に設定した場合はステージ定義になります。
    ステージのベースMCや座標定義、エフェクトの設定をします。
-->
<root type="stage">
    <!-- ヘッダー -->
    <information>
        <!--
            ステージ名を指定します。
            lang属性で言語を指定します。
            lang属性に指定できる文字列は以下の通りです。
            +――+―――――+
            |lang|定義内容  |
            +――+―――――+
            |jp  |日本語    |
            |en  |英語      |
            |id  |ステージID|
            +――+―――――+
            ステージIDはステージを指定するときに使用します。
            IDが無かったりIDが被ったりするとバグ発生。
        -->
        <title lang="jp">テストルーム</title>
        <title lang="en">Test Room</title>
        <title lang="id">test_room</title>

        <!--
            リンゲージ名で共通する部分を指定します。
            最後の"."は抜いてください。
        -->
        <package name="com.gmail.aal.gpp.stage" />

        <!--
            nameで定義先、contentで定義内容を書きます。
            name属性で指定できる物は以下の通りです。
            +―――――+――――――――-+――――――――――――――――――――――-+
            |name      |content          |内容                                         |
            +―――――+――――――――-+――――――――――――――――――――――-+
            |areaID    |エリアIDのみ     |このステージがどのエリアかを指定             |
            |radio     |ブール           |ラジヲが使えるかどうか                         |
            |radionum  |0~9             |ラジヲが幾つ使えるか(radio=true時のみ有効)     |
            |video     |ブール           |ビデヲが使えるかどうか                        |
            |rulanable |ブール           |ルーラ可能なステージかどうか                    |
            |walkSpeed |tardy/normal/fast|ルーラ可能なステージかどうか                    |
            |anonymous |ブール           |名前を強制名無しにするかどうか               |
            |topLayer  |URL(未定義で無効)|上にswfを重ねる。相対はmain.swfが基準        |
            |stageMC   |MCのリンゲージ   |ステージ背景となるMCを指定します             |
            |width     |1以上の整数      |ステージのマス数(x座標)                      |
            |height    |1以上の整数      |ステージのマス数(y座標)                      |
            |moveX     |整数             |1マス移動したときのx座標移動量               |
            |moveY     |整数             |1マス移動したときのy座標移動量               |
            |bgColor   |整数             |背景色(省略でデフォルト色になります          |
            |bgImg     |整数             |背景画像 (相対パスはmain.swf基準。)          |
            |          |                 |""でデフォルト画像。省略で非表示にできます。)|
            |se        |SEテーマID       |初期設定でのSEテーマを設定します             |
            |bgm       |BGMID            |初期設定でのBGMを設定します                  |
            +―――――+――――――――-+――――――――――――――――――――――-+
            ただし、これ以外にも独自に設定することは可能ですが非推奨。
            独自に設定したいものがある場合はvalue要素を使ってください。
        -->
        <meta name="areaID" content="test" />
        <meta name="radio" content="false" />
        <meta name="radionum" content="0" />
        <meta name="video" content="false" />
        <meta name="rulanable" content="true" />
        <meta name="walkSpeed" content="normal" />
        <meta name="stageMC" content="TestRoom" />
        <meta name="width" content="3" />
        <meta name="height" content="3" />
        <meta name="moveX" content="40" />
        <meta name="moveY" content="20" />

        <!--
            定義とは関係ないけど保持したいデータ。
            <ステージID>.value.<id属性>で取得出来ます。
            自分自身のvalueを見る場合は"<ステージID>."を省略します。
        -->
        <value id="test" data="データが入ります。" />

        <!--
            座標ID定義。
            rulaや部屋移動などでこれを使います。指定する属性は以下の通りです。
            +――-+―――――――――――――――――――+
            |属性 |内容                                  |
            +――-+―――――――――――――――――――+
            |id   |座標ID。これを使って指定出来る        |
            |x    |x座標。整数値                         |
            |y    |y座標。整数値                         |
            |dir  |向いている方向(0:右, 1:下, 2:左, 3:上)|
            +――-+―――――――――――――――――――+
            dir属性は特定の処理(rulaなど)以外は全方向対応。
            座標IDを指定する場合は<ステージID>.<座標ID>で指定。
            自分自信のpointを見る場合は"<ステージID>."を省略します。
        -->
        <point id="rula" x="0" y="0" dir="0" />
        <point id="gotoNextRoom" x="0" y="0" dir="0" />

        <!--
            テンプレートエフェクトです。
            特定のタグで使えるimport属性を利用して読み込みます。
            idには任意の名前を指定できますが、マジックIDというものが在ります。
            マジックIDを指定すると、特殊な処理になります。
            マジックIDは以下の通りです。
            +―――――+―――――――――――――――――+
            |マジックID|処理                              |
            +―――――+―――――――――――――――――+
            |default   |全てのマスでの初期値を設定します。|
            +―――――+―――――――――――――――――+
            要素にエフェクト内容を書きます。詳細は下記。
        -->
        <template id="default">
            <!--
                エフェクトタイミングの定義です。
                type属性でタイミングを指定します。
                type属性に指定できるタイミングは以下の通りです。
                +――――+―――――――――――――――――+
                |type属性|タイミング                        |
                +――――+―――――――――――――――――+
                |enter   |そのステージに入った瞬間          |
                |out     |そのステージを出た瞬間            |
                |always  |常時(24回/sec)                    |
                |stay    |その座標に到着~出発直前(24回/sec)|
                |leave   |その座標から動いた瞬間            |
                |come    |その座標に着いた瞬間              |
                |moving  |その座標を動いた直後~到着直前    |
                |talk    |自分が話した瞬間                  |
                |hear    |ほかの人が話した瞬間              |
                |shift   |ほかの人が動いた瞬間              |
                +――――+―――――――――――――――――+
                また、上記以外のtype属性を指定しても使えます。
                その場合はimportEffectを使用してください。(下記参照)

                要素にエフェクト内容を書きます。
                書き方は下記の通りです。
                +―――――――――――――――――――――――――――――――――――――――――
                    # 先頭に"#"をつけるとコメントです。
                    エフェクト名:内容

                    # 複数内容を指定する場合は" "を1つ間においてください。
                    # 2個以上同じエフェクトを置くことはできません(そのうち改善)
                    エフェクト名:内容1 内容2
                    エフェクト名:内容1 内容2 内容3
                +―――――――――――――――――――――――――――――――――――――――――

                同じエフェクトがある場合は下に書いたほうが優先されます。
                同じエフェクトで複数記述はできません。
                (ただし、一部のエフェクトは" "で区切って記述すれば出来ます。)
                エフェクトは下記のテーブルを参照。
                +―――――――+―――――――+――――――――――――――――――――――――――+
                |エフェクト名  |許可データ    |意味                                                |
                +―――――――+―――――――+――――――――――――――――――――――――――+
                |blockUP       |ブール        |上にいけないようにするかどうか                      |
                |blockDown     |ブール        |下にいけないようにするかどうか                      |
                |blockRight    |ブール        |右にいけないようにするかどうか                      |
                |blockLeft     |ブール        |左にいけないようにするかどうか                      |
                |warp          |座標ID        |座標ID先にワープする                                |
                |hitpoint      |整数          |HPに整数値を足す。(負数で引く)                      |
                |magicpoint    |整数          |MPに整数値を足す。(負数で引く)                      |
                |bottomMC      |MCのリンゲージ|キャラの後ろに表示                                  |
                |bottomMCTarget|MCのリンゲージ|動いたキャラの後ろに表示                            |
                |topMC         |MCのリンゲージ|キャラの前に表示                                    |
                |topMCTarget   |MCのリンゲージ|動いたキャラの前に表示                              |
                |pose          |stand/sit     |キャラの姿勢を設定します                            |
                |direct        |0, 1, 2, 3    |0:上, 1:右, 2:下, 3:左 に向かせる                   |
                |move          |0, 1, 2, 3    |(方向はdirectと同じ)に移動させる                    |
                |se            |SEタイミングID|SEタイミングIDに関連付けられたサウンドを流す(BGM×) |
                |seTheme       |SEテーマID    |SEをSEテーマにしたがって変更                        |
                |seBack        |指定なし      |SEをユーザが指定していた設定に戻す                  |
                |bgm           |BGMID         |BGMを変更します。                                   |
                |bgmBack       |指定なし      |BGMをユーザが指定していた設定に戻す                 |
                |effectImport  |type名        |同じtemplate内の特定のtypeのエフェクトを自身で実行  |
                |              |              |対象エフェクト内に無効化されるエフェクトがあると    |
                |              |              |そのエフェクトは実行されません                      |
                |              |              |(ex:enterでalwaysをImportするが、poseは無効化される)|
                |callFunction  |ステージClass |ステージに関連付けられたクラスの                    |
                |              |  のメソッド名|メソッドを呼び出します。(引数も複数指定可能)        |
                +―――――――+―――――――+――――――――――――――――――――――――――+
                また、それぞれのエフェクトには対応するタイミングがあります。
                下記のテーブルを参照してください(○が対応、×は無効化されるだけで保持されます)。
                +―――――――+―――+―――+―――+―――+―――+―――+―――+―――+―――+―――+
                |エフェクト名  |enter |  out |always| stay |leave | come |moving| talk | hear |shift |
                +―――――――+―――+―――+―――+―――+―――+―――+―――+―――+―――+―――+
                |blockUP       |  ×  |  ×  |  ○  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |
                |blockDown     |  ×  |  ×  |  ○  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |
                |blockRight    |  ×  |  ×  |  ○  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |
                |blockLeft     |  ×  |  ×  |  ○  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |
                |warp          |  ×  |  ×  |  ×  |  ×  |  ×  |  ○  |  ×  |  ○  |  ○  |  ○  |
                |hitpoint      |  ○  |  ○  |  ×  |  ×  |  ○  |  ○  |  ×  |  ○  |  ○  |  ○  |
                |magicpoint    |  ○  |  ○  |  ×  |  ×  |  ○  |  ○  |  ×  |  ○  |  ○  |  ○  |
                |bottomMC      |  ○  |  ×  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |
                |bottomMCTarget|  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |  ○  |  ○  |
                |topMC         |  ○  |  ×  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |
                |topMCTarget   |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |  ×  |  ○  |  ○  |
                |pose          |  ○  |  ×  |  ×  |  ○  |  ○  |  ○  |  ×  |  ○  |  ○  |  ○  |
                |direct        |  ○  |  ×  |  ○  |  ○  |  ○  |  ○  |  ×  |  ○  |  ○  |  ○  |
                |move          |  ○  |  ×  |  ×  |  ×  |  ×  |  ○  |  ×  |  ○  |  ○  |  ○  |
                |se            |  ○  |  ○  |  ×  |  ×  |  ○  |  ○  |  ×  |  ○  |  ○  |  ○  |
                |seTheme       |  ○  |  ○  |  ×  |  ×  |  ○  |  ○  |  ×  |  ○  |  ○  |  ○  |
                |seBack        |  ×  |  ○  |  ×  |  ×  |  ○  |  ○  |  ×  |  ○  |  ○  |  ○  |
                |bgm           |  ○  |  ○  |  ×  |  ×  |  ○  |  ○  |  ×  |  ○  |  ○  |  ○  |
                |bgmBack       |  ×  |  ○  |  ×  |  ×  |  ○  |  ○  |  ×  |  ○  |  ○  |  ○  |
                |effectImport  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |
                |callFunction  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |  ○  |
                +―――――――+―――+―――+―――+―――+―――+―――+―――+―――+―――+―――+
            -->

            <!--
                常時適用します。
                
            -->
            <effect type="always">
                blockUp:false
                blockDown:false
                blockRight:false
                blockLeft:false
            </effect>
        </template>

        <template id="pandora_box">
            <!--
                そのマップにとどまっているとき
            -->
            <effect type="stay">
                # TestRoomInstance.createBubble (chrInfo, "floor", "4")
                callFunction:createBubble floor 4
            </effect>
        </template>
    </information>

    <!-- マップ定義 -->
    <main>
        <!--
            x座標を指定します。
            id属性でx座標が指定します。(一番上の座標が0です。)
            import属性でのみテンプレートエフェクトを読み込むことが出来ます。
        -->
        <x id="0" />
        <x id="1">
            <!--
                指定した座標の情報を書きます。
                id属性でy座標を指定します。(一番上の座標が0です。)
                また、import属性でテンプレートエフェクトを読み込みことが出来ます。
                エフェクト設定をしない場合は省略することができます。
            -->
            <panel id="1" import="pandora_box" />
            <!--
                エフェクトを定義する場合はpanelに属性を定義します(ただし、非推奨です)。
                エフェクトの書き方はtemplateと同じです。
                この書き方はしばらくはサポートしますが、将来サポートをやめる可能性があります。
                なので、書くときはtemplate要素を利用してください。
            -->
            <panel id="2">
                sound:my_sound
            </panel>
        </x>
        <!--
        このタグも省略可能です。
        
        <x id="2" />
        -->
    </main>
</root>