投稿記事

2023年 07月の記事 (6)

南極大緑 2023/07/30 10:32

TSロリ魔法少女のETDシミュ作成記録。その6(二重キャンセルの防止について)

〇その6 二重キャンセルの防止について
当初はこの項目を個別に記事にするつもりはありませんでしたが、想定していたよりも苦戦したので予定を変えて記事にします。

◆ゲームプレイの流れについて
現在私が作成しているゲームは、あらゆる行動の基本となる「ベース画面」から開始し、トラップを配置する「トラップ画面」へ移動した後、ピクチャボタンによる選択肢で「階層」を選択し、「トラップ」を選択するという流れになっています。
実際のプレイ画面で流れを現すと以下のような感じになります。






◆各状態のキャンセルについて
この内、「トラップの選択」は戻すボタンでキャンセルでき、「階層の選択」は階層選択状態で右クリックすることでキャンセルできます。さらに「トラップ画面」から「ベース画面」へ戻るときは「戻るボタン」で戻れるのですが、このトラップ画面→ベース画面の処理を右クリックでも出来るようにします。
クリックによってゲームを進行するシミュレーションゲームは、右クリックでキャンセルや前の画面に戻れるというのが直感的な操作だと思うからです。



◆キャンセルの対象について
右クリックによるキャンセルは画面のどこで押しても反応させる必要がありますので、ピクチャボタンではなくマップイベントで処理します。
しかしその場合、右クリックによるキャンセルの対象を制御する処理が必要となります。対象を決めずに右クリックキャンセルを実装すると、「階層選択」をキャンセルつもりだったのに「トラップ画面」をキャンセルし、ベース画面まで戻ってしまう、というような事態が起きてしまうからです。



◆第一層選択状態のキャンセルについて
前回の記事で階層選択の解除は記述しましたが、その処理に手を加えます。
まず第一層のピクチャをボタン化しているイベントで、ボタン押下時にスイッチ5をonにする処理を入れます(以下1枚目)。
次に、キャンセルイベントそのものにスイッチ5をoffにする処理を入れます(以下2枚目)。
また、キャンセルイベントの出現条件をスイッチ5で管理します。スイッチ5がonになっている時は階層選択を右クリックでキャンセルでき、offの時は右クリックをしても何も起きないというイベントにします。
これにより、第一層ボタンを押した後は右クリックのキャンセルが有効化され、実際に右クリックでキャンセルした後はイベントが無効化されて、再び第一層ボタンを押すまでは無効化状態が維持されます。





◆トラップ画面のキャンセルについて
次に階層選択状態ではないトラップ画面で右クリックをした場合にベース画面へ戻る処理を作成します。
上記2枚目の画像でスイッチ6をonにしていますが、これは右クリックでトラップ画面からベース画面へ戻るイベントを呼び出すためのスイッチです。
実際の処理は以下のようになっており、「スイッチ6がon」でかつ「キャンセル変数が2以上」の場合、2ページ目の実行条件を満たすため2枚目の画像のような処理となります。
2つの呼び出し条件を満たしていない場合1はページ目の状態(1枚目画像)となり、この時は右クリックしてもキャンセル変数が+1されるだけで画面に動きはありません。
また呼び出し条件を満たして2ページ目のイベントが実行されベース画面に戻る際、スイッチ6をoffに、キャンセル変数を0にする処理を組み込んでます。これは黄色の戻るボタンで呼び出すコモンイベント5も同様です。
都度リセットした方が管理が楽です。




◆キャンセル変数について
このトラップ画面のキャンセルを変数で管理している理由としては、スイッチのみで管理しようとすると「階層選択」と「トラップ画面」の両方をキャンセルしてしまい、「階層選択」の解除をすっ飛ばしてベース画面まで戻ってしまうからです。
当初はスイッチ6のみで管理しようとしていました。その場合、「第一層」ボタンを押した後、右クリックすることでスイッチ6がonとなり、このタイミングでトラップキャンセルの2ページ目の出現条件を満たしてイベントが実行されます。
てっきり私は、この2ページ目に切り替わる処理と、2ページ目に記載の右クリックした場合にベース画面に戻るという処理は別々、一旦イベントが途切れるものと思っていました。一度目の右クリックでページ2に変わり、もう一度右クリックすることでページ2に記載のイベントがおきるというイメージです。
しかし実際にはそうではなく、実行条件を満たして2ページ目に切り替わるのと同時に、2ページ目に記載のイベントが実行されてしまったのです。
つまり、「階層選択」している状態で右クリックを押すと、そのままベース画面まで戻るということです。
これでは、「階層選択」をキャンセルして別の階層を選択するという段階をつくることが出来ません。「階層選択」状態からベース画面に戻るために、2回右クリックが必要なようにしたいわけです。
そこで、変数で管理を行えば指定した回数で出現条件を満たせると思ったわけです。
「階層選択」状態で一度右クリックすると、スイッチ6がonになり同時にキャンセル変数が+1されます。この状態ではまだ2ページ目の出現条件を満たしていないので、階層選択を解除した状態で一度止まってくれます。そのうえでもう一度右クリックをすると、変数がさらに+1され、キャンセル変数2以上という条件を満たしながら同時に記載のイベントを実行するためベース画面に戻れます。
ちなみに、ベース画面からトラップ画面に移動した直後は右クリック一回で戻れるようにする必要があるため、以下1枚目画像のようにトラップ画面への移動イベントにスイッチ6のonとキャンセル変数代入2を組み込んでます
また、「第一層」ボタンを押した後はキャンセル変数が0でなければ上記の2回右クリックしてキャンセルという前提が崩れるので、以下2枚目画像のように「第一層」ボタンで呼び出すコモンイベント10にキャンセル変数乗算0を組み込み、ついでにスイッチもoffになる方が管理しやすいのでスイッチ6をoffにする処理も組み込んでます。
もしかすると変数で出現条件を管理する場合そもそもスイッチはいらないかもしれませんが、現在の処理でも問題はないので一旦これでいきます。



今回はここまで!
まさかキャンセルが二重に実行されてしまうとは思っていませんでしたので解消に結構時間がかかりました。
「スイッチon→イベントページ切り替え→イベント実行」
この一連の流れが右クリック一回で全部連動して行われるというのが誤算でしたね。上でも書いたようにページ切り替えで一回イベントが止まると思ってたので。
かなり冗長な書き方になってしまいましたがまあ解決したので良しとしましょう。


閉廷!

南極大緑 2023/07/29 10:30

TSロリ魔法少女のETDシミュ作成記録。その5(ピクチャボタンによる選択肢について)

〇その5 ピクチャボタンの選択肢について
このゲームの核は当然戦闘エロやエロトラップなわけですが、そこに繋がる部分もまた重要です。
というわけで今回はトラップの選択画面を作成していきたいと思います。
そもそもどうすれば良いのかもとても悩みましたが、なんとかイメージしている形にはなったかなと思います。


◆ピクチャボタンを選択肢として使う
私の作りたいゲームは、直感的に操作でき、それでいてツクール感の薄いゲームです。
選択肢イベントを使ってデフォルトのウィンドウからトラップを選ぶなら簡単に作れるでしょうけど、それでは味気ないと思いました。
そこで、トラップの選択にもピクチャボタンを使います。


1.仮組イメージ
以下画像の通りです。
この画面を作ること自体はピクチャの表示だけで出来るので簡単です。
しかしこれらのボタンを実際に押して、「第一層」に選択したトラップを反映させるとなると途端にややこしくなります。
前提として、現在の仮組では「第一層」しか作っていませんが、正式に作る際は最低でも「第十層」くらいはあった方が良いと思っています。
なので各階層ごとに選択したトラップを反映させなければなりません。





2.トラップを設置する階層の選択
まず、「第一層」の枠そのものをボタン化します。今回は作りませんが他の階層の枠も同じようにボタン化します。
これにより、各階層の枠ごとにイベントを設定できるようになります。





3.階層選択およびその後の処理
「第一層」のボタンはコモンイベント10を呼び出す処理にしています。
コモンイベント10に設定したイベントは、トラップボタン②~⑤までのボタン化です。
(①をボタン化してないのは、戦闘確認用に別のイベントを割り振っているためです。正式版では①も含めてボタン化することになります)

これにより、「第一層」のボタンを押すまではトラップボタン②~⑤はただのピクチャとして表示され、「第一層」ボタンを押すことで、②~⑤もボタンとして機能するようになります。
これを他の階層でも同じように設定すれば、まず「階層」を選択し、その選んだ階層に更に「トラップ」を選択するという流れが出来ます。
また、コモンイベント10は②~⑤のボタン化の他、そのボタンでコモンイベント11の呼び出し、更にそれぞれのボタンを押した際に指定の変数を代入する処理を組み込んでいます。
処理は以下の通り。







4.トラップの選択
トラップ②~⑤により呼び出されるコモンイベント11は、押されたボタンに応じて「第一層」の枠内に選択したトラップが表示されるという内容です。
これにより、②を押せば「第一層」の枠内にトラップ②のピクチャが表示され、③~⑤も同様となります。
処理の詳細としては、3.で記した通りボタンにはそれぞれ指定の変数を代入する処理が組み込まれているため、条件分岐により現在の変数に対応したピクチャが表示されるようにしています。以下画像の通り。






5.「第一層」枠内のピクチャ消去について
コモンイベント11には、ピクチャの消去が組み込まれていますが、これを入れないとピクチャ番号の大きなピクチャを表示した後、それより下の番号のピクチャが表示されないためです。
正確には表示されないわけではなく、表示されていますが、ピクチャ番号が一番大きいものが前面に表示されてしまうため数字の小さいピクチャは隠れてしまいます。

今回の例で言うと、枠内の②ボタンは変数1のピクチャ20、枠内の⑤ボタンは変数4のピクチャ23としています。
②ボタンを押すと変数1が代入され、現在変数が1となるので、コモンイベント11の設定によりピクチャ20、つまりトラップ②が「第一層」の枠内に表示されます。
この状態で更に⑤ボタンを押すと、変数4が代入され、現在変数が4となるので、コモンイベント11の設定によりピクチャ23、つまりトラップ⑤が「第一層」の枠内に表示されます。
そしてピクチャ消去をしない場合、枠内にはトラップ②とトラップ⑤が両方とも表示されている状態となります。しかし実際に見えるのは番号の大きなピクチャ23のみ、ということになります。
ここでもう一度②ボタンを押すと、現在変数が1となるのですが、上記の通りピクチャ23を消去しない限りピクチャ20は前面に出て来ません。
よって、⑤ボタンを押すとそれ以外②~④のボタンを押しても枠内の表示が変わらなくなってしまうのです。

ピクチャの消去を組み込んでいるのはそのような理由からです。
(本当はボタンを押す際に変数に0を乗算→指定変数の代入、という順序で処理し変数0の際に枠内のピクチャ全消去にしたかったのですが、ボタンを一回クリックする際に処理できる変数は一つのみのようなので、この方法は諦めました)



6.ピクチャ番号について
画像からお気づきの方もいるかもしれませんが、あらかじめトラップ画面に表示しているトラップボタン②~⑤と、「第一層」の枠内に表示するトラップ②~⑤はピクチャ番号を分けています。
なぜかと言えば、同じ番号にするとあらかじめ表示されている番号まで消えてしまうからです。
しかしこの処理の仕方だと一層ごとにピクチャ番号をかなり使うので、上限を超える可能性大です。実装するトラップと階層の数次第ですが、その4の記事で書いたファイル名指定でピクチャを呼び出すプラグインを使うことになるかもしれません。



7.テストプレイ





このように、各ボタンを押すと枠内に反映されます。
なお、「戻す」ボタンは変数に0を乗算し、コモンイベント11を呼び出しています。
コモンイベント11には現在変数によって枠内に②~⑤を表示する他、変数が0になった場合枠内のピクチャを消去する処理が組み込まれています。

8.選択状態の解除
最後に「第一層」の選択状態の解除、あらかじめ表示されている②~⑤をボタンからただのピクチャに戻す処理を作ります。
トラップ設置の手順は、「①階層選択→②トラップ選択」を解放されている階層分繰り返すことになるので、「第一層」のトラップを設置し終わったら、一旦どの階層も選択していない状態に戻り、次の階層を選択するという処理にする必要があります。
ここではスイッチを用いてイベントの管理を行います。
まず、トラップ設置の管理スイッチは4を使うことにし、スイッチ4がonの時はボタン操作不可とします。
以下はコモンイベント10、「第一層」ボタンを押した際に起動するイベントです。②~⑤のピクチャボタン化の前にスイッチ4のoffを組み込み、同時に各ボタンの「無効スイッチ」を4に設定します。
この無効スイッチについては、指定した番号のスイッチがonの場合イベントを無効化するというものになります。
事前にスイッチoffの処理を入れることで、スイッチ4がonになっていたとしてもそれをoffにし、②~⑤をボタン化できます。




次に、右クリックした際にスイッチ4がonになるマップイベントを自動実行で作成します。(条件分岐でスクリプト「TouchInput.isCancelled()」を入力することで、右クリックした場合を条件に出来ます)
これにより、第一層のボタンをクリックしてスイッチ4がoff、②~⑤がボタンになった状態(階層選択状態)の時に右クリックをすると、スイッチ4がonとなり、②~⑤のボタン化が無効化されます。
ただし、「戻す」ボタンの表示自体はピクチャのボタン化プラグイン内の処理ではなく、単純にピクチャの表示をしているため、スイッチ4をonにする時に同時に消去します。
これで、右クリックを押すと階層選択前の画面に戻れるようになります。
※階層選択中でなくても右クリックによりスイッチ4がonとなりますが、階層選択状態でない場合元々②~⑤はボタンになってませんし、戻すボタンも表示されていないため、表向きは何も変化はおきません。



↓階層選択中



↓階層選択後、右クリックにより階層選択前に戻る


この状態だと、再度「第一層」をクリックしない限り「第一層」の枠内は変化しません。右クリックによりスイッチ4がonとなり、②~⑤のボタン化が解除されているためです。





今回はここまで!
すっごい疲れましたし時間がかかりました。
しかしここの処理は結構悩んでいたので形になってきてよかったです。
このやり方なら選択中のトラップを変数で管理出来るので、この後実際にエロイベントを起こす際も変数を参照することで選んだトラップに対応したイベントを発生させられると思います。
ピクチャ番号の上限だけが気がかりですが、今回の場合あらかじめ表示されている②~⑤で画像は一度使用しているので、懸念点である「未使用ファイルを除外」で除外されることはないと思われるため、多分大丈夫だと思ってます。
あとピクチャ番号とかスイッチ、変数はエクセルなりスプレッドシートなりで別途管理した方が良いと感じました。

閉廷!



◎参考にさせていただいたサイト
ツクールフォーラム(選択肢のピクチャ化)
ツクマテ(右クリックでコモンイベント)

南極大緑 2023/07/23 11:46

TSロリ魔法少女のETDシミュ作成記録。その4(戦闘立絵切り替え、イベントCGについて)

〇その4ー1 戦闘立ち絵切り替えについて
現在作成中のゲームでは、竿役視点での操作となりますので、戦闘画面においてはヒロインが敵キャラ側になります。
Hゲームではよくある、ダメージを受けたら服が破れるという演出はこのゲームにも取り入れたいと思いますので、敵側の立ち絵切り替え処理が必要となります。
戦闘中に敵の立ち絵を変更する方法については、プラグインもあるようですが使い方がよくわからなかったので、今回はイベントの「変身」を使うことにしました。
※その3までの記事の作業が完了していれば基本的な作業方法は理解出来ていると思うので、どこに素材を入れる等の似たような手順は省略していきます。



◆切り替え条件について
条件設定の準備として、敵側のデータベースを複数登録します。
今回のケースでは立ち絵のみ切り替えて能力値は変更しないので、最初に基本となるデータベースを一つ作り、あとはそれをコピペして立ち絵の部分だけ変えればOkです。

準備が終わったら、戦闘イベントに「敵キャラの変身」という項目があるので選択します。
この変身は、現在選択されている敵のデータベースを指定した別の敵に切り替える処理となります。上記で準備した差分版の敵を選択することで、能力値はそのままに立ち絵を切り替えることが出来ます。
今回はHP50%以下を条件にしていますが、スイッチを条件に使用することも出来るので、バステの有無をスイッチで管理して、特定のバステを受けてるときは立ち絵を変えるということも出来そうですね。
発生条件に変数を指定出来るともっと色々出来そうですが、デフォルトでは無理みたいですね。作成する中で必要だと思えばプラグインを探したいと思います。



◆戦闘テストプレイ
以下の一つ目が初期状態、二つ目が半分以上ダメージを与えた状態です。
これで戦闘中の立ち絵切り替えの基礎は出来ました。
実際には様々なバステに対応させる必要があるので、現段階では処理の確認という程度です。





〇その4ー2 イベントCGの表示について
同人エロゲーの醍醐味といえばやはりHCGですよね。
今回制作するゲームでは、基本的には戦闘エロに比重を置きつつ、敗北時にはCGありのイベント、というような構成をイメージしています。
戦闘エロは今回は置いておいて、まずは戦闘勝利時にCGとメッセージウインドウを表示する処理を作ります。

他のピクチャとのピクチャ番号の上限への対処や表示優先度の兼ね合い、CG画面へのフェードアウト等、中々スムーズにいかない部分が多かったですが何とか形になりました。


◆ピクチャ番号の上限について
CGありのHイベントを作成していて最初に気になったのがピクチャ番号の上限数についてです。MZではデフォルトで100までとなっています。
この数字はピクチャを多用するゲームにおいては全くもって心もとないと言わざるを得ないでしょう。イベント中に差分を設けるのにも個別にピクチャ番号を振ることとなりますので、進行段階によって差分を設けると想定するなら一つの基本CGにつき10近い番号が必要となる可能性もあります。
現時点ではHイベントの数も種類も決まってないので実際上限に引っかかるかはわかりませんが、その時になって後付けで対処しようとするよりはあらかじめ対処できるようにしておいたほうが良いと判断し、対処法を探して一応は解決しました。
根本的にピクチャ番号の上限を変更するプラグインは見つかりませんでしたが、ファイル名を指定してピクチャを呼び出すプラグインをトリアコンタン様が作成されていましたのでそれを利用させて貰いました。
トリアコンタン様のスプレッドシートから「ピクチャ名の変数設定プラグイン」をダウンロードして導入し有効化します。


そして実際にイベントに組み込む際は以下のような感じです。
MZのフォルダ内にイベントCGを格納し、プラグインでそのファイルの名前を指定します。今回の場合ですと「敗北CG 1-1」というファイル名で指定しているわけですね。そしてプラグインでファイルを指定したのち、ピクチャ表示のイベントを以下4枚目画像のように設定します。ピクチャ番号は何でも良いですが、ピクチャボタンで使っている番号よりは大きい番号を振った方が良いです。




上記のイベントはピクチャ番号51で作成しているわけですが、同じくピクチャ番号51で以下のイベントを作成しています。
勝った場合は「敗北CG 1-1」、逃げた場合は「敗北CG 2-1」が呼び出される処理を試しに作っています。
同じピクチャ番号を使用していますが、状況に合わせてそれぞれ別の画像が呼び出されるようになってます。
※試しにプラグインなしで同じイベントを組んでみたところ、プラグインありと同じようにそれぞれの状況に合わせた画像が呼び出されたので、今回の処理はプラグインなしでも問題ないかもしれません。これは予想でしかないですが、ピクチャの移動や消去は番号のみ指定してイベントを起こすので、ファイル名指定はそういう時に役立つかもしれません。同じ51番で振ってるピクチャを、一方は消去したいけどもう一方は消去したくない時とかに、ファイル名で指定出来るのかもしれません。
※このプラグインで呼び出した画像は「未使用ファイルを除外」で除外される可能性があるそうなので、あまり凝ったことをしないならプラグインなしでイベントを組んでも良いかもしれません。とくに、特定の状況だけで呼び出されるHCGなんかは、処理がそのイベント時だけで完結してると思われるので、同じピクチャ番号を振ってしまっても後に影響は出ないような気もします。



◆ピクチャの表示優先度について
前述でHCGのピクチャ番号はボタンピクチャよりも大きい数字にした方が良いと記述しましたが、それはMZの仕様上番号の大きいピクチャの方が上に表示されるからです。
例えば私のトラップ画面の場合、戻るボタンやタイトルボタン等はピクチャ番号5~7を割り振ってます。これに対し、イベントCGに1の番号を振った場合、ボタンがピクチャの上に表示されてしまうのです。
そのため、仮組の段階では51と大きい数字を振っています。これにより、以下の2枚目画像のようにイベントCGを表示可能となります。
※補足ですが、イベントCGの上にボタンが表示されると、なぜかメッセージをクリックで進めることが出来なくなったので、そうした点からも大きめの番号を振るのが良いと思われます。
※ピクチャの表示優先度については、トリアコンタン様が細かく指定可能なプラグインを作成されているので、そちらを利用するのも良いかもしれません。今回は使用していませんが。




◆イベントCGへの移行、フェードアウトについて
CGの表示について、とくに手をくわえずにピクチャの表示を行おうとするとあまり見栄えがよくありません。
なのでフェードアウト等のイベントを使用し、一度画面を暗転させてからCGへの移行を行います。
とりあえず最終的なイベントの構成は以下の通りとなりました。

単純にフェードアウトとフェードインのみを利用して画面移動を行おうとすると、イベントCGが表示される直前に一瞬「トラップ画面」が表示されてしまう問題が発生しました。
そこで、フェードアウトを行う前に色調変更をフレーム1で設定し画面そのものを真っ暗にすることとしました。ただしこれだけだとピクチャは色調変更の対象とならないので、別途設定する必要があります。
当初はピクチャについても色調変更で黒くする予定でしたが、この場合も一瞬ボタンが表示されてしまう問題がありましたので、最終的にはピクチャを消去する方向で行くことにしました。イベントの実行内容はピクチャ5~7の色調変更となっていますが、これは名称を変えていないだけで実際はピクチャ5~7を消去してます。コモンイベントで一括処理しているかたちです。
上記画像のイベント構成であれば、ピクチャも含めて一度画面が完全に暗転し、若干のウェイトの後イベントCGが表示されます。




今回はここまで!
亀の歩みでもしっかりと前に進めている感じがします。
次は何をやるか考え中です。

閉廷!



◎参考にさせていただいたサイト
トリアコンタン様のHP

南極大緑 2023/07/22 12:28

TSロリ魔法少女のETDシミュ作成記録。その3(タイトル画面のカスタマイズについて)

〇その3 タイトル画面について
折角オリジナルのゲームを作るなら、タイトル画面のレイアウトも統一していきたいですよね。
というわけで今回は、タイトル画面のカスタマイズについて書いていきます。
単純にタイトルのイラストを変えるだけであればそれほど難しくないのですが、コマンドまで変更するとなるとプラグインが必要になるようです。


◆タイトルイラストの変更について
→ツクールMZの「ゲーム」を選択
→「フォルダを開く」
→開いたフォルダの中の「img」を選択
→更に「titles1」を選択
ここに用意したイラストを入れます。

その後、ツクールMZの「ツール」
→「データベース」
→「システム1」
→「タイトル画面」で先ほど入れたイラストを選択します。

これでタイトルのイラストは以下のようになるはずです。
※黒海苔部分はあえて隠していますが、実際にはコマンドが表示されています。





◆タイトルのコマンド変更について
イラストは変更できたのでコマンドもカスタマイズしていきます。
カスタマイズにあたり、二つのプラグインを導入しましたのでそれぞれ分けて記述します。

▷アナザーニューゲーム追加プラグイン
トリアコンタン様作成の、メニューに新しいコマンドを追加するプラグインです。
今回はこのプラグインを用いて回想部屋へ繋がるコマンドを作成することにしました。
まずは回想部屋を独立したマップとして作成します。
※回想部屋と言いつつ現在は何もないただのマップです。回想機能は後日作業します。

次にトリアコンタン様のサイトからプラグインをダウンロードします。
トリアコンタン様のHP
→「動作確認済のプラグイン」のURLをクリックしてスプレッドシートに飛ぶ
→「プラグイン一覧(MZ)」のシートを選択
→「アナザーニューゲーム追加プラグイン」を探し、URLをクリック
→とんだ先で右クリックし、名前を付けて保存
→保存する際、名前は「AnotherNewGame」に変更
→MZへの導入はその2の時と同様なので省略します。
→次に有効化をするので、ツクールMZの「ツール」
→「プラグイン管理」
→空いている行をダブルクリックして「AnotherNewGame」を選択
→以下の画像のように設定します。
→このプラグインの設定はこれで完了です。
※今回は回想部屋へのコマンドのみ追加していますが、他にも追加は出来るでしょう。ただ、このプラグインで追加されるコマンドは指定のマップへ移動する内容となるようなので、直接シャットダウンするコマンドは作れないかもしれないです。そもそもシャットダウンのコマンドが必要かともあわせて、要検討ですね。


▷コマンドに画像を使用するプラグイン
Moghunter様作成の、画像をコマンド化するプラグインです。
このプラグインを用いて、メニューのコマンドをボタン画像に置き換えます。
まずはコマンドに使用するボタンを作成し、MZに入れていきます。

このボタンの作成について、少し特殊なので注意が必要です。
今回使用するプラグインでは、「選択状態/非選択状態」一つの画像内に両方とも入れておく必要があります。以下を見ていただくとわかるかと思いますが、ボタンが上下に二つ並んだ状態になっていると思います。このボタンの下の状態を非選択時、上の状態を選択時に参照しています。
また、PNGファイルの名称はコマンドの上から順に「Command_0」「Command_1」「Command_2」「Command_3」...と名前をつけましょう。

詳細はツクマテ(タイトル画面カスタマイズ)を見ていただくのが一番わかりやすいと思います。

次にMoghunter様のサイトからプラグインをダウンロードします。
Moghunter様のサイト
→「ダウンロード」
→「RPGツクールMZ」ここからダウンロード

ダウンロードが完了したらMZへ導入します。
→ダウンロードしたフォルダの中にある「Master_Demo_MZ」を開く
→「js」
→「plugins」
→「MOG_TitleCommands.js」をMZへ導入
※MZへの導入はその2の時と同様なので省略します。
→次に有効化をするので、ツクールMZの「ツール」
→「プラグイン管理」
→空いている行をダブルクリックして「MOG_TitleCommands」を選択
→以下の画像のように設定します。
→このプラグインの設定はこれで完了です。





◆テストプレイ
ここまでの設定が終わっていれば、以下のようなタイトルになってるかと思います。


作成者様の異なるプラグインを組み合わせているのでうまく動くか心配でしたが、無事問題なく想定していたとおりの状態に出来ました。一安心です。

今回はここまで!
次回なにに着手するかは未定です。
オリジナルメニューか、ダイス機能か、CG表示か、とか考えています。
いつの更新になるかは不明です。

閉廷!



◎参考にさせていただいたサイト
トリアコンタン様のHP
ツクマテ(アナザーニューゲーム)
ツクマテ(タイトル画面カスタマイズ)
Moghunter様のHP

南極大緑 2023/07/17 19:00

TSロリ魔法少女のETDシミュ作成記録。その2(ピクチャのボタン化、表示/非表示について)

〇その2 ピクチャボタンについて
シミュレーションゲームと言えば、画面上に表示されたボタンを押すことでステータスが変動したりしながら進行していくものですが、RPGツクールのデフォルトではこの「画面上のボタンを押す」という機能が恐らくないと思います。
いえ、メニューやらクリックで選べるところはあるので、正確に言うのなら「ゲームの進行に関わる任意のボタンの作成」が出来ないと言うべきでしょうか。
ですので、早速ですがプラグインに頼っていきたいと思います。
一応公式プラグインの中に、「ButtonPicture」というものがあり、これを使えば上記で想定しているような挙動が出来るようですが、今回はこちらではなく、トリアコンタン様が公開している「PictureCallCommon」(ピクチャのボタン化プラグイン)を使っていきたいと思います。
ツクールMV時代に好評だったものをMZ向けに作り直されているそうなので、具体的な違いはよくわかりませんでしたが、こちらを使ってみようと思ったしだいです。
※手探りで使っているので説明に誤りがある可能性があります。自分への備忘録なので参考とされる場合はご了承のうえお読みください。




◆導入方法について
まずはトリアコンタン様のサイトからプラグインをダウンロードします。
トリアコンタン様のHP
→「動作確認済のプラグイン」のURLをクリックしてスプレッドシートに飛ぶ
→「プラグイン一覧(MZ)」のシートを選択
→「ピクチャのボタン化プラグイン」を探し、URLをクリック
→とんだ先で右クリックし、名前を付けて保存
→保存する際、名前は「PictureCallCommon」に変更

これでプラグインが入手出来るため、保存したjsファイルを以下のフォルダへコピペします。
→ツクールMZの「ゲーム」を選択
→「フォルダを開く」
→「js」
→「plugins」

なお、「PictureCallCommon」は単体では起動せず、公式プラグインである「PluginCommonBase」の導入も必要となります。
こちらのプラグインは、インストールしたツクールMZのフォルダ内の「dlc」
→「BasicResources」
→「plugins」
→「official」の中にありますので上記同様コピペしてください。





◆プラグインの有効化について
導入が完了したところで、今度はプラグインを有効化していきます。
→ツクールMZの「ツール」
→「プラグイン管理」
→プラグインリストが出てきますが、初期状態では何も表示されていないと思います。
→行をダブルクリックすると、「プラグインの設定」画面が出てきますので、基本設定から使用するプラグインを選択し状態をONにします。
→「PictureCallCommon」「PluginCommonBase」両方とも上記手順で有効化します。





◆ピクチャのボタン化プラグインの使い方について
ではプラグインの有効化も完了しましたので、実際に使っていきます。
今回は3段階に分けて使い方を記載します。

1.ボタンに使用したいピクチャを用意する
実験や仮組するだけであれば最初から入っているピクチャでも出来ますが、キャラの顔グラしかないので直感的に分かりづらいかなと思い、ひとまず仮のボタンを作成しました。
作成したPNGデータを以下に格納します。
→ツクールMZの「ゲーム」を選択
→「フォルダを開く」
→開いたフォルダの中の「img」を選択
→更に「pictures」を選択
ここにボタンのPNGを入れることで、ピクチャとして選べるようになります。



2.コモンイベントを作成する
ピクチャのボタン化プラグインはざっくり言うと、ピクチャをクリック等することであらかじめ用意したイベントを実行するという処理になっているようなので、コモンイベントを先に作っておく必要があります。
→ツクールMZの「ツール」
→「データベース」
→「コモンイベント」から、マップの移動やメニュー、セーブの呼び出しを作ります。



3.マップイベントを作成する
いよいよ本番、ゲーム画面にピクチャを表示し、それをボタンとしてクリック出来るようにします。マップのどこでも良いのでイベントを作成しましょう。
以下はボタンが完成した状態のイベント作成画面です。

ではまずピクチャの表示を設定します。
イベントコマンド「2」のシートの左下あたりに「ピクチャの表示」というイベントがありますので、それを選択します。
すると以下のような画面となりますので、ピクチャの番号や画像、位置を決定します。
※ピクチャ番号は他のボタンとは別の数字を割り振ってください。プラグインでこのピクチャ番号を参照するため、他のボタンに同じ番号を振っているとうまく機能しない可能性が高いです。

次に「イベントの一時消去」のイベントを選択します。
さらに、トリガーを「自動実行」にします。
これにより、常時ピクチャが表示され、他のマップへ移動してボタンが非表示となっても、戻ってきた際に再び表示されます。
※他のマップへ移動する際にボタンを非表示とするのは別途設定が必要となるので後述します。
※トリガーを「自動実行」にしている場合、主人公の操作が出来なくなるようですが、当方の作成するゲームにおいては主人公がマップ上を歩く想定をしていないので、ひとまずこれで良しとしています。主人公を動かしたい方は他の方法をお試しください。

最後にピクチャボタンのプラグインをイベントに組み込みます。
イベントコマンド「3」のシートの右下に「プラグインコマンド」というイベントがありますので、それを選択します。
プラグインが正常に有効化されていれば、プラグイン名:「PictureCallCommon」が選択出来るはずなので、それを選びます。コマンド名は「ピクチャイベント登録」を選択してください。
ピクチャ番号は先ほど割り振った数字、コモンイベント番号も事前に作成したイベントの数字を選択します。
トリガー種別は左クリックの場合1で大丈夫です。


他のボタンはこんな感じです。



そしてテストプレイ画面はこんな感じです。

ベース画面の形は出来てきたような気がしますね。
設定に誤りがなければ、これらのボタンを押すことでそれぞれ割り振ったイベントが実行されるはずです。
ちなみに前回の記事で心配していたメニュー禁止についてですが、今回のピクチャボタンでの呼び出しには影響ありませんでした。普通にメニュー画面を開けて良かったです。





◆別のマップへ移動する際のボタン非表示について
私の想定としては、トラップを配置する画面は別マップへ切り替えて行うイメージなので、「トラップ」のボタンを押すと別のマップへ移動というイベントになっているのですが、このままマップ移動をすると以下のように、移動した先のマップでもボタンが表示されてしまいます。
※戻るボタンはその名の通りです。作り方の手順は他のボタンと同じなので省略します。

これを回避し、特定のマップでのみボタンが表示されるようにするため、別のマップに移動した際ボタンを非表示にするイベントを作ります。
手順は単純で、移動先のマップのどこでも良いのでイベントを作り、ピクチャを非表示にします。
以下の画像ではコモンイベントで1~4のピクチャ(トラップ、メニュー、セーブ、ステータス)をまとめて非表示にすることとしていますが、これは表示/非表示の切り替えをスイッチで管理しようとした際の名残なので、別のやり方として「ピクチャの消去」で一つ一つ非表示にしても良いと思います。お好みでどうぞ。
また、「イベントの一時消去」をここでも作成し、トリガーは「自動実行」とします。

これで、このマップに移動する度にピクチャを消去するイベントが自動で実行されます。
また、ベース画面にはこれと同様、「戻るボタン」を消去するイベントを自動実行で作成しています。
これにより、それぞれの画面を行き来する際、ボタンの表示/非表示が切り替え可能となります。




今回はここまで!
ド素人がいきなりプラグインに手を出すのは大分ハードルが高かったですが、先人の知恵に助けられ何とか想定している挙動を実現できました。
ひとまずここまでこれましたが、今後かなり進捗は遅いと思うので次の作成記録はいつになるかわかりません。ご容赦ください。

閉廷!




◎参考にさせていただいたサイト
トリアコンタン様のHP
note「RPGツクールMZ:ピクチャのボタン化プラグイン」
ツクールフォーラム(マップごとのボタン表示/非表示)

« 1 2

月別アーカイブ

記事のタグから探す

限定特典から探す

記事を検索