Last-modified: 2014-07-31 (木) 13:09:26
 
 
編集中

日本語wikiは新しい情報を収集、編集してくれる方を常に募集しています。
手伝って下さる編集者(とその卵)の方々のために、ここにその収集、編集の方法をおおまかに載せていきます。

データ解析のすすめ

敵モンスターのHP、攻撃や、装備のステータス、説明などのデータを収集する方法。
特定のツールのインストールが必要です。

1:ツールのインストール

HxDというツールをインストールします。(クリックで外部サイトに移動)
HxDは一般的に言うプロセスエディタ(メモリエディタ)で、プロセス内のメモリを読み取り、数値、テキスト化してくれるツールです。チートに使われる事もあるけどオンラインでやっちゃダメ、ゼッタイ
hensyu1.png
画像の行にある、"Download per FTP"または"Download per HTTP"をクリックし、インストーラが入っているzipをダウンロードしたら、中に入っているインストーラのexeファイルを実行します。
指示に従い進んでいけばインストールは自ずと完了します。途中で何らかのツールバーのインストールの案内が出た場合は必要ないので外しておきます。

これでインストールは完了です。HxDを起動し、2に進みます。

 

2:ツールでデータを覗く

なんでもいいのでブラウザでRotMGを開きます。開いたらタイトル画面のままでOK。
RotMGを動かしているプロセスをHxDで開きます。
hensyu2.pnghensyu3.png
HxDのウィンドウの左上にある"RAMを開く"(画像参照)をクリックし、RotMGを動かしているプロセス(ここでは仮にInternet Explorer)を選択し、OKをクリックします。

 

hensyu4.jpg
画像のような感じになったはずです。

 

このままでは読みにくいのでテキストだけを表示するようにします。以下の行動を行って下さい
1,表示→ウィンドウの幅に対応
2,表示→可視の列→テキスト
hensyu5.jpg
これでテキストが見やすくなりました。いよいよデータを検索します。

 

hensyu6.jpg
ツールバーの検索→検索 と行き、検索ボックスに上記画像のように<Objects>と入力し、OKをクリックします。
ここで何も検索に引っかからなかった場合、選択したプロセスが間違っているかもしれません。

hensyu7.jpg
検索に成功すると以上の画像のような感じになります。画像ではLord of the Lost Landsのデータが参照されています。
プロセスでRotMGを開いてHxDで検索を行う度に、検索結果の順番はランダムになります。
Altを押しながらSキー→Iキーの順番に押すと次の検索結果に移れます。
検索ボックスにモンスターや装備などの名前を入れるとそのデータを見る事も可能です。(タイプミス、スペースの入れ忘れに注意)

データの見方

以上の方法で解析したデータには様々な情報が組み込まれています。(モンスターならHP、EXP、攻撃のデータ、モンスター自体の大きさなど)
ここにそのデータの正確な見方を記しておきます。一部不明なデータもありますがご了承下さい

モンスター

<Object type="0x***" id="○○○">

データの始まり。データの番号(16進数)とデータ上の敵の名前。どの敵にも必ず存在。
 ***には数字、○○○には内部名が入る。

 

<Group>○○○</Group>

敵群の名前。設定されていない敵もいる。

 

<Enemy/>

これが含まれているデータは敵のデータ。

 

<Class>Character</Class>

キャラクターのデータには必ずこれが含まれている。敵の場合は<Enemy/>とセット。

 

<DisplayId>△△△</DisplayId>

ゲーム上で表示される敵の名前。表示される名前はデータ上の名前よりもこちらが優先される。一部の敵のみに設定されている。
これが設定されていない敵は内部名がそのまま表示される。
△△△には名前が入る。

 

<Quest/>

これが含まれている場合、クエストに表示される。

 
<Level>*</Level>

クエストの適正レベル。<Quest/>と必ずセット。*には数値が入る。

 

<Hero/>

これが付いている敵はクエストボス、イベントボス類に含まれる。
Realm内のこれが付いている敵を全て倒すとOryx's Castleに行ける。

 

<Encounter/>

イベントボス類に付いている。
クエストボス類を倒すと低確率でこれが付いた敵が出現する

 

<God/>

これが含まれている敵を倒すとGodを倒した数に加算される。Fameボーナスに影響する。

 

<Cube/>

これが含まれている敵を倒すとCubeを倒した数に加算される。Fameボーナスに影響する。

 

<StasisImmune/>

Wiki表記:Stasis無効
これが付いている敵はStasisが効かない。

 

<AnimatedTexture><File>○○○</File><Index>0x**</Index></AnimatedTexture>

どのスプライトセット(swfに組み込まれている画像データ)から何番目のスプライトを参照しているか。
○○○にはスプライトセットの名前、**には番号が入る。

 

<HitSound>○○○/△△△</HitSound>

敵の被弾音。○○○/△△△には種類が入る。種類の例:monster/orcs_hit
間違ったデータが指定されている場合被弾音が鳴らない。

 
<DeathSound>○○○/△△△</DeathSound>

敵の死亡音。○○○/△△△には種類が入る。種類の例:monster/orcs_death
こちらも間違ったデータが指定されている場合被弾音が鳴らない。

 

<Size>***</Size>

敵のサイズ。***には数値が入る。数値が100の場合はサイズは1ドットあたり5平方ピクセル。例:<Size>80</Size>の場合は1ドット辺り4平方ピクセル。当たり判定にも用いられるかは不明
設定されていない敵の数値は100。(Medusaなど)

 

<ShadowSize>**</ShadowSize>

敵の影のサイズ。**には数値が入る。数値が大きいほど広くなる。設定されていない敵は数値が100。(設定で"Draw Shadows"をオフにしていると見れない)

 

<NoMiniMap/>

これが設定されている敵はミニマップに映らない。

 

<MaxHitPoints>***</MaxHitPoints>

敵のHP。***には数値が入る。

 

<Defense>**</Defense>

敵のDEF。**には数値が入る。設定されていない敵は数値が0。

 

<XpMult>***</XpMult>

敵からの経験値の計算に使われる値。***には数値が入る。設定されていない敵は数値が1。敵のHPにこの数値を掛け、1/10にすると経験値が出る。
例:<MaxHitPoints>1500</MaxHitPoints>で<XpMult>0.5</XpMult>の敵は(1500*0.5)/10=75で、経験値は75。
HPが1950を超える敵は、HPを1950に直して計算すると、Lv20で貰える経験値が出せる。

 

<Z>***</Z>

地表からどれだけ浮いているか。ダメージ表示の位置調整に使われる。一部の敵のみに設定されている。
 ***には数値が入る。数値がマイナスに設定されている敵もいる。

 

<Flying/>

これが設定されている敵は水辺や溶岩に浸かっても沈まない。

 

<DontFaceAttacks/>

詳細不明。一部の敵にのみ設定されている。

 

<LeachHeals/>

与えたダメージの分HPを回復する。Lord Ruthvenのみ所持。

 

<Projectile id="*">

弾のデータの始まり。*には番号が入る。

 
<ObjectId>○○○</ObjectId>

弾のデータの見た目。○○○には攻撃の種類が入る。例:Red Fire、White Bulletなど

 
<Speed>**</Speed>

Wiki表記:弾速:**
弾の速さ。弾速。**には数値が入る。日本語wikiではこの数値を1/10にして表記する(ダメージ値との混同を防ぐため)。例:<Speed>100</Speed>なら弾速は10
ちなみにこの値を1/10に直すと秒間に通過するマス数になる。

 
<Damage>**</Damage>

Wiki表記:**ダメージ
弾のダメージ。**には数値が入る。

 
<Size>**</Size>

弾のサイズ。**には数値が入る。数値が100の場合は弾は1ドットあたり5平方ピクセル。例:<Size>60</Size>の場合は1ドット辺り3平方ピクセル。当たり判定にも用いられるかは不明。日本語Wikiの敵のページの弾の画像のほとんどはこの数値に準拠して大きさを変えている。

 
<LifetimeMS>****</LifetimeMS>

弾の寿命。****には数値が入る。数値が1000の場合は1秒。これに弾速を掛けると射程が出る。例:<Speed>80</Speed>で<LifetimeMS>1200</LifetimeMS>だった場合、80*1200=96000、96000/10000=9.6で、射程は9.6。

 
<ConditionEffect duration="*">○○○</ConditionEffect>

Wiki表記:○○の追加効果(*秒間)
弾が状態異常を付加する場合これが入る。*には秒数、○○○には状態異常の種類が入る。例:Slowed、Weak、Blind、Quietなど

 
<MultiHit/>

Wiki表記:プレイヤー貫通
弾がプレイヤーを貫通する場合これが入る。

 
<PassesCover/>

Wiki表記:オブジェクト貫通
弾がオブジェクトを貫通する場合これが入る。プレイヤーも貫通するわけではない。

 
<Boomerang/>

Wiki表記:弾は反り返る
弾が途中で反り返る場合これが入る。弾の寿命が半分を切ったところで反り返る。つまりこれがある弾の射程は計算値の半分になる。

 
<Amplitude>***</Amplitude>

Wiki表記:横に揺れる
弾の振れ幅。***には数値が入る。数値が大きいほど弾が振れる範囲が広い。必ず<Frequency>***</Frequency>とセット。
例として、StaffのAmplitudeの数値は0.5

 
<Frequency>***</Frequency>

Wiki表記:横に揺れる
弾が揺れる頻度。数値が大きいほど揺れる頻度が多い。必ず<Amplitude>***</Amplitude>とセット。
例として、StaffのFrequencyの数値は2.
Amplitudeが極端に低いとFrequencyが高くとも揺れてないように見えるが、当たり判定は広がっている。
逆にFrequencyが極端に低く、Amplitudeが高いと、撃つ弾はAmplitudeの数値の大きさの分だけ目標からずれる。

 
<Wavy/>

Wiki表記:横に揺れる
これが付いていると弾が横に揺れる。上記2種とは違い、弾の寿命が近付く程に振れ幅が大きくなっていく。
日本語Wikiでは混同しているが、あまり気にしなくてもいいかも?

 
<ParticleTrail/>

これが付いていると飛んでいる弾の後ろにエフェクトがかかる。例:Sprite GodのGrey Boomerang
特に意味はない。

 
</Projectile>

弾のデータの終わり。


</Object>

データの終わり。

 

上記の方法でのデータ解析で分かる範囲で、Wiki編集に用いられるであろう部分のみを総括すると以下の通りになる。

 

"敵の内部名(データ上の名前)"
"敵の名前(実際に表示される名前)" ※一部の敵のみ。
"敵のグループ(いわゆる種族)"
"クエスト" ※一部の敵のみ。
"クエストのレベル" ※クエストの敵のみ。
"使われている画像データ"
"被弾音と撃破音"
"敵のサイズ"
"HP"
"DEF"
"EXP" ※そのまま記されているわけではない。
"出現する地帯" ※ダンジョン内の敵とイベントボスを除く
"出現確率" ※ダンジョン内の敵とイベントボスを除く
"出現数" ※ダンジョン内の敵とイベントボスを除く
"攻撃の見た目(弾の見た目)" ※Grenade Tossを除く
"攻撃のダメージ(弾のダメージ)"
"攻撃の速さ(弾の速さ。弾速)"
"攻撃のライフタイム(弾の出現時間。寿命)" ※射程は弾速とライフタイムを掛ければ出る。

  • つまり、弾の数、敵の行動パターン、ドロップ、Grenade Toss攻撃の有無と強さ、クローク無視の攻撃は解析で知ることは出来ない。
    実際にゲーム内から知るしかない。
    クローク無視の攻撃は発射間隔と発射角度が常に固定なのでクロークを使わなくても分かるが。

装備

<Object type="0x***" id="○○○">

データの始まり。データの番号(16進数)と装備の名前。どの装備にも必ず存在。
 ***には数字、○○○には内部名が入る

 

<Class>Equipment</Class>

装備のデータには必ずこれが含まれている。

 

<Item/>

装備を含むアイテムのデータには必ずこれが含まれている。

 

<Texture><File>○○○</File><Index>0x**</Index></Texture>

どのスプライトセット(swfに組み込まれている画像データ)から何番目のスプライトを参照しているか。
○○○にはスプライトセットの名前、**には番号が入る。

 

<SlotType>**</SlotType>

装備欄の内どのスロットに置けるか。**には数値が入る。
対応表は後述

 

<Description>{△△△_△△△_△△△△_△△}</Description>

アイテムの説明。
△△△△△△△△△△△△△には説明文が入る。_は実際にはスペースとなる。説明が長い場合は最後まで表記されていないので注意。

 

<RateOfFire>*</RateOfFire>

装備の連射速度。*には数値が入る。
1で普通の速度、0.5で本来の半分の速度となる。

 

<Sound>○○○/△△△</Sound>

使用(発射)したときにどんな音が鳴るか。○○○/△△△には種類が入る。種類の例:weapon/fire_wand
同じ種類の装備ならどれも発射音は同じだが、これにより同じ種類、音でも発射音の名前は違っている場合がある事が分かる。

 

<Projectile>

弾のデータの始まり。

 
<ObjectId>○○○</ObjectId>

弾のデータの見た目。○○○には攻撃の種類が入る。例:Red Fire、White Bulletなど

 
<Speed>**</Speed>

Wiki表記:弾速:**
弾の速さ。弾速。**には数値が入る。日本語wikiではこの数値を1/10にして表記する。
ちなみにこの値を1/10に直すと秒間に通過するマス数になる。**には数値が入る

 
<MinDamage>**</MinDamage>
<MaxDamage>**</MaxDamage>

弾の最大ダメージと最少ダメージ。

 
<LifetimeMS>**</LifetimeMS>

弾の寿命。****には数値が入る。数値が1000の場合は1秒。これに弾速を掛けると射程が出る。例はモンスターのデータの読み方で書いた通り。

 
 
 
 
 
 
 

 

 

 

 

 

 

 

 

オブジェクト

地形

データのテキスト化

画像収集のすすめ

画像の入手する方法は主に次の3つです。

  • RotMGのswfファイルをダウンロードして、スプライトデータをツールで抽出する
  • ゲーム画面から直接、ツールでキャプチャする。

一番上のswfファイルから抽出する方法の方が収集性は高いですが、加工が少し手間になります。
二番目のゲーム画面からキャプチャする方法は、精度のいいキャプチャソフトを使用し、なおかつ画面に画像を作成したいオブジェクト(敵など)をタイミングよくキャプチャしなくてはなりません。しかし、輪郭、サイズ、画像の明度は本物そのままなので、精度は高いです。
三番目のPixel Editorの方法は最も簡単ですが、微妙に間違ったドットをキャプチャしないように注意しましょう。尚、RotMGではPixel Editorから画像データを直接参照している敵も存在します。(IDから参照されている。大半が出現しないモンスター)
この場合、上記のHxDを用いた解析によって参照されている画像データを検索できます。ただし、Pixel Editorが以前とは違い、ドットにマウスカーソルを当てても名前、タグ、IDが表示されなくなったため(恐らくバグ)、この方法は現在では困難かもしれません。
詳しい収集の仕方はいずれも下記を参照してください

RotMGのswfファイルから抽出する

ツールで抽出

まずはRotMGからswfファイルをダウンロードします。swfファイルのURLはアップデートのたびに変わります。

http://www.realmofthemadgod.com/AssembleeGameClient**********.swf

上記のURLの10文字の番号(**********)に、ここで確認できる数字を当て嵌めてアクセスします。
アクセスするとswfファイルに直接飛びます。ここでswfファイルを保存します。ブラウザがFirefoxの場合はツール→ページの情報→メディア→上記で出たURLを選択し、名前を付けて保存で保存できます。
(※注意:AGCLoader**********のswfファイルでは本来の画像は抽出できません。必ずAssembleeGameClient**********.swfにして下さい。)

保存場所は覚えられる場所であればどこでもいいです。
これでswfのダウンロードは完了です。次に進みます


Hugflashというツールをダウンロードします。(インストール不要。無料)
ダウンロードしたらそのzipファイルを解凍し、中にあるhugflash.exeを起動します。
hugflash0.png起動したら←の画像のようになります。
必ずPICTUREの部分にチェックを入れておきます。
チェックを入れたら右下のアイコン(書類とルーペのアイコン)をクリックします。
swfファイルの選択画面が出るので、ダウンロードしたswfファイルを選択します。
解析は自動で行われます。1分もしないうちに終わるでしょう。解析が終了すると「解析完了!」のダイアログが出ます。
抽出されたファイル類は一つのフォルダにまとめられ、swfファイルの名前でhugflash.exeのあるフォルダに置かれます。(デフォルト設定)

フォルダの中を見ると画像データ群があるはずです。
kaiseki1.png 画像の例

これで抽出は完了しました。画像加工のステップに進みましょう。

オンラインで抽出

オンラインでの抽出はツールがいらず、PCの容量を取ることもなくスプライトデータを得られて便利ですが、以下のデメリットがある事を留意して置いてください。

  • ツールで抽出できたスプライトセットが、一部オンラインでは抽出できない事がある。
  • swfファイルのURL自体が失効すると、スプライトセットの一覧も見れなくなる。

大きな点は、ツールでの抽出より手軽にできるという点です。
「アップデートが来たからスプライトセットの変わった部分を少し見ておきたい」という時に便利です。
もちろん抽出した画像ファイルを個別にローカルに保存することもできます。

まずはRotMGのswfファイルのURLを特定します。URLはアップデートのたびに変わります。

http://www.realmofthemadgod.com/AssembleeGameClient**********.swf

上記のURLの10文字の番号(**********)に、ここで確認できる数字を当て嵌めます。当てはめたらそのURLをコピーし、以下のサイトにアクセスします。

Flash Probe
Flash Probeはオンラインでswfの画像データ抽出を行うサイトです。もちろん無料。
アクセスしたらページ下部の"Send Flash Probe to fetch flash file from your site"の文字の下のURL欄に、上記でコピーしたURLをペーストし、"I agree to the Conditions of Use."にチェックを入れて[Send Probe]をクリックします。
解析が終了するとスプライトセットの一覧が表示されます。このままでは小さくて見にくいので、ブラウザの設定から画面を拡大すると見やすくなります。
作成したい画像のあるスプライトセットを右クリックし、ダウンロードします。
これでスプライトセットの入手はできました。画像加工のステップに進みましょう。

ゲーム画面から直接キャプチャする

文字通りゲーム画面から直接敵の画像を映し撮ります。
敵の画像をそのまま持ってこれるのが強みですが、キャラクターの死のリスクを孕み、敵の立ち姿ではなくアニメーションの部分をキャプチャしてしまう可能性もあります。
もっとも簡単で素早い方法はやはりCtrl+Prt Scを利用する方法でしょう。
詳しいやり方は以下の通りです

1,画像編集ソフトを立ち上げておく。(ペイント、Pictbearなど)
↓
2,ゲームをプレイし、画像を入手したい敵がいたらCtrlとPrt Scを同時押しする
↓
3,画像編集ソフトを開きCtrlとVを同時押し(ペースト)。これで2でキャプチャしたスクリーン画像が挿入され、編集可能になります。

Pixel Editorからキャプチャする

Pixel Editorからその敵のものと思われる画像をキャプチャします。
最初から輪郭が付いて加工の手間が省け、ゲーム本編さながらにキャラに影が重なっていて、サイズもある程度調整できるのが強みですが、間違ったスプライトをキャプチャしてしまうリスクがあります。
また、キャプチャのタイミングも合わせる必要があります。
また、Pixel Ediorを介して実装されていない敵の画像はこの方法でキャプチャすることはできません。
詳しいやり方はゲーム本編からキャプチャする方法とあまり変わりません。

1,画像編集ソフトを立ち上げておく。(ペイント、Pictbearなど)
↓
2,Pixel Editorを開き、画像を入手したい敵のスプライトがあったらCtrlとPrt Scを同時押しする
↓
3,画像編集ソフトを開きCtrlとVを同時押し(ペースト)。これで2でキャプチャしたスクリーン画像が挿入され、編集可能になります。

画像加工のすすめ

ここでの画像加工は主に輪郭(キャラの周りの黒線)の付け方、グロー(キャラの周りの影)の付け方を載せていきます。

0.ツールのインストール

上記の加工は他のツールでも可能ですが、ここではPictbearというツールを使用します。

Pictbearのダウンロード先(公式サイト)
完全無料のツールです。有料ソフトにある細かい機能はありませんがこれだけでも色々できます。(ステマ)
インストーラを起動して指示に従い、インストールしていきます。

1.画像に輪郭を付ける

2.画像にグローを付ける

コメント

何か質問などがある際に