開発日誌

素材

和風探索RPG『天下御免!からくり屋敷
2018年8月13日、Version 1.2.7を公開しました!

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 選択肢表示時にSEを鳴らす

2020-09-27 22:14:14

イベントコマンド「選択肢の表示」で選択肢ウィンドウが表示される際に、SEを鳴らすプラグインを作成しました。MV/MZの両方に対応しています。

天下御免!からくり屋敷』ではスクリプトで選択肢ウィンドウを拡張したついでにSEを鳴らすようにしていました。

そのせいで、選択肢が現れた時に無音だと、何だか物足りない気がしたので作りました。

実際、RPGツクールVX Ace以降の選択肢ウィンドウは、標準だと右の方に出てくるので、特に「はい」「いいえ」だけの短い選択肢だと目立たなくて、ついうっかり決定キーを連打していて、選択肢があることを見逃してしまうといったことが起こりがちだと思います。

そんな時も、SEがあれば選択肢が出てきたことを喚起できるのではないかと思います。

SEの種類や音量などはプラグインのパラメータで指定できます。個人的にはピッチ150%にした「Saint5」が好み。『天下御免!からくり屋敷』でもこのSEを使っています。

あまり派手さはないですが、今後もこんな感じのちょっとした、かつ汎用的なプラグインを公開していきたいと思いますので、どうぞよろしくお願いいたします。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 職業の代わりに二つ名を表示

2020-09-25 20:00:21

長編RPGを作っていてよくあるのが、最初はただの村の自警団兵だった若者が、王国兵として取り立てられ、最終的に世界を救う勇者になる、といったストーリーです。

そしてそのストーリーに応じて変化する立場を、職業名としてステータス画面等に反映したくなります。

普通に実装するとなると、中身は全く同じで、名前だけが「自警団兵」「王国兵」「勇者」などと異なる職業を用意しておき、イベントコマンドの「職業の変更」で「レベルの保存」にチェックして、職業を変更すればよいと思います。

ただこの方法だと、名前しか違わない職業を複数用意する必要があり、途中でパラメーターやスキル習得等を変更する場合は、同じ変更を全ての職業に忘れず反映しないといけないため、非常に手間がかかります。

しかしアクターの属性にはもう一つ、RPGツクールVX Aceから登場した「二つ名」という属性があります。こちらは単純に文字情報のみでゲームには何も影響を与えないですし、イベントコマンドの「二つ名の変更」で簡単に変更できます。

なので、ストーリーに応じて二つ名を「自警団兵」「王国兵」「勇者」などと変更し、ステータス画面等では職業名の代わりにこの二つ名を表示するようにしてやれば、やりたいことが楽に実現できます。

というわけで、プラグインを作りました。MV/MZ両対応です。

このプラグインを導入すると、ステータス画面等で職業名の代わりに二つ名が、二つ名の代わりに職業名が表示されるようになります。後者はプラグインパラメータで非表示にすることもできます。

具体的な使用イメージはこんな感じ。

  1. 本来の二つ名の名称で職業を作成(二つ名を非表示にするなら適当な名前で可)
  2. アクターにその職業を割り当て、二つ名に本来の職業名を設定
  3. イベント中に「二つ名の変更」で本来の職業名を変更

そうするとこんな感じで、ステータス画面上は職業名のところに二つ名が、二つ名のところに職業名が表示されます。

スキル選択画面などではもともと職業名しか表示されませんが、そこでは職業名の代わりに二つ名が表示されます。

やっていることとしては、アクタークラスの二つ名(nickname)を返すところで、「二つ名の表示」パラメータがONなら職業名を、OFFなら空文字列を、二つ名の代わりに返しているのと、ウィンドウクラスの職業名描画(drawActorClass)で、職業名の代わりに二つ名を描画しているだけです。

なので、drawActorClassに手を入れているプラグインとは、競合するかもしれません。

ちなみにdrawActorClassは、MVではWindow_Baseのメソッド、MZではWindow_StatusBaseのメソッドで違いがあるのですが、両方含めることでMV/MZ両対応としました。この方法、間違ってないですよね?

厨二っぽいゲームでもない限り、いまいち存在意義が分からなかった二つ名ですが、有効な使い方が発見できて良かったです!

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] PRGツクールMZでルビを振る

2020-09-20 20:29:55

RPGツクールMZで新作を作るにあたって、早期に必要なシステムがルビ振りシステムでした。

天下御免!からくり屋敷』では、和風というコンセプトのもと、難しい固有名詞や漢字熟語が多数登場するため、独自にルビ振りのスクリプトを組んで実現していました。

今回のゲームは和風とかではないので、ルビがなくても大きな支障はないのですが、それでもやはり普段使わない語句なんかは読みにくいので、ルビはあるに超したことはありません。

というわけでルビ表示プラグインを作りました!

これを導入すると、こんな感じでテキストにルビを振ることができます。

ルビの入力は、先日のVX版での記事と同じで、{漢|かん}{字|じ}のようにルビを振りたい文字を"{}"で囲んで、"|"の手前に漢字、後ろにルビを記述すれば、ルビ付きのテキストとして表示されるようになります。

VX版では漢字1文字につきルビ3文字までが限界でしたが、MZ版ではどうやら4文字でも大丈夫そうですね。候(そうろう)とか使うことはないと思いますが、妹(いもうと)とか狼(おおかみ)とかは使いそうです(組み合わせがヒドい)。源順(みなもとのしたごう)さえ登場させなければ問題なさそう。

このプラグインの一番のポイントは、文章の表示だけでなく、アクター名、職業名、スキル名、アイテム名、敵キャラ名、およびスキルやアイテムの説明文や、戦闘メッセージ、マップ名など、必要と思われる場所は基本的に全て対応している点です。

下は装備変更画面ですが、装備アイテム名や説明文にもちゃんとルビが反映されています。

VX版の時は、ルビ分のスペースを確保するために、テキストの1行の高さを標準の24から32に拡大しており、そのせいでほとんど全てのウィンドウのレイアウトを調整する必要がありました。これがかなり、それ以外の画面レイアウト変更と競合するため、スクリプト素材として提供できていませんでした。

しかしMZでは、1行の標準の高さが36で、デフォルトのフォントサイズが26なので、行間には10の余裕があります。このくらいあれば、何とか高さを変えずにルビを押し込めるのではないか、と思って押し込んでみたところ、ちょっと詰まっている感はあるものの、まあまあ許容範囲に収まったので、晴れてウィンドウの高さ調整をすることなくルビ振りが完成しました。

レイアウト調整が不要なため、今回はプラグインとしての提供も可能になっています。

フォントサイズや1行の高さを標準から変更する場合は、おそらくレイアウトの調整が必要になると思いますが、そこまではこのプラグインでは対応していないのであしからず。

まあよく見ると、アイコンの位置がルビを含んだ行高の中央に来てしまっているのが気になるほか、魔法名のようにルビのない語句が下に寄りすぎているように見えるところや、アイテム個数や消費MPなども微妙にズレている感じがするのが、気にはなるところですかね。

ショップ画面の購入数・売却数を指定するウィンドウ(Window_ShopNumber)のみ、×記号と個数は下に寄っているのがかなり気になったので、中央に来るように調整しました。

どうせこのあたりの画面レイアウトは、ルビとは関係なくいじる予定なので、デフォルトのルビ振りプラグインとしてはこんな感じで十分かと。

技術的には、

Window_StatusBase.prototype.isRuby = function() {

  return true;

};

という感じで、ルビに対応させるウィンドウオブジェクトでisRubyを定義して、trueを返すようにしています。falseにすればルビは付かなくなります。falseにした場合、もともとルビ付きのテキストであっても、ちゃんとルビが削れて表示されます。

標準では、所持金表示ウィンドウ、名前や数値の入力ウィンドウ、セーブファイルの選択ウィンドウと、メニューコマンド選択肢全般(タイトル画面や基本メニュー、アイテムやスキルの種別選択、最強装備や購入・売却の選択肢、オプション画面など)、およびデバッグ画面はルビ非対応にしています。「最強装備」とかにもルビを振りたいという場合は、該当ウィンドウのisRubyをtrueに変更すればOKです。

上記のショップ画面の購入個数などの表示位置調整は、

const _Window_ShopNumber_drawNumber = Window_ShopNumber.prototype.drawNumber;

Window_ShopNumber.prototype.drawNumber = function() {

  Window_ShopNumber.prototype.isRuby = function() { return false; };

  _Window_ShopNumber_drawNumber.call(this);

  Window_ShopNumber.prototype.isRuby = function() { return true; };

};

という風に、直前でルビ対応をfalseにして、個数表示後にtrueに戻しています。たぶんこれを応用すれば、前述のアイコンとか消費MP量表示とかの位置も調整できると思いますが、ここから先はご自由にどうぞ。

アラビア語などのRTLにも一応対応させたつもりですが、確認はしていません。日本語以外で使うこともないと思うので、まあいいよね。

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

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 必要経験値をExcelで計算

2020-09-17 05:02:01
  • 次のレベルに上がるまでどのくらいの経験値が必要か。
  • 敵を1体倒すごとに得られる経験値はどのくらいか。

この両者のバランスを誤ると、レベル上げ作業が苦痛になったり、逆に普通に進めるだけで適正レベルをはるかに超えてヌルゲー化したりしてしまいます。

そこで、その調整をやりやすくするためのエクセルファイルを作ったので公開します。もちろん利用にはMicrosoft Office Excelが必要です。

RPGツクールVX Ace以降の経験値計算を対象としています。もちろんMVや最新のRPGツクールMZも対象です。

使い方はいたって簡単。

まずは、経験値曲線の4つのパラメーターである「基本値」「補正値」「増加度A」「増加度B」を入力します。

すると各レベルにおいて、次のレベルまでの必要な経験値と、累積経験値がそれぞれ算出されます。

次に、1回の戦闘で出現する敵キャラ数の平均値を「平均敵数」欄に入力します。だいたい2〜3体で出現することが多ければ、2.5ぐらいじゃないでしょうか。

そして「戦闘回数」の欄に、次のレベルに上がるまでに想定している必要戦闘回数を入力します。だいたい1つのダンジョンに入って出てくるまでにレベルが1上がると想定していたら、そのダンジョンでだいたい何回ぐらいの戦闘を想定しているか、ということです。最初は少なく、だんだん必要回数が増えていくのが、それっぽいのかなと思います。

以上で、各レベル帯において、敵1体に設定すべき獲得経験値の目安が求められます。

つまり、レベル10ぐらいで到達している地域で出現する敵の経験値は、どのぐらいが適正なのか、ということが算出できるというわけです。

昔のRPGだと、たびたびレベル上げ作業を強いられてもプレイしてもらえましたが、最近ではレベル上げが必要となろうものなら、まず投げ出されてしまいます。しかも一本道ストーリーも喜ばれず、いろいろな寄り道要素があるのが好まれるため、適正レベルの調整は並大抵のものではありません。

しかし、VX Ace以降の経験値計算法は、VXの頃に比べて適正経験値量の調整が難しくなったような。まあこれについてはまた別で述べたいと思います。

[ ゲームリリース情報 ] [ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] アイテム獲得メッセージにアイコンを表示

2020-09-06 03:14:15

自分で使うプラグインの開発シリーズ第5弾。今回もRPGツクールMV/MZ共通対応です。

プラグイン第1弾として公開した「データベースの名前表示プラグイン(PANDA_ConvertDataName.js)」を使うと、文章中でアイテム名の頭にアイコンを表示させることができますが、敵を倒してアイテムを入手した際のメッセージでは、アイコンを表示させることができません。

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

このプラグインを導入すれば、戦闘終了時のアイテム獲得メッセージで、アイテム名の頭にアイコンを表示させることができます。

サンプル画像ではアイテム名の色も変わっていますが、これは「用語」の「メッセージ」で色を変更しているだけです。

色の変更は前回紹介した「重要語句の文字色変更プラグイン(PANDA_KeywordColor.js)」を使うと便利です。

戦闘終了時のメッセージは、他のプラグインで大きく変更している場合も多いと思います。そういう場合には、このプラグインはおそらく正常に動作しません。あくまでデフォルトのメッセージ表示の場合にのみ動作を保証します。

RPGアツマールで公開中のミニゲーム『夫婦戦争MZ(まさに絶体絶命)』にも、このプラグインを組み込んで更新しました。

まだプレイされていない方はこの機会にぜひプレイしてみてください。既にプレイされたという方も、再度プレイして見た目の違いをお楽しみください。

ちなみにハッピーエンドにたどり着けるルートは、作者が想定しているだけでも6通りあります。ぜひ全てのルートで攻略してみてください!

最新の記事
2020-10-25 22:34:19
必要経験値の計算をVX方式で
2020-10-20 02:59:45
運の扱いにウンウン悩む
2020-10-15 22:15:16
『夫婦戦争MZ』にヒントが付いたよ
2020-10-08 21:39:22
台詞の途中でスイッチ操作 in MZ
2020-10-04 17:54:52
エクセルで敵キャラかんたん設定
記事一覧
最新のコメント
2020-09-26 12:32:25
RPGツクールMZでSAKANを使う (2)
2020-09-26 12:30:05
柵の向う側 (2)
2019-06-05 23:10:40
サーバーを移設した (2)
2019-05-22 20:01:59
敵グループが足りないっ! (2)
2018-03-14 01:30:08
和風探索RPG『天下御免!からくり屋敷』正式版公開! (2)