【RPGツクールMV】ノベルゲームのベースを自作してみた

前回RPGツクールMVにプラグインを使うことでノベルゲームが再現できる、という仕組みに触れてみた。
記事として、まとめた後もいろいろ触ってみたり、追加してみたりしていたのだが、
基本機能をいろいろこねくり回してみれば完全自作でも、それっぽい仕掛けが作れるのではないかと思い始めたので、改めて試してみた。
完成度、簡単さという点ではもちろんプラグインのほうにかなうはずがないが、一応それなりに動く感じに仕上がったので内容についてまとめておきたい。

ノベルゲーム

今回の内容に関してザックリ解説すると、
ノベルゲーム作成プラグイン『NobleMushroom』は未使用。
コモンイベント、自動実行イベント、条件分岐でノベルゲームっぽいのを再現。
プラグインは『DTextPicture』をメニュー画面に使用。
キャラクター表示はピクチャ表示。
背景はマップの遠景設定を利用。

といった感じ。
基本的には下記の記事で触れたプロジェクトをベースにそれっぽいものを作っていきたいという趣向。

【RPGツクールMV】ノベルゲーム作成プラグイン『NOBLEMUSHROOM』を試してみた

基本設定

テストプレイ基本形

マップの設定。
こちらも前のものに倣ってマップをシーン分けに使う。
場面ごとに切り替えていって
配置されている自動実行イベントで文章を表示していくことでノベルゲーっぽい挙動を再現するという形。

自動実行イベント

実際にマップ上に配置してあるイベントがこちら。
今回は表示周りのプラグインの力を借りないため、基本的な表示形式である会話ウィンドウで文章を流していくという形になる。
会話表示中のメニュー表示、セーブからの再開などを考えて、

各会話毎にラベルを設置(p1,p2,p3・・・)。
先頭から各ラベルにジャンプすることで文章の表示。
表示後先頭に戻り、各種キー入力待ち。
再び各ラベルにジャンプ。

という周りくどい方式となった。
自動実行イベントは別の並行処理イベントなどで割り込んだりして処理を中断させてしまうと再び先頭からになってしまうという現象に対して、
だったら先頭からやりなおさせても問題ない構成にすればよいのではという短絡的思考から生まれたごり押し策。

3行目のスクリプトに関してはラベルジャンプの処理をスクリプトにて実行したもの。
今回各文章に飛ぶ仕掛けを作るにあたって、
p+文章数のカウント(変数1)
を使った汎用ラベルを設定し、簡単に飛べるようにしたかったのだが、基本機能によるラベルジャンプでは変数を入れ込むことが出来なかったので、スクリプトによるジャンプを利用することとなった。
文章の表示とかで使えるのにここだけ使えない理由はよくわからない。
スクリプトのほうで見るとラベル名がコメント扱いになっているのでそのあたりが原因かも?

文章のカウントに関しては後に触れる入力待ちコモンイベントのほうで行う。
文章の表示ごとにカウントを行うことで現在の位置確認として利用するという形式。

テストプレイ基本形

テストプレイをするとこんな感じ。
一つの文章表示周りの処理をラベルとラベルジャンプで挟み込んでセットにした。
文章の他に、人物の表示、音楽再生、エフェクト周りなどもここで行う。

自動実行イベント後半部分

自動実行イベントの後半部分がこちら。
各文章へのジャンプを行うのに使う変数「ページ数」を初期化、
フェードアウトを交えて画面のリフレッシュ周りの処理を行い、場所移動によって次にシーンへとつなげていくという流れ。

ここだけの話最初、前半部分のラベルジャンプのスクリプトをイベントの条件分岐だけで作ろうとしてすさまじく長ったらしいものになってしまっていた。
それがスクリプトにするだけで画像二枚に収まる長さにまで縮まるとは、恐ろしや。

コモンイベント入力待ち

文章の表示後、先頭に戻った際にはコモンイベントの
「会話後入力待ちループ」
を使って、各文章をつなげたり、メニューを開くなどの動作が出来る時間を作っている。
イメージ的には通常の文章表示イベントの合間に挟み込んであるといった感じ。
こちらでは文章表示後、正確に言うと文章表示が終わり、決定キーなどを押下して、文章を進めた際に再び決定キーが押されれば、そのまま文章が進み、キャンセルが押された場合にはメニューが開かれるという構成になっている。

ただここには多少のごまかしが含まれている。
これらループに入る前には当然文章が表示されているのだが、それを進めるためにはツクール内でいうところの決定、あるいはキャンセルキーを押すこととなる。
ここの仕組みではその際に押したキーを無理やり取得する形で処理に持って行っている。
文章を決定キーで進めた場合にはそのまま次の文章、
キャンセルで進めた場合にはそのままメニュー表示、
といった感じ。
なので、普通に遊ぶ分には問題なく動作するのだが、極めて一瞬、本当にたたく感じでキーを押すと若干挙動が乱れる場合もある。
とはいってもバグを誘発させるものではなく、文章の表示がいったん消えてしまう程度で再びキー入力を行えばすぐ解消される程度の問題なので今回はこのまま棚上げ。

ただこの問題を一番強く受けているのがマウス入力周りで、マウスのクリック入力はほかのものと異なり正確に一度のみ行われるため、他と同じように惰性で入力させることが出来ない。
なので他のものをそのまま流用させると会話毎に二回のクリックが必要となり非常にテンポが悪い。
その対策にイマイチいい案が出なかったため、今回は文章をクリックで進めて、リリースした際に次の文章に移動するという奇策を用いることにした。
これによって、見た目上はワンクリックのみで次の文章へ進めるようになったが、その代償としてメニュー画面を開くのに、

左クリックしっぱなしで右クリック

という世にも奇妙な操作を要求されるようになってしまった。
利便性としてはかなり厳しいラインだが、後々何とか対処していきたい。

カスタムメニュー

カスタムメニュー

上の項目でも触れたメニューに関して。
文章をぶった切ってでも作りたかった機能であるので紹介。
基本的にはコモンイベント内で作成。
各所でキャンセルキー、右クリックに対応して呼び出されるといったもの。
普通のメニューを使いまわして表示を増やしたり減らしたりという手段もあったが、今回は選択肢イベントを使った独自のもので作ってみた。
機能的には

セーブ
テキストの非表示
タイトルへ戻る

などノベルゲームでよく見かけるようなもので動きとしてもほぼそのまま。
それに加えて、画面的に寂しかったのと、機能拡張的なテストもかねてあらすじウィンドウをピクチャとプラグインの力を借りた力技で表示してみた。

テストプレイメニュー画面

実際に動かしてみるとこんな見た目。
右側のウィンドウが選択肢イベントになっているのでそちらで選択。
ついでに左側のウィンドウには何か適当に情報なり説明を入れたりといった感じ。
ピクチャで表示している関係上文字列、画像なども自由に入れ込めるのでいろいろ遊べそうではある。

あらすじ

あらすじのコモンイベント。
一応マップ単位で内容が変わる機能を盛り込んでみた。
このあたりには脱出ゲームチックなものを作ってマップを表示してみたりとか、TRPGテイストにパラメータとかログを書き込んでみるなんて使い方も面白そう。

セーブ

最後にセーブ機能を使っているところ。
ツクールMVの基本セーブから弄っていないのでデフォルト。
変数は当然としても、表示されているピクチャ、再生中のBGM、などに関してもちゃんと保存してくれているので、途中でロードしても問題なし。
このあたりは正直予想外で問答無用で初期化された状態で始まると思い込んでいたので、どうやってキャラクターの立ち絵の位置と種類を変数に変換して保存できるかみたいなことをずっと考えて見事無駄になった件は秘密。

キャラクターの表示、テストプレイ

今までのスクショでもちょくちょく映っていたので今更といった感じですが、キャラクターの表示に関してまとめ。

キャラクターの描写に関してはピクチャの表示で行う。
立ち絵の座標は左、右、中央のものをコモンイベントのほうで一括で設定して、変数に入れ込む形で適応。
また、同じピクチャ番号を使った画像の表示を行った場合、デフォルトのままだと画面がちらついて見えることがあるため、表情の切り替え時などには二つのピクチャ番号を用いて交互に切り替えて使っていくことで見栄えを良くしている。

あらすじ2

表示テストついでにあらすじが更新されていることを確認。
この後、メニュー内で「文章の表示」を使うことを考えて下のほうを空欄にしているけど、ちょっと歯抜け感が強いかな?

最終テストプレイ

と言う訳で実際に遊んでみる流れ。
とはいってもほとんどの部分に関しては説明したので、軽く流す感じとなります。
タイトル画面は前回作ったものをまねて制作。

テストプレイ2

画像を遠景に設定したことによってツクールMV内の色調の変化の影響を受けるようになります。
この画像も上のメニュー表示のものと同じ背景画像ですが、夕方フィルタを使って時間の経過を表現できたり。

テストプレイ3

ツクールMV内のエフェクト機能をふんだんに使ってみるなんてことも可能。
背景と称してドットのマップを描写したりもできますがさすがにそこまで組み合わせた作品は想像つかない。

以上となります。
作ってみると少し問題点があったり、満足いかない点があったりするものの、割とありなんじゃないかという出来栄え。
一番大切なシナリオに関してさっぱり浮かんでないのが問題ではあるものの、もう少し作りこみたいという欲求が。
RPGツクールMVの可能性を探るという意味でも、今後もいろいろ試していきたいですね。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA