開発日誌

すべての記事

[ ゲームリリース情報 ] RPGアツマールでも『夫婦戦争MZ』が遊べる!

2020-08-29 00:53:16

ここ近年はダウンロードするゲームよりもブラウザで直接遊べるゲームが主流。ですが自分は、RPGツクールMVではゲーム制作をしないまま過ぎてしまいました。そこで今回、RPGツクールMZが発売されたのを機に、「RPGアツマール」などにもゲーム投稿していきたいと思います。

こういうのはスピード感も大事。既にいくつかMZ製のゲームが何本か投稿され始めていますので、その勢いに乗るっきゃない。とは言え、どんなゲームを投稿したらいいだろうか。

長編RPGは作ってられないのでミニゲームになるでしょう。しかし自分の性格的に、ミニゲームと思って作り始めても次第に凝り出して壮大になってしまいますし、本当にバランス無視の雑なゲームは作りたくないです。

ではどうしようかと思っていたら、ちょうど良い題材があるじゃありませんか!

VX時代にアイテム発見イベント規格化スクリプトのサンプル用ミニゲームとして作った『夫婦戦争 〜 Find Item 〜』。このスクリプトはMZ用のプラグインとして作り直す必要がありますし、だったらこのサンプル用ミニゲームもMZ版としてリメイクして、ちょっと新要素でも追加してやれば、MZ1作目として出すのに十分面白い作品になりそうです。

ちょっと新要素でも追加してやれば……ちょっと新要素でも追加してやれば……ちょっと新要素でも…………思ったより追加してしまったぜぇ……! でも、制作開始から1週間弱で完成させたので、許してください。

というわけで、ニコニコ動画のRPGアツマールで公開した『夫婦戦争MZ(まさに絶体絶命)』。

ニコニコ動画の会員登録がなくてもプレイはできます。

ゲームの性格上、スマホ操作だとちょっと難しいかもしれません。ゲームパッドやキーボードの操作がオススメです。

ゲーム内容は昨日の記事を参考にしてください。1プレイ2〜3分です。

敵モンスターをMZのキャラに一新し、数もVX版の3体から10体に大幅増加させました。前回は必須の1体を除いて戦闘は全くの無駄でしたが、今回はどのモンスターを倒すか、どう戦うかがキーになってくると思います。この戦闘バランスもけっこう調整したんですよねー。ぜひ最適な装備とストレス解消法で臨んでください!

顔グラはキャラクタージェネレーターで何度も試行錯誤した甲斐あって、VX時代のオバちゃんに劣らぬ、いい感じの中年に仕上がりました。アピールするポイントがおかしい。

以下、スクショの下にヒントを置いておきます。見たくない方はスクショより下は見ないでください。

▲美魔女に仕上がったお隣の奥様

▲室内を調べるとアイテムが手に入る

▲場所によっては敵に襲われることも

▲今回はベッドの下も調べられます

さて、いくつかヒントを。

  • ハッピーエンドの条件は、ある2つのアイテムを手に入れることと、あるパラメーターの値が一定以上であることです。
  • ハッピーエンドにたどり着けるルートは1通りではありません。いろんなルートを試してみましょう。
  • タイマー回復アイテムは使わなくても十分に到達可能です。

[ ゲームリリース情報 ] [ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] アイテム発見イベント規格化プラグインとサンプルミニゲーム

2020-08-28 18:53:17

引き続き自分で使うプラグインをRPGツクールMZ向けに作成していっています。

第3弾は、アイテム発見イベント規格化プラグインです。

これはVXの時に作ったRGSSスクリプトのリメイクで、宝箱やタンス、タルなどを調べるとアイテムが見つかる、というイベントを簡単に組むためのRPGツクールMZ用プラグインです。

私はもう、このプラグイン無しでは宝箱ひとつ満足に設置できない体になってしまいました。

宝箱は「イベントの簡単作成」で簡単に設置できますが、後から中身を別の物に変更したい場合、アイテムを増減するイベントと、「○○を手に入れた!」というメッセージ表示の両方を修正しなければならず、面倒かつミスしやすいです。

そんな面倒なアイテム発見イベントを、簡単に作れるようにするプラグインです。導入方法は以下の通り。

  1. 上記プラグインを組み込む。
  2. アイテム発見のコモンイベントを作る。
  3. 宝箱やタンスなどをイベントとして設置する。イベントの名前を入手品のIDとし、2で作ったアイテム発見のコモンイベントを呼び出します。

以下、詳しく説明します。

プラグインパラメータ

このプラグインには2つのパラメータがあります。

入手品の種別(アイテム、武器、防具など)を表す番号と入手品のIDを、それぞれ格納する変数の番号をパラメータとして設定します。

あと、追加のプラグインとして「文章中にアイテムや敵キャラ等の名前を表示」で紹介した「データベースの名前表示プラグイン(PANDA_ConvertDataName.js)」も、併せて導入すると便利です。

これでプラグインの準備は完了です。

アイテム発見コモンイベント

次に、アイテム発見のコモンイベントを作成します。

最初にセルフスイッチAの状態で分岐し、ONなら既に入手している旨のメッセージを出します。セルフスイッチAがOFFなら未入手なので、入手イベントを実行します。

「プラグインコマンド」で導入した「PANDA_FindItemEvent」の「入手イベント起動(Find Item Event)」を実行します。引数の指定はありません。

プラグインのパラメータで指定した「種別変数番号」の変数に入手品の種別を表す数字(お金=1、アイテム=2、武器=3、防具=4、敵グループ=5)、「アイテム変数番号」の変数に入手品や敵グループのIDもしくは入手金額が取得されます。

アイテムやお金の増減はプラグイン内で処理していますので、後は効果音の演出や入手メッセージの表示などを行えばOKです。ミミックなど敵モンスターを出現させる場合は戦闘の処理が必要です。最後にセルフスイッチAをONにしてやれば、同じ場所から再度入手できてしまうのを避けることができます。

併せて導入した「データベースの名前表示プラグイン(PANDA_ConvertDataName.js)」を使うと、メッセージ内で\item[n] \weapon[n] \armor[n] \troop[n]と記述することによって、n番のアイテム、武器、防具、敵グループ名が表示できます。

入手品の種別で分岐させつつ、文章の表示で\item[\V[x]](xはアイテム変数番号)を使えば、入手時のメッセージを共通化させることができます。

こうしておけば、アイテム入手時の演出やメッセージを後から変更したい場合、ここだけを変えればよいので非常に楽です。デフォルトとはちょっと違う、凝った演出などもやりやすくなるでしょう。

イベント設置

コモンイベントを用意したら、実際の宝箱などのオブジェクトをイベントとして設置します。

実行内容は、先ほどのコモンイベントを呼び出すだけでOKです。

そしてここがポイント。イベントの名前を中身の種別+ID番号とします。

アイテムの場合は「i+アイテムID」、武器の場合は「w+武器ID」、防具の場合は「a+防具ID」とします。例えばi1ならば1番のIDのアイテムが、w25ならば25番のIDの武器が手に入ります。また、お金の場合は「g+金額」とし、モンスターを出現させる場合は「e+敵グループID」とすればOKです。

後で中身を変更したくなったら、イベント名を変更するだけでOK。非常に簡単です。

最初はイベントの名前ではなくメモ欄に中身を記述する予定でしたが、いざやってみると、メモ欄だとイベントを開いてみないと記述が分かりません。その点、名前だとMZから登場したイベントリストや右下のステータスバーにも表示されるので、分かりやすかったです。いちいちイベント名を「宝箱」とか「ツボ」とかする人もいないでしょうし……。

サンプルミニゲーム

これだけだと、なんのこっちゃだと思いますので、例によって実際のサンプルプロジェクトを用意しました。

ただのサンプルでは味気ないので、ちょっとしたミニゲームに仕立ててみました。

『夫婦戦争MZ - Find Item MZ -』

  • 部屋の中を調べて、ダンナの浮気の証拠を探しましょう。
  • 宝箱、ツボ、タル、木箱、机、タンス、戸棚、本棚、額縁の裏からベッドの下まで、あらゆるオブジェクトが調べられます。
  • 浮気の証拠だけでなく、便利アイテムや装備品、ストレス解消に役立つ道具もあります。中には敵が潜んでいる場所も……。
  • 探せるチャンスは10回です。10回調べ終わると、ダンナが帰ってきます。
  • それまでに入手したアイテム等によって、エンディングが変わります。
  • エンディングは全部で10種類。ハッピーエンドを目指してがんばってください!

RPGツクールVX用に作ったスクリプトのサンプルゲーム『夫婦戦争 ~ Find Item ~』のMZ版リメイクです。

部屋を広げて調べられるオブジェクトを増やしたほか、アイテムや装備品、ストレス解消法(魔法)も増量。敵モンスターは一新しました。

VX版のリリースから9年の月日が経っていますが、照代さんは1歳しか年を取っていないとか何とか……。

ダウンロードした「FindItemMZ.zip」を解凍してください。解凍されたフォルダの中にある「Game - ショートカット」をダブルクリックすると、ゲームが始まります。

RPGツクールMZをお持ちの方は、「GameData」フォルダー内の「game.rmmzproject」をプロジェクトとして開くと、実際にどのようにイベントが組まれているかを確認することができます。ご利用の際の参考にしてください。

RPGツクールMZをお持ちでない方も、単純にミニゲームとして遊んでいただけます。

バグ報告、ご質問、ご要望等は、お気軽にコメント欄までどうぞ!

[ ツクール情報 ] [ その他の雑記 ] 【検証】なぜMV/MZのキャラはキモいのか(2)

2020-08-27 23:39:48

昨日の続きです。

VX/VX Aceの歩行キャラグラに比べて、MV/MZの歩行グラはなぜこんなに違和感を覚えるのか。それは頭でっかちというよりも、胴体が華奢すぎるからではないかというところまで突き止めました。

問題は、なぜこんな不自然なバランスになっているかということ。

RPGツクールの歴史の中で、改悪と叩かれた変更は枚挙に暇がありませんが、冷静に事情を考えれば仕方のない変更であったことが窺えるものでした。例えば、XPの時は船などの乗り物の概念が廃止されました。これは、XPでデフォルトのキャラクターの頭身が3頭身になり、3頭身キャラがワールドマップを歩くのは不自然と判断され、ワールドマップでの使用が前提だった船などの乗り物も廃止(必要ならばスクリプトでやればよい)、となったものだと推察しています。船の存在よりも、キャラを3頭身にすることが優先されたわけです。

それと同様に、MV/MZでキャラのサイズが48x48となったことにともなって、胴体を小さくせざるを得なくなったのだと考えました。

32x32では気にならなかったドット絵の粗も、48x48になったことで無視できないほどに目立つようになったしまったのでは?

ひとつあり得ると思ったのは、歩行アニメーションです。

ツクールの歩行アニメーションは3パターンの画像があって、左→中→右→中→左……とパターンを繰り返すことによってできています。

ただ、デフォルトの縦幅がMV/MZと同じ48ドットだったXPの時は、3パターンではなく4パターンありました。キャラのサイズが大きくなったために、従来の3パターンでは歩行アニメーションがぎこちなく写るために、4パターン必要になったのだと解釈しています。

しかし、中央と左右の入れ替えだけで済む3パターンの歩行アニメーションに比べて、4パターンを用意しなければならないというのは、素材制作の負担が大きく不評でした。

そこでVXでは、頭身を下げて32x32にし、歩行アニメーションが3パターンで済むように戻したのです。

それからすると、MVでキャラのサイズが48x48になったとしても、歩行アニメーションは3パターンのまま維持したい。そのために敢えて胴体部分はVX/VX Aceの頃と同じぐらいのサイズに抑えておく必要がある。そのせいでMV/MZの歩行グラはこのような不自然なバランスになっているのではないでしょうか。

……とここまで考えて、改めてXPのキャラグラを見てみたところ、実は4パターンのアニメーションのうち、1つ目と3つ目、すなわち3パターン時の中央に相当するグラフィックは、違いがないようです。

あれ、これってもしかして、4パターンにしないと動きが不自然になるからとかいう理由じゃなくて、単に1→2→3→2→1……でループさせるより、1→2→3→4→1……でループさせた方が楽だから、プログラムで制御するのではなく画像の方で調整してるだけ?

なんか自分の解釈に自信が持てなくなってきたぞ……。

物は試しに、VXのキャラを1.5倍に拡大して、それをアニメーションさせてみよう。

リードさん、ラルフさん、お願いします!

別に歩行アニメーション、不自然じゃないじゃん!!


……次回に続く。続くんかい!

[ ツクール情報 ] [ その他の雑記 ] 【検証】なぜMV/MZのキャラはキモいのか

2020-08-26 23:36:42

唐突に始める検証シリーズ。別に続きません。

▲VXのラルフさん&ウルリカさん、MZのリードさん&プリシアさん、およびVX/MZの一般人Aさん

RPGツクールVX/VX Aceのキャラクターの基本サイズは32x32です。それがMV/MZで48x48になりました。

MVから全体的にサイズが1.5倍になったわけですが、キャラの歩行グラは単純に1.5倍になったわけではなく、俗に1.5頭身と揶揄される頭でっかちなキモい外見に変わりました。

昔の2000やXPの頃は3頭身で、それがVXで2頭身になった時も、けっこう戸惑いの声があったように記憶しています。それがさらに1.5頭身になって、次のRPGツクールでは首だけになってるんじゃなかろうか。

それはさておき、どうしてMV/MZの歩行グラはこんなに違和感を覚えるのか、どうしてこんな実装になっているのか、追究していきたいと思います。

まずはMV/MZの歩行グラの違和感として、頭でっかちであることと、横向きに並べた時に隙間があること。

▲MV/MZ

▲VX/VX Ace

特に後者については、隊列歩行の際にソーシャルディスタンスを保っているようで、今後の世の中における教育上ふさわしい……じゃなくて、スカスカ感があります。

柵の隣などに並べるとそれが顕著で、明らかにもう一歩前へ進めそうな感じがするのですが、これが限界です。

VX/VX Aceの場合もよく見ると隙間は空いていますが、そこまで気になるほどではありませんでした。

頭でっかちな点については、キャラ画像を拡大して線を引いてみると比較しやすくなります。

▲MV/MZ

▲VX/VX Ace

キャラの上下中央に線(赤)を引いてみると、VX/VX Aceはちょうど肩のラインになるので、VX/VX Aceはちょうど胴体部分が下半分になっていることが分かります。

一方、MV/MZは中央が目の位置で、肩(胴体)はそれよりも4〜5ピクセルほど下にあることが分かります。つまりMV/MZは胴体部分が全体の4割ほどしかありません。

頭の部分は、どちらも下の方が胴体部分と重なっているため、胴体よりも大きめに描かれています。MV/MZの方は上端にも数ピクセルの隙間があるため、全体に対する頭部の割合はどちらも6割強となっていました。

そこから計算すると、VX/VX Aceは1.8頭身、MV/MZは1.67頭身となりました。

こう見ると、MV/MZの方が頭でっかちなのは確かですが、そこまで両者の差があるようには思えません。そうすると、その差はどこから来るものか?

胴体部分、というか腕の左右両端に線(青)を引いてみると、差がはっきりします。

VX/VX Aceは左右に2〜3ピクセルの隙間があります。対してMV/MZは左右の隙間が9〜10ピクセルもあります。つまり、胴体部分の横幅はVX/VX AceもMV/MZもどちらも30ピクセル弱でほぼ等しいことが分かります。わずかにMV/MZの方が1まわり大きいかな。

要するに、VX/VX Aceに比べてMV/MZの歩行グラは、頭が1.5倍なのに対して胴体はほぼ同じ。縦で見ると若干の違いですが、横で見ると歴然とした違いがあることが分かります。

さらに、MV/MZの横向きキャラだと、その頭でっかちっぷりが目立ちます。

▲鎧やマントを装備したリードさん

▲布の服を装備した一般人Aさん

アクター系の歩行グラだと、鎧やマントなどを着けているため横幅がそれなりにあって許容範囲かなとも思えますが、普通の服を着ている一般人系の歩行グラだと、こけしもびっくりの華奢っぷりがはっきりします。その胴体でその頭を支えられるのか……。

問題は、どうしてこんな不自然なバランスになっているかということなのですが……。
残念! ここで時間切れだ!

というわけで、続かない検証シリーズと言っておきながら、次回に続きます。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 任意のセルフスイッチを消去

2020-08-24 22:55:43

自分で使うプラグインをRPGツクールMZ向けに作成していっています。

イベントコマンドでセルフスイッチを操作するのは、そのイベントもしくはそのイベントから呼び出されたコモンイベントでしかできませんが、宝箱や扉の状態をリセットするなど、イベント外からセルフスイッチを操作したいというケースはよくあります。

VXやVX Aceの頃はスクリプトで都度記述していましたが、MVからプラグインコマンドが登場したお陰で、より簡単に記述することができるようになり、さらにMZでプラグインコマンドの仕様がより使いやすくなりました。

というわけで作りました。

※2025-01-05追記:
不具合修正および「セルフスイッチのON」もできるようにしました。詳細は「任意のセルフスイッチをONに」をご覧ください。

このプラグインを導入すると、「セルフスイッチの消去(Reset Self Switches)」のプラグインコマンドが使用できます。

対象のマップID、イベントIDを数字で、対象のセルフスイッチをA-Dで指定すると、該当のセルフスイッチをOFFにすることができます。

マップIDに0を指定すると全てのマップ、-1を指定すると現在のマップが対象になります。

イベントIDに0を指定すると対象マップの全てのイベントが対象になります。

対象セルフスイッチを空欄にするとA-D全てのセルフスイッチが対象になります。

ミニゲームなどでよく必要になる、特定のマップの全てのセルフスイッチをOFFにする、といったことが簡単にできるようになります。

ごく基本的な機能なので、より高機能なものが探せば既にあるかもしれませんが、探すのがめんどk……プラグイン制作の勉強も兼ねて自分で作ってみました。

いったんは必要最低限の機能のみ。今後さらに拡張して、対象マップの番号を変数で指定するとか、マップやイベントの名前やメモ欄に特定の文字列があるもののみを対象にするとか、OFFだけじゃなくてONにもできるとか、柔軟な指定が可能になるといいかなと思っています。

質問やアドバイスなどはコメント欄まで、お気軽にどうぞ。プラグイン素材の利用条件についてはMITライセンスとしています。丸パクリなどでなければ基本的に利用は自由です。このサイトについての「提供素材について」の項目なども併せてご覧ください。