最終更新日: 2004/01/22
いろんな同人サークルで人材募集をしているのを見て、アマチュアサークルさんへの逆人材募集なんてやってみます(^^;
ツクール2000はあんまり大きすぎる作品のデバッグ性は高くないです。装備品とか耐性とか、数が数百を超えると「毒と猛毒の確率が全然ばらばらだよ」みたいに整合性が取れなくて困ってしまいます。たぶんKanonRPG まにあっくすみたいに一望できるとデバッグがしやすいのではないかなぁと。
ツクール2000作品の攻略ページ作成をたくさん行っていたり、デバッグツールも充実している事もあって、上のかのGページくらいなら、取り込み中でなければ最近なら片手間がてらに1日もあればできてしまいます。Romancing Kanon (はちみつくまさん) の合計1万に届きそうなアイテム・魔法等々の確認(^^; も、こちらで確認していたりします。
以下、対応していませんという文字がたくさん出てきます。需要がないから対応していないだけで、そんなに作るのが大変というわけではないと思います。たぶん。
あまり綺麗な構造ではない... いちおう動く程度で。
クラス名 | 親クラス | 概要 |
---|---|---|
Rpg2k | RPG2k/2k3 ldb(データベース)解析 旧バージョン | |
└ DbText | イベントのテキストファイル化にまつわること、命令○○は戦闘開始とか | |
└ DbName | 共通の表記法、フラグを On, Off で書くなど | |
└ DbDict | ldb ごとに定義される辞書、フラグ1~1000の名前など | |
RpgItem | 各要素を内部保持 | |
RpgItem2 | RpgItem | その2 |
RpgItem3 | RpgItem | その3 |
Rpg2kMap | Rpg2k | lmt(各マップファイル)解析 |
Rpg2kTree | Rpg2k | lmu(マップツリー)解析 |
Rpg2kSubTree | マップツリー各要素 | |
Rpg2kMapFigure | マップの歩ける位置の画像を描く | |
└ Bmp | 24bitBMPを扱うみに汎用クラス | |
Rpg2k3Main | RPG2k/2k3 汎用読み書きツール 新バージョン | |
└ Rpg2k3Item | 要素を保持 | |
Rpg2k3Common | いろいろな所から呼び出す関数群 | |
Rpg2k3Config | コンフィグ |
台詞一覧とそのマップ・イベント列挙。今のところこんな感じの、RPG 内の全データを1つにまとめたテキストファイルになります。ウィンドウ枠に入っているかどうかの確認もできるかも。
マップイベント、コモンイベント、戦闘イベントに対応しています。ただし一部命令や一部イベント発生条件には対応していません。
例えば、全シナリオファイルをテキスト化したもの。一気に読んでみたいとき(誤字脱字のチェック)や、アイテムの検索などに使えます。
../../Romancing_Kanono_Test/map0007.lmu-MAP0007-0005 (003,010)-0001 ◆処理:呼出 [c018:5桁NEXT分解] ◆ ../../Romancing_Kanono_Test/map0007.lmu-MAP0007-0006 (000,001)-0001 ◆処理:呼出 [c123:顔・舞] ◆表示:舞 : :……… ◆処理:呼出 [c127:顔・佐祐理] ◆表示:佐祐理 : :ほら、舞。¥. : :元気だそうよ
そして、この出力に対し別のスクリプトをかけることで、誤字脱字の位置を完全に特定したり、拾えるアイテムの位置を自動的に抽出したりできます。下の画像はロマカノの誤字脱字チェックの時に使ったものと、アイテム一覧チェック用です。
武器や技などが一瞬でこうなります。属性のグループ化などについて、ちょっとした辞書ファイルが必要です。
(ツールのC++→Ruby以降に伴い一時的に非対応になっています)
番号 | 名前 | 説明 | MP | 状態 | 成功 | 属性 |
---|---|---|---|---|---|---|
1501 | 天使の矢 | (魔力L1)純粋な破壊エネルギーによる攻撃 | 4 | {魔-} | ||
1502 | 天使の矢 | (魔力L2)純粋な破壊エネルギーによる攻撃 | 4 | {魔-} | ||
1503 | 天使の矢 | (魔力L3)純粋な破壊エネルギーによる攻撃 | 4 | {魔-} | ||
1504 | 天使の矢 | (魔力L4)純粋な破壊エネルギーによる攻撃 | 4 | {魔-} | ||
1505 | 天使の矢 | (魔力L5)純粋な破壊エネルギーによる攻撃 | 4 | {魔-} | ||
1541 | 碁石 | (毒L1)毒のダメージと微毒を負わす | 6 | 微2微3 | {毒-} | |
1542 | 碁石 | (毒L2)毒のダメージと毒を負わす | 6 | 毒2毒3 | {毒-} | |
1543 | 碁石 | (毒L3)毒のダメージと毒を負わす | 6 | 毒2毒3 | {毒-} | |
1544 | 碁石 | (毒L4)毒のダメージと猛毒を負わす | 6 | 猛2猛3 | {毒-} | |
1545 | 碁石 | (毒L5)毒のダメージと致死毒を負わす | 6 | 致2致3 | {毒-} |
一部データベースに直接値を代入できます。ただし下の例にある通り、ごく一部の命令にしか対応していません。このツールだけでRPGを作ることは絶対不可能です。あくまでRPG2kの補助的な役割です。自作戦闘などで大量の変数データをExcelなどから持ってきたいときにはマクロを組み合わせて使えるかもしれません。
1: #================================================# 2: # スクリプトのサンプル # 3: # 2004.01.22 ほっしー (hossy@hossy.info) # 4: #================================================# 5: 6: # この # で始まる行や、# に続く文字列は注釈文です。 7: 8: // C言語風の注釈文を入れた場合 9: // このテキストがそのまま渡されたり 10: 11: #|| まずは代入文(変数)から 12: # ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 13: v[1] = 2 # v[1] に2を代入。v[0] は使えない 14: v2=-3 # [] はあってもなくてもどちらでも。負数可 15: v[3] = v[v[4]] # v[v[4]] は、v[4]の番号の変数 (ポインタ) 16: v[5..6] = r[7..8] # v[5]~v[6] を、7~8の乱数に 17: v[v[7]] = vv[8] # 略記法 18: 19: #|| 次に代入文(スイッチ) 20: # ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 21: s[2] = 1 # true。0=false, 1=true のみ有効 22: # s[4]=4 # こういう値を書き込むとエラー 23: s[2].true # .true, .up, .on でスイッチ ON 24: s[3] = false # .false, .down, .off で OFF。= でも OOP ぽく . でも 25: s[5..7].swap # ON/OFF切り替え。swap, toggle, change, not が有効 26: 27: #|| お次に IF 文 28: # ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 29: if (v[1] == 2) # ==(一致), >, <, >=, <=, !=(不一致) が使えます 30: if (v[3] != 4) # 入れ子もおっけー 31: puts ("ふぇん") 32: end # else 未対応(--; 33: if (v[5] != v67) # なお、v[2]>1 は OK ですが、1>v[2]はダメ 33: puts ("ふぉん") 34: end 35: end 36: if (s[1].true?) # OOP 的。 v[1].equal?(v[2]) を実装していないのは手抜き(--; 37: if (s[2] == false) # C的。スイッチでは比較は == しか使えません(--; 38: puts ("みょん") 39: break # 処理の中断 40: end 41: end 42: 43: #|| テキストの入力 44: # ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 45: puts << EOS # 一番簡単なのは、このヒアドキュメント形式 46: [ほっしー] はじめまして。 47: このテキストは、スクリプトのサンプルです 48: 49: 空行が会話ウィンドウの切れ目になっています。 50: 最大4行まで連続して書けます。 51: 横側の長さについてはさっぱり見ていません。 52: もし縦側がいっぱいになった場合は、 53: このように次のテキストに自動的に移されます。 54: 行の最初の半角空白は完全に無視されます。 55: 最初 << EOF と書いた場合、EOF な行が最後です。 56: Perl/Ruby なヒアドキュメントの真似ですね 57: EOS 58: 59: puts <<- kokomade # 一番簡単なのは、このヒアドキュメント形式 60: <<- な場合、行頭のスペースも含まれます。 61: え? ウィンドウ内に空行が欲しい場合は? 62: 63: “ ”を書いてごまかして下さい(弱 64: kokomade 65: 66: if s[1].false? 67: puts ("ヒアドキュメント形式の他に") 68: puts2 "一行だけ書き込む命令もあります" # puts2 が同じウィンドウ 69: puts2('" を使いたい場合、' で括ってください') 70: end 71: 72: unknown(method) # こういう知らない命令は綺麗さっぱり無視されます 73: 74: # だいたいこんな所です。 75: # これによって起こるトラブルには一切責任を持ちません(--; 76: # 自己責任によるご使用をお願いします。 77: # もしも使い方が不明な場合、機能追加の要望などは 78: # 適当にお願いします。
このスクリプトが次のようになります。
このスクリプトとは少し違いますが、直接 ldb や lmt を書き換えられると言うことは、AirRPG2.25→2.50のようなメッセージスキップを実現するにあたり、このスクリプトを使っての半自動処理だとしてでも同等の物が作れるという事になります。
マップの中で歩けるところと歩けないところを4×4サイズで表示します(RPG2kの1/8表示)。本来歩けないところが歩けるというのを調べられるかもしれません。↓ は縮尺さらに1/2で、色々な色の●があるのはちょっと無視してください。
だいたいはイストワールメモ帳のマップが作れる程度です。例1のスクリプトを組み合わせるとSVGなマップ例ができ、これを Illustrator などでちょこちょこと加工すると全体マップになります。
なお、ゲーム画像と同等のものを得ることはできません(png の展開方法、透明パレットの扱いなどが大変そうで)。気合いでキャプチャしてください(汗。
セーブデータの解析が出来ます(フラグとか変数とか各キャラのレベルとか)
当サイトでのRomancing Kanonデータ登録、Nepheshelデータ登録はこちらを用いております。
使い道があまりないため開発を休止中です。
今のところフリーウェア・シェアウェア・同人ソフトなどのツクール2000作品について、製作のご協力という形でのみ提供させて頂きます。プレイヤーが攻略の補助としたり解析データを攻略ページなどとして公開するために入手するのはお控え下さい。
Rubyのスクリプトで、本来自分専用のため使い方はかなり複雑(というか無駄が多い)です。もしかしたらサーバーの下で WEB アプリケーションとして動かしたり、一本のソフトウェアとしてまとめるかもしれません。それまでは、ゲームプロジェクトフォルダにある最新の「RPG_RT.ldb, RPG_RT.lmu, Map????.lmu」と辞書ファイルさえ頂ければ、そして「技一覧が欲しい」等とご連絡頂ければ、ある程度の期間で(早ければ1日以下で)対応させて頂きます。
以下、当面の扱いです。
サークルはちみつくまさんの募集にもあります通り、RPG システムの開発をまったりと行っています。宜しければちょっと覗いてみてください。