adoの日記

全員に公開(未登録会員含む)

2017年
09月08日
23:47

モンスターのXMLの記述方法:基本編

公式でXMLの記述方法が公開されました。
勉強のついでに、ここにチュートリアルのページの大まかな翻訳をメモしておきます。

時間があればほかのページも翻訳する予定。

※9/11 テクスチャの設定方法について加筆
※9/27 objectタグのtype、id属性について加筆

--------

Step - 0 新しいXMLファイルを作ろう

名前を付けて保存でファイル名を”Tutorial_First_Monster_XML.xml”にして保存しよう。

Step - 1 モンスターを作ろう

<Object type="0x000" id="Test Monster">
<DisplayId>Oryx the Mad God</DisplayId>
</Object>


type="0x000"
モンスターのタイプ。固有のナンバー。

id="Test Monster"
モンスターのIDであり、システム上で呼ばれるモンスターネーム。固有のID。
この場合、システム上ではTest Monsterという名前で扱われる。

<DisplayId>Oryx the Mad God</DisplayId>
プレイヤーから見える敵の名前。
死亡ログやクエストポートライトに名前としてOryx of the Mad Godが使われる。

idはシステムで扱いやすくなるよう覚えやすい名前を設定するといいだろう。
また、typeとidは他のモンスターやオブジェクトと被らないように気をつけよう。

Step - 2 特性を追加しよう

<Object type="0x000" id="Test Monster">
<DisplayId>Oryx the Mad God</DisplayId>

<Enemy/>
<Class>Character</Class>
<Texture><File>lofiChar8x8</File><Index>0xcd</Index></Texture>
<HitSound>monster/chicken_hit</HitSound>
<DeathSound>monster/chicken_death</DeathSound>

</Object>


<Enemy/>
これが記述されることでモンスターとして振舞うようになり
このモンスターをプレイヤーが攻撃できるようにする。

<Texture><File>lofiChar8x8</File><Index>0xcd</Index></Texture>
lofiChar8x8という名前の画像データをスプライトとして扱う。
Indexには16進(0x**)の値を記述すること。
0x68と記述した場合はスプライトシートの上から6行目、左から8列目の8x8のテクスチャが使用される。

<HitSound>monster/chicken_hit</HitSound>
殴られた時に出す音。
この場合はチキンを殴った時の音を出す。

<DeathSound>monster/chicken_death</DeathSound>
死んだ時に出す音。
この場合はチキンが死んだ時の音を出す。

Step - 3 敵のステータスを追加しよう

<Object type="0x000" id="Test Monster">
<DisplayId>Oryx the Mad God</DisplayId>
<Enemy/>
<Class>Character</Class>
<Texture><File>lofiChar8x8</File><Index>0xcd</Index></Texture>
<HitSound>monster/chicken_hit</HitSound>
<DeathSound>monster/chicken_death</DeathSound>

<Size>100</Size>
<MaxHitPoints>100</MaxHitPoints>
<Defense>0</Defense>
<XpMult>0.0</XpMult>

</Object>


<Size>100</Size>
敵の大きさ。
100でプレイヤーと同じ大きさ。80でアイテムと同じ大きさ。
60でcommon/uncommonペットと同じ大きさ。

<MaxHitPoints>100</MaxHitPoints>
敵のHP。

<Defense>0</Defense>
敵のDefense。

<XpMult>0.0</XpMult>
落とす経験値量。
1.0=100xp。

Step - 4 弾を追加しよう

<Object type="0x000" id="Test Monster">
<DisplayId>Oryx the Mad God</DisplayId>
<Enemy/>
<Class>Character</Class>
<Texture><File>lofiChar8x8</File><Index>0xcd</Index></Texture>
<HitSound>monster/chicken_hit</HitSound>
<DeathSound>monster/chicken_death</DeathSound>
<Size>100</Size>
<MaxHitPoints>100</MaxHitPoints>
<Defense>0</Defense>
<XpMult>0.0</XpMult>

<Projectile id="1">
<ObjectId>Yellow Star</ObjectId>
<Speed>80</Speed>
<Damage>50</Damage>
<LifetimeMS>2000</LifetimeMS>

</Projectile>
</Object>


<Projectile id="1">
弾のID。
今後敵の行動を設定する時に設定したidを記述することで
敵がその弾を撃つようになる。

<Speed>80</Speed>
弾の速度。
単位はタイル/10秒。

<Damage>50</Damage>
弾の威力。

<LifetimeMS>2000</LifetimeMS>
弾が残り続ける時間。
単位はミリ秒。

Step - 5 敵の行動を追加しよう

<Object type="0x000" id="Test Monster">
<DisplayId>Oryx the Mad God</DisplayId>
<Enemy/>
<Class>Character</Class>
<Texture><File>lofiChar8x8</File><Index>0xcd</Index></Texture>
<HitSound>monster/chicken_hit</HitSound>
<DeathSound>monster/chicken_death</DeathSound>
<Size>100</Size>
<MaxHitPoints>100</MaxHitPoints>
<Defense>0</Defense>
<XpMult>0.0</XpMult>
<Projectile id="1">
<ObjectId>Yellow Star</ObjectId>
<Speed>80</Speed>
<Damage>50</Damage>
<LifetimeMS>2000</LifetimeMS>
</Projectile>

<Behavior projectileId="1" range="7">Shoot</Behavior>
<Behavior bucket="movement" range="6" speed="0.6">Follow</Behavior>
<Behavior bucket="movement" speed="0.4">Wander</Behavior>

</Object>


<Behavior projectileId="1" range="7">Shoot</Behavior>
range="7" :7マス以内に入ってきたプレイヤーに
projectileId="1" :Id=1の弾を
Shoot :撃つ。

<Behavior bucket="movement" range="6" speed="0.6">Follow</Behavior>
range="6" :プレイヤーが6マス以内に入ってきた場合に
speed="0.6" :0.6の速さで(どのぐらいの早さかどうかは不明)
Follow :追いかけてくる。

<Behavior bucket="movement" speed="0.4">Wander</Behavior>Wander :うろうろする。

bucket=""
行動のグループ分け。
グループ分けされた行動はグループされた行動の中で一番上の行にあるものだけが優先されて実行される。
条件が合わず実行に失敗した場合は以降の行のうち一番上にあるものだけが実行される。
つまり上の行動のアルゴリズムを示すと以下の通りとなる。



参考リンク
Tutorial - Your first Monster step-by-step!
https://sites.google.com/decagames.com/xml-documentation/...
  • XML

いいね!

Realm of the Mad Godコミュニティサイト」は、「SNS作成サービス!そーしゃるぱーく(無料)」で作成された、PC(パソコン)・FP(フィーチャーフォン※ガラケー)・SP(スマートフォン)・TB(タブレット)対応のSNS(ソーシャル・ネットワーキング・サービス)です。
広告等のお問い合わせは「各種お問い合わせ」までお願い致します。
  • このエントリーをはてなブックマークに追加