RPGツクールと数学のブログ

RPGツクールと数学についてのブログです。

相互変換モジュール

過去ブログの転載です。

RPGツクール2000のイベント命令と、プログラミング言語HSPの構文とを相互変換するモジュールです。以下からダウンロードできます:

rpgfunc_1_02.zip - Google ドライブ

このモジュールを使うと、簡単に言えばイベント命令をプログラミングできるようになります。面倒な作業が超効率化することになります。

例えば↓こういったイベント命令の構文をコピーして、上記のモジュールを実行すると……

f:id:fermiumbay13:20190414192708j:plain

このようにHSPのプログラミングの構文に変換することができます^^!

f:id:fermiumbay13:20190414192735j:plain

こうなってしまえば、後はHSPのプログラミングで自由に扱えるので、たとえば似た構文をひたすらコピーしたり、条件に応じて値をちょっと変えてみたり、ということがだいぶん楽に出来るようになります。

使い方

プログラム言語HSPのダウンロード・インストールは以下の公式サイトからできます↓ メールアドレスの入力が必要と思われます。

https://hsp.tv/idman/download.html

インストールすると、HSPでプログラミングができるようになります。

f:id:fermiumbay13:20190801134114p:plain

相互変換モジュールのzipにはこのようなファイルたちが入っています。readme.txtが説明書で、これから書くことは、説明書に書いてあることと基本的に同じです。

f:id:fermiumbay13:20190801134128p:plain

まずは、扱いやすくするためにこれらのファイルをHSPのフォルダにコピーします。HSPがインストールされているフォルダの中に、「common」というフォルダがありますので、そこに『rpgfunc.as』と『rpg2kcb.as』の2つのファイルを入れましょう。

次に、「hsphelp」というフォルダに『rpgfunc.hs』を入れて下さい。これでOKです。commonに入れるとどこからでもそのファイルをインクルード(取り込む操作のことです)ができるようになり、hsphelpに入れるとヘルプファイルからイベント命令を参照できるようになります。

実際に使ってみましょうね。HSPスクリプトエディタを開きます。

f:id:fermiumbay13:20190801134150p:plain

#include "rpgfunc.as"

msg "ぴんくりの大冒険2003"

send

と入力して、実行(「F5」を押す)してみましょう。すると、画面が一瞬表示されて、消えると思います。それでOKです。何か書き間違いなどがありますと、何らかのエラーが発生します。

この状態で、RPGツクール2000か2003のイベント実行内容の欄に、「貼り付け」をしてみましょう。

f:id:fermiumbay13:20190801134216p:plain

ほらほら、このように文章の表示の命令が貼り付けられました。こんな感じでイベント命令を貼り付けることが出来るのです。

逆変換をするには、このイベント命令を「コピー」して、HSPスクリプトエディタで

#include "rpgfunc.as"

receive

と入力して、実行をします。すると、画面に逆変換の結果が表示されますね。

f:id:fermiumbay13:20190801134229p:plain

これでOKです。ちゃんと戻ってきました。「文章の表示」に相当する命令は「msg」ということになります。なんでmsgで文章の表示かというと、気分です。messageを略したものです。すべての命令が、私の気分で名付けられています^^;

HSP構文→イベント命令

#include "rpgfunc.as" を初めに書き、イベント命令に相当する構文を書いていったら、最後にsend を書けば、すべて変換されてクリップボードにコピーされます。

■イベント命令→HSP構文

#include "rpgfunc.as" を初めに書き、receive を書けば、イベント命令を受け取って変換して、表示します。

色々やってみましょう。「顔グラフィックの設定」をしたいとします。「顔グラフィックの設定」に相当する命令が分からないので、ヘルプファイルから確認します。

HSPスクリプトエディタで、まず「F1」を押してください。ヘルプを起動します。

f:id:fermiumbay13:20190801134242p:plain

HSP3.3のヘルプでは画面左上に検索欄がありますので、そこで「顔グラフィックの設定」と入力して検索を押します。

f:id:fermiumbay13:20190801134252p:plain

すると、↑このように左の欄に「face」と表示されますので、それをクリックしてみると右側にその解説が表示されるような仕組みになっています。「顔グラフィックの設定」に相当する命令はどうやら「face」というらしいので、その解説に従って命令を書いていくことになります。まずは「face」と書いて、半角スペースを空け、次に「"filename"」と書かれています。これは何かというと、下に解説があって、顔グラフィックのファイル名とあります。

試しに「ベイ助」というファイル名にしたいとします。ということで、この部分には「"ベイ助"」と記入します。引用符「"」を忘れないようにしましょう。

次に半角コンマ「,」を経て、「p1,p2,p3」とあります。p1、p2、p3はそれぞれ引数であり、下に説明が載っています。p1は顔グラフィックの位置だそうですから、7番目にしたいとすれば「7」と書きます。

f:id:fermiumbay13:20190801134303p:plain

↑ 7番目というのはここのことですね。

次のp2は表示位置ということなので、右に表示したいのであれば「1」と書きます。p3は左右反転するかどうかですから、反転したくないのであれば「0」と書きます。ここで、p3=0~1(0)と書かれています。0~1というのは数値が有効な範囲ですので、そこには0か1の値を入れるんだということで良いと思いますが、その右にある(0)というのは何かというと、その引数を省略したときに使われる値となります。今はp3は「0」に設定したいのですから、わざわざ「0」と書かなくても省略してしまえば良いのです。

ということで、次のように書けばOKです。

face "ベイ助", 7, 1

ということで、こう書いてsendしてみましょう。ちゃんと貼り付けられましたね??

次に、逆変換をしてみましょう。

f:id:fermiumbay13:20190801134317p:plain

↑この部分をコピーしてみたいと思います。Shift押しながらカーソルを引っ張るか、右クリックで「全選択」をしてすべて選択します。そして「コピー」をし、HSP側でreceiveを書いて実行します。

anime 124, 10001, 1, 0
move_all
pic 1, "黒画面", 0, 160, 120, 0, 100, 1, 0, , 100, 100, 100, 100, 0, 5
face "Sマン", 10, 0, 0
msg {"
\\N[1]
「うわあぁぁぁっアぁぁぁぁぁアアアアア
 ァァァァァァアああああああああアアアアア
 アああああああああアアアアァァァッァァァあああア」\\^
"}
anime 124, 10001, 1, 0
pause 20
face "", 1, 0, 0
msg {"
BADEND11\\!
パスコード入手\\!
\\V[0091]
"}
gameover

変換され、色々と表示されました。「receive」ではなく「receive 1」とすると、変換結果の最後の行に「send」が追加されます。相互変換を試すときなどに利用すると良いでしょう。

msgで、複数行の文章の表示をするには、{" "} を使えば良いです。変換されるときは、引数の省略はあまりされません。

また、HSPでは「\」単体を利用できないので、「\\」を使う必要があります。
相互変換する際は自動で変換されるので問題ありませんが、自分で書くときは要注意です。

それでは、この逆変換された構文をちょっと変更してみましょう。2つある戦闘アニメの対象キャラを、「主人公」ではなく「このイベント」にしてみます。

戦闘アニメに相当するのはどうやらanimeのようですね。同様に検索をすればそれらの引数の説明を見ることが出来ますが、HSPの命令の説明を見る場合は、その命令にカーソルを置いて「F1」を押せばそれだけで見られます。*1

f:id:fermiumbay13:20190801134332p:plain

↑ここに置いて「F1」です。すぐ表示されますでしょう。

f:id:fermiumbay13:20190801134343p:plain

引数は4個あるようです。

変えたいのは対象キャラですから、p2を変えればいいということが分かります。下の「解説」の欄で、p2の値の説明がされています。「主人公」を「このイベント」に変えたいので、「10001」を「0」、「10005」、または省略すれば良いことになります。簡単になりますので、省略しましょう。

anime 124, 10001, 1, 0

anime 124, , 1, 0

に変えて、sendしてみます。すると、対象キャラが「このイベント」に変わって出力されますね。

こういう調子で、イベント命令をいじることが可能になります。

*1:当時、説明を書いていたときはこの方法で出来たのですが、もしかすると今のバージョンではうまくできないかもしれません……