ツクール日記 <初めに>

このカテゴリは「RPGツクールの制作日記」です。内容は講座…というよりも備忘録的なものとなります。

RPGツクールでは「とりあえずわからないところがあればぐぐる」という方が大半かと思うので、私の記録が少しでも何かのお役に立てれば幸いであります。

ただし、スクリプト関係は全くできません。あくまで「ド素人が触った末の記録」となります。

また、間違いのご指摘をちょうだいしましたら、なるべく早く修正したいと思います。

RPGツクールでアクションゲームをつくるPart1(まず敵を配置)

前々から検索の多かったツクール製アクションゲームについての製作日記をやっていこうかと思います。なお、基本的に私はYADOT様の講座を頼りに制作しましたので、できればそちらをご参照下さい。私はざっくりとしか語る気がございませんので悪しからずです。

それと、一気に解説ページをつくる気力がありませんので、日記形式で淡々と不定期連載で書いていきます。「ページ移動が面倒くさい」等、あるかと思いますが、何卒ご容赦下さいませ。


Part1ということで、まず敵の配置です。これはイベントの行動パターンを「主人公に近寄る」だけで終わりです。その敵のイベント開始条件を「イベントから触れたとき」、イベント内容を悲鳴用のSEとか主人公に戦闘アニメーションを表示とか体力用の変数を減らすとかそんな内容にしておきます。(この点は後述。)移動速度や移動頻度はお好みで調整して下さい。狭い通路を往復するのもいいかと思います。

さて、敵ができましたが、このままですとイベントが連続して発生して、体力をちょっとずつ減らす設定にしたはずが連続攻撃を受けたりすることがあります。いわゆる「無敵時間」がないとイベントが繰り返されちゃうわけです。

例↓



以下、その対策。

1.「イベントの一時消去」でそのイベントを消す

避けゲーならこれで十分です。それと、ホラーゲームとか。マップ移動で復活するので、これで十分でしたらこれにしましょう。


2.無敵時間用のスイッチをONにする

鉄板ですが、これも別に難しくもないです。無敵時間用のコモンイベントをつくり、スイッチを起動条件にして並列処理で動かします。無敵時間用コモンイベントのイベント内容はウェイト→無敵時間用のスイッチOFF。(ウェイト時間はお好みで。)

無敵時間をつくるコモンイベントができましたので、マップ中の敵イベントの実行内容は「条件分岐:無敵時間用スイッチがOFF」の中に全部入れてしまいます。

これでお終いですが、イベント一つ一つに実行内容を入れるのもめんどくさいので、敵イベントの実行内容もコモンイベントでまとめてしまった方が楽でしょう。まあそのあたりはお好みで。


3.個別スイッチで敵イベントの実行内容を変える

できなくはないですが、手間なだけです。おすすめはしません。






拙作「ばりちーへ。」に関しては上記の2で制御しております。それだけだと寂しいので、「アクターのグラフィック変更」で半透明にした主人公グラフィックと入れ替わる実行内容付きにしました。

…と、ここで「え?なんで『アクターのグラフィック変更』なんだ?『移動ルートの設定』の『不透明度の変更』があるじゃないか。わざわざグラフィックまで用意する手間をかけるなんて、こいつはバカなんじゃないか?」と思われた方もいらっしゃるのではないでしょうか。

私としても最初は移動ルートでやろうとしたのですが、ソフトが処理しきれないのかどうもうまく行きませんでした。また別の機会に書くかと思いますが、どうもRPGツクールの「移動ルート指定」はバグの原因になるらしく、なーんか動きが悪くなったり動かなくなったりと…ああ、困った困った。

というわけで、半透明にするのには「アクターのグラフィック変更」を使いました。ちびキャラを作るのが得意な方はやられグラフィックを用意して、それと入れ替えてあげるといいんじゃないかなあと思います。

【RPGツクールVX Ace日記】「Sprite」の意味が本気でわかってなかった

kindle20141109.jpg

「Sprite」=①妖精 ②コンピューター用語でイメージ


↑そんなの知ってるわけないやん!ずっと意味もわからずスプライトという暗号追いかけてたわ!技術者視点で解説ファイル作ってんじゃないよバカチーン!


…とか、憤っていたこの頃です。


この画像を見ての通り、VX AceのヘルプをKindleに突っ込みました。もっとも元ファイルはヘルプファイル(chm)でしたので、ページひとつひとつをCtrl+A、Ctrl+C、Ctrl+Vの繰り返しでワープロソフトにコピーして…うわあ本当めんどくさい。


ちなみに私の目的としては、ウディタの文字のピクチャ表示みたいなのをツクールでやるのと、任意ピクチャを戦闘画面とかに置けるようにすることです。まあウディタならどっちも簡単にできるんですけどねブチブチ…

RPGツクールVXAceのデフォ素材の場所ってどこだっけ?



Win7ですが、「C:¥Program Files (x86)¥Common Files¥Enterbrain¥RGSS3¥RPGVXAce¥Graphics¥」にありました。あかん、ここに書かないと忘れちゃう。(画像の使用ソフトはAs/Rです)

…って、C:\Program Files (x86)\Common Files\Enterbrain\RGSS3\RPGVXAce\Graphics\って入力したらバックスラッシュになっちゃって困った。(コピペ移動するならこっち。)


Link:ネットで「円マーク」を出したいのに文字化けして「バックスラッシュ」が! HTML特殊文字で解決 | ヨッセンス

RPGツクールVX Aceをウディタっぽい「初期位置に直接飛んで開始」にしたい

First Seed Materialさんとこのフォーラムに「タイトル画面を飛ばすやり方」というトピックがあったんですが、肝心のFSMさんが消失。そのトピックはたまたま保存してあったからまだ良いのですが、例のごとくここに書いておかないと忘れそうなので、メモ書きです。




回想領域様のところのMaterial→RGSS3の「自動ニューゲーム」をコピペします。この時点でメモ書きになっていない気がしますが、そこはおいといて。





スクリプト製作者様の指示に従って、まず設定箇所を「false」にします。

kaisou_ryouiki_20141129-1.png





40~42、46行目を消します。(私はヘタに消すのが怖いので、#でコメント化してます。)

kaisou_ryouiki_20141129-2.png




あんまり試験してないのでどれだけうまくいくかは不明です。他のセーブスクリプトなんかと組み合わせてプレイ進行度と合わせて表示させるものを変えるとか、そんな使い道で考え中。

あまり指摘されない、RPGツクールMVのファイルサイズがどうしても巨大化するという問題

RPGツクールMV -

ほぼ新規作成状態でWindows用に出力してみたら、約100MBになりました。とほほ…。(公式のデータサイズ節約素材使用、未使用ファイルを含めないデプロイメントによる出力。)

まず、あらかじめ書いておくと、ファイルサイズを気にすること自体おかしいと思う方も多いかもしれません。実際に数百MBを「そんなの気にすんな」といった感じで出している作者さんも、まぁ見ます。

しかし、今もADSLを使ってる私としては、気軽に150MBとか200MBとか、そんなノリだとつらかったりします。何より、100MBを超えてきたりするとアップデート自体が一苦労できついです…。

それぐらいだと、何よりアップデートの回数を抑えなければなりません。どんなにがんばっても「あ、しまった、ここを直さなきゃ」というのは出てきてしまうので、そういった部分も計算に入れなければなりません。(これまた「そんなの気にすんな」という作者さんも見たりはしますが。)

それに、これだけ当たり前のように100MB以上のものが作られると、フリーゲーム登録サイトもアップロード制限を厳しくすることも、多少は考えられます。可能性は低いとは思いますけど。




ただし、これはツクールMV特有のことではなく、HTML5系のゲーム制作ソフトはことごとく同様の現象が起きます。決して「ツクールMVだから」というわけではございません。

そういったわけで、ツクールMVは少マップのブラウザゲームとして制作するべきソフトなのかもしれません。最近はブラウザでプレイする仕様のゲームも随分多いので、それも時代の流れなのかもしれないです。

ブラウザゲーならばゲーム内でなくとも広告が置けたりします。それはそれでフリーゲームの新時代です。

しかし、レンタルホームページは昔と比べると斜陽で、加えてフリーだとファイル制限が厳しかったりで、ブラウザゲーとしてやるには甘くない道が待っていそうではあります。


散々ツクールMVの不満点・不安点を書いてしまいましたが、一方でツクールMVはコミュニティが活発という点が大変素晴らしいので、現状では手段として捨てるに捨てきれないと感じております。ただ、ファイルサイズがとにかく大きく、どんなにがんばっても100MB前後近くは最低でもあるというのは、もう少し知られて欲しいなと思った次第です。

RPGツクールMVでVXAceのマップチップ素材を使う日記

RPGツクールMV -
ユーザー登録すると特典としてもらえるプラグイン使うとできるっていう話ですが…使い方が簡単にしか書かれてなくてわかりにくいなあ。

ということで、以下おぼえがき。VXAceのRTPをコピーします。



 Projectフォルダの[js]フォルダ内[plugins]フォルダに、ユーザー登録特典の【ChangeTileSize.js】をコピーする。状態もONにする。

 パラメータで、Tile Sizeを32に設定。その次以降を任意の名前をつけたフォルダに設定。

 任意の名前をつけたフォルダにVXAceのマップチップをコピーする。

 なお、②で決めた任意のフォルダはゲーム出力した時に反映される。ツクールのエディタでは「32ピクセル? [Tilesets]フォルダの48ピクセルの素材しか知らねーよ!」となる。

 そんな融通のきかないエディタのために、1マス48ピクセルサイズのマップチップをTilesetsフォルダ入れてあげる。ここではVXAceのマップチップをそのまま150%に拡大したものを入れる。

 データベースのタイルセットの設定はもはやジャマなので消す。

 元々入っていたMVのマップチップも全部消す。(MV用とは共存できない)

 データベースのタイルセットを設定しなおす。



 終わり。ツクールMVの基本解像度は816×624なので、マップは最低26x20マスでないとダメかもしれない。試しに25x19マスでやってみた画像が下記。(エディタ上では全部草原。)




 キャラクター画像のサイズも違うのでcharactersフォルダの全ファイルを消去後、MVのキャラチップをコピー。

 以上の作業を行った物をマスター版として保存。これで再度設定し直す必要もなし。

 そして、ゲームを完成させる。

 デプロイメントでオプションの「未使用ファイルを含まない」で出力すると、②で指定したフォルダが除外されるようなので、出力後のimgフォルダに手作業コピー。



追って書き。ツクールの規約として、購入者ならツクールシリーズ内で公式素材を流用しても良いとのこと(詳しくはこちらなので、上記のようにやってみました。今後、既存のVXAce用素材なども取り入れていきたいなあ思います。

RPGツクールMV用のラルフのキャラチップが無い!

ralph20160812.JPG

というわけで、キャラクター生成機能で、それっぽいのを作りました。顔グラはいつも作品のテーマに合わせて1から描いちゃうので、無いものとしてご覧ください。

髪型は意外と及第点に近い感じになりましたが、鎧がどうも。というか、元の鎧の構造が私にはよく理解できておりません。というか、オリジナルのラルフって、キャラチップと顔画像とで赤マントの位置が真逆じゃないですか?


…と、ここまで書いておいてなんですが、実は有志の手によってラルフのキャラチップは既に存在しております。

Ralph Sprite | RPG Maker MV

でも「For non-commercial use only」ってあるから、私は使わないです。まあいろいろと怖いじゃないですか、少しでもそういう条件あると…モニョモニョ。

ラルフの歩行グラフィックはどうしても欲しかったんですけどねえ。1000円未満なら買ってもいいぐらいですし。

2000RTPのアレックスはデジカさんとこで配布されてるんですけどね。やっぱりラルフはダメですか(´・ω・`)

RPGツクールMVで、PCでのプレイかスマホでのプレイかを判別する方法。他、ピクチャボタンについてや、スマホ上でのツクールMVの挙動について



以前教えてもらったことなのですが、[変数の操作]でスクリプトに以下のように入力すると「ツクールMVを起動しているOSが、Windows/Macなら変数として1を返す」そうです。

navigator.userAgent.match(/(windows|macintosh)/i) !== null ? 1 : 0


画像にすると、こう。



これを利用すれば、ブラウザゲームとしてアップした際などに、パソコン用のイベント、スマホ用のイベントと分けたりすることができます。(その実例が、この記事冒頭のKSG。)パソコンなら変数に1が代入されますし、スマホなら0が代入されるというわけです。

ちなみに、Linuxなんかの可能性を考慮に入れていないわけですが、まあ一般人は触ることすらないし…。


ピクチャボタンはツクールMVのプラグイン開発で有名なトリアコンタン氏のものを使わせてもらいました。

Delusional Field: ピクチャのボタン化プラグイン

1画面にボタンを複数使いたい時はどうすればいいのかよくわかりませんでしたが、こんな感じで1つずつ設定すればいいみたいです。





ちなみに、これですが、PCで開くとBGMが鳴ります。スマホでゲーム画面を開くと、ボタンを押して画面切り替えしないと鳴りません。


教えてもらったのですが、スマホブラウザのHTML5の仕様として、一度もタップしていない状態では音が鳴らないようになっているそうです。

RPGツクールMVで、ピクチャをスクリプトで操作したい。 変数で操作できないのは面倒すぎる

というわけで、ツクールMVのスクリプトメモ。


まず基本。
tkoolMV_2017-04-09-1.png


画像が出ます。
tkoolMV_2017-04-09-2.png


手始めに表示した画像をスクリプトで消してみます。「$gameScreen.erasePicture(n)」はツクール基本操作の「ピクチャの消去」と同義となります。 ( )内が消去したいピクチャ番号。
tkoolMV_2017-04-09-3.png


消えました。
tkoolMV_2017-04-09-0.png



さてここから本番。「変数で指定したいなあ~」ということで、( )内に入れる指定番号を変数にします。
tkoolMV_2017-04-09-4.png


残念ながらエラーが返ってきました。
tkoolMV_2017-04-09-5.png



「$gameVariables.value(n)」が変数の正確な表記らしいので、( )内にこっちで入れ直してみました。
tkoolMV_2017-04-09-6.png



命令どおりに消えました(∩´∀`)∩
tkoolMV_2017-04-09-0.png




この調子でピクチャの色調変更もスクリプトで実行してみます。
tkoolMV_2017-04-09-7.png



これまた成功です。
tkoolMV_2017-04-09-8.png




といった感じで、スクリプトによるピクチャの操作に成功しました。


他、詳しくはこちらの筆者さん方がまとめられているので、ご参照ください。


ツクールMVスクリプトリファレンスwiki / RPGツクールVXAce & MVスクリプトwikiとプラグイン

RPGツクールMV スクリプト基本編 - Qiita



2017年4月14日追記。

ピクチャの表示で、ピクチャのファイル名を変数なんかで代入することはできないみたいですね( ´・ω・)やり方わかったので、後で書きます。



2017年7月25日追記。間が空きました、ごめんなさい。

ピクチャ表示のスクリプトは「$gameScreen.showPicture(ピクチャ番号,"画像名",原点,X,Y,拡大率【幅】,拡大率【高さ】,不透明度,合成方法)」のようです。原点は0で左上、1で中央のようです。あと、合成方法は0で通常合成。

tkoolMV_20170725-1.png


こうして比べるとわかりやすいですね。

tkoolMV_20170725-2.png

ポイントとしては、画像名に拡張子をつけないこと、「""」で画像名を囲ってあげることだと思います。



さてさて。「変数のところにファイル名入れて、そこから表示できたら便利だなあ」と思い、やってみました。

tkoolMV_20170725-3.png

できました(∩´∀`)∩


まず、変数への文字代入はこんな感じで。私はまったく詳しくないのですが、「""」で囲うのがjavaScriptのルールらしいです。

tkoolMV_20170725-4.png



この変数の使い方は、通常メッセージにも使えたりするみたいです。

tkoolMV_20170725-5.png




そんでもって、今回のサンプルでは「$gameScreen.showPicture(1,"$gameVariables.value(1)",0,0,0,100,100,255,0)」としておりますが、画像名のところを「""」で囲ってません。逆に「""」で囲うと表示されなくなるので、変数で指定する時は囲わないルールみたいです。




ここで大詰め。「変数と数字の組み合わせで表示できるか」です。「test1.png」という画像を用意し、認識してくれるかどうか試してみます。

javaScriptのルールでは「+」を使うと文字と文字を組み合わせることができるようです。さあ、やってみましょう。




tkoolMV_20170725-6.png

あっさりできました。では、逆にしてみましょう。




tkoolMV_20170725-7.png


あっさりできました。




ということで、

・ファイル名を直接指定するには " " で囲う
・変数で指定するには $gameVariables.value(n) をそのまま書き入れる
・変数に文字を代入するにはスクリプト欄で " " で囲って書き入れる
・ファイル名で変数を組み合わせるには + を使う


な感じで無事解決をいたしました。



ただひとつ注意するのが、スクリプトで指定した画像ファイルはデプロイメントで未使用ファイル扱いになってしまうので、直接フォルダにコピーするなり、使わないイベントで表示するイベントを作成したりせねばなりません。