鳥小屋.txt

ゲーム作ったり、Web的なことしたり、ぐだぐだしたりしますねヽ(・x・)ノ

【オートセーブ】セーブコマンドプラグイン for MV

f:id:ru_shalm:20160304014650p:plain

  • 2016/06/12 「SaveCommand save latest」「SaveCommand load latest」を追加しました
  • 2016/06/12 セーブデータが無い時にロードコマンドを実行するとエラーする不具合を修正しました。
  • 2016/03/04 小物プラグイン集からページを分離しました。プラグイン自体の更新はありません。

プラグイン概要

プラグインコマンドからセーブ/ロードの実行ができるようになります。
オートセーブのような使い方がメインです。

オートセーブのゲームを作っていて生まれたプラグインなのですが、そのゲームはエターなりましたよ :)

使用方法

イベントコマンド一覧の3ページ目の右下「プラグインコマンド」から使用できます。

f:id:ru_shalm:20160304015150p:plain

以下、コマンド一覧です。枠の中のコマンドをコピペで使ってください!

最後にロード/セーブしたスロットに上書きセーブ

SaveCommand save last

最後にロード/セーブしたスロットの上に上書きでセーブを実行します。
オートセーブ的な強制的にセーブさせたいタイミングで使えると思います。

ニューゲームの場合、まだセーブされていない一番上のスロットにセーブされます。

指定したスロット番号にセーブ

SaveCommand save 1

スロット1番にセーブしたい!という場合は番号で直接指定できます。
1 の部分がスロットの番号なので 120 の間で設定してください。

変数で指定したスロット番号にセーブ

SaveCommand save [11]

スロット番号をツクールの変数で指定したい場合の指定方法です。
変数11番に入っている値のスロット番号を使いたい場合は↑のように指定します。

f:id:ru_shalm:20160304020137p:plain

こういうイメージ。

一番新しいセーブデータに上書きセーブ

SaveCommand save latest

lastlatest でまぎらわしいのですが別コマンドです。 セーブデータの中で一番新しいセーブスロットに上書きセーブを実行します。

【注意】

  • セーブデータ1(昨日保存したセーブ)
  • セーブデータ2(今日保存したセーブ)

↑のような2つのセーブデータがある場合、 セーブデータ1番をロードして、「SaveCommand save latest」を使用すると、 セーブデータ2番に上書きされてしまいます。

このオプションは後述のロード機能で使うのがメインで、 セーブコマンドでは last を使ったほうがいいかな…と思います。

ロード機能

ここまで紹介したコマンドの SaveCommand save の部分を SaveCommand load にするとロード機能になります。

が!

ツクールのデフォルトの挙動にイベント中にゲームがロードされることは想定されて無いので、
ロードを実行するタイミングが悪いとバグることがあります。
ロードは上級者向け機能ということでお願いします。。。

セーブ削除機能

SaveCommand save の部分を SaveCommand remove にするとセーブデータを消せます。
使い方間違うと普通にプレイヤー激おこなので十分に注意してください。

ダウンロード

Torigoya_SaveCommand.js ダウンロード

右クリック→「名前をつけて保存」したものを plugins フォルダに入れてご利用ください。

利用規約

RPGツクールMV(RPG Maker MV)内での使用の場合は自由に使用できます。
有償、改変配布など、制限項目はありません。


とはいえね、セーブデータバックアップされてたらあんまり意味ないけどね。

まぁ、絶対ロードさせないぞ!!というよりは、プレイヤーの便利のために使ってもらえると嬉しいなと思うのでした。
(スマホでやるゲームとかわざわざ自分でセーブ選択したくない〜)

スキル変化条件設定さん for MV(2017/03/18更新)

f:id:ru_shalm:20160221154801j:plain

  • 2017/03/18 同一IDのスキル/アイテムの結果が混ざってしまう不具合を修正しました

プラグイン概要

スキルのメモ欄で指定した条件を満たした際に、別のスキルに変化する機能を追加します。

使用方法

f:id:ru_shalm:20160221155039p:plain

スキルのメモ欄で設定を行います。

<ChangeTo[変化先スキルのID]: 条件式>

変化先スキルのID の部分には、その条件を満たした際に変化する先のスキルIDを設定してください。
たとえば、 1 と設定したら、条件を満たしたときにスキルが通常攻撃に変化します。

条件式 の部分にはJavaScriptで条件式を記述することができます。
イメージとしては、スキル設定のダメージ計算式の入力欄と同じような感じです。
a という変数にスキル使用者の情報が入っています(ただし、 b (相手の情報)は使えません)

以下のような使用イメージです。

# 30%の確率でスキル100番に変化
<ChangeTo[100]: Math.random() < 0.3>

# HPが25%未満のとき、スキル100番に変化
<ChangeTo[100]: (a.hp / a.mhp) < 0.25>

# ステートID: 4(デフォルトだと毒)のとき、スキル100番に変化
<ChangeTo[100]: a.isStateAffected(4)>

RGSS3のときに残りMP量に応じて技の回数が変わる〜みたいなものをつくっていたので、
それに代わるものを作りたいなぁと思って作りました٩(๑❛ᴗ❛๑)۶

プラグインのダウンロード

Torigoya_SkillChangeTo.js - スキル変化条件設定さん for MV

右クリック→「名前をつけて保存」したものを plugins フォルダに入れてご利用ください。

利用規約

RPGツクールMV(RPG Maker MV)内での使用の場合は自由に使用できます。
有償、改変配布など、制限項目はありません。ご自由にどうぞ。

RPGツクールMV小物プラグイン集

GitHubに丸投げしてた小物 についての簡易解説です。
1000000000番煎じ的なやつが結構多いです。。。

ターン消費なしスキルなどのまともなプラグインはこっちにあります。
鳥小屋.txt RPGツクールMVプラグイン

それぞれのプラグインは、右クリック→「名前をつけて保存」したものを plugins フォルダに入れてご利用ください٩(๑❛ᴗ❛๑)۶



小物プラグイン集更新履歴

  • 2016/3/20 「名前入力ダイアログプラグイン」で直後のメッセージがスキップ状態(決定キー押しっぱなし状態)と判定される問題を修正しました
  • 2016/1/25 「ステート追加スキルプラグイン」が「ステート追加/削除スキルプラグイン」になりました。「敵のスリップダメージ上限設定プラグイン」を追加。
  • 2016/1/13 「名前入力ダイアログプラグイン」に機能追加
  • 2016/1/5 「ステート追加スキルプラグイン」「WebStorageKeyにプレフィックス追加プラグイン」を追加
  • 2016/1/4 やっとまとめた

小物プラグイン一覧

Input.repeatウェイト設定プラグイン

かつてVXAce用に 高速Input.repeat?さん for RGSS3 として公開していたやつ。
そもそもRPGツクールMVではデフォルトでこの機能が実装されているので、そこの値をプラグイン設定から変更できるようにしたものです。

Torigoya_ChangeInputRepeatWait.js ダウンロード

武器は外せないようにするプラグイン

武器の変更はできるけど、武器無しにはできないようにするプラグインです。

Torigoya_NotRemoveWeapon.js ダウンロード

同じ名前の装備タイプなら同じものを装備できるようにするプラグイン

f:id:ru_shalm:20160104231214p:plain

こうやって同じ名前で装備タイプを設定したら…

f:id:ru_shalm:20160104231224p:plain

同じ名前の部分は同じ種類の装備のスロットとして使えるようになります。
装飾品とか2つくらい装備できるようにしたいじゃん?

Torigoya_SameEquipType.js ダウンロード

ファイル読み込み自動リトライプラグイン

【注意】v.1.3.0で動きません
電波クソすぎてファイルが読み込めなかった時に自動でリトライします。
おまけ機能として、音声が読み込めなかったらエラーにしないで無視する、みたいな設定もできます。

Torigoya_RetryLoad.js ダウンロード

名前入力ダイアログプラグイン

f:id:ru_shalm:20160113013602p:plain

  • 2016/3/20 直後のメッセージがスキップ状態(決定キー押しっぱなし状態)と判定される問題を修正しました

コンシューマ機じゃないんだから名前入力くらいキーボードで文字入力したい!(スマホならなおさら!)
プラグインコマンドに名前入力ダイアログ機能を追加します。

# アクター1番の名前を変更するダイアログを表示
InputNamePrompt 1

# アクター1番の名前を変更するダイアログを表示(文字数上限を5文字に)
InputNamePrompt 1 5

# アクター1番の名前を変更するダイアログを表示(文字数上限を5文字 + メッセージを独自のものに)
InputNamePrompt 1 5 名前を変更するのじゃ

表示メッセージや最大文字数のデフォルト値はプラグイン設定で変更できます。
また、一部だけ別のものにしたい場合はプラグインコマンドで指定可能です。

Torigoya_InputNamePrompt.js ダウンロード

セーブコマンドプラグイン

ページ移動しました → 【オートセーブ】セーブコマンドプラグイン for MV - 鳥小屋.txt

プラグインコマンドからセーブ/ロードの実行ができます。
オートセーブのゲームを作っているので作りました。

SaveCommand save 1       # スロット1にセーブを実行します。
SaveCommand save [1]     # 変数[1]番のスロットにセーブを実行します。
SaveCommand save last    # 前回ロード/セーブしたスロットにセーブを実行します。
SaveCommand load 1       # スロット1からロードを実行します。
SaveCommand load [1]     # 変数[1]番のスロットからロードを実行します。
SaveCommand load last    # 前回ロード/セーブしたスロットからロードを実行します。
SaveCommand remove 1     # スロット1のセーブデータを削除します。
SaveCommand remove [1]   # 変数[1]番のスロットのセーブデータを削除します。
SaveCommand remove last    # 前回ロード/セーブしたスロットのセーブデータを削除します。

プラグインコマンドから SaveCommand save last をあちこちで呼び出せば、完全にオートセーブですね!
セーブ機能はいいんですが、ロード機能は場面によってバグりやすいので使いドコロに注意です。

Torigoya_SaveCommand.js ダウンロード

ステート追加/削除スキルプラグイン

使うと指定したステータス異常になるスキルを追加できるようにするプラグイン。
威力高いけど使うと自分が毒になってしまう〜〜みたいなものが作れます。戦闘不能を付ければ自爆スキルだね。

<AddState: 1>

スキルのメモ欄に↑のように設定するとステートの1番が付与されます。
逆にステートを消したい!みたいな場合は下のようにメモ欄に書いてください。

<RemoveState: 4>

Torigoya_AddStateSkill.js ダウンロード

WebStorageKeyにプレフィックス追加プラグイン

ツクールMVではWeb版プレイでのデータ保存先はブラウザのLocalStorageという機能を使っています。
このLocalStorageでは保存領域はドメインごとに別の場所になるように分けられています。
(例えば http://toripota.com/game1http://toripota.com/game2 では両方とも「http://toripota.com」というドメインで公開されているため、ゲーム自体は別物でも保存領域は同じ場所になります。)

ツクールMVはなぜか全ゲーム同じキー名(ファイル名)でセーブをしようとするので、もれなくセーブデータが一覧に混ざります。
セーブ一覧に他のゲームのセーブデータが表示されるのはどう考えてもジャマなので、このプラグインでは保存時のキー名(ファイル名)に、作者の好きな文字列を追加して、混ざるのを防止できるようにします。

Torigoya_AddPrefixToStorageKey.js ダウンロード

敵のスリップダメージ上限設定プラグイン

「毒のダメージは最大HPの4割にしよう!」→「アアアア、ボスが即死ィイィイ!」

という問題を解消します。敵キャラのメモ欄で毒などで受ける最大スリップダメージを設定できます。

<MaxSlipDamage: 100>  # 毒などで受けるダメージを最大100までにする

Torigoya_MaxSlipDamageSetting.js ダウンロード


利用規約

RPGツクールMV(RPG Maker MV)内での使用の場合は自由に使用できます。
有償、改変配布など、制限項目はありません。


おまけ

突然ですがここでRuたんの2015年を振り返ってみましょう

ついに2015年も完全終了ということで、恒例?の1年を振り返るコーナーです。 去年の今頃は熱が39度を突破し、なんかすごいことになっていたのですが今年は無事でした。やったね。

そもそも

2015年、1本もゲーム公開してねー!!!死んだ!!

ゲーム制作をするブログなのでゲーム作ってないの致命傷です。。。。 シューショクするときに「おしごとに全力ぶっぱだったからゲーム作れてないよ><」という言い訳はしないと決めたので、来年こそはがんばるぞい!

2015年回想記

2月 favlack

今や世界を牛耳るグループ用チャットサービス『Slack』のStar(ふぁぼ)をまとめるシステムをつくるぞ!と作ったもの。 SlackのRealTimeMessaging APIが登場したおかげで、こういうシステムが割と楽に作れるようになったのでオススメです。

が、Starの通知APIが廃止された(自分の☆しか届かなくなった)ので、favlackは死亡しました(チーン

リアクション機能はリアルタイムに通知されるので、今後はそちらにご期待ください。

8月 Potmum

僕はここ数年、メモアプリに飢えてます。で、自作するぞ!の流れになっているのがここの部分。

ぼくのVue.jsの使い方が全然モダンじゃないので何とかしようと思い、一旦JS周りの扱いを整理したところまで現在進んでます。まだちゃんとComponent化していないので、そっちの作業を進めながら肝心のエディタ部分を頑張って行きたいかなぁ。さすがにただのtextareaのままなのはつらい。

あと会社のひとに権限管理機能とか付けてよ、みたいに言われてちょっとやったんですが、権限管理めっちゃ難しいわ……ちょっと考えるだけで要件が口からどんどん出てくる……

10月〜 RPGツクールMV

ついにきたぞ!RPGツクール最新作「RPGツクールMV」!

ココ最近のRPGツクールはRubyが載っかっていましたが、今作は中身がJavaScriptになり、Pixi.jsだったりNW.jsだったりとWeb系エンジニアを熱くさせる何かをたくさん秘めていますね。僕も盛り上がってます。

というわけで、以下のリポジトリにプラグインのコードを公開しています。わざわざ記事を書くほどでも無い小物が少しずつ増えてきているので、もうちょっと数が増えたらまとめ記事書こうかなぁ。

12月 RubyKaigi

ティッシュ配りをしにいきました。

RubyKaigiの参加は初めてだったのでドキドキな感じでした。ぼっち極まりすぎて懇親会、挙動不審ですみませんでした…

Opalの未来明るくなってきたな!?

12月 AdventCalendar

今年は2つ書きました。

RPGツクールMV Advent Calendar 2015』では本来JavaScriptで書く必要があるプラグインをRubyで書いてOpalで変換する話を書きました。

Opal、初めて見た時は正直「ウケるww」ぐらいの感覚だったんですけど、すごい中身よく出来てて意外と使えるタイミングあるんじゃないかな……とか思ってしましました。プロダクト採用は別として。

ぼくはRPGツクールMVのランタイムをOpalで全部書きなおして、偽RGSS4をつくることを夢見ております。rpg_core.jsの移植中に挫折してる。

ドワンゴ Advent Calendar 2015』では社内非公式Slackまとめサービス『Togelack』をつくった話を書きました。

想像以上の反響があってお〜という感じになってます。なんかオープンなSlack用にいろんなチームから登録できるTogelack v2があったら良さそう!というのを脳内で妄想しているので、10000000年ほどお待ちください!

2016年 次回予告

  • 近いうちにRPGツクールMVでつくったゲームをリリースします(たぶん)
    • やりたかったベースの部分は準備できたので、後はぼくが頑張れば完成させられそう
    • 夢広げすぎて完成する気配が無かったので、規模をめっちゃ絞ったw
    • エターなったよ :)
  • RPGツクールMVのプラグインもうちょっと書きます
    • VX Aceのときの反省点として「1つのスクリプトにいろんな機能を実装すると色々つらい」があったので、100行くらいのプラグインをいっぱい作りたい
    • というか、Macで作業できるの幸せすぎる…
  • Androidアプリ書けるようになる
    • お仕事が困る

去年「スマホブラウザゲーでがっつりしたの作るぞ!」みたいに言ってたのがRPGツクールMVで実現されてしまいそうなので、来年もしばらくはRPGツクールMVにコミットしていきたいかなぁと思っています。

一方で僕はネイティブアプリから目をそらしすぎなので、そろそろAndroid Studioと向きあおうかな…という気もします。
いや、iOSデベロッパー登録してお金払ってるのにiOSアプリ書いてないのも何とかしたほうがよさそうですが。。。。

あとは僕が個人でホスティングしてるWebサービスを全然作ってないので、来年はそこも頑張りたい!
小物をたくさん出していけるようにするぞ!!!٩(๑❛ᴗ❛๑)۶

戦闘中セリフ表示さん for MV【2017/02/16更新】

f:id:ru_shalm:20151105024936p:plain

  • 2017/02/16 他のプラグインコマンドが正常に動作しなくなる問題を修正しました。
  • 2016/11/23 YEP_BattleEngineCore併用時に動作しない問題を修正しました。
  • 2016/11/10 YEP_VictoryAftermath併用時に戦闘終了セリフの表示処理が何度も実行されてしまう問題を修正しました。
  • 2016/09/19 戦闘開始/終了時に行動不能な子は喋らないように修正しました。
  • 2016/06/04 「身代わり」に対応しました。
  • 2016/01/31 「ターン消費なしスキルさん」との競合を修正。両方とも更新が必要です><;
  • 2015/11/14 吹き出しのX/Y座標を調整できる設定メモ項目を追加しました
  • 2015/11/07 Recoveryのパラメータを一部追加 / RecoveryByRivalを追加 / 外部プラグインとの組み合わせについて追記

プラグイン概要

戦闘中に吹き出しでセリフを表示するようにします。 戦闘開始時、攻撃時、味方回復時、被弾時、死亡時、勝利時などに対応しています。

使用方法

f:id:ru_shalm:20151105024342p:plain

アクター / 敵キャラのメモ欄にいっぱい設定します。 <Speech/○○: ここにセリフ> といったフォーマットです。

以下のような設定項目があります。

■ 戦闘開始時(開始セリフはランダムでだれか1人だけ喋ります)
 \n と書くとそこで改行されます。
<Speech/Start:一気に決める!\n……よな?>

■ スキル使用時(\1 の部分が技名に置き換わります)
<Speech/Skill:唸れ、\1!>

■ スキルID: 1使用時( , で区切ることで複数登録できます。,自体をセリフに使う場合は前に \ を付けてね)
<Speech/Skill[1]:はっ!, てい!, くらえ!, Hey\, Attack!>

■ アイテム使用時(\1 の部分が技名に置き換わります)
<Speech/Item:\1 を使う!>

■ アイテムID: 1使用時
<Speech/Item[1]:ポーションだ!>

■ 勝利時(勝利セリフはランダムでだれか1人だけ喋ります)
<Speech/Victory:やったぜ!>

■ ダメージ時
<Speech/Damage:うわっ!, ちっ!>

■ 味方を身代わりしたとき
<Speech/Substitute: させない!>

■ 味方ID: 1を身代わりしたとき(\1 の部分が身代わりしてあげた人の名前に置き換わります)
<Speech/Substitute[1]: \1は俺が守る!>

■ 味方に身代わりしてもらったとき
<Speech/Protected: ごめん!>

■ 味方ID: 1に身代わりしてもらったとき(\1 の部分が身代わりしてくれた人の名前に置き換わります)
<Speech/Protected[1]: \1!?>

■ 味方ID: 1による回復時(\1 の部分が回復した人の名前に置き換わります)
<Speech/Recovery[1]:ありがとう、\1>

※自分がアクターの場合はアクターID、敵キャラの場合は敵キャラIDを指定します
■ 味方による回復時(自分で回復したときは喋りません)
<Speech/Recovery:ありがとな!, 助かる!>

■ 味方ID: 1による回復時(\1 の部分が回復した人の名前に置き換わります)
<Speech/Recovery[1]:ありがとう、\1>

※自分がアクターの場合はアクターID、敵キャラの場合は敵キャラIDを指定します

■ 対戦相手による回復時
<Speech/RecoveryByRival:もらった!>

■ 対戦相手ID: 1による回復時(\1 の部分が回復した人の名前に置き換わります)
<Speech/RecoveryByRival[1]:なんのつもりだ、\1!>

※自分がアクターの場合は敵キャラID、敵キャラの場合はアクターIDを指定します

■ 敵の攻撃がミスのとき
<Speech/Miss:危ない、危ない>

■ 敵の攻撃回避時(省略するとミスのセリフが流用されます)
<Speech/Evasion:避けた!>

■ 敵の魔法回避時(省略すると回避 or ミスのセリフが流用されます)
<Speech/MagicEvasion:見破った!>

■ 敵の攻撃をカウンターするとき
<Speech/Counter:返すぜ!>

■ 死んだとき
<Speech/Dead:ちくしょう…>

全て設定する必要はないです。設定しなかった部分については単に喋らなくなります。
なので、喋って欲しい部分だけ設定してください。

プラグインのダウンロード

Balloon in Battle MV - 戦闘中セリフ表示さん for MV

右クリック→「名前をつけて保存」したものを plugins フォルダに入れてご利用ください。

他プラグインとの組み合わせについて

YEP.3 – Battle Engine Core
プラグインの並び順により競合が発生します。 YEP.3 - Battle Engine Coreより下に、セリフ表示さんプラグインを設定してください。

利用規約

RPGツクールMV(RPG Maker MV)内での使用の場合は自由に使用できます。
改変配布などの制限項目はありません。

余談

イベント戦用などに特殊なスイッチがONのとき〜みたいな条件も付けたかったのですが、ちょっとメモ欄に無理が生じそうなのでそれはまた別の機会に…
そこまでやりたくなったらセリフ設定ツールも込みでつくろう٩(๑❛ᴗ❛๑)۶