新規記事の投稿を行うことで、非表示にすることが可能です。
2019年05月16日
プラグイン/条件付きシリーズ(戦闘関連)
本日ご紹介するプラグインは、条件付きシリーズ(Yana様作)です。
条件を付けていろいろできるプラグインで、ツクールのデフォルト状態では実現が難しいものが多いです。
条件付き○○ベース ver1.07
共通事項である「条件部分」を定義したコアプラグインだそうです。
要するにこれがないと条件の定義ができないということです。
条件付き追加効果 ver1.04
スキルやアイテムの発動後に、追加スキルやアイテムを発動する条件を設定するもののようです。
最近ソシャゲでもよくある、特定条件で追加効果が発動するようなアレですね。
条件付きスキル&アイテム変化 ver1.04
スキルやアイテムを条件付きで別のスキルやアイテムに変更します。
読んで字の如くで、「閃きのようなこともできます」とのことです。合成システムとか作れそうですね。
条件付きドロップ ver1.04
条件を満たすと追加されるドロップアイテムや経験値、お金などを設定できます。
変数やスイッチも使えるので、クエストを受けているときだけドロップする、とか出来そうですね。
フェイズスキル特徴 ver1.06
バトル開始時やターン開始時、ターン終了時などの特定のフェイズでスキルを発動する特徴を
設定できるようになります。
先制して発動するスキルなどを設定することができるようです。
スキル使用条件 ver1.03
スキルやアイテムに細かい使用条件を設定できるようにします。
私がChainTowerで使ったのはこちらです。一応他のプラグインも併用してます。
行動決定前及びイベント判定前スイッチオン ver1.01
行動決定前やイベント判定前に条件に従ってスイッチを操作します。
戦闘時に条件を満たした場合にスイッチを入れる、といったことができるようです。
何故このプラグインを紹介しようと思ったのかと言えば、今回ChainTowerで私が使ったからに他ありません。
プラグインを入れてメモ欄にちょっと文章入れただけであっという間に成功したので、これは楽でいい!と衝動的に紹介しておりますw
ちなみに私が使ったのは、昨日も言及した「詠唱システム」です。
1.詠唱をスキルとして使用
2.必要回数の詠唱を行うことで、詠唱が必要なスキルが使えるようになる
まずはデフォルトのMVでやってみたんですが、コモンイベントとスイッチ&変数使えば簡単に行けるだろ!とタカを括ってやってみた結果、いくつかの問題点が発生しました。
まずは軽く作った部分。今回は神聖術の詠唱部分なので、名前は「神聖術詠唱」です。
まず詠唱したのが誰かを判断していないと、詠唱スキルが重複してしまうため、コモンイベントを作成。
ちなみに、変数にスクリプトを指定して代入し、「$gameParty.inBattle() ? BattleManager._subject._actorId : $gameParty.menuActor()._actorId」と入力すると、スキルの使用者IDを変数へ格納してくれます。ものすごく便利!
--内容--
◆変数の操作:#0113 神聖術詠唱者ID = $gameParty.inBattle() ? BattleManager._subject._actorId : $gameParty.menuActor()._actorId
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(1)
----------
次にスキルを作成。
----------
詠唱(1ターン目用):普通に習得。使用すると「詠唱(1)」というステートが使用者に付き、詠唱(1ターン目用)を忘れる。上のコモンイベントを実行。
詠唱(2ターン目用):「詠唱(1)」ステートにて習得。「詠唱(2)」というステートが付き、詠唱(2ターン目用)を忘れる。
・
・
・
詠唱(5ターン目用):「詠唱(4)」ステートにて習得。「詠唱(5)」というステートが付き、詠唱(4ターン目用)を忘れる。
要詠唱1ターンのスキル〜要詠唱5ターンのスキル
----------
問題点1。
詠唱したまま戦闘が終了した場合、詠唱スキルが消滅する。
当たり前ですね。詠唱(1ターン目用)にて詠唱忘れてますからw
また、複数のアクターが同じ詠唱を行った場合、ごちゃごちゃになってしまうのを防ぐため、同時に同種の詠唱を行えないように設定したいと考える。
解決法1。
忘れていることをMVに理解させるためスイッチを使用。
最初に使うのは「詠唱(1ターン目)」なので、上のコモンイベントを以下のように修正。
--内容--
◆スイッチの操作:#4999 誰か詠唱している = ON
◆条件分岐:神聖術詠唱者ID = 0
◆変数の操作:#0113 神聖術詠唱者ID = $gameParty.inBattle() ? BattleManager._subject._actorId : $gameParty.menuActor()._actorId
◆
:それ以外のとき
◆文章:なし, ウィンドウ, 下
: : すでに\N[\V[113]]が神聖術詠唱を始めている。
: : そのため詠唱に失敗してしまった!
◆
:分岐終了
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(1)
----------
さらに、別のコモンイベントを作成。
--発動条件--
トリガー:並列処理/スイッチ:#4999 誰か詠唱している
--内容--
◆条件分岐:神聖術詠唱者ID ≠ 0
◆変数の操作:#0113 神聖術詠唱者ID = 0
◆スキルの増減:{神聖術詠唱者ID}, + 神聖術詠唱(1)
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(2)
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(3)
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(4)
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(5)
◆
:分岐終了
◆スイッチの操作:#4999 誰か詠唱している = OFF
----------
問題点2。
要詠唱1ターンのスキル〜要詠唱5ターンのスキルの設定でステートで習得させてしまうと、詠唱さえ覚えていれば使えることになってしまう。
また、逆に通常の方法で覚えている場合、詠唱を行わなくても使える状態となってしまう。
解決法2。
上記の[スキル使用条件 ver1.03]を導入し、条件を定義して、たとえ習得していたとしても選択不可の状態にする。
また、習得していなければ当然「選択不可の状態」ですらリストに現れなくなる。
問題点3。
詠唱1を使った後、詠唱1があった場所とは全然違う場所に詠唱2が現れる。
解決法3。
しぐれん様の[Mano_SkillSort.js]を使わせて頂き、ソートをID順に強制変更。
以上の処理で何とか上手くできました。
本来であれば、数ターン問答無用で詠唱(行動不能)し、必要ターン経過後に強制発動してくれる方がプレイヤーとしては馴染み深いのでしょうが、正直そっちは「強制発動」の方で苦労して挫折しました。
やってみたのは、
・詠唱必要ターン分、行動不能ステート「詠唱」を付与
・「詠唱」ステートより1ターン長く設定した「自動戦闘」ステートを作成し、該当魔法以外を封印
これらを両方ステート付与したら行けるんじゃないかなぁと思ったんですが、何故か自動戦闘ステートが一切仕事しないまま終了するという意味がわからない状況になったため諦めましたw
発動分の1ターンの差を2ターンにしてみたりして頑張ってみたんですけどね……。
一応こちらも何とかやれないか探ってみて、上手く行ったらまた報告しようと思います。
さて、次回は多分進捗報告になると思います。
進捗が報告できないようなら、またプラグイン紹介します!
条件を付けていろいろできるプラグインで、ツクールのデフォルト状態では実現が難しいものが多いです。
条件付き○○ベース ver1.07
共通事項である「条件部分」を定義したコアプラグインだそうです。
要するにこれがないと条件の定義ができないということです。
条件付き追加効果 ver1.04
スキルやアイテムの発動後に、追加スキルやアイテムを発動する条件を設定するもののようです。
最近ソシャゲでもよくある、特定条件で追加効果が発動するようなアレですね。
条件付きスキル&アイテム変化 ver1.04
スキルやアイテムを条件付きで別のスキルやアイテムに変更します。
読んで字の如くで、「閃きのようなこともできます」とのことです。合成システムとか作れそうですね。
条件付きドロップ ver1.04
条件を満たすと追加されるドロップアイテムや経験値、お金などを設定できます。
変数やスイッチも使えるので、クエストを受けているときだけドロップする、とか出来そうですね。
フェイズスキル特徴 ver1.06
バトル開始時やターン開始時、ターン終了時などの特定のフェイズでスキルを発動する特徴を
設定できるようになります。
先制して発動するスキルなどを設定することができるようです。
スキル使用条件 ver1.03
スキルやアイテムに細かい使用条件を設定できるようにします。
私がChainTowerで使ったのはこちらです。一応他のプラグインも併用してます。
行動決定前及びイベント判定前スイッチオン ver1.01
行動決定前やイベント判定前に条件に従ってスイッチを操作します。
戦闘時に条件を満たした場合にスイッチを入れる、といったことができるようです。
何故このプラグインを紹介しようと思ったのかと言えば、今回ChainTowerで私が使ったからに他ありません。
プラグインを入れてメモ欄にちょっと文章入れただけであっという間に成功したので、これは楽でいい!と衝動的に紹介しておりますw
ちなみに私が使ったのは、昨日も言及した「詠唱システム」です。
1.詠唱をスキルとして使用
2.必要回数の詠唱を行うことで、詠唱が必要なスキルが使えるようになる
まずはデフォルトのMVでやってみたんですが、コモンイベントとスイッチ&変数使えば簡単に行けるだろ!とタカを括ってやってみた結果、いくつかの問題点が発生しました。
まずは軽く作った部分。今回は神聖術の詠唱部分なので、名前は「神聖術詠唱」です。
まず詠唱したのが誰かを判断していないと、詠唱スキルが重複してしまうため、コモンイベントを作成。
ちなみに、変数にスクリプトを指定して代入し、「$gameParty.inBattle() ? BattleManager._subject._actorId : $gameParty.menuActor()._actorId」と入力すると、スキルの使用者IDを変数へ格納してくれます。ものすごく便利!
--内容--
◆変数の操作:#0113 神聖術詠唱者ID = $gameParty.inBattle() ? BattleManager._subject._actorId : $gameParty.menuActor()._actorId
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(1)
----------
次にスキルを作成。
----------
詠唱(1ターン目用):普通に習得。使用すると「詠唱(1)」というステートが使用者に付き、詠唱(1ターン目用)を忘れる。上のコモンイベントを実行。
詠唱(2ターン目用):「詠唱(1)」ステートにて習得。「詠唱(2)」というステートが付き、詠唱(2ターン目用)を忘れる。
・
・
・
詠唱(5ターン目用):「詠唱(4)」ステートにて習得。「詠唱(5)」というステートが付き、詠唱(4ターン目用)を忘れる。
要詠唱1ターンのスキル〜要詠唱5ターンのスキル
----------
問題点1。
詠唱したまま戦闘が終了した場合、詠唱スキルが消滅する。
当たり前ですね。詠唱(1ターン目用)にて詠唱忘れてますからw
また、複数のアクターが同じ詠唱を行った場合、ごちゃごちゃになってしまうのを防ぐため、同時に同種の詠唱を行えないように設定したいと考える。
解決法1。
忘れていることをMVに理解させるためスイッチを使用。
最初に使うのは「詠唱(1ターン目)」なので、上のコモンイベントを以下のように修正。
--内容--
◆スイッチの操作:#4999 誰か詠唱している = ON
◆条件分岐:神聖術詠唱者ID = 0
◆変数の操作:#0113 神聖術詠唱者ID = $gameParty.inBattle() ? BattleManager._subject._actorId : $gameParty.menuActor()._actorId
◆
:それ以外のとき
◆文章:なし, ウィンドウ, 下
: : すでに\N[\V[113]]が神聖術詠唱を始めている。
: : そのため詠唱に失敗してしまった!
◆
:分岐終了
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(1)
----------
さらに、別のコモンイベントを作成。
--発動条件--
トリガー:並列処理/スイッチ:#4999 誰か詠唱している
--内容--
◆条件分岐:神聖術詠唱者ID ≠ 0
◆変数の操作:#0113 神聖術詠唱者ID = 0
◆スキルの増減:{神聖術詠唱者ID}, + 神聖術詠唱(1)
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(2)
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(3)
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(4)
◆スキルの増減:{神聖術詠唱者ID}, - 神聖術詠唱(5)
◆
:分岐終了
◆スイッチの操作:#4999 誰か詠唱している = OFF
----------
問題点2。
要詠唱1ターンのスキル〜要詠唱5ターンのスキルの設定でステートで習得させてしまうと、詠唱さえ覚えていれば使えることになってしまう。
また、逆に通常の方法で覚えている場合、詠唱を行わなくても使える状態となってしまう。
解決法2。
上記の[スキル使用条件 ver1.03]を導入し、条件を定義して、たとえ習得していたとしても選択不可の状態にする。
また、習得していなければ当然「選択不可の状態」ですらリストに現れなくなる。
問題点3。
詠唱1を使った後、詠唱1があった場所とは全然違う場所に詠唱2が現れる。
解決法3。
しぐれん様の[Mano_SkillSort.js]を使わせて頂き、ソートをID順に強制変更。
以上の処理で何とか上手くできました。
本来であれば、数ターン問答無用で詠唱(行動不能)し、必要ターン経過後に強制発動してくれる方がプレイヤーとしては馴染み深いのでしょうが、正直そっちは「強制発動」の方で苦労して挫折しました。
やってみたのは、
・詠唱必要ターン分、行動不能ステート「詠唱」を付与
・「詠唱」ステートより1ターン長く設定した「自動戦闘」ステートを作成し、該当魔法以外を封印
これらを両方ステート付与したら行けるんじゃないかなぁと思ったんですが、何故か自動戦闘ステートが一切仕事しないまま終了するという意味がわからない状況になったため諦めましたw
発動分の1ターンの差を2ターンにしてみたりして頑張ってみたんですけどね……。
一応こちらも何とかやれないか探ってみて、上手く行ったらまた報告しようと思います。
さて、次回は多分進捗報告になると思います。
進捗が報告できないようなら、またプラグイン紹介します!
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
2019年05月15日
現在の進捗
長らく更新せずホントスミマセンデシタ……
RPGツクールは触っているのですが、正直更新しておりません。
というのも、金欠(なので働いている)なところに、ゲームをUPしているサーバーの年間料金を払うのを忘れておりまして(しかも今お金がないので払えない+最短でも今週いっぱいは無理なことが判明)=更新できない、という状況に陥っております。
というわけで、一応オフラインではありますが、作ったところを報告しておきます。
1.階層は15階まで作りました。
ただしテストプレイはヒマがなくてしてません。
2.現在はシステム面を改修中です。
今作っているのは、魔法や神聖術の「詠唱システム」です。
ゲームでの詠唱と言えば、
1.詠唱が必要なスキルを使用すると、数ターン行動不能になる
2.詠唱が終了したら効果が発動する
というものが一般的だと思うんですが、
RPGツクールMVにはそれが一切ありません。
多分ありません。よく調べてないけどデフォだと多分ない。
なのでこのシステムも自作しなければいけないのですが、自作するにあたり、ほぼ挫折した挙句、
1.詠唱をスキルとして使用
2.必要回数の詠唱を行うことで、詠唱が必要なスキルが使えるようになる
という面倒なシステムが出来上がりました。
しかも現状、同種の詠唱を誰かが行っている場合、別のキャラは詠唱できないという……
その辺を何とかするためには、コモンイベントを使ってがっつり作り込むか、プラグイン等を誰かに作ってもらうかのどちらかになりますね……。
まぁ、正直2人以上が同時に詠唱することができないシステムにすると思います。
最大4人のPTのうち、同種の詠唱を2人以上するって、個人的に面白くないような気もするので。
3.絵は相変わらずほとんど増えてないです。
相変わらずイラスト類は随時募集中です。
誰かガンガン描いてくれる人がいるとすごく助かるんですが……チラッ
以上、現状の報告でした。
次回は前回の予告通りプラグイン紹介をしようと思います。
ホント更新遅くて申し訳ありません……
RPGツクールは触っているのですが、正直更新しておりません。
というのも、金欠(なので働いている)なところに、ゲームをUPしているサーバーの年間料金を払うのを忘れておりまして(しかも今お金がないので払えない+最短でも今週いっぱいは無理なことが判明)=更新できない、という状況に陥っております。
というわけで、一応オフラインではありますが、作ったところを報告しておきます。
1.階層は15階まで作りました。
ただしテストプレイはヒマがなくてしてません。
2.現在はシステム面を改修中です。
今作っているのは、魔法や神聖術の「詠唱システム」です。
ゲームでの詠唱と言えば、
1.詠唱が必要なスキルを使用すると、数ターン行動不能になる
2.詠唱が終了したら効果が発動する
というものが一般的だと思うんですが、
RPGツクールMVにはそれが一切ありません。
なのでこのシステムも自作しなければいけないのですが、自作するにあたり、ほぼ挫折した挙句、
1.詠唱をスキルとして使用
2.必要回数の詠唱を行うことで、詠唱が必要なスキルが使えるようになる
という面倒なシステムが出来上がりました。
しかも現状、同種の詠唱を誰かが行っている場合、別のキャラは詠唱できないという……
その辺を何とかするためには、コモンイベントを使ってがっつり作り込むか、プラグイン等を誰かに作ってもらうかのどちらかになりますね……。
まぁ、正直2人以上が同時に詠唱することができないシステムにすると思います。
最大4人のPTのうち、同種の詠唱を2人以上するって、個人的に面白くないような気もするので。
3.絵は相変わらずほとんど増えてないです。
相変わらずイラスト類は随時募集中です。
誰かガンガン描いてくれる人がいるとすごく助かるんですが……チラッ
以上、現状の報告でした。
次回は前回の予告通りプラグイン紹介をしようと思います。
ホント更新遅くて申し訳ありません……
2018年11月13日
スクリプトの使い方について
またしても更新できずすみません。
体調を崩してダウンしておりました。
そんなわけで、今回はスクリプトの使い方です。
私はコピペで簡単に実装できるものしか紹介しませんが、スクリプトを使いこなせる人は、ゲーム全部をこのスクリプトのみでやってしまえると言っても過言ではないと思います。
詳しくは、RPGツクールVXAce & MVスクリプトwikiとプラグインなどを参照してみて下さい。
では始めます。
・別のイベントのセルフスイッチをONにする
セルフスイッチを操作するやり方は、
1.イベントコマンド3P目の右下、スクリプトを開きます。
2.そこに、
key = [MAPID, イベントID, "セルフスイッチID"]
$gameSelfSwitches.setValue(key, true)
と入力するだけです。ちなみにOFFにする場合は最後のtrueをfalseにすればできます。
また、MAP名を変更、並び順を変えてしまったなどの理由でIDがわからないという場合には、ちょっと面倒ですが以下の手順で確認が可能です。
あ、先に注意しておきますが、絶対に開いたものを編集しようなどとは考えないで下さい。
失敗してしまうと、作った作品をツクールが読み込んでくれなくなり、一切アクセスできなくなります。
また、自信のない人は素直にスイッチや変数を使うことをお勧めします。
自信がないけどどうしてもやりたい人は、自信のある方に手伝ってもらうか、最初からMAPIDをMAP名の中に入れて作成して下さい。
1.プロジェクトのフォルダを開く
2.Date>MapInfos.jsonを右クリック→プログラムから開く→メモ帳などのテキストエディタで開く
3.Ctrl+FでMAP名を検索する。すると、
{"id":3,"expanded":true,"name":"MAP名","order":82,"parentId":0,"scrollX":534,"scrollY":318.5}
のようにヒットするはずなので(なければおかしいので、正しいMAP名か確認して下さい)、"id":数字,"←この数字を探して下さい。この数字がMAPIDです。
また、イベントIDを確認するのは比較的簡単です。
1.該当MAPのイベントコマンドから、移動ルートの設定を開く。
2.最初「プレイヤー」となっている場所(移動するキャラの指定)をクリックする。
3.並び順は必ず「プレイヤー」「このイベント」、続けて001から順に羅列されるので、該当のイベントまでを数えることでIDを知ることができます。途中でイベント名を変えてないイベントがあったらすぐにわかりますね。
まぁ、ぶっちゃけスクリプトのような上級操作をしなくてもできるのがツクールの強みではあるんですが、
正直スクリプトを使った方が色々な意味で節約になる、と個人的には思っています。
今回作っている作品では、最終的に変数やスイッチを極力節約する必要があるため、セルフスイッチを別イベントから直接操作する、ということを頻繁にやっています。
ちょっと上級者向けかなぁと思いつつ、でもまぁこのくらいなら、スイッチや変数の操作と変わらないですし、理解できないようなら本日の項目は忘れてしまっても構わない範囲です。
使い方としては、
1.複数ある選択の中でひとつ選んだら、選ばなかった方はもう選べない、という場合。
例1.2個ある剣のうちどちらかを持って行ける(選ばなかった方はダメ)
たった2個しかない選択肢なのに、わざわざスイッチだの変数だの使いたくないですよね?
もちろん、スイッチでやれば簡単に解決する問題ではあるんですが。
2.よそで何かをしてみたら、特定のイベントが別の挙動を起こすように設定したい場合
例2.母親に声をかけたら激怒しており、原因である父親が怖がる
もちろん父親の方のセルフスイッチを操作するわけですが、こんなことのためにスイッチ1つ消費ってもったいなくないですか?
まぁ他にも使い道はあると思いますが、こんなところです。
また、条件分岐の設定の「スクリプト」に、
$gameSelfSwitches.value([MAPID, イベントID, 'スイッチID'])
と入力することで、セルフスイッチがONである時だけ実行するという設定も作れます。
さっきの例1.2の逆バージョンもできるということで、一応覚えて損はないと思います。
そんなわけで、次回は(また明日とか言って明日じゃないと困るので)またプラグインのご紹介です。
体調を崩してダウンしておりました。
そんなわけで、今回はスクリプトの使い方です。
私はコピペで簡単に実装できるものしか紹介しませんが、スクリプトを使いこなせる人は、ゲーム全部をこのスクリプトのみでやってしまえると言っても過言ではないと思います。
詳しくは、RPGツクールVXAce & MVスクリプトwikiとプラグインなどを参照してみて下さい。
では始めます。
・別のイベントのセルフスイッチをONにする
セルフスイッチを操作するやり方は、
1.イベントコマンド3P目の右下、スクリプトを開きます。
2.そこに、
key = [MAPID, イベントID, "セルフスイッチID"]
$gameSelfSwitches.setValue(key, true)
と入力するだけです。ちなみにOFFにする場合は最後のtrueをfalseにすればできます。
また、MAP名を変更、並び順を変えてしまったなどの理由でIDがわからないという場合には、ちょっと面倒ですが以下の手順で確認が可能です。
あ、先に注意しておきますが、絶対に開いたものを編集しようなどとは考えないで下さい。
失敗してしまうと、作った作品をツクールが読み込んでくれなくなり、一切アクセスできなくなります。
また、自信のない人は素直にスイッチや変数を使うことをお勧めします。
自信がないけどどうしてもやりたい人は、自信のある方に手伝ってもらうか、最初からMAPIDをMAP名の中に入れて作成して下さい。
1.プロジェクトのフォルダを開く
2.Date>MapInfos.jsonを右クリック→プログラムから開く→メモ帳などのテキストエディタで開く
3.Ctrl+FでMAP名を検索する。すると、
{"id":3,"expanded":true,"name":"MAP名","order":82,"parentId":0,"scrollX":534,"scrollY":318.5}
のようにヒットするはずなので(なければおかしいので、正しいMAP名か確認して下さい)、"id":数字,"←この数字を探して下さい。この数字がMAPIDです。
また、イベントIDを確認するのは比較的簡単です。
1.該当MAPのイベントコマンドから、移動ルートの設定を開く。
2.最初「プレイヤー」となっている場所(移動するキャラの指定)をクリックする。
3.並び順は必ず「プレイヤー」「このイベント」、続けて001から順に羅列されるので、該当のイベントまでを数えることでIDを知ることができます。途中でイベント名を変えてないイベントがあったらすぐにわかりますね。
まぁ、ぶっちゃけスクリプトのような上級操作をしなくてもできるのがツクールの強みではあるんですが、
正直スクリプトを使った方が色々な意味で節約になる、と個人的には思っています。
今回作っている作品では、最終的に変数やスイッチを極力節約する必要があるため、セルフスイッチを別イベントから直接操作する、ということを頻繁にやっています。
ちょっと上級者向けかなぁと思いつつ、でもまぁこのくらいなら、スイッチや変数の操作と変わらないですし、理解できないようなら本日の項目は忘れてしまっても構わない範囲です。
使い方としては、
1.複数ある選択の中でひとつ選んだら、選ばなかった方はもう選べない、という場合。
例1.2個ある剣のうちどちらかを持って行ける(選ばなかった方はダメ)
たった2個しかない選択肢なのに、わざわざスイッチだの変数だの使いたくないですよね?
もちろん、スイッチでやれば簡単に解決する問題ではあるんですが。
2.よそで何かをしてみたら、特定のイベントが別の挙動を起こすように設定したい場合
例2.母親に声をかけたら激怒しており、原因である父親が怖がる
もちろん父親の方のセルフスイッチを操作するわけですが、こんなことのためにスイッチ1つ消費ってもったいなくないですか?
まぁ他にも使い道はあると思いますが、こんなところです。
また、条件分岐の設定の「スクリプト」に、
$gameSelfSwitches.value([MAPID, イベントID, 'スイッチID'])
と入力することで、セルフスイッチがONである時だけ実行するという設定も作れます。
さっきの例1.2の逆バージョンもできるということで、一応覚えて損はないと思います。
そんなわけで、次回は(また明日とか言って明日じゃないと困るので)またプラグインのご紹介です。
2018年11月09日
昨日投下するはずだったプラグイン紹介
そんなわけで、今回も新しいプロジェクトで使うプラグインのご紹介です。
ちなみに新しいプロジェクトは、ある程度形ができたら公開します。一昨日も言ったけど。
「7日目.イベント作成D」でもご紹介したプラグイン、「ペンギンの寝床」様、「選択肢拡張」です。
1.選択肢を7つ以上に増やす
実際の使い方としては、選択肢を複数並べるだけ。
本来6つしか並べられない選択肢を、画面の範囲を超えない限り無限に並べることができます。
2.選択肢の表示位置をpixel単位で設定する
プラグインコマンドを設定するだけで、選択肢の表示位置を「左」「中央」「右」以外で設定できます。
設定した1度だけなので、次から従来の「左」「中央」「右」にしたい場合も、戻し忘れたということがないのも嬉しいところです。逆に言えば同じところに設定するときは毎回同じプラグインコマンドが必要ですが……
・選択肢をそもそも表示するかどうか、選択不能にするかどうかの設定を細かく行う
正直私はこれを主目的に入れました。
もちろん、これを入れなくても条件などを設定すれば同じ物は作れるんですが、無限に近いパターン設定を全部しないといけないのは苦行以外の何でもないので……
ペンギンの寝床さんの該当ページではあまり触れられていないので、勝手に(正直自分のメモ帳代わりに)解説してしまおうと思います。
・ 半透明にして選択不能にする
└en(条件)選択肢文言
例:en(s[1])犯人は……
・表示させない
└if(条件)選択肢文言
例:if(s[2])真犯人は……
ちなみに、
このように設定した場合、
スイッチが全てOFFだった場合には、#1と#2の2つが表示されるものの、#1しか選択できません。
スイッチ1だけがONになった時も#1と#2の2つが表示され、#1と#2を押すことができます。
スイッチ1と2がONの場合にようやく3つの選択肢が全て表示され、また全ての選択肢が押せます。
そして条件の設定方法ですが、
(s[1]) :スイッチ1がONの時
(!s[1]) :スイッチ1がOFFの時
(v[1]==1) :変数1が1の時
(v[1]>=1) :変数1が1以上の時
(v[1]<=1) :変数1が1以下の時
(v[1]>1) :変数1が1より大きい時*
(v[1]<1) :変数1が1より小さい時*
(v[1]!==1) :変数1が1ではない時
基本的に変数に使うのは整数ですので、*の2つは使わないと思いますし実際使ったことがないのでもしかしたら間違えているかもしれませんが、概ねこんな感じです。
基本的に、スイッチは「s」、変数は「v」と表記し、その直後にスイッチや変数のIDを[]で括って入れます。
変数の場合はさらに追加で、その変数がどのような状態なのか、という条件を入れるわけですね。
また「!」という文字は、「〜〜ではない」という意味になります。スイッチならばsの前、変数ならば[]の後に入れます。
また、条件は以下のように複数設定も可能です。
en(v[4]!==12,v[4]!==13,v[4]!==14) :変数4が12,13,14のいずれかの場合半透明にする
en(v[4]!==17)if(s[41]) :スイッチ41がONであれば表示するが、変数4が17であれば半透明
始めたばかりの人でもこのくらいは理解してもらえるかなぁと期待を込めて、是非使っていただければと思い紹介しております。
ぶっちゃけ簡単ではありません(私もここまで理解するのにすごく苦労しました)ので、
試行錯誤しながら設定してみて下さい!
プログラムの言語をよく知ってる人なら簡単にできるんでしょうね……
さて、明日はちょっと上級編の「スクリプト」についてです。
とは言ってもコピペでできるような簡単なものしかやらないですけどね!
ちなみに新しいプロジェクトは、ある程度形ができたら公開します。一昨日も言ったけど。
「7日目.イベント作成D」でもご紹介したプラグイン、「ペンギンの寝床」様、「選択肢拡張」です。
1.選択肢を7つ以上に増やす
実際の使い方としては、選択肢を複数並べるだけ。
本来6つしか並べられない選択肢を、画面の範囲を超えない限り無限に並べることができます。
2.選択肢の表示位置をpixel単位で設定する
プラグインコマンドを設定するだけで、選択肢の表示位置を「左」「中央」「右」以外で設定できます。
設定した1度だけなので、次から従来の「左」「中央」「右」にしたい場合も、戻し忘れたということがないのも嬉しいところです。逆に言えば同じところに設定するときは毎回同じプラグインコマンドが必要ですが……
・選択肢をそもそも表示するかどうか、選択不能にするかどうかの設定を細かく行う
正直私はこれを主目的に入れました。
もちろん、これを入れなくても条件などを設定すれば同じ物は作れるんですが、無限に近いパターン設定を全部しないといけないのは苦行以外の何でもないので……
ペンギンの寝床さんの該当ページではあまり触れられていないので、勝手に(正直自分のメモ帳代わりに)解説してしまおうと思います。
・ 半透明にして選択不能にする
└en(条件)選択肢文言
例:en(s[1])犯人は……
・表示させない
└if(条件)選択肢文言
例:if(s[2])真犯人は……
ちなみに、
このように設定した場合、
スイッチが全てOFFだった場合には、#1と#2の2つが表示されるものの、#1しか選択できません。
スイッチ1だけがONになった時も#1と#2の2つが表示され、#1と#2を押すことができます。
スイッチ1と2がONの場合にようやく3つの選択肢が全て表示され、また全ての選択肢が押せます。
そして条件の設定方法ですが、
(s[1]) :スイッチ1がONの時
(!s[1]) :スイッチ1がOFFの時
(v[1]==1) :変数1が1の時
(v[1]>=1) :変数1が1以上の時
(v[1]<=1) :変数1が1以下の時
(v[1]>1) :変数1が1より大きい時*
(v[1]<1) :変数1が1より小さい時*
(v[1]!==1) :変数1が1ではない時
基本的に変数に使うのは整数ですので、*の2つは使わないと思いますし実際使ったことがないのでもしかしたら間違えているかもしれませんが、概ねこんな感じです。
基本的に、スイッチは「s」、変数は「v」と表記し、その直後にスイッチや変数のIDを[]で括って入れます。
変数の場合はさらに追加で、その変数がどのような状態なのか、という条件を入れるわけですね。
また「!」という文字は、「〜〜ではない」という意味になります。スイッチならばsの前、変数ならば[]の後に入れます。
また、条件は以下のように複数設定も可能です。
en(v[4]!==12,v[4]!==13,v[4]!==14) :変数4が12,13,14のいずれかの場合半透明にする
en(v[4]!==17)if(s[41]) :スイッチ41がONであれば表示するが、変数4が17であれば半透明
始めたばかりの人でもこのくらいは理解してもらえるかなぁと期待を込めて、是非使っていただければと思い紹介しております。
ぶっちゃけ簡単ではありません(私もここまで理解するのにすごく苦労しました)ので、
試行錯誤しながら設定してみて下さい!
プログラムの言語をよく知ってる人なら簡単にできるんでしょうね……
さて、明日はちょっと上級編の「スクリプト」についてです。
とは言ってもコピペでできるような簡単なものしかやらないですけどね!
2018年11月07日
折角なので
初心者にでも簡単に作れるようなゲームを作ってみよう!
というコンセプトのもと、ChainTowerとは別に、以前から作っていたプロジェクトを引っ張り出して来ました。
ちなみにChainTowerは並行してちゃんと作ってるのでご安心下さい。ただ今週は忙しくて手が付けられないですけど。
コンセプト通り、基本的にはあくまで極力ではありますが、以下の通りの縛りを自らに課しております。
・プラグインは必要最低限な簡単なものしか使わない。
・これは初心者の方はやらない方がいいです、というものは手を出さない。
・スクリプトで簡単に実装できるものはこのブログで解説しながら実装する。
ちなみに作品自体は、前に仲間同士で作ろう、と作っていたものなんですが、仲間が全員音信不通になるという憂き目にあったため、私自身がキレて一度やめました。
なので気兼ねなく使います。正直ChainTowerの片手間でできるような作り方しかしないので、
ザ・RPGツクール製!
といった感じになると思います。
ある程度出来たら、お試し版として公開しつつ作成する予定です。
そして今回紹介するのは、スモールオメガωさんのBootOpeningDemo。
よくある、タイトル画面の前にデモムービーを流したりするアレです。
個人的にSkipOKにしないと、ゲーム開始直後に必ず流れてスキップできないので、Skip出来るようにしました。そして画像はほとんど拾い物です。
開始地点さえちゃんと設定すれば、いつものRPGを作っている感覚でOPが作れます。
使っている人も多いと思いますが、一応紹介だけしておきます(今回のプロジェクトでも導入してるので)。
私の場合、いきなりタイトル画面になるのは何だか物足りないなぁという理由で導入しましたが、正直ないならないで全然問題ないけど、あるのとないのとでは見栄えが全然違うと思っております。
正直私は全部のゲームにこれ入れてます。
問題になりそうな点と言えば、
・SkipOKにしないとスキップできないので毎回起動時に必ずデモを見ないといけなくなる
・文章の表示に必ず\^を入れる
└入れないとSkipOKの場合そこでデモが止まり、クリックするとタイトルになる
くらいですかね?
あとはプラグイン作者様の注意書き見れば大抵大丈夫です。
明日からできるだけこのブログも忘れず更新するようにしますが、
……忘れてたらゴメンナサイ。
明日は、もうひとつ有用なプラグイン(実はすでに紹介してますが)を紹介しようと思います。
というコンセプトのもと、ChainTowerとは別に、以前から作っていたプロジェクトを引っ張り出して来ました。
ちなみにChainTowerは並行してちゃんと作ってるのでご安心下さい。ただ今週は忙しくて手が付けられないですけど。
コンセプト通り、基本的には
・プラグインは必要最低限な簡単なものしか使わない。
・これは初心者の方はやらない方がいいです、というものは手を出さない。
・スクリプトで簡単に実装できるものはこのブログで解説しながら実装する。
ちなみに作品自体は、前に仲間同士で作ろう、と作っていたものなんですが、仲間が全員音信不通になるという憂き目にあったため、私自身がキレて一度やめました。
なので気兼ねなく使います。正直ChainTowerの片手間でできるような作り方しかしないので、
ザ・RPGツクール製!
といった感じになると思います。
ある程度出来たら、お試し版として公開しつつ作成する予定です。
そして今回紹介するのは、スモールオメガωさんのBootOpeningDemo。
よくある、タイトル画面の前にデモムービーを流したりするアレです。
個人的にSkipOKにしないと、ゲーム開始直後に必ず流れてスキップできないので、Skip出来るようにしました。そして画像はほとんど拾い物です。
開始地点さえちゃんと設定すれば、いつものRPGを作っている感覚でOPが作れます。
使っている人も多いと思いますが、一応紹介だけしておきます(今回のプロジェクトでも導入してるので)。
私の場合、いきなりタイトル画面になるのは何だか物足りないなぁという理由で導入しましたが、正直ないならないで全然問題ないけど、あるのとないのとでは見栄えが全然違うと思っております。
正直私は全部のゲームにこれ入れてます。
問題になりそうな点と言えば、
・SkipOKにしないとスキップできないので毎回起動時に必ずデモを見ないといけなくなる
・文章の表示に必ず\^を入れる
└入れないとSkipOKの場合そこでデモが止まり、クリックするとタイトルになる
くらいですかね?
あとはプラグイン作者様の注意書き見れば大抵大丈夫です。
明日からできるだけこのブログも忘れず更新するようにしますが、
……忘れてたらゴメンナサイ。
明日は、もうひとつ有用なプラグイン(実はすでに紹介してますが)を紹介しようと思います。
2018年10月16日
Chain Tower進捗
Chain Tower(Ver.0.065)
・色々あったバグを修正。
・メインストーリー10Fクリアまで進めるように追加(今までは途中でおかしくなって進めなかった)
今後の展開として、
・システムの強化(特に職業周り)
・並行して、メンバーと相談しながらメインである塔内部の攻略システムを変更するかもしれません(もしかしたらレベルで、まだ未定です)。
ちなみにもし変更するのならば、という前提で
以前作っていた、「機械仕掛けの永遠輪廻」という作品のシステムを流用するかもしれません。
その場合は、皆が面倒がっていた2Fの攻略がかなり楽になる(かもしれない)予定です。
ちなみに現状の2Fに対するデメリット
・クリアのためのポイントがわかりにくい(テストプレイヤーA)
・特に〇〇〇をかけるところが全然わからない(テストプレイヤーB)
・いやいや〇〇〇〇がどこにあるかの方がわかりにくいでしょ(テストプレイヤーC)
・いやいやいやいや〇〇〇〇押した後に〇〇があるのわからずにそのままクリアしようとして変なところ飛ばされたのがキツかったわ(テストプレイヤーD)
現状2Fのメリット
・1回クリアした後はやり方わかってるのでさっくり進める(ABCD全員一致)
機械輪廻側デメリット
・1回クリアしてても、あの1マスづつ進むシステムだと進み方がノロいような(テストプレイヤーA)
機械輪廻側のメリット
・クリアのためのポイントがわかりやすい
まぁ、メンバーで話し合ってから決める予定ですが、
そうなると実は凍結していた機械輪廻の方のプロジェクトを再稼働しないといけないわけで。
……2プロジェクト同時進行になると結構時間が……(愚痴)
とりあえず、やるだけやってみますが、多分場合によってはまた機械輪廻側は凍結状態になるんだろうな……と予想しています。
・色々あったバグを修正。
・メインストーリー10Fクリアまで進めるように追加(今までは途中でおかしくなって進めなかった)
今後の展開として、
・システムの強化(特に職業周り)
・並行して、メンバーと相談しながらメインである塔内部の攻略システムを変更するかもしれません(もしかしたらレベルで、まだ未定です)。
ちなみにもし変更するのならば、という前提で
以前作っていた、「機械仕掛けの永遠輪廻」という作品のシステムを流用するかもしれません。
その場合は、皆が面倒がっていた2Fの攻略がかなり楽になる(かもしれない)予定です。
ちなみに現状の2Fに対するデメリット
・クリアのためのポイントがわかりにくい(テストプレイヤーA)
・特に〇〇〇をかけるところが全然わからない(テストプレイヤーB)
・いやいや〇〇〇〇がどこにあるかの方がわかりにくいでしょ(テストプレイヤーC)
・いやいやいやいや〇〇〇〇押した後に〇〇があるのわからずにそのままクリアしようとして変なところ飛ばされたのがキツかったわ(テストプレイヤーD)
現状2Fのメリット
・1回クリアした後はやり方わかってるのでさっくり進める(ABCD全員一致)
機械輪廻側デメリット
・1回クリアしてても、あの1マスづつ進むシステムだと進み方がノロいような(テストプレイヤーA)
機械輪廻側のメリット
・クリアのためのポイントがわかりやすい
まぁ、メンバーで話し合ってから決める予定ですが、
そうなると実は凍結していた機械輪廻の方のプロジェクトを再稼働しないといけないわけで。
……2プロジェクト同時進行になると結構時間が……(愚痴)
とりあえず、やるだけやってみますが、多分場合によってはまた機械輪廻側は凍結状態になるんだろうな……と予想しています。
2018年09月24日
Chain Tower進捗
Chain Tower(Ver.0.062)
ちょっと更新さぼってない?とか言われそうなので久しぶりに進捗を。
更新点
・チュートリアルを大幅変更。
├チュートリアルテストを撤廃
├画像を数枚増加
└選択肢をいくつか追加
・全体MAP導入。
└3F踏破後、診療所に戻る際初出するように変更
・色々あったバグを修正。
いい加減バグ多すぎるのは、ひとえに画像整理しようとしたせいです。
画像が移動している(フォルダ内に入った)のに、フォルダ名を入れてないせいでバグることが多いですね。
そろそろこのバグも減って来るはず、はずwww
そして何だかこっちのブログサボり気味ですみません。
気が付いたら更新するようにはしておりますが、忘れてたらサボんなコールお願いしますww
更新点
・チュートリアルを大幅変更。
├チュートリアルテストを撤廃
├画像を数枚増加
└選択肢をいくつか追加
・全体MAP導入。
└3F踏破後、診療所に戻る際初出するように変更
・色々あったバグを修正。
いい加減バグ多すぎるのは、ひとえに画像整理しようとしたせいです。
画像が移動している(フォルダ内に入った)のに、フォルダ名を入れてないせいでバグることが多いですね。
そろそろこのバグも減って来るはず、はずwww
そして何だかこっちのブログサボり気味ですみません。
気が付いたら更新するようにはしておりますが、忘れてたらサボんなコールお願いしますww
2018年06月01日
Chain Tower進捗
Chain Tower(Ver.0.052)
ちょっと更新さぼってない?とか言われそうなので言われたので一応進捗を。
とりあえず現在やってるのは、冒険者ギルド&鍛冶屋をタッチ操作で簡単に動かせるようにしようとしてます。
問題がいくつかあったんですが、そろそろ解消しそうなので、今月中には公開できると思います。
現状としては、
・スマホゲーみたいにタッチ操作できるように冒険者ギルド&鍛冶コーナー&宿を調整中。
・メイジを選ぶとチュートリアルが進まなかったのを修正。←誰もメイジ選ばなかったので気付かなかった
・致命的なバグが他にもないか検証中。←頼むから誰か手伝ってw
正直な話、絵と手が足りてないのが現状です。
診療所の背景とか描かないとアレだし、冒険者ギルドや鍛冶コーナーにしても拾い画だから、ちょっといい加減何とかしないとね。
手伝ってくれる人大募集中です!
ちょっと更新さぼってない?とか
とりあえず現在やってるのは、冒険者ギルド&鍛冶屋をタッチ操作で簡単に動かせるようにしようとしてます。
問題がいくつかあったんですが、そろそろ解消しそうなので、今月中には公開できると思います。
現状としては、
・スマホゲーみたいにタッチ操作できるように冒険者ギルド&鍛冶コーナー&宿を調整中。
・メイジを選ぶとチュートリアルが進まなかったのを修正。←誰もメイジ選ばなかったので気付かなかった
・致命的なバグが他にもないか検証中。←頼むから誰か手伝ってw
正直な話、絵と手が足りてないのが現状です。
診療所の背景とか描かないとアレだし、冒険者ギルドや鍛冶コーナーにしても拾い画だから、ちょっといい加減何とかしないとね。
手伝ってくれる人大募集中です!